Merge remote-tracking branch 'aosp/upstream-master' into update-shaderc

Includes:
2fb89a00 Merge pull request #2738 from greg-lunarg/kg119
e49ae91c Update known goods and CHANGES for 11.6.0
a4599ef7 Merge pull request #2718 from ZhiqianXia/AtomicOpsARB
7ca4dfa0 Merge pull request #2731 from alelenv/rt_motion
35af9ea5 Update known_good for SPV_NV_ray_tracing_motion_blur.
da8027a9 Merge branch 'KhronosGroup:master' into rt_motion
fc60f77a Add support for GL_NV_ray_tracing_motion_blur.
aa2d4bd2 Merge pull request #2726 from TheMindVirus/master
675bd38b Merge pull request #2729 from greg-lunarg/2725
9f18258e Fix seperate stores to swizzled lvalue.
48937f93 Update CMakeLists.txt
bf567735 Support Extension GL_ARB_shader_atomic_counter_ops and relative intrisic functions.
e0f3fdf4 Merge pull request #2716 from greg-lunarg/i2689
715f5c6c Add support for pragma STDGL invariant(all)
50849374 Merge pull request #2715 from greg-lunarg/i2714
c94ec935 Merge pull request #2690 from AndreyMlashkin/make_msvc_runtime_override_optional
27384e04 Allow layout(std430) uniform with GL_EXT_scalar_block_layout
0784c413 correct ident
0db0010d Merge pull request #2691 from ZhiqianXia/BugPoint
9ff6cd0b Merge branch 'master' into BugPoint
ba540202 Merge pull request #2700 from ZhiqianXia/u2i
d433cccb Merge pull request #2702 from jeremy-lunarg/hayes-2518
6d5b40f0 Generate separate stores for partially swizzled memory stores
fc9897d1 Fix OpImageRead result type when compiling HLSL (#2706)
4a12ee1a Merge pull request #2705 from pkasting/master
1978c769 Merge pull request #2704 from YunHsiao/master
e8cffa5b Fix some instances of -Wunused-but-set-variable.
ae4305da Fix per-set argument parsing in standalone
8cd85272 Support Uint to Int implicit conversions at #extension GL_ARB_gpu_shader5.
91580613 Merge pull request #2695 from ShabbyX/fix-bool-array-in-uniform-load
097215f6 Fix loading bool arrays from interface blocks
fda1c583 make AND to upper case
22d19b96 add possibility to not override runtime of MSVC
cf52f73a Atomic memory function can only be used for shader storage block member or shared variable.
4b7b86d5 Merge pull request #2688 from KhronosGroup/revert-2643-master
263e50f6 Revert "Atomic memory function can only be used for shader storage block member or shared variable."
9e707294 Merge pull request #2684 from ZhiqianXia/Dev
89286ca5 Merge pull request #2643 from ZhiqianXia/master
5531fbc6 Add support for gl_MaxVaryingVectors for ogl.
8a5c5e82 Merge branch 'KhronosGroup:master' into master
ae2a5629 Merge pull request #2671 from greg-lunarg/kg118
83be6021 Update known goods and CHANGES for 11.5.0
0c4c93bf Merge pull request #2670 from dneto0/fix-android-mk
e89fbf3a Android.mk: Add SpirvIntrinsics.cpp
587261a8 Atomic memory function can only be used for shader storage block member or shared variable.

Testing: checkbuild.py on Linux
Change-Id: Ic51ebac167f355a2d262a6f4ce302f23951629da
diff --git a/CHANGES.md b/CHANGES.md
index c67d169..ad4fa40 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -3,6 +3,29 @@
 All notable changes to this project will be documented in this file.
 This project adheres to [Semantic Versioning](https://semver.org/).
 
+## 11.6.0 2021-08-25
+
+### Other changes
+* Atomic memory function only for shader storage block member or shared variable
+* Add support for gl_MaxVaryingVectors for ogl
+* Fix loading bool arrays from interface blocks
+* Generate separate stores for partially swizzled memory stores
+* Allow layout(std430) uniform with GL_EXT_scalar_block_layout
+* Support for pragma STDGL invariant(all)
+* Support for GL_NV_ray_tracing_motion_blur
+
+## 11.5.0 2021-06-23
+
+### Other changes
+* Implement GLSL_EXT_shader_atomic_float2
+* Implement GL_EXT_spirv_intrinsics
+* Fixed SPIR-V remapper not remapping OpExtInst instruction set IDs
+* only declare compatibility gl_ variables in compatibility mode
+* Add support for float spec const vector initialization
+* Implement GL_EXT_subgroup_uniform_control_flow.
+* Fix arrays dimensioned with spec constant sized gl_WorkGroupSize
+* Add support for 64bit integer scalar and vector types to bitCount() builtin
+
 ## 11.4.0 2021-04-22
 
 ### Other changes
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0600516..c318eef 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -138,7 +138,8 @@
 
 if(WIN32)
     set(CMAKE_DEBUG_POSTFIX "d")
-    if(MSVC)
+    option(OVERRIDE_MSVCCRT "Overrides runtime of MSVC " ON)
+    if(MSVC AND OVERRIDE_MSVCCRT)
         include(ChooseMSVCCRT.cmake)
     endif(MSVC)
     add_definitions(-DGLSLANG_OSINCLUDE_WIN32)
@@ -197,7 +198,7 @@
     if(ENABLE_EXCEPTIONS)
         add_compile_options(/EHsc) # Enable Exceptions
 	else()
-        string(REGEX REPLACE /EHsc "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) # Try to remove default /EHsc cxx_flag
+        string(REGEX REPLACE "/EHsc" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") # Try to remove default /EHsc cxx_flag
         add_compile_options(/D_HAS_EXCEPTIONS=0)
     endif()
 endif()
diff --git a/SPIRV/GLSL.ext.NV.h b/SPIRV/GLSL.ext.NV.h
index 50146da..93c98bf 100644
--- a/SPIRV/GLSL.ext.NV.h
+++ b/SPIRV/GLSL.ext.NV.h
@@ -69,6 +69,9 @@
 //SPV_NV_raytracing
 const char* const E_SPV_NV_ray_tracing = "SPV_NV_ray_tracing";
 
+//SPV_NV_ray_tracing_motion_blur
+const char* const E_SPV_NV_ray_tracing_motion_blur = "SPV_NV_ray_tracing_motion_blur";
+
 //SPV_NV_shading_rate
 const char* const E_SPV_NV_shading_rate = "SPV_NV_shading_rate";
 
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index c767ab6..c323bcd 100644
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -179,6 +179,7 @@
     spv::Id accessChainLoad(const glslang::TType& type);
     void    accessChainStore(const glslang::TType& type, spv::Id rvalue);
     void multiTypeStore(const glslang::TType&, spv::Id rValue);
+    spv::Id convertLoadedBoolInUniformToUint(const glslang::TType& type, spv::Id nominalTypeId, spv::Id loadedId);
     glslang::TLayoutPacking getExplicitLayout(const glslang::TType& type) const;
     int getArrayStride(const glslang::TType& arrayType, glslang::TLayoutPacking, glslang::TLayoutMatrix);
     int getMatrixStride(const glslang::TType& matrixType, glslang::TLayoutPacking, glslang::TLayoutMatrix);
@@ -1032,6 +1033,10 @@
         return spv::BuiltInIncomingRayFlagsKHR;
     case glslang::EbvGeometryIndex:
         return spv::BuiltInRayGeometryIndexKHR;
+    case glslang::EbvCurrentRayTimeNV:
+        builder.addExtension(spv::E_SPV_NV_ray_tracing_motion_blur);
+        builder.addCapability(spv::CapabilityRayTracingMotionBlurNV);
+        return spv::BuiltInCurrentRayTimeNV;
 
     // barycentrics
     case glslang::EbvBaryCoordNV:
@@ -2231,6 +2236,49 @@
     }
 }
 
+spv::Id TGlslangToSpvTraverser::convertLoadedBoolInUniformToUint(const glslang::TType& type,
+                                                                 spv::Id nominalTypeId,
+                                                                 spv::Id loadedId)
+{
+    if (builder.isScalarType(nominalTypeId)) {
+        // Conversion for bool
+        spv::Id boolType = builder.makeBoolType();
+        if (nominalTypeId != boolType)
+            return builder.createBinOp(spv::OpINotEqual, boolType, loadedId, builder.makeUintConstant(0));
+    } else if (builder.isVectorType(nominalTypeId)) {
+        // Conversion for bvec
+        int vecSize = builder.getNumTypeComponents(nominalTypeId);
+        spv::Id bvecType = builder.makeVectorType(builder.makeBoolType(), vecSize);
+        if (nominalTypeId != bvecType)
+            loadedId = builder.createBinOp(spv::OpINotEqual, bvecType, loadedId,
+                makeSmearedConstant(builder.makeUintConstant(0), vecSize));
+    } else if (builder.isArrayType(nominalTypeId)) {
+        // Conversion for bool array
+        spv::Id boolArrayTypeId = convertGlslangToSpvType(type);
+        if (nominalTypeId != boolArrayTypeId)
+        {
+            // Use OpCopyLogical from SPIR-V 1.4 if available.
+            if (glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_4)
+                return builder.createUnaryOp(spv::OpCopyLogical, boolArrayTypeId, loadedId);
+
+            glslang::TType glslangElementType(type, 0);
+            spv::Id elementNominalTypeId = builder.getContainedTypeId(nominalTypeId);
+            std::vector<spv::Id> constituents;
+            for (int index = 0; index < type.getOuterArraySize(); ++index) {
+                // get the element
+                spv::Id elementValue = builder.createCompositeExtract(loadedId, elementNominalTypeId, index);
+
+                // recursively convert it
+                spv::Id elementConvertedValue = convertLoadedBoolInUniformToUint(glslangElementType, elementNominalTypeId, elementValue);
+                constituents.push_back(elementConvertedValue);
+            }
+            return builder.createCompositeConstruct(boolArrayTypeId, constituents);
+        }
+    }
+
+    return loadedId;
+}
+
 // Figure out what, if any, type changes are needed when accessing a specific built-in.
 // Returns <the type SPIR-V requires for declarion, the type to translate to on use>.
 // Also see comment for 'forceType', regarding tracking SPIR-V-required types.
@@ -2974,6 +3022,7 @@
     case glslang::EOpIgnoreIntersectionNV:
     case glslang::EOpTerminateRayNV:
     case glslang::EOpTraceNV:
+    case glslang::EOpTraceRayMotionNV:
     case glslang::EOpTraceKHR:
     case glslang::EOpExecuteCallableNV:
     case glslang::EOpExecuteCallableKHR:
@@ -3273,9 +3322,11 @@
                 bool cond = glslangOperands[arg]->getAsConstantUnion()->getConstArray()[0].getBConst();
                 operands.push_back(builder.makeIntConstant(cond ? 1 : 0));
              } else if ((arg == 10 && glslangOp == glslang::EOpTraceKHR) ||
+                        (arg == 11 && glslangOp == glslang::EOpTraceRayMotionNV) ||
                         (arg == 1  && glslangOp == glslang::EOpExecuteCallableKHR)) {
-                 const int opdNum = glslangOp == glslang::EOpTraceKHR ? 10 : 1;
-                 const int set = glslangOp == glslang::EOpTraceKHR ? 0 : 1;
+                 const int opdNum = glslangOp == glslang::EOpTraceKHR ? 10 : (glslangOp == glslang::EOpTraceRayMotionNV ? 11 : 1);
+                 const int set = glslangOp == glslang::EOpExecuteCallableKHR ? 1 : 0;
+
                  const int location = glslangOperands[opdNum]->getAsConstantUnion()->getConstArray()[0].getUConst();
                  auto itNode = locationToSymbol[set].find(location);
                  visitSymbol(itNode->second);
@@ -4356,7 +4407,6 @@
 {
     // Name and decorate the non-hidden members
     int offset = -1;
-    int locationOffset = 0;  // for use within the members of this struct
     bool memberLocationInvalid = type.isArrayOfArrays() ||
         (type.isArray() && (type.getQualifier().isArrayedIo(glslangIntermediate->getStage()) == false));
     for (int i = 0; i < (int)glslangMembers->size(); i++) {
@@ -4414,10 +4464,6 @@
         if (!memberLocationInvalid && memberQualifier.hasLocation())
             builder.addMemberDecoration(spvType, member, spv::DecorationLocation, memberQualifier.layoutLocation);
 
-        if (qualifier.hasLocation())      // track for upcoming inheritance
-            locationOffset += glslangIntermediate->computeTypeLocationSize(
-                                            glslangMember, glslangIntermediate->getStage());
-
         // component, XFB, others
         if (glslangMember.getQualifier().hasComponent())
             builder.addMemberDecoration(spvType, member, spv::DecorationComponent,
@@ -4560,19 +4606,7 @@
 
     // Need to convert to abstract types when necessary
     if (type.getBasicType() == glslang::EbtBool) {
-        if (builder.isScalarType(nominalTypeId)) {
-            // Conversion for bool
-            spv::Id boolType = builder.makeBoolType();
-            if (nominalTypeId != boolType)
-                loadedId = builder.createBinOp(spv::OpINotEqual, boolType, loadedId, builder.makeUintConstant(0));
-        } else if (builder.isVectorType(nominalTypeId)) {
-            // Conversion for bvec
-            int vecSize = builder.getNumTypeComponents(nominalTypeId);
-            spv::Id bvecType = builder.makeVectorType(builder.makeBoolType(), vecSize);
-            if (nominalTypeId != bvecType)
-                loadedId = builder.createBinOp(spv::OpINotEqual, bvecType, loadedId,
-                    makeSmearedConstant(builder.makeUintConstant(0), vecSize));
-        }
+        loadedId = convertLoadedBoolInUniformToUint(type, nominalTypeId, loadedId);
     }
 
     return loadedId;
@@ -5290,7 +5324,10 @@
 
     int components = node->getType().getVectorSize();
 
-    if (node->getOp() == glslang::EOpTextureFetch) {
+    if (node->getOp() == glslang::EOpImageLoad ||
+        node->getOp() == glslang::EOpImageLoadLod ||
+        node->getOp() == glslang::EOpTextureFetch ||
+        node->getOp() == glslang::EOpTextureFetchOffset) {
         // These must produce 4 components, per SPIR-V spec.  We'll add a conversion constructor if needed.
         // This will only happen through the HLSL path for operator[], so we do not have to handle e.g.
         // the EOpTexture/Proj/Lod/etc family.  It would be harmless to do so, but would need more logic
@@ -8292,6 +8329,11 @@
     case glslang::EOpTraceNV:
         builder.createNoResultOp(spv::OpTraceNV, operands);
         return 0;
+    case glslang::EOpTraceRayMotionNV:
+        builder.addExtension(spv::E_SPV_NV_ray_tracing_motion_blur);
+        builder.addCapability(spv::CapabilityRayTracingMotionBlurNV);
+        builder.createNoResultOp(spv::OpTraceRayMotionNV, operands);
+        return 0;
     case glslang::EOpTraceKHR:
         builder.createNoResultOp(spv::OpTraceRayKHR, operands);
         return 0;
diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp
index 0482c5a..e83306e 100644
--- a/SPIRV/SpvBuilder.cpp
+++ b/SPIRV/SpvBuilder.cpp
@@ -743,6 +743,26 @@
     }
 }
 
+// Figure out the final resulting type of the access chain.
+Id Builder::getResultingAccessChainType() const
+{
+    assert(accessChain.base != NoResult);
+    Id typeId = getTypeId(accessChain.base);
+
+    assert(isPointerType(typeId));
+    typeId = getContainedTypeId(typeId);
+
+    for (int i = 0; i < (int)accessChain.indexChain.size(); ++i) {
+        if (isStructType(typeId)) {
+            assert(isConstantScalar(accessChain.indexChain[i]));
+            typeId = getContainedTypeId(typeId, getConstantScalar(accessChain.indexChain[i]));
+        } else
+            typeId = getContainedTypeId(typeId, accessChain.indexChain[i]);
+    }
+
+    return typeId;
+}
+
 // Return the immediately contained type of a given composite type.
 Id Builder::getContainedTypeId(Id typeId) const
 {
@@ -1585,16 +1605,7 @@
 Id Builder::createAccessChain(StorageClass storageClass, Id base, const std::vector<Id>& offsets)
 {
     // Figure out the final resulting type.
-    spv::Id typeId = getTypeId(base);
-    assert(isPointerType(typeId) && offsets.size() > 0);
-    typeId = getContainedTypeId(typeId);
-    for (int i = 0; i < (int)offsets.size(); ++i) {
-        if (isStructType(typeId)) {
-            assert(isConstantScalar(offsets[i]));
-            typeId = getContainedTypeId(typeId, getConstantScalar(offsets[i]));
-        } else
-            typeId = getContainedTypeId(typeId, offsets[i]);
-    }
+    Id typeId = getResultingAccessChainType();
     typeId = makePointer(storageClass, typeId);
 
     // Make the instruction
@@ -2794,28 +2805,59 @@
     assert(accessChain.isRValue == false);
 
     transferAccessChainSwizzle(true);
-    Id base = collapseAccessChain();
-    addDecoration(base, nonUniform);
 
-    Id source = rvalue;
+    // If a swizzle exists and is not full and is not dynamic, then the swizzle will be broken into individual stores.
+    if (accessChain.swizzle.size() > 0 &&
+        getNumTypeComponents(getResultingAccessChainType()) != (int)accessChain.swizzle.size() &&
+        accessChain.component == NoResult) {
+        for (unsigned int i = 0; i < accessChain.swizzle.size(); ++i) {
+            accessChain.indexChain.push_back(makeUintConstant(accessChain.swizzle[i]));
+            accessChain.instr = NoResult;
 
-    // dynamic component should be gone
-    assert(accessChain.component == NoResult);
+            Id base = collapseAccessChain();
+            addDecoration(base, nonUniform);
 
-    // If swizzle still exists, it is out-of-order or not full, we must load the target vector,
-    // extract and insert elements to perform writeMask and/or swizzle.
-    if (accessChain.swizzle.size() > 0) {
-        Id tempBaseId = createLoad(base, spv::NoPrecision);
-        source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, source, accessChain.swizzle);
+            accessChain.indexChain.pop_back();
+            accessChain.instr = NoResult;
+
+            // dynamic component should be gone
+            assert(accessChain.component == NoResult);
+
+            Id source = createCompositeExtract(rvalue, getContainedTypeId(getTypeId(rvalue)), i);
+
+            // take LSB of alignment
+            alignment = alignment & ~(alignment & (alignment-1));
+            if (getStorageClass(base) == StorageClassPhysicalStorageBufferEXT) {
+                memoryAccess = (spv::MemoryAccessMask)(memoryAccess | spv::MemoryAccessAlignedMask);
+            }
+
+            createStore(source, base, memoryAccess, scope, alignment);
+        }
     }
+    else {
+        Id base = collapseAccessChain();
+        addDecoration(base, nonUniform);
 
-    // take LSB of alignment
-    alignment = alignment & ~(alignment & (alignment-1));
-    if (getStorageClass(base) == StorageClassPhysicalStorageBufferEXT) {
-        memoryAccess = (spv::MemoryAccessMask)(memoryAccess | spv::MemoryAccessAlignedMask);
+        Id source = rvalue;
+
+        // dynamic component should be gone
+        assert(accessChain.component == NoResult);
+
+        // If swizzle still exists, it may be out-of-order, we must load the target vector,
+        // extract and insert elements to perform writeMask and/or swizzle.
+        if (accessChain.swizzle.size() > 0) {
+            Id tempBaseId = createLoad(base, spv::NoPrecision);
+            source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, source, accessChain.swizzle);
+        }
+
+        // take LSB of alignment
+        alignment = alignment & ~(alignment & (alignment-1));
+        if (getStorageClass(base) == StorageClassPhysicalStorageBufferEXT) {
+            memoryAccess = (spv::MemoryAccessMask)(memoryAccess | spv::MemoryAccessAlignedMask);
+        }
+
+        createStore(source, base, memoryAccess, scope, alignment);
     }
-
-    createStore(source, base, memoryAccess, scope, alignment);
 }
 
 // Comments in header
diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h
index 73847e1..251b9ee 100644
--- a/SPIRV/SpvBuilder.h
+++ b/SPIRV/SpvBuilder.h
@@ -202,6 +202,7 @@
     StorageClass getTypeStorageClass(Id typeId) const { return module.getStorageClass(typeId); }
     ImageFormat getImageTypeFormat(Id typeId) const
         { return (ImageFormat)module.getInstruction(typeId)->getImmediateOperand(6); }
+    Id getResultingAccessChainType() const;
 
     bool isPointer(Id resultId)      const { return isPointerType(getTypeId(resultId)); }
     bool isScalar(Id resultId)       const { return isScalarType(getTypeId(resultId)); }
diff --git a/SPIRV/doc.cpp b/SPIRV/doc.cpp
index 31b20a1..dbdf707 100644
--- a/SPIRV/doc.cpp
+++ b/SPIRV/doc.cpp
@@ -426,6 +426,7 @@
     case BuiltInSMCountNV:              return "SMCountNV";
     case BuiltInWarpIDNV:               return "WarpIDNV";
     case BuiltInSMIDNV:                 return "SMIDNV";
+    case BuiltInCurrentRayTimeNV:       return "CurrentRayTimeNV";
 
     default: return "Bad";
     }
@@ -916,6 +917,7 @@
     case CapabilityPerViewAttributesNV:             return "PerViewAttributesNV";
     case CapabilityGroupNonUniformPartitionedNV:    return "GroupNonUniformPartitionedNV";
     case CapabilityRayTracingNV:                    return "RayTracingNV";
+    case CapabilityRayTracingMotionBlurNV:          return "RayTracingMotionBlurNV";
     case CapabilityRayTracingKHR:                   return "RayTracingKHR";
     case CapabilityRayQueryKHR:                     return "RayQueryKHR";
     case CapabilityRayTracingProvisionalKHR:        return "RayTracingProvisionalKHR";
@@ -1382,6 +1384,7 @@
     case OpTerminateRayNV:                    return "OpTerminateRayNV";
     case OpTerminateRayKHR:                   return "OpTerminateRayKHR";
     case OpTraceNV:                           return "OpTraceNV";
+    case OpTraceRayMotionNV:                  return "OpTraceRayMotionNV";
     case OpTraceRayKHR:                       return "OpTraceRayKHR";
     case OpTypeAccelerationStructureKHR:      return "OpTypeAccelerationStructureKHR";
     case OpExecuteCallableNV:                 return "OpExecuteCallableNV";
@@ -2812,6 +2815,20 @@
     InstructionDesc[OpTraceNV].operands.push(OperandId, "'Payload'");
     InstructionDesc[OpTraceNV].setResultAndType(false, false);
 
+    InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Acceleration Structure'");
+    InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Flags'");
+    InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Cull Mask'");
+    InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'SBT Record Offset'");
+    InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'SBT Record Stride'");
+    InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Miss Index'");
+    InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Origin'");
+    InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'TMin'");
+    InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Direction'");
+    InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'TMax'");
+    InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Time'");
+    InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Payload'");
+    InstructionDesc[OpTraceRayMotionNV].setResultAndType(false, false);
+
     InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Acceleration Structure'");
     InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Ray Flags'");
     InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Cull Mask'");
diff --git a/SPIRV/spirv.hpp b/SPIRV/spirv.hpp
index 317db81..e0fe249 100644
--- a/SPIRV/spirv.hpp
+++ b/SPIRV/spirv.hpp
@@ -652,6 +652,7 @@
     BuiltInHitTNV = 5332,
     BuiltInHitKindKHR = 5333,
     BuiltInHitKindNV = 5333,
+    BuiltInCurrentRayTimeNV = 5334,
     BuiltInIncomingRayFlagsKHR = 5351,
     BuiltInIncomingRayFlagsNV = 5351,
     BuiltInRayGeometryIndexKHR = 5352,
@@ -988,6 +989,7 @@
     CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
     CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
     CapabilityRayTracingNV = 5340,
+    CapabilityRayTracingMotionBlurNV = 5341,
     CapabilityVulkanMemoryModel = 5345,
     CapabilityVulkanMemoryModelKHR = 5345,
     CapabilityVulkanMemoryModelDeviceScope = 5346,
@@ -1503,6 +1505,8 @@
     OpIgnoreIntersectionNV = 5335,
     OpTerminateRayNV = 5336,
     OpTraceNV = 5337,
+    OpTraceMotionNV = 5338,
+    OpTraceRayMotionNV = 5339,
     OpTypeAccelerationStructureKHR = 5341,
     OpTypeAccelerationStructureNV = 5341,
     OpExecuteCallableNV = 5344,
@@ -2090,6 +2094,8 @@
     case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
     case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
     case OpTraceNV: *hasResult = false; *hasResultType = false; break;
+    case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
+    case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
     case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
     case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
     case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp
index c6dc597..e62f92f 100644
--- a/StandAlone/StandAlone.cpp
+++ b/StandAlone/StandAlone.cpp
@@ -347,13 +347,13 @@
         lang = FindLanguage(argv[arg++], false);
     }
 
-    if ((argc - arg) > 2 && isdigit(argv[arg+0][0]) && isdigit(argv[arg+1][0])) {
+    if ((argc - arg) >= 2 && isdigit(argv[arg+0][0]) && isdigit(argv[arg+1][0])) {
         // Parse a per-set binding base
-        while ((argc - arg) > 2 && isdigit(argv[arg+0][0]) && isdigit(argv[arg+1][0])) {
+        do {
             const int baseNum = atoi(argv[arg++]);
             const int setNum = atoi(argv[arg++]);
             perSetBase[setNum] = baseNum;
-        }
+        } while ((argc - arg) >= 2 && isdigit(argv[arg + 0][0]) && isdigit(argv[arg + 1][0]));
     } else {
         // Parse single binding base
         singleBase = atoi(argv[arg++]);
diff --git a/Test/GL_ARB_gpu_shader5.u2i.vert b/Test/GL_ARB_gpu_shader5.u2i.vert
new file mode 100644
index 0000000..0caa9bc
--- /dev/null
+++ b/Test/GL_ARB_gpu_shader5.u2i.vert
@@ -0,0 +1,11 @@
+#version 150
+#extension GL_ARB_gpu_shader5 : require
+
+uniform int u1;
+uniform int u2;
+out   vec4 result;
+void main()
+{
+    uint v = 0;
+    v = uint(u2) - u1;  // implicit conversions
+}
diff --git a/Test/atomicAdd.comp b/Test/atomicAdd.comp
new file mode 100644
index 0000000..27dfa13
--- /dev/null
+++ b/Test/atomicAdd.comp
@@ -0,0 +1,19 @@
+#version 320 es
+layout(local_size_x = 1) in;
+
+struct structType{
+    int y[3];
+};
+
+layout(std430) buffer t2 {
+    structType f;
+} t;
+
+buffer coherent Buffer { int x; };
+int z;
+
+void main() {
+  atomicAdd(x, 1);
+  atomicAdd(t.f.y[1], 1);
+  atomicAdd(z, 1);
+}
\ No newline at end of file
diff --git a/Test/atomicCounterARBOps.vert b/Test/atomicCounterARBOps.vert
new file mode 100644
index 0000000..5eb6637
--- /dev/null
+++ b/Test/atomicCounterARBOps.vert
@@ -0,0 +1,28 @@
+#version 450 core
+#extension GL_ARB_shader_atomic_counters: enable
+#extension GL_ARB_shader_atomic_counter_ops:enable
+
+layout(binding = 0) uniform atomic_uint counter;
+
+out highp vec4 vsColor;
+
+void main(){
+    vec4 outColor = vec4(1.0);
+    uint ret;
+
+    ret = atomicCounterAddARB(counter, 4u);
+    ret = atomicCounterSubtractARB(counter, 4u);
+    ret = atomicCounterMinARB(counter, 4u);
+    ret = atomicCounterMaxARB(counter, 4u);
+    ret = atomicCounterAndARB(counter, 4u);
+    ret = atomicCounterOrARB(counter, 4u);
+    ret = atomicCounterXorARB(counter, 4u);
+    ret = atomicCounterExchangeARB(counter, 4u);
+    ret = atomicCounterCompSwapARB(counter, 4u, 4u);
+
+    uint after = atomicCounter(counter);
+    if (after == ret)
+        outColor = vec4(0.0);
+
+    vsColor = outColor;
+}
\ No newline at end of file
diff --git a/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out b/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out
index 824aa49..f45a768 100644
--- a/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out
+++ b/Test/baseLegalResults/hlsl.partialFlattenLocal.vert.out
@@ -1,18 +1,18 @@
 hlsl.partialFlattenLocal.vert
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 159
+// Id's are bound by 164
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Vertex 4  "main" 83 86
+                              EntryPoint Vertex 4  "main" 86 89
                               Source HLSL 500
                               Name 4  "main"
-                              Name 83  "pos"
-                              Name 86  "@entryPointOutput"
-                              Decorate 83(pos) Location 0
-                              Decorate 86(@entryPointOutput) BuiltIn Position
+                              Name 86  "pos"
+                              Name 89  "@entryPointOutput"
+                              Decorate 86(pos) Location 0
+                              Decorate 89(@entryPointOutput) BuiltIn Position
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -33,49 +33,54 @@
               37:    6(float) Constant 1065353216
               38:   18(fvec2) ConstantComposite 32 37
               39:             TypePointer Function 18(fvec2)
+              42:             TypePointer Function 6(float)
               54:             TypeBool
-              82:             TypePointer Input 7(fvec4)
-         83(pos):     82(ptr) Variable Input
-              85:             TypePointer Output 7(fvec4)
-86(@entryPointOutput):     85(ptr) Variable Output
-             131:             TypePointer Function 17
-             133:             TypePointer Function 20
+              64:     15(int) Constant 0
+              67:     15(int) Constant 1
+              85:             TypePointer Input 7(fvec4)
+         86(pos):     85(ptr) Variable Input
+              88:             TypePointer Output 7(fvec4)
+89(@entryPointOutput):     88(ptr) Variable Output
+             135:             TypePointer Function 17
+             137:             TypePointer Function 20
          4(main):           2 Function None 3
                5:             Label
-             134:    133(ptr) Variable Function
-             132:    131(ptr) Variable Function
-              84:    7(fvec4) Load 83(pos)
-             137:     34(ptr) AccessChain 132 25
-                              Store 137 33
-             138:     39(ptr) AccessChain 134 25
-                              Store 138 38
-                              Branch 101
-             101:             Label
-             158:     21(int) Phi 25 5 119 105
-             104:    54(bool) SLessThan 158 31
-                              LoopMerge 120 105 None
-                              BranchConditional 104 105 120
-             105:               Label
-             139:     39(ptr)   AccessChain 134 158
-             109:   18(fvec2)   Load 139
-             140:     34(ptr)   AccessChain 132 158
-             111:   14(fvec3)   Load 140
-             112:   18(fvec2)   VectorShuffle 111 111 0 1
-             113:   18(fvec2)   FAdd 112 109
-             141:     34(ptr)   AccessChain 132 158
-             115:   14(fvec3)   Load 141
-             116:   14(fvec3)   VectorShuffle 115 113 3 4 2
-                                Store 141 116
-             119:     21(int)   IAdd 158 31
-                                Branch 101
-             120:             Label
-             143:          17 Load 132
-             157:   14(fvec3) CompositeExtract 143 0
-             125:    6(float) CompositeExtract 157 0
-             126:    6(float) CompositeExtract 157 1
-             127:    6(float) CompositeExtract 157 2
-             128:    7(fvec4) CompositeConstruct 125 126 127 32
-             129:    7(fvec4) FAdd 84 128
-                              Store 86(@entryPointOutput) 129
+             138:    137(ptr) Variable Function
+             136:    135(ptr) Variable Function
+              87:    7(fvec4) Load 86(pos)
+             141:     34(ptr) AccessChain 136 25
+                              Store 141 33
+             142:     39(ptr) AccessChain 138 25
+                              Store 142 38
+                              Branch 104
+             104:             Label
+             163:     21(int) Phi 25 5 123 108
+             107:    54(bool) SLessThan 163 31
+                              LoopMerge 124 108 None
+                              BranchConditional 107 108 124
+             108:               Label
+             143:     39(ptr)   AccessChain 138 163
+             112:   18(fvec2)   Load 143
+             144:     34(ptr)   AccessChain 136 163
+             114:   14(fvec3)   Load 144
+             115:   18(fvec2)   VectorShuffle 114 114 0 1
+             116:   18(fvec2)   FAdd 115 112
+             145:     42(ptr)   AccessChain 136 163 64
+             118:    6(float)   CompositeExtract 116 0
+                                Store 145 118
+             146:     42(ptr)   AccessChain 136 163 67
+             120:    6(float)   CompositeExtract 116 1
+                                Store 146 120
+             123:     21(int)   IAdd 163 31
+                                Branch 104
+             124:             Label
+             148:          17 Load 136
+             162:   14(fvec3) CompositeExtract 148 0
+             129:    6(float) CompositeExtract 162 0
+             130:    6(float) CompositeExtract 162 1
+             131:    6(float) CompositeExtract 162 2
+             132:    7(fvec4) CompositeConstruct 129 130 131 32
+             133:    7(fvec4) FAdd 87 132
+                              Store 89(@entryPointOutput) 133
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/GL_ARB_gpu_shader5.u2i.vert.out b/Test/baseResults/GL_ARB_gpu_shader5.u2i.vert.out
new file mode 100644
index 0000000..c7b3455
--- /dev/null
+++ b/Test/baseResults/GL_ARB_gpu_shader5.u2i.vert.out
@@ -0,0 +1,57 @@
+GL_ARB_gpu_shader5.u2i.vert
+WARNING: 0:2: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5
+
+Shader version: 150
+Requested GL_ARB_gpu_shader5
+0:? Sequence
+0:7  Function Definition: main( ( global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      Sequence
+0:9        move second child to first child ( temp uint)
+0:9          'v' ( temp uint)
+0:9          Constant:
+0:9            0 (const uint)
+0:10      move second child to first child ( temp uint)
+0:10        'v' ( temp uint)
+0:10        subtract ( temp uint)
+0:10          Convert int to uint ( temp uint)
+0:10            'u2' ( uniform int)
+0:10          Convert int to uint ( temp uint)
+0:10            'u1' ( uniform int)
+0:?   Linker Objects
+0:?     'u1' ( uniform int)
+0:?     'u2' ( uniform int)
+0:?     'result' ( smooth out 4-component vector of float)
+0:?     'gl_VertexID' ( gl_VertexId int VertexId)
+0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 150
+Requested GL_ARB_gpu_shader5
+0:? Sequence
+0:7  Function Definition: main( ( global void)
+0:7    Function Parameters: 
+0:9    Sequence
+0:9      Sequence
+0:9        move second child to first child ( temp uint)
+0:9          'v' ( temp uint)
+0:9          Constant:
+0:9            0 (const uint)
+0:10      move second child to first child ( temp uint)
+0:10        'v' ( temp uint)
+0:10        subtract ( temp uint)
+0:10          Convert int to uint ( temp uint)
+0:10            'u2' ( uniform int)
+0:10          Convert int to uint ( temp uint)
+0:10            'u1' ( uniform int)
+0:?   Linker Objects
+0:?     'u1' ( uniform int)
+0:?     'u2' ( uniform int)
+0:?     'result' ( smooth out 4-component vector of float)
+0:?     'gl_VertexID' ( gl_VertexId int VertexId)
+0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/atomicAdd.comp.out b/Test/baseResults/atomicAdd.comp.out
new file mode 100644
index 0000000..6752a71
--- /dev/null
+++ b/Test/baseResults/atomicAdd.comp.out
@@ -0,0 +1,87 @@
+atomicAdd.comp
+ERROR: 0:18: 'atomicAdd' : Atomic memory function can only be used for shader storage block member or shared variable. 
+ERROR: 1 compilation errors.  No code generated.
+
+
+Shader version: 320
+local_size = (1, 1, 1)
+ERROR: node is still EOpNull!
+0:15  Function Definition: main( ( global void)
+0:15    Function Parameters: 
+0:16    Sequence
+0:16      AtomicAdd ( global highp int)
+0:16        x: direct index for structure (layout( column_major shared) coherent buffer highp int)
+0:16          'anon@0' (layout( column_major shared) coherent buffer block{layout( column_major shared) coherent buffer highp int x})
+0:16          Constant:
+0:16            0 (const uint)
+0:16        Constant:
+0:16          1 (const int)
+0:17      AtomicAdd ( global highp int)
+0:17        direct index (layout( std430) temp highp int)
+0:17          y: direct index for structure (layout( std430) global 3-element array of highp int)
+0:17            f: direct index for structure (layout( column_major std430 offset=0) buffer structure{layout( std430) global 3-element array of highp int y})
+0:17              't' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{layout( std430) global 3-element array of highp int y} f})
+0:17              Constant:
+0:17                0 (const int)
+0:17            Constant:
+0:17              0 (const int)
+0:17          Constant:
+0:17            1 (const int)
+0:17        Constant:
+0:17          1 (const int)
+0:18      AtomicAdd ( global highp int)
+0:18        'z' ( global highp int)
+0:18        Constant:
+0:18          1 (const int)
+0:?   Linker Objects
+0:?     'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize)
+0:?       1 (const uint)
+0:?       1 (const uint)
+0:?       1 (const uint)
+0:?     't' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{layout( std430) global 3-element array of highp int y} f})
+0:?     'anon@0' (layout( column_major shared) coherent buffer block{layout( column_major shared) coherent buffer highp int x})
+0:?     'z' ( global highp int)
+
+
+Linked compute stage:
+
+
+Shader version: 320
+local_size = (1, 1, 1)
+ERROR: node is still EOpNull!
+0:15  Function Definition: main( ( global void)
+0:15    Function Parameters: 
+0:16    Sequence
+0:16      AtomicAdd ( global highp int)
+0:16        x: direct index for structure (layout( column_major shared) coherent buffer highp int)
+0:16          'anon@0' (layout( column_major shared) coherent buffer block{layout( column_major shared) coherent buffer highp int x})
+0:16          Constant:
+0:16            0 (const uint)
+0:16        Constant:
+0:16          1 (const int)
+0:17      AtomicAdd ( global highp int)
+0:17        direct index (layout( std430) temp highp int)
+0:17          y: direct index for structure (layout( std430) global 3-element array of highp int)
+0:17            f: direct index for structure (layout( column_major std430 offset=0) buffer structure{layout( std430) global 3-element array of highp int y})
+0:17              't' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{layout( std430) global 3-element array of highp int y} f})
+0:17              Constant:
+0:17                0 (const int)
+0:17            Constant:
+0:17              0 (const int)
+0:17          Constant:
+0:17            1 (const int)
+0:17        Constant:
+0:17          1 (const int)
+0:18      AtomicAdd ( global highp int)
+0:18        'z' ( global highp int)
+0:18        Constant:
+0:18          1 (const int)
+0:?   Linker Objects
+0:?     'gl_WorkGroupSize' ( const highp 3-component vector of uint WorkGroupSize)
+0:?       1 (const uint)
+0:?       1 (const uint)
+0:?       1 (const uint)
+0:?     't' (layout( column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{layout( std430) global 3-element array of highp int y} f})
+0:?     'anon@0' (layout( column_major shared) coherent buffer block{layout( column_major shared) coherent buffer highp int x})
+0:?     'z' ( global highp int)
+
diff --git a/Test/baseResults/atomicCounterARBOps.vert.out b/Test/baseResults/atomicCounterARBOps.vert.out
new file mode 100644
index 0000000..ebb4411
--- /dev/null
+++ b/Test/baseResults/atomicCounterARBOps.vert.out
@@ -0,0 +1,201 @@
+atomicCounterARBOps.vert
+Shader version: 450
+Requested GL_ARB_shader_atomic_counter_ops
+Requested GL_ARB_shader_atomic_counters
+0:? Sequence
+0:9  Function Definition: main( ( global void)
+0:9    Function Parameters: 
+0:10    Sequence
+0:10      Sequence
+0:10        move second child to first child ( temp 4-component vector of float)
+0:10          'outColor' ( temp 4-component vector of float)
+0:10          Constant:
+0:10            1.000000
+0:10            1.000000
+0:10            1.000000
+0:10            1.000000
+0:13      move second child to first child ( temp uint)
+0:13        'ret' ( temp uint)
+0:13        AtomicCounterAdd ( global uint)
+0:13          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:13          Constant:
+0:13            4 (const uint)
+0:14      move second child to first child ( temp uint)
+0:14        'ret' ( temp uint)
+0:14        AtomicCounterSubtract ( global uint)
+0:14          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:14          Constant:
+0:14            4 (const uint)
+0:15      move second child to first child ( temp uint)
+0:15        'ret' ( temp uint)
+0:15        AtomicCounterMin ( global uint)
+0:15          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:15          Constant:
+0:15            4 (const uint)
+0:16      move second child to first child ( temp uint)
+0:16        'ret' ( temp uint)
+0:16        AtomicCounterMax ( global uint)
+0:16          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:16          Constant:
+0:16            4 (const uint)
+0:17      move second child to first child ( temp uint)
+0:17        'ret' ( temp uint)
+0:17        AtomicCounterAnd ( global uint)
+0:17          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:17          Constant:
+0:17            4 (const uint)
+0:18      move second child to first child ( temp uint)
+0:18        'ret' ( temp uint)
+0:18        AtomicCounterOr ( global uint)
+0:18          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:18          Constant:
+0:18            4 (const uint)
+0:19      move second child to first child ( temp uint)
+0:19        'ret' ( temp uint)
+0:19        AtomicCounterXor ( global uint)
+0:19          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:19          Constant:
+0:19            4 (const uint)
+0:20      move second child to first child ( temp uint)
+0:20        'ret' ( temp uint)
+0:20        AtomicCounterExchange ( global uint)
+0:20          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:20          Constant:
+0:20            4 (const uint)
+0:21      move second child to first child ( temp uint)
+0:21        'ret' ( temp uint)
+0:21        AtomicCounterCompSwap ( global uint)
+0:21          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:21          Constant:
+0:21            4 (const uint)
+0:21          Constant:
+0:21            4 (const uint)
+0:23      Sequence
+0:23        move second child to first child ( temp uint)
+0:23          'after' ( temp uint)
+0:23          AtomicCounter ( global uint)
+0:23            'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:24      Test condition and select ( temp void)
+0:24        Condition
+0:24        Compare Equal ( temp bool)
+0:24          'after' ( temp uint)
+0:24          'ret' ( temp uint)
+0:24        true case
+0:25        move second child to first child ( temp 4-component vector of float)
+0:25          'outColor' ( temp 4-component vector of float)
+0:25          Constant:
+0:25            0.000000
+0:25            0.000000
+0:25            0.000000
+0:25            0.000000
+0:27      move second child to first child ( temp 4-component vector of float)
+0:27        'vsColor' ( smooth out 4-component vector of float)
+0:27        'outColor' ( temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:?     'vsColor' ( smooth out 4-component vector of float)
+0:?     'gl_VertexID' ( gl_VertexId int VertexId)
+0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)
+
+
+Linked vertex stage:
+
+
+Shader version: 450
+Requested GL_ARB_shader_atomic_counter_ops
+Requested GL_ARB_shader_atomic_counters
+0:? Sequence
+0:9  Function Definition: main( ( global void)
+0:9    Function Parameters: 
+0:10    Sequence
+0:10      Sequence
+0:10        move second child to first child ( temp 4-component vector of float)
+0:10          'outColor' ( temp 4-component vector of float)
+0:10          Constant:
+0:10            1.000000
+0:10            1.000000
+0:10            1.000000
+0:10            1.000000
+0:13      move second child to first child ( temp uint)
+0:13        'ret' ( temp uint)
+0:13        AtomicCounterAdd ( global uint)
+0:13          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:13          Constant:
+0:13            4 (const uint)
+0:14      move second child to first child ( temp uint)
+0:14        'ret' ( temp uint)
+0:14        AtomicCounterSubtract ( global uint)
+0:14          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:14          Constant:
+0:14            4 (const uint)
+0:15      move second child to first child ( temp uint)
+0:15        'ret' ( temp uint)
+0:15        AtomicCounterMin ( global uint)
+0:15          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:15          Constant:
+0:15            4 (const uint)
+0:16      move second child to first child ( temp uint)
+0:16        'ret' ( temp uint)
+0:16        AtomicCounterMax ( global uint)
+0:16          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:16          Constant:
+0:16            4 (const uint)
+0:17      move second child to first child ( temp uint)
+0:17        'ret' ( temp uint)
+0:17        AtomicCounterAnd ( global uint)
+0:17          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:17          Constant:
+0:17            4 (const uint)
+0:18      move second child to first child ( temp uint)
+0:18        'ret' ( temp uint)
+0:18        AtomicCounterOr ( global uint)
+0:18          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:18          Constant:
+0:18            4 (const uint)
+0:19      move second child to first child ( temp uint)
+0:19        'ret' ( temp uint)
+0:19        AtomicCounterXor ( global uint)
+0:19          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:19          Constant:
+0:19            4 (const uint)
+0:20      move second child to first child ( temp uint)
+0:20        'ret' ( temp uint)
+0:20        AtomicCounterExchange ( global uint)
+0:20          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:20          Constant:
+0:20            4 (const uint)
+0:21      move second child to first child ( temp uint)
+0:21        'ret' ( temp uint)
+0:21        AtomicCounterCompSwap ( global uint)
+0:21          'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:21          Constant:
+0:21            4 (const uint)
+0:21          Constant:
+0:21            4 (const uint)
+0:23      Sequence
+0:23        move second child to first child ( temp uint)
+0:23          'after' ( temp uint)
+0:23          AtomicCounter ( global uint)
+0:23            'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:24      Test condition and select ( temp void)
+0:24        Condition
+0:24        Compare Equal ( temp bool)
+0:24          'after' ( temp uint)
+0:24          'ret' ( temp uint)
+0:24        true case
+0:25        move second child to first child ( temp 4-component vector of float)
+0:25          'outColor' ( temp 4-component vector of float)
+0:25          Constant:
+0:25            0.000000
+0:25            0.000000
+0:25            0.000000
+0:25            0.000000
+0:27      move second child to first child ( temp 4-component vector of float)
+0:27        'vsColor' ( smooth out 4-component vector of float)
+0:27        'outColor' ( temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'counter' (layout( binding=0 offset=0) uniform atomic_uint)
+0:?     'vsColor' ( smooth out 4-component vector of float)
+0:?     'gl_VertexID' ( gl_VertexId int VertexId)
+0:?     'gl_InstanceID' ( gl_InstanceId int InstanceId)
+
diff --git a/Test/baseResults/hlsl.imagefetch-subvec4.comp.out b/Test/baseResults/hlsl.imagefetch-subvec4.comp.out
index a12c59f..ff201eb 100644
--- a/Test/baseResults/hlsl.imagefetch-subvec4.comp.out
+++ b/Test/baseResults/hlsl.imagefetch-subvec4.comp.out
@@ -2,35 +2,204 @@
 Shader version: 500
 local_size = (8, 8, 8)
 0:? Sequence
-0:6  Function Definition: @main(vu3; ( temp void)
-0:6    Function Parameters: 
-0:6      'tid' ( in 3-component vector of uint)
+0:21  Function Definition: @main(vu3; ( temp void)
+0:21    Function Parameters: 
+0:21      'tid' ( in 3-component vector of uint)
 0:?     Sequence
-0:7      Sequence
-0:7        move second child to first child ( temp uint)
-0:7          'storeTemp' ( temp uint)
-0:7          Convert int to uint ( temp uint)
-0:7            textureFetch ( temp int)
-0:7              'IN' (layout( binding=0) uniform itexture3D)
-0:7              'tid' ( in 3-component vector of uint)
-0:7              Constant:
-0:7                0 (const int)
-0:7        imageStore ( temp void)
-0:7          'OUT' (layout( binding=1 r32ui) uniform uimage3D)
-0:7          'tid' ( in 3-component vector of uint)
-0:7          'storeTemp' ( temp uint)
-0:7        'storeTemp' ( temp uint)
-0:6  Function Definition: main( ( temp void)
-0:6    Function Parameters: 
+0:22      Sequence
+0:22        move second child to first child ( temp float)
+0:22          'f' ( temp float)
+0:22          Constant:
+0:22            0.000000
+0:23      add second child into first child ( temp float)
+0:23        'f' ( temp float)
+0:23        textureFetch ( temp float)
+0:23          'i1D' (layout( binding=0) uniform texture1D)
+0:23          direct index ( temp uint)
+0:23            'tid' ( in 3-component vector of uint)
+0:23            Constant:
+0:23              0 (const int)
+0:23          Constant:
+0:23            0 (const int)
+0:24      add second child into first child ( temp float)
+0:24        'f' ( temp float)
+0:24        textureFetch ( temp float)
+0:24          'i2D' (layout( binding=1) uniform texture2D)
+0:24          vector swizzle ( temp 2-component vector of uint)
+0:24            'tid' ( in 3-component vector of uint)
+0:24            Sequence
+0:24              Constant:
+0:24                0 (const int)
+0:24              Constant:
+0:24                1 (const int)
+0:24          Constant:
+0:24            0 (const int)
+0:25      add second child into first child ( temp float)
+0:25        'f' ( temp float)
+0:25        textureFetch ( temp float)
+0:25          'i3D' (layout( binding=2) uniform texture3D)
+0:25          'tid' ( in 3-component vector of uint)
+0:25          Constant:
+0:25            0 (const int)
+0:26      add second child into first child ( temp float)
+0:26        'f' ( temp float)
+0:26        textureFetch ( temp float)
+0:26          'i1DArray' (layout( binding=3) uniform texture1DArray)
+0:26          vector swizzle ( temp 2-component vector of uint)
+0:26            'tid' ( in 3-component vector of uint)
+0:26            Sequence
+0:26              Constant:
+0:26                0 (const int)
+0:26              Constant:
+0:26                1 (const int)
+0:26          Constant:
+0:26            0 (const int)
+0:27      add second child into first child ( temp float)
+0:27        'f' ( temp float)
+0:27        textureFetch ( temp float)
+0:27          'i2DArray' (layout( binding=4) uniform texture2DArray)
+0:27          'tid' ( in 3-component vector of uint)
+0:27          Constant:
+0:27            0 (const int)
+0:28      add second child into first child ( temp float)
+0:28        'f' ( temp float)
+0:28        Construct float ( temp float)
+0:?           textureFetch ( temp 4-component vector of float)
+0:28            'i2DMS' (layout( binding=5) uniform texture2DMS)
+0:28            Convert uint to int ( temp 2-component vector of int)
+0:28              vector swizzle ( temp 2-component vector of uint)
+0:28                'tid' ( in 3-component vector of uint)
+0:28                Sequence
+0:28                  Constant:
+0:28                    0 (const int)
+0:28                  Constant:
+0:28                    1 (const int)
+0:28            Constant:
+0:28              1 (const int)
+0:29      add second child into first child ( temp float)
+0:29        'f' ( temp float)
+0:29        Construct float ( temp float)
+0:?           textureFetch ( temp 4-component vector of float)
+0:29            'i2DMSArray' (layout( binding=6) uniform texture2DMSArray)
+0:29            Convert uint to int ( temp 3-component vector of int)
+0:29              'tid' ( in 3-component vector of uint)
+0:29            Constant:
+0:29              3 (const int)
+0:31      Sequence
+0:31        move second child to first child ( temp int)
+0:31          'i' ( temp int)
+0:31          Constant:
+0:31            0 (const int)
+0:32      add second child into first child ( temp int)
+0:32        'i' ( temp int)
+0:32        textureFetch ( temp int)
+0:32          'ii1D' (layout( binding=7) uniform itexture1D)
+0:32          direct index ( temp uint)
+0:32            'tid' ( in 3-component vector of uint)
+0:32            Constant:
+0:32              0 (const int)
+0:32          Constant:
+0:32            0 (const int)
+0:33      add second child into first child ( temp int)
+0:33        'i' ( temp int)
+0:33        textureFetch ( temp int)
+0:33          'ii2D' (layout( binding=8) uniform itexture2D)
+0:33          vector swizzle ( temp 2-component vector of uint)
+0:33            'tid' ( in 3-component vector of uint)
+0:33            Sequence
+0:33              Constant:
+0:33                0 (const int)
+0:33              Constant:
+0:33                1 (const int)
+0:33          Constant:
+0:33            0 (const int)
+0:34      add second child into first child ( temp int)
+0:34        'i' ( temp int)
+0:34        textureFetch ( temp int)
+0:34          'ii3D' (layout( binding=9) uniform itexture3D)
+0:34          'tid' ( in 3-component vector of uint)
+0:34          Constant:
+0:34            0 (const int)
+0:35      add second child into first child ( temp int)
+0:35        'i' ( temp int)
+0:35        textureFetch ( temp int)
+0:35          'ii1DArray' (layout( binding=10) uniform itexture1DArray)
+0:35          vector swizzle ( temp 2-component vector of uint)
+0:35            'tid' ( in 3-component vector of uint)
+0:35            Sequence
+0:35              Constant:
+0:35                0 (const int)
+0:35              Constant:
+0:35                1 (const int)
+0:35          Constant:
+0:35            0 (const int)
+0:36      add second child into first child ( temp int)
+0:36        'i' ( temp int)
+0:36        textureFetch ( temp int)
+0:36          'ii2DArray' (layout( binding=11) uniform itexture2DArray)
+0:36          'tid' ( in 3-component vector of uint)
+0:36          Constant:
+0:36            0 (const int)
+0:37      add second child into first child ( temp int)
+0:37        'i' ( temp int)
+0:37        Construct int ( temp int)
+0:?           textureFetch ( temp 4-component vector of int)
+0:37            'ii2DMS' (layout( binding=12) uniform itexture2DMS)
+0:37            Convert uint to int ( temp 2-component vector of int)
+0:37              vector swizzle ( temp 2-component vector of uint)
+0:37                'tid' ( in 3-component vector of uint)
+0:37                Sequence
+0:37                  Constant:
+0:37                    0 (const int)
+0:37                  Constant:
+0:37                    1 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:38      add second child into first child ( temp int)
+0:38        'i' ( temp int)
+0:38        Construct int ( temp int)
+0:?           textureFetch ( temp 4-component vector of int)
+0:38            'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray)
+0:38            Convert uint to int ( temp 3-component vector of int)
+0:38              'tid' ( in 3-component vector of uint)
+0:38            Constant:
+0:38              3 (const int)
+0:40      Sequence
+0:40        move second child to first child ( temp float)
+0:40          'storeTemp' ( temp float)
+0:40          add ( temp float)
+0:40            'f' ( temp float)
+0:40            Convert int to float ( temp float)
+0:40              'i' ( temp int)
+0:40        imageStore ( temp void)
+0:40          'OUT' (layout( binding=0 r32f) uniform image3D)
+0:40          'tid' ( in 3-component vector of uint)
+0:40          'storeTemp' ( temp float)
+0:40        'storeTemp' ( temp float)
+0:21  Function Definition: main( ( temp void)
+0:21    Function Parameters: 
 0:?     Sequence
-0:6      move second child to first child ( temp 3-component vector of uint)
+0:21      move second child to first child ( temp 3-component vector of uint)
 0:?         'tid' ( temp 3-component vector of uint)
 0:?         'tid' ( in 3-component vector of uint GlobalInvocationID)
-0:6      Function Call: @main(vu3; ( temp void)
+0:21      Function Call: @main(vu3; ( temp void)
 0:?         'tid' ( temp 3-component vector of uint)
 0:?   Linker Objects
-0:?     'IN' (layout( binding=0) uniform itexture3D)
-0:?     'OUT' (layout( binding=1 r32ui) uniform uimage3D)
+0:?     'i1D' (layout( binding=0) uniform texture1D)
+0:?     'i2D' (layout( binding=1) uniform texture2D)
+0:?     'i3D' (layout( binding=2) uniform texture3D)
+0:?     'i1DArray' (layout( binding=3) uniform texture1DArray)
+0:?     'i2DArray' (layout( binding=4) uniform texture2DArray)
+0:?     'i2DMS' (layout( binding=5) uniform texture2DMS)
+0:?     'i2DMSArray' (layout( binding=6) uniform texture2DMSArray)
+0:?     'ii1D' (layout( binding=7) uniform itexture1D)
+0:?     'ii2D' (layout( binding=8) uniform itexture2D)
+0:?     'ii3D' (layout( binding=9) uniform itexture3D)
+0:?     'ii1DArray' (layout( binding=10) uniform itexture1DArray)
+0:?     'ii2DArray' (layout( binding=11) uniform itexture2DArray)
+0:?     'ii2DMS' (layout( binding=12) uniform itexture2DMS)
+0:?     'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray)
+0:?     'OUT' (layout( binding=0 r32f) uniform image3D)
 0:?     'tid' ( in 3-component vector of uint GlobalInvocationID)
 
 
@@ -40,103 +209,477 @@
 Shader version: 500
 local_size = (8, 8, 8)
 0:? Sequence
-0:6  Function Definition: @main(vu3; ( temp void)
-0:6    Function Parameters: 
-0:6      'tid' ( in 3-component vector of uint)
+0:21  Function Definition: @main(vu3; ( temp void)
+0:21    Function Parameters: 
+0:21      'tid' ( in 3-component vector of uint)
 0:?     Sequence
-0:7      Sequence
-0:7        move second child to first child ( temp uint)
-0:7          'storeTemp' ( temp uint)
-0:7          Convert int to uint ( temp uint)
-0:7            textureFetch ( temp int)
-0:7              'IN' (layout( binding=0) uniform itexture3D)
-0:7              'tid' ( in 3-component vector of uint)
-0:7              Constant:
-0:7                0 (const int)
-0:7        imageStore ( temp void)
-0:7          'OUT' (layout( binding=1 r32ui) uniform uimage3D)
-0:7          'tid' ( in 3-component vector of uint)
-0:7          'storeTemp' ( temp uint)
-0:7        'storeTemp' ( temp uint)
-0:6  Function Definition: main( ( temp void)
-0:6    Function Parameters: 
+0:22      Sequence
+0:22        move second child to first child ( temp float)
+0:22          'f' ( temp float)
+0:22          Constant:
+0:22            0.000000
+0:23      add second child into first child ( temp float)
+0:23        'f' ( temp float)
+0:23        textureFetch ( temp float)
+0:23          'i1D' (layout( binding=0) uniform texture1D)
+0:23          direct index ( temp uint)
+0:23            'tid' ( in 3-component vector of uint)
+0:23            Constant:
+0:23              0 (const int)
+0:23          Constant:
+0:23            0 (const int)
+0:24      add second child into first child ( temp float)
+0:24        'f' ( temp float)
+0:24        textureFetch ( temp float)
+0:24          'i2D' (layout( binding=1) uniform texture2D)
+0:24          vector swizzle ( temp 2-component vector of uint)
+0:24            'tid' ( in 3-component vector of uint)
+0:24            Sequence
+0:24              Constant:
+0:24                0 (const int)
+0:24              Constant:
+0:24                1 (const int)
+0:24          Constant:
+0:24            0 (const int)
+0:25      add second child into first child ( temp float)
+0:25        'f' ( temp float)
+0:25        textureFetch ( temp float)
+0:25          'i3D' (layout( binding=2) uniform texture3D)
+0:25          'tid' ( in 3-component vector of uint)
+0:25          Constant:
+0:25            0 (const int)
+0:26      add second child into first child ( temp float)
+0:26        'f' ( temp float)
+0:26        textureFetch ( temp float)
+0:26          'i1DArray' (layout( binding=3) uniform texture1DArray)
+0:26          vector swizzle ( temp 2-component vector of uint)
+0:26            'tid' ( in 3-component vector of uint)
+0:26            Sequence
+0:26              Constant:
+0:26                0 (const int)
+0:26              Constant:
+0:26                1 (const int)
+0:26          Constant:
+0:26            0 (const int)
+0:27      add second child into first child ( temp float)
+0:27        'f' ( temp float)
+0:27        textureFetch ( temp float)
+0:27          'i2DArray' (layout( binding=4) uniform texture2DArray)
+0:27          'tid' ( in 3-component vector of uint)
+0:27          Constant:
+0:27            0 (const int)
+0:28      add second child into first child ( temp float)
+0:28        'f' ( temp float)
+0:28        Construct float ( temp float)
+0:?           textureFetch ( temp 4-component vector of float)
+0:28            'i2DMS' (layout( binding=5) uniform texture2DMS)
+0:28            Convert uint to int ( temp 2-component vector of int)
+0:28              vector swizzle ( temp 2-component vector of uint)
+0:28                'tid' ( in 3-component vector of uint)
+0:28                Sequence
+0:28                  Constant:
+0:28                    0 (const int)
+0:28                  Constant:
+0:28                    1 (const int)
+0:28            Constant:
+0:28              1 (const int)
+0:29      add second child into first child ( temp float)
+0:29        'f' ( temp float)
+0:29        Construct float ( temp float)
+0:?           textureFetch ( temp 4-component vector of float)
+0:29            'i2DMSArray' (layout( binding=6) uniform texture2DMSArray)
+0:29            Convert uint to int ( temp 3-component vector of int)
+0:29              'tid' ( in 3-component vector of uint)
+0:29            Constant:
+0:29              3 (const int)
+0:31      Sequence
+0:31        move second child to first child ( temp int)
+0:31          'i' ( temp int)
+0:31          Constant:
+0:31            0 (const int)
+0:32      add second child into first child ( temp int)
+0:32        'i' ( temp int)
+0:32        textureFetch ( temp int)
+0:32          'ii1D' (layout( binding=7) uniform itexture1D)
+0:32          direct index ( temp uint)
+0:32            'tid' ( in 3-component vector of uint)
+0:32            Constant:
+0:32              0 (const int)
+0:32          Constant:
+0:32            0 (const int)
+0:33      add second child into first child ( temp int)
+0:33        'i' ( temp int)
+0:33        textureFetch ( temp int)
+0:33          'ii2D' (layout( binding=8) uniform itexture2D)
+0:33          vector swizzle ( temp 2-component vector of uint)
+0:33            'tid' ( in 3-component vector of uint)
+0:33            Sequence
+0:33              Constant:
+0:33                0 (const int)
+0:33              Constant:
+0:33                1 (const int)
+0:33          Constant:
+0:33            0 (const int)
+0:34      add second child into first child ( temp int)
+0:34        'i' ( temp int)
+0:34        textureFetch ( temp int)
+0:34          'ii3D' (layout( binding=9) uniform itexture3D)
+0:34          'tid' ( in 3-component vector of uint)
+0:34          Constant:
+0:34            0 (const int)
+0:35      add second child into first child ( temp int)
+0:35        'i' ( temp int)
+0:35        textureFetch ( temp int)
+0:35          'ii1DArray' (layout( binding=10) uniform itexture1DArray)
+0:35          vector swizzle ( temp 2-component vector of uint)
+0:35            'tid' ( in 3-component vector of uint)
+0:35            Sequence
+0:35              Constant:
+0:35                0 (const int)
+0:35              Constant:
+0:35                1 (const int)
+0:35          Constant:
+0:35            0 (const int)
+0:36      add second child into first child ( temp int)
+0:36        'i' ( temp int)
+0:36        textureFetch ( temp int)
+0:36          'ii2DArray' (layout( binding=11) uniform itexture2DArray)
+0:36          'tid' ( in 3-component vector of uint)
+0:36          Constant:
+0:36            0 (const int)
+0:37      add second child into first child ( temp int)
+0:37        'i' ( temp int)
+0:37        Construct int ( temp int)
+0:?           textureFetch ( temp 4-component vector of int)
+0:37            'ii2DMS' (layout( binding=12) uniform itexture2DMS)
+0:37            Convert uint to int ( temp 2-component vector of int)
+0:37              vector swizzle ( temp 2-component vector of uint)
+0:37                'tid' ( in 3-component vector of uint)
+0:37                Sequence
+0:37                  Constant:
+0:37                    0 (const int)
+0:37                  Constant:
+0:37                    1 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:38      add second child into first child ( temp int)
+0:38        'i' ( temp int)
+0:38        Construct int ( temp int)
+0:?           textureFetch ( temp 4-component vector of int)
+0:38            'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray)
+0:38            Convert uint to int ( temp 3-component vector of int)
+0:38              'tid' ( in 3-component vector of uint)
+0:38            Constant:
+0:38              3 (const int)
+0:40      Sequence
+0:40        move second child to first child ( temp float)
+0:40          'storeTemp' ( temp float)
+0:40          add ( temp float)
+0:40            'f' ( temp float)
+0:40            Convert int to float ( temp float)
+0:40              'i' ( temp int)
+0:40        imageStore ( temp void)
+0:40          'OUT' (layout( binding=0 r32f) uniform image3D)
+0:40          'tid' ( in 3-component vector of uint)
+0:40          'storeTemp' ( temp float)
+0:40        'storeTemp' ( temp float)
+0:21  Function Definition: main( ( temp void)
+0:21    Function Parameters: 
 0:?     Sequence
-0:6      move second child to first child ( temp 3-component vector of uint)
+0:21      move second child to first child ( temp 3-component vector of uint)
 0:?         'tid' ( temp 3-component vector of uint)
 0:?         'tid' ( in 3-component vector of uint GlobalInvocationID)
-0:6      Function Call: @main(vu3; ( temp void)
+0:21      Function Call: @main(vu3; ( temp void)
 0:?         'tid' ( temp 3-component vector of uint)
 0:?   Linker Objects
-0:?     'IN' (layout( binding=0) uniform itexture3D)
-0:?     'OUT' (layout( binding=1 r32ui) uniform uimage3D)
+0:?     'i1D' (layout( binding=0) uniform texture1D)
+0:?     'i2D' (layout( binding=1) uniform texture2D)
+0:?     'i3D' (layout( binding=2) uniform texture3D)
+0:?     'i1DArray' (layout( binding=3) uniform texture1DArray)
+0:?     'i2DArray' (layout( binding=4) uniform texture2DArray)
+0:?     'i2DMS' (layout( binding=5) uniform texture2DMS)
+0:?     'i2DMSArray' (layout( binding=6) uniform texture2DMSArray)
+0:?     'ii1D' (layout( binding=7) uniform itexture1D)
+0:?     'ii2D' (layout( binding=8) uniform itexture2D)
+0:?     'ii3D' (layout( binding=9) uniform itexture3D)
+0:?     'ii1DArray' (layout( binding=10) uniform itexture1DArray)
+0:?     'ii2DArray' (layout( binding=11) uniform itexture2DArray)
+0:?     'ii2DMS' (layout( binding=12) uniform itexture2DMS)
+0:?     'ii2DMSArray' (layout( binding=13) uniform itexture2DMSArray)
+0:?     'OUT' (layout( binding=0 r32f) uniform image3D)
 0:?     'tid' ( in 3-component vector of uint GlobalInvocationID)
 
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 39
+// Id's are bound by 186
 
                               Capability Shader
+                              Capability Sampled1D
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint GLCompute 4  "main" 34
+                              EntryPoint GLCompute 4  "main" 181
                               ExecutionMode 4 LocalSize 8 8 8
                               Source HLSL 500
                               Name 4  "main"
                               Name 11  "@main(vu3;"
                               Name 10  "tid"
-                              Name 14  "storeTemp"
-                              Name 18  "IN"
-                              Name 28  "OUT"
-                              Name 32  "tid"
-                              Name 34  "tid"
-                              Name 36  "param"
-                              Decorate 18(IN) DescriptorSet 0
-                              Decorate 18(IN) Binding 0
-                              Decorate 28(OUT) DescriptorSet 0
-                              Decorate 28(OUT) Binding 1
-                              Decorate 34(tid) BuiltIn GlobalInvocationId
+                              Name 15  "f"
+                              Name 19  "i1D"
+                              Name 34  "i2D"
+                              Name 45  "i3D"
+                              Name 54  "i1DArray"
+                              Name 64  "i2DArray"
+                              Name 73  "i2DMS"
+                              Name 86  "i2DMSArray"
+                              Name 97  "i"
+                              Name 100  "ii1D"
+                              Name 111  "ii2D"
+                              Name 121  "ii3D"
+                              Name 130  "ii1DArray"
+                              Name 140  "ii2DArray"
+                              Name 149  "ii2DMS"
+                              Name 160  "ii2DMSArray"
+                              Name 168  "storeTemp"
+                              Name 175  "OUT"
+                              Name 179  "tid"
+                              Name 181  "tid"
+                              Name 183  "param"
+                              Decorate 19(i1D) DescriptorSet 0
+                              Decorate 19(i1D) Binding 0
+                              Decorate 34(i2D) DescriptorSet 0
+                              Decorate 34(i2D) Binding 1
+                              Decorate 45(i3D) DescriptorSet 0
+                              Decorate 45(i3D) Binding 2
+                              Decorate 54(i1DArray) DescriptorSet 0
+                              Decorate 54(i1DArray) Binding 3
+                              Decorate 64(i2DArray) DescriptorSet 0
+                              Decorate 64(i2DArray) Binding 4
+                              Decorate 73(i2DMS) DescriptorSet 0
+                              Decorate 73(i2DMS) Binding 5
+                              Decorate 86(i2DMSArray) DescriptorSet 0
+                              Decorate 86(i2DMSArray) Binding 6
+                              Decorate 100(ii1D) DescriptorSet 0
+                              Decorate 100(ii1D) Binding 7
+                              Decorate 111(ii2D) DescriptorSet 0
+                              Decorate 111(ii2D) Binding 8
+                              Decorate 121(ii3D) DescriptorSet 0
+                              Decorate 121(ii3D) Binding 9
+                              Decorate 130(ii1DArray) DescriptorSet 0
+                              Decorate 130(ii1DArray) Binding 10
+                              Decorate 140(ii2DArray) DescriptorSet 0
+                              Decorate 140(ii2DArray) Binding 11
+                              Decorate 149(ii2DMS) DescriptorSet 0
+                              Decorate 149(ii2DMS) Binding 12
+                              Decorate 160(ii2DMSArray) DescriptorSet 0
+                              Decorate 160(ii2DMSArray) Binding 13
+                              Decorate 175(OUT) DescriptorSet 0
+                              Decorate 175(OUT) Binding 0
+                              Decorate 181(tid) BuiltIn GlobalInvocationId
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
                7:             TypeVector 6(int) 3
                8:             TypePointer Function 7(ivec3)
                9:             TypeFunction 2 8(ptr)
-              13:             TypePointer Function 6(int)
-              15:             TypeInt 32 1
-              16:             TypeImage 15(int) 3D sampled format:Unknown
-              17:             TypePointer UniformConstant 16
-          18(IN):     17(ptr) Variable UniformConstant
-              21:     15(int) Constant 0
-              22:             TypeVector 15(int) 4
-              26:             TypeImage 6(int) 3D nonsampled format:R32ui
-              27:             TypePointer UniformConstant 26
-         28(OUT):     27(ptr) Variable UniformConstant
-              33:             TypePointer Input 7(ivec3)
-         34(tid):     33(ptr) Variable Input
+              13:             TypeFloat 32
+              14:             TypePointer Function 13(float)
+              16:   13(float) Constant 0
+              17:             TypeImage 13(float) 1D sampled format:Unknown
+              18:             TypePointer UniformConstant 17
+         19(i1D):     18(ptr) Variable UniformConstant
+              21:      6(int) Constant 0
+              22:             TypePointer Function 6(int)
+              25:             TypeInt 32 1
+              26:     25(int) Constant 0
+              27:             TypeVector 13(float) 4
+              32:             TypeImage 13(float) 2D sampled format:Unknown
+              33:             TypePointer UniformConstant 32
+         34(i2D):     33(ptr) Variable UniformConstant
+              36:             TypeVector 6(int) 2
+              43:             TypeImage 13(float) 3D sampled format:Unknown
+              44:             TypePointer UniformConstant 43
+         45(i3D):     44(ptr) Variable UniformConstant
+              52:             TypeImage 13(float) 1D array sampled format:Unknown
+              53:             TypePointer UniformConstant 52
+    54(i1DArray):     53(ptr) Variable UniformConstant
+              62:             TypeImage 13(float) 2D array sampled format:Unknown
+              63:             TypePointer UniformConstant 62
+    64(i2DArray):     63(ptr) Variable UniformConstant
+              71:             TypeImage 13(float) 2D multi-sampled sampled format:Unknown
+              72:             TypePointer UniformConstant 71
+       73(i2DMS):     72(ptr) Variable UniformConstant
+              77:             TypeVector 25(int) 2
+              79:     25(int) Constant 1
+              84:             TypeImage 13(float) 2D array multi-sampled sampled format:Unknown
+              85:             TypePointer UniformConstant 84
+  86(i2DMSArray):     85(ptr) Variable UniformConstant
+              89:             TypeVector 25(int) 3
+              91:     25(int) Constant 3
+              96:             TypePointer Function 25(int)
+              98:             TypeImage 25(int) 1D sampled format:Unknown
+              99:             TypePointer UniformConstant 98
+       100(ii1D):     99(ptr) Variable UniformConstant
+             104:             TypeVector 25(int) 4
+             109:             TypeImage 25(int) 2D sampled format:Unknown
+             110:             TypePointer UniformConstant 109
+       111(ii2D):    110(ptr) Variable UniformConstant
+             119:             TypeImage 25(int) 3D sampled format:Unknown
+             120:             TypePointer UniformConstant 119
+       121(ii3D):    120(ptr) Variable UniformConstant
+             128:             TypeImage 25(int) 1D array sampled format:Unknown
+             129:             TypePointer UniformConstant 128
+  130(ii1DArray):    129(ptr) Variable UniformConstant
+             138:             TypeImage 25(int) 2D array sampled format:Unknown
+             139:             TypePointer UniformConstant 138
+  140(ii2DArray):    139(ptr) Variable UniformConstant
+             147:             TypeImage 25(int) 2D multi-sampled sampled format:Unknown
+             148:             TypePointer UniformConstant 147
+     149(ii2DMS):    148(ptr) Variable UniformConstant
+             158:             TypeImage 25(int) 2D array multi-sampled sampled format:Unknown
+             159:             TypePointer UniformConstant 158
+160(ii2DMSArray):    159(ptr) Variable UniformConstant
+             173:             TypeImage 13(float) 3D nonsampled format:R32f
+             174:             TypePointer UniformConstant 173
+        175(OUT):    174(ptr) Variable UniformConstant
+             180:             TypePointer Input 7(ivec3)
+        181(tid):    180(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
-         32(tid):      8(ptr) Variable Function
-       36(param):      8(ptr) Variable Function
-              35:    7(ivec3) Load 34(tid)
-                              Store 32(tid) 35
-              37:    7(ivec3) Load 32(tid)
-                              Store 36(param) 37
-              38:           2 FunctionCall 11(@main(vu3;) 36(param)
+        179(tid):      8(ptr) Variable Function
+      183(param):      8(ptr) Variable Function
+             182:    7(ivec3) Load 181(tid)
+                              Store 179(tid) 182
+             184:    7(ivec3) Load 179(tid)
+                              Store 183(param) 184
+             185:           2 FunctionCall 11(@main(vu3;) 183(param)
                               Return
                               FunctionEnd
   11(@main(vu3;):           2 Function None 9
          10(tid):      8(ptr) FunctionParameter
               12:             Label
-   14(storeTemp):     13(ptr) Variable Function
-              19:          16 Load 18(IN)
-              20:    7(ivec3) Load 10(tid)
-              23:   22(ivec4) ImageFetch 19 20 Lod 21
-              24:     15(int) CompositeExtract 23 0
-              25:      6(int) Bitcast 24
-                              Store 14(storeTemp) 25
-              29:          26 Load 28(OUT)
-              30:    7(ivec3) Load 10(tid)
-              31:      6(int) Load 14(storeTemp)
-                              ImageWrite 29 30 31
+           15(f):     14(ptr) Variable Function
+           97(i):     96(ptr) Variable Function
+  168(storeTemp):     14(ptr) Variable Function
+                              Store 15(f) 16
+              20:          17 Load 19(i1D)
+              23:     22(ptr) AccessChain 10(tid) 21
+              24:      6(int) Load 23
+              28:   27(fvec4) ImageFetch 20 24 Lod 26
+              29:   13(float) CompositeExtract 28 0
+              30:   13(float) Load 15(f)
+              31:   13(float) FAdd 30 29
+                              Store 15(f) 31
+              35:          32 Load 34(i2D)
+              37:    7(ivec3) Load 10(tid)
+              38:   36(ivec2) VectorShuffle 37 37 0 1
+              39:   27(fvec4) ImageFetch 35 38 Lod 26
+              40:   13(float) CompositeExtract 39 0
+              41:   13(float) Load 15(f)
+              42:   13(float) FAdd 41 40
+                              Store 15(f) 42
+              46:          43 Load 45(i3D)
+              47:    7(ivec3) Load 10(tid)
+              48:   27(fvec4) ImageFetch 46 47 Lod 26
+              49:   13(float) CompositeExtract 48 0
+              50:   13(float) Load 15(f)
+              51:   13(float) FAdd 50 49
+                              Store 15(f) 51
+              55:          52 Load 54(i1DArray)
+              56:    7(ivec3) Load 10(tid)
+              57:   36(ivec2) VectorShuffle 56 56 0 1
+              58:   27(fvec4) ImageFetch 55 57 Lod 26
+              59:   13(float) CompositeExtract 58 0
+              60:   13(float) Load 15(f)
+              61:   13(float) FAdd 60 59
+                              Store 15(f) 61
+              65:          62 Load 64(i2DArray)
+              66:    7(ivec3) Load 10(tid)
+              67:   27(fvec4) ImageFetch 65 66 Lod 26
+              68:   13(float) CompositeExtract 67 0
+              69:   13(float) Load 15(f)
+              70:   13(float) FAdd 69 68
+                              Store 15(f) 70
+              74:          71 Load 73(i2DMS)
+              75:    7(ivec3) Load 10(tid)
+              76:   36(ivec2) VectorShuffle 75 75 0 1
+              78:   77(ivec2) Bitcast 76
+              80:   27(fvec4) ImageFetch 74 78 Sample 79
+              81:   13(float) CompositeExtract 80 0
+              82:   13(float) Load 15(f)
+              83:   13(float) FAdd 82 81
+                              Store 15(f) 83
+              87:          84 Load 86(i2DMSArray)
+              88:    7(ivec3) Load 10(tid)
+              90:   89(ivec3) Bitcast 88
+              92:   27(fvec4) ImageFetch 87 90 Sample 91
+              93:   13(float) CompositeExtract 92 0
+              94:   13(float) Load 15(f)
+              95:   13(float) FAdd 94 93
+                              Store 15(f) 95
+                              Store 97(i) 26
+             101:          98 Load 100(ii1D)
+             102:     22(ptr) AccessChain 10(tid) 21
+             103:      6(int) Load 102
+             105:  104(ivec4) ImageFetch 101 103 Lod 26
+             106:     25(int) CompositeExtract 105 0
+             107:     25(int) Load 97(i)
+             108:     25(int) IAdd 107 106
+                              Store 97(i) 108
+             112:         109 Load 111(ii2D)
+             113:    7(ivec3) Load 10(tid)
+             114:   36(ivec2) VectorShuffle 113 113 0 1
+             115:  104(ivec4) ImageFetch 112 114 Lod 26
+             116:     25(int) CompositeExtract 115 0
+             117:     25(int) Load 97(i)
+             118:     25(int) IAdd 117 116
+                              Store 97(i) 118
+             122:         119 Load 121(ii3D)
+             123:    7(ivec3) Load 10(tid)
+             124:  104(ivec4) ImageFetch 122 123 Lod 26
+             125:     25(int) CompositeExtract 124 0
+             126:     25(int) Load 97(i)
+             127:     25(int) IAdd 126 125
+                              Store 97(i) 127
+             131:         128 Load 130(ii1DArray)
+             132:    7(ivec3) Load 10(tid)
+             133:   36(ivec2) VectorShuffle 132 132 0 1
+             134:  104(ivec4) ImageFetch 131 133 Lod 26
+             135:     25(int) CompositeExtract 134 0
+             136:     25(int) Load 97(i)
+             137:     25(int) IAdd 136 135
+                              Store 97(i) 137
+             141:         138 Load 140(ii2DArray)
+             142:    7(ivec3) Load 10(tid)
+             143:  104(ivec4) ImageFetch 141 142 Lod 26
+             144:     25(int) CompositeExtract 143 0
+             145:     25(int) Load 97(i)
+             146:     25(int) IAdd 145 144
+                              Store 97(i) 146
+             150:         147 Load 149(ii2DMS)
+             151:    7(ivec3) Load 10(tid)
+             152:   36(ivec2) VectorShuffle 151 151 0 1
+             153:   77(ivec2) Bitcast 152
+             154:  104(ivec4) ImageFetch 150 153 Sample 79
+             155:     25(int) CompositeExtract 154 0
+             156:     25(int) Load 97(i)
+             157:     25(int) IAdd 156 155
+                              Store 97(i) 157
+             161:         158 Load 160(ii2DMSArray)
+             162:    7(ivec3) Load 10(tid)
+             163:   89(ivec3) Bitcast 162
+             164:  104(ivec4) ImageFetch 161 163 Sample 91
+             165:     25(int) CompositeExtract 164 0
+             166:     25(int) Load 97(i)
+             167:     25(int) IAdd 166 165
+                              Store 97(i) 167
+             169:   13(float) Load 15(f)
+             170:     25(int) Load 97(i)
+             171:   13(float) ConvertSToF 170
+             172:   13(float) FAdd 169 171
+                              Store 168(storeTemp) 172
+             176:         173 Load 175(OUT)
+             177:    7(ivec3) Load 10(tid)
+             178:   13(float) Load 168(storeTemp)
+                              ImageWrite 176 177 178
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/hlsl.imageload-subvec4.comp.out b/Test/baseResults/hlsl.imageload-subvec4.comp.out
new file mode 100644
index 0000000..4d038a1
--- /dev/null
+++ b/Test/baseResults/hlsl.imageload-subvec4.comp.out
@@ -0,0 +1,477 @@
+hlsl.imageload-subvec4.comp
+Shader version: 500
+local_size = (8, 8, 8)
+0:? Sequence
+0:17  Function Definition: @main(vu3; ( temp void)
+0:17    Function Parameters: 
+0:17      'tid' ( in 3-component vector of uint)
+0:?     Sequence
+0:18      Sequence
+0:18        move second child to first child ( temp float)
+0:18          'f' ( temp float)
+0:18          Constant:
+0:18            0.000000
+0:19      add second child into first child ( temp float)
+0:19        'f' ( temp float)
+0:19        imageLoad ( temp float)
+0:19          'i1D' (layout( binding=0 r32f) uniform image1D)
+0:19          direct index ( temp uint)
+0:19            'tid' ( in 3-component vector of uint)
+0:19            Constant:
+0:19              0 (const int)
+0:20      add second child into first child ( temp float)
+0:20        'f' ( temp float)
+0:20        imageLoad ( temp float)
+0:20          'i2D' (layout( binding=1 r32f) uniform image2D)
+0:20          vector swizzle ( temp 2-component vector of uint)
+0:20            'tid' ( in 3-component vector of uint)
+0:20            Sequence
+0:20              Constant:
+0:20                0 (const int)
+0:20              Constant:
+0:20                1 (const int)
+0:21      add second child into first child ( temp float)
+0:21        'f' ( temp float)
+0:21        imageLoad ( temp float)
+0:21          'i3D' (layout( binding=2 r32f) uniform image3D)
+0:21          'tid' ( in 3-component vector of uint)
+0:22      add second child into first child ( temp float)
+0:22        'f' ( temp float)
+0:22        imageLoad ( temp float)
+0:22          'i1DArray' (layout( binding=3 r32f) uniform image1DArray)
+0:22          vector swizzle ( temp 2-component vector of uint)
+0:22            'tid' ( in 3-component vector of uint)
+0:22            Sequence
+0:22              Constant:
+0:22                0 (const int)
+0:22              Constant:
+0:22                1 (const int)
+0:23      add second child into first child ( temp float)
+0:23        'f' ( temp float)
+0:23        imageLoad ( temp float)
+0:23          'i2DArray' (layout( binding=4 r32f) uniform image2DArray)
+0:23          'tid' ( in 3-component vector of uint)
+0:25      Sequence
+0:25        move second child to first child ( temp int)
+0:25          'i' ( temp int)
+0:25          Constant:
+0:25            0 (const int)
+0:26      add second child into first child ( temp int)
+0:26        'i' ( temp int)
+0:26        imageLoad ( temp int)
+0:26          'ii1D' (layout( binding=5 r32i) uniform iimage1D)
+0:26          direct index ( temp uint)
+0:26            'tid' ( in 3-component vector of uint)
+0:26            Constant:
+0:26              0 (const int)
+0:27      add second child into first child ( temp int)
+0:27        'i' ( temp int)
+0:27        imageLoad ( temp int)
+0:27          'ii2D' (layout( binding=6 r32i) uniform iimage2D)
+0:27          vector swizzle ( temp 2-component vector of uint)
+0:27            'tid' ( in 3-component vector of uint)
+0:27            Sequence
+0:27              Constant:
+0:27                0 (const int)
+0:27              Constant:
+0:27                1 (const int)
+0:28      add second child into first child ( temp int)
+0:28        'i' ( temp int)
+0:28        imageLoad ( temp int)
+0:28          'ii3D' (layout( binding=7 r32i) uniform iimage3D)
+0:28          'tid' ( in 3-component vector of uint)
+0:29      add second child into first child ( temp int)
+0:29        'i' ( temp int)
+0:29        imageLoad ( temp int)
+0:29          'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray)
+0:29          vector swizzle ( temp 2-component vector of uint)
+0:29            'tid' ( in 3-component vector of uint)
+0:29            Sequence
+0:29              Constant:
+0:29                0 (const int)
+0:29              Constant:
+0:29                1 (const int)
+0:30      add second child into first child ( temp int)
+0:30        'i' ( temp int)
+0:30        imageLoad ( temp int)
+0:30          'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray)
+0:30          'tid' ( in 3-component vector of uint)
+0:32      Sequence
+0:32        move second child to first child ( temp float)
+0:32          'storeTemp' ( temp float)
+0:32          add ( temp float)
+0:32            'f' ( temp float)
+0:32            Convert int to float ( temp float)
+0:32              'i' ( temp int)
+0:32        imageStore ( temp void)
+0:32          'OUT' (layout( binding=10 r32f) uniform image3D)
+0:32          'tid' ( in 3-component vector of uint)
+0:32          'storeTemp' ( temp float)
+0:32        'storeTemp' ( temp float)
+0:17  Function Definition: main( ( temp void)
+0:17    Function Parameters: 
+0:?     Sequence
+0:17      move second child to first child ( temp 3-component vector of uint)
+0:?         'tid' ( temp 3-component vector of uint)
+0:?         'tid' ( in 3-component vector of uint GlobalInvocationID)
+0:17      Function Call: @main(vu3; ( temp void)
+0:?         'tid' ( temp 3-component vector of uint)
+0:?   Linker Objects
+0:?     'i1D' (layout( binding=0 r32f) uniform image1D)
+0:?     'i2D' (layout( binding=1 r32f) uniform image2D)
+0:?     'i3D' (layout( binding=2 r32f) uniform image3D)
+0:?     'i1DArray' (layout( binding=3 r32f) uniform image1DArray)
+0:?     'i2DArray' (layout( binding=4 r32f) uniform image2DArray)
+0:?     'ii1D' (layout( binding=5 r32i) uniform iimage1D)
+0:?     'ii2D' (layout( binding=6 r32i) uniform iimage2D)
+0:?     'ii3D' (layout( binding=7 r32i) uniform iimage3D)
+0:?     'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray)
+0:?     'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray)
+0:?     'OUT' (layout( binding=10 r32f) uniform image3D)
+0:?     'tid' ( in 3-component vector of uint GlobalInvocationID)
+
+
+Linked compute stage:
+
+
+Shader version: 500
+local_size = (8, 8, 8)
+0:? Sequence
+0:17  Function Definition: @main(vu3; ( temp void)
+0:17    Function Parameters: 
+0:17      'tid' ( in 3-component vector of uint)
+0:?     Sequence
+0:18      Sequence
+0:18        move second child to first child ( temp float)
+0:18          'f' ( temp float)
+0:18          Constant:
+0:18            0.000000
+0:19      add second child into first child ( temp float)
+0:19        'f' ( temp float)
+0:19        imageLoad ( temp float)
+0:19          'i1D' (layout( binding=0 r32f) uniform image1D)
+0:19          direct index ( temp uint)
+0:19            'tid' ( in 3-component vector of uint)
+0:19            Constant:
+0:19              0 (const int)
+0:20      add second child into first child ( temp float)
+0:20        'f' ( temp float)
+0:20        imageLoad ( temp float)
+0:20          'i2D' (layout( binding=1 r32f) uniform image2D)
+0:20          vector swizzle ( temp 2-component vector of uint)
+0:20            'tid' ( in 3-component vector of uint)
+0:20            Sequence
+0:20              Constant:
+0:20                0 (const int)
+0:20              Constant:
+0:20                1 (const int)
+0:21      add second child into first child ( temp float)
+0:21        'f' ( temp float)
+0:21        imageLoad ( temp float)
+0:21          'i3D' (layout( binding=2 r32f) uniform image3D)
+0:21          'tid' ( in 3-component vector of uint)
+0:22      add second child into first child ( temp float)
+0:22        'f' ( temp float)
+0:22        imageLoad ( temp float)
+0:22          'i1DArray' (layout( binding=3 r32f) uniform image1DArray)
+0:22          vector swizzle ( temp 2-component vector of uint)
+0:22            'tid' ( in 3-component vector of uint)
+0:22            Sequence
+0:22              Constant:
+0:22                0 (const int)
+0:22              Constant:
+0:22                1 (const int)
+0:23      add second child into first child ( temp float)
+0:23        'f' ( temp float)
+0:23        imageLoad ( temp float)
+0:23          'i2DArray' (layout( binding=4 r32f) uniform image2DArray)
+0:23          'tid' ( in 3-component vector of uint)
+0:25      Sequence
+0:25        move second child to first child ( temp int)
+0:25          'i' ( temp int)
+0:25          Constant:
+0:25            0 (const int)
+0:26      add second child into first child ( temp int)
+0:26        'i' ( temp int)
+0:26        imageLoad ( temp int)
+0:26          'ii1D' (layout( binding=5 r32i) uniform iimage1D)
+0:26          direct index ( temp uint)
+0:26            'tid' ( in 3-component vector of uint)
+0:26            Constant:
+0:26              0 (const int)
+0:27      add second child into first child ( temp int)
+0:27        'i' ( temp int)
+0:27        imageLoad ( temp int)
+0:27          'ii2D' (layout( binding=6 r32i) uniform iimage2D)
+0:27          vector swizzle ( temp 2-component vector of uint)
+0:27            'tid' ( in 3-component vector of uint)
+0:27            Sequence
+0:27              Constant:
+0:27                0 (const int)
+0:27              Constant:
+0:27                1 (const int)
+0:28      add second child into first child ( temp int)
+0:28        'i' ( temp int)
+0:28        imageLoad ( temp int)
+0:28          'ii3D' (layout( binding=7 r32i) uniform iimage3D)
+0:28          'tid' ( in 3-component vector of uint)
+0:29      add second child into first child ( temp int)
+0:29        'i' ( temp int)
+0:29        imageLoad ( temp int)
+0:29          'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray)
+0:29          vector swizzle ( temp 2-component vector of uint)
+0:29            'tid' ( in 3-component vector of uint)
+0:29            Sequence
+0:29              Constant:
+0:29                0 (const int)
+0:29              Constant:
+0:29                1 (const int)
+0:30      add second child into first child ( temp int)
+0:30        'i' ( temp int)
+0:30        imageLoad ( temp int)
+0:30          'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray)
+0:30          'tid' ( in 3-component vector of uint)
+0:32      Sequence
+0:32        move second child to first child ( temp float)
+0:32          'storeTemp' ( temp float)
+0:32          add ( temp float)
+0:32            'f' ( temp float)
+0:32            Convert int to float ( temp float)
+0:32              'i' ( temp int)
+0:32        imageStore ( temp void)
+0:32          'OUT' (layout( binding=10 r32f) uniform image3D)
+0:32          'tid' ( in 3-component vector of uint)
+0:32          'storeTemp' ( temp float)
+0:32        'storeTemp' ( temp float)
+0:17  Function Definition: main( ( temp void)
+0:17    Function Parameters: 
+0:?     Sequence
+0:17      move second child to first child ( temp 3-component vector of uint)
+0:?         'tid' ( temp 3-component vector of uint)
+0:?         'tid' ( in 3-component vector of uint GlobalInvocationID)
+0:17      Function Call: @main(vu3; ( temp void)
+0:?         'tid' ( temp 3-component vector of uint)
+0:?   Linker Objects
+0:?     'i1D' (layout( binding=0 r32f) uniform image1D)
+0:?     'i2D' (layout( binding=1 r32f) uniform image2D)
+0:?     'i3D' (layout( binding=2 r32f) uniform image3D)
+0:?     'i1DArray' (layout( binding=3 r32f) uniform image1DArray)
+0:?     'i2DArray' (layout( binding=4 r32f) uniform image2DArray)
+0:?     'ii1D' (layout( binding=5 r32i) uniform iimage1D)
+0:?     'ii2D' (layout( binding=6 r32i) uniform iimage2D)
+0:?     'ii3D' (layout( binding=7 r32i) uniform iimage3D)
+0:?     'ii1DArray' (layout( binding=8 r32i) uniform iimage1DArray)
+0:?     'ii2DArray' (layout( binding=9 r32i) uniform iimage2DArray)
+0:?     'OUT' (layout( binding=10 r32f) uniform image3D)
+0:?     'tid' ( in 3-component vector of uint GlobalInvocationID)
+
+// Module Version 10000
+// Generated by (magic number): 8000a
+// Id's are bound by 138
+
+                              Capability Shader
+                              Capability Image1D
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "main" 133
+                              ExecutionMode 4 LocalSize 8 8 8
+                              Source HLSL 500
+                              Name 4  "main"
+                              Name 11  "@main(vu3;"
+                              Name 10  "tid"
+                              Name 15  "f"
+                              Name 19  "i1D"
+                              Name 32  "i2D"
+                              Name 43  "i3D"
+                              Name 52  "i1DArray"
+                              Name 62  "i2DArray"
+                              Name 71  "i"
+                              Name 75  "ii1D"
+                              Name 86  "ii2D"
+                              Name 96  "ii3D"
+                              Name 105  "ii1DArray"
+                              Name 115  "ii2DArray"
+                              Name 122  "storeTemp"
+                              Name 127  "OUT"
+                              Name 131  "tid"
+                              Name 133  "tid"
+                              Name 135  "param"
+                              Decorate 19(i1D) DescriptorSet 0
+                              Decorate 19(i1D) Binding 0
+                              Decorate 32(i2D) DescriptorSet 0
+                              Decorate 32(i2D) Binding 1
+                              Decorate 43(i3D) DescriptorSet 0
+                              Decorate 43(i3D) Binding 2
+                              Decorate 52(i1DArray) DescriptorSet 0
+                              Decorate 52(i1DArray) Binding 3
+                              Decorate 62(i2DArray) DescriptorSet 0
+                              Decorate 62(i2DArray) Binding 4
+                              Decorate 75(ii1D) DescriptorSet 0
+                              Decorate 75(ii1D) Binding 5
+                              Decorate 86(ii2D) DescriptorSet 0
+                              Decorate 86(ii2D) Binding 6
+                              Decorate 96(ii3D) DescriptorSet 0
+                              Decorate 96(ii3D) Binding 7
+                              Decorate 105(ii1DArray) DescriptorSet 0
+                              Decorate 105(ii1DArray) Binding 8
+                              Decorate 115(ii2DArray) DescriptorSet 0
+                              Decorate 115(ii2DArray) Binding 9
+                              Decorate 127(OUT) DescriptorSet 0
+                              Decorate 127(OUT) Binding 10
+                              Decorate 133(tid) BuiltIn GlobalInvocationId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:             TypeVector 6(int) 3
+               8:             TypePointer Function 7(ivec3)
+               9:             TypeFunction 2 8(ptr)
+              13:             TypeFloat 32
+              14:             TypePointer Function 13(float)
+              16:   13(float) Constant 0
+              17:             TypeImage 13(float) 1D nonsampled format:R32f
+              18:             TypePointer UniformConstant 17
+         19(i1D):     18(ptr) Variable UniformConstant
+              21:      6(int) Constant 0
+              22:             TypePointer Function 6(int)
+              25:             TypeVector 13(float) 4
+              30:             TypeImage 13(float) 2D nonsampled format:R32f
+              31:             TypePointer UniformConstant 30
+         32(i2D):     31(ptr) Variable UniformConstant
+              34:             TypeVector 6(int) 2
+              41:             TypeImage 13(float) 3D nonsampled format:R32f
+              42:             TypePointer UniformConstant 41
+         43(i3D):     42(ptr) Variable UniformConstant
+              50:             TypeImage 13(float) 1D array nonsampled format:R32f
+              51:             TypePointer UniformConstant 50
+    52(i1DArray):     51(ptr) Variable UniformConstant
+              60:             TypeImage 13(float) 2D array nonsampled format:R32f
+              61:             TypePointer UniformConstant 60
+    62(i2DArray):     61(ptr) Variable UniformConstant
+              69:             TypeInt 32 1
+              70:             TypePointer Function 69(int)
+              72:     69(int) Constant 0
+              73:             TypeImage 69(int) 1D nonsampled format:R32i
+              74:             TypePointer UniformConstant 73
+        75(ii1D):     74(ptr) Variable UniformConstant
+              79:             TypeVector 69(int) 4
+              84:             TypeImage 69(int) 2D nonsampled format:R32i
+              85:             TypePointer UniformConstant 84
+        86(ii2D):     85(ptr) Variable UniformConstant
+              94:             TypeImage 69(int) 3D nonsampled format:R32i
+              95:             TypePointer UniformConstant 94
+        96(ii3D):     95(ptr) Variable UniformConstant
+             103:             TypeImage 69(int) 1D array nonsampled format:R32i
+             104:             TypePointer UniformConstant 103
+  105(ii1DArray):    104(ptr) Variable UniformConstant
+             113:             TypeImage 69(int) 2D array nonsampled format:R32i
+             114:             TypePointer UniformConstant 113
+  115(ii2DArray):    114(ptr) Variable UniformConstant
+        127(OUT):     42(ptr) Variable UniformConstant
+             132:             TypePointer Input 7(ivec3)
+        133(tid):    132(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+        131(tid):      8(ptr) Variable Function
+      135(param):      8(ptr) Variable Function
+             134:    7(ivec3) Load 133(tid)
+                              Store 131(tid) 134
+             136:    7(ivec3) Load 131(tid)
+                              Store 135(param) 136
+             137:           2 FunctionCall 11(@main(vu3;) 135(param)
+                              Return
+                              FunctionEnd
+  11(@main(vu3;):           2 Function None 9
+         10(tid):      8(ptr) FunctionParameter
+              12:             Label
+           15(f):     14(ptr) Variable Function
+           71(i):     70(ptr) Variable Function
+  122(storeTemp):     14(ptr) Variable Function
+                              Store 15(f) 16
+              20:          17 Load 19(i1D)
+              23:     22(ptr) AccessChain 10(tid) 21
+              24:      6(int) Load 23
+              26:   25(fvec4) ImageRead 20 24
+              27:   13(float) CompositeExtract 26 0
+              28:   13(float) Load 15(f)
+              29:   13(float) FAdd 28 27
+                              Store 15(f) 29
+              33:          30 Load 32(i2D)
+              35:    7(ivec3) Load 10(tid)
+              36:   34(ivec2) VectorShuffle 35 35 0 1
+              37:   25(fvec4) ImageRead 33 36
+              38:   13(float) CompositeExtract 37 0
+              39:   13(float) Load 15(f)
+              40:   13(float) FAdd 39 38
+                              Store 15(f) 40
+              44:          41 Load 43(i3D)
+              45:    7(ivec3) Load 10(tid)
+              46:   25(fvec4) ImageRead 44 45
+              47:   13(float) CompositeExtract 46 0
+              48:   13(float) Load 15(f)
+              49:   13(float) FAdd 48 47
+                              Store 15(f) 49
+              53:          50 Load 52(i1DArray)
+              54:    7(ivec3) Load 10(tid)
+              55:   34(ivec2) VectorShuffle 54 54 0 1
+              56:   25(fvec4) ImageRead 53 55
+              57:   13(float) CompositeExtract 56 0
+              58:   13(float) Load 15(f)
+              59:   13(float) FAdd 58 57
+                              Store 15(f) 59
+              63:          60 Load 62(i2DArray)
+              64:    7(ivec3) Load 10(tid)
+              65:   25(fvec4) ImageRead 63 64
+              66:   13(float) CompositeExtract 65 0
+              67:   13(float) Load 15(f)
+              68:   13(float) FAdd 67 66
+                              Store 15(f) 68
+                              Store 71(i) 72
+              76:          73 Load 75(ii1D)
+              77:     22(ptr) AccessChain 10(tid) 21
+              78:      6(int) Load 77
+              80:   79(ivec4) ImageRead 76 78
+              81:     69(int) CompositeExtract 80 0
+              82:     69(int) Load 71(i)
+              83:     69(int) IAdd 82 81
+                              Store 71(i) 83
+              87:          84 Load 86(ii2D)
+              88:    7(ivec3) Load 10(tid)
+              89:   34(ivec2) VectorShuffle 88 88 0 1
+              90:   79(ivec4) ImageRead 87 89
+              91:     69(int) CompositeExtract 90 0
+              92:     69(int) Load 71(i)
+              93:     69(int) IAdd 92 91
+                              Store 71(i) 93
+              97:          94 Load 96(ii3D)
+              98:    7(ivec3) Load 10(tid)
+              99:   79(ivec4) ImageRead 97 98
+             100:     69(int) CompositeExtract 99 0
+             101:     69(int) Load 71(i)
+             102:     69(int) IAdd 101 100
+                              Store 71(i) 102
+             106:         103 Load 105(ii1DArray)
+             107:    7(ivec3) Load 10(tid)
+             108:   34(ivec2) VectorShuffle 107 107 0 1
+             109:   79(ivec4) ImageRead 106 108
+             110:     69(int) CompositeExtract 109 0
+             111:     69(int) Load 71(i)
+             112:     69(int) IAdd 111 110
+                              Store 71(i) 112
+             116:         113 Load 115(ii2DArray)
+             117:    7(ivec3) Load 10(tid)
+             118:   79(ivec4) ImageRead 116 117
+             119:     69(int) CompositeExtract 118 0
+             120:     69(int) Load 71(i)
+             121:     69(int) IAdd 120 119
+                              Store 71(i) 121
+             123:   13(float) Load 15(f)
+             124:     69(int) Load 71(i)
+             125:   13(float) ConvertSToF 124
+             126:   13(float) FAdd 123 125
+                              Store 122(storeTemp) 126
+             128:          41 Load 127(OUT)
+             129:    7(ivec3) Load 10(tid)
+             130:   13(float) Load 122(storeTemp)
+                              ImageWrite 128 129 130
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.partialFlattenLocal.vert.out b/Test/baseResults/hlsl.partialFlattenLocal.vert.out
index 12a6065..7bcc879 100644
--- a/Test/baseResults/hlsl.partialFlattenLocal.vert.out
+++ b/Test/baseResults/hlsl.partialFlattenLocal.vert.out
@@ -238,12 +238,12 @@
 
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 90
+// Id's are bound by 93
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Vertex 4  "main" 83 86
+                              EntryPoint Vertex 4  "main" 86 89
                               Source HLSL 500
                               Name 4  "main"
                               Name 11  "@main(vf4;"
@@ -257,15 +257,15 @@
                               Name 24  "packed"
                               Name 27  "tex"
                               Name 47  "i"
-                              Name 69  "packed2"
-                              Name 81  "pos"
-                              Name 83  "pos"
-                              Name 86  "@entryPointOutput"
-                              Name 87  "param"
+                              Name 72  "packed2"
+                              Name 84  "pos"
+                              Name 86  "pos"
+                              Name 89  "@entryPointOutput"
+                              Name 90  "param"
                               Decorate 27(tex) DescriptorSet 0
                               Decorate 27(tex) Binding 0
-                              Decorate 83(pos) Location 0
-                              Decorate 86(@entryPointOutput) BuiltIn Position
+                              Decorate 86(pos) Location 0
+                              Decorate 89(@entryPointOutput) BuiltIn Position
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -300,20 +300,22 @@
               44:     21(int) Constant 4
               45:             TypePointer Function 21(int)
               54:             TypeBool
-              82:             TypePointer Input 7(fvec4)
-         83(pos):     82(ptr) Variable Input
-              85:             TypePointer Output 7(fvec4)
-86(@entryPointOutput):     85(ptr) Variable Output
+              64:     15(int) Constant 0
+              67:     15(int) Constant 1
+              85:             TypePointer Input 7(fvec4)
+         86(pos):     85(ptr) Variable Input
+              88:             TypePointer Output 7(fvec4)
+89(@entryPointOutput):     88(ptr) Variable Output
          4(main):           2 Function None 3
                5:             Label
-         81(pos):      8(ptr) Variable Function
-       87(param):      8(ptr) Variable Function
-              84:    7(fvec4) Load 83(pos)
-                              Store 81(pos) 84
-              88:    7(fvec4) Load 81(pos)
-                              Store 87(param) 88
-              89:    7(fvec4) FunctionCall 11(@main(vf4;) 87(param)
-                              Store 86(@entryPointOutput) 89
+         84(pos):      8(ptr) Variable Function
+       90(param):      8(ptr) Variable Function
+              87:    7(fvec4) Load 86(pos)
+                              Store 84(pos) 87
+              91:    7(fvec4) Load 84(pos)
+                              Store 90(param) 91
+              92:    7(fvec4) FunctionCall 11(@main(vf4;) 90(param)
+                              Store 89(@entryPointOutput) 92
                               Return
                               FunctionEnd
   11(@main(vf4;):    7(fvec4) Function None 9
@@ -321,7 +323,7 @@
               12:             Label
       24(packed):     23(ptr) Variable Function
            47(i):     45(ptr) Variable Function
-     69(packed2):     23(ptr) Variable Function
+     72(packed2):     23(ptr) Variable Function
               28:          13 Load 27(tex)
               30:     29(ptr) AccessChain 24(packed) 25
                               Store 30 28
@@ -351,26 +353,28 @@
               61:   14(fvec3)   Load 60
               62:   18(fvec2)   VectorShuffle 61 61 0 1
               63:   18(fvec2)   FAdd 62 59
-              64:     34(ptr)   AccessChain 24(packed) 31 56
-              65:   14(fvec3)   Load 64
-              66:   14(fvec3)   VectorShuffle 65 63 3 4 2
-                                Store 64 66
+              65:     42(ptr)   AccessChain 24(packed) 31 56 64
+              66:    6(float)   CompositeExtract 63 0
+                                Store 65 66
+              68:     42(ptr)   AccessChain 24(packed) 31 56 67
+              69:    6(float)   CompositeExtract 63 1
+                                Store 68 69
                                 Branch 51
               51:               Label
-              67:     21(int)   Load 47(i)
-              68:     21(int)   IAdd 67 31
-                                Store 47(i) 68
+              70:     21(int)   Load 47(i)
+              71:     21(int)   IAdd 70 31
+                                Store 47(i) 71
                                 Branch 48
               50:             Label
-              70:  22(Packed) Load 24(packed)
-                              Store 69(packed2) 70
-              71:    7(fvec4) Load 10(pos)
-              72:     34(ptr) AccessChain 69(packed2) 31 25
-              73:   14(fvec3) Load 72
-              74:    6(float) CompositeExtract 73 0
-              75:    6(float) CompositeExtract 73 1
-              76:    6(float) CompositeExtract 73 2
-              77:    7(fvec4) CompositeConstruct 74 75 76 32
-              78:    7(fvec4) FAdd 71 77
-                              ReturnValue 78
+              73:  22(Packed) Load 24(packed)
+                              Store 72(packed2) 73
+              74:    7(fvec4) Load 10(pos)
+              75:     34(ptr) AccessChain 72(packed2) 31 25
+              76:   14(fvec3) Load 75
+              77:    6(float) CompositeExtract 76 0
+              78:    6(float) CompositeExtract 76 1
+              79:    6(float) CompositeExtract 76 2
+              80:    7(fvec4) CompositeConstruct 77 78 79 32
+              81:    7(fvec4) FAdd 74 80
+                              ReturnValue 81
                               FunctionEnd
diff --git a/Test/baseResults/hlsl.rw.register.frag.out b/Test/baseResults/hlsl.rw.register.frag.out
index 7bcecc9..265eaf9 100644
--- a/Test/baseResults/hlsl.rw.register.frag.out
+++ b/Test/baseResults/hlsl.rw.register.frag.out
@@ -97,17 +97,16 @@
 0:?     'g_tBuf1du1' (layout( binding=3 r32ui) uniform uimageBuffer)
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
-Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 42
+// Id's are bound by 45
 
                               Capability Shader
                               Capability Image1D
                               Capability ImageBuffer
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 39
+                              EntryPoint Fragment 4  "main" 42
                               ExecutionMode 4 OriginUpperLeft
                               Source HLSL 500
                               Name 4  "main"
@@ -116,15 +115,15 @@
                               Name 10  "@main("
                               Name 13  "r00"
                               Name 16  "g_tTex1df1"
-                              Name 23  "r01"
-                              Name 26  "g_tBuf1du1"
-                              Name 30  "psout"
-                              Name 39  "@entryPointOutput.Color"
+                              Name 24  "r01"
+                              Name 27  "g_tBuf1du1"
+                              Name 33  "psout"
+                              Name 42  "@entryPointOutput.Color"
                               Decorate 16(g_tTex1df1) DescriptorSet 0
                               Decorate 16(g_tTex1df1) Binding 2
-                              Decorate 26(g_tBuf1du1) DescriptorSet 0
-                              Decorate 26(g_tBuf1du1) Binding 3
-                              Decorate 39(@entryPointOutput.Color) Location 0
+                              Decorate 27(g_tBuf1du1) DescriptorSet 0
+                              Decorate 27(g_tBuf1du1) Binding 3
+                              Decorate 42(@entryPointOutput.Color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -137,37 +136,40 @@
   16(g_tTex1df1):     15(ptr) Variable UniformConstant
               18:             TypeInt 32 1
               19:     18(int) Constant 0
-              21:             TypeInt 32 0
-              22:             TypePointer Function 21(int)
-              24:             TypeImage 21(int) Buffer nonsampled format:R32ui
-              25:             TypePointer UniformConstant 24
-  26(g_tBuf1du1):     25(ptr) Variable UniformConstant
-              29:             TypePointer Function 8(PS_OUTPUT)
-              31:    6(float) Constant 1065353216
-              32:    7(fvec4) ConstantComposite 31 31 31 31
-              33:             TypePointer Function 7(fvec4)
-              38:             TypePointer Output 7(fvec4)
-39(@entryPointOutput.Color):     38(ptr) Variable Output
+              22:             TypeInt 32 0
+              23:             TypePointer Function 22(int)
+              25:             TypeImage 22(int) Buffer nonsampled format:R32ui
+              26:             TypePointer UniformConstant 25
+  27(g_tBuf1du1):     26(ptr) Variable UniformConstant
+              29:             TypeVector 22(int) 4
+              32:             TypePointer Function 8(PS_OUTPUT)
+              34:    6(float) Constant 1065353216
+              35:    7(fvec4) ConstantComposite 34 34 34 34
+              36:             TypePointer Function 7(fvec4)
+              41:             TypePointer Output 7(fvec4)
+42(@entryPointOutput.Color):     41(ptr) Variable Output
          4(main):           2 Function None 3
                5:             Label
-              40:8(PS_OUTPUT) FunctionCall 10(@main()
-              41:    7(fvec4) CompositeExtract 40 0
-                              Store 39(@entryPointOutput.Color) 41
+              43:8(PS_OUTPUT) FunctionCall 10(@main()
+              44:    7(fvec4) CompositeExtract 43 0
+                              Store 42(@entryPointOutput.Color) 44
                               Return
                               FunctionEnd
       10(@main():8(PS_OUTPUT) Function None 9
               11:             Label
          13(r00):     12(ptr) Variable Function
-         23(r01):     22(ptr) Variable Function
-       30(psout):     29(ptr) Variable Function
+         24(r01):     23(ptr) Variable Function
+       33(psout):     32(ptr) Variable Function
               17:          14 Load 16(g_tTex1df1)
-              20:    6(float) ImageRead 17 19
-                              Store 13(r00) 20
-              27:          24 Load 26(g_tBuf1du1)
-              28:     21(int) ImageRead 27 19
-                              Store 23(r01) 28
-              34:     33(ptr) AccessChain 30(psout) 19
-                              Store 34 32
-              35:8(PS_OUTPUT) Load 30(psout)
-                              ReturnValue 35
+              20:    7(fvec4) ImageRead 17 19
+              21:    6(float) CompositeExtract 20 0
+                              Store 13(r00) 21
+              28:          25 Load 27(g_tBuf1du1)
+              30:   29(ivec4) ImageRead 28 19
+              31:     22(int) CompositeExtract 30 0
+                              Store 24(r01) 31
+              37:     36(ptr) AccessChain 33(psout) 19
+                              Store 37 35
+              38:8(PS_OUTPUT) Load 33(psout)
+                              ReturnValue 38
                               FunctionEnd
diff --git a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
index e76d597..8e4716b 100644
--- a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
+++ b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
@@ -1689,16 +1689,15 @@
 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4,  uniform float uf1,  uniform int ui1,  uniform uint uu1})
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
-Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 571
+// Id's are bound by 607
 
                               Capability Shader
                               Capability Image1D
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 547
+                              EntryPoint Fragment 4  "main" 583
                               ExecutionMode 4 OriginUpperLeft
                               Source HLSL 500
                               Name 4  "main"
@@ -1732,101 +1731,101 @@
                               MemberName 59($Global) 10  "uu1"
                               Name 61  ""
                               Name 70  "g_tTex1df1"
-                              Name 75  "r00"
-                              Name 80  "r01"
-                              Name 83  "g_tTex1di1"
-                              Name 88  "r02"
-                              Name 91  "g_tTex1du1"
-                              Name 96  "r10"
-                              Name 99  "g_tTex2df1"
-                              Name 106  "r11"
-                              Name 109  "g_tTex2di1"
-                              Name 114  "r12"
-                              Name 117  "g_tTex2du1"
-                              Name 122  "r20"
-                              Name 125  "g_tTex3df1"
-                              Name 132  "r21"
-                              Name 135  "g_tTex3di1"
-                              Name 140  "r22"
-                              Name 143  "g_tTex3du1"
-                              Name 148  "lf1"
-                              Name 153  "storeTemp"
-                              Name 163  "storeTemp"
-                              Name 168  "storeTemp"
-                              Name 174  "val1"
-                              Name 175  "coordTemp"
-                              Name 178  "storeTemp"
-                              Name 189  "coordTemp"
-                              Name 192  "storeTemp"
-                              Name 202  "coordTemp"
-                              Name 205  "storeTemp"
+                              Name 76  "r00"
+                              Name 82  "r01"
+                              Name 85  "g_tTex1di1"
+                              Name 91  "r02"
+                              Name 94  "g_tTex1du1"
+                              Name 101  "r10"
+                              Name 104  "g_tTex2df1"
+                              Name 112  "r11"
+                              Name 115  "g_tTex2di1"
+                              Name 121  "r12"
+                              Name 124  "g_tTex2du1"
+                              Name 130  "r20"
+                              Name 133  "g_tTex3df1"
+                              Name 141  "r21"
+                              Name 144  "g_tTex3di1"
+                              Name 150  "r22"
+                              Name 153  "g_tTex3du1"
+                              Name 159  "lf1"
+                              Name 164  "storeTemp"
+                              Name 174  "storeTemp"
+                              Name 179  "storeTemp"
+                              Name 185  "val1"
+                              Name 186  "coordTemp"
+                              Name 189  "storeTemp"
+                              Name 201  "coordTemp"
+                              Name 204  "storeTemp"
                               Name 215  "coordTemp"
                               Name 218  "storeTemp"
-                              Name 227  "coordTemp"
-                              Name 230  "storeTemp"
-                              Name 239  "coordTemp"
-                              Name 242  "storeTemp"
-                              Name 252  "coordTemp"
-                              Name 255  "storeTemp"
-                              Name 265  "coordTemp"
-                              Name 268  "storeTemp"
-                              Name 277  "coordTemp"
-                              Name 280  "storeTemp"
-                              Name 289  "storeTemp"
+                              Name 229  "coordTemp"
+                              Name 232  "storeTemp"
+                              Name 242  "coordTemp"
+                              Name 245  "storeTemp"
+                              Name 255  "coordTemp"
+                              Name 258  "storeTemp"
+                              Name 269  "coordTemp"
+                              Name 272  "storeTemp"
+                              Name 283  "coordTemp"
+                              Name 286  "storeTemp"
+                              Name 296  "coordTemp"
                               Name 299  "storeTemp"
-                              Name 305  "storeTemp"
-                              Name 311  "storeTemp"
-                              Name 321  "storeTemp"
-                              Name 326  "storeTemp"
-                              Name 336  "param"
-                              Name 342  "param"
-                              Name 348  "param"
-                              Name 350  "tempArg"
-                              Name 351  "param"
-                              Name 358  "tempArg"
-                              Name 359  "param"
-                              Name 366  "tempArg"
-                              Name 367  "param"
-                              Name 374  "coordTemp"
-                              Name 377  "storeTemp"
-                              Name 387  "coordTemp"
-                              Name 390  "storeTemp"
-                              Name 399  "coordTemp"
-                              Name 402  "storeTemp"
+                              Name 309  "storeTemp"
+                              Name 319  "storeTemp"
+                              Name 325  "storeTemp"
+                              Name 331  "storeTemp"
+                              Name 341  "storeTemp"
+                              Name 346  "storeTemp"
+                              Name 357  "param"
+                              Name 364  "param"
+                              Name 371  "param"
+                              Name 373  "tempArg"
+                              Name 374  "param"
+                              Name 381  "tempArg"
+                              Name 382  "param"
+                              Name 389  "tempArg"
+                              Name 390  "param"
+                              Name 397  "coordTemp"
+                              Name 400  "storeTemp"
                               Name 411  "coordTemp"
                               Name 414  "storeTemp"
-                              Name 423  "coordTemp"
-                              Name 426  "storeTemp"
-                              Name 435  "coordTemp"
-                              Name 438  "storeTemp"
-                              Name 447  "coordTemp"
-                              Name 450  "storeTempPre"
-                              Name 454  "storeTempPost"
-                              Name 461  "coordTemp"
-                              Name 464  "storeTempPre"
-                              Name 468  "storeTempPost"
-                              Name 475  "coordTemp"
-                              Name 478  "storeTempPre"
-                              Name 482  "storeTempPost"
-                              Name 489  "coordTemp"
-                              Name 492  "storeTempPre"
-                              Name 496  "storeTempPost"
-                              Name 503  "coordTemp"
-                              Name 506  "storeTempPre"
-                              Name 510  "storeTempPost"
-                              Name 517  "coordTemp"
-                              Name 520  "storeTempPre"
-                              Name 524  "storeTempPost"
-                              Name 531  "storeTemp"
-                              Name 539  "psout"
-                              Name 547  "@entryPointOutput.Color"
-                              Name 552  "g_sSamp"
-                              Name 555  "g_tTex1df1a"
-                              Name 558  "g_tTex1di1a"
-                              Name 561  "g_tTex1du1a"
-                              Name 564  "g_tTex2df1a"
-                              Name 567  "g_tTex2di1a"
-                              Name 570  "g_tTex2du1a"
+                              Name 424  "coordTemp"
+                              Name 427  "storeTemp"
+                              Name 437  "coordTemp"
+                              Name 440  "storeTemp"
+                              Name 450  "coordTemp"
+                              Name 453  "storeTemp"
+                              Name 463  "coordTemp"
+                              Name 466  "storeTemp"
+                              Name 476  "coordTemp"
+                              Name 479  "storeTempPre"
+                              Name 484  "storeTempPost"
+                              Name 491  "coordTemp"
+                              Name 494  "storeTempPre"
+                              Name 499  "storeTempPost"
+                              Name 506  "coordTemp"
+                              Name 509  "storeTempPre"
+                              Name 514  "storeTempPost"
+                              Name 521  "coordTemp"
+                              Name 524  "storeTempPre"
+                              Name 529  "storeTempPost"
+                              Name 536  "coordTemp"
+                              Name 539  "storeTempPre"
+                              Name 544  "storeTempPost"
+                              Name 551  "coordTemp"
+                              Name 554  "storeTempPre"
+                              Name 559  "storeTempPost"
+                              Name 566  "storeTemp"
+                              Name 575  "psout"
+                              Name 583  "@entryPointOutput.Color"
+                              Name 588  "g_sSamp"
+                              Name 591  "g_tTex1df1a"
+                              Name 594  "g_tTex1di1a"
+                              Name 597  "g_tTex1du1a"
+                              Name 600  "g_tTex2df1a"
+                              Name 603  "g_tTex2di1a"
+                              Name 606  "g_tTex2du1a"
                               MemberDecorate 59($Global) 0 Offset 0
                               MemberDecorate 59($Global) 1 Offset 8
                               MemberDecorate 59($Global) 2 Offset 16
@@ -1843,37 +1842,37 @@
                               Decorate 61 Binding 10
                               Decorate 70(g_tTex1df1) DescriptorSet 0
                               Decorate 70(g_tTex1df1) Binding 1
-                              Decorate 83(g_tTex1di1) DescriptorSet 0
-                              Decorate 83(g_tTex1di1) Binding 2
-                              Decorate 91(g_tTex1du1) DescriptorSet 0
-                              Decorate 91(g_tTex1du1) Binding 3
-                              Decorate 99(g_tTex2df1) DescriptorSet 0
-                              Decorate 99(g_tTex2df1) Binding 4
-                              Decorate 109(g_tTex2di1) DescriptorSet 0
-                              Decorate 109(g_tTex2di1) Binding 5
-                              Decorate 117(g_tTex2du1) DescriptorSet 0
-                              Decorate 117(g_tTex2du1) Binding 6
-                              Decorate 125(g_tTex3df1) DescriptorSet 0
-                              Decorate 125(g_tTex3df1) Binding 7
-                              Decorate 135(g_tTex3di1) DescriptorSet 0
-                              Decorate 135(g_tTex3di1) Binding 8
-                              Decorate 143(g_tTex3du1) DescriptorSet 0
-                              Decorate 143(g_tTex3du1) Binding 9
-                              Decorate 547(@entryPointOutput.Color) Location 0
-                              Decorate 552(g_sSamp) DescriptorSet 0
-                              Decorate 552(g_sSamp) Binding 0
-                              Decorate 555(g_tTex1df1a) DescriptorSet 0
-                              Decorate 555(g_tTex1df1a) Binding 0
-                              Decorate 558(g_tTex1di1a) DescriptorSet 0
-                              Decorate 558(g_tTex1di1a) Binding 0
-                              Decorate 561(g_tTex1du1a) DescriptorSet 0
-                              Decorate 561(g_tTex1du1a) Binding 0
-                              Decorate 564(g_tTex2df1a) DescriptorSet 0
-                              Decorate 564(g_tTex2df1a) Binding 0
-                              Decorate 567(g_tTex2di1a) DescriptorSet 0
-                              Decorate 567(g_tTex2di1a) Binding 0
-                              Decorate 570(g_tTex2du1a) DescriptorSet 0
-                              Decorate 570(g_tTex2du1a) Binding 0
+                              Decorate 85(g_tTex1di1) DescriptorSet 0
+                              Decorate 85(g_tTex1di1) Binding 2
+                              Decorate 94(g_tTex1du1) DescriptorSet 0
+                              Decorate 94(g_tTex1du1) Binding 3
+                              Decorate 104(g_tTex2df1) DescriptorSet 0
+                              Decorate 104(g_tTex2df1) Binding 4
+                              Decorate 115(g_tTex2di1) DescriptorSet 0
+                              Decorate 115(g_tTex2di1) Binding 5
+                              Decorate 124(g_tTex2du1) DescriptorSet 0
+                              Decorate 124(g_tTex2du1) Binding 6
+                              Decorate 133(g_tTex3df1) DescriptorSet 0
+                              Decorate 133(g_tTex3df1) Binding 7
+                              Decorate 144(g_tTex3di1) DescriptorSet 0
+                              Decorate 144(g_tTex3di1) Binding 8
+                              Decorate 153(g_tTex3du1) DescriptorSet 0
+                              Decorate 153(g_tTex3du1) Binding 9
+                              Decorate 583(@entryPointOutput.Color) Location 0
+                              Decorate 588(g_sSamp) DescriptorSet 0
+                              Decorate 588(g_sSamp) Binding 0
+                              Decorate 591(g_tTex1df1a) DescriptorSet 0
+                              Decorate 591(g_tTex1df1a) Binding 0
+                              Decorate 594(g_tTex1di1a) DescriptorSet 0
+                              Decorate 594(g_tTex1di1a) Binding 0
+                              Decorate 597(g_tTex1du1a) DescriptorSet 0
+                              Decorate 597(g_tTex1du1a) Binding 0
+                              Decorate 600(g_tTex2df1a) DescriptorSet 0
+                              Decorate 600(g_tTex2df1a) Binding 0
+                              Decorate 603(g_tTex2di1a) DescriptorSet 0
+                              Decorate 603(g_tTex2di1a) Binding 0
+                              Decorate 606(g_tTex2du1a) DescriptorSet 0
+                              Decorate 606(g_tTex2du1a) Binding 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
@@ -1905,79 +1904,80 @@
               68:             TypeImage 18(float) 1D nonsampled format:R32f
               69:             TypePointer UniformConstant 68
   70(g_tTex1df1):     69(ptr) Variable UniformConstant
-              81:             TypeImage 6(int) 1D nonsampled format:R32i
-              82:             TypePointer UniformConstant 81
-  83(g_tTex1di1):     82(ptr) Variable UniformConstant
-              89:             TypeImage 12(int) 1D nonsampled format:R32ui
-              90:             TypePointer UniformConstant 89
-  91(g_tTex1du1):     90(ptr) Variable UniformConstant
-              97:             TypeImage 18(float) 2D nonsampled format:R32f
-              98:             TypePointer UniformConstant 97
-  99(g_tTex2df1):     98(ptr) Variable UniformConstant
-             101:      6(int) Constant 1
-             102:             TypePointer Uniform 56(ivec2)
-             107:             TypeImage 6(int) 2D nonsampled format:R32i
-             108:             TypePointer UniformConstant 107
- 109(g_tTex2di1):    108(ptr) Variable UniformConstant
-             115:             TypeImage 12(int) 2D nonsampled format:R32ui
-             116:             TypePointer UniformConstant 115
- 117(g_tTex2du1):    116(ptr) Variable UniformConstant
-             123:             TypeImage 18(float) 3D nonsampled format:R32f
-             124:             TypePointer UniformConstant 123
- 125(g_tTex3df1):    124(ptr) Variable UniformConstant
-             127:      6(int) Constant 2
-             128:             TypePointer Uniform 57(ivec3)
-             133:             TypeImage 6(int) 3D nonsampled format:R32i
-             134:             TypePointer UniformConstant 133
- 135(g_tTex3di1):    134(ptr) Variable UniformConstant
-             141:             TypeImage 12(int) 3D nonsampled format:R32ui
-             142:             TypePointer UniformConstant 141
- 143(g_tTex3du1):    142(ptr) Variable UniformConstant
-             149:      6(int) Constant 8
-             150:             TypePointer Uniform 18(float)
-             169:     12(int) Constant 3
-             182:   18(float) Constant 1073741824
-             196:   18(float) Constant 1077936128
-             209:   18(float) Constant 1082130432
-             246:      6(int) Constant 65535
-             259:      6(int) Constant 61680
-             300:      6(int) Constant 5
-             306:     12(int) Constant 6
-             327:     12(int) Constant 9
-             382:   18(float) Constant 1065353216
-             533:      6(int) Constant 3
-             534:   56(ivec2) ConstantComposite 127 533
-             538:             TypePointer Function 40(PS_OUTPUT)
-             540:   39(fvec4) ConstantComposite 382 382 382 382
-             541:             TypePointer Function 39(fvec4)
-             546:             TypePointer Output 39(fvec4)
-547(@entryPointOutput.Color):    546(ptr) Variable Output
-             550:             TypeSampler
-             551:             TypePointer UniformConstant 550
-    552(g_sSamp):    551(ptr) Variable UniformConstant
-             553:             TypeImage 18(float) 1D array nonsampled format:R32f
-             554:             TypePointer UniformConstant 553
-555(g_tTex1df1a):    554(ptr) Variable UniformConstant
-             556:             TypeImage 6(int) 1D array nonsampled format:R32i
-             557:             TypePointer UniformConstant 556
-558(g_tTex1di1a):    557(ptr) Variable UniformConstant
-             559:             TypeImage 12(int) 1D array nonsampled format:R32ui
-             560:             TypePointer UniformConstant 559
-561(g_tTex1du1a):    560(ptr) Variable UniformConstant
-             562:             TypeImage 18(float) 2D array nonsampled format:R32f
-             563:             TypePointer UniformConstant 562
-564(g_tTex2df1a):    563(ptr) Variable UniformConstant
-             565:             TypeImage 6(int) 2D array nonsampled format:R32i
-             566:             TypePointer UniformConstant 565
-567(g_tTex2di1a):    566(ptr) Variable UniformConstant
-             568:             TypeImage 12(int) 2D array nonsampled format:R32ui
-             569:             TypePointer UniformConstant 568
-570(g_tTex2du1a):    569(ptr) Variable UniformConstant
+              83:             TypeImage 6(int) 1D nonsampled format:R32i
+              84:             TypePointer UniformConstant 83
+  85(g_tTex1di1):     84(ptr) Variable UniformConstant
+              92:             TypeImage 12(int) 1D nonsampled format:R32ui
+              93:             TypePointer UniformConstant 92
+  94(g_tTex1du1):     93(ptr) Variable UniformConstant
+              98:             TypeVector 12(int) 4
+             102:             TypeImage 18(float) 2D nonsampled format:R32f
+             103:             TypePointer UniformConstant 102
+ 104(g_tTex2df1):    103(ptr) Variable UniformConstant
+             106:      6(int) Constant 1
+             107:             TypePointer Uniform 56(ivec2)
+             113:             TypeImage 6(int) 2D nonsampled format:R32i
+             114:             TypePointer UniformConstant 113
+ 115(g_tTex2di1):    114(ptr) Variable UniformConstant
+             122:             TypeImage 12(int) 2D nonsampled format:R32ui
+             123:             TypePointer UniformConstant 122
+ 124(g_tTex2du1):    123(ptr) Variable UniformConstant
+             131:             TypeImage 18(float) 3D nonsampled format:R32f
+             132:             TypePointer UniformConstant 131
+ 133(g_tTex3df1):    132(ptr) Variable UniformConstant
+             135:      6(int) Constant 2
+             136:             TypePointer Uniform 57(ivec3)
+             142:             TypeImage 6(int) 3D nonsampled format:R32i
+             143:             TypePointer UniformConstant 142
+ 144(g_tTex3di1):    143(ptr) Variable UniformConstant
+             151:             TypeImage 12(int) 3D nonsampled format:R32ui
+             152:             TypePointer UniformConstant 151
+ 153(g_tTex3du1):    152(ptr) Variable UniformConstant
+             160:      6(int) Constant 8
+             161:             TypePointer Uniform 18(float)
+             180:     12(int) Constant 3
+             194:   18(float) Constant 1073741824
+             209:   18(float) Constant 1077936128
+             223:   18(float) Constant 1082130432
+             263:      6(int) Constant 65535
+             277:      6(int) Constant 61680
+             320:      6(int) Constant 5
+             326:     12(int) Constant 6
+             347:     12(int) Constant 9
+             406:   18(float) Constant 1065353216
+             568:      6(int) Constant 3
+             569:   56(ivec2) ConstantComposite 135 568
+             574:             TypePointer Function 40(PS_OUTPUT)
+             576:   39(fvec4) ConstantComposite 406 406 406 406
+             577:             TypePointer Function 39(fvec4)
+             582:             TypePointer Output 39(fvec4)
+583(@entryPointOutput.Color):    582(ptr) Variable Output
+             586:             TypeSampler
+             587:             TypePointer UniformConstant 586
+    588(g_sSamp):    587(ptr) Variable UniformConstant
+             589:             TypeImage 18(float) 1D array nonsampled format:R32f
+             590:             TypePointer UniformConstant 589
+591(g_tTex1df1a):    590(ptr) Variable UniformConstant
+             592:             TypeImage 6(int) 1D array nonsampled format:R32i
+             593:             TypePointer UniformConstant 592
+594(g_tTex1di1a):    593(ptr) Variable UniformConstant
+             595:             TypeImage 12(int) 1D array nonsampled format:R32ui
+             596:             TypePointer UniformConstant 595
+597(g_tTex1du1a):    596(ptr) Variable UniformConstant
+             598:             TypeImage 18(float) 2D array nonsampled format:R32f
+             599:             TypePointer UniformConstant 598
+600(g_tTex2df1a):    599(ptr) Variable UniformConstant
+             601:             TypeImage 6(int) 2D array nonsampled format:R32i
+             602:             TypePointer UniformConstant 601
+603(g_tTex2di1a):    602(ptr) Variable UniformConstant
+             604:             TypeImage 12(int) 2D array nonsampled format:R32ui
+             605:             TypePointer UniformConstant 604
+606(g_tTex2du1a):    605(ptr) Variable UniformConstant
          4(main):           2 Function None 3
                5:             Label
-             548:40(PS_OUTPUT) FunctionCall 42(@main()
-             549:   39(fvec4) CompositeExtract 548 0
-                              Store 547(@entryPointOutput.Color) 549
+             584:40(PS_OUTPUT) FunctionCall 42(@main()
+             585:   39(fvec4) CompositeExtract 584 0
+                              Store 583(@entryPointOutput.Color) 585
                               Return
                               FunctionEnd
      10(Fn1(i1;):      6(int) Function None 8
@@ -2025,567 +2025,602 @@
                               FunctionEnd
       42(@main():40(PS_OUTPUT) Function None 41
               43:             Label
-         75(r00):     19(ptr) Variable Function
-         80(r01):      7(ptr) Variable Function
-         88(r02):     13(ptr) Variable Function
-         96(r10):     19(ptr) Variable Function
-        106(r11):      7(ptr) Variable Function
-        114(r12):     13(ptr) Variable Function
-        122(r20):     19(ptr) Variable Function
-        132(r21):      7(ptr) Variable Function
-        140(r22):     13(ptr) Variable Function
-        148(lf1):     19(ptr) Variable Function
-  153(storeTemp):     19(ptr) Variable Function
-  163(storeTemp):      7(ptr) Variable Function
-  168(storeTemp):     13(ptr) Variable Function
-       174(val1):     19(ptr) Variable Function
-  175(coordTemp):      7(ptr) Variable Function
-  178(storeTemp):     19(ptr) Variable Function
-  189(coordTemp):      7(ptr) Variable Function
-  192(storeTemp):     19(ptr) Variable Function
-  202(coordTemp):      7(ptr) Variable Function
-  205(storeTemp):     19(ptr) Variable Function
+         76(r00):     19(ptr) Variable Function
+         82(r01):      7(ptr) Variable Function
+         91(r02):     13(ptr) Variable Function
+        101(r10):     19(ptr) Variable Function
+        112(r11):      7(ptr) Variable Function
+        121(r12):     13(ptr) Variable Function
+        130(r20):     19(ptr) Variable Function
+        141(r21):      7(ptr) Variable Function
+        150(r22):     13(ptr) Variable Function
+        159(lf1):     19(ptr) Variable Function
+  164(storeTemp):     19(ptr) Variable Function
+  174(storeTemp):      7(ptr) Variable Function
+  179(storeTemp):     13(ptr) Variable Function
+       185(val1):     19(ptr) Variable Function
+  186(coordTemp):      7(ptr) Variable Function
+  189(storeTemp):     19(ptr) Variable Function
+  201(coordTemp):      7(ptr) Variable Function
+  204(storeTemp):     19(ptr) Variable Function
   215(coordTemp):      7(ptr) Variable Function
-  218(storeTemp):      7(ptr) Variable Function
-  227(coordTemp):      7(ptr) Variable Function
-  230(storeTemp):      7(ptr) Variable Function
-  239(coordTemp):      7(ptr) Variable Function
-  242(storeTemp):      7(ptr) Variable Function
-  252(coordTemp):      7(ptr) Variable Function
-  255(storeTemp):      7(ptr) Variable Function
-  265(coordTemp):      7(ptr) Variable Function
-  268(storeTemp):      7(ptr) Variable Function
-  277(coordTemp):      7(ptr) Variable Function
-  280(storeTemp):      7(ptr) Variable Function
-  289(storeTemp):     19(ptr) Variable Function
+  218(storeTemp):     19(ptr) Variable Function
+  229(coordTemp):      7(ptr) Variable Function
+  232(storeTemp):      7(ptr) Variable Function
+  242(coordTemp):      7(ptr) Variable Function
+  245(storeTemp):      7(ptr) Variable Function
+  255(coordTemp):      7(ptr) Variable Function
+  258(storeTemp):      7(ptr) Variable Function
+  269(coordTemp):      7(ptr) Variable Function
+  272(storeTemp):      7(ptr) Variable Function
+  283(coordTemp):      7(ptr) Variable Function
+  286(storeTemp):      7(ptr) Variable Function
+  296(coordTemp):      7(ptr) Variable Function
   299(storeTemp):      7(ptr) Variable Function
-  305(storeTemp):     13(ptr) Variable Function
-  311(storeTemp):     19(ptr) Variable Function
-  321(storeTemp):      7(ptr) Variable Function
-  326(storeTemp):     13(ptr) Variable Function
-      336(param):     19(ptr) Variable Function
-      342(param):      7(ptr) Variable Function
-      348(param):     13(ptr) Variable Function
-    350(tempArg):     19(ptr) Variable Function
-      351(param):     19(ptr) Variable Function
-    358(tempArg):      7(ptr) Variable Function
-      359(param):      7(ptr) Variable Function
-    366(tempArg):     13(ptr) Variable Function
-      367(param):     13(ptr) Variable Function
-  374(coordTemp):      7(ptr) Variable Function
-  377(storeTemp):     19(ptr) Variable Function
-  387(coordTemp):      7(ptr) Variable Function
-  390(storeTemp):      7(ptr) Variable Function
-  399(coordTemp):      7(ptr) Variable Function
-  402(storeTemp):     13(ptr) Variable Function
+  309(storeTemp):     19(ptr) Variable Function
+  319(storeTemp):      7(ptr) Variable Function
+  325(storeTemp):     13(ptr) Variable Function
+  331(storeTemp):     19(ptr) Variable Function
+  341(storeTemp):      7(ptr) Variable Function
+  346(storeTemp):     13(ptr) Variable Function
+      357(param):     19(ptr) Variable Function
+      364(param):      7(ptr) Variable Function
+      371(param):     13(ptr) Variable Function
+    373(tempArg):     19(ptr) Variable Function
+      374(param):     19(ptr) Variable Function
+    381(tempArg):      7(ptr) Variable Function
+      382(param):      7(ptr) Variable Function
+    389(tempArg):     13(ptr) Variable Function
+      390(param):     13(ptr) Variable Function
+  397(coordTemp):      7(ptr) Variable Function
+  400(storeTemp):     19(ptr) Variable Function
   411(coordTemp):      7(ptr) Variable Function
-  414(storeTemp):     19(ptr) Variable Function
-  423(coordTemp):      7(ptr) Variable Function
-  426(storeTemp):      7(ptr) Variable Function
-  435(coordTemp):      7(ptr) Variable Function
-  438(storeTemp):     13(ptr) Variable Function
-  447(coordTemp):      7(ptr) Variable Function
-450(storeTempPre):     19(ptr) Variable Function
-454(storeTempPost):     19(ptr) Variable Function
-  461(coordTemp):      7(ptr) Variable Function
-464(storeTempPre):     13(ptr) Variable Function
-468(storeTempPost):     13(ptr) Variable Function
-  475(coordTemp):      7(ptr) Variable Function
-478(storeTempPre):      7(ptr) Variable Function
-482(storeTempPost):      7(ptr) Variable Function
-  489(coordTemp):      7(ptr) Variable Function
-492(storeTempPre):     19(ptr) Variable Function
-496(storeTempPost):     19(ptr) Variable Function
-  503(coordTemp):      7(ptr) Variable Function
-506(storeTempPre):      7(ptr) Variable Function
-510(storeTempPost):      7(ptr) Variable Function
-  517(coordTemp):      7(ptr) Variable Function
-520(storeTempPre):     13(ptr) Variable Function
-524(storeTempPost):     13(ptr) Variable Function
-  531(storeTemp):     19(ptr) Variable Function
-      539(psout):    538(ptr) Variable Function
+  414(storeTemp):      7(ptr) Variable Function
+  424(coordTemp):      7(ptr) Variable Function
+  427(storeTemp):     13(ptr) Variable Function
+  437(coordTemp):      7(ptr) Variable Function
+  440(storeTemp):     19(ptr) Variable Function
+  450(coordTemp):      7(ptr) Variable Function
+  453(storeTemp):      7(ptr) Variable Function
+  463(coordTemp):      7(ptr) Variable Function
+  466(storeTemp):     13(ptr) Variable Function
+  476(coordTemp):      7(ptr) Variable Function
+479(storeTempPre):     19(ptr) Variable Function
+484(storeTempPost):     19(ptr) Variable Function
+  491(coordTemp):      7(ptr) Variable Function
+494(storeTempPre):     13(ptr) Variable Function
+499(storeTempPost):     13(ptr) Variable Function
+  506(coordTemp):      7(ptr) Variable Function
+509(storeTempPre):      7(ptr) Variable Function
+514(storeTempPost):      7(ptr) Variable Function
+  521(coordTemp):      7(ptr) Variable Function
+524(storeTempPre):     19(ptr) Variable Function
+529(storeTempPost):     19(ptr) Variable Function
+  536(coordTemp):      7(ptr) Variable Function
+539(storeTempPre):      7(ptr) Variable Function
+544(storeTempPost):      7(ptr) Variable Function
+  551(coordTemp):      7(ptr) Variable Function
+554(storeTempPre):     13(ptr) Variable Function
+559(storeTempPost):     13(ptr) Variable Function
+  566(storeTemp):     19(ptr) Variable Function
+      575(psout):    574(ptr) Variable Function
               71:          68 Load 70(g_tTex1df1)
               72:     62(ptr) AccessChain 61 53
               73:      6(int) Load 72
-              74:   18(float) ImageRead 71 73
-              76:          68 Load 70(g_tTex1df1)
-              77:     62(ptr) AccessChain 61 53
-              78:      6(int) Load 77
-              79:   18(float) ImageRead 76 78
-                              Store 75(r00) 79
-              84:          81 Load 83(g_tTex1di1)
-              85:     62(ptr) AccessChain 61 53
-              86:      6(int) Load 85
-              87:      6(int) ImageRead 84 86
-                              Store 80(r01) 87
-              92:          89 Load 91(g_tTex1du1)
-              93:     62(ptr) AccessChain 61 53
-              94:      6(int) Load 93
-              95:     12(int) ImageRead 92 94
-                              Store 88(r02) 95
-             100:          97 Load 99(g_tTex2df1)
-             103:    102(ptr) AccessChain 61 101
-             104:   56(ivec2) Load 103
-             105:   18(float) ImageRead 100 104
-                              Store 96(r10) 105
-             110:         107 Load 109(g_tTex2di1)
-             111:    102(ptr) AccessChain 61 101
-             112:   56(ivec2) Load 111
-             113:      6(int) ImageRead 110 112
-                              Store 106(r11) 113
-             118:         115 Load 117(g_tTex2du1)
-             119:    102(ptr) AccessChain 61 101
-             120:   56(ivec2) Load 119
-             121:     12(int) ImageRead 118 120
-                              Store 114(r12) 121
-             126:         123 Load 125(g_tTex3df1)
-             129:    128(ptr) AccessChain 61 127
-             130:   57(ivec3) Load 129
-             131:   18(float) ImageRead 126 130
-                              Store 122(r20) 131
-             136:         133 Load 135(g_tTex3di1)
-             137:    128(ptr) AccessChain 61 127
+              74:   39(fvec4) ImageRead 71 73
+              75:   18(float) CompositeExtract 74 0
+              77:          68 Load 70(g_tTex1df1)
+              78:     62(ptr) AccessChain 61 53
+              79:      6(int) Load 78
+              80:   39(fvec4) ImageRead 77 79
+              81:   18(float) CompositeExtract 80 0
+                              Store 76(r00) 81
+              86:          83 Load 85(g_tTex1di1)
+              87:     62(ptr) AccessChain 61 53
+              88:      6(int) Load 87
+              89:   58(ivec4) ImageRead 86 88
+              90:      6(int) CompositeExtract 89 0
+                              Store 82(r01) 90
+              95:          92 Load 94(g_tTex1du1)
+              96:     62(ptr) AccessChain 61 53
+              97:      6(int) Load 96
+              99:   98(ivec4) ImageRead 95 97
+             100:     12(int) CompositeExtract 99 0
+                              Store 91(r02) 100
+             105:         102 Load 104(g_tTex2df1)
+             108:    107(ptr) AccessChain 61 106
+             109:   56(ivec2) Load 108
+             110:   39(fvec4) ImageRead 105 109
+             111:   18(float) CompositeExtract 110 0
+                              Store 101(r10) 111
+             116:         113 Load 115(g_tTex2di1)
+             117:    107(ptr) AccessChain 61 106
+             118:   56(ivec2) Load 117
+             119:   58(ivec4) ImageRead 116 118
+             120:      6(int) CompositeExtract 119 0
+                              Store 112(r11) 120
+             125:         122 Load 124(g_tTex2du1)
+             126:    107(ptr) AccessChain 61 106
+             127:   56(ivec2) Load 126
+             128:   98(ivec4) ImageRead 125 127
+             129:     12(int) CompositeExtract 128 0
+                              Store 121(r12) 129
+             134:         131 Load 133(g_tTex3df1)
+             137:    136(ptr) AccessChain 61 135
              138:   57(ivec3) Load 137
-             139:      6(int) ImageRead 136 138
-                              Store 132(r21) 139
-             144:         141 Load 143(g_tTex3du1)
-             145:    128(ptr) AccessChain 61 127
-             146:   57(ivec3) Load 145
-             147:     12(int) ImageRead 144 146
-                              Store 140(r22) 147
-             151:    150(ptr) AccessChain 61 149
-             152:   18(float) Load 151
-                              Store 148(lf1) 152
-             154:   18(float) FunctionCall 37(SomeValue()
-                              Store 153(storeTemp) 154
-             155:          68 Load 70(g_tTex1df1)
-             156:     62(ptr) AccessChain 61 53
-             157:      6(int) Load 156
-             158:   18(float) Load 153(storeTemp)
-                              ImageWrite 155 157 158
-             159:          68 Load 70(g_tTex1df1)
-             160:     62(ptr) AccessChain 61 53
-             161:      6(int) Load 160
-             162:   18(float) Load 148(lf1)
-                              ImageWrite 159 161 162
-                              Store 163(storeTemp) 127
-             164:          81 Load 83(g_tTex1di1)
-             165:     62(ptr) AccessChain 61 53
-             166:      6(int) Load 165
-             167:      6(int) Load 163(storeTemp)
-                              ImageWrite 164 166 167
-                              Store 168(storeTemp) 169
-             170:          89 Load 91(g_tTex1du1)
+             139:   39(fvec4) ImageRead 134 138
+             140:   18(float) CompositeExtract 139 0
+                              Store 130(r20) 140
+             145:         142 Load 144(g_tTex3di1)
+             146:    136(ptr) AccessChain 61 135
+             147:   57(ivec3) Load 146
+             148:   58(ivec4) ImageRead 145 147
+             149:      6(int) CompositeExtract 148 0
+                              Store 141(r21) 149
+             154:         151 Load 153(g_tTex3du1)
+             155:    136(ptr) AccessChain 61 135
+             156:   57(ivec3) Load 155
+             157:   98(ivec4) ImageRead 154 156
+             158:     12(int) CompositeExtract 157 0
+                              Store 150(r22) 158
+             162:    161(ptr) AccessChain 61 160
+             163:   18(float) Load 162
+                              Store 159(lf1) 163
+             165:   18(float) FunctionCall 37(SomeValue()
+                              Store 164(storeTemp) 165
+             166:          68 Load 70(g_tTex1df1)
+             167:     62(ptr) AccessChain 61 53
+             168:      6(int) Load 167
+             169:   18(float) Load 164(storeTemp)
+                              ImageWrite 166 168 169
+             170:          68 Load 70(g_tTex1df1)
              171:     62(ptr) AccessChain 61 53
              172:      6(int) Load 171
-             173:     12(int) Load 168(storeTemp)
+             173:   18(float) Load 159(lf1)
                               ImageWrite 170 172 173
+                              Store 174(storeTemp) 135
+             175:          83 Load 85(g_tTex1di1)
              176:     62(ptr) AccessChain 61 53
              177:      6(int) Load 176
-                              Store 175(coordTemp) 177
-             179:          68 Load 70(g_tTex1df1)
-             180:      6(int) Load 175(coordTemp)
-             181:   18(float) ImageRead 179 180
-                              Store 178(storeTemp) 181
-             183:   18(float) Load 178(storeTemp)
-             184:   18(float) FMul 183 182
-                              Store 178(storeTemp) 184
-             185:          68 Load 70(g_tTex1df1)
-             186:      6(int) Load 175(coordTemp)
-             187:   18(float) Load 178(storeTemp)
-                              ImageWrite 185 186 187
-             188:   18(float) Load 178(storeTemp)
-                              Store 174(val1) 188
-             190:     62(ptr) AccessChain 61 53
-             191:      6(int) Load 190
-                              Store 189(coordTemp) 191
-             193:          68 Load 70(g_tTex1df1)
-             194:      6(int) Load 189(coordTemp)
-             195:   18(float) ImageRead 193 194
-                              Store 192(storeTemp) 195
-             197:   18(float) Load 192(storeTemp)
-             198:   18(float) FSub 197 196
-                              Store 192(storeTemp) 198
-             199:          68 Load 70(g_tTex1df1)
-             200:      6(int) Load 189(coordTemp)
-             201:   18(float) Load 192(storeTemp)
-                              ImageWrite 199 200 201
-             203:     62(ptr) AccessChain 61 53
-             204:      6(int) Load 203
-                              Store 202(coordTemp) 204
-             206:          68 Load 70(g_tTex1df1)
-             207:      6(int) Load 202(coordTemp)
-             208:   18(float) ImageRead 206 207
-                              Store 205(storeTemp) 208
-             210:   18(float) Load 205(storeTemp)
-             211:   18(float) FAdd 210 209
-                              Store 205(storeTemp) 211
+             178:      6(int) Load 174(storeTemp)
+                              ImageWrite 175 177 178
+                              Store 179(storeTemp) 180
+             181:          92 Load 94(g_tTex1du1)
+             182:     62(ptr) AccessChain 61 53
+             183:      6(int) Load 182
+             184:     12(int) Load 179(storeTemp)
+                              ImageWrite 181 183 184
+             187:     62(ptr) AccessChain 61 53
+             188:      6(int) Load 187
+                              Store 186(coordTemp) 188
+             190:          68 Load 70(g_tTex1df1)
+             191:      6(int) Load 186(coordTemp)
+             192:   39(fvec4) ImageRead 190 191
+             193:   18(float) CompositeExtract 192 0
+                              Store 189(storeTemp) 193
+             195:   18(float) Load 189(storeTemp)
+             196:   18(float) FMul 195 194
+                              Store 189(storeTemp) 196
+             197:          68 Load 70(g_tTex1df1)
+             198:      6(int) Load 186(coordTemp)
+             199:   18(float) Load 189(storeTemp)
+                              ImageWrite 197 198 199
+             200:   18(float) Load 189(storeTemp)
+                              Store 185(val1) 200
+             202:     62(ptr) AccessChain 61 53
+             203:      6(int) Load 202
+                              Store 201(coordTemp) 203
+             205:          68 Load 70(g_tTex1df1)
+             206:      6(int) Load 201(coordTemp)
+             207:   39(fvec4) ImageRead 205 206
+             208:   18(float) CompositeExtract 207 0
+                              Store 204(storeTemp) 208
+             210:   18(float) Load 204(storeTemp)
+             211:   18(float) FSub 210 209
+                              Store 204(storeTemp) 211
              212:          68 Load 70(g_tTex1df1)
-             213:      6(int) Load 202(coordTemp)
-             214:   18(float) Load 205(storeTemp)
+             213:      6(int) Load 201(coordTemp)
+             214:   18(float) Load 204(storeTemp)
                               ImageWrite 212 213 214
              216:     62(ptr) AccessChain 61 53
              217:      6(int) Load 216
                               Store 215(coordTemp) 217
-             219:          81 Load 83(g_tTex1di1)
+             219:          68 Load 70(g_tTex1df1)
              220:      6(int) Load 215(coordTemp)
-             221:      6(int) ImageRead 219 220
-                              Store 218(storeTemp) 221
-             222:      6(int) Load 218(storeTemp)
-             223:      6(int) SDiv 222 127
-                              Store 218(storeTemp) 223
-             224:          81 Load 83(g_tTex1di1)
-             225:      6(int) Load 215(coordTemp)
-             226:      6(int) Load 218(storeTemp)
-                              ImageWrite 224 225 226
-             228:     62(ptr) AccessChain 61 53
-             229:      6(int) Load 228
-                              Store 227(coordTemp) 229
-             231:          81 Load 83(g_tTex1di1)
-             232:      6(int) Load 227(coordTemp)
-             233:      6(int) ImageRead 231 232
-                              Store 230(storeTemp) 233
-             234:      6(int) Load 230(storeTemp)
-             235:      6(int) SMod 234 127
-                              Store 230(storeTemp) 235
-             236:          81 Load 83(g_tTex1di1)
-             237:      6(int) Load 227(coordTemp)
-             238:      6(int) Load 230(storeTemp)
-                              ImageWrite 236 237 238
-             240:     62(ptr) AccessChain 61 53
-             241:      6(int) Load 240
-                              Store 239(coordTemp) 241
-             243:          81 Load 83(g_tTex1di1)
-             244:      6(int) Load 239(coordTemp)
-             245:      6(int) ImageRead 243 244
-                              Store 242(storeTemp) 245
-             247:      6(int) Load 242(storeTemp)
-             248:      6(int) BitwiseAnd 247 246
-                              Store 242(storeTemp) 248
-             249:          81 Load 83(g_tTex1di1)
-             250:      6(int) Load 239(coordTemp)
-             251:      6(int) Load 242(storeTemp)
-                              ImageWrite 249 250 251
-             253:     62(ptr) AccessChain 61 53
-             254:      6(int) Load 253
-                              Store 252(coordTemp) 254
-             256:          81 Load 83(g_tTex1di1)
-             257:      6(int) Load 252(coordTemp)
-             258:      6(int) ImageRead 256 257
-                              Store 255(storeTemp) 258
-             260:      6(int) Load 255(storeTemp)
-             261:      6(int) BitwiseOr 260 259
-                              Store 255(storeTemp) 261
-             262:          81 Load 83(g_tTex1di1)
-             263:      6(int) Load 252(coordTemp)
-             264:      6(int) Load 255(storeTemp)
-                              ImageWrite 262 263 264
-             266:     62(ptr) AccessChain 61 53
-             267:      6(int) Load 266
-                              Store 265(coordTemp) 267
-             269:          81 Load 83(g_tTex1di1)
-             270:      6(int) Load 265(coordTemp)
-             271:      6(int) ImageRead 269 270
-                              Store 268(storeTemp) 271
-             272:      6(int) Load 268(storeTemp)
-             273:      6(int) ShiftLeftLogical 272 127
-                              Store 268(storeTemp) 273
-             274:          81 Load 83(g_tTex1di1)
-             275:      6(int) Load 265(coordTemp)
-             276:      6(int) Load 268(storeTemp)
-                              ImageWrite 274 275 276
-             278:     62(ptr) AccessChain 61 53
-             279:      6(int) Load 278
-                              Store 277(coordTemp) 279
-             281:          81 Load 83(g_tTex1di1)
-             282:      6(int) Load 277(coordTemp)
-             283:      6(int) ImageRead 281 282
-                              Store 280(storeTemp) 283
-             284:      6(int) Load 280(storeTemp)
-             285:      6(int) ShiftRightArithmetic 284 127
-                              Store 280(storeTemp) 285
-             286:          81 Load 83(g_tTex1di1)
-             287:      6(int) Load 277(coordTemp)
-             288:      6(int) Load 280(storeTemp)
-                              ImageWrite 286 287 288
-             290:   18(float) FunctionCall 37(SomeValue()
-                              Store 289(storeTemp) 290
-             291:          97 Load 99(g_tTex2df1)
-             292:    102(ptr) AccessChain 61 101
-             293:   56(ivec2) Load 292
-             294:   18(float) Load 289(storeTemp)
-                              ImageWrite 291 293 294
-             295:          97 Load 99(g_tTex2df1)
-             296:    102(ptr) AccessChain 61 101
-             297:   56(ivec2) Load 296
-             298:   18(float) Load 148(lf1)
-                              ImageWrite 295 297 298
-                              Store 299(storeTemp) 300
-             301:         107 Load 109(g_tTex2di1)
-             302:    102(ptr) AccessChain 61 101
-             303:   56(ivec2) Load 302
+             221:   39(fvec4) ImageRead 219 220
+             222:   18(float) CompositeExtract 221 0
+                              Store 218(storeTemp) 222
+             224:   18(float) Load 218(storeTemp)
+             225:   18(float) FAdd 224 223
+                              Store 218(storeTemp) 225
+             226:          68 Load 70(g_tTex1df1)
+             227:      6(int) Load 215(coordTemp)
+             228:   18(float) Load 218(storeTemp)
+                              ImageWrite 226 227 228
+             230:     62(ptr) AccessChain 61 53
+             231:      6(int) Load 230
+                              Store 229(coordTemp) 231
+             233:          83 Load 85(g_tTex1di1)
+             234:      6(int) Load 229(coordTemp)
+             235:   58(ivec4) ImageRead 233 234
+             236:      6(int) CompositeExtract 235 0
+                              Store 232(storeTemp) 236
+             237:      6(int) Load 232(storeTemp)
+             238:      6(int) SDiv 237 135
+                              Store 232(storeTemp) 238
+             239:          83 Load 85(g_tTex1di1)
+             240:      6(int) Load 229(coordTemp)
+             241:      6(int) Load 232(storeTemp)
+                              ImageWrite 239 240 241
+             243:     62(ptr) AccessChain 61 53
+             244:      6(int) Load 243
+                              Store 242(coordTemp) 244
+             246:          83 Load 85(g_tTex1di1)
+             247:      6(int) Load 242(coordTemp)
+             248:   58(ivec4) ImageRead 246 247
+             249:      6(int) CompositeExtract 248 0
+                              Store 245(storeTemp) 249
+             250:      6(int) Load 245(storeTemp)
+             251:      6(int) SMod 250 135
+                              Store 245(storeTemp) 251
+             252:          83 Load 85(g_tTex1di1)
+             253:      6(int) Load 242(coordTemp)
+             254:      6(int) Load 245(storeTemp)
+                              ImageWrite 252 253 254
+             256:     62(ptr) AccessChain 61 53
+             257:      6(int) Load 256
+                              Store 255(coordTemp) 257
+             259:          83 Load 85(g_tTex1di1)
+             260:      6(int) Load 255(coordTemp)
+             261:   58(ivec4) ImageRead 259 260
+             262:      6(int) CompositeExtract 261 0
+                              Store 258(storeTemp) 262
+             264:      6(int) Load 258(storeTemp)
+             265:      6(int) BitwiseAnd 264 263
+                              Store 258(storeTemp) 265
+             266:          83 Load 85(g_tTex1di1)
+             267:      6(int) Load 255(coordTemp)
+             268:      6(int) Load 258(storeTemp)
+                              ImageWrite 266 267 268
+             270:     62(ptr) AccessChain 61 53
+             271:      6(int) Load 270
+                              Store 269(coordTemp) 271
+             273:          83 Load 85(g_tTex1di1)
+             274:      6(int) Load 269(coordTemp)
+             275:   58(ivec4) ImageRead 273 274
+             276:      6(int) CompositeExtract 275 0
+                              Store 272(storeTemp) 276
+             278:      6(int) Load 272(storeTemp)
+             279:      6(int) BitwiseOr 278 277
+                              Store 272(storeTemp) 279
+             280:          83 Load 85(g_tTex1di1)
+             281:      6(int) Load 269(coordTemp)
+             282:      6(int) Load 272(storeTemp)
+                              ImageWrite 280 281 282
+             284:     62(ptr) AccessChain 61 53
+             285:      6(int) Load 284
+                              Store 283(coordTemp) 285
+             287:          83 Load 85(g_tTex1di1)
+             288:      6(int) Load 283(coordTemp)
+             289:   58(ivec4) ImageRead 287 288
+             290:      6(int) CompositeExtract 289 0
+                              Store 286(storeTemp) 290
+             291:      6(int) Load 286(storeTemp)
+             292:      6(int) ShiftLeftLogical 291 135
+                              Store 286(storeTemp) 292
+             293:          83 Load 85(g_tTex1di1)
+             294:      6(int) Load 283(coordTemp)
+             295:      6(int) Load 286(storeTemp)
+                              ImageWrite 293 294 295
+             297:     62(ptr) AccessChain 61 53
+             298:      6(int) Load 297
+                              Store 296(coordTemp) 298
+             300:          83 Load 85(g_tTex1di1)
+             301:      6(int) Load 296(coordTemp)
+             302:   58(ivec4) ImageRead 300 301
+             303:      6(int) CompositeExtract 302 0
+                              Store 299(storeTemp) 303
              304:      6(int) Load 299(storeTemp)
-                              ImageWrite 301 303 304
-                              Store 305(storeTemp) 306
-             307:         115 Load 117(g_tTex2du1)
-             308:    102(ptr) AccessChain 61 101
-             309:   56(ivec2) Load 308
-             310:     12(int) Load 305(storeTemp)
-                              ImageWrite 307 309 310
-             312:   18(float) FunctionCall 37(SomeValue()
-                              Store 311(storeTemp) 312
-             313:         123 Load 125(g_tTex3df1)
-             314:    128(ptr) AccessChain 61 127
-             315:   57(ivec3) Load 314
-             316:   18(float) Load 311(storeTemp)
-                              ImageWrite 313 315 316
-             317:         123 Load 125(g_tTex3df1)
-             318:    128(ptr) AccessChain 61 127
-             319:   57(ivec3) Load 318
-             320:   18(float) Load 148(lf1)
-                              ImageWrite 317 319 320
-                              Store 321(storeTemp) 149
-             322:         133 Load 135(g_tTex3di1)
-             323:    128(ptr) AccessChain 61 127
-             324:   57(ivec3) Load 323
-             325:      6(int) Load 321(storeTemp)
-                              ImageWrite 322 324 325
-                              Store 326(storeTemp) 327
-             328:         141 Load 143(g_tTex3du1)
-             329:    128(ptr) AccessChain 61 127
-             330:   57(ivec3) Load 329
-             331:     12(int) Load 326(storeTemp)
-                              ImageWrite 328 330 331
-             332:          68 Load 70(g_tTex1df1)
-             333:     62(ptr) AccessChain 61 53
-             334:      6(int) Load 333
-             335:   18(float) ImageRead 332 334
-                              Store 336(param) 335
-             337:   18(float) FunctionCall 22(Fn1(f1;) 336(param)
-             338:          81 Load 83(g_tTex1di1)
-             339:     62(ptr) AccessChain 61 53
-             340:      6(int) Load 339
-             341:      6(int) ImageRead 338 340
-                              Store 342(param) 341
-             343:      6(int) FunctionCall 10(Fn1(i1;) 342(param)
-             344:          89 Load 91(g_tTex1du1)
-             345:     62(ptr) AccessChain 61 53
-             346:      6(int) Load 345
-             347:     12(int) ImageRead 344 346
-                              Store 348(param) 347
-             349:     12(int) FunctionCall 16(Fn1(u1;) 348(param)
-             352:           2 FunctionCall 34(Fn2(f1;) 351(param)
-             353:   18(float) Load 351(param)
-                              Store 350(tempArg) 353
-             354:          68 Load 70(g_tTex1df1)
-             355:     62(ptr) AccessChain 61 53
-             356:      6(int) Load 355
-             357:   18(float) Load 350(tempArg)
-                              ImageWrite 354 356 357
-             360:           2 FunctionCall 26(Fn2(i1;) 359(param)
-             361:      6(int) Load 359(param)
-                              Store 358(tempArg) 361
-             362:          81 Load 83(g_tTex1di1)
-             363:     62(ptr) AccessChain 61 53
-             364:      6(int) Load 363
-             365:      6(int) Load 358(tempArg)
-                              ImageWrite 362 364 365
-             368:           2 FunctionCall 30(Fn2(u1;) 367(param)
-             369:     12(int) Load 367(param)
-                              Store 366(tempArg) 369
-             370:          89 Load 91(g_tTex1du1)
-             371:     62(ptr) AccessChain 61 53
-             372:      6(int) Load 371
-             373:     12(int) Load 366(tempArg)
-                              ImageWrite 370 372 373
-             375:     62(ptr) AccessChain 61 53
-             376:      6(int) Load 375
-                              Store 374(coordTemp) 376
-             378:          68 Load 70(g_tTex1df1)
-             379:      6(int) Load 374(coordTemp)
-             380:   18(float) ImageRead 378 379
-                              Store 377(storeTemp) 380
-             381:   18(float) Load 377(storeTemp)
-             383:   18(float) FAdd 381 382
-                              Store 377(storeTemp) 383
-             384:          68 Load 70(g_tTex1df1)
-             385:      6(int) Load 374(coordTemp)
-             386:   18(float) Load 377(storeTemp)
-                              ImageWrite 384 385 386
-             388:     62(ptr) AccessChain 61 53
-             389:      6(int) Load 388
-                              Store 387(coordTemp) 389
-             391:          81 Load 83(g_tTex1di1)
-             392:      6(int) Load 387(coordTemp)
-             393:      6(int) ImageRead 391 392
-                              Store 390(storeTemp) 393
-             394:      6(int) Load 390(storeTemp)
-             395:      6(int) IAdd 394 101
-                              Store 390(storeTemp) 395
-             396:          81 Load 83(g_tTex1di1)
-             397:      6(int) Load 387(coordTemp)
-             398:      6(int) Load 390(storeTemp)
-                              ImageWrite 396 397 398
-             400:     62(ptr) AccessChain 61 53
-             401:      6(int) Load 400
-                              Store 399(coordTemp) 401
-             403:          89 Load 91(g_tTex1du1)
-             404:      6(int) Load 399(coordTemp)
-             405:     12(int) ImageRead 403 404
-                              Store 402(storeTemp) 405
-             406:     12(int) Load 402(storeTemp)
-             407:     12(int) IAdd 406 101
-                              Store 402(storeTemp) 407
-             408:          89 Load 91(g_tTex1du1)
-             409:      6(int) Load 399(coordTemp)
-             410:     12(int) Load 402(storeTemp)
+             305:      6(int) ShiftRightArithmetic 304 135
+                              Store 299(storeTemp) 305
+             306:          83 Load 85(g_tTex1di1)
+             307:      6(int) Load 296(coordTemp)
+             308:      6(int) Load 299(storeTemp)
+                              ImageWrite 306 307 308
+             310:   18(float) FunctionCall 37(SomeValue()
+                              Store 309(storeTemp) 310
+             311:         102 Load 104(g_tTex2df1)
+             312:    107(ptr) AccessChain 61 106
+             313:   56(ivec2) Load 312
+             314:   18(float) Load 309(storeTemp)
+                              ImageWrite 311 313 314
+             315:         102 Load 104(g_tTex2df1)
+             316:    107(ptr) AccessChain 61 106
+             317:   56(ivec2) Load 316
+             318:   18(float) Load 159(lf1)
+                              ImageWrite 315 317 318
+                              Store 319(storeTemp) 320
+             321:         113 Load 115(g_tTex2di1)
+             322:    107(ptr) AccessChain 61 106
+             323:   56(ivec2) Load 322
+             324:      6(int) Load 319(storeTemp)
+                              ImageWrite 321 323 324
+                              Store 325(storeTemp) 326
+             327:         122 Load 124(g_tTex2du1)
+             328:    107(ptr) AccessChain 61 106
+             329:   56(ivec2) Load 328
+             330:     12(int) Load 325(storeTemp)
+                              ImageWrite 327 329 330
+             332:   18(float) FunctionCall 37(SomeValue()
+                              Store 331(storeTemp) 332
+             333:         131 Load 133(g_tTex3df1)
+             334:    136(ptr) AccessChain 61 135
+             335:   57(ivec3) Load 334
+             336:   18(float) Load 331(storeTemp)
+                              ImageWrite 333 335 336
+             337:         131 Load 133(g_tTex3df1)
+             338:    136(ptr) AccessChain 61 135
+             339:   57(ivec3) Load 338
+             340:   18(float) Load 159(lf1)
+                              ImageWrite 337 339 340
+                              Store 341(storeTemp) 160
+             342:         142 Load 144(g_tTex3di1)
+             343:    136(ptr) AccessChain 61 135
+             344:   57(ivec3) Load 343
+             345:      6(int) Load 341(storeTemp)
+                              ImageWrite 342 344 345
+                              Store 346(storeTemp) 347
+             348:         151 Load 153(g_tTex3du1)
+             349:    136(ptr) AccessChain 61 135
+             350:   57(ivec3) Load 349
+             351:     12(int) Load 346(storeTemp)
+                              ImageWrite 348 350 351
+             352:          68 Load 70(g_tTex1df1)
+             353:     62(ptr) AccessChain 61 53
+             354:      6(int) Load 353
+             355:   39(fvec4) ImageRead 352 354
+             356:   18(float) CompositeExtract 355 0
+                              Store 357(param) 356
+             358:   18(float) FunctionCall 22(Fn1(f1;) 357(param)
+             359:          83 Load 85(g_tTex1di1)
+             360:     62(ptr) AccessChain 61 53
+             361:      6(int) Load 360
+             362:   58(ivec4) ImageRead 359 361
+             363:      6(int) CompositeExtract 362 0
+                              Store 364(param) 363
+             365:      6(int) FunctionCall 10(Fn1(i1;) 364(param)
+             366:          92 Load 94(g_tTex1du1)
+             367:     62(ptr) AccessChain 61 53
+             368:      6(int) Load 367
+             369:   98(ivec4) ImageRead 366 368
+             370:     12(int) CompositeExtract 369 0
+                              Store 371(param) 370
+             372:     12(int) FunctionCall 16(Fn1(u1;) 371(param)
+             375:           2 FunctionCall 34(Fn2(f1;) 374(param)
+             376:   18(float) Load 374(param)
+                              Store 373(tempArg) 376
+             377:          68 Load 70(g_tTex1df1)
+             378:     62(ptr) AccessChain 61 53
+             379:      6(int) Load 378
+             380:   18(float) Load 373(tempArg)
+                              ImageWrite 377 379 380
+             383:           2 FunctionCall 26(Fn2(i1;) 382(param)
+             384:      6(int) Load 382(param)
+                              Store 381(tempArg) 384
+             385:          83 Load 85(g_tTex1di1)
+             386:     62(ptr) AccessChain 61 53
+             387:      6(int) Load 386
+             388:      6(int) Load 381(tempArg)
+                              ImageWrite 385 387 388
+             391:           2 FunctionCall 30(Fn2(u1;) 390(param)
+             392:     12(int) Load 390(param)
+                              Store 389(tempArg) 392
+             393:          92 Load 94(g_tTex1du1)
+             394:     62(ptr) AccessChain 61 53
+             395:      6(int) Load 394
+             396:     12(int) Load 389(tempArg)
+                              ImageWrite 393 395 396
+             398:     62(ptr) AccessChain 61 53
+             399:      6(int) Load 398
+                              Store 397(coordTemp) 399
+             401:          68 Load 70(g_tTex1df1)
+             402:      6(int) Load 397(coordTemp)
+             403:   39(fvec4) ImageRead 401 402
+             404:   18(float) CompositeExtract 403 0
+                              Store 400(storeTemp) 404
+             405:   18(float) Load 400(storeTemp)
+             407:   18(float) FAdd 405 406
+                              Store 400(storeTemp) 407
+             408:          68 Load 70(g_tTex1df1)
+             409:      6(int) Load 397(coordTemp)
+             410:   18(float) Load 400(storeTemp)
                               ImageWrite 408 409 410
              412:     62(ptr) AccessChain 61 53
              413:      6(int) Load 412
                               Store 411(coordTemp) 413
-             415:          68 Load 70(g_tTex1df1)
+             415:          83 Load 85(g_tTex1di1)
              416:      6(int) Load 411(coordTemp)
-             417:   18(float) ImageRead 415 416
-                              Store 414(storeTemp) 417
-             418:   18(float) Load 414(storeTemp)
-             419:   18(float) FSub 418 382
-                              Store 414(storeTemp) 419
-             420:          68 Load 70(g_tTex1df1)
-             421:      6(int) Load 411(coordTemp)
-             422:   18(float) Load 414(storeTemp)
-                              ImageWrite 420 421 422
-             424:     62(ptr) AccessChain 61 53
-             425:      6(int) Load 424
-                              Store 423(coordTemp) 425
-             427:          81 Load 83(g_tTex1di1)
-             428:      6(int) Load 423(coordTemp)
-             429:      6(int) ImageRead 427 428
-                              Store 426(storeTemp) 429
-             430:      6(int) Load 426(storeTemp)
-             431:      6(int) ISub 430 101
-                              Store 426(storeTemp) 431
-             432:          81 Load 83(g_tTex1di1)
-             433:      6(int) Load 423(coordTemp)
-             434:      6(int) Load 426(storeTemp)
-                              ImageWrite 432 433 434
-             436:     62(ptr) AccessChain 61 53
-             437:      6(int) Load 436
-                              Store 435(coordTemp) 437
-             439:          89 Load 91(g_tTex1du1)
-             440:      6(int) Load 435(coordTemp)
-             441:     12(int) ImageRead 439 440
-                              Store 438(storeTemp) 441
-             442:     12(int) Load 438(storeTemp)
-             443:     12(int) ISub 442 101
-                              Store 438(storeTemp) 443
-             444:          89 Load 91(g_tTex1du1)
-             445:      6(int) Load 435(coordTemp)
-             446:     12(int) Load 438(storeTemp)
-                              ImageWrite 444 445 446
-             448:     62(ptr) AccessChain 61 53
-             449:      6(int) Load 448
-                              Store 447(coordTemp) 449
-             451:          68 Load 70(g_tTex1df1)
-             452:      6(int) Load 447(coordTemp)
-             453:   18(float) ImageRead 451 452
-                              Store 450(storeTempPre) 453
-             455:   18(float) Load 450(storeTempPre)
-                              Store 454(storeTempPost) 455
-             456:   18(float) Load 454(storeTempPost)
-             457:   18(float) FAdd 456 382
-                              Store 454(storeTempPost) 457
-             458:          68 Load 70(g_tTex1df1)
-             459:      6(int) Load 447(coordTemp)
-             460:   18(float) Load 454(storeTempPost)
-                              ImageWrite 458 459 460
-             462:     62(ptr) AccessChain 61 53
-             463:      6(int) Load 462
-                              Store 461(coordTemp) 463
-             465:          89 Load 91(g_tTex1du1)
-             466:      6(int) Load 461(coordTemp)
-             467:     12(int) ImageRead 465 466
-                              Store 464(storeTempPre) 467
-             469:     12(int) Load 464(storeTempPre)
-                              Store 468(storeTempPost) 469
-             470:     12(int) Load 468(storeTempPost)
-             471:     12(int) ISub 470 101
-                              Store 468(storeTempPost) 471
-             472:          89 Load 91(g_tTex1du1)
-             473:      6(int) Load 461(coordTemp)
-             474:     12(int) Load 468(storeTempPost)
-                              ImageWrite 472 473 474
-             476:     62(ptr) AccessChain 61 53
-             477:      6(int) Load 476
-                              Store 475(coordTemp) 477
-             479:          81 Load 83(g_tTex1di1)
-             480:      6(int) Load 475(coordTemp)
-             481:      6(int) ImageRead 479 480
-                              Store 478(storeTempPre) 481
-             483:      6(int) Load 478(storeTempPre)
-                              Store 482(storeTempPost) 483
-             484:      6(int) Load 482(storeTempPost)
-             485:      6(int) IAdd 484 101
-                              Store 482(storeTempPost) 485
-             486:          81 Load 83(g_tTex1di1)
-             487:      6(int) Load 475(coordTemp)
-             488:      6(int) Load 482(storeTempPost)
-                              ImageWrite 486 487 488
-             490:     62(ptr) AccessChain 61 53
-             491:      6(int) Load 490
-                              Store 489(coordTemp) 491
-             493:          68 Load 70(g_tTex1df1)
-             494:      6(int) Load 489(coordTemp)
-             495:   18(float) ImageRead 493 494
-                              Store 492(storeTempPre) 495
-             497:   18(float) Load 492(storeTempPre)
-                              Store 496(storeTempPost) 497
-             498:   18(float) Load 496(storeTempPost)
-             499:   18(float) FSub 498 382
-                              Store 496(storeTempPost) 499
-             500:          68 Load 70(g_tTex1df1)
-             501:      6(int) Load 489(coordTemp)
-             502:   18(float) Load 496(storeTempPost)
-                              ImageWrite 500 501 502
-             504:     62(ptr) AccessChain 61 53
-             505:      6(int) Load 504
-                              Store 503(coordTemp) 505
-             507:          81 Load 83(g_tTex1di1)
-             508:      6(int) Load 503(coordTemp)
-             509:      6(int) ImageRead 507 508
-                              Store 506(storeTempPre) 509
-             511:      6(int) Load 506(storeTempPre)
-                              Store 510(storeTempPost) 511
-             512:      6(int) Load 510(storeTempPost)
-             513:      6(int) IAdd 512 101
-                              Store 510(storeTempPost) 513
-             514:          81 Load 83(g_tTex1di1)
-             515:      6(int) Load 503(coordTemp)
-             516:      6(int) Load 510(storeTempPost)
-                              ImageWrite 514 515 516
-             518:     62(ptr) AccessChain 61 53
-             519:      6(int) Load 518
-                              Store 517(coordTemp) 519
-             521:          89 Load 91(g_tTex1du1)
-             522:      6(int) Load 517(coordTemp)
-             523:     12(int) ImageRead 521 522
-                              Store 520(storeTempPre) 523
-             525:     12(int) Load 520(storeTempPre)
-                              Store 524(storeTempPost) 525
-             526:     12(int) Load 524(storeTempPost)
-             527:     12(int) ISub 526 101
-                              Store 524(storeTempPost) 527
-             528:          89 Load 91(g_tTex1du1)
-             529:      6(int) Load 517(coordTemp)
-             530:     12(int) Load 524(storeTempPost)
-                              ImageWrite 528 529 530
-             532:          97 Load 99(g_tTex2df1)
-             535:   18(float) ImageRead 532 534
-                              Store 531(storeTemp) 535
-             536:          68 Load 70(g_tTex1df1)
-             537:   18(float) Load 531(storeTemp)
-                              ImageWrite 536 101 537
-             542:    541(ptr) AccessChain 539(psout) 53
-                              Store 542 540
-             543:40(PS_OUTPUT) Load 539(psout)
-                              ReturnValue 543
+             417:   58(ivec4) ImageRead 415 416
+             418:      6(int) CompositeExtract 417 0
+                              Store 414(storeTemp) 418
+             419:      6(int) Load 414(storeTemp)
+             420:      6(int) IAdd 419 106
+                              Store 414(storeTemp) 420
+             421:          83 Load 85(g_tTex1di1)
+             422:      6(int) Load 411(coordTemp)
+             423:      6(int) Load 414(storeTemp)
+                              ImageWrite 421 422 423
+             425:     62(ptr) AccessChain 61 53
+             426:      6(int) Load 425
+                              Store 424(coordTemp) 426
+             428:          92 Load 94(g_tTex1du1)
+             429:      6(int) Load 424(coordTemp)
+             430:   98(ivec4) ImageRead 428 429
+             431:     12(int) CompositeExtract 430 0
+                              Store 427(storeTemp) 431
+             432:     12(int) Load 427(storeTemp)
+             433:     12(int) IAdd 432 106
+                              Store 427(storeTemp) 433
+             434:          92 Load 94(g_tTex1du1)
+             435:      6(int) Load 424(coordTemp)
+             436:     12(int) Load 427(storeTemp)
+                              ImageWrite 434 435 436
+             438:     62(ptr) AccessChain 61 53
+             439:      6(int) Load 438
+                              Store 437(coordTemp) 439
+             441:          68 Load 70(g_tTex1df1)
+             442:      6(int) Load 437(coordTemp)
+             443:   39(fvec4) ImageRead 441 442
+             444:   18(float) CompositeExtract 443 0
+                              Store 440(storeTemp) 444
+             445:   18(float) Load 440(storeTemp)
+             446:   18(float) FSub 445 406
+                              Store 440(storeTemp) 446
+             447:          68 Load 70(g_tTex1df1)
+             448:      6(int) Load 437(coordTemp)
+             449:   18(float) Load 440(storeTemp)
+                              ImageWrite 447 448 449
+             451:     62(ptr) AccessChain 61 53
+             452:      6(int) Load 451
+                              Store 450(coordTemp) 452
+             454:          83 Load 85(g_tTex1di1)
+             455:      6(int) Load 450(coordTemp)
+             456:   58(ivec4) ImageRead 454 455
+             457:      6(int) CompositeExtract 456 0
+                              Store 453(storeTemp) 457
+             458:      6(int) Load 453(storeTemp)
+             459:      6(int) ISub 458 106
+                              Store 453(storeTemp) 459
+             460:          83 Load 85(g_tTex1di1)
+             461:      6(int) Load 450(coordTemp)
+             462:      6(int) Load 453(storeTemp)
+                              ImageWrite 460 461 462
+             464:     62(ptr) AccessChain 61 53
+             465:      6(int) Load 464
+                              Store 463(coordTemp) 465
+             467:          92 Load 94(g_tTex1du1)
+             468:      6(int) Load 463(coordTemp)
+             469:   98(ivec4) ImageRead 467 468
+             470:     12(int) CompositeExtract 469 0
+                              Store 466(storeTemp) 470
+             471:     12(int) Load 466(storeTemp)
+             472:     12(int) ISub 471 106
+                              Store 466(storeTemp) 472
+             473:          92 Load 94(g_tTex1du1)
+             474:      6(int) Load 463(coordTemp)
+             475:     12(int) Load 466(storeTemp)
+                              ImageWrite 473 474 475
+             477:     62(ptr) AccessChain 61 53
+             478:      6(int) Load 477
+                              Store 476(coordTemp) 478
+             480:          68 Load 70(g_tTex1df1)
+             481:      6(int) Load 476(coordTemp)
+             482:   39(fvec4) ImageRead 480 481
+             483:   18(float) CompositeExtract 482 0
+                              Store 479(storeTempPre) 483
+             485:   18(float) Load 479(storeTempPre)
+                              Store 484(storeTempPost) 485
+             486:   18(float) Load 484(storeTempPost)
+             487:   18(float) FAdd 486 406
+                              Store 484(storeTempPost) 487
+             488:          68 Load 70(g_tTex1df1)
+             489:      6(int) Load 476(coordTemp)
+             490:   18(float) Load 484(storeTempPost)
+                              ImageWrite 488 489 490
+             492:     62(ptr) AccessChain 61 53
+             493:      6(int) Load 492
+                              Store 491(coordTemp) 493
+             495:          92 Load 94(g_tTex1du1)
+             496:      6(int) Load 491(coordTemp)
+             497:   98(ivec4) ImageRead 495 496
+             498:     12(int) CompositeExtract 497 0
+                              Store 494(storeTempPre) 498
+             500:     12(int) Load 494(storeTempPre)
+                              Store 499(storeTempPost) 500
+             501:     12(int) Load 499(storeTempPost)
+             502:     12(int) ISub 501 106
+                              Store 499(storeTempPost) 502
+             503:          92 Load 94(g_tTex1du1)
+             504:      6(int) Load 491(coordTemp)
+             505:     12(int) Load 499(storeTempPost)
+                              ImageWrite 503 504 505
+             507:     62(ptr) AccessChain 61 53
+             508:      6(int) Load 507
+                              Store 506(coordTemp) 508
+             510:          83 Load 85(g_tTex1di1)
+             511:      6(int) Load 506(coordTemp)
+             512:   58(ivec4) ImageRead 510 511
+             513:      6(int) CompositeExtract 512 0
+                              Store 509(storeTempPre) 513
+             515:      6(int) Load 509(storeTempPre)
+                              Store 514(storeTempPost) 515
+             516:      6(int) Load 514(storeTempPost)
+             517:      6(int) IAdd 516 106
+                              Store 514(storeTempPost) 517
+             518:          83 Load 85(g_tTex1di1)
+             519:      6(int) Load 506(coordTemp)
+             520:      6(int) Load 514(storeTempPost)
+                              ImageWrite 518 519 520
+             522:     62(ptr) AccessChain 61 53
+             523:      6(int) Load 522
+                              Store 521(coordTemp) 523
+             525:          68 Load 70(g_tTex1df1)
+             526:      6(int) Load 521(coordTemp)
+             527:   39(fvec4) ImageRead 525 526
+             528:   18(float) CompositeExtract 527 0
+                              Store 524(storeTempPre) 528
+             530:   18(float) Load 524(storeTempPre)
+                              Store 529(storeTempPost) 530
+             531:   18(float) Load 529(storeTempPost)
+             532:   18(float) FSub 531 406
+                              Store 529(storeTempPost) 532
+             533:          68 Load 70(g_tTex1df1)
+             534:      6(int) Load 521(coordTemp)
+             535:   18(float) Load 529(storeTempPost)
+                              ImageWrite 533 534 535
+             537:     62(ptr) AccessChain 61 53
+             538:      6(int) Load 537
+                              Store 536(coordTemp) 538
+             540:          83 Load 85(g_tTex1di1)
+             541:      6(int) Load 536(coordTemp)
+             542:   58(ivec4) ImageRead 540 541
+             543:      6(int) CompositeExtract 542 0
+                              Store 539(storeTempPre) 543
+             545:      6(int) Load 539(storeTempPre)
+                              Store 544(storeTempPost) 545
+             546:      6(int) Load 544(storeTempPost)
+             547:      6(int) IAdd 546 106
+                              Store 544(storeTempPost) 547
+             548:          83 Load 85(g_tTex1di1)
+             549:      6(int) Load 536(coordTemp)
+             550:      6(int) Load 544(storeTempPost)
+                              ImageWrite 548 549 550
+             552:     62(ptr) AccessChain 61 53
+             553:      6(int) Load 552
+                              Store 551(coordTemp) 553
+             555:          92 Load 94(g_tTex1du1)
+             556:      6(int) Load 551(coordTemp)
+             557:   98(ivec4) ImageRead 555 556
+             558:     12(int) CompositeExtract 557 0
+                              Store 554(storeTempPre) 558
+             560:     12(int) Load 554(storeTempPre)
+                              Store 559(storeTempPost) 560
+             561:     12(int) Load 559(storeTempPost)
+             562:     12(int) ISub 561 106
+                              Store 559(storeTempPost) 562
+             563:          92 Load 94(g_tTex1du1)
+             564:      6(int) Load 551(coordTemp)
+             565:     12(int) Load 559(storeTempPost)
+                              ImageWrite 563 564 565
+             567:         102 Load 104(g_tTex2df1)
+             570:   39(fvec4) ImageRead 567 569
+             571:   18(float) CompositeExtract 570 0
+                              Store 566(storeTemp) 571
+             572:          68 Load 70(g_tTex1df1)
+             573:   18(float) Load 566(storeTemp)
+                              ImageWrite 572 106 573
+             578:    577(ptr) AccessChain 575(psout) 53
+                              Store 578 576
+             579:40(PS_OUTPUT) Load 575(psout)
+                              ReturnValue 579
                               FunctionEnd
diff --git a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
index c8d10e6..1f77a77 100644
--- a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
+++ b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
@@ -1707,17 +1707,16 @@
 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4,  uniform 2-component vector of float uf2,  uniform 2-component vector of int ui2,  uniform 2-component vector of uint uu2})
 0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
 
-Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 605
+// Id's are bound by 711
 
                               Capability Shader
                               Capability Image1D
                               Capability StorageImageExtendedFormats
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 581
+                              EntryPoint Fragment 4  "main" 687
                               ExecutionMode 4 OriginUpperLeft
                               Source HLSL 500
                               Name 4  "main"
@@ -1751,101 +1750,101 @@
                               MemberName 64($Global) 10  "uu2"
                               Name 66  ""
                               Name 76  "g_tTex1df2"
-                              Name 82  "r00"
-                              Name 87  "r01"
-                              Name 90  "g_tTex1di2"
-                              Name 95  "r02"
-                              Name 98  "g_tTex1du2"
-                              Name 103  "r10"
-                              Name 106  "g_tTex2df2"
-                              Name 111  "r11"
-                              Name 114  "g_tTex2di2"
-                              Name 119  "r12"
-                              Name 122  "g_tTex2du2"
-                              Name 127  "r20"
-                              Name 130  "g_tTex3df2"
-                              Name 137  "r21"
-                              Name 140  "g_tTex3di2"
-                              Name 145  "r22"
-                              Name 148  "g_tTex3du2"
-                              Name 153  "lf2"
-                              Name 158  "storeTemp"
-                              Name 168  "storeTemp"
-                              Name 174  "storeTemp"
-                              Name 182  "val1"
-                              Name 184  "coordTemp"
-                              Name 187  "storeTemp"
-                              Name 198  "coordTemp"
-                              Name 201  "storeTemp"
-                              Name 212  "coordTemp"
-                              Name 215  "storeTemp"
-                              Name 226  "coordTemp"
-                              Name 229  "storeTemp"
-                              Name 239  "coordTemp"
-                              Name 242  "storeTemp"
-                              Name 252  "coordTemp"
-                              Name 255  "storeTemp"
+                              Name 85  "r00"
+                              Name 93  "r01"
+                              Name 96  "g_tTex1di2"
+                              Name 104  "r02"
+                              Name 107  "g_tTex1du2"
+                              Name 116  "r10"
+                              Name 119  "g_tTex2df2"
+                              Name 127  "r11"
+                              Name 130  "g_tTex2di2"
+                              Name 138  "r12"
+                              Name 141  "g_tTex2du2"
+                              Name 149  "r20"
+                              Name 152  "g_tTex3df2"
+                              Name 162  "r21"
+                              Name 165  "g_tTex3di2"
+                              Name 173  "r22"
+                              Name 176  "g_tTex3du2"
+                              Name 184  "lf2"
+                              Name 189  "storeTemp"
+                              Name 199  "storeTemp"
+                              Name 205  "storeTemp"
+                              Name 213  "val1"
+                              Name 215  "coordTemp"
+                              Name 218  "storeTemp"
+                              Name 232  "coordTemp"
+                              Name 235  "storeTemp"
+                              Name 249  "coordTemp"
+                              Name 252  "storeTemp"
                               Name 266  "coordTemp"
                               Name 269  "storeTemp"
-                              Name 280  "coordTemp"
-                              Name 283  "storeTemp"
-                              Name 293  "coordTemp"
-                              Name 296  "storeTemp"
-                              Name 306  "storeTemp"
-                              Name 316  "storeTemp"
-                              Name 323  "storeTemp"
-                              Name 330  "storeTemp"
-                              Name 340  "storeTemp"
-                              Name 347  "storeTemp"
-                              Name 358  "param"
-                              Name 364  "param"
-                              Name 370  "param"
-                              Name 372  "tempArg"
-                              Name 373  "param"
-                              Name 380  "tempArg"
-                              Name 381  "param"
-                              Name 388  "tempArg"
-                              Name 389  "param"
-                              Name 396  "coordTemp"
-                              Name 399  "storeTemp"
-                              Name 410  "coordTemp"
-                              Name 413  "storeTemp"
-                              Name 423  "coordTemp"
-                              Name 426  "storeTemp"
-                              Name 436  "coordTemp"
-                              Name 439  "storeTemp"
-                              Name 449  "coordTemp"
-                              Name 452  "storeTemp"
-                              Name 462  "coordTemp"
-                              Name 465  "storeTemp"
-                              Name 475  "coordTemp"
-                              Name 478  "storeTempPre"
-                              Name 482  "storeTempPost"
-                              Name 490  "coordTemp"
-                              Name 493  "storeTempPre"
-                              Name 497  "storeTempPost"
-                              Name 505  "coordTemp"
-                              Name 508  "storeTempPre"
-                              Name 512  "storeTempPost"
-                              Name 520  "coordTemp"
-                              Name 523  "storeTempPre"
-                              Name 527  "storeTempPost"
-                              Name 535  "coordTemp"
-                              Name 538  "storeTempPre"
-                              Name 542  "storeTempPost"
-                              Name 550  "coordTemp"
-                              Name 553  "storeTempPre"
-                              Name 557  "storeTempPost"
-                              Name 565  "storeTemp"
-                              Name 573  "psout"
-                              Name 581  "@entryPointOutput.Color"
-                              Name 586  "g_sSamp"
-                              Name 589  "g_tTex1df2a"
-                              Name 592  "g_tTex1di2a"
-                              Name 595  "g_tTex1du2a"
-                              Name 598  "g_tTex2df2a"
-                              Name 601  "g_tTex2di2a"
-                              Name 604  "g_tTex2du2a"
+                              Name 282  "coordTemp"
+                              Name 285  "storeTemp"
+                              Name 298  "coordTemp"
+                              Name 301  "storeTemp"
+                              Name 315  "coordTemp"
+                              Name 318  "storeTemp"
+                              Name 332  "coordTemp"
+                              Name 335  "storeTemp"
+                              Name 348  "coordTemp"
+                              Name 351  "storeTemp"
+                              Name 364  "storeTemp"
+                              Name 374  "storeTemp"
+                              Name 381  "storeTemp"
+                              Name 388  "storeTemp"
+                              Name 398  "storeTemp"
+                              Name 405  "storeTemp"
+                              Name 419  "param"
+                              Name 428  "param"
+                              Name 437  "param"
+                              Name 439  "tempArg"
+                              Name 440  "param"
+                              Name 447  "tempArg"
+                              Name 448  "param"
+                              Name 455  "tempArg"
+                              Name 456  "param"
+                              Name 463  "coordTemp"
+                              Name 466  "storeTemp"
+                              Name 480  "coordTemp"
+                              Name 483  "storeTemp"
+                              Name 496  "coordTemp"
+                              Name 499  "storeTemp"
+                              Name 512  "coordTemp"
+                              Name 515  "storeTemp"
+                              Name 528  "coordTemp"
+                              Name 531  "storeTemp"
+                              Name 544  "coordTemp"
+                              Name 547  "storeTemp"
+                              Name 560  "coordTemp"
+                              Name 563  "storeTempPre"
+                              Name 570  "storeTempPost"
+                              Name 578  "coordTemp"
+                              Name 581  "storeTempPre"
+                              Name 588  "storeTempPost"
+                              Name 596  "coordTemp"
+                              Name 599  "storeTempPre"
+                              Name 606  "storeTempPost"
+                              Name 614  "coordTemp"
+                              Name 617  "storeTempPre"
+                              Name 624  "storeTempPost"
+                              Name 632  "coordTemp"
+                              Name 635  "storeTempPre"
+                              Name 642  "storeTempPost"
+                              Name 650  "coordTemp"
+                              Name 653  "storeTempPre"
+                              Name 660  "storeTempPost"
+                              Name 668  "storeTemp"
+                              Name 679  "psout"
+                              Name 687  "@entryPointOutput.Color"
+                              Name 692  "g_sSamp"
+                              Name 695  "g_tTex1df2a"
+                              Name 698  "g_tTex1di2a"
+                              Name 701  "g_tTex1du2a"
+                              Name 704  "g_tTex2df2a"
+                              Name 707  "g_tTex2di2a"
+                              Name 710  "g_tTex2du2a"
                               MemberDecorate 64($Global) 0 Offset 0
                               MemberDecorate 64($Global) 1 Offset 8
                               MemberDecorate 64($Global) 2 Offset 16
@@ -1862,37 +1861,37 @@
                               Decorate 66 Binding 10
                               Decorate 76(g_tTex1df2) DescriptorSet 0
                               Decorate 76(g_tTex1df2) Binding 1
-                              Decorate 90(g_tTex1di2) DescriptorSet 0
-                              Decorate 90(g_tTex1di2) Binding 2
-                              Decorate 98(g_tTex1du2) DescriptorSet 0
-                              Decorate 98(g_tTex1du2) Binding 3
-                              Decorate 106(g_tTex2df2) DescriptorSet 0
-                              Decorate 106(g_tTex2df2) Binding 4
-                              Decorate 114(g_tTex2di2) DescriptorSet 0
-                              Decorate 114(g_tTex2di2) Binding 5
-                              Decorate 122(g_tTex2du2) DescriptorSet 0
-                              Decorate 122(g_tTex2du2) Binding 6
-                              Decorate 130(g_tTex3df2) DescriptorSet 0
-                              Decorate 130(g_tTex3df2) Binding 7
-                              Decorate 140(g_tTex3di2) DescriptorSet 0
-                              Decorate 140(g_tTex3di2) Binding 8
-                              Decorate 148(g_tTex3du2) DescriptorSet 0
-                              Decorate 148(g_tTex3du2) Binding 9
-                              Decorate 581(@entryPointOutput.Color) Location 0
-                              Decorate 586(g_sSamp) DescriptorSet 0
-                              Decorate 586(g_sSamp) Binding 0
-                              Decorate 589(g_tTex1df2a) DescriptorSet 0
-                              Decorate 589(g_tTex1df2a) Binding 0
-                              Decorate 592(g_tTex1di2a) DescriptorSet 0
-                              Decorate 592(g_tTex1di2a) Binding 0
-                              Decorate 595(g_tTex1du2a) DescriptorSet 0
-                              Decorate 595(g_tTex1du2a) Binding 0
-                              Decorate 598(g_tTex2df2a) DescriptorSet 0
-                              Decorate 598(g_tTex2df2a) Binding 0
-                              Decorate 601(g_tTex2di2a) DescriptorSet 0
-                              Decorate 601(g_tTex2di2a) Binding 0
-                              Decorate 604(g_tTex2du2a) DescriptorSet 0
-                              Decorate 604(g_tTex2du2a) Binding 0
+                              Decorate 96(g_tTex1di2) DescriptorSet 0
+                              Decorate 96(g_tTex1di2) Binding 2
+                              Decorate 107(g_tTex1du2) DescriptorSet 0
+                              Decorate 107(g_tTex1du2) Binding 3
+                              Decorate 119(g_tTex2df2) DescriptorSet 0
+                              Decorate 119(g_tTex2df2) Binding 4
+                              Decorate 130(g_tTex2di2) DescriptorSet 0
+                              Decorate 130(g_tTex2di2) Binding 5
+                              Decorate 141(g_tTex2du2) DescriptorSet 0
+                              Decorate 141(g_tTex2du2) Binding 6
+                              Decorate 152(g_tTex3df2) DescriptorSet 0
+                              Decorate 152(g_tTex3df2) Binding 7
+                              Decorate 165(g_tTex3di2) DescriptorSet 0
+                              Decorate 165(g_tTex3di2) Binding 8
+                              Decorate 176(g_tTex3du2) DescriptorSet 0
+                              Decorate 176(g_tTex3du2) Binding 9
+                              Decorate 687(@entryPointOutput.Color) Location 0
+                              Decorate 692(g_sSamp) DescriptorSet 0
+                              Decorate 692(g_sSamp) Binding 0
+                              Decorate 695(g_tTex1df2a) DescriptorSet 0
+                              Decorate 695(g_tTex1df2a) Binding 0
+                              Decorate 698(g_tTex1di2a) DescriptorSet 0
+                              Decorate 698(g_tTex1di2a) Binding 0
+                              Decorate 701(g_tTex1du2a) DescriptorSet 0
+                              Decorate 701(g_tTex1du2a) Binding 0
+                              Decorate 704(g_tTex2df2a) DescriptorSet 0
+                              Decorate 704(g_tTex2df2a) Binding 0
+                              Decorate 707(g_tTex2di2a) DescriptorSet 0
+                              Decorate 707(g_tTex2di2a) Binding 0
+                              Decorate 710(g_tTex2du2a) DescriptorSet 0
+                              Decorate 710(g_tTex2du2a) Binding 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
@@ -1931,86 +1930,87 @@
               75:             TypePointer UniformConstant 74
   76(g_tTex1df2):     75(ptr) Variable UniformConstant
               78:             TypePointer Uniform 6(int)
-              88:             TypeImage 6(int) 1D nonsampled format:Rg32i
-              89:             TypePointer UniformConstant 88
-  90(g_tTex1di2):     89(ptr) Variable UniformConstant
-              96:             TypeImage 13(int) 1D nonsampled format:Rg32ui
-              97:             TypePointer UniformConstant 96
-  98(g_tTex1du2):     97(ptr) Variable UniformConstant
-             104:             TypeImage 20(float) 2D nonsampled format:Rg32f
-             105:             TypePointer UniformConstant 104
- 106(g_tTex2df2):    105(ptr) Variable UniformConstant
-             112:             TypeImage 6(int) 2D nonsampled format:Rg32i
-             113:             TypePointer UniformConstant 112
- 114(g_tTex2di2):    113(ptr) Variable UniformConstant
-             120:             TypeImage 13(int) 2D nonsampled format:Rg32ui
-             121:             TypePointer UniformConstant 120
- 122(g_tTex2du2):    121(ptr) Variable UniformConstant
-             128:             TypeImage 20(float) 3D nonsampled format:Rg32f
+              94:             TypeImage 6(int) 1D nonsampled format:Rg32i
+              95:             TypePointer UniformConstant 94
+  96(g_tTex1di2):     95(ptr) Variable UniformConstant
+             105:             TypeImage 13(int) 1D nonsampled format:Rg32ui
+             106:             TypePointer UniformConstant 105
+ 107(g_tTex1du2):    106(ptr) Variable UniformConstant
+             111:             TypeVector 13(int) 4
+             117:             TypeImage 20(float) 2D nonsampled format:Rg32f
+             118:             TypePointer UniformConstant 117
+ 119(g_tTex2df2):    118(ptr) Variable UniformConstant
+             128:             TypeImage 6(int) 2D nonsampled format:Rg32i
              129:             TypePointer UniformConstant 128
- 130(g_tTex3df2):    129(ptr) Variable UniformConstant
-             132:      6(int) Constant 2
-             133:             TypePointer Uniform 62(ivec3)
-             138:             TypeImage 6(int) 3D nonsampled format:Rg32i
-             139:             TypePointer UniformConstant 138
- 140(g_tTex3di2):    139(ptr) Variable UniformConstant
-             146:             TypeImage 13(int) 3D nonsampled format:Rg32ui
-             147:             TypePointer UniformConstant 146
- 148(g_tTex3du2):    147(ptr) Variable UniformConstant
-             154:      6(int) Constant 8
-             155:             TypePointer Uniform 21(fvec2)
-             169:    7(ivec2) ConstantComposite 132 132
-             175:     13(int) Constant 3
-             176:     13(int) Constant 2
-             177:   14(ivec2) ConstantComposite 175 176
-             183:             TypePointer Function 6(int)
-             191:   20(float) Constant 1073741824
-             205:   20(float) Constant 1077936128
-             219:   20(float) Constant 1082130432
-             259:      6(int) Constant 65535
-             273:      6(int) Constant 61680
-             317:      6(int) Constant 5
-             318:    7(ivec2) ConstantComposite 317 132
-             324:     13(int) Constant 6
-             325:   14(ivec2) ConstantComposite 324 176
-             341:      6(int) Constant 6
-             342:    7(ivec2) ConstantComposite 154 341
-             348:     13(int) Constant 9
-             349:   14(ivec2) ConstantComposite 348 176
-             404:   20(float) Constant 1065353216
-             567:      6(int) Constant 3
-             568:    7(ivec2) ConstantComposite 132 567
-             572:             TypePointer Function 43(PS_OUTPUT)
-             574:   42(fvec4) ConstantComposite 404 404 404 404
-             575:             TypePointer Function 42(fvec4)
-             580:             TypePointer Output 42(fvec4)
-581(@entryPointOutput.Color):    580(ptr) Variable Output
-             584:             TypeSampler
-             585:             TypePointer UniformConstant 584
-    586(g_sSamp):    585(ptr) Variable UniformConstant
-             587:             TypeImage 20(float) 1D array nonsampled format:Rg32f
-             588:             TypePointer UniformConstant 587
-589(g_tTex1df2a):    588(ptr) Variable UniformConstant
-             590:             TypeImage 6(int) 1D array nonsampled format:Rg32i
-             591:             TypePointer UniformConstant 590
-592(g_tTex1di2a):    591(ptr) Variable UniformConstant
-             593:             TypeImage 13(int) 1D array nonsampled format:Rg32ui
-             594:             TypePointer UniformConstant 593
-595(g_tTex1du2a):    594(ptr) Variable UniformConstant
-             596:             TypeImage 20(float) 2D array nonsampled format:Rg32f
-             597:             TypePointer UniformConstant 596
-598(g_tTex2df2a):    597(ptr) Variable UniformConstant
-             599:             TypeImage 6(int) 2D array nonsampled format:Rg32i
-             600:             TypePointer UniformConstant 599
-601(g_tTex2di2a):    600(ptr) Variable UniformConstant
-             602:             TypeImage 13(int) 2D array nonsampled format:Rg32ui
-             603:             TypePointer UniformConstant 602
-604(g_tTex2du2a):    603(ptr) Variable UniformConstant
+ 130(g_tTex2di2):    129(ptr) Variable UniformConstant
+             139:             TypeImage 13(int) 2D nonsampled format:Rg32ui
+             140:             TypePointer UniformConstant 139
+ 141(g_tTex2du2):    140(ptr) Variable UniformConstant
+             150:             TypeImage 20(float) 3D nonsampled format:Rg32f
+             151:             TypePointer UniformConstant 150
+ 152(g_tTex3df2):    151(ptr) Variable UniformConstant
+             154:      6(int) Constant 2
+             155:             TypePointer Uniform 62(ivec3)
+             163:             TypeImage 6(int) 3D nonsampled format:Rg32i
+             164:             TypePointer UniformConstant 163
+ 165(g_tTex3di2):    164(ptr) Variable UniformConstant
+             174:             TypeImage 13(int) 3D nonsampled format:Rg32ui
+             175:             TypePointer UniformConstant 174
+ 176(g_tTex3du2):    175(ptr) Variable UniformConstant
+             185:      6(int) Constant 8
+             186:             TypePointer Uniform 21(fvec2)
+             200:    7(ivec2) ConstantComposite 154 154
+             206:     13(int) Constant 3
+             207:     13(int) Constant 2
+             208:   14(ivec2) ConstantComposite 206 207
+             214:             TypePointer Function 6(int)
+             225:   20(float) Constant 1073741824
+             242:   20(float) Constant 1077936128
+             259:   20(float) Constant 1082130432
+             308:      6(int) Constant 65535
+             325:      6(int) Constant 61680
+             375:      6(int) Constant 5
+             376:    7(ivec2) ConstantComposite 375 154
+             382:     13(int) Constant 6
+             383:   14(ivec2) ConstantComposite 382 207
+             399:      6(int) Constant 6
+             400:    7(ivec2) ConstantComposite 185 399
+             406:     13(int) Constant 9
+             407:   14(ivec2) ConstantComposite 406 207
+             474:   20(float) Constant 1065353216
+             670:      6(int) Constant 3
+             671:    7(ivec2) ConstantComposite 154 670
+             678:             TypePointer Function 43(PS_OUTPUT)
+             680:   42(fvec4) ConstantComposite 474 474 474 474
+             681:             TypePointer Function 42(fvec4)
+             686:             TypePointer Output 42(fvec4)
+687(@entryPointOutput.Color):    686(ptr) Variable Output
+             690:             TypeSampler
+             691:             TypePointer UniformConstant 690
+    692(g_sSamp):    691(ptr) Variable UniformConstant
+             693:             TypeImage 20(float) 1D array nonsampled format:Rg32f
+             694:             TypePointer UniformConstant 693
+695(g_tTex1df2a):    694(ptr) Variable UniformConstant
+             696:             TypeImage 6(int) 1D array nonsampled format:Rg32i
+             697:             TypePointer UniformConstant 696
+698(g_tTex1di2a):    697(ptr) Variable UniformConstant
+             699:             TypeImage 13(int) 1D array nonsampled format:Rg32ui
+             700:             TypePointer UniformConstant 699
+701(g_tTex1du2a):    700(ptr) Variable UniformConstant
+             702:             TypeImage 20(float) 2D array nonsampled format:Rg32f
+             703:             TypePointer UniformConstant 702
+704(g_tTex2df2a):    703(ptr) Variable UniformConstant
+             705:             TypeImage 6(int) 2D array nonsampled format:Rg32i
+             706:             TypePointer UniformConstant 705
+707(g_tTex2di2a):    706(ptr) Variable UniformConstant
+             708:             TypeImage 13(int) 2D array nonsampled format:Rg32ui
+             709:             TypePointer UniformConstant 708
+710(g_tTex2du2a):    709(ptr) Variable UniformConstant
          4(main):           2 Function None 3
                5:             Label
-             582:43(PS_OUTPUT) FunctionCall 45(@main()
-             583:   42(fvec4) CompositeExtract 582 0
-                              Store 581(@entryPointOutput.Color) 583
+             688:43(PS_OUTPUT) FunctionCall 45(@main()
+             689:   42(fvec4) CompositeExtract 688 0
+                              Store 687(@entryPointOutput.Color) 689
                               Return
                               FunctionEnd
     11(Fn1(vi2;):    7(ivec2) Function None 9
@@ -2058,587 +2058,692 @@
                               FunctionEnd
       45(@main():43(PS_OUTPUT) Function None 44
               46:             Label
-         82(r00):     22(ptr) Variable Function
-         87(r01):      8(ptr) Variable Function
-         95(r02):     15(ptr) Variable Function
-        103(r10):     22(ptr) Variable Function
-        111(r11):      8(ptr) Variable Function
-        119(r12):     15(ptr) Variable Function
-        127(r20):     22(ptr) Variable Function
-        137(r21):      8(ptr) Variable Function
-        145(r22):     15(ptr) Variable Function
-        153(lf2):     22(ptr) Variable Function
-  158(storeTemp):     22(ptr) Variable Function
-  168(storeTemp):      8(ptr) Variable Function
-  174(storeTemp):     15(ptr) Variable Function
-       182(val1):     22(ptr) Variable Function
-  184(coordTemp):    183(ptr) Variable Function
-  187(storeTemp):     22(ptr) Variable Function
-  198(coordTemp):    183(ptr) Variable Function
-  201(storeTemp):     22(ptr) Variable Function
-  212(coordTemp):    183(ptr) Variable Function
-  215(storeTemp):     22(ptr) Variable Function
-  226(coordTemp):    183(ptr) Variable Function
-  229(storeTemp):      8(ptr) Variable Function
-  239(coordTemp):    183(ptr) Variable Function
-  242(storeTemp):      8(ptr) Variable Function
-  252(coordTemp):    183(ptr) Variable Function
-  255(storeTemp):      8(ptr) Variable Function
-  266(coordTemp):    183(ptr) Variable Function
+         85(r00):     22(ptr) Variable Function
+         93(r01):      8(ptr) Variable Function
+        104(r02):     15(ptr) Variable Function
+        116(r10):     22(ptr) Variable Function
+        127(r11):      8(ptr) Variable Function
+        138(r12):     15(ptr) Variable Function
+        149(r20):     22(ptr) Variable Function
+        162(r21):      8(ptr) Variable Function
+        173(r22):     15(ptr) Variable Function
+        184(lf2):     22(ptr) Variable Function
+  189(storeTemp):     22(ptr) Variable Function
+  199(storeTemp):      8(ptr) Variable Function
+  205(storeTemp):     15(ptr) Variable Function
+       213(val1):     22(ptr) Variable Function
+  215(coordTemp):    214(ptr) Variable Function
+  218(storeTemp):     22(ptr) Variable Function
+  232(coordTemp):    214(ptr) Variable Function
+  235(storeTemp):     22(ptr) Variable Function
+  249(coordTemp):    214(ptr) Variable Function
+  252(storeTemp):     22(ptr) Variable Function
+  266(coordTemp):    214(ptr) Variable Function
   269(storeTemp):      8(ptr) Variable Function
-  280(coordTemp):    183(ptr) Variable Function
-  283(storeTemp):      8(ptr) Variable Function
-  293(coordTemp):    183(ptr) Variable Function
-  296(storeTemp):      8(ptr) Variable Function
-  306(storeTemp):     22(ptr) Variable Function
-  316(storeTemp):      8(ptr) Variable Function
-  323(storeTemp):     15(ptr) Variable Function
-  330(storeTemp):     22(ptr) Variable Function
-  340(storeTemp):      8(ptr) Variable Function
-  347(storeTemp):     15(ptr) Variable Function
-      358(param):     22(ptr) Variable Function
-      364(param):      8(ptr) Variable Function
-      370(param):     15(ptr) Variable Function
-    372(tempArg):     22(ptr) Variable Function
-      373(param):     22(ptr) Variable Function
-    380(tempArg):      8(ptr) Variable Function
-      381(param):      8(ptr) Variable Function
-    388(tempArg):     15(ptr) Variable Function
-      389(param):     15(ptr) Variable Function
-  396(coordTemp):    183(ptr) Variable Function
-  399(storeTemp):     22(ptr) Variable Function
-  410(coordTemp):    183(ptr) Variable Function
-  413(storeTemp):      8(ptr) Variable Function
-  423(coordTemp):    183(ptr) Variable Function
-  426(storeTemp):     15(ptr) Variable Function
-  436(coordTemp):    183(ptr) Variable Function
-  439(storeTemp):     22(ptr) Variable Function
-  449(coordTemp):    183(ptr) Variable Function
-  452(storeTemp):      8(ptr) Variable Function
-  462(coordTemp):    183(ptr) Variable Function
-  465(storeTemp):     15(ptr) Variable Function
-  475(coordTemp):    183(ptr) Variable Function
-478(storeTempPre):     22(ptr) Variable Function
-482(storeTempPost):     22(ptr) Variable Function
-  490(coordTemp):    183(ptr) Variable Function
-493(storeTempPre):     15(ptr) Variable Function
-497(storeTempPost):     15(ptr) Variable Function
-  505(coordTemp):    183(ptr) Variable Function
-508(storeTempPre):      8(ptr) Variable Function
-512(storeTempPost):      8(ptr) Variable Function
-  520(coordTemp):    183(ptr) Variable Function
-523(storeTempPre):     22(ptr) Variable Function
-527(storeTempPost):     22(ptr) Variable Function
-  535(coordTemp):    183(ptr) Variable Function
-538(storeTempPre):      8(ptr) Variable Function
-542(storeTempPost):      8(ptr) Variable Function
-  550(coordTemp):    183(ptr) Variable Function
-553(storeTempPre):     15(ptr) Variable Function
-557(storeTempPost):     15(ptr) Variable Function
-  565(storeTemp):     22(ptr) Variable Function
-      573(psout):    572(ptr) Variable Function
+  282(coordTemp):    214(ptr) Variable Function
+  285(storeTemp):      8(ptr) Variable Function
+  298(coordTemp):    214(ptr) Variable Function
+  301(storeTemp):      8(ptr) Variable Function
+  315(coordTemp):    214(ptr) Variable Function
+  318(storeTemp):      8(ptr) Variable Function
+  332(coordTemp):    214(ptr) Variable Function
+  335(storeTemp):      8(ptr) Variable Function
+  348(coordTemp):    214(ptr) Variable Function
+  351(storeTemp):      8(ptr) Variable Function
+  364(storeTemp):     22(ptr) Variable Function
+  374(storeTemp):      8(ptr) Variable Function
+  381(storeTemp):     15(ptr) Variable Function
+  388(storeTemp):     22(ptr) Variable Function
+  398(storeTemp):      8(ptr) Variable Function
+  405(storeTemp):     15(ptr) Variable Function
+      419(param):     22(ptr) Variable Function
+      428(param):      8(ptr) Variable Function
+      437(param):     15(ptr) Variable Function
+    439(tempArg):     22(ptr) Variable Function
+      440(param):     22(ptr) Variable Function
+    447(tempArg):      8(ptr) Variable Function
+      448(param):      8(ptr) Variable Function
+    455(tempArg):     15(ptr) Variable Function
+      456(param):     15(ptr) Variable Function
+  463(coordTemp):    214(ptr) Variable Function
+  466(storeTemp):     22(ptr) Variable Function
+  480(coordTemp):    214(ptr) Variable Function
+  483(storeTemp):      8(ptr) Variable Function
+  496(coordTemp):    214(ptr) Variable Function
+  499(storeTemp):     15(ptr) Variable Function
+  512(coordTemp):    214(ptr) Variable Function
+  515(storeTemp):     22(ptr) Variable Function
+  528(coordTemp):    214(ptr) Variable Function
+  531(storeTemp):      8(ptr) Variable Function
+  544(coordTemp):    214(ptr) Variable Function
+  547(storeTemp):     15(ptr) Variable Function
+  560(coordTemp):    214(ptr) Variable Function
+563(storeTempPre):     22(ptr) Variable Function
+570(storeTempPost):     22(ptr) Variable Function
+  578(coordTemp):    214(ptr) Variable Function
+581(storeTempPre):     15(ptr) Variable Function
+588(storeTempPost):     15(ptr) Variable Function
+  596(coordTemp):    214(ptr) Variable Function
+599(storeTempPre):      8(ptr) Variable Function
+606(storeTempPost):      8(ptr) Variable Function
+  614(coordTemp):    214(ptr) Variable Function
+617(storeTempPre):     22(ptr) Variable Function
+624(storeTempPost):     22(ptr) Variable Function
+  632(coordTemp):    214(ptr) Variable Function
+635(storeTempPre):      8(ptr) Variable Function
+642(storeTempPost):      8(ptr) Variable Function
+  650(coordTemp):    214(ptr) Variable Function
+653(storeTempPre):     15(ptr) Variable Function
+660(storeTempPost):     15(ptr) Variable Function
+  668(storeTemp):     22(ptr) Variable Function
+      679(psout):    678(ptr) Variable Function
               77:          74 Load 76(g_tTex1df2)
               79:     78(ptr) AccessChain 66 56
               80:      6(int) Load 79
-              81:   21(fvec2) ImageRead 77 80
-              83:          74 Load 76(g_tTex1df2)
-              84:     78(ptr) AccessChain 66 56
-              85:      6(int) Load 84
-              86:   21(fvec2) ImageRead 83 85
-                              Store 82(r00) 86
-              91:          88 Load 90(g_tTex1di2)
-              92:     78(ptr) AccessChain 66 56
-              93:      6(int) Load 92
-              94:    7(ivec2) ImageRead 91 93
-                              Store 87(r01) 94
-              99:          96 Load 98(g_tTex1du2)
-             100:     78(ptr) AccessChain 66 56
-             101:      6(int) Load 100
-             102:   14(ivec2) ImageRead 99 101
-                              Store 95(r02) 102
-             107:         104 Load 106(g_tTex2df2)
-             108:     68(ptr) AccessChain 66 67
-             109:    7(ivec2) Load 108
-             110:   21(fvec2) ImageRead 107 109
-                              Store 103(r10) 110
-             115:         112 Load 114(g_tTex2di2)
-             116:     68(ptr) AccessChain 66 67
-             117:    7(ivec2) Load 116
-             118:    7(ivec2) ImageRead 115 117
-                              Store 111(r11) 118
-             123:         120 Load 122(g_tTex2du2)
-             124:     68(ptr) AccessChain 66 67
-             125:    7(ivec2) Load 124
-             126:   14(ivec2) ImageRead 123 125
-                              Store 119(r12) 126
-             131:         128 Load 130(g_tTex3df2)
-             134:    133(ptr) AccessChain 66 132
-             135:   62(ivec3) Load 134
-             136:   21(fvec2) ImageRead 131 135
-                              Store 127(r20) 136
-             141:         138 Load 140(g_tTex3di2)
-             142:    133(ptr) AccessChain 66 132
-             143:   62(ivec3) Load 142
-             144:    7(ivec2) ImageRead 141 143
-                              Store 137(r21) 144
-             149:         146 Load 148(g_tTex3du2)
-             150:    133(ptr) AccessChain 66 132
-             151:   62(ivec3) Load 150
-             152:   14(ivec2) ImageRead 149 151
-                              Store 145(r22) 152
+              81:   42(fvec4) ImageRead 77 80
+              82:   20(float) CompositeExtract 81 0
+              83:   20(float) CompositeExtract 81 1
+              84:   21(fvec2) CompositeConstruct 82 83
+              86:          74 Load 76(g_tTex1df2)
+              87:     78(ptr) AccessChain 66 56
+              88:      6(int) Load 87
+              89:   42(fvec4) ImageRead 86 88
+              90:   20(float) CompositeExtract 89 0
+              91:   20(float) CompositeExtract 89 1
+              92:   21(fvec2) CompositeConstruct 90 91
+                              Store 85(r00) 92
+              97:          94 Load 96(g_tTex1di2)
+              98:     78(ptr) AccessChain 66 56
+              99:      6(int) Load 98
+             100:   63(ivec4) ImageRead 97 99
+             101:      6(int) CompositeExtract 100 0
+             102:      6(int) CompositeExtract 100 1
+             103:    7(ivec2) CompositeConstruct 101 102
+                              Store 93(r01) 103
+             108:         105 Load 107(g_tTex1du2)
+             109:     78(ptr) AccessChain 66 56
+             110:      6(int) Load 109
+             112:  111(ivec4) ImageRead 108 110
+             113:     13(int) CompositeExtract 112 0
+             114:     13(int) CompositeExtract 112 1
+             115:   14(ivec2) CompositeConstruct 113 114
+                              Store 104(r02) 115
+             120:         117 Load 119(g_tTex2df2)
+             121:     68(ptr) AccessChain 66 67
+             122:    7(ivec2) Load 121
+             123:   42(fvec4) ImageRead 120 122
+             124:   20(float) CompositeExtract 123 0
+             125:   20(float) CompositeExtract 123 1
+             126:   21(fvec2) CompositeConstruct 124 125
+                              Store 116(r10) 126
+             131:         128 Load 130(g_tTex2di2)
+             132:     68(ptr) AccessChain 66 67
+             133:    7(ivec2) Load 132
+             134:   63(ivec4) ImageRead 131 133
+             135:      6(int) CompositeExtract 134 0
+             136:      6(int) CompositeExtract 134 1
+             137:    7(ivec2) CompositeConstruct 135 136
+                              Store 127(r11) 137
+             142:         139 Load 141(g_tTex2du2)
+             143:     68(ptr) AccessChain 66 67
+             144:    7(ivec2) Load 143
+             145:  111(ivec4) ImageRead 142 144
+             146:     13(int) CompositeExtract 145 0
+             147:     13(int) CompositeExtract 145 1
+             148:   14(ivec2) CompositeConstruct 146 147
+                              Store 138(r12) 148
+             153:         150 Load 152(g_tTex3df2)
              156:    155(ptr) AccessChain 66 154
-             157:   21(fvec2) Load 156
-                              Store 153(lf2) 157
-             159:   21(fvec2) FunctionCall 40(SomeValue()
-                              Store 158(storeTemp) 159
-             160:          74 Load 76(g_tTex1df2)
-             161:     78(ptr) AccessChain 66 56
-             162:      6(int) Load 161
-             163:   21(fvec2) Load 158(storeTemp)
-                              ImageWrite 160 162 163
-             164:          74 Load 76(g_tTex1df2)
-             165:     78(ptr) AccessChain 66 56
-             166:      6(int) Load 165
-             167:   21(fvec2) Load 153(lf2)
-                              ImageWrite 164 166 167
-                              Store 168(storeTemp) 169
-             170:          88 Load 90(g_tTex1di2)
-             171:     78(ptr) AccessChain 66 56
-             172:      6(int) Load 171
-             173:    7(ivec2) Load 168(storeTemp)
-                              ImageWrite 170 172 173
-                              Store 174(storeTemp) 177
-             178:          96 Load 98(g_tTex1du2)
-             179:     78(ptr) AccessChain 66 56
-             180:      6(int) Load 179
-             181:   14(ivec2) Load 174(storeTemp)
-                              ImageWrite 178 180 181
-             185:     78(ptr) AccessChain 66 56
-             186:      6(int) Load 185
-                              Store 184(coordTemp) 186
-             188:          74 Load 76(g_tTex1df2)
-             189:      6(int) Load 184(coordTemp)
-             190:   21(fvec2) ImageRead 188 189
-                              Store 187(storeTemp) 190
-             192:   21(fvec2) Load 187(storeTemp)
-             193:   21(fvec2) VectorTimesScalar 192 191
-                              Store 187(storeTemp) 193
-             194:          74 Load 76(g_tTex1df2)
-             195:      6(int) Load 184(coordTemp)
-             196:   21(fvec2) Load 187(storeTemp)
-                              ImageWrite 194 195 196
-             197:   21(fvec2) Load 187(storeTemp)
-                              Store 182(val1) 197
-             199:     78(ptr) AccessChain 66 56
-             200:      6(int) Load 199
-                              Store 198(coordTemp) 200
-             202:          74 Load 76(g_tTex1df2)
-             203:      6(int) Load 198(coordTemp)
-             204:   21(fvec2) ImageRead 202 203
-                              Store 201(storeTemp) 204
-             206:   21(fvec2) Load 201(storeTemp)
-             207:   21(fvec2) CompositeConstruct 205 205
-             208:   21(fvec2) FSub 206 207
-                              Store 201(storeTemp) 208
-             209:          74 Load 76(g_tTex1df2)
-             210:      6(int) Load 198(coordTemp)
-             211:   21(fvec2) Load 201(storeTemp)
-                              ImageWrite 209 210 211
-             213:     78(ptr) AccessChain 66 56
-             214:      6(int) Load 213
-                              Store 212(coordTemp) 214
-             216:          74 Load 76(g_tTex1df2)
-             217:      6(int) Load 212(coordTemp)
-             218:   21(fvec2) ImageRead 216 217
-                              Store 215(storeTemp) 218
-             220:   21(fvec2) Load 215(storeTemp)
-             221:   21(fvec2) CompositeConstruct 219 219
-             222:   21(fvec2) FAdd 220 221
-                              Store 215(storeTemp) 222
-             223:          74 Load 76(g_tTex1df2)
-             224:      6(int) Load 212(coordTemp)
-             225:   21(fvec2) Load 215(storeTemp)
-                              ImageWrite 223 224 225
-             227:     78(ptr) AccessChain 66 56
-             228:      6(int) Load 227
-                              Store 226(coordTemp) 228
-             230:          88 Load 90(g_tTex1di2)
-             231:      6(int) Load 226(coordTemp)
-             232:    7(ivec2) ImageRead 230 231
-                              Store 229(storeTemp) 232
-             233:    7(ivec2) Load 229(storeTemp)
-             234:    7(ivec2) CompositeConstruct 132 132
-             235:    7(ivec2) SDiv 233 234
-                              Store 229(storeTemp) 235
-             236:          88 Load 90(g_tTex1di2)
-             237:      6(int) Load 226(coordTemp)
-             238:    7(ivec2) Load 229(storeTemp)
-                              ImageWrite 236 237 238
-             240:     78(ptr) AccessChain 66 56
-             241:      6(int) Load 240
-                              Store 239(coordTemp) 241
-             243:          88 Load 90(g_tTex1di2)
-             244:      6(int) Load 239(coordTemp)
-             245:    7(ivec2) ImageRead 243 244
-                              Store 242(storeTemp) 245
-             246:    7(ivec2) Load 242(storeTemp)
-             247:    7(ivec2) CompositeConstruct 132 132
-             248:    7(ivec2) SMod 246 247
-                              Store 242(storeTemp) 248
-             249:          88 Load 90(g_tTex1di2)
-             250:      6(int) Load 239(coordTemp)
-             251:    7(ivec2) Load 242(storeTemp)
-                              ImageWrite 249 250 251
-             253:     78(ptr) AccessChain 66 56
-             254:      6(int) Load 253
-                              Store 252(coordTemp) 254
-             256:          88 Load 90(g_tTex1di2)
-             257:      6(int) Load 252(coordTemp)
-             258:    7(ivec2) ImageRead 256 257
-                              Store 255(storeTemp) 258
-             260:    7(ivec2) Load 255(storeTemp)
-             261:    7(ivec2) CompositeConstruct 259 259
-             262:    7(ivec2) BitwiseAnd 260 261
-                              Store 255(storeTemp) 262
-             263:          88 Load 90(g_tTex1di2)
-             264:      6(int) Load 252(coordTemp)
-             265:    7(ivec2) Load 255(storeTemp)
+             157:   62(ivec3) Load 156
+             158:   42(fvec4) ImageRead 153 157
+             159:   20(float) CompositeExtract 158 0
+             160:   20(float) CompositeExtract 158 1
+             161:   21(fvec2) CompositeConstruct 159 160
+                              Store 149(r20) 161
+             166:         163 Load 165(g_tTex3di2)
+             167:    155(ptr) AccessChain 66 154
+             168:   62(ivec3) Load 167
+             169:   63(ivec4) ImageRead 166 168
+             170:      6(int) CompositeExtract 169 0
+             171:      6(int) CompositeExtract 169 1
+             172:    7(ivec2) CompositeConstruct 170 171
+                              Store 162(r21) 172
+             177:         174 Load 176(g_tTex3du2)
+             178:    155(ptr) AccessChain 66 154
+             179:   62(ivec3) Load 178
+             180:  111(ivec4) ImageRead 177 179
+             181:     13(int) CompositeExtract 180 0
+             182:     13(int) CompositeExtract 180 1
+             183:   14(ivec2) CompositeConstruct 181 182
+                              Store 173(r22) 183
+             187:    186(ptr) AccessChain 66 185
+             188:   21(fvec2) Load 187
+                              Store 184(lf2) 188
+             190:   21(fvec2) FunctionCall 40(SomeValue()
+                              Store 189(storeTemp) 190
+             191:          74 Load 76(g_tTex1df2)
+             192:     78(ptr) AccessChain 66 56
+             193:      6(int) Load 192
+             194:   21(fvec2) Load 189(storeTemp)
+                              ImageWrite 191 193 194
+             195:          74 Load 76(g_tTex1df2)
+             196:     78(ptr) AccessChain 66 56
+             197:      6(int) Load 196
+             198:   21(fvec2) Load 184(lf2)
+                              ImageWrite 195 197 198
+                              Store 199(storeTemp) 200
+             201:          94 Load 96(g_tTex1di2)
+             202:     78(ptr) AccessChain 66 56
+             203:      6(int) Load 202
+             204:    7(ivec2) Load 199(storeTemp)
+                              ImageWrite 201 203 204
+                              Store 205(storeTemp) 208
+             209:         105 Load 107(g_tTex1du2)
+             210:     78(ptr) AccessChain 66 56
+             211:      6(int) Load 210
+             212:   14(ivec2) Load 205(storeTemp)
+                              ImageWrite 209 211 212
+             216:     78(ptr) AccessChain 66 56
+             217:      6(int) Load 216
+                              Store 215(coordTemp) 217
+             219:          74 Load 76(g_tTex1df2)
+             220:      6(int) Load 215(coordTemp)
+             221:   42(fvec4) ImageRead 219 220
+             222:   20(float) CompositeExtract 221 0
+             223:   20(float) CompositeExtract 221 1
+             224:   21(fvec2) CompositeConstruct 222 223
+                              Store 218(storeTemp) 224
+             226:   21(fvec2) Load 218(storeTemp)
+             227:   21(fvec2) VectorTimesScalar 226 225
+                              Store 218(storeTemp) 227
+             228:          74 Load 76(g_tTex1df2)
+             229:      6(int) Load 215(coordTemp)
+             230:   21(fvec2) Load 218(storeTemp)
+                              ImageWrite 228 229 230
+             231:   21(fvec2) Load 218(storeTemp)
+                              Store 213(val1) 231
+             233:     78(ptr) AccessChain 66 56
+             234:      6(int) Load 233
+                              Store 232(coordTemp) 234
+             236:          74 Load 76(g_tTex1df2)
+             237:      6(int) Load 232(coordTemp)
+             238:   42(fvec4) ImageRead 236 237
+             239:   20(float) CompositeExtract 238 0
+             240:   20(float) CompositeExtract 238 1
+             241:   21(fvec2) CompositeConstruct 239 240
+                              Store 235(storeTemp) 241
+             243:   21(fvec2) Load 235(storeTemp)
+             244:   21(fvec2) CompositeConstruct 242 242
+             245:   21(fvec2) FSub 243 244
+                              Store 235(storeTemp) 245
+             246:          74 Load 76(g_tTex1df2)
+             247:      6(int) Load 232(coordTemp)
+             248:   21(fvec2) Load 235(storeTemp)
+                              ImageWrite 246 247 248
+             250:     78(ptr) AccessChain 66 56
+             251:      6(int) Load 250
+                              Store 249(coordTemp) 251
+             253:          74 Load 76(g_tTex1df2)
+             254:      6(int) Load 249(coordTemp)
+             255:   42(fvec4) ImageRead 253 254
+             256:   20(float) CompositeExtract 255 0
+             257:   20(float) CompositeExtract 255 1
+             258:   21(fvec2) CompositeConstruct 256 257
+                              Store 252(storeTemp) 258
+             260:   21(fvec2) Load 252(storeTemp)
+             261:   21(fvec2) CompositeConstruct 259 259
+             262:   21(fvec2) FAdd 260 261
+                              Store 252(storeTemp) 262
+             263:          74 Load 76(g_tTex1df2)
+             264:      6(int) Load 249(coordTemp)
+             265:   21(fvec2) Load 252(storeTemp)
                               ImageWrite 263 264 265
              267:     78(ptr) AccessChain 66 56
              268:      6(int) Load 267
                               Store 266(coordTemp) 268
-             270:          88 Load 90(g_tTex1di2)
+             270:          94 Load 96(g_tTex1di2)
              271:      6(int) Load 266(coordTemp)
-             272:    7(ivec2) ImageRead 270 271
-                              Store 269(storeTemp) 272
-             274:    7(ivec2) Load 269(storeTemp)
-             275:    7(ivec2) CompositeConstruct 273 273
-             276:    7(ivec2) BitwiseOr 274 275
-                              Store 269(storeTemp) 276
-             277:          88 Load 90(g_tTex1di2)
-             278:      6(int) Load 266(coordTemp)
-             279:    7(ivec2) Load 269(storeTemp)
-                              ImageWrite 277 278 279
-             281:     78(ptr) AccessChain 66 56
-             282:      6(int) Load 281
-                              Store 280(coordTemp) 282
-             284:          88 Load 90(g_tTex1di2)
-             285:      6(int) Load 280(coordTemp)
-             286:    7(ivec2) ImageRead 284 285
-                              Store 283(storeTemp) 286
-             287:    7(ivec2) Load 283(storeTemp)
-             288:    7(ivec2) CompositeConstruct 132 132
-             289:    7(ivec2) ShiftLeftLogical 287 288
-                              Store 283(storeTemp) 289
-             290:          88 Load 90(g_tTex1di2)
-             291:      6(int) Load 280(coordTemp)
-             292:    7(ivec2) Load 283(storeTemp)
-                              ImageWrite 290 291 292
-             294:     78(ptr) AccessChain 66 56
-             295:      6(int) Load 294
-                              Store 293(coordTemp) 295
-             297:          88 Load 90(g_tTex1di2)
-             298:      6(int) Load 293(coordTemp)
-             299:    7(ivec2) ImageRead 297 298
-                              Store 296(storeTemp) 299
-             300:    7(ivec2) Load 296(storeTemp)
-             301:    7(ivec2) CompositeConstruct 132 132
-             302:    7(ivec2) ShiftRightArithmetic 300 301
-                              Store 296(storeTemp) 302
-             303:          88 Load 90(g_tTex1di2)
-             304:      6(int) Load 293(coordTemp)
-             305:    7(ivec2) Load 296(storeTemp)
-                              ImageWrite 303 304 305
-             307:   21(fvec2) FunctionCall 40(SomeValue()
-                              Store 306(storeTemp) 307
-             308:         104 Load 106(g_tTex2df2)
-             309:     68(ptr) AccessChain 66 67
-             310:    7(ivec2) Load 309
-             311:   21(fvec2) Load 306(storeTemp)
-                              ImageWrite 308 310 311
-             312:         104 Load 106(g_tTex2df2)
-             313:     68(ptr) AccessChain 66 67
-             314:    7(ivec2) Load 313
-             315:   21(fvec2) Load 153(lf2)
-                              ImageWrite 312 314 315
-                              Store 316(storeTemp) 318
-             319:         112 Load 114(g_tTex2di2)
-             320:     68(ptr) AccessChain 66 67
-             321:    7(ivec2) Load 320
-             322:    7(ivec2) Load 316(storeTemp)
-                              ImageWrite 319 321 322
-                              Store 323(storeTemp) 325
-             326:         120 Load 122(g_tTex2du2)
-             327:     68(ptr) AccessChain 66 67
-             328:    7(ivec2) Load 327
-             329:   14(ivec2) Load 323(storeTemp)
-                              ImageWrite 326 328 329
-             331:   21(fvec2) FunctionCall 40(SomeValue()
-                              Store 330(storeTemp) 331
-             332:         128 Load 130(g_tTex3df2)
-             333:    133(ptr) AccessChain 66 132
-             334:   62(ivec3) Load 333
-             335:   21(fvec2) Load 330(storeTemp)
-                              ImageWrite 332 334 335
-             336:         128 Load 130(g_tTex3df2)
-             337:    133(ptr) AccessChain 66 132
-             338:   62(ivec3) Load 337
-             339:   21(fvec2) Load 153(lf2)
-                              ImageWrite 336 338 339
-                              Store 340(storeTemp) 342
-             343:         138 Load 140(g_tTex3di2)
-             344:    133(ptr) AccessChain 66 132
-             345:   62(ivec3) Load 344
-             346:    7(ivec2) Load 340(storeTemp)
-                              ImageWrite 343 345 346
-                              Store 347(storeTemp) 349
-             350:         146 Load 148(g_tTex3du2)
-             351:    133(ptr) AccessChain 66 132
-             352:   62(ivec3) Load 351
-             353:   14(ivec2) Load 347(storeTemp)
-                              ImageWrite 350 352 353
-             354:          74 Load 76(g_tTex1df2)
-             355:     78(ptr) AccessChain 66 56
-             356:      6(int) Load 355
-             357:   21(fvec2) ImageRead 354 356
-                              Store 358(param) 357
-             359:   21(fvec2) FunctionCall 25(Fn1(vf2;) 358(param)
-             360:          88 Load 90(g_tTex1di2)
-             361:     78(ptr) AccessChain 66 56
-             362:      6(int) Load 361
-             363:    7(ivec2) ImageRead 360 362
-                              Store 364(param) 363
-             365:    7(ivec2) FunctionCall 11(Fn1(vi2;) 364(param)
-             366:          96 Load 98(g_tTex1du2)
-             367:     78(ptr) AccessChain 66 56
-             368:      6(int) Load 367
-             369:   14(ivec2) ImageRead 366 368
-                              Store 370(param) 369
-             371:   14(ivec2) FunctionCall 18(Fn1(vu2;) 370(param)
-             374:           2 FunctionCall 37(Fn2(vf2;) 373(param)
-             375:   21(fvec2) Load 373(param)
-                              Store 372(tempArg) 375
-             376:          74 Load 76(g_tTex1df2)
-             377:     78(ptr) AccessChain 66 56
-             378:      6(int) Load 377
-             379:   21(fvec2) Load 372(tempArg)
-                              ImageWrite 376 378 379
-             382:           2 FunctionCall 29(Fn2(vi2;) 381(param)
-             383:    7(ivec2) Load 381(param)
-                              Store 380(tempArg) 383
-             384:          88 Load 90(g_tTex1di2)
-             385:     78(ptr) AccessChain 66 56
-             386:      6(int) Load 385
-             387:    7(ivec2) Load 380(tempArg)
+             272:   63(ivec4) ImageRead 270 271
+             273:      6(int) CompositeExtract 272 0
+             274:      6(int) CompositeExtract 272 1
+             275:    7(ivec2) CompositeConstruct 273 274
+                              Store 269(storeTemp) 275
+             276:    7(ivec2) Load 269(storeTemp)
+             277:    7(ivec2) CompositeConstruct 154 154
+             278:    7(ivec2) SDiv 276 277
+                              Store 269(storeTemp) 278
+             279:          94 Load 96(g_tTex1di2)
+             280:      6(int) Load 266(coordTemp)
+             281:    7(ivec2) Load 269(storeTemp)
+                              ImageWrite 279 280 281
+             283:     78(ptr) AccessChain 66 56
+             284:      6(int) Load 283
+                              Store 282(coordTemp) 284
+             286:          94 Load 96(g_tTex1di2)
+             287:      6(int) Load 282(coordTemp)
+             288:   63(ivec4) ImageRead 286 287
+             289:      6(int) CompositeExtract 288 0
+             290:      6(int) CompositeExtract 288 1
+             291:    7(ivec2) CompositeConstruct 289 290
+                              Store 285(storeTemp) 291
+             292:    7(ivec2) Load 285(storeTemp)
+             293:    7(ivec2) CompositeConstruct 154 154
+             294:    7(ivec2) SMod 292 293
+                              Store 285(storeTemp) 294
+             295:          94 Load 96(g_tTex1di2)
+             296:      6(int) Load 282(coordTemp)
+             297:    7(ivec2) Load 285(storeTemp)
+                              ImageWrite 295 296 297
+             299:     78(ptr) AccessChain 66 56
+             300:      6(int) Load 299
+                              Store 298(coordTemp) 300
+             302:          94 Load 96(g_tTex1di2)
+             303:      6(int) Load 298(coordTemp)
+             304:   63(ivec4) ImageRead 302 303
+             305:      6(int) CompositeExtract 304 0
+             306:      6(int) CompositeExtract 304 1
+             307:    7(ivec2) CompositeConstruct 305 306
+                              Store 301(storeTemp) 307
+             309:    7(ivec2) Load 301(storeTemp)
+             310:    7(ivec2) CompositeConstruct 308 308
+             311:    7(ivec2) BitwiseAnd 309 310
+                              Store 301(storeTemp) 311
+             312:          94 Load 96(g_tTex1di2)
+             313:      6(int) Load 298(coordTemp)
+             314:    7(ivec2) Load 301(storeTemp)
+                              ImageWrite 312 313 314
+             316:     78(ptr) AccessChain 66 56
+             317:      6(int) Load 316
+                              Store 315(coordTemp) 317
+             319:          94 Load 96(g_tTex1di2)
+             320:      6(int) Load 315(coordTemp)
+             321:   63(ivec4) ImageRead 319 320
+             322:      6(int) CompositeExtract 321 0
+             323:      6(int) CompositeExtract 321 1
+             324:    7(ivec2) CompositeConstruct 322 323
+                              Store 318(storeTemp) 324
+             326:    7(ivec2) Load 318(storeTemp)
+             327:    7(ivec2) CompositeConstruct 325 325
+             328:    7(ivec2) BitwiseOr 326 327
+                              Store 318(storeTemp) 328
+             329:          94 Load 96(g_tTex1di2)
+             330:      6(int) Load 315(coordTemp)
+             331:    7(ivec2) Load 318(storeTemp)
+                              ImageWrite 329 330 331
+             333:     78(ptr) AccessChain 66 56
+             334:      6(int) Load 333
+                              Store 332(coordTemp) 334
+             336:          94 Load 96(g_tTex1di2)
+             337:      6(int) Load 332(coordTemp)
+             338:   63(ivec4) ImageRead 336 337
+             339:      6(int) CompositeExtract 338 0
+             340:      6(int) CompositeExtract 338 1
+             341:    7(ivec2) CompositeConstruct 339 340
+                              Store 335(storeTemp) 341
+             342:    7(ivec2) Load 335(storeTemp)
+             343:    7(ivec2) CompositeConstruct 154 154
+             344:    7(ivec2) ShiftLeftLogical 342 343
+                              Store 335(storeTemp) 344
+             345:          94 Load 96(g_tTex1di2)
+             346:      6(int) Load 332(coordTemp)
+             347:    7(ivec2) Load 335(storeTemp)
+                              ImageWrite 345 346 347
+             349:     78(ptr) AccessChain 66 56
+             350:      6(int) Load 349
+                              Store 348(coordTemp) 350
+             352:          94 Load 96(g_tTex1di2)
+             353:      6(int) Load 348(coordTemp)
+             354:   63(ivec4) ImageRead 352 353
+             355:      6(int) CompositeExtract 354 0
+             356:      6(int) CompositeExtract 354 1
+             357:    7(ivec2) CompositeConstruct 355 356
+                              Store 351(storeTemp) 357
+             358:    7(ivec2) Load 351(storeTemp)
+             359:    7(ivec2) CompositeConstruct 154 154
+             360:    7(ivec2) ShiftRightArithmetic 358 359
+                              Store 351(storeTemp) 360
+             361:          94 Load 96(g_tTex1di2)
+             362:      6(int) Load 348(coordTemp)
+             363:    7(ivec2) Load 351(storeTemp)
+                              ImageWrite 361 362 363
+             365:   21(fvec2) FunctionCall 40(SomeValue()
+                              Store 364(storeTemp) 365
+             366:         117 Load 119(g_tTex2df2)
+             367:     68(ptr) AccessChain 66 67
+             368:    7(ivec2) Load 367
+             369:   21(fvec2) Load 364(storeTemp)
+                              ImageWrite 366 368 369
+             370:         117 Load 119(g_tTex2df2)
+             371:     68(ptr) AccessChain 66 67
+             372:    7(ivec2) Load 371
+             373:   21(fvec2) Load 184(lf2)
+                              ImageWrite 370 372 373
+                              Store 374(storeTemp) 376
+             377:         128 Load 130(g_tTex2di2)
+             378:     68(ptr) AccessChain 66 67
+             379:    7(ivec2) Load 378
+             380:    7(ivec2) Load 374(storeTemp)
+                              ImageWrite 377 379 380
+                              Store 381(storeTemp) 383
+             384:         139 Load 141(g_tTex2du2)
+             385:     68(ptr) AccessChain 66 67
+             386:    7(ivec2) Load 385
+             387:   14(ivec2) Load 381(storeTemp)
                               ImageWrite 384 386 387
-             390:           2 FunctionCall 33(Fn2(vu2;) 389(param)
-             391:   14(ivec2) Load 389(param)
-                              Store 388(tempArg) 391
-             392:          96 Load 98(g_tTex1du2)
-             393:     78(ptr) AccessChain 66 56
-             394:      6(int) Load 393
-             395:   14(ivec2) Load 388(tempArg)
-                              ImageWrite 392 394 395
-             397:     78(ptr) AccessChain 66 56
-             398:      6(int) Load 397
-                              Store 396(coordTemp) 398
-             400:          74 Load 76(g_tTex1df2)
-             401:      6(int) Load 396(coordTemp)
-             402:   21(fvec2) ImageRead 400 401
-                              Store 399(storeTemp) 402
-             403:   21(fvec2) Load 399(storeTemp)
-             405:   21(fvec2) CompositeConstruct 404 404
-             406:   21(fvec2) FAdd 403 405
-                              Store 399(storeTemp) 406
-             407:          74 Load 76(g_tTex1df2)
-             408:      6(int) Load 396(coordTemp)
-             409:   21(fvec2) Load 399(storeTemp)
-                              ImageWrite 407 408 409
-             411:     78(ptr) AccessChain 66 56
-             412:      6(int) Load 411
-                              Store 410(coordTemp) 412
-             414:          88 Load 90(g_tTex1di2)
-             415:      6(int) Load 410(coordTemp)
-             416:    7(ivec2) ImageRead 414 415
-                              Store 413(storeTemp) 416
-             417:    7(ivec2) Load 413(storeTemp)
-             418:    7(ivec2) CompositeConstruct 67 67
-             419:    7(ivec2) IAdd 417 418
-                              Store 413(storeTemp) 419
-             420:          88 Load 90(g_tTex1di2)
-             421:      6(int) Load 410(coordTemp)
-             422:    7(ivec2) Load 413(storeTemp)
-                              ImageWrite 420 421 422
-             424:     78(ptr) AccessChain 66 56
-             425:      6(int) Load 424
-                              Store 423(coordTemp) 425
-             427:          96 Load 98(g_tTex1du2)
-             428:      6(int) Load 423(coordTemp)
-             429:   14(ivec2) ImageRead 427 428
-                              Store 426(storeTemp) 429
-             430:   14(ivec2) Load 426(storeTemp)
-             431:    7(ivec2) CompositeConstruct 67 67
-             432:   14(ivec2) IAdd 430 431
-                              Store 426(storeTemp) 432
-             433:          96 Load 98(g_tTex1du2)
-             434:      6(int) Load 423(coordTemp)
-             435:   14(ivec2) Load 426(storeTemp)
-                              ImageWrite 433 434 435
-             437:     78(ptr) AccessChain 66 56
-             438:      6(int) Load 437
-                              Store 436(coordTemp) 438
-             440:          74 Load 76(g_tTex1df2)
-             441:      6(int) Load 436(coordTemp)
-             442:   21(fvec2) ImageRead 440 441
-                              Store 439(storeTemp) 442
-             443:   21(fvec2) Load 439(storeTemp)
-             444:   21(fvec2) CompositeConstruct 404 404
-             445:   21(fvec2) FSub 443 444
-                              Store 439(storeTemp) 445
-             446:          74 Load 76(g_tTex1df2)
-             447:      6(int) Load 436(coordTemp)
-             448:   21(fvec2) Load 439(storeTemp)
-                              ImageWrite 446 447 448
-             450:     78(ptr) AccessChain 66 56
-             451:      6(int) Load 450
-                              Store 449(coordTemp) 451
-             453:          88 Load 90(g_tTex1di2)
-             454:      6(int) Load 449(coordTemp)
-             455:    7(ivec2) ImageRead 453 454
-                              Store 452(storeTemp) 455
-             456:    7(ivec2) Load 452(storeTemp)
-             457:    7(ivec2) CompositeConstruct 67 67
-             458:    7(ivec2) ISub 456 457
-                              Store 452(storeTemp) 458
-             459:          88 Load 90(g_tTex1di2)
-             460:      6(int) Load 449(coordTemp)
-             461:    7(ivec2) Load 452(storeTemp)
-                              ImageWrite 459 460 461
-             463:     78(ptr) AccessChain 66 56
-             464:      6(int) Load 463
-                              Store 462(coordTemp) 464
-             466:          96 Load 98(g_tTex1du2)
-             467:      6(int) Load 462(coordTemp)
-             468:   14(ivec2) ImageRead 466 467
-                              Store 465(storeTemp) 468
-             469:   14(ivec2) Load 465(storeTemp)
-             470:    7(ivec2) CompositeConstruct 67 67
-             471:   14(ivec2) ISub 469 470
-                              Store 465(storeTemp) 471
-             472:          96 Load 98(g_tTex1du2)
-             473:      6(int) Load 462(coordTemp)
-             474:   14(ivec2) Load 465(storeTemp)
-                              ImageWrite 472 473 474
-             476:     78(ptr) AccessChain 66 56
-             477:      6(int) Load 476
-                              Store 475(coordTemp) 477
-             479:          74 Load 76(g_tTex1df2)
-             480:      6(int) Load 475(coordTemp)
-             481:   21(fvec2) ImageRead 479 480
-                              Store 478(storeTempPre) 481
-             483:   21(fvec2) Load 478(storeTempPre)
-                              Store 482(storeTempPost) 483
-             484:   21(fvec2) Load 482(storeTempPost)
-             485:   21(fvec2) CompositeConstruct 404 404
-             486:   21(fvec2) FAdd 484 485
-                              Store 482(storeTempPost) 486
-             487:          74 Load 76(g_tTex1df2)
-             488:      6(int) Load 475(coordTemp)
-             489:   21(fvec2) Load 482(storeTempPost)
-                              ImageWrite 487 488 489
-             491:     78(ptr) AccessChain 66 56
-             492:      6(int) Load 491
-                              Store 490(coordTemp) 492
-             494:          96 Load 98(g_tTex1du2)
-             495:      6(int) Load 490(coordTemp)
-             496:   14(ivec2) ImageRead 494 495
-                              Store 493(storeTempPre) 496
-             498:   14(ivec2) Load 493(storeTempPre)
-                              Store 497(storeTempPost) 498
-             499:   14(ivec2) Load 497(storeTempPost)
-             500:    7(ivec2) CompositeConstruct 67 67
-             501:   14(ivec2) ISub 499 500
-                              Store 497(storeTempPost) 501
-             502:          96 Load 98(g_tTex1du2)
-             503:      6(int) Load 490(coordTemp)
-             504:   14(ivec2) Load 497(storeTempPost)
-                              ImageWrite 502 503 504
-             506:     78(ptr) AccessChain 66 56
-             507:      6(int) Load 506
-                              Store 505(coordTemp) 507
-             509:          88 Load 90(g_tTex1di2)
-             510:      6(int) Load 505(coordTemp)
-             511:    7(ivec2) ImageRead 509 510
-                              Store 508(storeTempPre) 511
-             513:    7(ivec2) Load 508(storeTempPre)
-                              Store 512(storeTempPost) 513
-             514:    7(ivec2) Load 512(storeTempPost)
-             515:    7(ivec2) CompositeConstruct 67 67
-             516:    7(ivec2) IAdd 514 515
-                              Store 512(storeTempPost) 516
-             517:          88 Load 90(g_tTex1di2)
-             518:      6(int) Load 505(coordTemp)
-             519:    7(ivec2) Load 512(storeTempPost)
-                              ImageWrite 517 518 519
-             521:     78(ptr) AccessChain 66 56
-             522:      6(int) Load 521
-                              Store 520(coordTemp) 522
-             524:          74 Load 76(g_tTex1df2)
-             525:      6(int) Load 520(coordTemp)
-             526:   21(fvec2) ImageRead 524 525
-                              Store 523(storeTempPre) 526
-             528:   21(fvec2) Load 523(storeTempPre)
-                              Store 527(storeTempPost) 528
-             529:   21(fvec2) Load 527(storeTempPost)
-             530:   21(fvec2) CompositeConstruct 404 404
-             531:   21(fvec2) FSub 529 530
-                              Store 527(storeTempPost) 531
-             532:          74 Load 76(g_tTex1df2)
-             533:      6(int) Load 520(coordTemp)
-             534:   21(fvec2) Load 527(storeTempPost)
-                              ImageWrite 532 533 534
-             536:     78(ptr) AccessChain 66 56
-             537:      6(int) Load 536
-                              Store 535(coordTemp) 537
-             539:          88 Load 90(g_tTex1di2)
-             540:      6(int) Load 535(coordTemp)
-             541:    7(ivec2) ImageRead 539 540
-                              Store 538(storeTempPre) 541
-             543:    7(ivec2) Load 538(storeTempPre)
-                              Store 542(storeTempPost) 543
-             544:    7(ivec2) Load 542(storeTempPost)
-             545:    7(ivec2) CompositeConstruct 67 67
-             546:    7(ivec2) IAdd 544 545
-                              Store 542(storeTempPost) 546
-             547:          88 Load 90(g_tTex1di2)
-             548:      6(int) Load 535(coordTemp)
-             549:    7(ivec2) Load 542(storeTempPost)
-                              ImageWrite 547 548 549
-             551:     78(ptr) AccessChain 66 56
-             552:      6(int) Load 551
-                              Store 550(coordTemp) 552
-             554:          96 Load 98(g_tTex1du2)
-             555:      6(int) Load 550(coordTemp)
-             556:   14(ivec2) ImageRead 554 555
-                              Store 553(storeTempPre) 556
-             558:   14(ivec2) Load 553(storeTempPre)
-                              Store 557(storeTempPost) 558
-             559:   14(ivec2) Load 557(storeTempPost)
-             560:    7(ivec2) CompositeConstruct 67 67
-             561:   14(ivec2) ISub 559 560
-                              Store 557(storeTempPost) 561
-             562:          96 Load 98(g_tTex1du2)
-             563:      6(int) Load 550(coordTemp)
-             564:   14(ivec2) Load 557(storeTempPost)
-                              ImageWrite 562 563 564
-             566:         104 Load 106(g_tTex2df2)
-             569:   21(fvec2) ImageRead 566 568
-                              Store 565(storeTemp) 569
-             570:          74 Load 76(g_tTex1df2)
-             571:   21(fvec2) Load 565(storeTemp)
-                              ImageWrite 570 67 571
-             576:    575(ptr) AccessChain 573(psout) 56
-                              Store 576 574
-             577:43(PS_OUTPUT) Load 573(psout)
-                              ReturnValue 577
+             389:   21(fvec2) FunctionCall 40(SomeValue()
+                              Store 388(storeTemp) 389
+             390:         150 Load 152(g_tTex3df2)
+             391:    155(ptr) AccessChain 66 154
+             392:   62(ivec3) Load 391
+             393:   21(fvec2) Load 388(storeTemp)
+                              ImageWrite 390 392 393
+             394:         150 Load 152(g_tTex3df2)
+             395:    155(ptr) AccessChain 66 154
+             396:   62(ivec3) Load 395
+             397:   21(fvec2) Load 184(lf2)
+                              ImageWrite 394 396 397
+                              Store 398(storeTemp) 400
+             401:         163 Load 165(g_tTex3di2)
+             402:    155(ptr) AccessChain 66 154
+             403:   62(ivec3) Load 402
+             404:    7(ivec2) Load 398(storeTemp)
+                              ImageWrite 401 403 404
+                              Store 405(storeTemp) 407
+             408:         174 Load 176(g_tTex3du2)
+             409:    155(ptr) AccessChain 66 154
+             410:   62(ivec3) Load 409
+             411:   14(ivec2) Load 405(storeTemp)
+                              ImageWrite 408 410 411
+             412:          74 Load 76(g_tTex1df2)
+             413:     78(ptr) AccessChain 66 56
+             414:      6(int) Load 413
+             415:   42(fvec4) ImageRead 412 414
+             416:   20(float) CompositeExtract 415 0
+             417:   20(float) CompositeExtract 415 1
+             418:   21(fvec2) CompositeConstruct 416 417
+                              Store 419(param) 418
+             420:   21(fvec2) FunctionCall 25(Fn1(vf2;) 419(param)
+             421:          94 Load 96(g_tTex1di2)
+             422:     78(ptr) AccessChain 66 56
+             423:      6(int) Load 422
+             424:   63(ivec4) ImageRead 421 423
+             425:      6(int) CompositeExtract 424 0
+             426:      6(int) CompositeExtract 424 1
+             427:    7(ivec2) CompositeConstruct 425 426
+                              Store 428(param) 427
+             429:    7(ivec2) FunctionCall 11(Fn1(vi2;) 428(param)
+             430:         105 Load 107(g_tTex1du2)
+             431:     78(ptr) AccessChain 66 56
+             432:      6(int) Load 431
+             433:  111(ivec4) ImageRead 430 432
+             434:     13(int) CompositeExtract 433 0
+             435:     13(int) CompositeExtract 433 1
+             436:   14(ivec2) CompositeConstruct 434 435
+                              Store 437(param) 436
+             438:   14(ivec2) FunctionCall 18(Fn1(vu2;) 437(param)
+             441:           2 FunctionCall 37(Fn2(vf2;) 440(param)
+             442:   21(fvec2) Load 440(param)
+                              Store 439(tempArg) 442
+             443:          74 Load 76(g_tTex1df2)
+             444:     78(ptr) AccessChain 66 56
+             445:      6(int) Load 444
+             446:   21(fvec2) Load 439(tempArg)
+                              ImageWrite 443 445 446
+             449:           2 FunctionCall 29(Fn2(vi2;) 448(param)
+             450:    7(ivec2) Load 448(param)
+                              Store 447(tempArg) 450
+             451:          94 Load 96(g_tTex1di2)
+             452:     78(ptr) AccessChain 66 56
+             453:      6(int) Load 452
+             454:    7(ivec2) Load 447(tempArg)
+                              ImageWrite 451 453 454
+             457:           2 FunctionCall 33(Fn2(vu2;) 456(param)
+             458:   14(ivec2) Load 456(param)
+                              Store 455(tempArg) 458
+             459:         105 Load 107(g_tTex1du2)
+             460:     78(ptr) AccessChain 66 56
+             461:      6(int) Load 460
+             462:   14(ivec2) Load 455(tempArg)
+                              ImageWrite 459 461 462
+             464:     78(ptr) AccessChain 66 56
+             465:      6(int) Load 464
+                              Store 463(coordTemp) 465
+             467:          74 Load 76(g_tTex1df2)
+             468:      6(int) Load 463(coordTemp)
+             469:   42(fvec4) ImageRead 467 468
+             470:   20(float) CompositeExtract 469 0
+             471:   20(float) CompositeExtract 469 1
+             472:   21(fvec2) CompositeConstruct 470 471
+                              Store 466(storeTemp) 472
+             473:   21(fvec2) Load 466(storeTemp)
+             475:   21(fvec2) CompositeConstruct 474 474
+             476:   21(fvec2) FAdd 473 475
+                              Store 466(storeTemp) 476
+             477:          74 Load 76(g_tTex1df2)
+             478:      6(int) Load 463(coordTemp)
+             479:   21(fvec2) Load 466(storeTemp)
+                              ImageWrite 477 478 479
+             481:     78(ptr) AccessChain 66 56
+             482:      6(int) Load 481
+                              Store 480(coordTemp) 482
+             484:          94 Load 96(g_tTex1di2)
+             485:      6(int) Load 480(coordTemp)
+             486:   63(ivec4) ImageRead 484 485
+             487:      6(int) CompositeExtract 486 0
+             488:      6(int) CompositeExtract 486 1
+             489:    7(ivec2) CompositeConstruct 487 488
+                              Store 483(storeTemp) 489
+             490:    7(ivec2) Load 483(storeTemp)
+             491:    7(ivec2) CompositeConstruct 67 67
+             492:    7(ivec2) IAdd 490 491
+                              Store 483(storeTemp) 492
+             493:          94 Load 96(g_tTex1di2)
+             494:      6(int) Load 480(coordTemp)
+             495:    7(ivec2) Load 483(storeTemp)
+                              ImageWrite 493 494 495
+             497:     78(ptr) AccessChain 66 56
+             498:      6(int) Load 497
+                              Store 496(coordTemp) 498
+             500:         105 Load 107(g_tTex1du2)
+             501:      6(int) Load 496(coordTemp)
+             502:  111(ivec4) ImageRead 500 501
+             503:     13(int) CompositeExtract 502 0
+             504:     13(int) CompositeExtract 502 1
+             505:   14(ivec2) CompositeConstruct 503 504
+                              Store 499(storeTemp) 505
+             506:   14(ivec2) Load 499(storeTemp)
+             507:    7(ivec2) CompositeConstruct 67 67
+             508:   14(ivec2) IAdd 506 507
+                              Store 499(storeTemp) 508
+             509:         105 Load 107(g_tTex1du2)
+             510:      6(int) Load 496(coordTemp)
+             511:   14(ivec2) Load 499(storeTemp)
+                              ImageWrite 509 510 511
+             513:     78(ptr) AccessChain 66 56
+             514:      6(int) Load 513
+                              Store 512(coordTemp) 514
+             516:          74 Load 76(g_tTex1df2)
+             517:      6(int) Load 512(coordTemp)
+             518:   42(fvec4) ImageRead 516 517
+             519:   20(float) CompositeExtract 518 0
+             520:   20(float) CompositeExtract 518 1
+             521:   21(fvec2) CompositeConstruct 519 520
+                              Store 515(storeTemp) 521
+             522:   21(fvec2) Load 515(storeTemp)
+             523:   21(fvec2) CompositeConstruct 474 474
+             524:   21(fvec2) FSub 522 523
+                              Store 515(storeTemp) 524
+             525:          74 Load 76(g_tTex1df2)
+             526:      6(int) Load 512(coordTemp)
+             527:   21(fvec2) Load 515(storeTemp)
+                              ImageWrite 525 526 527
+             529:     78(ptr) AccessChain 66 56
+             530:      6(int) Load 529
+                              Store 528(coordTemp) 530
+             532:          94 Load 96(g_tTex1di2)
+             533:      6(int) Load 528(coordTemp)
+             534:   63(ivec4) ImageRead 532 533
+             535:      6(int) CompositeExtract 534 0
+             536:      6(int) CompositeExtract 534 1
+             537:    7(ivec2) CompositeConstruct 535 536
+                              Store 531(storeTemp) 537
+             538:    7(ivec2) Load 531(storeTemp)
+             539:    7(ivec2) CompositeConstruct 67 67
+             540:    7(ivec2) ISub 538 539
+                              Store 531(storeTemp) 540
+             541:          94 Load 96(g_tTex1di2)
+             542:      6(int) Load 528(coordTemp)
+             543:    7(ivec2) Load 531(storeTemp)
+                              ImageWrite 541 542 543
+             545:     78(ptr) AccessChain 66 56
+             546:      6(int) Load 545
+                              Store 544(coordTemp) 546
+             548:         105 Load 107(g_tTex1du2)
+             549:      6(int) Load 544(coordTemp)
+             550:  111(ivec4) ImageRead 548 549
+             551:     13(int) CompositeExtract 550 0
+             552:     13(int) CompositeExtract 550 1
+             553:   14(ivec2) CompositeConstruct 551 552
+                              Store 547(storeTemp) 553
+             554:   14(ivec2) Load 547(storeTemp)
+             555:    7(ivec2) CompositeConstruct 67 67
+             556:   14(ivec2) ISub 554 555
+                              Store 547(storeTemp) 556
+             557:         105 Load 107(g_tTex1du2)
+             558:      6(int) Load 544(coordTemp)
+             559:   14(ivec2) Load 547(storeTemp)
+                              ImageWrite 557 558 559
+             561:     78(ptr) AccessChain 66 56
+             562:      6(int) Load 561
+                              Store 560(coordTemp) 562
+             564:          74 Load 76(g_tTex1df2)
+             565:      6(int) Load 560(coordTemp)
+             566:   42(fvec4) ImageRead 564 565
+             567:   20(float) CompositeExtract 566 0
+             568:   20(float) CompositeExtract 566 1
+             569:   21(fvec2) CompositeConstruct 567 568
+                              Store 563(storeTempPre) 569
+             571:   21(fvec2) Load 563(storeTempPre)
+                              Store 570(storeTempPost) 571
+             572:   21(fvec2) Load 570(storeTempPost)
+             573:   21(fvec2) CompositeConstruct 474 474
+             574:   21(fvec2) FAdd 572 573
+                              Store 570(storeTempPost) 574
+             575:          74 Load 76(g_tTex1df2)
+             576:      6(int) Load 560(coordTemp)
+             577:   21(fvec2) Load 570(storeTempPost)
+                              ImageWrite 575 576 577
+             579:     78(ptr) AccessChain 66 56
+             580:      6(int) Load 579
+                              Store 578(coordTemp) 580
+             582:         105 Load 107(g_tTex1du2)
+             583:      6(int) Load 578(coordTemp)
+             584:  111(ivec4) ImageRead 582 583
+             585:     13(int) CompositeExtract 584 0
+             586:     13(int) CompositeExtract 584 1
+             587:   14(ivec2) CompositeConstruct 585 586
+                              Store 581(storeTempPre) 587
+             589:   14(ivec2) Load 581(storeTempPre)
+                              Store 588(storeTempPost) 589
+             590:   14(ivec2) Load 588(storeTempPost)
+             591:    7(ivec2) CompositeConstruct 67 67
+             592:   14(ivec2) ISub 590 591
+                              Store 588(storeTempPost) 592
+             593:         105 Load 107(g_tTex1du2)
+             594:      6(int) Load 578(coordTemp)
+             595:   14(ivec2) Load 588(storeTempPost)
+                              ImageWrite 593 594 595
+             597:     78(ptr) AccessChain 66 56
+             598:      6(int) Load 597
+                              Store 596(coordTemp) 598
+             600:          94 Load 96(g_tTex1di2)
+             601:      6(int) Load 596(coordTemp)
+             602:   63(ivec4) ImageRead 600 601
+             603:      6(int) CompositeExtract 602 0
+             604:      6(int) CompositeExtract 602 1
+             605:    7(ivec2) CompositeConstruct 603 604
+                              Store 599(storeTempPre) 605
+             607:    7(ivec2) Load 599(storeTempPre)
+                              Store 606(storeTempPost) 607
+             608:    7(ivec2) Load 606(storeTempPost)
+             609:    7(ivec2) CompositeConstruct 67 67
+             610:    7(ivec2) IAdd 608 609
+                              Store 606(storeTempPost) 610
+             611:          94 Load 96(g_tTex1di2)
+             612:      6(int) Load 596(coordTemp)
+             613:    7(ivec2) Load 606(storeTempPost)
+                              ImageWrite 611 612 613
+             615:     78(ptr) AccessChain 66 56
+             616:      6(int) Load 615
+                              Store 614(coordTemp) 616
+             618:          74 Load 76(g_tTex1df2)
+             619:      6(int) Load 614(coordTemp)
+             620:   42(fvec4) ImageRead 618 619
+             621:   20(float) CompositeExtract 620 0
+             622:   20(float) CompositeExtract 620 1
+             623:   21(fvec2) CompositeConstruct 621 622
+                              Store 617(storeTempPre) 623
+             625:   21(fvec2) Load 617(storeTempPre)
+                              Store 624(storeTempPost) 625
+             626:   21(fvec2) Load 624(storeTempPost)
+             627:   21(fvec2) CompositeConstruct 474 474
+             628:   21(fvec2) FSub 626 627
+                              Store 624(storeTempPost) 628
+             629:          74 Load 76(g_tTex1df2)
+             630:      6(int) Load 614(coordTemp)
+             631:   21(fvec2) Load 624(storeTempPost)
+                              ImageWrite 629 630 631
+             633:     78(ptr) AccessChain 66 56
+             634:      6(int) Load 633
+                              Store 632(coordTemp) 634
+             636:          94 Load 96(g_tTex1di2)
+             637:      6(int) Load 632(coordTemp)
+             638:   63(ivec4) ImageRead 636 637
+             639:      6(int) CompositeExtract 638 0
+             640:      6(int) CompositeExtract 638 1
+             641:    7(ivec2) CompositeConstruct 639 640
+                              Store 635(storeTempPre) 641
+             643:    7(ivec2) Load 635(storeTempPre)
+                              Store 642(storeTempPost) 643
+             644:    7(ivec2) Load 642(storeTempPost)
+             645:    7(ivec2) CompositeConstruct 67 67
+             646:    7(ivec2) IAdd 644 645
+                              Store 642(storeTempPost) 646
+             647:          94 Load 96(g_tTex1di2)
+             648:      6(int) Load 632(coordTemp)
+             649:    7(ivec2) Load 642(storeTempPost)
+                              ImageWrite 647 648 649
+             651:     78(ptr) AccessChain 66 56
+             652:      6(int) Load 651
+                              Store 650(coordTemp) 652
+             654:         105 Load 107(g_tTex1du2)
+             655:      6(int) Load 650(coordTemp)
+             656:  111(ivec4) ImageRead 654 655
+             657:     13(int) CompositeExtract 656 0
+             658:     13(int) CompositeExtract 656 1
+             659:   14(ivec2) CompositeConstruct 657 658
+                              Store 653(storeTempPre) 659
+             661:   14(ivec2) Load 653(storeTempPre)
+                              Store 660(storeTempPost) 661
+             662:   14(ivec2) Load 660(storeTempPost)
+             663:    7(ivec2) CompositeConstruct 67 67
+             664:   14(ivec2) ISub 662 663
+                              Store 660(storeTempPost) 664
+             665:         105 Load 107(g_tTex1du2)
+             666:      6(int) Load 650(coordTemp)
+             667:   14(ivec2) Load 660(storeTempPost)
+                              ImageWrite 665 666 667
+             669:         117 Load 119(g_tTex2df2)
+             672:   42(fvec4) ImageRead 669 671
+             673:   20(float) CompositeExtract 672 0
+             674:   20(float) CompositeExtract 672 1
+             675:   21(fvec2) CompositeConstruct 673 674
+                              Store 668(storeTemp) 675
+             676:          74 Load 76(g_tTex1df2)
+             677:   21(fvec2) Load 668(storeTemp)
+                              ImageWrite 676 67 677
+             682:    681(ptr) AccessChain 679(psout) 56
+                              Store 682 680
+             683:43(PS_OUTPUT) Load 679(psout)
+                              ReturnValue 683
                               FunctionEnd
diff --git a/Test/baseResults/hlsl.wavebroadcast.comp.out b/Test/baseResults/hlsl.wavebroadcast.comp.out
index 573195d..01bc953 100644
--- a/Test/baseResults/hlsl.wavebroadcast.comp.out
+++ b/Test/baseResults/hlsl.wavebroadcast.comp.out
@@ -2299,7 +2299,7 @@
 
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 359
+// Id's are bound by 393
 
                               Capability Shader
                               Capability Float64
@@ -2308,7 +2308,7 @@
                               Capability GroupNonUniformShuffle
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint GLCompute 4  "CSMain" 354
+                              EntryPoint GLCompute 4  "CSMain" 388
                               ExecutionMode 4 LocalSize 32 16 1
                               Source HLSL 500
                               Name 4  "CSMain"
@@ -2322,9 +2322,9 @@
                               Name 22  "data"
                               MemberName 22(data) 0  "@data"
                               Name 24  "data"
-                              Name 352  "dti"
-                              Name 354  "dti"
-                              Name 356  "param"
+                              Name 386  "dti"
+                              Name 388  "dti"
+                              Name 390  "param"
                               MemberDecorate 20(Types) 0 Offset 0
                               MemberDecorate 20(Types) 1 Offset 16
                               MemberDecorate 20(Types) 2 Offset 32
@@ -2334,7 +2334,7 @@
                               Decorate 22(data) BufferBlock
                               Decorate 24(data) DescriptorSet 0
                               Decorate 24(data) Binding 0
-                              Decorate 354(dti) BuiltIn GlobalInvocationId
+                              Decorate 388(dti) BuiltIn GlobalInvocationId
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -2361,32 +2361,34 @@
               36:      6(int) Constant 3
               43:             TypePointer Uniform 6(int)
               52:             TypeVector 6(int) 2
-              73:     14(int) Constant 1
-              76:             TypePointer Uniform 15(ivec4)
-              85:             TypePointer Uniform 14(int)
-              94:             TypeVector 14(int) 2
-             106:             TypeVector 14(int) 3
-             116:     14(int) Constant 2
-             119:             TypePointer Uniform 17(fvec4)
-             128:             TypePointer Uniform 16(float)
-             137:             TypeVector 16(float) 2
-             149:             TypeVector 16(float) 3
-             159:     14(int) Constant 3
-             162:             TypePointer Uniform 19(f64vec4)
-             171:             TypePointer Uniform 18(float64_t)
-             180:             TypeVector 18(float64_t) 2
-             192:             TypeVector 18(float64_t) 3
-             353:             TypePointer Input 7(ivec3)
-        354(dti):    353(ptr) Variable Input
+              59:      6(int) Constant 1
+              74:      6(int) Constant 2
+              79:     14(int) Constant 1
+              82:             TypePointer Uniform 15(ivec4)
+              91:             TypePointer Uniform 14(int)
+             100:             TypeVector 14(int) 2
+             113:             TypeVector 14(int) 3
+             126:     14(int) Constant 2
+             129:             TypePointer Uniform 17(fvec4)
+             138:             TypePointer Uniform 16(float)
+             147:             TypeVector 16(float) 2
+             160:             TypeVector 16(float) 3
+             173:     14(int) Constant 3
+             176:             TypePointer Uniform 19(f64vec4)
+             185:             TypePointer Uniform 18(float64_t)
+             194:             TypeVector 18(float64_t) 2
+             207:             TypeVector 18(float64_t) 3
+             387:             TypePointer Input 7(ivec3)
+        388(dti):    387(ptr) Variable Input
        4(CSMain):           2 Function None 3
                5:             Label
-        352(dti):      8(ptr) Variable Function
-      356(param):      8(ptr) Variable Function
-             355:    7(ivec3) Load 354(dti)
-                              Store 352(dti) 355
-             357:    7(ivec3) Load 352(dti)
-                              Store 356(param) 357
-             358:           2 FunctionCall 11(@CSMain(vu3;) 356(param)
+        386(dti):      8(ptr) Variable Function
+      390(param):      8(ptr) Variable Function
+             389:    7(ivec3) Load 388(dti)
+                              Store 386(dti) 389
+             391:    7(ivec3) Load 386(dti)
+                              Store 390(param) 391
+             392:           2 FunctionCall 11(@CSMain(vu3;) 390(param)
                               Return
                               FunctionEnd
 11(@CSMain(vu3;):           2 Function None 9
@@ -2418,315 +2420,371 @@
               54:   13(ivec4) Load 53
               55:   52(ivec2) VectorShuffle 54 54 0 1
               56:   52(ivec2) GroupNonUniformShuffle 36 55 35
-              57:     32(ptr) AccessChain 24(data) 25 49 25
-              58:   13(ivec4) Load 57
-              59:   13(ivec4) VectorShuffle 58 56 4 5 2 3
-                              Store 57 59
-              60:     27(ptr) AccessChain 10(dti) 26
-              61:      6(int) Load 60
+              57:     43(ptr) AccessChain 24(data) 25 49 25 26
+              58:      6(int) CompositeExtract 56 0
+                              Store 57 58
+              60:     43(ptr) AccessChain 24(data) 25 49 25 59
+              61:      6(int) CompositeExtract 56 1
+                              Store 60 61
               62:     27(ptr) AccessChain 10(dti) 26
               63:      6(int) Load 62
-              64:     32(ptr) AccessChain 24(data) 25 63 25
-              65:   13(ivec4) Load 64
-              66:    7(ivec3) VectorShuffle 65 65 0 1 2
-              67:    7(ivec3) GroupNonUniformShuffle 36 66 35
-              68:     32(ptr) AccessChain 24(data) 25 61 25
-              69:   13(ivec4) Load 68
-              70:   13(ivec4) VectorShuffle 69 67 4 5 6 3
-                              Store 68 70
-              71:     27(ptr) AccessChain 10(dti) 26
-              72:      6(int) Load 71
-              74:     27(ptr) AccessChain 10(dti) 26
-              75:      6(int) Load 74
-              77:     76(ptr) AccessChain 24(data) 25 75 73
-              78:   15(ivec4) Load 77
-              79:   15(ivec4) GroupNonUniformShuffle 36 78 35
-              80:     76(ptr) AccessChain 24(data) 25 72 73
-                              Store 80 79
-              81:     27(ptr) AccessChain 10(dti) 26
-              82:      6(int) Load 81
-              83:     27(ptr) AccessChain 10(dti) 26
-              84:      6(int) Load 83
-              86:     85(ptr) AccessChain 24(data) 25 84 73 26
-              87:     14(int) Load 86
-              88:     14(int) GroupNonUniformShuffle 36 87 35
-              89:     85(ptr) AccessChain 24(data) 25 82 73 26
-                              Store 89 88
-              90:     27(ptr) AccessChain 10(dti) 26
-              91:      6(int) Load 90
-              92:     27(ptr) AccessChain 10(dti) 26
-              93:      6(int) Load 92
-              95:     76(ptr) AccessChain 24(data) 25 93 73
-              96:   15(ivec4) Load 95
-              97:   94(ivec2) VectorShuffle 96 96 0 1
-              98:   94(ivec2) GroupNonUniformShuffle 36 97 35
-              99:     76(ptr) AccessChain 24(data) 25 91 73
-             100:   15(ivec4) Load 99
-             101:   15(ivec4) VectorShuffle 100 98 4 5 2 3
-                              Store 99 101
-             102:     27(ptr) AccessChain 10(dti) 26
-             103:      6(int) Load 102
-             104:     27(ptr) AccessChain 10(dti) 26
-             105:      6(int) Load 104
-             107:     76(ptr) AccessChain 24(data) 25 105 73
-             108:   15(ivec4) Load 107
-             109:  106(ivec3) VectorShuffle 108 108 0 1 2
-             110:  106(ivec3) GroupNonUniformShuffle 36 109 35
-             111:     76(ptr) AccessChain 24(data) 25 103 73
-             112:   15(ivec4) Load 111
-             113:   15(ivec4) VectorShuffle 112 110 4 5 6 3
-                              Store 111 113
-             114:     27(ptr) AccessChain 10(dti) 26
-             115:      6(int) Load 114
-             117:     27(ptr) AccessChain 10(dti) 26
-             118:      6(int) Load 117
-             120:    119(ptr) AccessChain 24(data) 25 118 116
-             121:   17(fvec4) Load 120
-             122:   17(fvec4) GroupNonUniformShuffle 36 121 35
-             123:    119(ptr) AccessChain 24(data) 25 115 116
-                              Store 123 122
+              64:     27(ptr) AccessChain 10(dti) 26
+              65:      6(int) Load 64
+              66:     32(ptr) AccessChain 24(data) 25 65 25
+              67:   13(ivec4) Load 66
+              68:    7(ivec3) VectorShuffle 67 67 0 1 2
+              69:    7(ivec3) GroupNonUniformShuffle 36 68 35
+              70:     43(ptr) AccessChain 24(data) 25 63 25 26
+              71:      6(int) CompositeExtract 69 0
+                              Store 70 71
+              72:     43(ptr) AccessChain 24(data) 25 63 25 59
+              73:      6(int) CompositeExtract 69 1
+                              Store 72 73
+              75:     43(ptr) AccessChain 24(data) 25 63 25 74
+              76:      6(int) CompositeExtract 69 2
+                              Store 75 76
+              77:     27(ptr) AccessChain 10(dti) 26
+              78:      6(int) Load 77
+              80:     27(ptr) AccessChain 10(dti) 26
+              81:      6(int) Load 80
+              83:     82(ptr) AccessChain 24(data) 25 81 79
+              84:   15(ivec4) Load 83
+              85:   15(ivec4) GroupNonUniformShuffle 36 84 35
+              86:     82(ptr) AccessChain 24(data) 25 78 79
+                              Store 86 85
+              87:     27(ptr) AccessChain 10(dti) 26
+              88:      6(int) Load 87
+              89:     27(ptr) AccessChain 10(dti) 26
+              90:      6(int) Load 89
+              92:     91(ptr) AccessChain 24(data) 25 90 79 26
+              93:     14(int) Load 92
+              94:     14(int) GroupNonUniformShuffle 36 93 35
+              95:     91(ptr) AccessChain 24(data) 25 88 79 26
+                              Store 95 94
+              96:     27(ptr) AccessChain 10(dti) 26
+              97:      6(int) Load 96
+              98:     27(ptr) AccessChain 10(dti) 26
+              99:      6(int) Load 98
+             101:     82(ptr) AccessChain 24(data) 25 99 79
+             102:   15(ivec4) Load 101
+             103:  100(ivec2) VectorShuffle 102 102 0 1
+             104:  100(ivec2) GroupNonUniformShuffle 36 103 35
+             105:     91(ptr) AccessChain 24(data) 25 97 79 26
+             106:     14(int) CompositeExtract 104 0
+                              Store 105 106
+             107:     91(ptr) AccessChain 24(data) 25 97 79 59
+             108:     14(int) CompositeExtract 104 1
+                              Store 107 108
+             109:     27(ptr) AccessChain 10(dti) 26
+             110:      6(int) Load 109
+             111:     27(ptr) AccessChain 10(dti) 26
+             112:      6(int) Load 111
+             114:     82(ptr) AccessChain 24(data) 25 112 79
+             115:   15(ivec4) Load 114
+             116:  113(ivec3) VectorShuffle 115 115 0 1 2
+             117:  113(ivec3) GroupNonUniformShuffle 36 116 35
+             118:     91(ptr) AccessChain 24(data) 25 110 79 26
+             119:     14(int) CompositeExtract 117 0
+                              Store 118 119
+             120:     91(ptr) AccessChain 24(data) 25 110 79 59
+             121:     14(int) CompositeExtract 117 1
+                              Store 120 121
+             122:     91(ptr) AccessChain 24(data) 25 110 79 74
+             123:     14(int) CompositeExtract 117 2
+                              Store 122 123
              124:     27(ptr) AccessChain 10(dti) 26
              125:      6(int) Load 124
-             126:     27(ptr) AccessChain 10(dti) 26
-             127:      6(int) Load 126
-             129:    128(ptr) AccessChain 24(data) 25 127 116 26
-             130:   16(float) Load 129
-             131:   16(float) GroupNonUniformShuffle 36 130 35
-             132:    128(ptr) AccessChain 24(data) 25 125 116 26
-                              Store 132 131
-             133:     27(ptr) AccessChain 10(dti) 26
-             134:      6(int) Load 133
-             135:     27(ptr) AccessChain 10(dti) 26
-             136:      6(int) Load 135
-             138:    119(ptr) AccessChain 24(data) 25 136 116
-             139:   17(fvec4) Load 138
-             140:  137(fvec2) VectorShuffle 139 139 0 1
-             141:  137(fvec2) GroupNonUniformShuffle 36 140 35
-             142:    119(ptr) AccessChain 24(data) 25 134 116
-             143:   17(fvec4) Load 142
-             144:   17(fvec4) VectorShuffle 143 141 4 5 2 3
-                              Store 142 144
+             127:     27(ptr) AccessChain 10(dti) 26
+             128:      6(int) Load 127
+             130:    129(ptr) AccessChain 24(data) 25 128 126
+             131:   17(fvec4) Load 130
+             132:   17(fvec4) GroupNonUniformShuffle 36 131 35
+             133:    129(ptr) AccessChain 24(data) 25 125 126
+                              Store 133 132
+             134:     27(ptr) AccessChain 10(dti) 26
+             135:      6(int) Load 134
+             136:     27(ptr) AccessChain 10(dti) 26
+             137:      6(int) Load 136
+             139:    138(ptr) AccessChain 24(data) 25 137 126 26
+             140:   16(float) Load 139
+             141:   16(float) GroupNonUniformShuffle 36 140 35
+             142:    138(ptr) AccessChain 24(data) 25 135 126 26
+                              Store 142 141
+             143:     27(ptr) AccessChain 10(dti) 26
+             144:      6(int) Load 143
              145:     27(ptr) AccessChain 10(dti) 26
              146:      6(int) Load 145
-             147:     27(ptr) AccessChain 10(dti) 26
-             148:      6(int) Load 147
-             150:    119(ptr) AccessChain 24(data) 25 148 116
-             151:   17(fvec4) Load 150
-             152:  149(fvec3) VectorShuffle 151 151 0 1 2
-             153:  149(fvec3) GroupNonUniformShuffle 36 152 35
-             154:    119(ptr) AccessChain 24(data) 25 146 116
-             155:   17(fvec4) Load 154
-             156:   17(fvec4) VectorShuffle 155 153 4 5 6 3
-                              Store 154 156
-             157:     27(ptr) AccessChain 10(dti) 26
-             158:      6(int) Load 157
-             160:     27(ptr) AccessChain 10(dti) 26
-             161:      6(int) Load 160
-             163:    162(ptr) AccessChain 24(data) 25 161 159
-             164: 19(f64vec4) Load 163
-             165: 19(f64vec4) GroupNonUniformBroadcastFirst 36 164
-             166:    162(ptr) AccessChain 24(data) 25 158 159
-                              Store 166 165
-             167:     27(ptr) AccessChain 10(dti) 26
-             168:      6(int) Load 167
-             169:     27(ptr) AccessChain 10(dti) 26
-             170:      6(int) Load 169
-             172:    171(ptr) AccessChain 24(data) 25 170 159 26
-             173:18(float64_t) Load 172
-             174:18(float64_t) GroupNonUniformBroadcastFirst 36 173
-             175:    171(ptr) AccessChain 24(data) 25 168 159 26
-                              Store 175 174
-             176:     27(ptr) AccessChain 10(dti) 26
-             177:      6(int) Load 176
-             178:     27(ptr) AccessChain 10(dti) 26
-             179:      6(int) Load 178
-             181:    162(ptr) AccessChain 24(data) 25 179 159
-             182: 19(f64vec4) Load 181
-             183:180(f64vec2) VectorShuffle 182 182 0 1
-             184:180(f64vec2) GroupNonUniformBroadcastFirst 36 183
-             185:    162(ptr) AccessChain 24(data) 25 177 159
-             186: 19(f64vec4) Load 185
-             187: 19(f64vec4) VectorShuffle 186 184 4 5 2 3
-                              Store 185 187
-             188:     27(ptr) AccessChain 10(dti) 26
-             189:      6(int) Load 188
+             148:    129(ptr) AccessChain 24(data) 25 146 126
+             149:   17(fvec4) Load 148
+             150:  147(fvec2) VectorShuffle 149 149 0 1
+             151:  147(fvec2) GroupNonUniformShuffle 36 150 35
+             152:    138(ptr) AccessChain 24(data) 25 144 126 26
+             153:   16(float) CompositeExtract 151 0
+                              Store 152 153
+             154:    138(ptr) AccessChain 24(data) 25 144 126 59
+             155:   16(float) CompositeExtract 151 1
+                              Store 154 155
+             156:     27(ptr) AccessChain 10(dti) 26
+             157:      6(int) Load 156
+             158:     27(ptr) AccessChain 10(dti) 26
+             159:      6(int) Load 158
+             161:    129(ptr) AccessChain 24(data) 25 159 126
+             162:   17(fvec4) Load 161
+             163:  160(fvec3) VectorShuffle 162 162 0 1 2
+             164:  160(fvec3) GroupNonUniformShuffle 36 163 35
+             165:    138(ptr) AccessChain 24(data) 25 157 126 26
+             166:   16(float) CompositeExtract 164 0
+                              Store 165 166
+             167:    138(ptr) AccessChain 24(data) 25 157 126 59
+             168:   16(float) CompositeExtract 164 1
+                              Store 167 168
+             169:    138(ptr) AccessChain 24(data) 25 157 126 74
+             170:   16(float) CompositeExtract 164 2
+                              Store 169 170
+             171:     27(ptr) AccessChain 10(dti) 26
+             172:      6(int) Load 171
+             174:     27(ptr) AccessChain 10(dti) 26
+             175:      6(int) Load 174
+             177:    176(ptr) AccessChain 24(data) 25 175 173
+             178: 19(f64vec4) Load 177
+             179: 19(f64vec4) GroupNonUniformBroadcastFirst 36 178
+             180:    176(ptr) AccessChain 24(data) 25 172 173
+                              Store 180 179
+             181:     27(ptr) AccessChain 10(dti) 26
+             182:      6(int) Load 181
+             183:     27(ptr) AccessChain 10(dti) 26
+             184:      6(int) Load 183
+             186:    185(ptr) AccessChain 24(data) 25 184 173 26
+             187:18(float64_t) Load 186
+             188:18(float64_t) GroupNonUniformBroadcastFirst 36 187
+             189:    185(ptr) AccessChain 24(data) 25 182 173 26
+                              Store 189 188
              190:     27(ptr) AccessChain 10(dti) 26
              191:      6(int) Load 190
-             193:    162(ptr) AccessChain 24(data) 25 191 159
-             194: 19(f64vec4) Load 193
-             195:192(f64vec3) VectorShuffle 194 194 0 1 2
-             196:192(f64vec3) GroupNonUniformBroadcastFirst 36 195
-             197:    162(ptr) AccessChain 24(data) 25 189 159
-             198: 19(f64vec4) Load 197
-             199: 19(f64vec4) VectorShuffle 198 196 4 5 6 3
-                              Store 197 199
-             200:     27(ptr) AccessChain 10(dti) 26
-             201:      6(int) Load 200
-             202:     27(ptr) AccessChain 10(dti) 26
-             203:      6(int) Load 202
-             204:     32(ptr) AccessChain 24(data) 25 203 25
-             205:   13(ivec4) Load 204
-             206:   13(ivec4) GroupNonUniformBroadcastFirst 36 205
-             207:     32(ptr) AccessChain 24(data) 25 201 25
-                              Store 207 206
-             208:     27(ptr) AccessChain 10(dti) 26
-             209:      6(int) Load 208
-             210:     27(ptr) AccessChain 10(dti) 26
-             211:      6(int) Load 210
-             212:     43(ptr) AccessChain 24(data) 25 211 25 26
-             213:      6(int) Load 212
-             214:      6(int) GroupNonUniformBroadcastFirst 36 213
-             215:     43(ptr) AccessChain 24(data) 25 209 25 26
-                              Store 215 214
-             216:     27(ptr) AccessChain 10(dti) 26
-             217:      6(int) Load 216
+             192:     27(ptr) AccessChain 10(dti) 26
+             193:      6(int) Load 192
+             195:    176(ptr) AccessChain 24(data) 25 193 173
+             196: 19(f64vec4) Load 195
+             197:194(f64vec2) VectorShuffle 196 196 0 1
+             198:194(f64vec2) GroupNonUniformBroadcastFirst 36 197
+             199:    185(ptr) AccessChain 24(data) 25 191 173 26
+             200:18(float64_t) CompositeExtract 198 0
+                              Store 199 200
+             201:    185(ptr) AccessChain 24(data) 25 191 173 59
+             202:18(float64_t) CompositeExtract 198 1
+                              Store 201 202
+             203:     27(ptr) AccessChain 10(dti) 26
+             204:      6(int) Load 203
+             205:     27(ptr) AccessChain 10(dti) 26
+             206:      6(int) Load 205
+             208:    176(ptr) AccessChain 24(data) 25 206 173
+             209: 19(f64vec4) Load 208
+             210:207(f64vec3) VectorShuffle 209 209 0 1 2
+             211:207(f64vec3) GroupNonUniformBroadcastFirst 36 210
+             212:    185(ptr) AccessChain 24(data) 25 204 173 26
+             213:18(float64_t) CompositeExtract 211 0
+                              Store 212 213
+             214:    185(ptr) AccessChain 24(data) 25 204 173 59
+             215:18(float64_t) CompositeExtract 211 1
+                              Store 214 215
+             216:    185(ptr) AccessChain 24(data) 25 204 173 74
+             217:18(float64_t) CompositeExtract 211 2
+                              Store 216 217
              218:     27(ptr) AccessChain 10(dti) 26
              219:      6(int) Load 218
-             220:     32(ptr) AccessChain 24(data) 25 219 25
-             221:   13(ivec4) Load 220
-             222:   52(ivec2) VectorShuffle 221 221 0 1
-             223:   52(ivec2) GroupNonUniformBroadcastFirst 36 222
-             224:     32(ptr) AccessChain 24(data) 25 217 25
-             225:   13(ivec4) Load 224
-             226:   13(ivec4) VectorShuffle 225 223 4 5 2 3
-                              Store 224 226
-             227:     27(ptr) AccessChain 10(dti) 26
-             228:      6(int) Load 227
-             229:     27(ptr) AccessChain 10(dti) 26
-             230:      6(int) Load 229
-             231:     32(ptr) AccessChain 24(data) 25 230 25
-             232:   13(ivec4) Load 231
-             233:    7(ivec3) VectorShuffle 232 232 0 1 2
-             234:    7(ivec3) GroupNonUniformBroadcastFirst 36 233
-             235:     32(ptr) AccessChain 24(data) 25 228 25
-             236:   13(ivec4) Load 235
-             237:   13(ivec4) VectorShuffle 236 234 4 5 6 3
-                              Store 235 237
-             238:     27(ptr) AccessChain 10(dti) 26
-             239:      6(int) Load 238
-             240:     27(ptr) AccessChain 10(dti) 26
-             241:      6(int) Load 240
-             242:     76(ptr) AccessChain 24(data) 25 241 73
-             243:   15(ivec4) Load 242
-             244:   15(ivec4) GroupNonUniformBroadcastFirst 36 243
-             245:     76(ptr) AccessChain 24(data) 25 239 73
-                              Store 245 244
+             220:     27(ptr) AccessChain 10(dti) 26
+             221:      6(int) Load 220
+             222:     32(ptr) AccessChain 24(data) 25 221 25
+             223:   13(ivec4) Load 222
+             224:   13(ivec4) GroupNonUniformBroadcastFirst 36 223
+             225:     32(ptr) AccessChain 24(data) 25 219 25
+                              Store 225 224
+             226:     27(ptr) AccessChain 10(dti) 26
+             227:      6(int) Load 226
+             228:     27(ptr) AccessChain 10(dti) 26
+             229:      6(int) Load 228
+             230:     43(ptr) AccessChain 24(data) 25 229 25 26
+             231:      6(int) Load 230
+             232:      6(int) GroupNonUniformBroadcastFirst 36 231
+             233:     43(ptr) AccessChain 24(data) 25 227 25 26
+                              Store 233 232
+             234:     27(ptr) AccessChain 10(dti) 26
+             235:      6(int) Load 234
+             236:     27(ptr) AccessChain 10(dti) 26
+             237:      6(int) Load 236
+             238:     32(ptr) AccessChain 24(data) 25 237 25
+             239:   13(ivec4) Load 238
+             240:   52(ivec2) VectorShuffle 239 239 0 1
+             241:   52(ivec2) GroupNonUniformBroadcastFirst 36 240
+             242:     43(ptr) AccessChain 24(data) 25 235 25 26
+             243:      6(int) CompositeExtract 241 0
+                              Store 242 243
+             244:     43(ptr) AccessChain 24(data) 25 235 25 59
+             245:      6(int) CompositeExtract 241 1
+                              Store 244 245
              246:     27(ptr) AccessChain 10(dti) 26
              247:      6(int) Load 246
              248:     27(ptr) AccessChain 10(dti) 26
              249:      6(int) Load 248
-             250:     85(ptr) AccessChain 24(data) 25 249 73 26
-             251:     14(int) Load 250
-             252:     14(int) GroupNonUniformBroadcastFirst 36 251
-             253:     85(ptr) AccessChain 24(data) 25 247 73 26
-                              Store 253 252
-             254:     27(ptr) AccessChain 10(dti) 26
-             255:      6(int) Load 254
-             256:     27(ptr) AccessChain 10(dti) 26
-             257:      6(int) Load 256
-             258:     76(ptr) AccessChain 24(data) 25 257 73
-             259:   15(ivec4) Load 258
-             260:   94(ivec2) VectorShuffle 259 259 0 1
-             261:   94(ivec2) GroupNonUniformBroadcastFirst 36 260
-             262:     76(ptr) AccessChain 24(data) 25 255 73
-             263:   15(ivec4) Load 262
-             264:   15(ivec4) VectorShuffle 263 261 4 5 2 3
-                              Store 262 264
-             265:     27(ptr) AccessChain 10(dti) 26
-             266:      6(int) Load 265
-             267:     27(ptr) AccessChain 10(dti) 26
-             268:      6(int) Load 267
-             269:     76(ptr) AccessChain 24(data) 25 268 73
-             270:   15(ivec4) Load 269
-             271:  106(ivec3) VectorShuffle 270 270 0 1 2
-             272:  106(ivec3) GroupNonUniformBroadcastFirst 36 271
-             273:     76(ptr) AccessChain 24(data) 25 266 73
-             274:   15(ivec4) Load 273
-             275:   15(ivec4) VectorShuffle 274 272 4 5 6 3
-                              Store 273 275
+             250:     32(ptr) AccessChain 24(data) 25 249 25
+             251:   13(ivec4) Load 250
+             252:    7(ivec3) VectorShuffle 251 251 0 1 2
+             253:    7(ivec3) GroupNonUniformBroadcastFirst 36 252
+             254:     43(ptr) AccessChain 24(data) 25 247 25 26
+             255:      6(int) CompositeExtract 253 0
+                              Store 254 255
+             256:     43(ptr) AccessChain 24(data) 25 247 25 59
+             257:      6(int) CompositeExtract 253 1
+                              Store 256 257
+             258:     43(ptr) AccessChain 24(data) 25 247 25 74
+             259:      6(int) CompositeExtract 253 2
+                              Store 258 259
+             260:     27(ptr) AccessChain 10(dti) 26
+             261:      6(int) Load 260
+             262:     27(ptr) AccessChain 10(dti) 26
+             263:      6(int) Load 262
+             264:     82(ptr) AccessChain 24(data) 25 263 79
+             265:   15(ivec4) Load 264
+             266:   15(ivec4) GroupNonUniformBroadcastFirst 36 265
+             267:     82(ptr) AccessChain 24(data) 25 261 79
+                              Store 267 266
+             268:     27(ptr) AccessChain 10(dti) 26
+             269:      6(int) Load 268
+             270:     27(ptr) AccessChain 10(dti) 26
+             271:      6(int) Load 270
+             272:     91(ptr) AccessChain 24(data) 25 271 79 26
+             273:     14(int) Load 272
+             274:     14(int) GroupNonUniformBroadcastFirst 36 273
+             275:     91(ptr) AccessChain 24(data) 25 269 79 26
+                              Store 275 274
              276:     27(ptr) AccessChain 10(dti) 26
              277:      6(int) Load 276
              278:     27(ptr) AccessChain 10(dti) 26
              279:      6(int) Load 278
-             280:    119(ptr) AccessChain 24(data) 25 279 116
-             281:   17(fvec4) Load 280
-             282:   17(fvec4) GroupNonUniformBroadcastFirst 36 281
-             283:    119(ptr) AccessChain 24(data) 25 277 116
-                              Store 283 282
-             284:     27(ptr) AccessChain 10(dti) 26
-             285:      6(int) Load 284
-             286:     27(ptr) AccessChain 10(dti) 26
-             287:      6(int) Load 286
-             288:    128(ptr) AccessChain 24(data) 25 287 116 26
-             289:   16(float) Load 288
-             290:   16(float) GroupNonUniformBroadcastFirst 36 289
-             291:    128(ptr) AccessChain 24(data) 25 285 116 26
-                              Store 291 290
-             292:     27(ptr) AccessChain 10(dti) 26
-             293:      6(int) Load 292
-             294:     27(ptr) AccessChain 10(dti) 26
-             295:      6(int) Load 294
-             296:    119(ptr) AccessChain 24(data) 25 295 116
-             297:   17(fvec4) Load 296
-             298:  137(fvec2) VectorShuffle 297 297 0 1
-             299:  137(fvec2) GroupNonUniformBroadcastFirst 36 298
-             300:    119(ptr) AccessChain 24(data) 25 293 116
-             301:   17(fvec4) Load 300
-             302:   17(fvec4) VectorShuffle 301 299 4 5 2 3
-                              Store 300 302
-             303:     27(ptr) AccessChain 10(dti) 26
-             304:      6(int) Load 303
-             305:     27(ptr) AccessChain 10(dti) 26
-             306:      6(int) Load 305
-             307:    119(ptr) AccessChain 24(data) 25 306 116
-             308:   17(fvec4) Load 307
-             309:  149(fvec3) VectorShuffle 308 308 0 1 2
-             310:  149(fvec3) GroupNonUniformBroadcastFirst 36 309
-             311:    119(ptr) AccessChain 24(data) 25 304 116
-             312:   17(fvec4) Load 311
-             313:   17(fvec4) VectorShuffle 312 310 4 5 6 3
-                              Store 311 313
-             314:     27(ptr) AccessChain 10(dti) 26
-             315:      6(int) Load 314
-             316:     27(ptr) AccessChain 10(dti) 26
-             317:      6(int) Load 316
-             318:    162(ptr) AccessChain 24(data) 25 317 159
-             319: 19(f64vec4) Load 318
-             320: 19(f64vec4) GroupNonUniformBroadcastFirst 36 319
-             321:    162(ptr) AccessChain 24(data) 25 315 159
-                              Store 321 320
-             322:     27(ptr) AccessChain 10(dti) 26
-             323:      6(int) Load 322
-             324:     27(ptr) AccessChain 10(dti) 26
-             325:      6(int) Load 324
-             326:    171(ptr) AccessChain 24(data) 25 325 159 26
-             327:18(float64_t) Load 326
-             328:18(float64_t) GroupNonUniformBroadcastFirst 36 327
-             329:    171(ptr) AccessChain 24(data) 25 323 159 26
-                              Store 329 328
+             280:     82(ptr) AccessChain 24(data) 25 279 79
+             281:   15(ivec4) Load 280
+             282:  100(ivec2) VectorShuffle 281 281 0 1
+             283:  100(ivec2) GroupNonUniformBroadcastFirst 36 282
+             284:     91(ptr) AccessChain 24(data) 25 277 79 26
+             285:     14(int) CompositeExtract 283 0
+                              Store 284 285
+             286:     91(ptr) AccessChain 24(data) 25 277 79 59
+             287:     14(int) CompositeExtract 283 1
+                              Store 286 287
+             288:     27(ptr) AccessChain 10(dti) 26
+             289:      6(int) Load 288
+             290:     27(ptr) AccessChain 10(dti) 26
+             291:      6(int) Load 290
+             292:     82(ptr) AccessChain 24(data) 25 291 79
+             293:   15(ivec4) Load 292
+             294:  113(ivec3) VectorShuffle 293 293 0 1 2
+             295:  113(ivec3) GroupNonUniformBroadcastFirst 36 294
+             296:     91(ptr) AccessChain 24(data) 25 289 79 26
+             297:     14(int) CompositeExtract 295 0
+                              Store 296 297
+             298:     91(ptr) AccessChain 24(data) 25 289 79 59
+             299:     14(int) CompositeExtract 295 1
+                              Store 298 299
+             300:     91(ptr) AccessChain 24(data) 25 289 79 74
+             301:     14(int) CompositeExtract 295 2
+                              Store 300 301
+             302:     27(ptr) AccessChain 10(dti) 26
+             303:      6(int) Load 302
+             304:     27(ptr) AccessChain 10(dti) 26
+             305:      6(int) Load 304
+             306:    129(ptr) AccessChain 24(data) 25 305 126
+             307:   17(fvec4) Load 306
+             308:   17(fvec4) GroupNonUniformBroadcastFirst 36 307
+             309:    129(ptr) AccessChain 24(data) 25 303 126
+                              Store 309 308
+             310:     27(ptr) AccessChain 10(dti) 26
+             311:      6(int) Load 310
+             312:     27(ptr) AccessChain 10(dti) 26
+             313:      6(int) Load 312
+             314:    138(ptr) AccessChain 24(data) 25 313 126 26
+             315:   16(float) Load 314
+             316:   16(float) GroupNonUniformBroadcastFirst 36 315
+             317:    138(ptr) AccessChain 24(data) 25 311 126 26
+                              Store 317 316
+             318:     27(ptr) AccessChain 10(dti) 26
+             319:      6(int) Load 318
+             320:     27(ptr) AccessChain 10(dti) 26
+             321:      6(int) Load 320
+             322:    129(ptr) AccessChain 24(data) 25 321 126
+             323:   17(fvec4) Load 322
+             324:  147(fvec2) VectorShuffle 323 323 0 1
+             325:  147(fvec2) GroupNonUniformBroadcastFirst 36 324
+             326:    138(ptr) AccessChain 24(data) 25 319 126 26
+             327:   16(float) CompositeExtract 325 0
+                              Store 326 327
+             328:    138(ptr) AccessChain 24(data) 25 319 126 59
+             329:   16(float) CompositeExtract 325 1
+                              Store 328 329
              330:     27(ptr) AccessChain 10(dti) 26
              331:      6(int) Load 330
              332:     27(ptr) AccessChain 10(dti) 26
              333:      6(int) Load 332
-             334:    162(ptr) AccessChain 24(data) 25 333 159
-             335: 19(f64vec4) Load 334
-             336:180(f64vec2) VectorShuffle 335 335 0 1
-             337:180(f64vec2) GroupNonUniformBroadcastFirst 36 336
-             338:    162(ptr) AccessChain 24(data) 25 331 159
-             339: 19(f64vec4) Load 338
-             340: 19(f64vec4) VectorShuffle 339 337 4 5 2 3
-                              Store 338 340
-             341:     27(ptr) AccessChain 10(dti) 26
-             342:      6(int) Load 341
-             343:     27(ptr) AccessChain 10(dti) 26
-             344:      6(int) Load 343
-             345:    162(ptr) AccessChain 24(data) 25 344 159
-             346: 19(f64vec4) Load 345
-             347:192(f64vec3) VectorShuffle 346 346 0 1 2
-             348:192(f64vec3) GroupNonUniformBroadcastFirst 36 347
-             349:    162(ptr) AccessChain 24(data) 25 342 159
-             350: 19(f64vec4) Load 349
-             351: 19(f64vec4) VectorShuffle 350 348 4 5 6 3
-                              Store 349 351
+             334:    129(ptr) AccessChain 24(data) 25 333 126
+             335:   17(fvec4) Load 334
+             336:  160(fvec3) VectorShuffle 335 335 0 1 2
+             337:  160(fvec3) GroupNonUniformBroadcastFirst 36 336
+             338:    138(ptr) AccessChain 24(data) 25 331 126 26
+             339:   16(float) CompositeExtract 337 0
+                              Store 338 339
+             340:    138(ptr) AccessChain 24(data) 25 331 126 59
+             341:   16(float) CompositeExtract 337 1
+                              Store 340 341
+             342:    138(ptr) AccessChain 24(data) 25 331 126 74
+             343:   16(float) CompositeExtract 337 2
+                              Store 342 343
+             344:     27(ptr) AccessChain 10(dti) 26
+             345:      6(int) Load 344
+             346:     27(ptr) AccessChain 10(dti) 26
+             347:      6(int) Load 346
+             348:    176(ptr) AccessChain 24(data) 25 347 173
+             349: 19(f64vec4) Load 348
+             350: 19(f64vec4) GroupNonUniformBroadcastFirst 36 349
+             351:    176(ptr) AccessChain 24(data) 25 345 173
+                              Store 351 350
+             352:     27(ptr) AccessChain 10(dti) 26
+             353:      6(int) Load 352
+             354:     27(ptr) AccessChain 10(dti) 26
+             355:      6(int) Load 354
+             356:    185(ptr) AccessChain 24(data) 25 355 173 26
+             357:18(float64_t) Load 356
+             358:18(float64_t) GroupNonUniformBroadcastFirst 36 357
+             359:    185(ptr) AccessChain 24(data) 25 353 173 26
+                              Store 359 358
+             360:     27(ptr) AccessChain 10(dti) 26
+             361:      6(int) Load 360
+             362:     27(ptr) AccessChain 10(dti) 26
+             363:      6(int) Load 362
+             364:    176(ptr) AccessChain 24(data) 25 363 173
+             365: 19(f64vec4) Load 364
+             366:194(f64vec2) VectorShuffle 365 365 0 1
+             367:194(f64vec2) GroupNonUniformBroadcastFirst 36 366
+             368:    185(ptr) AccessChain 24(data) 25 361 173 26
+             369:18(float64_t) CompositeExtract 367 0
+                              Store 368 369
+             370:    185(ptr) AccessChain 24(data) 25 361 173 59
+             371:18(float64_t) CompositeExtract 367 1
+                              Store 370 371
+             372:     27(ptr) AccessChain 10(dti) 26
+             373:      6(int) Load 372
+             374:     27(ptr) AccessChain 10(dti) 26
+             375:      6(int) Load 374
+             376:    176(ptr) AccessChain 24(data) 25 375 173
+             377: 19(f64vec4) Load 376
+             378:207(f64vec3) VectorShuffle 377 377 0 1 2
+             379:207(f64vec3) GroupNonUniformBroadcastFirst 36 378
+             380:    185(ptr) AccessChain 24(data) 25 373 173 26
+             381:18(float64_t) CompositeExtract 379 0
+                              Store 380 381
+             382:    185(ptr) AccessChain 24(data) 25 373 173 59
+             383:18(float64_t) CompositeExtract 379 1
+                              Store 382 383
+             384:    185(ptr) AccessChain 24(data) 25 373 173 74
+             385:18(float64_t) CompositeExtract 379 2
+                              Store 384 385
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/hlsl.waveprefix.comp.out b/Test/baseResults/hlsl.waveprefix.comp.out
index 1d79f17..cc4737e 100644
--- a/Test/baseResults/hlsl.waveprefix.comp.out
+++ b/Test/baseResults/hlsl.waveprefix.comp.out
@@ -2323,7 +2323,7 @@
 
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 369
+// Id's are bound by 403
 
                               Capability Shader
                               Capability Float64
@@ -2332,7 +2332,7 @@
                               Capability GroupNonUniformBallot
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint GLCompute 4  "CSMain" 364
+                              EntryPoint GLCompute 4  "CSMain" 398
                               ExecutionMode 4 LocalSize 32 16 1
                               Source HLSL 500
                               Name 4  "CSMain"
@@ -2346,9 +2346,9 @@
                               Name 22  "data"
                               MemberName 22(data) 0  "@data"
                               Name 24  "data"
-                              Name 362  "dti"
-                              Name 364  "dti"
-                              Name 366  "param"
+                              Name 396  "dti"
+                              Name 398  "dti"
+                              Name 400  "param"
                               MemberDecorate 20(Types) 0 Offset 0
                               MemberDecorate 20(Types) 1 Offset 16
                               MemberDecorate 20(Types) 2 Offset 32
@@ -2358,7 +2358,7 @@
                               Decorate 22(data) BufferBlock
                               Decorate 24(data) DescriptorSet 0
                               Decorate 24(data) Binding 0
-                              Decorate 364(dti) BuiltIn GlobalInvocationId
+                              Decorate 398(dti) BuiltIn GlobalInvocationId
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -2384,33 +2384,35 @@
               35:      6(int) Constant 3
               42:             TypePointer Uniform 6(int)
               51:             TypeVector 6(int) 2
-              72:     14(int) Constant 1
-              75:             TypePointer Uniform 15(ivec4)
-              84:             TypePointer Uniform 14(int)
-              93:             TypeVector 14(int) 2
-             105:             TypeVector 14(int) 3
-             115:     14(int) Constant 2
-             118:             TypePointer Uniform 17(fvec4)
-             127:             TypePointer Uniform 16(float)
-             136:             TypeVector 16(float) 2
-             148:             TypeVector 16(float) 3
-             158:     14(int) Constant 3
-             161:             TypePointer Uniform 19(f64vec4)
-             170:             TypePointer Uniform 18(float64_t)
-             179:             TypeVector 18(float64_t) 2
-             191:             TypeVector 18(float64_t) 3
-             357:             TypeBool
-             363:             TypePointer Input 7(ivec3)
-        364(dti):    363(ptr) Variable Input
+              58:      6(int) Constant 1
+              73:      6(int) Constant 2
+              78:     14(int) Constant 1
+              81:             TypePointer Uniform 15(ivec4)
+              90:             TypePointer Uniform 14(int)
+              99:             TypeVector 14(int) 2
+             112:             TypeVector 14(int) 3
+             125:     14(int) Constant 2
+             128:             TypePointer Uniform 17(fvec4)
+             137:             TypePointer Uniform 16(float)
+             146:             TypeVector 16(float) 2
+             159:             TypeVector 16(float) 3
+             172:     14(int) Constant 3
+             175:             TypePointer Uniform 19(f64vec4)
+             184:             TypePointer Uniform 18(float64_t)
+             193:             TypeVector 18(float64_t) 2
+             206:             TypeVector 18(float64_t) 3
+             391:             TypeBool
+             397:             TypePointer Input 7(ivec3)
+        398(dti):    397(ptr) Variable Input
        4(CSMain):           2 Function None 3
                5:             Label
-        362(dti):      8(ptr) Variable Function
-      366(param):      8(ptr) Variable Function
-             365:    7(ivec3) Load 364(dti)
-                              Store 362(dti) 365
-             367:    7(ivec3) Load 362(dti)
-                              Store 366(param) 367
-             368:           2 FunctionCall 11(@CSMain(vu3;) 366(param)
+        396(dti):      8(ptr) Variable Function
+      400(param):      8(ptr) Variable Function
+             399:    7(ivec3) Load 398(dti)
+                              Store 396(dti) 399
+             401:    7(ivec3) Load 396(dti)
+                              Store 400(param) 401
+             402:           2 FunctionCall 11(@CSMain(vu3;) 400(param)
                               Return
                               FunctionEnd
 11(@CSMain(vu3;):           2 Function None 9
@@ -2442,326 +2444,382 @@
               53:   13(ivec4) Load 52
               54:   51(ivec2) VectorShuffle 53 53 0 1
               55:   51(ivec2) GroupNonUniformIAdd 35 InclusiveScan 54
-              56:     32(ptr) AccessChain 24(data) 25 48 25
-              57:   13(ivec4) Load 56
-              58:   13(ivec4) VectorShuffle 57 55 4 5 2 3
-                              Store 56 58
-              59:     27(ptr) AccessChain 10(dti) 26
-              60:      6(int) Load 59
+              56:     42(ptr) AccessChain 24(data) 25 48 25 26
+              57:      6(int) CompositeExtract 55 0
+                              Store 56 57
+              59:     42(ptr) AccessChain 24(data) 25 48 25 58
+              60:      6(int) CompositeExtract 55 1
+                              Store 59 60
               61:     27(ptr) AccessChain 10(dti) 26
               62:      6(int) Load 61
-              63:     32(ptr) AccessChain 24(data) 25 62 25
-              64:   13(ivec4) Load 63
-              65:    7(ivec3) VectorShuffle 64 64 0 1 2
-              66:    7(ivec3) GroupNonUniformIAdd 35 InclusiveScan 65
-              67:     32(ptr) AccessChain 24(data) 25 60 25
-              68:   13(ivec4) Load 67
-              69:   13(ivec4) VectorShuffle 68 66 4 5 6 3
-                              Store 67 69
-              70:     27(ptr) AccessChain 10(dti) 26
-              71:      6(int) Load 70
-              73:     27(ptr) AccessChain 10(dti) 26
-              74:      6(int) Load 73
-              76:     75(ptr) AccessChain 24(data) 25 74 72
-              77:   15(ivec4) Load 76
-              78:   15(ivec4) GroupNonUniformIAdd 35 InclusiveScan 77
-              79:     75(ptr) AccessChain 24(data) 25 71 72
-                              Store 79 78
-              80:     27(ptr) AccessChain 10(dti) 26
-              81:      6(int) Load 80
-              82:     27(ptr) AccessChain 10(dti) 26
-              83:      6(int) Load 82
-              85:     84(ptr) AccessChain 24(data) 25 83 72 26
-              86:     14(int) Load 85
-              87:     14(int) GroupNonUniformIAdd 35 InclusiveScan 86
-              88:     84(ptr) AccessChain 24(data) 25 81 72 26
-                              Store 88 87
-              89:     27(ptr) AccessChain 10(dti) 26
-              90:      6(int) Load 89
-              91:     27(ptr) AccessChain 10(dti) 26
-              92:      6(int) Load 91
-              94:     75(ptr) AccessChain 24(data) 25 92 72
-              95:   15(ivec4) Load 94
-              96:   93(ivec2) VectorShuffle 95 95 0 1
-              97:   93(ivec2) GroupNonUniformIAdd 35 InclusiveScan 96
-              98:     75(ptr) AccessChain 24(data) 25 90 72
-              99:   15(ivec4) Load 98
-             100:   15(ivec4) VectorShuffle 99 97 4 5 2 3
-                              Store 98 100
-             101:     27(ptr) AccessChain 10(dti) 26
-             102:      6(int) Load 101
-             103:     27(ptr) AccessChain 10(dti) 26
-             104:      6(int) Load 103
-             106:     75(ptr) AccessChain 24(data) 25 104 72
-             107:   15(ivec4) Load 106
-             108:  105(ivec3) VectorShuffle 107 107 0 1 2
-             109:  105(ivec3) GroupNonUniformIAdd 35 InclusiveScan 108
-             110:     75(ptr) AccessChain 24(data) 25 102 72
-             111:   15(ivec4) Load 110
-             112:   15(ivec4) VectorShuffle 111 109 4 5 6 3
-                              Store 110 112
-             113:     27(ptr) AccessChain 10(dti) 26
-             114:      6(int) Load 113
-             116:     27(ptr) AccessChain 10(dti) 26
-             117:      6(int) Load 116
-             119:    118(ptr) AccessChain 24(data) 25 117 115
-             120:   17(fvec4) Load 119
-             121:   17(fvec4) GroupNonUniformFAdd 35 InclusiveScan 120
-             122:    118(ptr) AccessChain 24(data) 25 114 115
-                              Store 122 121
+              63:     27(ptr) AccessChain 10(dti) 26
+              64:      6(int) Load 63
+              65:     32(ptr) AccessChain 24(data) 25 64 25
+              66:   13(ivec4) Load 65
+              67:    7(ivec3) VectorShuffle 66 66 0 1 2
+              68:    7(ivec3) GroupNonUniformIAdd 35 InclusiveScan 67
+              69:     42(ptr) AccessChain 24(data) 25 62 25 26
+              70:      6(int) CompositeExtract 68 0
+                              Store 69 70
+              71:     42(ptr) AccessChain 24(data) 25 62 25 58
+              72:      6(int) CompositeExtract 68 1
+                              Store 71 72
+              74:     42(ptr) AccessChain 24(data) 25 62 25 73
+              75:      6(int) CompositeExtract 68 2
+                              Store 74 75
+              76:     27(ptr) AccessChain 10(dti) 26
+              77:      6(int) Load 76
+              79:     27(ptr) AccessChain 10(dti) 26
+              80:      6(int) Load 79
+              82:     81(ptr) AccessChain 24(data) 25 80 78
+              83:   15(ivec4) Load 82
+              84:   15(ivec4) GroupNonUniformIAdd 35 InclusiveScan 83
+              85:     81(ptr) AccessChain 24(data) 25 77 78
+                              Store 85 84
+              86:     27(ptr) AccessChain 10(dti) 26
+              87:      6(int) Load 86
+              88:     27(ptr) AccessChain 10(dti) 26
+              89:      6(int) Load 88
+              91:     90(ptr) AccessChain 24(data) 25 89 78 26
+              92:     14(int) Load 91
+              93:     14(int) GroupNonUniformIAdd 35 InclusiveScan 92
+              94:     90(ptr) AccessChain 24(data) 25 87 78 26
+                              Store 94 93
+              95:     27(ptr) AccessChain 10(dti) 26
+              96:      6(int) Load 95
+              97:     27(ptr) AccessChain 10(dti) 26
+              98:      6(int) Load 97
+             100:     81(ptr) AccessChain 24(data) 25 98 78
+             101:   15(ivec4) Load 100
+             102:   99(ivec2) VectorShuffle 101 101 0 1
+             103:   99(ivec2) GroupNonUniformIAdd 35 InclusiveScan 102
+             104:     90(ptr) AccessChain 24(data) 25 96 78 26
+             105:     14(int) CompositeExtract 103 0
+                              Store 104 105
+             106:     90(ptr) AccessChain 24(data) 25 96 78 58
+             107:     14(int) CompositeExtract 103 1
+                              Store 106 107
+             108:     27(ptr) AccessChain 10(dti) 26
+             109:      6(int) Load 108
+             110:     27(ptr) AccessChain 10(dti) 26
+             111:      6(int) Load 110
+             113:     81(ptr) AccessChain 24(data) 25 111 78
+             114:   15(ivec4) Load 113
+             115:  112(ivec3) VectorShuffle 114 114 0 1 2
+             116:  112(ivec3) GroupNonUniformIAdd 35 InclusiveScan 115
+             117:     90(ptr) AccessChain 24(data) 25 109 78 26
+             118:     14(int) CompositeExtract 116 0
+                              Store 117 118
+             119:     90(ptr) AccessChain 24(data) 25 109 78 58
+             120:     14(int) CompositeExtract 116 1
+                              Store 119 120
+             121:     90(ptr) AccessChain 24(data) 25 109 78 73
+             122:     14(int) CompositeExtract 116 2
+                              Store 121 122
              123:     27(ptr) AccessChain 10(dti) 26
              124:      6(int) Load 123
-             125:     27(ptr) AccessChain 10(dti) 26
-             126:      6(int) Load 125
-             128:    127(ptr) AccessChain 24(data) 25 126 115 26
-             129:   16(float) Load 128
-             130:   16(float) GroupNonUniformFAdd 35 InclusiveScan 129
-             131:    127(ptr) AccessChain 24(data) 25 124 115 26
-                              Store 131 130
-             132:     27(ptr) AccessChain 10(dti) 26
-             133:      6(int) Load 132
-             134:     27(ptr) AccessChain 10(dti) 26
-             135:      6(int) Load 134
-             137:    118(ptr) AccessChain 24(data) 25 135 115
-             138:   17(fvec4) Load 137
-             139:  136(fvec2) VectorShuffle 138 138 0 1
-             140:  136(fvec2) GroupNonUniformFAdd 35 InclusiveScan 139
-             141:    118(ptr) AccessChain 24(data) 25 133 115
-             142:   17(fvec4) Load 141
-             143:   17(fvec4) VectorShuffle 142 140 4 5 2 3
-                              Store 141 143
+             126:     27(ptr) AccessChain 10(dti) 26
+             127:      6(int) Load 126
+             129:    128(ptr) AccessChain 24(data) 25 127 125
+             130:   17(fvec4) Load 129
+             131:   17(fvec4) GroupNonUniformFAdd 35 InclusiveScan 130
+             132:    128(ptr) AccessChain 24(data) 25 124 125
+                              Store 132 131
+             133:     27(ptr) AccessChain 10(dti) 26
+             134:      6(int) Load 133
+             135:     27(ptr) AccessChain 10(dti) 26
+             136:      6(int) Load 135
+             138:    137(ptr) AccessChain 24(data) 25 136 125 26
+             139:   16(float) Load 138
+             140:   16(float) GroupNonUniformFAdd 35 InclusiveScan 139
+             141:    137(ptr) AccessChain 24(data) 25 134 125 26
+                              Store 141 140
+             142:     27(ptr) AccessChain 10(dti) 26
+             143:      6(int) Load 142
              144:     27(ptr) AccessChain 10(dti) 26
              145:      6(int) Load 144
-             146:     27(ptr) AccessChain 10(dti) 26
-             147:      6(int) Load 146
-             149:    118(ptr) AccessChain 24(data) 25 147 115
-             150:   17(fvec4) Load 149
-             151:  148(fvec3) VectorShuffle 150 150 0 1 2
-             152:  148(fvec3) GroupNonUniformFAdd 35 InclusiveScan 151
-             153:    118(ptr) AccessChain 24(data) 25 145 115
-             154:   17(fvec4) Load 153
-             155:   17(fvec4) VectorShuffle 154 152 4 5 6 3
-                              Store 153 155
-             156:     27(ptr) AccessChain 10(dti) 26
-             157:      6(int) Load 156
-             159:     27(ptr) AccessChain 10(dti) 26
-             160:      6(int) Load 159
-             162:    161(ptr) AccessChain 24(data) 25 160 158
-             163: 19(f64vec4) Load 162
-             164: 19(f64vec4) GroupNonUniformFAdd 35 InclusiveScan 163
-             165:    161(ptr) AccessChain 24(data) 25 157 158
-                              Store 165 164
-             166:     27(ptr) AccessChain 10(dti) 26
-             167:      6(int) Load 166
-             168:     27(ptr) AccessChain 10(dti) 26
-             169:      6(int) Load 168
-             171:    170(ptr) AccessChain 24(data) 25 169 158 26
-             172:18(float64_t) Load 171
-             173:18(float64_t) GroupNonUniformFAdd 35 InclusiveScan 172
-             174:    170(ptr) AccessChain 24(data) 25 167 158 26
-                              Store 174 173
-             175:     27(ptr) AccessChain 10(dti) 26
-             176:      6(int) Load 175
-             177:     27(ptr) AccessChain 10(dti) 26
-             178:      6(int) Load 177
-             180:    161(ptr) AccessChain 24(data) 25 178 158
-             181: 19(f64vec4) Load 180
-             182:179(f64vec2) VectorShuffle 181 181 0 1
-             183:179(f64vec2) GroupNonUniformFAdd 35 InclusiveScan 182
-             184:    161(ptr) AccessChain 24(data) 25 176 158
-             185: 19(f64vec4) Load 184
-             186: 19(f64vec4) VectorShuffle 185 183 4 5 2 3
-                              Store 184 186
-             187:     27(ptr) AccessChain 10(dti) 26
-             188:      6(int) Load 187
+             147:    128(ptr) AccessChain 24(data) 25 145 125
+             148:   17(fvec4) Load 147
+             149:  146(fvec2) VectorShuffle 148 148 0 1
+             150:  146(fvec2) GroupNonUniformFAdd 35 InclusiveScan 149
+             151:    137(ptr) AccessChain 24(data) 25 143 125 26
+             152:   16(float) CompositeExtract 150 0
+                              Store 151 152
+             153:    137(ptr) AccessChain 24(data) 25 143 125 58
+             154:   16(float) CompositeExtract 150 1
+                              Store 153 154
+             155:     27(ptr) AccessChain 10(dti) 26
+             156:      6(int) Load 155
+             157:     27(ptr) AccessChain 10(dti) 26
+             158:      6(int) Load 157
+             160:    128(ptr) AccessChain 24(data) 25 158 125
+             161:   17(fvec4) Load 160
+             162:  159(fvec3) VectorShuffle 161 161 0 1 2
+             163:  159(fvec3) GroupNonUniformFAdd 35 InclusiveScan 162
+             164:    137(ptr) AccessChain 24(data) 25 156 125 26
+             165:   16(float) CompositeExtract 163 0
+                              Store 164 165
+             166:    137(ptr) AccessChain 24(data) 25 156 125 58
+             167:   16(float) CompositeExtract 163 1
+                              Store 166 167
+             168:    137(ptr) AccessChain 24(data) 25 156 125 73
+             169:   16(float) CompositeExtract 163 2
+                              Store 168 169
+             170:     27(ptr) AccessChain 10(dti) 26
+             171:      6(int) Load 170
+             173:     27(ptr) AccessChain 10(dti) 26
+             174:      6(int) Load 173
+             176:    175(ptr) AccessChain 24(data) 25 174 172
+             177: 19(f64vec4) Load 176
+             178: 19(f64vec4) GroupNonUniformFAdd 35 InclusiveScan 177
+             179:    175(ptr) AccessChain 24(data) 25 171 172
+                              Store 179 178
+             180:     27(ptr) AccessChain 10(dti) 26
+             181:      6(int) Load 180
+             182:     27(ptr) AccessChain 10(dti) 26
+             183:      6(int) Load 182
+             185:    184(ptr) AccessChain 24(data) 25 183 172 26
+             186:18(float64_t) Load 185
+             187:18(float64_t) GroupNonUniformFAdd 35 InclusiveScan 186
+             188:    184(ptr) AccessChain 24(data) 25 181 172 26
+                              Store 188 187
              189:     27(ptr) AccessChain 10(dti) 26
              190:      6(int) Load 189
-             192:    161(ptr) AccessChain 24(data) 25 190 158
-             193: 19(f64vec4) Load 192
-             194:191(f64vec3) VectorShuffle 193 193 0 1 2
-             195:191(f64vec3) GroupNonUniformFAdd 35 InclusiveScan 194
-             196:    161(ptr) AccessChain 24(data) 25 188 158
-             197: 19(f64vec4) Load 196
-             198: 19(f64vec4) VectorShuffle 197 195 4 5 6 3
-                              Store 196 198
-             199:     27(ptr) AccessChain 10(dti) 26
-             200:      6(int) Load 199
-             201:     27(ptr) AccessChain 10(dti) 26
-             202:      6(int) Load 201
-             203:     32(ptr) AccessChain 24(data) 25 202 25
-             204:   13(ivec4) Load 203
-             205:   13(ivec4) GroupNonUniformIMul 35 InclusiveScan 204
-             206:     32(ptr) AccessChain 24(data) 25 200 25
-                              Store 206 205
-             207:     27(ptr) AccessChain 10(dti) 26
-             208:      6(int) Load 207
-             209:     27(ptr) AccessChain 10(dti) 26
-             210:      6(int) Load 209
-             211:     42(ptr) AccessChain 24(data) 25 210 25 26
-             212:      6(int) Load 211
-             213:      6(int) GroupNonUniformIMul 35 InclusiveScan 212
-             214:     42(ptr) AccessChain 24(data) 25 208 25 26
-                              Store 214 213
-             215:     27(ptr) AccessChain 10(dti) 26
-             216:      6(int) Load 215
+             191:     27(ptr) AccessChain 10(dti) 26
+             192:      6(int) Load 191
+             194:    175(ptr) AccessChain 24(data) 25 192 172
+             195: 19(f64vec4) Load 194
+             196:193(f64vec2) VectorShuffle 195 195 0 1
+             197:193(f64vec2) GroupNonUniformFAdd 35 InclusiveScan 196
+             198:    184(ptr) AccessChain 24(data) 25 190 172 26
+             199:18(float64_t) CompositeExtract 197 0
+                              Store 198 199
+             200:    184(ptr) AccessChain 24(data) 25 190 172 58
+             201:18(float64_t) CompositeExtract 197 1
+                              Store 200 201
+             202:     27(ptr) AccessChain 10(dti) 26
+             203:      6(int) Load 202
+             204:     27(ptr) AccessChain 10(dti) 26
+             205:      6(int) Load 204
+             207:    175(ptr) AccessChain 24(data) 25 205 172
+             208: 19(f64vec4) Load 207
+             209:206(f64vec3) VectorShuffle 208 208 0 1 2
+             210:206(f64vec3) GroupNonUniformFAdd 35 InclusiveScan 209
+             211:    184(ptr) AccessChain 24(data) 25 203 172 26
+             212:18(float64_t) CompositeExtract 210 0
+                              Store 211 212
+             213:    184(ptr) AccessChain 24(data) 25 203 172 58
+             214:18(float64_t) CompositeExtract 210 1
+                              Store 213 214
+             215:    184(ptr) AccessChain 24(data) 25 203 172 73
+             216:18(float64_t) CompositeExtract 210 2
+                              Store 215 216
              217:     27(ptr) AccessChain 10(dti) 26
              218:      6(int) Load 217
-             219:     32(ptr) AccessChain 24(data) 25 218 25
-             220:   13(ivec4) Load 219
-             221:   51(ivec2) VectorShuffle 220 220 0 1
-             222:   51(ivec2) GroupNonUniformIMul 35 InclusiveScan 221
-             223:     32(ptr) AccessChain 24(data) 25 216 25
-             224:   13(ivec4) Load 223
-             225:   13(ivec4) VectorShuffle 224 222 4 5 2 3
-                              Store 223 225
-             226:     27(ptr) AccessChain 10(dti) 26
-             227:      6(int) Load 226
-             228:     27(ptr) AccessChain 10(dti) 26
-             229:      6(int) Load 228
-             230:     32(ptr) AccessChain 24(data) 25 229 25
-             231:   13(ivec4) Load 230
-             232:    7(ivec3) VectorShuffle 231 231 0 1 2
-             233:    7(ivec3) GroupNonUniformIMul 35 InclusiveScan 232
-             234:     32(ptr) AccessChain 24(data) 25 227 25
-             235:   13(ivec4) Load 234
-             236:   13(ivec4) VectorShuffle 235 233 4 5 6 3
-                              Store 234 236
-             237:     27(ptr) AccessChain 10(dti) 26
-             238:      6(int) Load 237
-             239:     27(ptr) AccessChain 10(dti) 26
-             240:      6(int) Load 239
-             241:     75(ptr) AccessChain 24(data) 25 240 72
-             242:   15(ivec4) Load 241
-             243:   15(ivec4) GroupNonUniformIMul 35 InclusiveScan 242
-             244:     75(ptr) AccessChain 24(data) 25 238 72
-                              Store 244 243
+             219:     27(ptr) AccessChain 10(dti) 26
+             220:      6(int) Load 219
+             221:     32(ptr) AccessChain 24(data) 25 220 25
+             222:   13(ivec4) Load 221
+             223:   13(ivec4) GroupNonUniformIMul 35 InclusiveScan 222
+             224:     32(ptr) AccessChain 24(data) 25 218 25
+                              Store 224 223
+             225:     27(ptr) AccessChain 10(dti) 26
+             226:      6(int) Load 225
+             227:     27(ptr) AccessChain 10(dti) 26
+             228:      6(int) Load 227
+             229:     42(ptr) AccessChain 24(data) 25 228 25 26
+             230:      6(int) Load 229
+             231:      6(int) GroupNonUniformIMul 35 InclusiveScan 230
+             232:     42(ptr) AccessChain 24(data) 25 226 25 26
+                              Store 232 231
+             233:     27(ptr) AccessChain 10(dti) 26
+             234:      6(int) Load 233
+             235:     27(ptr) AccessChain 10(dti) 26
+             236:      6(int) Load 235
+             237:     32(ptr) AccessChain 24(data) 25 236 25
+             238:   13(ivec4) Load 237
+             239:   51(ivec2) VectorShuffle 238 238 0 1
+             240:   51(ivec2) GroupNonUniformIMul 35 InclusiveScan 239
+             241:     42(ptr) AccessChain 24(data) 25 234 25 26
+             242:      6(int) CompositeExtract 240 0
+                              Store 241 242
+             243:     42(ptr) AccessChain 24(data) 25 234 25 58
+             244:      6(int) CompositeExtract 240 1
+                              Store 243 244
              245:     27(ptr) AccessChain 10(dti) 26
              246:      6(int) Load 245
              247:     27(ptr) AccessChain 10(dti) 26
              248:      6(int) Load 247
-             249:     84(ptr) AccessChain 24(data) 25 248 72 26
-             250:     14(int) Load 249
-             251:     14(int) GroupNonUniformIMul 35 InclusiveScan 250
-             252:     84(ptr) AccessChain 24(data) 25 246 72 26
-                              Store 252 251
-             253:     27(ptr) AccessChain 10(dti) 26
-             254:      6(int) Load 253
-             255:     27(ptr) AccessChain 10(dti) 26
-             256:      6(int) Load 255
-             257:     75(ptr) AccessChain 24(data) 25 256 72
-             258:   15(ivec4) Load 257
-             259:   93(ivec2) VectorShuffle 258 258 0 1
-             260:   93(ivec2) GroupNonUniformIMul 35 InclusiveScan 259
-             261:     75(ptr) AccessChain 24(data) 25 254 72
-             262:   15(ivec4) Load 261
-             263:   15(ivec4) VectorShuffle 262 260 4 5 2 3
-                              Store 261 263
-             264:     27(ptr) AccessChain 10(dti) 26
-             265:      6(int) Load 264
-             266:     27(ptr) AccessChain 10(dti) 26
-             267:      6(int) Load 266
-             268:     75(ptr) AccessChain 24(data) 25 267 72
-             269:   15(ivec4) Load 268
-             270:  105(ivec3) VectorShuffle 269 269 0 1 2
-             271:  105(ivec3) GroupNonUniformIMul 35 InclusiveScan 270
-             272:     75(ptr) AccessChain 24(data) 25 265 72
-             273:   15(ivec4) Load 272
-             274:   15(ivec4) VectorShuffle 273 271 4 5 6 3
-                              Store 272 274
+             249:     32(ptr) AccessChain 24(data) 25 248 25
+             250:   13(ivec4) Load 249
+             251:    7(ivec3) VectorShuffle 250 250 0 1 2
+             252:    7(ivec3) GroupNonUniformIMul 35 InclusiveScan 251
+             253:     42(ptr) AccessChain 24(data) 25 246 25 26
+             254:      6(int) CompositeExtract 252 0
+                              Store 253 254
+             255:     42(ptr) AccessChain 24(data) 25 246 25 58
+             256:      6(int) CompositeExtract 252 1
+                              Store 255 256
+             257:     42(ptr) AccessChain 24(data) 25 246 25 73
+             258:      6(int) CompositeExtract 252 2
+                              Store 257 258
+             259:     27(ptr) AccessChain 10(dti) 26
+             260:      6(int) Load 259
+             261:     27(ptr) AccessChain 10(dti) 26
+             262:      6(int) Load 261
+             263:     81(ptr) AccessChain 24(data) 25 262 78
+             264:   15(ivec4) Load 263
+             265:   15(ivec4) GroupNonUniformIMul 35 InclusiveScan 264
+             266:     81(ptr) AccessChain 24(data) 25 260 78
+                              Store 266 265
+             267:     27(ptr) AccessChain 10(dti) 26
+             268:      6(int) Load 267
+             269:     27(ptr) AccessChain 10(dti) 26
+             270:      6(int) Load 269
+             271:     90(ptr) AccessChain 24(data) 25 270 78 26
+             272:     14(int) Load 271
+             273:     14(int) GroupNonUniformIMul 35 InclusiveScan 272
+             274:     90(ptr) AccessChain 24(data) 25 268 78 26
+                              Store 274 273
              275:     27(ptr) AccessChain 10(dti) 26
              276:      6(int) Load 275
              277:     27(ptr) AccessChain 10(dti) 26
              278:      6(int) Load 277
-             279:    118(ptr) AccessChain 24(data) 25 278 115
-             280:   17(fvec4) Load 279
-             281:   17(fvec4) GroupNonUniformFMul 35 InclusiveScan 280
-             282:    118(ptr) AccessChain 24(data) 25 276 115
-                              Store 282 281
-             283:     27(ptr) AccessChain 10(dti) 26
-             284:      6(int) Load 283
-             285:     27(ptr) AccessChain 10(dti) 26
-             286:      6(int) Load 285
-             287:    127(ptr) AccessChain 24(data) 25 286 115 26
-             288:   16(float) Load 287
-             289:   16(float) GroupNonUniformFMul 35 InclusiveScan 288
-             290:    127(ptr) AccessChain 24(data) 25 284 115 26
-                              Store 290 289
-             291:     27(ptr) AccessChain 10(dti) 26
-             292:      6(int) Load 291
-             293:     27(ptr) AccessChain 10(dti) 26
-             294:      6(int) Load 293
-             295:    118(ptr) AccessChain 24(data) 25 294 115
-             296:   17(fvec4) Load 295
-             297:  136(fvec2) VectorShuffle 296 296 0 1
-             298:  136(fvec2) GroupNonUniformFMul 35 InclusiveScan 297
-             299:    118(ptr) AccessChain 24(data) 25 292 115
-             300:   17(fvec4) Load 299
-             301:   17(fvec4) VectorShuffle 300 298 4 5 2 3
-                              Store 299 301
-             302:     27(ptr) AccessChain 10(dti) 26
-             303:      6(int) Load 302
-             304:     27(ptr) AccessChain 10(dti) 26
-             305:      6(int) Load 304
-             306:    118(ptr) AccessChain 24(data) 25 305 115
-             307:   17(fvec4) Load 306
-             308:  148(fvec3) VectorShuffle 307 307 0 1 2
-             309:  148(fvec3) GroupNonUniformFMul 35 InclusiveScan 308
-             310:    118(ptr) AccessChain 24(data) 25 303 115
-             311:   17(fvec4) Load 310
-             312:   17(fvec4) VectorShuffle 311 309 4 5 6 3
-                              Store 310 312
-             313:     27(ptr) AccessChain 10(dti) 26
-             314:      6(int) Load 313
-             315:     27(ptr) AccessChain 10(dti) 26
-             316:      6(int) Load 315
-             317:    161(ptr) AccessChain 24(data) 25 316 158
-             318: 19(f64vec4) Load 317
-             319: 19(f64vec4) GroupNonUniformFMul 35 InclusiveScan 318
-             320:    161(ptr) AccessChain 24(data) 25 314 158
-                              Store 320 319
-             321:     27(ptr) AccessChain 10(dti) 26
-             322:      6(int) Load 321
-             323:     27(ptr) AccessChain 10(dti) 26
-             324:      6(int) Load 323
-             325:    170(ptr) AccessChain 24(data) 25 324 158 26
-             326:18(float64_t) Load 325
-             327:18(float64_t) GroupNonUniformFMul 35 InclusiveScan 326
-             328:    170(ptr) AccessChain 24(data) 25 322 158 26
-                              Store 328 327
+             279:     81(ptr) AccessChain 24(data) 25 278 78
+             280:   15(ivec4) Load 279
+             281:   99(ivec2) VectorShuffle 280 280 0 1
+             282:   99(ivec2) GroupNonUniformIMul 35 InclusiveScan 281
+             283:     90(ptr) AccessChain 24(data) 25 276 78 26
+             284:     14(int) CompositeExtract 282 0
+                              Store 283 284
+             285:     90(ptr) AccessChain 24(data) 25 276 78 58
+             286:     14(int) CompositeExtract 282 1
+                              Store 285 286
+             287:     27(ptr) AccessChain 10(dti) 26
+             288:      6(int) Load 287
+             289:     27(ptr) AccessChain 10(dti) 26
+             290:      6(int) Load 289
+             291:     81(ptr) AccessChain 24(data) 25 290 78
+             292:   15(ivec4) Load 291
+             293:  112(ivec3) VectorShuffle 292 292 0 1 2
+             294:  112(ivec3) GroupNonUniformIMul 35 InclusiveScan 293
+             295:     90(ptr) AccessChain 24(data) 25 288 78 26
+             296:     14(int) CompositeExtract 294 0
+                              Store 295 296
+             297:     90(ptr) AccessChain 24(data) 25 288 78 58
+             298:     14(int) CompositeExtract 294 1
+                              Store 297 298
+             299:     90(ptr) AccessChain 24(data) 25 288 78 73
+             300:     14(int) CompositeExtract 294 2
+                              Store 299 300
+             301:     27(ptr) AccessChain 10(dti) 26
+             302:      6(int) Load 301
+             303:     27(ptr) AccessChain 10(dti) 26
+             304:      6(int) Load 303
+             305:    128(ptr) AccessChain 24(data) 25 304 125
+             306:   17(fvec4) Load 305
+             307:   17(fvec4) GroupNonUniformFMul 35 InclusiveScan 306
+             308:    128(ptr) AccessChain 24(data) 25 302 125
+                              Store 308 307
+             309:     27(ptr) AccessChain 10(dti) 26
+             310:      6(int) Load 309
+             311:     27(ptr) AccessChain 10(dti) 26
+             312:      6(int) Load 311
+             313:    137(ptr) AccessChain 24(data) 25 312 125 26
+             314:   16(float) Load 313
+             315:   16(float) GroupNonUniformFMul 35 InclusiveScan 314
+             316:    137(ptr) AccessChain 24(data) 25 310 125 26
+                              Store 316 315
+             317:     27(ptr) AccessChain 10(dti) 26
+             318:      6(int) Load 317
+             319:     27(ptr) AccessChain 10(dti) 26
+             320:      6(int) Load 319
+             321:    128(ptr) AccessChain 24(data) 25 320 125
+             322:   17(fvec4) Load 321
+             323:  146(fvec2) VectorShuffle 322 322 0 1
+             324:  146(fvec2) GroupNonUniformFMul 35 InclusiveScan 323
+             325:    137(ptr) AccessChain 24(data) 25 318 125 26
+             326:   16(float) CompositeExtract 324 0
+                              Store 325 326
+             327:    137(ptr) AccessChain 24(data) 25 318 125 58
+             328:   16(float) CompositeExtract 324 1
+                              Store 327 328
              329:     27(ptr) AccessChain 10(dti) 26
              330:      6(int) Load 329
              331:     27(ptr) AccessChain 10(dti) 26
              332:      6(int) Load 331
-             333:    161(ptr) AccessChain 24(data) 25 332 158
-             334: 19(f64vec4) Load 333
-             335:179(f64vec2) VectorShuffle 334 334 0 1
-             336:179(f64vec2) GroupNonUniformFMul 35 InclusiveScan 335
-             337:    161(ptr) AccessChain 24(data) 25 330 158
-             338: 19(f64vec4) Load 337
-             339: 19(f64vec4) VectorShuffle 338 336 4 5 2 3
-                              Store 337 339
-             340:     27(ptr) AccessChain 10(dti) 26
-             341:      6(int) Load 340
-             342:     27(ptr) AccessChain 10(dti) 26
-             343:      6(int) Load 342
-             344:    161(ptr) AccessChain 24(data) 25 343 158
-             345: 19(f64vec4) Load 344
-             346:191(f64vec3) VectorShuffle 345 345 0 1 2
-             347:191(f64vec3) GroupNonUniformFMul 35 InclusiveScan 346
-             348:    161(ptr) AccessChain 24(data) 25 341 158
-             349: 19(f64vec4) Load 348
-             350: 19(f64vec4) VectorShuffle 349 347 4 5 6 3
-                              Store 348 350
+             333:    128(ptr) AccessChain 24(data) 25 332 125
+             334:   17(fvec4) Load 333
+             335:  159(fvec3) VectorShuffle 334 334 0 1 2
+             336:  159(fvec3) GroupNonUniformFMul 35 InclusiveScan 335
+             337:    137(ptr) AccessChain 24(data) 25 330 125 26
+             338:   16(float) CompositeExtract 336 0
+                              Store 337 338
+             339:    137(ptr) AccessChain 24(data) 25 330 125 58
+             340:   16(float) CompositeExtract 336 1
+                              Store 339 340
+             341:    137(ptr) AccessChain 24(data) 25 330 125 73
+             342:   16(float) CompositeExtract 336 2
+                              Store 341 342
+             343:     27(ptr) AccessChain 10(dti) 26
+             344:      6(int) Load 343
+             345:     27(ptr) AccessChain 10(dti) 26
+             346:      6(int) Load 345
+             347:    175(ptr) AccessChain 24(data) 25 346 172
+             348: 19(f64vec4) Load 347
+             349: 19(f64vec4) GroupNonUniformFMul 35 InclusiveScan 348
+             350:    175(ptr) AccessChain 24(data) 25 344 172
+                              Store 350 349
              351:     27(ptr) AccessChain 10(dti) 26
              352:      6(int) Load 351
              353:     27(ptr) AccessChain 10(dti) 26
              354:      6(int) Load 353
-             355:     42(ptr) AccessChain 24(data) 25 354 25 26
-             356:      6(int) Load 355
-             358:   357(bool) IEqual 356 26
-             359:   13(ivec4) GroupNonUniformBallot 35 358
-             360:      6(int) GroupNonUniformBallotBitCount 35 InclusiveScan 359
-             361:     42(ptr) AccessChain 24(data) 25 352 25 26
-                              Store 361 360
+             355:    184(ptr) AccessChain 24(data) 25 354 172 26
+             356:18(float64_t) Load 355
+             357:18(float64_t) GroupNonUniformFMul 35 InclusiveScan 356
+             358:    184(ptr) AccessChain 24(data) 25 352 172 26
+                              Store 358 357
+             359:     27(ptr) AccessChain 10(dti) 26
+             360:      6(int) Load 359
+             361:     27(ptr) AccessChain 10(dti) 26
+             362:      6(int) Load 361
+             363:    175(ptr) AccessChain 24(data) 25 362 172
+             364: 19(f64vec4) Load 363
+             365:193(f64vec2) VectorShuffle 364 364 0 1
+             366:193(f64vec2) GroupNonUniformFMul 35 InclusiveScan 365
+             367:    184(ptr) AccessChain 24(data) 25 360 172 26
+             368:18(float64_t) CompositeExtract 366 0
+                              Store 367 368
+             369:    184(ptr) AccessChain 24(data) 25 360 172 58
+             370:18(float64_t) CompositeExtract 366 1
+                              Store 369 370
+             371:     27(ptr) AccessChain 10(dti) 26
+             372:      6(int) Load 371
+             373:     27(ptr) AccessChain 10(dti) 26
+             374:      6(int) Load 373
+             375:    175(ptr) AccessChain 24(data) 25 374 172
+             376: 19(f64vec4) Load 375
+             377:206(f64vec3) VectorShuffle 376 376 0 1 2
+             378:206(f64vec3) GroupNonUniformFMul 35 InclusiveScan 377
+             379:    184(ptr) AccessChain 24(data) 25 372 172 26
+             380:18(float64_t) CompositeExtract 378 0
+                              Store 379 380
+             381:    184(ptr) AccessChain 24(data) 25 372 172 58
+             382:18(float64_t) CompositeExtract 378 1
+                              Store 381 382
+             383:    184(ptr) AccessChain 24(data) 25 372 172 73
+             384:18(float64_t) CompositeExtract 378 2
+                              Store 383 384
+             385:     27(ptr) AccessChain 10(dti) 26
+             386:      6(int) Load 385
+             387:     27(ptr) AccessChain 10(dti) 26
+             388:      6(int) Load 387
+             389:     42(ptr) AccessChain 24(data) 25 388 25 26
+             390:      6(int) Load 389
+             392:   391(bool) IEqual 390 26
+             393:   13(ivec4) GroupNonUniformBallot 35 392
+             394:      6(int) GroupNonUniformBallotBitCount 35 InclusiveScan 393
+             395:     42(ptr) AccessChain 24(data) 25 386 25 26
+                              Store 395 394
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/hlsl.wavequad.comp.out b/Test/baseResults/hlsl.wavequad.comp.out
index 1647c7d..e4311c7 100644
--- a/Test/baseResults/hlsl.wavequad.comp.out
+++ b/Test/baseResults/hlsl.wavequad.comp.out
@@ -8027,7 +8027,7 @@
 
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 1120
+// Id's are bound by 1232
 
                               Capability Shader
                               Capability Float64
@@ -8035,7 +8035,7 @@
                               Capability GroupNonUniformQuad
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint GLCompute 4  "CSMain" 1115
+                              EntryPoint GLCompute 4  "CSMain" 1227
                               ExecutionMode 4 LocalSize 32 16 1
                               Source HLSL 500
                               Name 4  "CSMain"
@@ -8049,9 +8049,9 @@
                               Name 22  "data"
                               MemberName 22(data) 0  "@data"
                               Name 24  "data"
-                              Name 1113  "dti"
-                              Name 1115  "dti"
-                              Name 1117  "param"
+                              Name 1225  "dti"
+                              Name 1227  "dti"
+                              Name 1229  "param"
                               MemberDecorate 20(Types) 0 Offset 0
                               MemberDecorate 20(Types) 1 Offset 16
                               MemberDecorate 20(Types) 2 Offset 32
@@ -8061,7 +8061,7 @@
                               Decorate 22(data) BufferBlock
                               Decorate 24(data) DescriptorSet 0
                               Decorate 24(data) Binding 0
-                              Decorate 1115(dti) BuiltIn GlobalInvocationId
+                              Decorate 1227(dti) BuiltIn GlobalInvocationId
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -8087,34 +8087,34 @@
               35:      6(int) Constant 3
               42:             TypePointer Uniform 6(int)
               51:             TypeVector 6(int) 2
-              72:     14(int) Constant 1
-              75:             TypePointer Uniform 15(ivec4)
-              84:             TypePointer Uniform 14(int)
-              93:             TypeVector 14(int) 2
-             105:             TypeVector 14(int) 3
-             115:     14(int) Constant 2
-             118:             TypePointer Uniform 17(fvec4)
-             127:             TypePointer Uniform 16(float)
-             136:             TypeVector 16(float) 2
-             148:             TypeVector 16(float) 3
-             158:     14(int) Constant 3
-             161:             TypePointer Uniform 19(f64vec4)
-             170:             TypePointer Uniform 18(float64_t)
-             179:             TypeVector 18(float64_t) 2
-             191:             TypeVector 18(float64_t) 3
-             205:      6(int) Constant 1
-             358:      6(int) Constant 2
-            1114:             TypePointer Input 7(ivec3)
-       1115(dti):   1114(ptr) Variable Input
+              58:      6(int) Constant 1
+              73:      6(int) Constant 2
+              78:     14(int) Constant 1
+              81:             TypePointer Uniform 15(ivec4)
+              90:             TypePointer Uniform 14(int)
+              99:             TypeVector 14(int) 2
+             112:             TypeVector 14(int) 3
+             125:     14(int) Constant 2
+             128:             TypePointer Uniform 17(fvec4)
+             137:             TypePointer Uniform 16(float)
+             146:             TypeVector 16(float) 2
+             159:             TypeVector 16(float) 3
+             172:     14(int) Constant 3
+             175:             TypePointer Uniform 19(f64vec4)
+             184:             TypePointer Uniform 18(float64_t)
+             193:             TypeVector 18(float64_t) 2
+             206:             TypeVector 18(float64_t) 3
+            1226:             TypePointer Input 7(ivec3)
+       1227(dti):   1226(ptr) Variable Input
        4(CSMain):           2 Function None 3
                5:             Label
-       1113(dti):      8(ptr) Variable Function
-     1117(param):      8(ptr) Variable Function
-            1116:    7(ivec3) Load 1115(dti)
-                              Store 1113(dti) 1116
-            1118:    7(ivec3) Load 1113(dti)
-                              Store 1117(param) 1118
-            1119:           2 FunctionCall 11(@CSMain(vu3;) 1117(param)
+       1225(dti):      8(ptr) Variable Function
+     1229(param):      8(ptr) Variable Function
+            1228:    7(ivec3) Load 1227(dti)
+                              Store 1225(dti) 1228
+            1230:    7(ivec3) Load 1225(dti)
+                              Store 1229(param) 1230
+            1231:           2 FunctionCall 11(@CSMain(vu3;) 1229(param)
                               Return
                               FunctionEnd
 11(@CSMain(vu3;):           2 Function None 9
@@ -8146,1155 +8146,1351 @@
               53:   13(ivec4) Load 52
               54:   51(ivec2) VectorShuffle 53 53 0 1
               55:   51(ivec2) GroupNonUniformQuadBroadcast 35 54 26
-              56:     32(ptr) AccessChain 24(data) 25 48 25
-              57:   13(ivec4) Load 56
-              58:   13(ivec4) VectorShuffle 57 55 4 5 2 3
-                              Store 56 58
-              59:     27(ptr) AccessChain 10(dti) 26
-              60:      6(int) Load 59
+              56:     42(ptr) AccessChain 24(data) 25 48 25 26
+              57:      6(int) CompositeExtract 55 0
+                              Store 56 57
+              59:     42(ptr) AccessChain 24(data) 25 48 25 58
+              60:      6(int) CompositeExtract 55 1
+                              Store 59 60
               61:     27(ptr) AccessChain 10(dti) 26
               62:      6(int) Load 61
-              63:     32(ptr) AccessChain 24(data) 25 62 25
-              64:   13(ivec4) Load 63
-              65:    7(ivec3) VectorShuffle 64 64 0 1 2
-              66:    7(ivec3) GroupNonUniformQuadBroadcast 35 65 26
-              67:     32(ptr) AccessChain 24(data) 25 60 25
-              68:   13(ivec4) Load 67
-              69:   13(ivec4) VectorShuffle 68 66 4 5 6 3
-                              Store 67 69
-              70:     27(ptr) AccessChain 10(dti) 26
-              71:      6(int) Load 70
-              73:     27(ptr) AccessChain 10(dti) 26
-              74:      6(int) Load 73
-              76:     75(ptr) AccessChain 24(data) 25 74 72
-              77:   15(ivec4) Load 76
-              78:   15(ivec4) GroupNonUniformQuadBroadcast 35 77 26
-              79:     75(ptr) AccessChain 24(data) 25 71 72
-                              Store 79 78
-              80:     27(ptr) AccessChain 10(dti) 26
-              81:      6(int) Load 80
-              82:     27(ptr) AccessChain 10(dti) 26
-              83:      6(int) Load 82
-              85:     84(ptr) AccessChain 24(data) 25 83 72 26
-              86:     14(int) Load 85
-              87:     14(int) GroupNonUniformQuadBroadcast 35 86 26
-              88:     84(ptr) AccessChain 24(data) 25 81 72 26
-                              Store 88 87
-              89:     27(ptr) AccessChain 10(dti) 26
-              90:      6(int) Load 89
-              91:     27(ptr) AccessChain 10(dti) 26
-              92:      6(int) Load 91
-              94:     75(ptr) AccessChain 24(data) 25 92 72
-              95:   15(ivec4) Load 94
-              96:   93(ivec2) VectorShuffle 95 95 0 1
-              97:   93(ivec2) GroupNonUniformQuadBroadcast 35 96 26
-              98:     75(ptr) AccessChain 24(data) 25 90 72
-              99:   15(ivec4) Load 98
-             100:   15(ivec4) VectorShuffle 99 97 4 5 2 3
-                              Store 98 100
-             101:     27(ptr) AccessChain 10(dti) 26
-             102:      6(int) Load 101
-             103:     27(ptr) AccessChain 10(dti) 26
-             104:      6(int) Load 103
-             106:     75(ptr) AccessChain 24(data) 25 104 72
-             107:   15(ivec4) Load 106
-             108:  105(ivec3) VectorShuffle 107 107 0 1 2
-             109:  105(ivec3) GroupNonUniformQuadBroadcast 35 108 26
-             110:     75(ptr) AccessChain 24(data) 25 102 72
-             111:   15(ivec4) Load 110
-             112:   15(ivec4) VectorShuffle 111 109 4 5 6 3
-                              Store 110 112
-             113:     27(ptr) AccessChain 10(dti) 26
-             114:      6(int) Load 113
-             116:     27(ptr) AccessChain 10(dti) 26
-             117:      6(int) Load 116
-             119:    118(ptr) AccessChain 24(data) 25 117 115
-             120:   17(fvec4) Load 119
-             121:   17(fvec4) GroupNonUniformQuadBroadcast 35 120 26
-             122:    118(ptr) AccessChain 24(data) 25 114 115
-                              Store 122 121
+              63:     27(ptr) AccessChain 10(dti) 26
+              64:      6(int) Load 63
+              65:     32(ptr) AccessChain 24(data) 25 64 25
+              66:   13(ivec4) Load 65
+              67:    7(ivec3) VectorShuffle 66 66 0 1 2
+              68:    7(ivec3) GroupNonUniformQuadBroadcast 35 67 26
+              69:     42(ptr) AccessChain 24(data) 25 62 25 26
+              70:      6(int) CompositeExtract 68 0
+                              Store 69 70
+              71:     42(ptr) AccessChain 24(data) 25 62 25 58
+              72:      6(int) CompositeExtract 68 1
+                              Store 71 72
+              74:     42(ptr) AccessChain 24(data) 25 62 25 73
+              75:      6(int) CompositeExtract 68 2
+                              Store 74 75
+              76:     27(ptr) AccessChain 10(dti) 26
+              77:      6(int) Load 76
+              79:     27(ptr) AccessChain 10(dti) 26
+              80:      6(int) Load 79
+              82:     81(ptr) AccessChain 24(data) 25 80 78
+              83:   15(ivec4) Load 82
+              84:   15(ivec4) GroupNonUniformQuadBroadcast 35 83 26
+              85:     81(ptr) AccessChain 24(data) 25 77 78
+                              Store 85 84
+              86:     27(ptr) AccessChain 10(dti) 26
+              87:      6(int) Load 86
+              88:     27(ptr) AccessChain 10(dti) 26
+              89:      6(int) Load 88
+              91:     90(ptr) AccessChain 24(data) 25 89 78 26
+              92:     14(int) Load 91
+              93:     14(int) GroupNonUniformQuadBroadcast 35 92 26
+              94:     90(ptr) AccessChain 24(data) 25 87 78 26
+                              Store 94 93
+              95:     27(ptr) AccessChain 10(dti) 26
+              96:      6(int) Load 95
+              97:     27(ptr) AccessChain 10(dti) 26
+              98:      6(int) Load 97
+             100:     81(ptr) AccessChain 24(data) 25 98 78
+             101:   15(ivec4) Load 100
+             102:   99(ivec2) VectorShuffle 101 101 0 1
+             103:   99(ivec2) GroupNonUniformQuadBroadcast 35 102 26
+             104:     90(ptr) AccessChain 24(data) 25 96 78 26
+             105:     14(int) CompositeExtract 103 0
+                              Store 104 105
+             106:     90(ptr) AccessChain 24(data) 25 96 78 58
+             107:     14(int) CompositeExtract 103 1
+                              Store 106 107
+             108:     27(ptr) AccessChain 10(dti) 26
+             109:      6(int) Load 108
+             110:     27(ptr) AccessChain 10(dti) 26
+             111:      6(int) Load 110
+             113:     81(ptr) AccessChain 24(data) 25 111 78
+             114:   15(ivec4) Load 113
+             115:  112(ivec3) VectorShuffle 114 114 0 1 2
+             116:  112(ivec3) GroupNonUniformQuadBroadcast 35 115 26
+             117:     90(ptr) AccessChain 24(data) 25 109 78 26
+             118:     14(int) CompositeExtract 116 0
+                              Store 117 118
+             119:     90(ptr) AccessChain 24(data) 25 109 78 58
+             120:     14(int) CompositeExtract 116 1
+                              Store 119 120
+             121:     90(ptr) AccessChain 24(data) 25 109 78 73
+             122:     14(int) CompositeExtract 116 2
+                              Store 121 122
              123:     27(ptr) AccessChain 10(dti) 26
              124:      6(int) Load 123
-             125:     27(ptr) AccessChain 10(dti) 26
-             126:      6(int) Load 125
-             128:    127(ptr) AccessChain 24(data) 25 126 115 26
-             129:   16(float) Load 128
-             130:   16(float) GroupNonUniformQuadBroadcast 35 129 26
-             131:    127(ptr) AccessChain 24(data) 25 124 115 26
-                              Store 131 130
-             132:     27(ptr) AccessChain 10(dti) 26
-             133:      6(int) Load 132
-             134:     27(ptr) AccessChain 10(dti) 26
-             135:      6(int) Load 134
-             137:    118(ptr) AccessChain 24(data) 25 135 115
-             138:   17(fvec4) Load 137
-             139:  136(fvec2) VectorShuffle 138 138 0 1
-             140:  136(fvec2) GroupNonUniformQuadBroadcast 35 139 26
-             141:    118(ptr) AccessChain 24(data) 25 133 115
-             142:   17(fvec4) Load 141
-             143:   17(fvec4) VectorShuffle 142 140 4 5 2 3
-                              Store 141 143
+             126:     27(ptr) AccessChain 10(dti) 26
+             127:      6(int) Load 126
+             129:    128(ptr) AccessChain 24(data) 25 127 125
+             130:   17(fvec4) Load 129
+             131:   17(fvec4) GroupNonUniformQuadBroadcast 35 130 26
+             132:    128(ptr) AccessChain 24(data) 25 124 125
+                              Store 132 131
+             133:     27(ptr) AccessChain 10(dti) 26
+             134:      6(int) Load 133
+             135:     27(ptr) AccessChain 10(dti) 26
+             136:      6(int) Load 135
+             138:    137(ptr) AccessChain 24(data) 25 136 125 26
+             139:   16(float) Load 138
+             140:   16(float) GroupNonUniformQuadBroadcast 35 139 26
+             141:    137(ptr) AccessChain 24(data) 25 134 125 26
+                              Store 141 140
+             142:     27(ptr) AccessChain 10(dti) 26
+             143:      6(int) Load 142
              144:     27(ptr) AccessChain 10(dti) 26
              145:      6(int) Load 144
-             146:     27(ptr) AccessChain 10(dti) 26
-             147:      6(int) Load 146
-             149:    118(ptr) AccessChain 24(data) 25 147 115
-             150:   17(fvec4) Load 149
-             151:  148(fvec3) VectorShuffle 150 150 0 1 2
-             152:  148(fvec3) GroupNonUniformQuadBroadcast 35 151 26
-             153:    118(ptr) AccessChain 24(data) 25 145 115
-             154:   17(fvec4) Load 153
-             155:   17(fvec4) VectorShuffle 154 152 4 5 6 3
-                              Store 153 155
-             156:     27(ptr) AccessChain 10(dti) 26
-             157:      6(int) Load 156
-             159:     27(ptr) AccessChain 10(dti) 26
-             160:      6(int) Load 159
-             162:    161(ptr) AccessChain 24(data) 25 160 158
-             163: 19(f64vec4) Load 162
-             164: 19(f64vec4) GroupNonUniformQuadBroadcast 35 163 26
-             165:    161(ptr) AccessChain 24(data) 25 157 158
-                              Store 165 164
-             166:     27(ptr) AccessChain 10(dti) 26
-             167:      6(int) Load 166
-             168:     27(ptr) AccessChain 10(dti) 26
-             169:      6(int) Load 168
-             171:    170(ptr) AccessChain 24(data) 25 169 158 26
-             172:18(float64_t) Load 171
-             173:18(float64_t) GroupNonUniformQuadBroadcast 35 172 26
-             174:    170(ptr) AccessChain 24(data) 25 167 158 26
-                              Store 174 173
-             175:     27(ptr) AccessChain 10(dti) 26
-             176:      6(int) Load 175
-             177:     27(ptr) AccessChain 10(dti) 26
-             178:      6(int) Load 177
-             180:    161(ptr) AccessChain 24(data) 25 178 158
-             181: 19(f64vec4) Load 180
-             182:179(f64vec2) VectorShuffle 181 181 0 1
-             183:179(f64vec2) GroupNonUniformQuadBroadcast 35 182 26
-             184:    161(ptr) AccessChain 24(data) 25 176 158
-             185: 19(f64vec4) Load 184
-             186: 19(f64vec4) VectorShuffle 185 183 4 5 2 3
-                              Store 184 186
-             187:     27(ptr) AccessChain 10(dti) 26
-             188:      6(int) Load 187
+             147:    128(ptr) AccessChain 24(data) 25 145 125
+             148:   17(fvec4) Load 147
+             149:  146(fvec2) VectorShuffle 148 148 0 1
+             150:  146(fvec2) GroupNonUniformQuadBroadcast 35 149 26
+             151:    137(ptr) AccessChain 24(data) 25 143 125 26
+             152:   16(float) CompositeExtract 150 0
+                              Store 151 152
+             153:    137(ptr) AccessChain 24(data) 25 143 125 58
+             154:   16(float) CompositeExtract 150 1
+                              Store 153 154
+             155:     27(ptr) AccessChain 10(dti) 26
+             156:      6(int) Load 155
+             157:     27(ptr) AccessChain 10(dti) 26
+             158:      6(int) Load 157
+             160:    128(ptr) AccessChain 24(data) 25 158 125
+             161:   17(fvec4) Load 160
+             162:  159(fvec3) VectorShuffle 161 161 0 1 2
+             163:  159(fvec3) GroupNonUniformQuadBroadcast 35 162 26
+             164:    137(ptr) AccessChain 24(data) 25 156 125 26
+             165:   16(float) CompositeExtract 163 0
+                              Store 164 165
+             166:    137(ptr) AccessChain 24(data) 25 156 125 58
+             167:   16(float) CompositeExtract 163 1
+                              Store 166 167
+             168:    137(ptr) AccessChain 24(data) 25 156 125 73
+             169:   16(float) CompositeExtract 163 2
+                              Store 168 169
+             170:     27(ptr) AccessChain 10(dti) 26
+             171:      6(int) Load 170
+             173:     27(ptr) AccessChain 10(dti) 26
+             174:      6(int) Load 173
+             176:    175(ptr) AccessChain 24(data) 25 174 172
+             177: 19(f64vec4) Load 176
+             178: 19(f64vec4) GroupNonUniformQuadBroadcast 35 177 26
+             179:    175(ptr) AccessChain 24(data) 25 171 172
+                              Store 179 178
+             180:     27(ptr) AccessChain 10(dti) 26
+             181:      6(int) Load 180
+             182:     27(ptr) AccessChain 10(dti) 26
+             183:      6(int) Load 182
+             185:    184(ptr) AccessChain 24(data) 25 183 172 26
+             186:18(float64_t) Load 185
+             187:18(float64_t) GroupNonUniformQuadBroadcast 35 186 26
+             188:    184(ptr) AccessChain 24(data) 25 181 172 26
+                              Store 188 187
              189:     27(ptr) AccessChain 10(dti) 26
              190:      6(int) Load 189
-             192:    161(ptr) AccessChain 24(data) 25 190 158
-             193: 19(f64vec4) Load 192
-             194:191(f64vec3) VectorShuffle 193 193 0 1 2
-             195:191(f64vec3) GroupNonUniformQuadBroadcast 35 194 26
-             196:    161(ptr) AccessChain 24(data) 25 188 158
-             197: 19(f64vec4) Load 196
-             198: 19(f64vec4) VectorShuffle 197 195 4 5 6 3
-                              Store 196 198
-             199:     27(ptr) AccessChain 10(dti) 26
-             200:      6(int) Load 199
-             201:     27(ptr) AccessChain 10(dti) 26
-             202:      6(int) Load 201
-             203:     32(ptr) AccessChain 24(data) 25 202 25
-             204:   13(ivec4) Load 203
-             206:   13(ivec4) GroupNonUniformQuadBroadcast 35 204 205
-             207:     32(ptr) AccessChain 24(data) 25 200 25
-                              Store 207 206
-             208:     27(ptr) AccessChain 10(dti) 26
-             209:      6(int) Load 208
-             210:     27(ptr) AccessChain 10(dti) 26
-             211:      6(int) Load 210
-             212:     42(ptr) AccessChain 24(data) 25 211 25 26
-             213:      6(int) Load 212
-             214:      6(int) GroupNonUniformQuadBroadcast 35 213 205
-             215:     42(ptr) AccessChain 24(data) 25 209 25 26
-                              Store 215 214
-             216:     27(ptr) AccessChain 10(dti) 26
-             217:      6(int) Load 216
-             218:     27(ptr) AccessChain 10(dti) 26
-             219:      6(int) Load 218
-             220:     32(ptr) AccessChain 24(data) 25 219 25
-             221:   13(ivec4) Load 220
-             222:   51(ivec2) VectorShuffle 221 221 0 1
-             223:   51(ivec2) GroupNonUniformQuadBroadcast 35 222 205
-             224:     32(ptr) AccessChain 24(data) 25 217 25
-             225:   13(ivec4) Load 224
-             226:   13(ivec4) VectorShuffle 225 223 4 5 2 3
-                              Store 224 226
+             191:     27(ptr) AccessChain 10(dti) 26
+             192:      6(int) Load 191
+             194:    175(ptr) AccessChain 24(data) 25 192 172
+             195: 19(f64vec4) Load 194
+             196:193(f64vec2) VectorShuffle 195 195 0 1
+             197:193(f64vec2) GroupNonUniformQuadBroadcast 35 196 26
+             198:    184(ptr) AccessChain 24(data) 25 190 172 26
+             199:18(float64_t) CompositeExtract 197 0
+                              Store 198 199
+             200:    184(ptr) AccessChain 24(data) 25 190 172 58
+             201:18(float64_t) CompositeExtract 197 1
+                              Store 200 201
+             202:     27(ptr) AccessChain 10(dti) 26
+             203:      6(int) Load 202
+             204:     27(ptr) AccessChain 10(dti) 26
+             205:      6(int) Load 204
+             207:    175(ptr) AccessChain 24(data) 25 205 172
+             208: 19(f64vec4) Load 207
+             209:206(f64vec3) VectorShuffle 208 208 0 1 2
+             210:206(f64vec3) GroupNonUniformQuadBroadcast 35 209 26
+             211:    184(ptr) AccessChain 24(data) 25 203 172 26
+             212:18(float64_t) CompositeExtract 210 0
+                              Store 211 212
+             213:    184(ptr) AccessChain 24(data) 25 203 172 58
+             214:18(float64_t) CompositeExtract 210 1
+                              Store 213 214
+             215:    184(ptr) AccessChain 24(data) 25 203 172 73
+             216:18(float64_t) CompositeExtract 210 2
+                              Store 215 216
+             217:     27(ptr) AccessChain 10(dti) 26
+             218:      6(int) Load 217
+             219:     27(ptr) AccessChain 10(dti) 26
+             220:      6(int) Load 219
+             221:     32(ptr) AccessChain 24(data) 25 220 25
+             222:   13(ivec4) Load 221
+             223:   13(ivec4) GroupNonUniformQuadBroadcast 35 222 58
+             224:     32(ptr) AccessChain 24(data) 25 218 25
+                              Store 224 223
+             225:     27(ptr) AccessChain 10(dti) 26
+             226:      6(int) Load 225
              227:     27(ptr) AccessChain 10(dti) 26
              228:      6(int) Load 227
-             229:     27(ptr) AccessChain 10(dti) 26
+             229:     42(ptr) AccessChain 24(data) 25 228 25 26
              230:      6(int) Load 229
-             231:     32(ptr) AccessChain 24(data) 25 230 25
-             232:   13(ivec4) Load 231
-             233:    7(ivec3) VectorShuffle 232 232 0 1 2
-             234:    7(ivec3) GroupNonUniformQuadBroadcast 35 233 205
-             235:     32(ptr) AccessChain 24(data) 25 228 25
-             236:   13(ivec4) Load 235
-             237:   13(ivec4) VectorShuffle 236 234 4 5 6 3
-                              Store 235 237
-             238:     27(ptr) AccessChain 10(dti) 26
-             239:      6(int) Load 238
-             240:     27(ptr) AccessChain 10(dti) 26
-             241:      6(int) Load 240
-             242:     75(ptr) AccessChain 24(data) 25 241 72
-             243:   15(ivec4) Load 242
-             244:   15(ivec4) GroupNonUniformQuadBroadcast 35 243 205
-             245:     75(ptr) AccessChain 24(data) 25 239 72
-                              Store 245 244
-             246:     27(ptr) AccessChain 10(dti) 26
-             247:      6(int) Load 246
-             248:     27(ptr) AccessChain 10(dti) 26
-             249:      6(int) Load 248
-             250:     84(ptr) AccessChain 24(data) 25 249 72 26
-             251:     14(int) Load 250
-             252:     14(int) GroupNonUniformQuadBroadcast 35 251 205
-             253:     84(ptr) AccessChain 24(data) 25 247 72 26
-                              Store 253 252
-             254:     27(ptr) AccessChain 10(dti) 26
-             255:      6(int) Load 254
-             256:     27(ptr) AccessChain 10(dti) 26
-             257:      6(int) Load 256
-             258:     75(ptr) AccessChain 24(data) 25 257 72
-             259:   15(ivec4) Load 258
-             260:   93(ivec2) VectorShuffle 259 259 0 1
-             261:   93(ivec2) GroupNonUniformQuadBroadcast 35 260 205
-             262:     75(ptr) AccessChain 24(data) 25 255 72
-             263:   15(ivec4) Load 262
-             264:   15(ivec4) VectorShuffle 263 261 4 5 2 3
-                              Store 262 264
-             265:     27(ptr) AccessChain 10(dti) 26
-             266:      6(int) Load 265
+             231:      6(int) GroupNonUniformQuadBroadcast 35 230 58
+             232:     42(ptr) AccessChain 24(data) 25 226 25 26
+                              Store 232 231
+             233:     27(ptr) AccessChain 10(dti) 26
+             234:      6(int) Load 233
+             235:     27(ptr) AccessChain 10(dti) 26
+             236:      6(int) Load 235
+             237:     32(ptr) AccessChain 24(data) 25 236 25
+             238:   13(ivec4) Load 237
+             239:   51(ivec2) VectorShuffle 238 238 0 1
+             240:   51(ivec2) GroupNonUniformQuadBroadcast 35 239 58
+             241:     42(ptr) AccessChain 24(data) 25 234 25 26
+             242:      6(int) CompositeExtract 240 0
+                              Store 241 242
+             243:     42(ptr) AccessChain 24(data) 25 234 25 58
+             244:      6(int) CompositeExtract 240 1
+                              Store 243 244
+             245:     27(ptr) AccessChain 10(dti) 26
+             246:      6(int) Load 245
+             247:     27(ptr) AccessChain 10(dti) 26
+             248:      6(int) Load 247
+             249:     32(ptr) AccessChain 24(data) 25 248 25
+             250:   13(ivec4) Load 249
+             251:    7(ivec3) VectorShuffle 250 250 0 1 2
+             252:    7(ivec3) GroupNonUniformQuadBroadcast 35 251 58
+             253:     42(ptr) AccessChain 24(data) 25 246 25 26
+             254:      6(int) CompositeExtract 252 0
+                              Store 253 254
+             255:     42(ptr) AccessChain 24(data) 25 246 25 58
+             256:      6(int) CompositeExtract 252 1
+                              Store 255 256
+             257:     42(ptr) AccessChain 24(data) 25 246 25 73
+             258:      6(int) CompositeExtract 252 2
+                              Store 257 258
+             259:     27(ptr) AccessChain 10(dti) 26
+             260:      6(int) Load 259
+             261:     27(ptr) AccessChain 10(dti) 26
+             262:      6(int) Load 261
+             263:     81(ptr) AccessChain 24(data) 25 262 78
+             264:   15(ivec4) Load 263
+             265:   15(ivec4) GroupNonUniformQuadBroadcast 35 264 58
+             266:     81(ptr) AccessChain 24(data) 25 260 78
+                              Store 266 265
              267:     27(ptr) AccessChain 10(dti) 26
              268:      6(int) Load 267
-             269:     75(ptr) AccessChain 24(data) 25 268 72
-             270:   15(ivec4) Load 269
-             271:  105(ivec3) VectorShuffle 270 270 0 1 2
-             272:  105(ivec3) GroupNonUniformQuadBroadcast 35 271 205
-             273:     75(ptr) AccessChain 24(data) 25 266 72
-             274:   15(ivec4) Load 273
-             275:   15(ivec4) VectorShuffle 274 272 4 5 6 3
-                              Store 273 275
-             276:     27(ptr) AccessChain 10(dti) 26
-             277:      6(int) Load 276
-             278:     27(ptr) AccessChain 10(dti) 26
-             279:      6(int) Load 278
-             280:    118(ptr) AccessChain 24(data) 25 279 115
-             281:   17(fvec4) Load 280
-             282:   17(fvec4) GroupNonUniformQuadBroadcast 35 281 205
-             283:    118(ptr) AccessChain 24(data) 25 277 115
-                              Store 283 282
-             284:     27(ptr) AccessChain 10(dti) 26
-             285:      6(int) Load 284
-             286:     27(ptr) AccessChain 10(dti) 26
-             287:      6(int) Load 286
-             288:    127(ptr) AccessChain 24(data) 25 287 115 26
-             289:   16(float) Load 288
-             290:   16(float) GroupNonUniformQuadBroadcast 35 289 205
-             291:    127(ptr) AccessChain 24(data) 25 285 115 26
-                              Store 291 290
-             292:     27(ptr) AccessChain 10(dti) 26
-             293:      6(int) Load 292
-             294:     27(ptr) AccessChain 10(dti) 26
-             295:      6(int) Load 294
-             296:    118(ptr) AccessChain 24(data) 25 295 115
-             297:   17(fvec4) Load 296
-             298:  136(fvec2) VectorShuffle 297 297 0 1
-             299:  136(fvec2) GroupNonUniformQuadBroadcast 35 298 205
-             300:    118(ptr) AccessChain 24(data) 25 293 115
-             301:   17(fvec4) Load 300
-             302:   17(fvec4) VectorShuffle 301 299 4 5 2 3
-                              Store 300 302
+             269:     27(ptr) AccessChain 10(dti) 26
+             270:      6(int) Load 269
+             271:     90(ptr) AccessChain 24(data) 25 270 78 26
+             272:     14(int) Load 271
+             273:     14(int) GroupNonUniformQuadBroadcast 35 272 58
+             274:     90(ptr) AccessChain 24(data) 25 268 78 26
+                              Store 274 273
+             275:     27(ptr) AccessChain 10(dti) 26
+             276:      6(int) Load 275
+             277:     27(ptr) AccessChain 10(dti) 26
+             278:      6(int) Load 277
+             279:     81(ptr) AccessChain 24(data) 25 278 78
+             280:   15(ivec4) Load 279
+             281:   99(ivec2) VectorShuffle 280 280 0 1
+             282:   99(ivec2) GroupNonUniformQuadBroadcast 35 281 58
+             283:     90(ptr) AccessChain 24(data) 25 276 78 26
+             284:     14(int) CompositeExtract 282 0
+                              Store 283 284
+             285:     90(ptr) AccessChain 24(data) 25 276 78 58
+             286:     14(int) CompositeExtract 282 1
+                              Store 285 286
+             287:     27(ptr) AccessChain 10(dti) 26
+             288:      6(int) Load 287
+             289:     27(ptr) AccessChain 10(dti) 26
+             290:      6(int) Load 289
+             291:     81(ptr) AccessChain 24(data) 25 290 78
+             292:   15(ivec4) Load 291
+             293:  112(ivec3) VectorShuffle 292 292 0 1 2
+             294:  112(ivec3) GroupNonUniformQuadBroadcast 35 293 58
+             295:     90(ptr) AccessChain 24(data) 25 288 78 26
+             296:     14(int) CompositeExtract 294 0
+                              Store 295 296
+             297:     90(ptr) AccessChain 24(data) 25 288 78 58
+             298:     14(int) CompositeExtract 294 1
+                              Store 297 298
+             299:     90(ptr) AccessChain 24(data) 25 288 78 73
+             300:     14(int) CompositeExtract 294 2
+                              Store 299 300
+             301:     27(ptr) AccessChain 10(dti) 26
+             302:      6(int) Load 301
              303:     27(ptr) AccessChain 10(dti) 26
              304:      6(int) Load 303
-             305:     27(ptr) AccessChain 10(dti) 26
-             306:      6(int) Load 305
-             307:    118(ptr) AccessChain 24(data) 25 306 115
-             308:   17(fvec4) Load 307
-             309:  148(fvec3) VectorShuffle 308 308 0 1 2
-             310:  148(fvec3) GroupNonUniformQuadBroadcast 35 309 205
-             311:    118(ptr) AccessChain 24(data) 25 304 115
-             312:   17(fvec4) Load 311
-             313:   17(fvec4) VectorShuffle 312 310 4 5 6 3
-                              Store 311 313
-             314:     27(ptr) AccessChain 10(dti) 26
-             315:      6(int) Load 314
-             316:     27(ptr) AccessChain 10(dti) 26
-             317:      6(int) Load 316
-             318:    161(ptr) AccessChain 24(data) 25 317 158
-             319: 19(f64vec4) Load 318
-             320: 19(f64vec4) GroupNonUniformQuadBroadcast 35 319 205
-             321:    161(ptr) AccessChain 24(data) 25 315 158
-                              Store 321 320
-             322:     27(ptr) AccessChain 10(dti) 26
-             323:      6(int) Load 322
-             324:     27(ptr) AccessChain 10(dti) 26
-             325:      6(int) Load 324
-             326:    170(ptr) AccessChain 24(data) 25 325 158 26
-             327:18(float64_t) Load 326
-             328:18(float64_t) GroupNonUniformQuadBroadcast 35 327 205
-             329:    170(ptr) AccessChain 24(data) 25 323 158 26
-                              Store 329 328
-             330:     27(ptr) AccessChain 10(dti) 26
-             331:      6(int) Load 330
-             332:     27(ptr) AccessChain 10(dti) 26
-             333:      6(int) Load 332
-             334:    161(ptr) AccessChain 24(data) 25 333 158
-             335: 19(f64vec4) Load 334
-             336:179(f64vec2) VectorShuffle 335 335 0 1
-             337:179(f64vec2) GroupNonUniformQuadBroadcast 35 336 205
-             338:    161(ptr) AccessChain 24(data) 25 331 158
-             339: 19(f64vec4) Load 338
-             340: 19(f64vec4) VectorShuffle 339 337 4 5 2 3
-                              Store 338 340
-             341:     27(ptr) AccessChain 10(dti) 26
-             342:      6(int) Load 341
+             305:    128(ptr) AccessChain 24(data) 25 304 125
+             306:   17(fvec4) Load 305
+             307:   17(fvec4) GroupNonUniformQuadBroadcast 35 306 58
+             308:    128(ptr) AccessChain 24(data) 25 302 125
+                              Store 308 307
+             309:     27(ptr) AccessChain 10(dti) 26
+             310:      6(int) Load 309
+             311:     27(ptr) AccessChain 10(dti) 26
+             312:      6(int) Load 311
+             313:    137(ptr) AccessChain 24(data) 25 312 125 26
+             314:   16(float) Load 313
+             315:   16(float) GroupNonUniformQuadBroadcast 35 314 58
+             316:    137(ptr) AccessChain 24(data) 25 310 125 26
+                              Store 316 315
+             317:     27(ptr) AccessChain 10(dti) 26
+             318:      6(int) Load 317
+             319:     27(ptr) AccessChain 10(dti) 26
+             320:      6(int) Load 319
+             321:    128(ptr) AccessChain 24(data) 25 320 125
+             322:   17(fvec4) Load 321
+             323:  146(fvec2) VectorShuffle 322 322 0 1
+             324:  146(fvec2) GroupNonUniformQuadBroadcast 35 323 58
+             325:    137(ptr) AccessChain 24(data) 25 318 125 26
+             326:   16(float) CompositeExtract 324 0
+                              Store 325 326
+             327:    137(ptr) AccessChain 24(data) 25 318 125 58
+             328:   16(float) CompositeExtract 324 1
+                              Store 327 328
+             329:     27(ptr) AccessChain 10(dti) 26
+             330:      6(int) Load 329
+             331:     27(ptr) AccessChain 10(dti) 26
+             332:      6(int) Load 331
+             333:    128(ptr) AccessChain 24(data) 25 332 125
+             334:   17(fvec4) Load 333
+             335:  159(fvec3) VectorShuffle 334 334 0 1 2
+             336:  159(fvec3) GroupNonUniformQuadBroadcast 35 335 58
+             337:    137(ptr) AccessChain 24(data) 25 330 125 26
+             338:   16(float) CompositeExtract 336 0
+                              Store 337 338
+             339:    137(ptr) AccessChain 24(data) 25 330 125 58
+             340:   16(float) CompositeExtract 336 1
+                              Store 339 340
+             341:    137(ptr) AccessChain 24(data) 25 330 125 73
+             342:   16(float) CompositeExtract 336 2
+                              Store 341 342
              343:     27(ptr) AccessChain 10(dti) 26
              344:      6(int) Load 343
-             345:    161(ptr) AccessChain 24(data) 25 344 158
-             346: 19(f64vec4) Load 345
-             347:191(f64vec3) VectorShuffle 346 346 0 1 2
-             348:191(f64vec3) GroupNonUniformQuadBroadcast 35 347 205
-             349:    161(ptr) AccessChain 24(data) 25 342 158
-             350: 19(f64vec4) Load 349
-             351: 19(f64vec4) VectorShuffle 350 348 4 5 6 3
-                              Store 349 351
-             352:     27(ptr) AccessChain 10(dti) 26
-             353:      6(int) Load 352
-             354:     27(ptr) AccessChain 10(dti) 26
-             355:      6(int) Load 354
-             356:     32(ptr) AccessChain 24(data) 25 355 25
-             357:   13(ivec4) Load 356
-             359:   13(ivec4) GroupNonUniformQuadBroadcast 35 357 358
-             360:     32(ptr) AccessChain 24(data) 25 353 25
-                              Store 360 359
+             345:     27(ptr) AccessChain 10(dti) 26
+             346:      6(int) Load 345
+             347:    175(ptr) AccessChain 24(data) 25 346 172
+             348: 19(f64vec4) Load 347
+             349: 19(f64vec4) GroupNonUniformQuadBroadcast 35 348 58
+             350:    175(ptr) AccessChain 24(data) 25 344 172
+                              Store 350 349
+             351:     27(ptr) AccessChain 10(dti) 26
+             352:      6(int) Load 351
+             353:     27(ptr) AccessChain 10(dti) 26
+             354:      6(int) Load 353
+             355:    184(ptr) AccessChain 24(data) 25 354 172 26
+             356:18(float64_t) Load 355
+             357:18(float64_t) GroupNonUniformQuadBroadcast 35 356 58
+             358:    184(ptr) AccessChain 24(data) 25 352 172 26
+                              Store 358 357
+             359:     27(ptr) AccessChain 10(dti) 26
+             360:      6(int) Load 359
              361:     27(ptr) AccessChain 10(dti) 26
              362:      6(int) Load 361
-             363:     27(ptr) AccessChain 10(dti) 26
-             364:      6(int) Load 363
-             365:     42(ptr) AccessChain 24(data) 25 364 25 26
-             366:      6(int) Load 365
-             367:      6(int) GroupNonUniformQuadBroadcast 35 366 358
-             368:     42(ptr) AccessChain 24(data) 25 362 25 26
-                              Store 368 367
-             369:     27(ptr) AccessChain 10(dti) 26
-             370:      6(int) Load 369
+             363:    175(ptr) AccessChain 24(data) 25 362 172
+             364: 19(f64vec4) Load 363
+             365:193(f64vec2) VectorShuffle 364 364 0 1
+             366:193(f64vec2) GroupNonUniformQuadBroadcast 35 365 58
+             367:    184(ptr) AccessChain 24(data) 25 360 172 26
+             368:18(float64_t) CompositeExtract 366 0
+                              Store 367 368
+             369:    184(ptr) AccessChain 24(data) 25 360 172 58
+             370:18(float64_t) CompositeExtract 366 1
+                              Store 369 370
              371:     27(ptr) AccessChain 10(dti) 26
              372:      6(int) Load 371
-             373:     32(ptr) AccessChain 24(data) 25 372 25
-             374:   13(ivec4) Load 373
-             375:   51(ivec2) VectorShuffle 374 374 0 1
-             376:   51(ivec2) GroupNonUniformQuadBroadcast 35 375 358
-             377:     32(ptr) AccessChain 24(data) 25 370 25
-             378:   13(ivec4) Load 377
-             379:   13(ivec4) VectorShuffle 378 376 4 5 2 3
-                              Store 377 379
-             380:     27(ptr) AccessChain 10(dti) 26
-             381:      6(int) Load 380
-             382:     27(ptr) AccessChain 10(dti) 26
-             383:      6(int) Load 382
-             384:     32(ptr) AccessChain 24(data) 25 383 25
-             385:   13(ivec4) Load 384
-             386:    7(ivec3) VectorShuffle 385 385 0 1 2
-             387:    7(ivec3) GroupNonUniformQuadBroadcast 35 386 358
-             388:     32(ptr) AccessChain 24(data) 25 381 25
-             389:   13(ivec4) Load 388
-             390:   13(ivec4) VectorShuffle 389 387 4 5 6 3
-                              Store 388 390
-             391:     27(ptr) AccessChain 10(dti) 26
-             392:      6(int) Load 391
+             373:     27(ptr) AccessChain 10(dti) 26
+             374:      6(int) Load 373
+             375:    175(ptr) AccessChain 24(data) 25 374 172
+             376: 19(f64vec4) Load 375
+             377:206(f64vec3) VectorShuffle 376 376 0 1 2
+             378:206(f64vec3) GroupNonUniformQuadBroadcast 35 377 58
+             379:    184(ptr) AccessChain 24(data) 25 372 172 26
+             380:18(float64_t) CompositeExtract 378 0
+                              Store 379 380
+             381:    184(ptr) AccessChain 24(data) 25 372 172 58
+             382:18(float64_t) CompositeExtract 378 1
+                              Store 381 382
+             383:    184(ptr) AccessChain 24(data) 25 372 172 73
+             384:18(float64_t) CompositeExtract 378 2
+                              Store 383 384
+             385:     27(ptr) AccessChain 10(dti) 26
+             386:      6(int) Load 385
+             387:     27(ptr) AccessChain 10(dti) 26
+             388:      6(int) Load 387
+             389:     32(ptr) AccessChain 24(data) 25 388 25
+             390:   13(ivec4) Load 389
+             391:   13(ivec4) GroupNonUniformQuadBroadcast 35 390 73
+             392:     32(ptr) AccessChain 24(data) 25 386 25
+                              Store 392 391
              393:     27(ptr) AccessChain 10(dti) 26
              394:      6(int) Load 393
-             395:     75(ptr) AccessChain 24(data) 25 394 72
-             396:   15(ivec4) Load 395
-             397:   15(ivec4) GroupNonUniformQuadBroadcast 35 396 358
-             398:     75(ptr) AccessChain 24(data) 25 392 72
-                              Store 398 397
-             399:     27(ptr) AccessChain 10(dti) 26
-             400:      6(int) Load 399
+             395:     27(ptr) AccessChain 10(dti) 26
+             396:      6(int) Load 395
+             397:     42(ptr) AccessChain 24(data) 25 396 25 26
+             398:      6(int) Load 397
+             399:      6(int) GroupNonUniformQuadBroadcast 35 398 73
+             400:     42(ptr) AccessChain 24(data) 25 394 25 26
+                              Store 400 399
              401:     27(ptr) AccessChain 10(dti) 26
              402:      6(int) Load 401
-             403:     84(ptr) AccessChain 24(data) 25 402 72 26
-             404:     14(int) Load 403
-             405:     14(int) GroupNonUniformQuadBroadcast 35 404 358
-             406:     84(ptr) AccessChain 24(data) 25 400 72 26
-                              Store 406 405
-             407:     27(ptr) AccessChain 10(dti) 26
-             408:      6(int) Load 407
-             409:     27(ptr) AccessChain 10(dti) 26
-             410:      6(int) Load 409
-             411:     75(ptr) AccessChain 24(data) 25 410 72
-             412:   15(ivec4) Load 411
-             413:   93(ivec2) VectorShuffle 412 412 0 1
-             414:   93(ivec2) GroupNonUniformQuadBroadcast 35 413 358
-             415:     75(ptr) AccessChain 24(data) 25 408 72
-             416:   15(ivec4) Load 415
-             417:   15(ivec4) VectorShuffle 416 414 4 5 2 3
-                              Store 415 417
-             418:     27(ptr) AccessChain 10(dti) 26
-             419:      6(int) Load 418
-             420:     27(ptr) AccessChain 10(dti) 26
-             421:      6(int) Load 420
-             422:     75(ptr) AccessChain 24(data) 25 421 72
-             423:   15(ivec4) Load 422
-             424:  105(ivec3) VectorShuffle 423 423 0 1 2
-             425:  105(ivec3) GroupNonUniformQuadBroadcast 35 424 358
-             426:     75(ptr) AccessChain 24(data) 25 419 72
-             427:   15(ivec4) Load 426
-             428:   15(ivec4) VectorShuffle 427 425 4 5 6 3
-                              Store 426 428
+             403:     27(ptr) AccessChain 10(dti) 26
+             404:      6(int) Load 403
+             405:     32(ptr) AccessChain 24(data) 25 404 25
+             406:   13(ivec4) Load 405
+             407:   51(ivec2) VectorShuffle 406 406 0 1
+             408:   51(ivec2) GroupNonUniformQuadBroadcast 35 407 73
+             409:     42(ptr) AccessChain 24(data) 25 402 25 26
+             410:      6(int) CompositeExtract 408 0
+                              Store 409 410
+             411:     42(ptr) AccessChain 24(data) 25 402 25 58
+             412:      6(int) CompositeExtract 408 1
+                              Store 411 412
+             413:     27(ptr) AccessChain 10(dti) 26
+             414:      6(int) Load 413
+             415:     27(ptr) AccessChain 10(dti) 26
+             416:      6(int) Load 415
+             417:     32(ptr) AccessChain 24(data) 25 416 25
+             418:   13(ivec4) Load 417
+             419:    7(ivec3) VectorShuffle 418 418 0 1 2
+             420:    7(ivec3) GroupNonUniformQuadBroadcast 35 419 73
+             421:     42(ptr) AccessChain 24(data) 25 414 25 26
+             422:      6(int) CompositeExtract 420 0
+                              Store 421 422
+             423:     42(ptr) AccessChain 24(data) 25 414 25 58
+             424:      6(int) CompositeExtract 420 1
+                              Store 423 424
+             425:     42(ptr) AccessChain 24(data) 25 414 25 73
+             426:      6(int) CompositeExtract 420 2
+                              Store 425 426
+             427:     27(ptr) AccessChain 10(dti) 26
+             428:      6(int) Load 427
              429:     27(ptr) AccessChain 10(dti) 26
              430:      6(int) Load 429
-             431:     27(ptr) AccessChain 10(dti) 26
-             432:      6(int) Load 431
-             433:    118(ptr) AccessChain 24(data) 25 432 115
-             434:   17(fvec4) Load 433
-             435:   17(fvec4) GroupNonUniformQuadBroadcast 35 434 358
-             436:    118(ptr) AccessChain 24(data) 25 430 115
-                              Store 436 435
+             431:     81(ptr) AccessChain 24(data) 25 430 78
+             432:   15(ivec4) Load 431
+             433:   15(ivec4) GroupNonUniformQuadBroadcast 35 432 73
+             434:     81(ptr) AccessChain 24(data) 25 428 78
+                              Store 434 433
+             435:     27(ptr) AccessChain 10(dti) 26
+             436:      6(int) Load 435
              437:     27(ptr) AccessChain 10(dti) 26
              438:      6(int) Load 437
-             439:     27(ptr) AccessChain 10(dti) 26
-             440:      6(int) Load 439
-             441:    127(ptr) AccessChain 24(data) 25 440 115 26
-             442:   16(float) Load 441
-             443:   16(float) GroupNonUniformQuadBroadcast 35 442 358
-             444:    127(ptr) AccessChain 24(data) 25 438 115 26
-                              Store 444 443
+             439:     90(ptr) AccessChain 24(data) 25 438 78 26
+             440:     14(int) Load 439
+             441:     14(int) GroupNonUniformQuadBroadcast 35 440 73
+             442:     90(ptr) AccessChain 24(data) 25 436 78 26
+                              Store 442 441
+             443:     27(ptr) AccessChain 10(dti) 26
+             444:      6(int) Load 443
              445:     27(ptr) AccessChain 10(dti) 26
              446:      6(int) Load 445
-             447:     27(ptr) AccessChain 10(dti) 26
-             448:      6(int) Load 447
-             449:    118(ptr) AccessChain 24(data) 25 448 115
-             450:   17(fvec4) Load 449
-             451:  136(fvec2) VectorShuffle 450 450 0 1
-             452:  136(fvec2) GroupNonUniformQuadBroadcast 35 451 358
-             453:    118(ptr) AccessChain 24(data) 25 446 115
-             454:   17(fvec4) Load 453
-             455:   17(fvec4) VectorShuffle 454 452 4 5 2 3
-                              Store 453 455
-             456:     27(ptr) AccessChain 10(dti) 26
-             457:      6(int) Load 456
-             458:     27(ptr) AccessChain 10(dti) 26
-             459:      6(int) Load 458
-             460:    118(ptr) AccessChain 24(data) 25 459 115
-             461:   17(fvec4) Load 460
-             462:  148(fvec3) VectorShuffle 461 461 0 1 2
-             463:  148(fvec3) GroupNonUniformQuadBroadcast 35 462 358
-             464:    118(ptr) AccessChain 24(data) 25 457 115
-             465:   17(fvec4) Load 464
-             466:   17(fvec4) VectorShuffle 465 463 4 5 6 3
-                              Store 464 466
-             467:     27(ptr) AccessChain 10(dti) 26
-             468:      6(int) Load 467
+             447:     81(ptr) AccessChain 24(data) 25 446 78
+             448:   15(ivec4) Load 447
+             449:   99(ivec2) VectorShuffle 448 448 0 1
+             450:   99(ivec2) GroupNonUniformQuadBroadcast 35 449 73
+             451:     90(ptr) AccessChain 24(data) 25 444 78 26
+             452:     14(int) CompositeExtract 450 0
+                              Store 451 452
+             453:     90(ptr) AccessChain 24(data) 25 444 78 58
+             454:     14(int) CompositeExtract 450 1
+                              Store 453 454
+             455:     27(ptr) AccessChain 10(dti) 26
+             456:      6(int) Load 455
+             457:     27(ptr) AccessChain 10(dti) 26
+             458:      6(int) Load 457
+             459:     81(ptr) AccessChain 24(data) 25 458 78
+             460:   15(ivec4) Load 459
+             461:  112(ivec3) VectorShuffle 460 460 0 1 2
+             462:  112(ivec3) GroupNonUniformQuadBroadcast 35 461 73
+             463:     90(ptr) AccessChain 24(data) 25 456 78 26
+             464:     14(int) CompositeExtract 462 0
+                              Store 463 464
+             465:     90(ptr) AccessChain 24(data) 25 456 78 58
+             466:     14(int) CompositeExtract 462 1
+                              Store 465 466
+             467:     90(ptr) AccessChain 24(data) 25 456 78 73
+             468:     14(int) CompositeExtract 462 2
+                              Store 467 468
              469:     27(ptr) AccessChain 10(dti) 26
              470:      6(int) Load 469
-             471:    161(ptr) AccessChain 24(data) 25 470 158
-             472: 19(f64vec4) Load 471
-             473: 19(f64vec4) GroupNonUniformQuadBroadcast 35 472 358
-             474:    161(ptr) AccessChain 24(data) 25 468 158
-                              Store 474 473
-             475:     27(ptr) AccessChain 10(dti) 26
-             476:      6(int) Load 475
+             471:     27(ptr) AccessChain 10(dti) 26
+             472:      6(int) Load 471
+             473:    128(ptr) AccessChain 24(data) 25 472 125
+             474:   17(fvec4) Load 473
+             475:   17(fvec4) GroupNonUniformQuadBroadcast 35 474 73
+             476:    128(ptr) AccessChain 24(data) 25 470 125
+                              Store 476 475
              477:     27(ptr) AccessChain 10(dti) 26
              478:      6(int) Load 477
-             479:    170(ptr) AccessChain 24(data) 25 478 158 26
-             480:18(float64_t) Load 479
-             481:18(float64_t) GroupNonUniformQuadBroadcast 35 480 358
-             482:    170(ptr) AccessChain 24(data) 25 476 158 26
-                              Store 482 481
-             483:     27(ptr) AccessChain 10(dti) 26
-             484:      6(int) Load 483
+             479:     27(ptr) AccessChain 10(dti) 26
+             480:      6(int) Load 479
+             481:    137(ptr) AccessChain 24(data) 25 480 125 26
+             482:   16(float) Load 481
+             483:   16(float) GroupNonUniformQuadBroadcast 35 482 73
+             484:    137(ptr) AccessChain 24(data) 25 478 125 26
+                              Store 484 483
              485:     27(ptr) AccessChain 10(dti) 26
              486:      6(int) Load 485
-             487:    161(ptr) AccessChain 24(data) 25 486 158
-             488: 19(f64vec4) Load 487
-             489:179(f64vec2) VectorShuffle 488 488 0 1
-             490:179(f64vec2) GroupNonUniformQuadBroadcast 35 489 358
-             491:    161(ptr) AccessChain 24(data) 25 484 158
-             492: 19(f64vec4) Load 491
-             493: 19(f64vec4) VectorShuffle 492 490 4 5 2 3
-                              Store 491 493
-             494:     27(ptr) AccessChain 10(dti) 26
-             495:      6(int) Load 494
-             496:     27(ptr) AccessChain 10(dti) 26
-             497:      6(int) Load 496
-             498:    161(ptr) AccessChain 24(data) 25 497 158
-             499: 19(f64vec4) Load 498
-             500:191(f64vec3) VectorShuffle 499 499 0 1 2
-             501:191(f64vec3) GroupNonUniformQuadBroadcast 35 500 358
-             502:    161(ptr) AccessChain 24(data) 25 495 158
-             503: 19(f64vec4) Load 502
-             504: 19(f64vec4) VectorShuffle 503 501 4 5 6 3
-                              Store 502 504
-             505:     27(ptr) AccessChain 10(dti) 26
-             506:      6(int) Load 505
-             507:     27(ptr) AccessChain 10(dti) 26
-             508:      6(int) Load 507
-             509:     32(ptr) AccessChain 24(data) 25 508 25
-             510:   13(ivec4) Load 509
-             511:   13(ivec4) GroupNonUniformQuadBroadcast 35 510 35
-             512:     32(ptr) AccessChain 24(data) 25 506 25
-                              Store 512 511
+             487:     27(ptr) AccessChain 10(dti) 26
+             488:      6(int) Load 487
+             489:    128(ptr) AccessChain 24(data) 25 488 125
+             490:   17(fvec4) Load 489
+             491:  146(fvec2) VectorShuffle 490 490 0 1
+             492:  146(fvec2) GroupNonUniformQuadBroadcast 35 491 73
+             493:    137(ptr) AccessChain 24(data) 25 486 125 26
+             494:   16(float) CompositeExtract 492 0
+                              Store 493 494
+             495:    137(ptr) AccessChain 24(data) 25 486 125 58
+             496:   16(float) CompositeExtract 492 1
+                              Store 495 496
+             497:     27(ptr) AccessChain 10(dti) 26
+             498:      6(int) Load 497
+             499:     27(ptr) AccessChain 10(dti) 26
+             500:      6(int) Load 499
+             501:    128(ptr) AccessChain 24(data) 25 500 125
+             502:   17(fvec4) Load 501
+             503:  159(fvec3) VectorShuffle 502 502 0 1 2
+             504:  159(fvec3) GroupNonUniformQuadBroadcast 35 503 73
+             505:    137(ptr) AccessChain 24(data) 25 498 125 26
+             506:   16(float) CompositeExtract 504 0
+                              Store 505 506
+             507:    137(ptr) AccessChain 24(data) 25 498 125 58
+             508:   16(float) CompositeExtract 504 1
+                              Store 507 508
+             509:    137(ptr) AccessChain 24(data) 25 498 125 73
+             510:   16(float) CompositeExtract 504 2
+                              Store 509 510
+             511:     27(ptr) AccessChain 10(dti) 26
+             512:      6(int) Load 511
              513:     27(ptr) AccessChain 10(dti) 26
              514:      6(int) Load 513
-             515:     27(ptr) AccessChain 10(dti) 26
-             516:      6(int) Load 515
-             517:     42(ptr) AccessChain 24(data) 25 516 25 26
-             518:      6(int) Load 517
-             519:      6(int) GroupNonUniformQuadBroadcast 35 518 35
-             520:     42(ptr) AccessChain 24(data) 25 514 25 26
-                              Store 520 519
+             515:    175(ptr) AccessChain 24(data) 25 514 172
+             516: 19(f64vec4) Load 515
+             517: 19(f64vec4) GroupNonUniformQuadBroadcast 35 516 73
+             518:    175(ptr) AccessChain 24(data) 25 512 172
+                              Store 518 517
+             519:     27(ptr) AccessChain 10(dti) 26
+             520:      6(int) Load 519
              521:     27(ptr) AccessChain 10(dti) 26
              522:      6(int) Load 521
-             523:     27(ptr) AccessChain 10(dti) 26
-             524:      6(int) Load 523
-             525:     32(ptr) AccessChain 24(data) 25 524 25
-             526:   13(ivec4) Load 525
-             527:   51(ivec2) VectorShuffle 526 526 0 1
-             528:   51(ivec2) GroupNonUniformQuadBroadcast 35 527 35
-             529:     32(ptr) AccessChain 24(data) 25 522 25
-             530:   13(ivec4) Load 529
-             531:   13(ivec4) VectorShuffle 530 528 4 5 2 3
-                              Store 529 531
-             532:     27(ptr) AccessChain 10(dti) 26
-             533:      6(int) Load 532
-             534:     27(ptr) AccessChain 10(dti) 26
-             535:      6(int) Load 534
-             536:     32(ptr) AccessChain 24(data) 25 535 25
-             537:   13(ivec4) Load 536
-             538:    7(ivec3) VectorShuffle 537 537 0 1 2
-             539:    7(ivec3) GroupNonUniformQuadBroadcast 35 538 35
-             540:     32(ptr) AccessChain 24(data) 25 533 25
-             541:   13(ivec4) Load 540
-             542:   13(ivec4) VectorShuffle 541 539 4 5 6 3
-                              Store 540 542
-             543:     27(ptr) AccessChain 10(dti) 26
-             544:      6(int) Load 543
-             545:     27(ptr) AccessChain 10(dti) 26
-             546:      6(int) Load 545
-             547:     75(ptr) AccessChain 24(data) 25 546 72
-             548:   15(ivec4) Load 547
-             549:   15(ivec4) GroupNonUniformQuadBroadcast 35 548 35
-             550:     75(ptr) AccessChain 24(data) 25 544 72
-                              Store 550 549
-             551:     27(ptr) AccessChain 10(dti) 26
-             552:      6(int) Load 551
+             523:    184(ptr) AccessChain 24(data) 25 522 172 26
+             524:18(float64_t) Load 523
+             525:18(float64_t) GroupNonUniformQuadBroadcast 35 524 73
+             526:    184(ptr) AccessChain 24(data) 25 520 172 26
+                              Store 526 525
+             527:     27(ptr) AccessChain 10(dti) 26
+             528:      6(int) Load 527
+             529:     27(ptr) AccessChain 10(dti) 26
+             530:      6(int) Load 529
+             531:    175(ptr) AccessChain 24(data) 25 530 172
+             532: 19(f64vec4) Load 531
+             533:193(f64vec2) VectorShuffle 532 532 0 1
+             534:193(f64vec2) GroupNonUniformQuadBroadcast 35 533 73
+             535:    184(ptr) AccessChain 24(data) 25 528 172 26
+             536:18(float64_t) CompositeExtract 534 0
+                              Store 535 536
+             537:    184(ptr) AccessChain 24(data) 25 528 172 58
+             538:18(float64_t) CompositeExtract 534 1
+                              Store 537 538
+             539:     27(ptr) AccessChain 10(dti) 26
+             540:      6(int) Load 539
+             541:     27(ptr) AccessChain 10(dti) 26
+             542:      6(int) Load 541
+             543:    175(ptr) AccessChain 24(data) 25 542 172
+             544: 19(f64vec4) Load 543
+             545:206(f64vec3) VectorShuffle 544 544 0 1 2
+             546:206(f64vec3) GroupNonUniformQuadBroadcast 35 545 73
+             547:    184(ptr) AccessChain 24(data) 25 540 172 26
+             548:18(float64_t) CompositeExtract 546 0
+                              Store 547 548
+             549:    184(ptr) AccessChain 24(data) 25 540 172 58
+             550:18(float64_t) CompositeExtract 546 1
+                              Store 549 550
+             551:    184(ptr) AccessChain 24(data) 25 540 172 73
+             552:18(float64_t) CompositeExtract 546 2
+                              Store 551 552
              553:     27(ptr) AccessChain 10(dti) 26
              554:      6(int) Load 553
-             555:     84(ptr) AccessChain 24(data) 25 554 72 26
-             556:     14(int) Load 555
-             557:     14(int) GroupNonUniformQuadBroadcast 35 556 35
-             558:     84(ptr) AccessChain 24(data) 25 552 72 26
-                              Store 558 557
-             559:     27(ptr) AccessChain 10(dti) 26
-             560:      6(int) Load 559
+             555:     27(ptr) AccessChain 10(dti) 26
+             556:      6(int) Load 555
+             557:     32(ptr) AccessChain 24(data) 25 556 25
+             558:   13(ivec4) Load 557
+             559:   13(ivec4) GroupNonUniformQuadBroadcast 35 558 35
+             560:     32(ptr) AccessChain 24(data) 25 554 25
+                              Store 560 559
              561:     27(ptr) AccessChain 10(dti) 26
              562:      6(int) Load 561
-             563:     75(ptr) AccessChain 24(data) 25 562 72
-             564:   15(ivec4) Load 563
-             565:   93(ivec2) VectorShuffle 564 564 0 1
-             566:   93(ivec2) GroupNonUniformQuadBroadcast 35 565 35
-             567:     75(ptr) AccessChain 24(data) 25 560 72
-             568:   15(ivec4) Load 567
-             569:   15(ivec4) VectorShuffle 568 566 4 5 2 3
-                              Store 567 569
-             570:     27(ptr) AccessChain 10(dti) 26
-             571:      6(int) Load 570
-             572:     27(ptr) AccessChain 10(dti) 26
-             573:      6(int) Load 572
-             574:     75(ptr) AccessChain 24(data) 25 573 72
-             575:   15(ivec4) Load 574
-             576:  105(ivec3) VectorShuffle 575 575 0 1 2
-             577:  105(ivec3) GroupNonUniformQuadBroadcast 35 576 35
-             578:     75(ptr) AccessChain 24(data) 25 571 72
-             579:   15(ivec4) Load 578
-             580:   15(ivec4) VectorShuffle 579 577 4 5 6 3
-                              Store 578 580
+             563:     27(ptr) AccessChain 10(dti) 26
+             564:      6(int) Load 563
+             565:     42(ptr) AccessChain 24(data) 25 564 25 26
+             566:      6(int) Load 565
+             567:      6(int) GroupNonUniformQuadBroadcast 35 566 35
+             568:     42(ptr) AccessChain 24(data) 25 562 25 26
+                              Store 568 567
+             569:     27(ptr) AccessChain 10(dti) 26
+             570:      6(int) Load 569
+             571:     27(ptr) AccessChain 10(dti) 26
+             572:      6(int) Load 571
+             573:     32(ptr) AccessChain 24(data) 25 572 25
+             574:   13(ivec4) Load 573
+             575:   51(ivec2) VectorShuffle 574 574 0 1
+             576:   51(ivec2) GroupNonUniformQuadBroadcast 35 575 35
+             577:     42(ptr) AccessChain 24(data) 25 570 25 26
+             578:      6(int) CompositeExtract 576 0
+                              Store 577 578
+             579:     42(ptr) AccessChain 24(data) 25 570 25 58
+             580:      6(int) CompositeExtract 576 1
+                              Store 579 580
              581:     27(ptr) AccessChain 10(dti) 26
              582:      6(int) Load 581
              583:     27(ptr) AccessChain 10(dti) 26
              584:      6(int) Load 583
-             585:    118(ptr) AccessChain 24(data) 25 584 115
-             586:   17(fvec4) Load 585
-             587:   17(fvec4) GroupNonUniformQuadBroadcast 35 586 35
-             588:    118(ptr) AccessChain 24(data) 25 582 115
-                              Store 588 587
-             589:     27(ptr) AccessChain 10(dti) 26
-             590:      6(int) Load 589
-             591:     27(ptr) AccessChain 10(dti) 26
-             592:      6(int) Load 591
-             593:    127(ptr) AccessChain 24(data) 25 592 115 26
-             594:   16(float) Load 593
-             595:   16(float) GroupNonUniformQuadBroadcast 35 594 35
-             596:    127(ptr) AccessChain 24(data) 25 590 115 26
-                              Store 596 595
+             585:     32(ptr) AccessChain 24(data) 25 584 25
+             586:   13(ivec4) Load 585
+             587:    7(ivec3) VectorShuffle 586 586 0 1 2
+             588:    7(ivec3) GroupNonUniformQuadBroadcast 35 587 35
+             589:     42(ptr) AccessChain 24(data) 25 582 25 26
+             590:      6(int) CompositeExtract 588 0
+                              Store 589 590
+             591:     42(ptr) AccessChain 24(data) 25 582 25 58
+             592:      6(int) CompositeExtract 588 1
+                              Store 591 592
+             593:     42(ptr) AccessChain 24(data) 25 582 25 73
+             594:      6(int) CompositeExtract 588 2
+                              Store 593 594
+             595:     27(ptr) AccessChain 10(dti) 26
+             596:      6(int) Load 595
              597:     27(ptr) AccessChain 10(dti) 26
              598:      6(int) Load 597
-             599:     27(ptr) AccessChain 10(dti) 26
-             600:      6(int) Load 599
-             601:    118(ptr) AccessChain 24(data) 25 600 115
-             602:   17(fvec4) Load 601
-             603:  136(fvec2) VectorShuffle 602 602 0 1
-             604:  136(fvec2) GroupNonUniformQuadBroadcast 35 603 35
-             605:    118(ptr) AccessChain 24(data) 25 598 115
-             606:   17(fvec4) Load 605
-             607:   17(fvec4) VectorShuffle 606 604 4 5 2 3
-                              Store 605 607
-             608:     27(ptr) AccessChain 10(dti) 26
-             609:      6(int) Load 608
-             610:     27(ptr) AccessChain 10(dti) 26
-             611:      6(int) Load 610
-             612:    118(ptr) AccessChain 24(data) 25 611 115
-             613:   17(fvec4) Load 612
-             614:  148(fvec3) VectorShuffle 613 613 0 1 2
-             615:  148(fvec3) GroupNonUniformQuadBroadcast 35 614 35
-             616:    118(ptr) AccessChain 24(data) 25 609 115
-             617:   17(fvec4) Load 616
-             618:   17(fvec4) VectorShuffle 617 615 4 5 6 3
-                              Store 616 618
-             619:     27(ptr) AccessChain 10(dti) 26
-             620:      6(int) Load 619
-             621:     27(ptr) AccessChain 10(dti) 26
-             622:      6(int) Load 621
-             623:    161(ptr) AccessChain 24(data) 25 622 158
-             624: 19(f64vec4) Load 623
-             625: 19(f64vec4) GroupNonUniformQuadBroadcast 35 624 35
-             626:    161(ptr) AccessChain 24(data) 25 620 158
-                              Store 626 625
-             627:     27(ptr) AccessChain 10(dti) 26
-             628:      6(int) Load 627
-             629:     27(ptr) AccessChain 10(dti) 26
-             630:      6(int) Load 629
-             631:    170(ptr) AccessChain 24(data) 25 630 158 26
-             632:18(float64_t) Load 631
-             633:18(float64_t) GroupNonUniformQuadBroadcast 35 632 35
-             634:    170(ptr) AccessChain 24(data) 25 628 158 26
-                              Store 634 633
-             635:     27(ptr) AccessChain 10(dti) 26
-             636:      6(int) Load 635
+             599:     81(ptr) AccessChain 24(data) 25 598 78
+             600:   15(ivec4) Load 599
+             601:   15(ivec4) GroupNonUniformQuadBroadcast 35 600 35
+             602:     81(ptr) AccessChain 24(data) 25 596 78
+                              Store 602 601
+             603:     27(ptr) AccessChain 10(dti) 26
+             604:      6(int) Load 603
+             605:     27(ptr) AccessChain 10(dti) 26
+             606:      6(int) Load 605
+             607:     90(ptr) AccessChain 24(data) 25 606 78 26
+             608:     14(int) Load 607
+             609:     14(int) GroupNonUniformQuadBroadcast 35 608 35
+             610:     90(ptr) AccessChain 24(data) 25 604 78 26
+                              Store 610 609
+             611:     27(ptr) AccessChain 10(dti) 26
+             612:      6(int) Load 611
+             613:     27(ptr) AccessChain 10(dti) 26
+             614:      6(int) Load 613
+             615:     81(ptr) AccessChain 24(data) 25 614 78
+             616:   15(ivec4) Load 615
+             617:   99(ivec2) VectorShuffle 616 616 0 1
+             618:   99(ivec2) GroupNonUniformQuadBroadcast 35 617 35
+             619:     90(ptr) AccessChain 24(data) 25 612 78 26
+             620:     14(int) CompositeExtract 618 0
+                              Store 619 620
+             621:     90(ptr) AccessChain 24(data) 25 612 78 58
+             622:     14(int) CompositeExtract 618 1
+                              Store 621 622
+             623:     27(ptr) AccessChain 10(dti) 26
+             624:      6(int) Load 623
+             625:     27(ptr) AccessChain 10(dti) 26
+             626:      6(int) Load 625
+             627:     81(ptr) AccessChain 24(data) 25 626 78
+             628:   15(ivec4) Load 627
+             629:  112(ivec3) VectorShuffle 628 628 0 1 2
+             630:  112(ivec3) GroupNonUniformQuadBroadcast 35 629 35
+             631:     90(ptr) AccessChain 24(data) 25 624 78 26
+             632:     14(int) CompositeExtract 630 0
+                              Store 631 632
+             633:     90(ptr) AccessChain 24(data) 25 624 78 58
+             634:     14(int) CompositeExtract 630 1
+                              Store 633 634
+             635:     90(ptr) AccessChain 24(data) 25 624 78 73
+             636:     14(int) CompositeExtract 630 2
+                              Store 635 636
              637:     27(ptr) AccessChain 10(dti) 26
              638:      6(int) Load 637
-             639:    161(ptr) AccessChain 24(data) 25 638 158
-             640: 19(f64vec4) Load 639
-             641:179(f64vec2) VectorShuffle 640 640 0 1
-             642:179(f64vec2) GroupNonUniformQuadBroadcast 35 641 35
-             643:    161(ptr) AccessChain 24(data) 25 636 158
-             644: 19(f64vec4) Load 643
-             645: 19(f64vec4) VectorShuffle 644 642 4 5 2 3
-                              Store 643 645
-             646:     27(ptr) AccessChain 10(dti) 26
-             647:      6(int) Load 646
-             648:     27(ptr) AccessChain 10(dti) 26
-             649:      6(int) Load 648
-             650:    161(ptr) AccessChain 24(data) 25 649 158
-             651: 19(f64vec4) Load 650
-             652:191(f64vec3) VectorShuffle 651 651 0 1 2
-             653:191(f64vec3) GroupNonUniformQuadBroadcast 35 652 35
-             654:    161(ptr) AccessChain 24(data) 25 647 158
-             655: 19(f64vec4) Load 654
-             656: 19(f64vec4) VectorShuffle 655 653 4 5 6 3
-                              Store 654 656
-             657:     27(ptr) AccessChain 10(dti) 26
-             658:      6(int) Load 657
-             659:     27(ptr) AccessChain 10(dti) 26
-             660:      6(int) Load 659
-             661:     32(ptr) AccessChain 24(data) 25 660 25
-             662:   13(ivec4) Load 661
-             663:   13(ivec4) GroupNonUniformQuadSwap 35 662 26
-             664:     32(ptr) AccessChain 24(data) 25 658 25
-                              Store 664 663
+             639:     27(ptr) AccessChain 10(dti) 26
+             640:      6(int) Load 639
+             641:    128(ptr) AccessChain 24(data) 25 640 125
+             642:   17(fvec4) Load 641
+             643:   17(fvec4) GroupNonUniformQuadBroadcast 35 642 35
+             644:    128(ptr) AccessChain 24(data) 25 638 125
+                              Store 644 643
+             645:     27(ptr) AccessChain 10(dti) 26
+             646:      6(int) Load 645
+             647:     27(ptr) AccessChain 10(dti) 26
+             648:      6(int) Load 647
+             649:    137(ptr) AccessChain 24(data) 25 648 125 26
+             650:   16(float) Load 649
+             651:   16(float) GroupNonUniformQuadBroadcast 35 650 35
+             652:    137(ptr) AccessChain 24(data) 25 646 125 26
+                              Store 652 651
+             653:     27(ptr) AccessChain 10(dti) 26
+             654:      6(int) Load 653
+             655:     27(ptr) AccessChain 10(dti) 26
+             656:      6(int) Load 655
+             657:    128(ptr) AccessChain 24(data) 25 656 125
+             658:   17(fvec4) Load 657
+             659:  146(fvec2) VectorShuffle 658 658 0 1
+             660:  146(fvec2) GroupNonUniformQuadBroadcast 35 659 35
+             661:    137(ptr) AccessChain 24(data) 25 654 125 26
+             662:   16(float) CompositeExtract 660 0
+                              Store 661 662
+             663:    137(ptr) AccessChain 24(data) 25 654 125 58
+             664:   16(float) CompositeExtract 660 1
+                              Store 663 664
              665:     27(ptr) AccessChain 10(dti) 26
              666:      6(int) Load 665
              667:     27(ptr) AccessChain 10(dti) 26
              668:      6(int) Load 667
-             669:     42(ptr) AccessChain 24(data) 25 668 25 26
-             670:      6(int) Load 669
-             671:      6(int) GroupNonUniformQuadSwap 35 670 26
-             672:     42(ptr) AccessChain 24(data) 25 666 25 26
-                              Store 672 671
-             673:     27(ptr) AccessChain 10(dti) 26
-             674:      6(int) Load 673
-             675:     27(ptr) AccessChain 10(dti) 26
-             676:      6(int) Load 675
-             677:     32(ptr) AccessChain 24(data) 25 676 25
-             678:   13(ivec4) Load 677
-             679:   51(ivec2) VectorShuffle 678 678 0 1
-             680:   51(ivec2) GroupNonUniformQuadSwap 35 679 26
-             681:     32(ptr) AccessChain 24(data) 25 674 25
-             682:   13(ivec4) Load 681
-             683:   13(ivec4) VectorShuffle 682 680 4 5 2 3
-                              Store 681 683
-             684:     27(ptr) AccessChain 10(dti) 26
-             685:      6(int) Load 684
-             686:     27(ptr) AccessChain 10(dti) 26
-             687:      6(int) Load 686
-             688:     32(ptr) AccessChain 24(data) 25 687 25
-             689:   13(ivec4) Load 688
-             690:    7(ivec3) VectorShuffle 689 689 0 1 2
-             691:    7(ivec3) GroupNonUniformQuadSwap 35 690 26
-             692:     32(ptr) AccessChain 24(data) 25 685 25
-             693:   13(ivec4) Load 692
-             694:   13(ivec4) VectorShuffle 693 691 4 5 6 3
-                              Store 692 694
+             669:    128(ptr) AccessChain 24(data) 25 668 125
+             670:   17(fvec4) Load 669
+             671:  159(fvec3) VectorShuffle 670 670 0 1 2
+             672:  159(fvec3) GroupNonUniformQuadBroadcast 35 671 35
+             673:    137(ptr) AccessChain 24(data) 25 666 125 26
+             674:   16(float) CompositeExtract 672 0
+                              Store 673 674
+             675:    137(ptr) AccessChain 24(data) 25 666 125 58
+             676:   16(float) CompositeExtract 672 1
+                              Store 675 676
+             677:    137(ptr) AccessChain 24(data) 25 666 125 73
+             678:   16(float) CompositeExtract 672 2
+                              Store 677 678
+             679:     27(ptr) AccessChain 10(dti) 26
+             680:      6(int) Load 679
+             681:     27(ptr) AccessChain 10(dti) 26
+             682:      6(int) Load 681
+             683:    175(ptr) AccessChain 24(data) 25 682 172
+             684: 19(f64vec4) Load 683
+             685: 19(f64vec4) GroupNonUniformQuadBroadcast 35 684 35
+             686:    175(ptr) AccessChain 24(data) 25 680 172
+                              Store 686 685
+             687:     27(ptr) AccessChain 10(dti) 26
+             688:      6(int) Load 687
+             689:     27(ptr) AccessChain 10(dti) 26
+             690:      6(int) Load 689
+             691:    184(ptr) AccessChain 24(data) 25 690 172 26
+             692:18(float64_t) Load 691
+             693:18(float64_t) GroupNonUniformQuadBroadcast 35 692 35
+             694:    184(ptr) AccessChain 24(data) 25 688 172 26
+                              Store 694 693
              695:     27(ptr) AccessChain 10(dti) 26
              696:      6(int) Load 695
              697:     27(ptr) AccessChain 10(dti) 26
              698:      6(int) Load 697
-             699:     75(ptr) AccessChain 24(data) 25 698 72
-             700:   15(ivec4) Load 699
-             701:   15(ivec4) GroupNonUniformQuadSwap 35 700 26
-             702:     75(ptr) AccessChain 24(data) 25 696 72
-                              Store 702 701
-             703:     27(ptr) AccessChain 10(dti) 26
-             704:      6(int) Load 703
-             705:     27(ptr) AccessChain 10(dti) 26
-             706:      6(int) Load 705
-             707:     84(ptr) AccessChain 24(data) 25 706 72 26
-             708:     14(int) Load 707
-             709:     14(int) GroupNonUniformQuadSwap 35 708 26
-             710:     84(ptr) AccessChain 24(data) 25 704 72 26
-                              Store 710 709
-             711:     27(ptr) AccessChain 10(dti) 26
-             712:      6(int) Load 711
-             713:     27(ptr) AccessChain 10(dti) 26
-             714:      6(int) Load 713
-             715:     75(ptr) AccessChain 24(data) 25 714 72
-             716:   15(ivec4) Load 715
-             717:   93(ivec2) VectorShuffle 716 716 0 1
-             718:   93(ivec2) GroupNonUniformQuadSwap 35 717 26
-             719:     75(ptr) AccessChain 24(data) 25 712 72
-             720:   15(ivec4) Load 719
-             721:   15(ivec4) VectorShuffle 720 718 4 5 2 3
-                              Store 719 721
-             722:     27(ptr) AccessChain 10(dti) 26
-             723:      6(int) Load 722
-             724:     27(ptr) AccessChain 10(dti) 26
-             725:      6(int) Load 724
-             726:     75(ptr) AccessChain 24(data) 25 725 72
-             727:   15(ivec4) Load 726
-             728:  105(ivec3) VectorShuffle 727 727 0 1 2
-             729:  105(ivec3) GroupNonUniformQuadSwap 35 728 26
-             730:     75(ptr) AccessChain 24(data) 25 723 72
-             731:   15(ivec4) Load 730
-             732:   15(ivec4) VectorShuffle 731 729 4 5 6 3
-                              Store 730 732
-             733:     27(ptr) AccessChain 10(dti) 26
+             699:    175(ptr) AccessChain 24(data) 25 698 172
+             700: 19(f64vec4) Load 699
+             701:193(f64vec2) VectorShuffle 700 700 0 1
+             702:193(f64vec2) GroupNonUniformQuadBroadcast 35 701 35
+             703:    184(ptr) AccessChain 24(data) 25 696 172 26
+             704:18(float64_t) CompositeExtract 702 0
+                              Store 703 704
+             705:    184(ptr) AccessChain 24(data) 25 696 172 58
+             706:18(float64_t) CompositeExtract 702 1
+                              Store 705 706
+             707:     27(ptr) AccessChain 10(dti) 26
+             708:      6(int) Load 707
+             709:     27(ptr) AccessChain 10(dti) 26
+             710:      6(int) Load 709
+             711:    175(ptr) AccessChain 24(data) 25 710 172
+             712: 19(f64vec4) Load 711
+             713:206(f64vec3) VectorShuffle 712 712 0 1 2
+             714:206(f64vec3) GroupNonUniformQuadBroadcast 35 713 35
+             715:    184(ptr) AccessChain 24(data) 25 708 172 26
+             716:18(float64_t) CompositeExtract 714 0
+                              Store 715 716
+             717:    184(ptr) AccessChain 24(data) 25 708 172 58
+             718:18(float64_t) CompositeExtract 714 1
+                              Store 717 718
+             719:    184(ptr) AccessChain 24(data) 25 708 172 73
+             720:18(float64_t) CompositeExtract 714 2
+                              Store 719 720
+             721:     27(ptr) AccessChain 10(dti) 26
+             722:      6(int) Load 721
+             723:     27(ptr) AccessChain 10(dti) 26
+             724:      6(int) Load 723
+             725:     32(ptr) AccessChain 24(data) 25 724 25
+             726:   13(ivec4) Load 725
+             727:   13(ivec4) GroupNonUniformQuadSwap 35 726 26
+             728:     32(ptr) AccessChain 24(data) 25 722 25
+                              Store 728 727
+             729:     27(ptr) AccessChain 10(dti) 26
+             730:      6(int) Load 729
+             731:     27(ptr) AccessChain 10(dti) 26
+             732:      6(int) Load 731
+             733:     42(ptr) AccessChain 24(data) 25 732 25 26
              734:      6(int) Load 733
-             735:     27(ptr) AccessChain 10(dti) 26
-             736:      6(int) Load 735
-             737:    118(ptr) AccessChain 24(data) 25 736 115
-             738:   17(fvec4) Load 737
-             739:   17(fvec4) GroupNonUniformQuadSwap 35 738 26
-             740:    118(ptr) AccessChain 24(data) 25 734 115
-                              Store 740 739
-             741:     27(ptr) AccessChain 10(dti) 26
-             742:      6(int) Load 741
-             743:     27(ptr) AccessChain 10(dti) 26
-             744:      6(int) Load 743
-             745:    127(ptr) AccessChain 24(data) 25 744 115 26
-             746:   16(float) Load 745
-             747:   16(float) GroupNonUniformQuadSwap 35 746 26
-             748:    127(ptr) AccessChain 24(data) 25 742 115 26
-                              Store 748 747
+             735:      6(int) GroupNonUniformQuadSwap 35 734 26
+             736:     42(ptr) AccessChain 24(data) 25 730 25 26
+                              Store 736 735
+             737:     27(ptr) AccessChain 10(dti) 26
+             738:      6(int) Load 737
+             739:     27(ptr) AccessChain 10(dti) 26
+             740:      6(int) Load 739
+             741:     32(ptr) AccessChain 24(data) 25 740 25
+             742:   13(ivec4) Load 741
+             743:   51(ivec2) VectorShuffle 742 742 0 1
+             744:   51(ivec2) GroupNonUniformQuadSwap 35 743 26
+             745:     42(ptr) AccessChain 24(data) 25 738 25 26
+             746:      6(int) CompositeExtract 744 0
+                              Store 745 746
+             747:     42(ptr) AccessChain 24(data) 25 738 25 58
+             748:      6(int) CompositeExtract 744 1
+                              Store 747 748
              749:     27(ptr) AccessChain 10(dti) 26
              750:      6(int) Load 749
              751:     27(ptr) AccessChain 10(dti) 26
              752:      6(int) Load 751
-             753:    118(ptr) AccessChain 24(data) 25 752 115
-             754:   17(fvec4) Load 753
-             755:  136(fvec2) VectorShuffle 754 754 0 1
-             756:  136(fvec2) GroupNonUniformQuadSwap 35 755 26
-             757:    118(ptr) AccessChain 24(data) 25 750 115
-             758:   17(fvec4) Load 757
-             759:   17(fvec4) VectorShuffle 758 756 4 5 2 3
-                              Store 757 759
-             760:     27(ptr) AccessChain 10(dti) 26
-             761:      6(int) Load 760
-             762:     27(ptr) AccessChain 10(dti) 26
-             763:      6(int) Load 762
-             764:    118(ptr) AccessChain 24(data) 25 763 115
-             765:   17(fvec4) Load 764
-             766:  148(fvec3) VectorShuffle 765 765 0 1 2
-             767:  148(fvec3) GroupNonUniformQuadSwap 35 766 26
-             768:    118(ptr) AccessChain 24(data) 25 761 115
-             769:   17(fvec4) Load 768
-             770:   17(fvec4) VectorShuffle 769 767 4 5 6 3
-                              Store 768 770
+             753:     32(ptr) AccessChain 24(data) 25 752 25
+             754:   13(ivec4) Load 753
+             755:    7(ivec3) VectorShuffle 754 754 0 1 2
+             756:    7(ivec3) GroupNonUniformQuadSwap 35 755 26
+             757:     42(ptr) AccessChain 24(data) 25 750 25 26
+             758:      6(int) CompositeExtract 756 0
+                              Store 757 758
+             759:     42(ptr) AccessChain 24(data) 25 750 25 58
+             760:      6(int) CompositeExtract 756 1
+                              Store 759 760
+             761:     42(ptr) AccessChain 24(data) 25 750 25 73
+             762:      6(int) CompositeExtract 756 2
+                              Store 761 762
+             763:     27(ptr) AccessChain 10(dti) 26
+             764:      6(int) Load 763
+             765:     27(ptr) AccessChain 10(dti) 26
+             766:      6(int) Load 765
+             767:     81(ptr) AccessChain 24(data) 25 766 78
+             768:   15(ivec4) Load 767
+             769:   15(ivec4) GroupNonUniformQuadSwap 35 768 26
+             770:     81(ptr) AccessChain 24(data) 25 764 78
+                              Store 770 769
              771:     27(ptr) AccessChain 10(dti) 26
              772:      6(int) Load 771
              773:     27(ptr) AccessChain 10(dti) 26
              774:      6(int) Load 773
-             775:    161(ptr) AccessChain 24(data) 25 774 158
-             776: 19(f64vec4) Load 775
-             777: 19(f64vec4) GroupNonUniformQuadSwap 35 776 26
-             778:    161(ptr) AccessChain 24(data) 25 772 158
+             775:     90(ptr) AccessChain 24(data) 25 774 78 26
+             776:     14(int) Load 775
+             777:     14(int) GroupNonUniformQuadSwap 35 776 26
+             778:     90(ptr) AccessChain 24(data) 25 772 78 26
                               Store 778 777
              779:     27(ptr) AccessChain 10(dti) 26
              780:      6(int) Load 779
              781:     27(ptr) AccessChain 10(dti) 26
              782:      6(int) Load 781
-             783:    170(ptr) AccessChain 24(data) 25 782 158 26
-             784:18(float64_t) Load 783
-             785:18(float64_t) GroupNonUniformQuadSwap 35 784 26
-             786:    170(ptr) AccessChain 24(data) 25 780 158 26
-                              Store 786 785
-             787:     27(ptr) AccessChain 10(dti) 26
-             788:      6(int) Load 787
-             789:     27(ptr) AccessChain 10(dti) 26
-             790:      6(int) Load 789
-             791:    161(ptr) AccessChain 24(data) 25 790 158
-             792: 19(f64vec4) Load 791
-             793:179(f64vec2) VectorShuffle 792 792 0 1
-             794:179(f64vec2) GroupNonUniformQuadSwap 35 793 26
-             795:    161(ptr) AccessChain 24(data) 25 788 158
-             796: 19(f64vec4) Load 795
-             797: 19(f64vec4) VectorShuffle 796 794 4 5 2 3
-                              Store 795 797
-             798:     27(ptr) AccessChain 10(dti) 26
-             799:      6(int) Load 798
-             800:     27(ptr) AccessChain 10(dti) 26
-             801:      6(int) Load 800
-             802:    161(ptr) AccessChain 24(data) 25 801 158
-             803: 19(f64vec4) Load 802
-             804:191(f64vec3) VectorShuffle 803 803 0 1 2
-             805:191(f64vec3) GroupNonUniformQuadSwap 35 804 26
-             806:    161(ptr) AccessChain 24(data) 25 799 158
-             807: 19(f64vec4) Load 806
-             808: 19(f64vec4) VectorShuffle 807 805 4 5 6 3
-                              Store 806 808
-             809:     27(ptr) AccessChain 10(dti) 26
-             810:      6(int) Load 809
-             811:     27(ptr) AccessChain 10(dti) 26
-             812:      6(int) Load 811
-             813:     32(ptr) AccessChain 24(data) 25 812 25
-             814:   13(ivec4) Load 813
-             815:   13(ivec4) GroupNonUniformQuadSwap 35 814 205
-             816:     32(ptr) AccessChain 24(data) 25 810 25
-                              Store 816 815
-             817:     27(ptr) AccessChain 10(dti) 26
-             818:      6(int) Load 817
-             819:     27(ptr) AccessChain 10(dti) 26
-             820:      6(int) Load 819
-             821:     42(ptr) AccessChain 24(data) 25 820 25 26
+             783:     81(ptr) AccessChain 24(data) 25 782 78
+             784:   15(ivec4) Load 783
+             785:   99(ivec2) VectorShuffle 784 784 0 1
+             786:   99(ivec2) GroupNonUniformQuadSwap 35 785 26
+             787:     90(ptr) AccessChain 24(data) 25 780 78 26
+             788:     14(int) CompositeExtract 786 0
+                              Store 787 788
+             789:     90(ptr) AccessChain 24(data) 25 780 78 58
+             790:     14(int) CompositeExtract 786 1
+                              Store 789 790
+             791:     27(ptr) AccessChain 10(dti) 26
+             792:      6(int) Load 791
+             793:     27(ptr) AccessChain 10(dti) 26
+             794:      6(int) Load 793
+             795:     81(ptr) AccessChain 24(data) 25 794 78
+             796:   15(ivec4) Load 795
+             797:  112(ivec3) VectorShuffle 796 796 0 1 2
+             798:  112(ivec3) GroupNonUniformQuadSwap 35 797 26
+             799:     90(ptr) AccessChain 24(data) 25 792 78 26
+             800:     14(int) CompositeExtract 798 0
+                              Store 799 800
+             801:     90(ptr) AccessChain 24(data) 25 792 78 58
+             802:     14(int) CompositeExtract 798 1
+                              Store 801 802
+             803:     90(ptr) AccessChain 24(data) 25 792 78 73
+             804:     14(int) CompositeExtract 798 2
+                              Store 803 804
+             805:     27(ptr) AccessChain 10(dti) 26
+             806:      6(int) Load 805
+             807:     27(ptr) AccessChain 10(dti) 26
+             808:      6(int) Load 807
+             809:    128(ptr) AccessChain 24(data) 25 808 125
+             810:   17(fvec4) Load 809
+             811:   17(fvec4) GroupNonUniformQuadSwap 35 810 26
+             812:    128(ptr) AccessChain 24(data) 25 806 125
+                              Store 812 811
+             813:     27(ptr) AccessChain 10(dti) 26
+             814:      6(int) Load 813
+             815:     27(ptr) AccessChain 10(dti) 26
+             816:      6(int) Load 815
+             817:    137(ptr) AccessChain 24(data) 25 816 125 26
+             818:   16(float) Load 817
+             819:   16(float) GroupNonUniformQuadSwap 35 818 26
+             820:    137(ptr) AccessChain 24(data) 25 814 125 26
+                              Store 820 819
+             821:     27(ptr) AccessChain 10(dti) 26
              822:      6(int) Load 821
-             823:      6(int) GroupNonUniformQuadSwap 35 822 205
-             824:     42(ptr) AccessChain 24(data) 25 818 25 26
-                              Store 824 823
-             825:     27(ptr) AccessChain 10(dti) 26
-             826:      6(int) Load 825
-             827:     27(ptr) AccessChain 10(dti) 26
-             828:      6(int) Load 827
-             829:     32(ptr) AccessChain 24(data) 25 828 25
-             830:   13(ivec4) Load 829
-             831:   51(ivec2) VectorShuffle 830 830 0 1
-             832:   51(ivec2) GroupNonUniformQuadSwap 35 831 205
-             833:     32(ptr) AccessChain 24(data) 25 826 25
-             834:   13(ivec4) Load 833
-             835:   13(ivec4) VectorShuffle 834 832 4 5 2 3
-                              Store 833 835
-             836:     27(ptr) AccessChain 10(dti) 26
-             837:      6(int) Load 836
-             838:     27(ptr) AccessChain 10(dti) 26
-             839:      6(int) Load 838
-             840:     32(ptr) AccessChain 24(data) 25 839 25
-             841:   13(ivec4) Load 840
-             842:    7(ivec3) VectorShuffle 841 841 0 1 2
-             843:    7(ivec3) GroupNonUniformQuadSwap 35 842 205
-             844:     32(ptr) AccessChain 24(data) 25 837 25
-             845:   13(ivec4) Load 844
-             846:   13(ivec4) VectorShuffle 845 843 4 5 6 3
-                              Store 844 846
+             823:     27(ptr) AccessChain 10(dti) 26
+             824:      6(int) Load 823
+             825:    128(ptr) AccessChain 24(data) 25 824 125
+             826:   17(fvec4) Load 825
+             827:  146(fvec2) VectorShuffle 826 826 0 1
+             828:  146(fvec2) GroupNonUniformQuadSwap 35 827 26
+             829:    137(ptr) AccessChain 24(data) 25 822 125 26
+             830:   16(float) CompositeExtract 828 0
+                              Store 829 830
+             831:    137(ptr) AccessChain 24(data) 25 822 125 58
+             832:   16(float) CompositeExtract 828 1
+                              Store 831 832
+             833:     27(ptr) AccessChain 10(dti) 26
+             834:      6(int) Load 833
+             835:     27(ptr) AccessChain 10(dti) 26
+             836:      6(int) Load 835
+             837:    128(ptr) AccessChain 24(data) 25 836 125
+             838:   17(fvec4) Load 837
+             839:  159(fvec3) VectorShuffle 838 838 0 1 2
+             840:  159(fvec3) GroupNonUniformQuadSwap 35 839 26
+             841:    137(ptr) AccessChain 24(data) 25 834 125 26
+             842:   16(float) CompositeExtract 840 0
+                              Store 841 842
+             843:    137(ptr) AccessChain 24(data) 25 834 125 58
+             844:   16(float) CompositeExtract 840 1
+                              Store 843 844
+             845:    137(ptr) AccessChain 24(data) 25 834 125 73
+             846:   16(float) CompositeExtract 840 2
+                              Store 845 846
              847:     27(ptr) AccessChain 10(dti) 26
              848:      6(int) Load 847
              849:     27(ptr) AccessChain 10(dti) 26
              850:      6(int) Load 849
-             851:     75(ptr) AccessChain 24(data) 25 850 72
-             852:   15(ivec4) Load 851
-             853:   15(ivec4) GroupNonUniformQuadSwap 35 852 205
-             854:     75(ptr) AccessChain 24(data) 25 848 72
+             851:    175(ptr) AccessChain 24(data) 25 850 172
+             852: 19(f64vec4) Load 851
+             853: 19(f64vec4) GroupNonUniformQuadSwap 35 852 26
+             854:    175(ptr) AccessChain 24(data) 25 848 172
                               Store 854 853
              855:     27(ptr) AccessChain 10(dti) 26
              856:      6(int) Load 855
              857:     27(ptr) AccessChain 10(dti) 26
              858:      6(int) Load 857
-             859:     84(ptr) AccessChain 24(data) 25 858 72 26
-             860:     14(int) Load 859
-             861:     14(int) GroupNonUniformQuadSwap 35 860 205
-             862:     84(ptr) AccessChain 24(data) 25 856 72 26
+             859:    184(ptr) AccessChain 24(data) 25 858 172 26
+             860:18(float64_t) Load 859
+             861:18(float64_t) GroupNonUniformQuadSwap 35 860 26
+             862:    184(ptr) AccessChain 24(data) 25 856 172 26
                               Store 862 861
              863:     27(ptr) AccessChain 10(dti) 26
              864:      6(int) Load 863
              865:     27(ptr) AccessChain 10(dti) 26
              866:      6(int) Load 865
-             867:     75(ptr) AccessChain 24(data) 25 866 72
-             868:   15(ivec4) Load 867
-             869:   93(ivec2) VectorShuffle 868 868 0 1
-             870:   93(ivec2) GroupNonUniformQuadSwap 35 869 205
-             871:     75(ptr) AccessChain 24(data) 25 864 72
-             872:   15(ivec4) Load 871
-             873:   15(ivec4) VectorShuffle 872 870 4 5 2 3
-                              Store 871 873
-             874:     27(ptr) AccessChain 10(dti) 26
-             875:      6(int) Load 874
-             876:     27(ptr) AccessChain 10(dti) 26
-             877:      6(int) Load 876
-             878:     75(ptr) AccessChain 24(data) 25 877 72
-             879:   15(ivec4) Load 878
-             880:  105(ivec3) VectorShuffle 879 879 0 1 2
-             881:  105(ivec3) GroupNonUniformQuadSwap 35 880 205
-             882:     75(ptr) AccessChain 24(data) 25 875 72
-             883:   15(ivec4) Load 882
-             884:   15(ivec4) VectorShuffle 883 881 4 5 6 3
-                              Store 882 884
-             885:     27(ptr) AccessChain 10(dti) 26
-             886:      6(int) Load 885
-             887:     27(ptr) AccessChain 10(dti) 26
-             888:      6(int) Load 887
-             889:    118(ptr) AccessChain 24(data) 25 888 115
-             890:   17(fvec4) Load 889
-             891:   17(fvec4) GroupNonUniformQuadSwap 35 890 205
-             892:    118(ptr) AccessChain 24(data) 25 886 115
-                              Store 892 891
-             893:     27(ptr) AccessChain 10(dti) 26
-             894:      6(int) Load 893
-             895:     27(ptr) AccessChain 10(dti) 26
-             896:      6(int) Load 895
-             897:    127(ptr) AccessChain 24(data) 25 896 115 26
-             898:   16(float) Load 897
-             899:   16(float) GroupNonUniformQuadSwap 35 898 205
-             900:    127(ptr) AccessChain 24(data) 25 894 115 26
-                              Store 900 899
-             901:     27(ptr) AccessChain 10(dti) 26
+             867:    175(ptr) AccessChain 24(data) 25 866 172
+             868: 19(f64vec4) Load 867
+             869:193(f64vec2) VectorShuffle 868 868 0 1
+             870:193(f64vec2) GroupNonUniformQuadSwap 35 869 26
+             871:    184(ptr) AccessChain 24(data) 25 864 172 26
+             872:18(float64_t) CompositeExtract 870 0
+                              Store 871 872
+             873:    184(ptr) AccessChain 24(data) 25 864 172 58
+             874:18(float64_t) CompositeExtract 870 1
+                              Store 873 874
+             875:     27(ptr) AccessChain 10(dti) 26
+             876:      6(int) Load 875
+             877:     27(ptr) AccessChain 10(dti) 26
+             878:      6(int) Load 877
+             879:    175(ptr) AccessChain 24(data) 25 878 172
+             880: 19(f64vec4) Load 879
+             881:206(f64vec3) VectorShuffle 880 880 0 1 2
+             882:206(f64vec3) GroupNonUniformQuadSwap 35 881 26
+             883:    184(ptr) AccessChain 24(data) 25 876 172 26
+             884:18(float64_t) CompositeExtract 882 0
+                              Store 883 884
+             885:    184(ptr) AccessChain 24(data) 25 876 172 58
+             886:18(float64_t) CompositeExtract 882 1
+                              Store 885 886
+             887:    184(ptr) AccessChain 24(data) 25 876 172 73
+             888:18(float64_t) CompositeExtract 882 2
+                              Store 887 888
+             889:     27(ptr) AccessChain 10(dti) 26
+             890:      6(int) Load 889
+             891:     27(ptr) AccessChain 10(dti) 26
+             892:      6(int) Load 891
+             893:     32(ptr) AccessChain 24(data) 25 892 25
+             894:   13(ivec4) Load 893
+             895:   13(ivec4) GroupNonUniformQuadSwap 35 894 58
+             896:     32(ptr) AccessChain 24(data) 25 890 25
+                              Store 896 895
+             897:     27(ptr) AccessChain 10(dti) 26
+             898:      6(int) Load 897
+             899:     27(ptr) AccessChain 10(dti) 26
+             900:      6(int) Load 899
+             901:     42(ptr) AccessChain 24(data) 25 900 25 26
              902:      6(int) Load 901
-             903:     27(ptr) AccessChain 10(dti) 26
-             904:      6(int) Load 903
-             905:    118(ptr) AccessChain 24(data) 25 904 115
-             906:   17(fvec4) Load 905
-             907:  136(fvec2) VectorShuffle 906 906 0 1
-             908:  136(fvec2) GroupNonUniformQuadSwap 35 907 205
-             909:    118(ptr) AccessChain 24(data) 25 902 115
-             910:   17(fvec4) Load 909
-             911:   17(fvec4) VectorShuffle 910 908 4 5 2 3
-                              Store 909 911
-             912:     27(ptr) AccessChain 10(dti) 26
-             913:      6(int) Load 912
-             914:     27(ptr) AccessChain 10(dti) 26
-             915:      6(int) Load 914
-             916:    118(ptr) AccessChain 24(data) 25 915 115
-             917:   17(fvec4) Load 916
-             918:  148(fvec3) VectorShuffle 917 917 0 1 2
-             919:  148(fvec3) GroupNonUniformQuadSwap 35 918 205
-             920:    118(ptr) AccessChain 24(data) 25 913 115
-             921:   17(fvec4) Load 920
-             922:   17(fvec4) VectorShuffle 921 919 4 5 6 3
-                              Store 920 922
-             923:     27(ptr) AccessChain 10(dti) 26
-             924:      6(int) Load 923
-             925:     27(ptr) AccessChain 10(dti) 26
-             926:      6(int) Load 925
-             927:    161(ptr) AccessChain 24(data) 25 926 158
-             928: 19(f64vec4) Load 927
-             929: 19(f64vec4) GroupNonUniformQuadSwap 35 928 205
-             930:    161(ptr) AccessChain 24(data) 25 924 158
-                              Store 930 929
+             903:      6(int) GroupNonUniformQuadSwap 35 902 58
+             904:     42(ptr) AccessChain 24(data) 25 898 25 26
+                              Store 904 903
+             905:     27(ptr) AccessChain 10(dti) 26
+             906:      6(int) Load 905
+             907:     27(ptr) AccessChain 10(dti) 26
+             908:      6(int) Load 907
+             909:     32(ptr) AccessChain 24(data) 25 908 25
+             910:   13(ivec4) Load 909
+             911:   51(ivec2) VectorShuffle 910 910 0 1
+             912:   51(ivec2) GroupNonUniformQuadSwap 35 911 58
+             913:     42(ptr) AccessChain 24(data) 25 906 25 26
+             914:      6(int) CompositeExtract 912 0
+                              Store 913 914
+             915:     42(ptr) AccessChain 24(data) 25 906 25 58
+             916:      6(int) CompositeExtract 912 1
+                              Store 915 916
+             917:     27(ptr) AccessChain 10(dti) 26
+             918:      6(int) Load 917
+             919:     27(ptr) AccessChain 10(dti) 26
+             920:      6(int) Load 919
+             921:     32(ptr) AccessChain 24(data) 25 920 25
+             922:   13(ivec4) Load 921
+             923:    7(ivec3) VectorShuffle 922 922 0 1 2
+             924:    7(ivec3) GroupNonUniformQuadSwap 35 923 58
+             925:     42(ptr) AccessChain 24(data) 25 918 25 26
+             926:      6(int) CompositeExtract 924 0
+                              Store 925 926
+             927:     42(ptr) AccessChain 24(data) 25 918 25 58
+             928:      6(int) CompositeExtract 924 1
+                              Store 927 928
+             929:     42(ptr) AccessChain 24(data) 25 918 25 73
+             930:      6(int) CompositeExtract 924 2
+                              Store 929 930
              931:     27(ptr) AccessChain 10(dti) 26
              932:      6(int) Load 931
              933:     27(ptr) AccessChain 10(dti) 26
              934:      6(int) Load 933
-             935:    170(ptr) AccessChain 24(data) 25 934 158 26
-             936:18(float64_t) Load 935
-             937:18(float64_t) GroupNonUniformQuadSwap 35 936 205
-             938:    170(ptr) AccessChain 24(data) 25 932 158 26
+             935:     81(ptr) AccessChain 24(data) 25 934 78
+             936:   15(ivec4) Load 935
+             937:   15(ivec4) GroupNonUniformQuadSwap 35 936 58
+             938:     81(ptr) AccessChain 24(data) 25 932 78
                               Store 938 937
              939:     27(ptr) AccessChain 10(dti) 26
              940:      6(int) Load 939
              941:     27(ptr) AccessChain 10(dti) 26
              942:      6(int) Load 941
-             943:    161(ptr) AccessChain 24(data) 25 942 158
-             944: 19(f64vec4) Load 943
-             945:179(f64vec2) VectorShuffle 944 944 0 1
-             946:179(f64vec2) GroupNonUniformQuadSwap 35 945 205
-             947:    161(ptr) AccessChain 24(data) 25 940 158
-             948: 19(f64vec4) Load 947
-             949: 19(f64vec4) VectorShuffle 948 946 4 5 2 3
-                              Store 947 949
-             950:     27(ptr) AccessChain 10(dti) 26
-             951:      6(int) Load 950
-             952:     27(ptr) AccessChain 10(dti) 26
-             953:      6(int) Load 952
-             954:    161(ptr) AccessChain 24(data) 25 953 158
-             955: 19(f64vec4) Load 954
-             956:191(f64vec3) VectorShuffle 955 955 0 1 2
-             957:191(f64vec3) GroupNonUniformQuadSwap 35 956 205
-             958:    161(ptr) AccessChain 24(data) 25 951 158
-             959: 19(f64vec4) Load 958
-             960: 19(f64vec4) VectorShuffle 959 957 4 5 6 3
-                              Store 958 960
+             943:     90(ptr) AccessChain 24(data) 25 942 78 26
+             944:     14(int) Load 943
+             945:     14(int) GroupNonUniformQuadSwap 35 944 58
+             946:     90(ptr) AccessChain 24(data) 25 940 78 26
+                              Store 946 945
+             947:     27(ptr) AccessChain 10(dti) 26
+             948:      6(int) Load 947
+             949:     27(ptr) AccessChain 10(dti) 26
+             950:      6(int) Load 949
+             951:     81(ptr) AccessChain 24(data) 25 950 78
+             952:   15(ivec4) Load 951
+             953:   99(ivec2) VectorShuffle 952 952 0 1
+             954:   99(ivec2) GroupNonUniformQuadSwap 35 953 58
+             955:     90(ptr) AccessChain 24(data) 25 948 78 26
+             956:     14(int) CompositeExtract 954 0
+                              Store 955 956
+             957:     90(ptr) AccessChain 24(data) 25 948 78 58
+             958:     14(int) CompositeExtract 954 1
+                              Store 957 958
+             959:     27(ptr) AccessChain 10(dti) 26
+             960:      6(int) Load 959
              961:     27(ptr) AccessChain 10(dti) 26
              962:      6(int) Load 961
-             963:     27(ptr) AccessChain 10(dti) 26
-             964:      6(int) Load 963
-             965:     32(ptr) AccessChain 24(data) 25 964 25
-             966:   13(ivec4) Load 965
-             967:   13(ivec4) GroupNonUniformQuadSwap 35 966 358
-             968:     32(ptr) AccessChain 24(data) 25 962 25
-                              Store 968 967
-             969:     27(ptr) AccessChain 10(dti) 26
-             970:      6(int) Load 969
-             971:     27(ptr) AccessChain 10(dti) 26
-             972:      6(int) Load 971
-             973:     42(ptr) AccessChain 24(data) 25 972 25 26
+             963:     81(ptr) AccessChain 24(data) 25 962 78
+             964:   15(ivec4) Load 963
+             965:  112(ivec3) VectorShuffle 964 964 0 1 2
+             966:  112(ivec3) GroupNonUniformQuadSwap 35 965 58
+             967:     90(ptr) AccessChain 24(data) 25 960 78 26
+             968:     14(int) CompositeExtract 966 0
+                              Store 967 968
+             969:     90(ptr) AccessChain 24(data) 25 960 78 58
+             970:     14(int) CompositeExtract 966 1
+                              Store 969 970
+             971:     90(ptr) AccessChain 24(data) 25 960 78 73
+             972:     14(int) CompositeExtract 966 2
+                              Store 971 972
+             973:     27(ptr) AccessChain 10(dti) 26
              974:      6(int) Load 973
-             975:      6(int) GroupNonUniformQuadSwap 35 974 358
-             976:     42(ptr) AccessChain 24(data) 25 970 25 26
-                              Store 976 975
-             977:     27(ptr) AccessChain 10(dti) 26
-             978:      6(int) Load 977
-             979:     27(ptr) AccessChain 10(dti) 26
-             980:      6(int) Load 979
-             981:     32(ptr) AccessChain 24(data) 25 980 25
-             982:   13(ivec4) Load 981
-             983:   51(ivec2) VectorShuffle 982 982 0 1
-             984:   51(ivec2) GroupNonUniformQuadSwap 35 983 358
-             985:     32(ptr) AccessChain 24(data) 25 978 25
-             986:   13(ivec4) Load 985
-             987:   13(ivec4) VectorShuffle 986 984 4 5 2 3
-                              Store 985 987
-             988:     27(ptr) AccessChain 10(dti) 26
-             989:      6(int) Load 988
-             990:     27(ptr) AccessChain 10(dti) 26
-             991:      6(int) Load 990
-             992:     32(ptr) AccessChain 24(data) 25 991 25
-             993:   13(ivec4) Load 992
-             994:    7(ivec3) VectorShuffle 993 993 0 1 2
-             995:    7(ivec3) GroupNonUniformQuadSwap 35 994 358
-             996:     32(ptr) AccessChain 24(data) 25 989 25
-             997:   13(ivec4) Load 996
-             998:   13(ivec4) VectorShuffle 997 995 4 5 6 3
-                              Store 996 998
-             999:     27(ptr) AccessChain 10(dti) 26
-            1000:      6(int) Load 999
+             975:     27(ptr) AccessChain 10(dti) 26
+             976:      6(int) Load 975
+             977:    128(ptr) AccessChain 24(data) 25 976 125
+             978:   17(fvec4) Load 977
+             979:   17(fvec4) GroupNonUniformQuadSwap 35 978 58
+             980:    128(ptr) AccessChain 24(data) 25 974 125
+                              Store 980 979
+             981:     27(ptr) AccessChain 10(dti) 26
+             982:      6(int) Load 981
+             983:     27(ptr) AccessChain 10(dti) 26
+             984:      6(int) Load 983
+             985:    137(ptr) AccessChain 24(data) 25 984 125 26
+             986:   16(float) Load 985
+             987:   16(float) GroupNonUniformQuadSwap 35 986 58
+             988:    137(ptr) AccessChain 24(data) 25 982 125 26
+                              Store 988 987
+             989:     27(ptr) AccessChain 10(dti) 26
+             990:      6(int) Load 989
+             991:     27(ptr) AccessChain 10(dti) 26
+             992:      6(int) Load 991
+             993:    128(ptr) AccessChain 24(data) 25 992 125
+             994:   17(fvec4) Load 993
+             995:  146(fvec2) VectorShuffle 994 994 0 1
+             996:  146(fvec2) GroupNonUniformQuadSwap 35 995 58
+             997:    137(ptr) AccessChain 24(data) 25 990 125 26
+             998:   16(float) CompositeExtract 996 0
+                              Store 997 998
+             999:    137(ptr) AccessChain 24(data) 25 990 125 58
+            1000:   16(float) CompositeExtract 996 1
+                              Store 999 1000
             1001:     27(ptr) AccessChain 10(dti) 26
             1002:      6(int) Load 1001
-            1003:     75(ptr) AccessChain 24(data) 25 1002 72
-            1004:   15(ivec4) Load 1003
-            1005:   15(ivec4) GroupNonUniformQuadSwap 35 1004 358
-            1006:     75(ptr) AccessChain 24(data) 25 1000 72
-                              Store 1006 1005
-            1007:     27(ptr) AccessChain 10(dti) 26
-            1008:      6(int) Load 1007
-            1009:     27(ptr) AccessChain 10(dti) 26
-            1010:      6(int) Load 1009
-            1011:     84(ptr) AccessChain 24(data) 25 1010 72 26
-            1012:     14(int) Load 1011
-            1013:     14(int) GroupNonUniformQuadSwap 35 1012 358
-            1014:     84(ptr) AccessChain 24(data) 25 1008 72 26
-                              Store 1014 1013
+            1003:     27(ptr) AccessChain 10(dti) 26
+            1004:      6(int) Load 1003
+            1005:    128(ptr) AccessChain 24(data) 25 1004 125
+            1006:   17(fvec4) Load 1005
+            1007:  159(fvec3) VectorShuffle 1006 1006 0 1 2
+            1008:  159(fvec3) GroupNonUniformQuadSwap 35 1007 58
+            1009:    137(ptr) AccessChain 24(data) 25 1002 125 26
+            1010:   16(float) CompositeExtract 1008 0
+                              Store 1009 1010
+            1011:    137(ptr) AccessChain 24(data) 25 1002 125 58
+            1012:   16(float) CompositeExtract 1008 1
+                              Store 1011 1012
+            1013:    137(ptr) AccessChain 24(data) 25 1002 125 73
+            1014:   16(float) CompositeExtract 1008 2
+                              Store 1013 1014
             1015:     27(ptr) AccessChain 10(dti) 26
             1016:      6(int) Load 1015
             1017:     27(ptr) AccessChain 10(dti) 26
             1018:      6(int) Load 1017
-            1019:     75(ptr) AccessChain 24(data) 25 1018 72
-            1020:   15(ivec4) Load 1019
-            1021:   93(ivec2) VectorShuffle 1020 1020 0 1
-            1022:   93(ivec2) GroupNonUniformQuadSwap 35 1021 358
-            1023:     75(ptr) AccessChain 24(data) 25 1016 72
-            1024:   15(ivec4) Load 1023
-            1025:   15(ivec4) VectorShuffle 1024 1022 4 5 2 3
-                              Store 1023 1025
-            1026:     27(ptr) AccessChain 10(dti) 26
-            1027:      6(int) Load 1026
-            1028:     27(ptr) AccessChain 10(dti) 26
-            1029:      6(int) Load 1028
-            1030:     75(ptr) AccessChain 24(data) 25 1029 72
-            1031:   15(ivec4) Load 1030
-            1032:  105(ivec3) VectorShuffle 1031 1031 0 1 2
-            1033:  105(ivec3) GroupNonUniformQuadSwap 35 1032 358
-            1034:     75(ptr) AccessChain 24(data) 25 1027 72
-            1035:   15(ivec4) Load 1034
-            1036:   15(ivec4) VectorShuffle 1035 1033 4 5 6 3
-                              Store 1034 1036
-            1037:     27(ptr) AccessChain 10(dti) 26
-            1038:      6(int) Load 1037
-            1039:     27(ptr) AccessChain 10(dti) 26
-            1040:      6(int) Load 1039
-            1041:    118(ptr) AccessChain 24(data) 25 1040 115
-            1042:   17(fvec4) Load 1041
-            1043:   17(fvec4) GroupNonUniformQuadSwap 35 1042 358
-            1044:    118(ptr) AccessChain 24(data) 25 1038 115
-                              Store 1044 1043
+            1019:    175(ptr) AccessChain 24(data) 25 1018 172
+            1020: 19(f64vec4) Load 1019
+            1021: 19(f64vec4) GroupNonUniformQuadSwap 35 1020 58
+            1022:    175(ptr) AccessChain 24(data) 25 1016 172
+                              Store 1022 1021
+            1023:     27(ptr) AccessChain 10(dti) 26
+            1024:      6(int) Load 1023
+            1025:     27(ptr) AccessChain 10(dti) 26
+            1026:      6(int) Load 1025
+            1027:    184(ptr) AccessChain 24(data) 25 1026 172 26
+            1028:18(float64_t) Load 1027
+            1029:18(float64_t) GroupNonUniformQuadSwap 35 1028 58
+            1030:    184(ptr) AccessChain 24(data) 25 1024 172 26
+                              Store 1030 1029
+            1031:     27(ptr) AccessChain 10(dti) 26
+            1032:      6(int) Load 1031
+            1033:     27(ptr) AccessChain 10(dti) 26
+            1034:      6(int) Load 1033
+            1035:    175(ptr) AccessChain 24(data) 25 1034 172
+            1036: 19(f64vec4) Load 1035
+            1037:193(f64vec2) VectorShuffle 1036 1036 0 1
+            1038:193(f64vec2) GroupNonUniformQuadSwap 35 1037 58
+            1039:    184(ptr) AccessChain 24(data) 25 1032 172 26
+            1040:18(float64_t) CompositeExtract 1038 0
+                              Store 1039 1040
+            1041:    184(ptr) AccessChain 24(data) 25 1032 172 58
+            1042:18(float64_t) CompositeExtract 1038 1
+                              Store 1041 1042
+            1043:     27(ptr) AccessChain 10(dti) 26
+            1044:      6(int) Load 1043
             1045:     27(ptr) AccessChain 10(dti) 26
             1046:      6(int) Load 1045
-            1047:     27(ptr) AccessChain 10(dti) 26
-            1048:      6(int) Load 1047
-            1049:    127(ptr) AccessChain 24(data) 25 1048 115 26
-            1050:   16(float) Load 1049
-            1051:   16(float) GroupNonUniformQuadSwap 35 1050 358
-            1052:    127(ptr) AccessChain 24(data) 25 1046 115 26
-                              Store 1052 1051
-            1053:     27(ptr) AccessChain 10(dti) 26
-            1054:      6(int) Load 1053
-            1055:     27(ptr) AccessChain 10(dti) 26
-            1056:      6(int) Load 1055
-            1057:    118(ptr) AccessChain 24(data) 25 1056 115
-            1058:   17(fvec4) Load 1057
-            1059:  136(fvec2) VectorShuffle 1058 1058 0 1
-            1060:  136(fvec2) GroupNonUniformQuadSwap 35 1059 358
-            1061:    118(ptr) AccessChain 24(data) 25 1054 115
-            1062:   17(fvec4) Load 1061
-            1063:   17(fvec4) VectorShuffle 1062 1060 4 5 2 3
-                              Store 1061 1063
-            1064:     27(ptr) AccessChain 10(dti) 26
-            1065:      6(int) Load 1064
-            1066:     27(ptr) AccessChain 10(dti) 26
-            1067:      6(int) Load 1066
-            1068:    118(ptr) AccessChain 24(data) 25 1067 115
-            1069:   17(fvec4) Load 1068
-            1070:  148(fvec3) VectorShuffle 1069 1069 0 1 2
-            1071:  148(fvec3) GroupNonUniformQuadSwap 35 1070 358
-            1072:    118(ptr) AccessChain 24(data) 25 1065 115
-            1073:   17(fvec4) Load 1072
-            1074:   17(fvec4) VectorShuffle 1073 1071 4 5 6 3
-                              Store 1072 1074
+            1047:    175(ptr) AccessChain 24(data) 25 1046 172
+            1048: 19(f64vec4) Load 1047
+            1049:206(f64vec3) VectorShuffle 1048 1048 0 1 2
+            1050:206(f64vec3) GroupNonUniformQuadSwap 35 1049 58
+            1051:    184(ptr) AccessChain 24(data) 25 1044 172 26
+            1052:18(float64_t) CompositeExtract 1050 0
+                              Store 1051 1052
+            1053:    184(ptr) AccessChain 24(data) 25 1044 172 58
+            1054:18(float64_t) CompositeExtract 1050 1
+                              Store 1053 1054
+            1055:    184(ptr) AccessChain 24(data) 25 1044 172 73
+            1056:18(float64_t) CompositeExtract 1050 2
+                              Store 1055 1056
+            1057:     27(ptr) AccessChain 10(dti) 26
+            1058:      6(int) Load 1057
+            1059:     27(ptr) AccessChain 10(dti) 26
+            1060:      6(int) Load 1059
+            1061:     32(ptr) AccessChain 24(data) 25 1060 25
+            1062:   13(ivec4) Load 1061
+            1063:   13(ivec4) GroupNonUniformQuadSwap 35 1062 73
+            1064:     32(ptr) AccessChain 24(data) 25 1058 25
+                              Store 1064 1063
+            1065:     27(ptr) AccessChain 10(dti) 26
+            1066:      6(int) Load 1065
+            1067:     27(ptr) AccessChain 10(dti) 26
+            1068:      6(int) Load 1067
+            1069:     42(ptr) AccessChain 24(data) 25 1068 25 26
+            1070:      6(int) Load 1069
+            1071:      6(int) GroupNonUniformQuadSwap 35 1070 73
+            1072:     42(ptr) AccessChain 24(data) 25 1066 25 26
+                              Store 1072 1071
+            1073:     27(ptr) AccessChain 10(dti) 26
+            1074:      6(int) Load 1073
             1075:     27(ptr) AccessChain 10(dti) 26
             1076:      6(int) Load 1075
-            1077:     27(ptr) AccessChain 10(dti) 26
-            1078:      6(int) Load 1077
-            1079:    161(ptr) AccessChain 24(data) 25 1078 158
-            1080: 19(f64vec4) Load 1079
-            1081: 19(f64vec4) GroupNonUniformQuadSwap 35 1080 358
-            1082:    161(ptr) AccessChain 24(data) 25 1076 158
-                              Store 1082 1081
-            1083:     27(ptr) AccessChain 10(dti) 26
-            1084:      6(int) Load 1083
+            1077:     32(ptr) AccessChain 24(data) 25 1076 25
+            1078:   13(ivec4) Load 1077
+            1079:   51(ivec2) VectorShuffle 1078 1078 0 1
+            1080:   51(ivec2) GroupNonUniformQuadSwap 35 1079 73
+            1081:     42(ptr) AccessChain 24(data) 25 1074 25 26
+            1082:      6(int) CompositeExtract 1080 0
+                              Store 1081 1082
+            1083:     42(ptr) AccessChain 24(data) 25 1074 25 58
+            1084:      6(int) CompositeExtract 1080 1
+                              Store 1083 1084
             1085:     27(ptr) AccessChain 10(dti) 26
             1086:      6(int) Load 1085
-            1087:    170(ptr) AccessChain 24(data) 25 1086 158 26
-            1088:18(float64_t) Load 1087
-            1089:18(float64_t) GroupNonUniformQuadSwap 35 1088 358
-            1090:    170(ptr) AccessChain 24(data) 25 1084 158 26
-                              Store 1090 1089
-            1091:     27(ptr) AccessChain 10(dti) 26
-            1092:      6(int) Load 1091
-            1093:     27(ptr) AccessChain 10(dti) 26
-            1094:      6(int) Load 1093
-            1095:    161(ptr) AccessChain 24(data) 25 1094 158
-            1096: 19(f64vec4) Load 1095
-            1097:179(f64vec2) VectorShuffle 1096 1096 0 1
-            1098:179(f64vec2) GroupNonUniformQuadSwap 35 1097 358
-            1099:    161(ptr) AccessChain 24(data) 25 1092 158
-            1100: 19(f64vec4) Load 1099
-            1101: 19(f64vec4) VectorShuffle 1100 1098 4 5 2 3
-                              Store 1099 1101
-            1102:     27(ptr) AccessChain 10(dti) 26
-            1103:      6(int) Load 1102
-            1104:     27(ptr) AccessChain 10(dti) 26
-            1105:      6(int) Load 1104
-            1106:    161(ptr) AccessChain 24(data) 25 1105 158
-            1107: 19(f64vec4) Load 1106
-            1108:191(f64vec3) VectorShuffle 1107 1107 0 1 2
-            1109:191(f64vec3) GroupNonUniformQuadSwap 35 1108 358
-            1110:    161(ptr) AccessChain 24(data) 25 1103 158
-            1111: 19(f64vec4) Load 1110
-            1112: 19(f64vec4) VectorShuffle 1111 1109 4 5 6 3
-                              Store 1110 1112
+            1087:     27(ptr) AccessChain 10(dti) 26
+            1088:      6(int) Load 1087
+            1089:     32(ptr) AccessChain 24(data) 25 1088 25
+            1090:   13(ivec4) Load 1089
+            1091:    7(ivec3) VectorShuffle 1090 1090 0 1 2
+            1092:    7(ivec3) GroupNonUniformQuadSwap 35 1091 73
+            1093:     42(ptr) AccessChain 24(data) 25 1086 25 26
+            1094:      6(int) CompositeExtract 1092 0
+                              Store 1093 1094
+            1095:     42(ptr) AccessChain 24(data) 25 1086 25 58
+            1096:      6(int) CompositeExtract 1092 1
+                              Store 1095 1096
+            1097:     42(ptr) AccessChain 24(data) 25 1086 25 73
+            1098:      6(int) CompositeExtract 1092 2
+                              Store 1097 1098
+            1099:     27(ptr) AccessChain 10(dti) 26
+            1100:      6(int) Load 1099
+            1101:     27(ptr) AccessChain 10(dti) 26
+            1102:      6(int) Load 1101
+            1103:     81(ptr) AccessChain 24(data) 25 1102 78
+            1104:   15(ivec4) Load 1103
+            1105:   15(ivec4) GroupNonUniformQuadSwap 35 1104 73
+            1106:     81(ptr) AccessChain 24(data) 25 1100 78
+                              Store 1106 1105
+            1107:     27(ptr) AccessChain 10(dti) 26
+            1108:      6(int) Load 1107
+            1109:     27(ptr) AccessChain 10(dti) 26
+            1110:      6(int) Load 1109
+            1111:     90(ptr) AccessChain 24(data) 25 1110 78 26
+            1112:     14(int) Load 1111
+            1113:     14(int) GroupNonUniformQuadSwap 35 1112 73
+            1114:     90(ptr) AccessChain 24(data) 25 1108 78 26
+                              Store 1114 1113
+            1115:     27(ptr) AccessChain 10(dti) 26
+            1116:      6(int) Load 1115
+            1117:     27(ptr) AccessChain 10(dti) 26
+            1118:      6(int) Load 1117
+            1119:     81(ptr) AccessChain 24(data) 25 1118 78
+            1120:   15(ivec4) Load 1119
+            1121:   99(ivec2) VectorShuffle 1120 1120 0 1
+            1122:   99(ivec2) GroupNonUniformQuadSwap 35 1121 73
+            1123:     90(ptr) AccessChain 24(data) 25 1116 78 26
+            1124:     14(int) CompositeExtract 1122 0
+                              Store 1123 1124
+            1125:     90(ptr) AccessChain 24(data) 25 1116 78 58
+            1126:     14(int) CompositeExtract 1122 1
+                              Store 1125 1126
+            1127:     27(ptr) AccessChain 10(dti) 26
+            1128:      6(int) Load 1127
+            1129:     27(ptr) AccessChain 10(dti) 26
+            1130:      6(int) Load 1129
+            1131:     81(ptr) AccessChain 24(data) 25 1130 78
+            1132:   15(ivec4) Load 1131
+            1133:  112(ivec3) VectorShuffle 1132 1132 0 1 2
+            1134:  112(ivec3) GroupNonUniformQuadSwap 35 1133 73
+            1135:     90(ptr) AccessChain 24(data) 25 1128 78 26
+            1136:     14(int) CompositeExtract 1134 0
+                              Store 1135 1136
+            1137:     90(ptr) AccessChain 24(data) 25 1128 78 58
+            1138:     14(int) CompositeExtract 1134 1
+                              Store 1137 1138
+            1139:     90(ptr) AccessChain 24(data) 25 1128 78 73
+            1140:     14(int) CompositeExtract 1134 2
+                              Store 1139 1140
+            1141:     27(ptr) AccessChain 10(dti) 26
+            1142:      6(int) Load 1141
+            1143:     27(ptr) AccessChain 10(dti) 26
+            1144:      6(int) Load 1143
+            1145:    128(ptr) AccessChain 24(data) 25 1144 125
+            1146:   17(fvec4) Load 1145
+            1147:   17(fvec4) GroupNonUniformQuadSwap 35 1146 73
+            1148:    128(ptr) AccessChain 24(data) 25 1142 125
+                              Store 1148 1147
+            1149:     27(ptr) AccessChain 10(dti) 26
+            1150:      6(int) Load 1149
+            1151:     27(ptr) AccessChain 10(dti) 26
+            1152:      6(int) Load 1151
+            1153:    137(ptr) AccessChain 24(data) 25 1152 125 26
+            1154:   16(float) Load 1153
+            1155:   16(float) GroupNonUniformQuadSwap 35 1154 73
+            1156:    137(ptr) AccessChain 24(data) 25 1150 125 26
+                              Store 1156 1155
+            1157:     27(ptr) AccessChain 10(dti) 26
+            1158:      6(int) Load 1157
+            1159:     27(ptr) AccessChain 10(dti) 26
+            1160:      6(int) Load 1159
+            1161:    128(ptr) AccessChain 24(data) 25 1160 125
+            1162:   17(fvec4) Load 1161
+            1163:  146(fvec2) VectorShuffle 1162 1162 0 1
+            1164:  146(fvec2) GroupNonUniformQuadSwap 35 1163 73
+            1165:    137(ptr) AccessChain 24(data) 25 1158 125 26
+            1166:   16(float) CompositeExtract 1164 0
+                              Store 1165 1166
+            1167:    137(ptr) AccessChain 24(data) 25 1158 125 58
+            1168:   16(float) CompositeExtract 1164 1
+                              Store 1167 1168
+            1169:     27(ptr) AccessChain 10(dti) 26
+            1170:      6(int) Load 1169
+            1171:     27(ptr) AccessChain 10(dti) 26
+            1172:      6(int) Load 1171
+            1173:    128(ptr) AccessChain 24(data) 25 1172 125
+            1174:   17(fvec4) Load 1173
+            1175:  159(fvec3) VectorShuffle 1174 1174 0 1 2
+            1176:  159(fvec3) GroupNonUniformQuadSwap 35 1175 73
+            1177:    137(ptr) AccessChain 24(data) 25 1170 125 26
+            1178:   16(float) CompositeExtract 1176 0
+                              Store 1177 1178
+            1179:    137(ptr) AccessChain 24(data) 25 1170 125 58
+            1180:   16(float) CompositeExtract 1176 1
+                              Store 1179 1180
+            1181:    137(ptr) AccessChain 24(data) 25 1170 125 73
+            1182:   16(float) CompositeExtract 1176 2
+                              Store 1181 1182
+            1183:     27(ptr) AccessChain 10(dti) 26
+            1184:      6(int) Load 1183
+            1185:     27(ptr) AccessChain 10(dti) 26
+            1186:      6(int) Load 1185
+            1187:    175(ptr) AccessChain 24(data) 25 1186 172
+            1188: 19(f64vec4) Load 1187
+            1189: 19(f64vec4) GroupNonUniformQuadSwap 35 1188 73
+            1190:    175(ptr) AccessChain 24(data) 25 1184 172
+                              Store 1190 1189
+            1191:     27(ptr) AccessChain 10(dti) 26
+            1192:      6(int) Load 1191
+            1193:     27(ptr) AccessChain 10(dti) 26
+            1194:      6(int) Load 1193
+            1195:    184(ptr) AccessChain 24(data) 25 1194 172 26
+            1196:18(float64_t) Load 1195
+            1197:18(float64_t) GroupNonUniformQuadSwap 35 1196 73
+            1198:    184(ptr) AccessChain 24(data) 25 1192 172 26
+                              Store 1198 1197
+            1199:     27(ptr) AccessChain 10(dti) 26
+            1200:      6(int) Load 1199
+            1201:     27(ptr) AccessChain 10(dti) 26
+            1202:      6(int) Load 1201
+            1203:    175(ptr) AccessChain 24(data) 25 1202 172
+            1204: 19(f64vec4) Load 1203
+            1205:193(f64vec2) VectorShuffle 1204 1204 0 1
+            1206:193(f64vec2) GroupNonUniformQuadSwap 35 1205 73
+            1207:    184(ptr) AccessChain 24(data) 25 1200 172 26
+            1208:18(float64_t) CompositeExtract 1206 0
+                              Store 1207 1208
+            1209:    184(ptr) AccessChain 24(data) 25 1200 172 58
+            1210:18(float64_t) CompositeExtract 1206 1
+                              Store 1209 1210
+            1211:     27(ptr) AccessChain 10(dti) 26
+            1212:      6(int) Load 1211
+            1213:     27(ptr) AccessChain 10(dti) 26
+            1214:      6(int) Load 1213
+            1215:    175(ptr) AccessChain 24(data) 25 1214 172
+            1216: 19(f64vec4) Load 1215
+            1217:206(f64vec3) VectorShuffle 1216 1216 0 1 2
+            1218:206(f64vec3) GroupNonUniformQuadSwap 35 1217 73
+            1219:    184(ptr) AccessChain 24(data) 25 1212 172 26
+            1220:18(float64_t) CompositeExtract 1218 0
+                              Store 1219 1220
+            1221:    184(ptr) AccessChain 24(data) 25 1212 172 58
+            1222:18(float64_t) CompositeExtract 1218 1
+                              Store 1221 1222
+            1223:    184(ptr) AccessChain 24(data) 25 1212 172 73
+            1224:18(float64_t) CompositeExtract 1218 2
+                              Store 1223 1224
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/hlsl.wavereduction.comp.out b/Test/baseResults/hlsl.wavereduction.comp.out
index a898612..64a4e7c 100644
--- a/Test/baseResults/hlsl.wavereduction.comp.out
+++ b/Test/baseResults/hlsl.wavereduction.comp.out
@@ -6187,7 +6187,7 @@
 
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 901
+// Id's are bound by 991
 
                               Capability Shader
                               Capability Float64
@@ -6196,7 +6196,7 @@
                               Capability GroupNonUniformBallot
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint GLCompute 4  "CSMain" 896
+                              EntryPoint GLCompute 4  "CSMain" 986
                               ExecutionMode 4 LocalSize 32 16 1
                               Source HLSL 500
                               Name 4  "CSMain"
@@ -6210,9 +6210,9 @@
                               Name 22  "data"
                               MemberName 22(data) 0  "@data"
                               Name 24  "data"
-                              Name 894  "dti"
-                              Name 896  "dti"
-                              Name 898  "param"
+                              Name 984  "dti"
+                              Name 986  "dti"
+                              Name 988  "param"
                               MemberDecorate 20(Types) 0 Offset 0
                               MemberDecorate 20(Types) 1 Offset 16
                               MemberDecorate 20(Types) 2 Offset 32
@@ -6222,7 +6222,7 @@
                               Decorate 22(data) BufferBlock
                               Decorate 24(data) DescriptorSet 0
                               Decorate 24(data) Binding 0
-                              Decorate 896(dti) BuiltIn GlobalInvocationId
+                              Decorate 986(dti) BuiltIn GlobalInvocationId
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -6248,33 +6248,35 @@
               35:      6(int) Constant 3
               42:             TypePointer Uniform 6(int)
               51:             TypeVector 6(int) 2
-              72:     14(int) Constant 1
-              75:             TypePointer Uniform 15(ivec4)
-              84:             TypePointer Uniform 14(int)
-              93:             TypeVector 14(int) 2
-             105:             TypeVector 14(int) 3
-             115:     14(int) Constant 2
-             118:             TypePointer Uniform 17(fvec4)
-             127:             TypePointer Uniform 16(float)
-             136:             TypeVector 16(float) 2
-             148:             TypeVector 16(float) 3
-             158:     14(int) Constant 3
-             161:             TypePointer Uniform 19(f64vec4)
-             170:             TypePointer Uniform 18(float64_t)
-             179:             TypeVector 18(float64_t) 2
-             191:             TypeVector 18(float64_t) 3
-             889:             TypeBool
-             895:             TypePointer Input 7(ivec3)
-        896(dti):    895(ptr) Variable Input
+              58:      6(int) Constant 1
+              73:      6(int) Constant 2
+              78:     14(int) Constant 1
+              81:             TypePointer Uniform 15(ivec4)
+              90:             TypePointer Uniform 14(int)
+              99:             TypeVector 14(int) 2
+             112:             TypeVector 14(int) 3
+             125:     14(int) Constant 2
+             128:             TypePointer Uniform 17(fvec4)
+             137:             TypePointer Uniform 16(float)
+             146:             TypeVector 16(float) 2
+             159:             TypeVector 16(float) 3
+             172:     14(int) Constant 3
+             175:             TypePointer Uniform 19(f64vec4)
+             184:             TypePointer Uniform 18(float64_t)
+             193:             TypeVector 18(float64_t) 2
+             206:             TypeVector 18(float64_t) 3
+             979:             TypeBool
+             985:             TypePointer Input 7(ivec3)
+        986(dti):    985(ptr) Variable Input
        4(CSMain):           2 Function None 3
                5:             Label
-        894(dti):      8(ptr) Variable Function
-      898(param):      8(ptr) Variable Function
-             897:    7(ivec3) Load 896(dti)
-                              Store 894(dti) 897
-             899:    7(ivec3) Load 894(dti)
-                              Store 898(param) 899
-             900:           2 FunctionCall 11(@CSMain(vu3;) 898(param)
+        984(dti):      8(ptr) Variable Function
+      988(param):      8(ptr) Variable Function
+             987:    7(ivec3) Load 986(dti)
+                              Store 984(dti) 987
+             989:    7(ivec3) Load 984(dti)
+                              Store 988(param) 989
+             990:           2 FunctionCall 11(@CSMain(vu3;) 988(param)
                               Return
                               FunctionEnd
 11(@CSMain(vu3;):           2 Function None 9
@@ -6306,914 +6308,1068 @@
               53:   13(ivec4) Load 52
               54:   51(ivec2) VectorShuffle 53 53 0 1
               55:   51(ivec2) GroupNonUniformIAdd 35 Reduce 54
-              56:     32(ptr) AccessChain 24(data) 25 48 25
-              57:   13(ivec4) Load 56
-              58:   13(ivec4) VectorShuffle 57 55 4 5 2 3
-                              Store 56 58
-              59:     27(ptr) AccessChain 10(dti) 26
-              60:      6(int) Load 59
+              56:     42(ptr) AccessChain 24(data) 25 48 25 26
+              57:      6(int) CompositeExtract 55 0
+                              Store 56 57
+              59:     42(ptr) AccessChain 24(data) 25 48 25 58
+              60:      6(int) CompositeExtract 55 1
+                              Store 59 60
               61:     27(ptr) AccessChain 10(dti) 26
               62:      6(int) Load 61
-              63:     32(ptr) AccessChain 24(data) 25 62 25
-              64:   13(ivec4) Load 63
-              65:    7(ivec3) VectorShuffle 64 64 0 1 2
-              66:    7(ivec3) GroupNonUniformIAdd 35 Reduce 65
-              67:     32(ptr) AccessChain 24(data) 25 60 25
-              68:   13(ivec4) Load 67
-              69:   13(ivec4) VectorShuffle 68 66 4 5 6 3
-                              Store 67 69
-              70:     27(ptr) AccessChain 10(dti) 26
-              71:      6(int) Load 70
-              73:     27(ptr) AccessChain 10(dti) 26
-              74:      6(int) Load 73
-              76:     75(ptr) AccessChain 24(data) 25 74 72
-              77:   15(ivec4) Load 76
-              78:   15(ivec4) GroupNonUniformIAdd 35 Reduce 77
-              79:     75(ptr) AccessChain 24(data) 25 71 72
-                              Store 79 78
-              80:     27(ptr) AccessChain 10(dti) 26
-              81:      6(int) Load 80
-              82:     27(ptr) AccessChain 10(dti) 26
-              83:      6(int) Load 82
-              85:     84(ptr) AccessChain 24(data) 25 83 72 26
-              86:     14(int) Load 85
-              87:     14(int) GroupNonUniformIAdd 35 Reduce 86
-              88:     84(ptr) AccessChain 24(data) 25 81 72 26
-                              Store 88 87
-              89:     27(ptr) AccessChain 10(dti) 26
-              90:      6(int) Load 89
-              91:     27(ptr) AccessChain 10(dti) 26
-              92:      6(int) Load 91
-              94:     75(ptr) AccessChain 24(data) 25 92 72
-              95:   15(ivec4) Load 94
-              96:   93(ivec2) VectorShuffle 95 95 0 1
-              97:   93(ivec2) GroupNonUniformIAdd 35 Reduce 96
-              98:     75(ptr) AccessChain 24(data) 25 90 72
-              99:   15(ivec4) Load 98
-             100:   15(ivec4) VectorShuffle 99 97 4 5 2 3
-                              Store 98 100
-             101:     27(ptr) AccessChain 10(dti) 26
-             102:      6(int) Load 101
-             103:     27(ptr) AccessChain 10(dti) 26
-             104:      6(int) Load 103
-             106:     75(ptr) AccessChain 24(data) 25 104 72
-             107:   15(ivec4) Load 106
-             108:  105(ivec3) VectorShuffle 107 107 0 1 2
-             109:  105(ivec3) GroupNonUniformIAdd 35 Reduce 108
-             110:     75(ptr) AccessChain 24(data) 25 102 72
-             111:   15(ivec4) Load 110
-             112:   15(ivec4) VectorShuffle 111 109 4 5 6 3
-                              Store 110 112
-             113:     27(ptr) AccessChain 10(dti) 26
-             114:      6(int) Load 113
-             116:     27(ptr) AccessChain 10(dti) 26
-             117:      6(int) Load 116
-             119:    118(ptr) AccessChain 24(data) 25 117 115
-             120:   17(fvec4) Load 119
-             121:   17(fvec4) GroupNonUniformFAdd 35 Reduce 120
-             122:    118(ptr) AccessChain 24(data) 25 114 115
-                              Store 122 121
+              63:     27(ptr) AccessChain 10(dti) 26
+              64:      6(int) Load 63
+              65:     32(ptr) AccessChain 24(data) 25 64 25
+              66:   13(ivec4) Load 65
+              67:    7(ivec3) VectorShuffle 66 66 0 1 2
+              68:    7(ivec3) GroupNonUniformIAdd 35 Reduce 67
+              69:     42(ptr) AccessChain 24(data) 25 62 25 26
+              70:      6(int) CompositeExtract 68 0
+                              Store 69 70
+              71:     42(ptr) AccessChain 24(data) 25 62 25 58
+              72:      6(int) CompositeExtract 68 1
+                              Store 71 72
+              74:     42(ptr) AccessChain 24(data) 25 62 25 73
+              75:      6(int) CompositeExtract 68 2
+                              Store 74 75
+              76:     27(ptr) AccessChain 10(dti) 26
+              77:      6(int) Load 76
+              79:     27(ptr) AccessChain 10(dti) 26
+              80:      6(int) Load 79
+              82:     81(ptr) AccessChain 24(data) 25 80 78
+              83:   15(ivec4) Load 82
+              84:   15(ivec4) GroupNonUniformIAdd 35 Reduce 83
+              85:     81(ptr) AccessChain 24(data) 25 77 78
+                              Store 85 84
+              86:     27(ptr) AccessChain 10(dti) 26
+              87:      6(int) Load 86
+              88:     27(ptr) AccessChain 10(dti) 26
+              89:      6(int) Load 88
+              91:     90(ptr) AccessChain 24(data) 25 89 78 26
+              92:     14(int) Load 91
+              93:     14(int) GroupNonUniformIAdd 35 Reduce 92
+              94:     90(ptr) AccessChain 24(data) 25 87 78 26
+                              Store 94 93
+              95:     27(ptr) AccessChain 10(dti) 26
+              96:      6(int) Load 95
+              97:     27(ptr) AccessChain 10(dti) 26
+              98:      6(int) Load 97
+             100:     81(ptr) AccessChain 24(data) 25 98 78
+             101:   15(ivec4) Load 100
+             102:   99(ivec2) VectorShuffle 101 101 0 1
+             103:   99(ivec2) GroupNonUniformIAdd 35 Reduce 102
+             104:     90(ptr) AccessChain 24(data) 25 96 78 26
+             105:     14(int) CompositeExtract 103 0
+                              Store 104 105
+             106:     90(ptr) AccessChain 24(data) 25 96 78 58
+             107:     14(int) CompositeExtract 103 1
+                              Store 106 107
+             108:     27(ptr) AccessChain 10(dti) 26
+             109:      6(int) Load 108
+             110:     27(ptr) AccessChain 10(dti) 26
+             111:      6(int) Load 110
+             113:     81(ptr) AccessChain 24(data) 25 111 78
+             114:   15(ivec4) Load 113
+             115:  112(ivec3) VectorShuffle 114 114 0 1 2
+             116:  112(ivec3) GroupNonUniformIAdd 35 Reduce 115
+             117:     90(ptr) AccessChain 24(data) 25 109 78 26
+             118:     14(int) CompositeExtract 116 0
+                              Store 117 118
+             119:     90(ptr) AccessChain 24(data) 25 109 78 58
+             120:     14(int) CompositeExtract 116 1
+                              Store 119 120
+             121:     90(ptr) AccessChain 24(data) 25 109 78 73
+             122:     14(int) CompositeExtract 116 2
+                              Store 121 122
              123:     27(ptr) AccessChain 10(dti) 26
              124:      6(int) Load 123
-             125:     27(ptr) AccessChain 10(dti) 26
-             126:      6(int) Load 125
-             128:    127(ptr) AccessChain 24(data) 25 126 115 26
-             129:   16(float) Load 128
-             130:   16(float) GroupNonUniformFAdd 35 Reduce 129
-             131:    127(ptr) AccessChain 24(data) 25 124 115 26
-                              Store 131 130
-             132:     27(ptr) AccessChain 10(dti) 26
-             133:      6(int) Load 132
-             134:     27(ptr) AccessChain 10(dti) 26
-             135:      6(int) Load 134
-             137:    118(ptr) AccessChain 24(data) 25 135 115
-             138:   17(fvec4) Load 137
-             139:  136(fvec2) VectorShuffle 138 138 0 1
-             140:  136(fvec2) GroupNonUniformFAdd 35 Reduce 139
-             141:    118(ptr) AccessChain 24(data) 25 133 115
-             142:   17(fvec4) Load 141
-             143:   17(fvec4) VectorShuffle 142 140 4 5 2 3
-                              Store 141 143
+             126:     27(ptr) AccessChain 10(dti) 26
+             127:      6(int) Load 126
+             129:    128(ptr) AccessChain 24(data) 25 127 125
+             130:   17(fvec4) Load 129
+             131:   17(fvec4) GroupNonUniformFAdd 35 Reduce 130
+             132:    128(ptr) AccessChain 24(data) 25 124 125
+                              Store 132 131
+             133:     27(ptr) AccessChain 10(dti) 26
+             134:      6(int) Load 133
+             135:     27(ptr) AccessChain 10(dti) 26
+             136:      6(int) Load 135
+             138:    137(ptr) AccessChain 24(data) 25 136 125 26
+             139:   16(float) Load 138
+             140:   16(float) GroupNonUniformFAdd 35 Reduce 139
+             141:    137(ptr) AccessChain 24(data) 25 134 125 26
+                              Store 141 140
+             142:     27(ptr) AccessChain 10(dti) 26
+             143:      6(int) Load 142
              144:     27(ptr) AccessChain 10(dti) 26
              145:      6(int) Load 144
-             146:     27(ptr) AccessChain 10(dti) 26
-             147:      6(int) Load 146
-             149:    118(ptr) AccessChain 24(data) 25 147 115
-             150:   17(fvec4) Load 149
-             151:  148(fvec3) VectorShuffle 150 150 0 1 2
-             152:  148(fvec3) GroupNonUniformFAdd 35 Reduce 151
-             153:    118(ptr) AccessChain 24(data) 25 145 115
-             154:   17(fvec4) Load 153
-             155:   17(fvec4) VectorShuffle 154 152 4 5 6 3
-                              Store 153 155
-             156:     27(ptr) AccessChain 10(dti) 26
-             157:      6(int) Load 156
-             159:     27(ptr) AccessChain 10(dti) 26
-             160:      6(int) Load 159
-             162:    161(ptr) AccessChain 24(data) 25 160 158
-             163: 19(f64vec4) Load 162
-             164: 19(f64vec4) GroupNonUniformFAdd 35 Reduce 163
-             165:    161(ptr) AccessChain 24(data) 25 157 158
-                              Store 165 164
-             166:     27(ptr) AccessChain 10(dti) 26
-             167:      6(int) Load 166
-             168:     27(ptr) AccessChain 10(dti) 26
-             169:      6(int) Load 168
-             171:    170(ptr) AccessChain 24(data) 25 169 158 26
-             172:18(float64_t) Load 171
-             173:18(float64_t) GroupNonUniformFAdd 35 Reduce 172
-             174:    170(ptr) AccessChain 24(data) 25 167 158 26
-                              Store 174 173
-             175:     27(ptr) AccessChain 10(dti) 26
-             176:      6(int) Load 175
-             177:     27(ptr) AccessChain 10(dti) 26
-             178:      6(int) Load 177
-             180:    161(ptr) AccessChain 24(data) 25 178 158
-             181: 19(f64vec4) Load 180
-             182:179(f64vec2) VectorShuffle 181 181 0 1
-             183:179(f64vec2) GroupNonUniformFAdd 35 Reduce 182
-             184:    161(ptr) AccessChain 24(data) 25 176 158
-             185: 19(f64vec4) Load 184
-             186: 19(f64vec4) VectorShuffle 185 183 4 5 2 3
-                              Store 184 186
-             187:     27(ptr) AccessChain 10(dti) 26
-             188:      6(int) Load 187
+             147:    128(ptr) AccessChain 24(data) 25 145 125
+             148:   17(fvec4) Load 147
+             149:  146(fvec2) VectorShuffle 148 148 0 1
+             150:  146(fvec2) GroupNonUniformFAdd 35 Reduce 149
+             151:    137(ptr) AccessChain 24(data) 25 143 125 26
+             152:   16(float) CompositeExtract 150 0
+                              Store 151 152
+             153:    137(ptr) AccessChain 24(data) 25 143 125 58
+             154:   16(float) CompositeExtract 150 1
+                              Store 153 154
+             155:     27(ptr) AccessChain 10(dti) 26
+             156:      6(int) Load 155
+             157:     27(ptr) AccessChain 10(dti) 26
+             158:      6(int) Load 157
+             160:    128(ptr) AccessChain 24(data) 25 158 125
+             161:   17(fvec4) Load 160
+             162:  159(fvec3) VectorShuffle 161 161 0 1 2
+             163:  159(fvec3) GroupNonUniformFAdd 35 Reduce 162
+             164:    137(ptr) AccessChain 24(data) 25 156 125 26
+             165:   16(float) CompositeExtract 163 0
+                              Store 164 165
+             166:    137(ptr) AccessChain 24(data) 25 156 125 58
+             167:   16(float) CompositeExtract 163 1
+                              Store 166 167
+             168:    137(ptr) AccessChain 24(data) 25 156 125 73
+             169:   16(float) CompositeExtract 163 2
+                              Store 168 169
+             170:     27(ptr) AccessChain 10(dti) 26
+             171:      6(int) Load 170
+             173:     27(ptr) AccessChain 10(dti) 26
+             174:      6(int) Load 173
+             176:    175(ptr) AccessChain 24(data) 25 174 172
+             177: 19(f64vec4) Load 176
+             178: 19(f64vec4) GroupNonUniformFAdd 35 Reduce 177
+             179:    175(ptr) AccessChain 24(data) 25 171 172
+                              Store 179 178
+             180:     27(ptr) AccessChain 10(dti) 26
+             181:      6(int) Load 180
+             182:     27(ptr) AccessChain 10(dti) 26
+             183:      6(int) Load 182
+             185:    184(ptr) AccessChain 24(data) 25 183 172 26
+             186:18(float64_t) Load 185
+             187:18(float64_t) GroupNonUniformFAdd 35 Reduce 186
+             188:    184(ptr) AccessChain 24(data) 25 181 172 26
+                              Store 188 187
              189:     27(ptr) AccessChain 10(dti) 26
              190:      6(int) Load 189
-             192:    161(ptr) AccessChain 24(data) 25 190 158
-             193: 19(f64vec4) Load 192
-             194:191(f64vec3) VectorShuffle 193 193 0 1 2
-             195:191(f64vec3) GroupNonUniformFAdd 35 Reduce 194
-             196:    161(ptr) AccessChain 24(data) 25 188 158
-             197: 19(f64vec4) Load 196
-             198: 19(f64vec4) VectorShuffle 197 195 4 5 6 3
-                              Store 196 198
-             199:     27(ptr) AccessChain 10(dti) 26
-             200:      6(int) Load 199
-             201:     27(ptr) AccessChain 10(dti) 26
-             202:      6(int) Load 201
-             203:     32(ptr) AccessChain 24(data) 25 202 25
-             204:   13(ivec4) Load 203
-             205:   13(ivec4) GroupNonUniformIMul 35 Reduce 204
-             206:     32(ptr) AccessChain 24(data) 25 200 25
-                              Store 206 205
-             207:     27(ptr) AccessChain 10(dti) 26
-             208:      6(int) Load 207
-             209:     27(ptr) AccessChain 10(dti) 26
-             210:      6(int) Load 209
-             211:     42(ptr) AccessChain 24(data) 25 210 25 26
-             212:      6(int) Load 211
-             213:      6(int) GroupNonUniformIMul 35 Reduce 212
-             214:     42(ptr) AccessChain 24(data) 25 208 25 26
-                              Store 214 213
-             215:     27(ptr) AccessChain 10(dti) 26
-             216:      6(int) Load 215
+             191:     27(ptr) AccessChain 10(dti) 26
+             192:      6(int) Load 191
+             194:    175(ptr) AccessChain 24(data) 25 192 172
+             195: 19(f64vec4) Load 194
+             196:193(f64vec2) VectorShuffle 195 195 0 1
+             197:193(f64vec2) GroupNonUniformFAdd 35 Reduce 196
+             198:    184(ptr) AccessChain 24(data) 25 190 172 26
+             199:18(float64_t) CompositeExtract 197 0
+                              Store 198 199
+             200:    184(ptr) AccessChain 24(data) 25 190 172 58
+             201:18(float64_t) CompositeExtract 197 1
+                              Store 200 201
+             202:     27(ptr) AccessChain 10(dti) 26
+             203:      6(int) Load 202
+             204:     27(ptr) AccessChain 10(dti) 26
+             205:      6(int) Load 204
+             207:    175(ptr) AccessChain 24(data) 25 205 172
+             208: 19(f64vec4) Load 207
+             209:206(f64vec3) VectorShuffle 208 208 0 1 2
+             210:206(f64vec3) GroupNonUniformFAdd 35 Reduce 209
+             211:    184(ptr) AccessChain 24(data) 25 203 172 26
+             212:18(float64_t) CompositeExtract 210 0
+                              Store 211 212
+             213:    184(ptr) AccessChain 24(data) 25 203 172 58
+             214:18(float64_t) CompositeExtract 210 1
+                              Store 213 214
+             215:    184(ptr) AccessChain 24(data) 25 203 172 73
+             216:18(float64_t) CompositeExtract 210 2
+                              Store 215 216
              217:     27(ptr) AccessChain 10(dti) 26
              218:      6(int) Load 217
-             219:     32(ptr) AccessChain 24(data) 25 218 25
-             220:   13(ivec4) Load 219
-             221:   51(ivec2) VectorShuffle 220 220 0 1
-             222:   51(ivec2) GroupNonUniformIMul 35 Reduce 221
-             223:     32(ptr) AccessChain 24(data) 25 216 25
-             224:   13(ivec4) Load 223
-             225:   13(ivec4) VectorShuffle 224 222 4 5 2 3
-                              Store 223 225
-             226:     27(ptr) AccessChain 10(dti) 26
-             227:      6(int) Load 226
-             228:     27(ptr) AccessChain 10(dti) 26
-             229:      6(int) Load 228
-             230:     32(ptr) AccessChain 24(data) 25 229 25
-             231:   13(ivec4) Load 230
-             232:    7(ivec3) VectorShuffle 231 231 0 1 2
-             233:    7(ivec3) GroupNonUniformIMul 35 Reduce 232
-             234:     32(ptr) AccessChain 24(data) 25 227 25
-             235:   13(ivec4) Load 234
-             236:   13(ivec4) VectorShuffle 235 233 4 5 6 3
-                              Store 234 236
-             237:     27(ptr) AccessChain 10(dti) 26
-             238:      6(int) Load 237
-             239:     27(ptr) AccessChain 10(dti) 26
-             240:      6(int) Load 239
-             241:     75(ptr) AccessChain 24(data) 25 240 72
-             242:   15(ivec4) Load 241
-             243:   15(ivec4) GroupNonUniformIMul 35 Reduce 242
-             244:     75(ptr) AccessChain 24(data) 25 238 72
-                              Store 244 243
+             219:     27(ptr) AccessChain 10(dti) 26
+             220:      6(int) Load 219
+             221:     32(ptr) AccessChain 24(data) 25 220 25
+             222:   13(ivec4) Load 221
+             223:   13(ivec4) GroupNonUniformIMul 35 Reduce 222
+             224:     32(ptr) AccessChain 24(data) 25 218 25
+                              Store 224 223
+             225:     27(ptr) AccessChain 10(dti) 26
+             226:      6(int) Load 225
+             227:     27(ptr) AccessChain 10(dti) 26
+             228:      6(int) Load 227
+             229:     42(ptr) AccessChain 24(data) 25 228 25 26
+             230:      6(int) Load 229
+             231:      6(int) GroupNonUniformIMul 35 Reduce 230
+             232:     42(ptr) AccessChain 24(data) 25 226 25 26
+                              Store 232 231
+             233:     27(ptr) AccessChain 10(dti) 26
+             234:      6(int) Load 233
+             235:     27(ptr) AccessChain 10(dti) 26
+             236:      6(int) Load 235
+             237:     32(ptr) AccessChain 24(data) 25 236 25
+             238:   13(ivec4) Load 237
+             239:   51(ivec2) VectorShuffle 238 238 0 1
+             240:   51(ivec2) GroupNonUniformIMul 35 Reduce 239
+             241:     42(ptr) AccessChain 24(data) 25 234 25 26
+             242:      6(int) CompositeExtract 240 0
+                              Store 241 242
+             243:     42(ptr) AccessChain 24(data) 25 234 25 58
+             244:      6(int) CompositeExtract 240 1
+                              Store 243 244
              245:     27(ptr) AccessChain 10(dti) 26
              246:      6(int) Load 245
              247:     27(ptr) AccessChain 10(dti) 26
              248:      6(int) Load 247
-             249:     84(ptr) AccessChain 24(data) 25 248 72 26
-             250:     14(int) Load 249
-             251:     14(int) GroupNonUniformIMul 35 Reduce 250
-             252:     84(ptr) AccessChain 24(data) 25 246 72 26
-                              Store 252 251
-             253:     27(ptr) AccessChain 10(dti) 26
-             254:      6(int) Load 253
-             255:     27(ptr) AccessChain 10(dti) 26
-             256:      6(int) Load 255
-             257:     75(ptr) AccessChain 24(data) 25 256 72
-             258:   15(ivec4) Load 257
-             259:   93(ivec2) VectorShuffle 258 258 0 1
-             260:   93(ivec2) GroupNonUniformIMul 35 Reduce 259
-             261:     75(ptr) AccessChain 24(data) 25 254 72
-             262:   15(ivec4) Load 261
-             263:   15(ivec4) VectorShuffle 262 260 4 5 2 3
-                              Store 261 263
-             264:     27(ptr) AccessChain 10(dti) 26
-             265:      6(int) Load 264
-             266:     27(ptr) AccessChain 10(dti) 26
-             267:      6(int) Load 266
-             268:     75(ptr) AccessChain 24(data) 25 267 72
-             269:   15(ivec4) Load 268
-             270:  105(ivec3) VectorShuffle 269 269 0 1 2
-             271:  105(ivec3) GroupNonUniformIMul 35 Reduce 270
-             272:     75(ptr) AccessChain 24(data) 25 265 72
-             273:   15(ivec4) Load 272
-             274:   15(ivec4) VectorShuffle 273 271 4 5 6 3
-                              Store 272 274
+             249:     32(ptr) AccessChain 24(data) 25 248 25
+             250:   13(ivec4) Load 249
+             251:    7(ivec3) VectorShuffle 250 250 0 1 2
+             252:    7(ivec3) GroupNonUniformIMul 35 Reduce 251
+             253:     42(ptr) AccessChain 24(data) 25 246 25 26
+             254:      6(int) CompositeExtract 252 0
+                              Store 253 254
+             255:     42(ptr) AccessChain 24(data) 25 246 25 58
+             256:      6(int) CompositeExtract 252 1
+                              Store 255 256
+             257:     42(ptr) AccessChain 24(data) 25 246 25 73
+             258:      6(int) CompositeExtract 252 2
+                              Store 257 258
+             259:     27(ptr) AccessChain 10(dti) 26
+             260:      6(int) Load 259
+             261:     27(ptr) AccessChain 10(dti) 26
+             262:      6(int) Load 261
+             263:     81(ptr) AccessChain 24(data) 25 262 78
+             264:   15(ivec4) Load 263
+             265:   15(ivec4) GroupNonUniformIMul 35 Reduce 264
+             266:     81(ptr) AccessChain 24(data) 25 260 78
+                              Store 266 265
+             267:     27(ptr) AccessChain 10(dti) 26
+             268:      6(int) Load 267
+             269:     27(ptr) AccessChain 10(dti) 26
+             270:      6(int) Load 269
+             271:     90(ptr) AccessChain 24(data) 25 270 78 26
+             272:     14(int) Load 271
+             273:     14(int) GroupNonUniformIMul 35 Reduce 272
+             274:     90(ptr) AccessChain 24(data) 25 268 78 26
+                              Store 274 273
              275:     27(ptr) AccessChain 10(dti) 26
              276:      6(int) Load 275
              277:     27(ptr) AccessChain 10(dti) 26
              278:      6(int) Load 277
-             279:    118(ptr) AccessChain 24(data) 25 278 115
-             280:   17(fvec4) Load 279
-             281:   17(fvec4) GroupNonUniformFMul 35 Reduce 280
-             282:    118(ptr) AccessChain 24(data) 25 276 115
-                              Store 282 281
-             283:     27(ptr) AccessChain 10(dti) 26
-             284:      6(int) Load 283
-             285:     27(ptr) AccessChain 10(dti) 26
-             286:      6(int) Load 285
-             287:    127(ptr) AccessChain 24(data) 25 286 115 26
-             288:   16(float) Load 287
-             289:   16(float) GroupNonUniformFMul 35 Reduce 288
-             290:    127(ptr) AccessChain 24(data) 25 284 115 26
-                              Store 290 289
-             291:     27(ptr) AccessChain 10(dti) 26
-             292:      6(int) Load 291
-             293:     27(ptr) AccessChain 10(dti) 26
-             294:      6(int) Load 293
-             295:    118(ptr) AccessChain 24(data) 25 294 115
-             296:   17(fvec4) Load 295
-             297:  136(fvec2) VectorShuffle 296 296 0 1
-             298:  136(fvec2) GroupNonUniformFMul 35 Reduce 297
-             299:    118(ptr) AccessChain 24(data) 25 292 115
-             300:   17(fvec4) Load 299
-             301:   17(fvec4) VectorShuffle 300 298 4 5 2 3
-                              Store 299 301
-             302:     27(ptr) AccessChain 10(dti) 26
-             303:      6(int) Load 302
-             304:     27(ptr) AccessChain 10(dti) 26
-             305:      6(int) Load 304
-             306:    118(ptr) AccessChain 24(data) 25 305 115
-             307:   17(fvec4) Load 306
-             308:  148(fvec3) VectorShuffle 307 307 0 1 2
-             309:  148(fvec3) GroupNonUniformFMul 35 Reduce 308
-             310:    118(ptr) AccessChain 24(data) 25 303 115
-             311:   17(fvec4) Load 310
-             312:   17(fvec4) VectorShuffle 311 309 4 5 6 3
-                              Store 310 312
-             313:     27(ptr) AccessChain 10(dti) 26
-             314:      6(int) Load 313
-             315:     27(ptr) AccessChain 10(dti) 26
-             316:      6(int) Load 315
-             317:    161(ptr) AccessChain 24(data) 25 316 158
-             318: 19(f64vec4) Load 317
-             319: 19(f64vec4) GroupNonUniformFMul 35 Reduce 318
-             320:    161(ptr) AccessChain 24(data) 25 314 158
-                              Store 320 319
-             321:     27(ptr) AccessChain 10(dti) 26
-             322:      6(int) Load 321
-             323:     27(ptr) AccessChain 10(dti) 26
-             324:      6(int) Load 323
-             325:    170(ptr) AccessChain 24(data) 25 324 158 26
-             326:18(float64_t) Load 325
-             327:18(float64_t) GroupNonUniformFMul 35 Reduce 326
-             328:    170(ptr) AccessChain 24(data) 25 322 158 26
-                              Store 328 327
+             279:     81(ptr) AccessChain 24(data) 25 278 78
+             280:   15(ivec4) Load 279
+             281:   99(ivec2) VectorShuffle 280 280 0 1
+             282:   99(ivec2) GroupNonUniformIMul 35 Reduce 281
+             283:     90(ptr) AccessChain 24(data) 25 276 78 26
+             284:     14(int) CompositeExtract 282 0
+                              Store 283 284
+             285:     90(ptr) AccessChain 24(data) 25 276 78 58
+             286:     14(int) CompositeExtract 282 1
+                              Store 285 286
+             287:     27(ptr) AccessChain 10(dti) 26
+             288:      6(int) Load 287
+             289:     27(ptr) AccessChain 10(dti) 26
+             290:      6(int) Load 289
+             291:     81(ptr) AccessChain 24(data) 25 290 78
+             292:   15(ivec4) Load 291
+             293:  112(ivec3) VectorShuffle 292 292 0 1 2
+             294:  112(ivec3) GroupNonUniformIMul 35 Reduce 293
+             295:     90(ptr) AccessChain 24(data) 25 288 78 26
+             296:     14(int) CompositeExtract 294 0
+                              Store 295 296
+             297:     90(ptr) AccessChain 24(data) 25 288 78 58
+             298:     14(int) CompositeExtract 294 1
+                              Store 297 298
+             299:     90(ptr) AccessChain 24(data) 25 288 78 73
+             300:     14(int) CompositeExtract 294 2
+                              Store 299 300
+             301:     27(ptr) AccessChain 10(dti) 26
+             302:      6(int) Load 301
+             303:     27(ptr) AccessChain 10(dti) 26
+             304:      6(int) Load 303
+             305:    128(ptr) AccessChain 24(data) 25 304 125
+             306:   17(fvec4) Load 305
+             307:   17(fvec4) GroupNonUniformFMul 35 Reduce 306
+             308:    128(ptr) AccessChain 24(data) 25 302 125
+                              Store 308 307
+             309:     27(ptr) AccessChain 10(dti) 26
+             310:      6(int) Load 309
+             311:     27(ptr) AccessChain 10(dti) 26
+             312:      6(int) Load 311
+             313:    137(ptr) AccessChain 24(data) 25 312 125 26
+             314:   16(float) Load 313
+             315:   16(float) GroupNonUniformFMul 35 Reduce 314
+             316:    137(ptr) AccessChain 24(data) 25 310 125 26
+                              Store 316 315
+             317:     27(ptr) AccessChain 10(dti) 26
+             318:      6(int) Load 317
+             319:     27(ptr) AccessChain 10(dti) 26
+             320:      6(int) Load 319
+             321:    128(ptr) AccessChain 24(data) 25 320 125
+             322:   17(fvec4) Load 321
+             323:  146(fvec2) VectorShuffle 322 322 0 1
+             324:  146(fvec2) GroupNonUniformFMul 35 Reduce 323
+             325:    137(ptr) AccessChain 24(data) 25 318 125 26
+             326:   16(float) CompositeExtract 324 0
+                              Store 325 326
+             327:    137(ptr) AccessChain 24(data) 25 318 125 58
+             328:   16(float) CompositeExtract 324 1
+                              Store 327 328
              329:     27(ptr) AccessChain 10(dti) 26
              330:      6(int) Load 329
              331:     27(ptr) AccessChain 10(dti) 26
              332:      6(int) Load 331
-             333:    161(ptr) AccessChain 24(data) 25 332 158
-             334: 19(f64vec4) Load 333
-             335:179(f64vec2) VectorShuffle 334 334 0 1
-             336:179(f64vec2) GroupNonUniformFMul 35 Reduce 335
-             337:    161(ptr) AccessChain 24(data) 25 330 158
-             338: 19(f64vec4) Load 337
-             339: 19(f64vec4) VectorShuffle 338 336 4 5 2 3
-                              Store 337 339
-             340:     27(ptr) AccessChain 10(dti) 26
-             341:      6(int) Load 340
-             342:     27(ptr) AccessChain 10(dti) 26
-             343:      6(int) Load 342
-             344:    161(ptr) AccessChain 24(data) 25 343 158
-             345: 19(f64vec4) Load 344
-             346:191(f64vec3) VectorShuffle 345 345 0 1 2
-             347:191(f64vec3) GroupNonUniformFMul 35 Reduce 346
-             348:    161(ptr) AccessChain 24(data) 25 341 158
-             349: 19(f64vec4) Load 348
-             350: 19(f64vec4) VectorShuffle 349 347 4 5 6 3
-                              Store 348 350
+             333:    128(ptr) AccessChain 24(data) 25 332 125
+             334:   17(fvec4) Load 333
+             335:  159(fvec3) VectorShuffle 334 334 0 1 2
+             336:  159(fvec3) GroupNonUniformFMul 35 Reduce 335
+             337:    137(ptr) AccessChain 24(data) 25 330 125 26
+             338:   16(float) CompositeExtract 336 0
+                              Store 337 338
+             339:    137(ptr) AccessChain 24(data) 25 330 125 58
+             340:   16(float) CompositeExtract 336 1
+                              Store 339 340
+             341:    137(ptr) AccessChain 24(data) 25 330 125 73
+             342:   16(float) CompositeExtract 336 2
+                              Store 341 342
+             343:     27(ptr) AccessChain 10(dti) 26
+             344:      6(int) Load 343
+             345:     27(ptr) AccessChain 10(dti) 26
+             346:      6(int) Load 345
+             347:    175(ptr) AccessChain 24(data) 25 346 172
+             348: 19(f64vec4) Load 347
+             349: 19(f64vec4) GroupNonUniformFMul 35 Reduce 348
+             350:    175(ptr) AccessChain 24(data) 25 344 172
+                              Store 350 349
              351:     27(ptr) AccessChain 10(dti) 26
              352:      6(int) Load 351
              353:     27(ptr) AccessChain 10(dti) 26
              354:      6(int) Load 353
-             355:     32(ptr) AccessChain 24(data) 25 354 25
-             356:   13(ivec4) Load 355
-             357:   13(ivec4) GroupNonUniformUMin 35 Reduce 356
-             358:     32(ptr) AccessChain 24(data) 25 352 25
+             355:    184(ptr) AccessChain 24(data) 25 354 172 26
+             356:18(float64_t) Load 355
+             357:18(float64_t) GroupNonUniformFMul 35 Reduce 356
+             358:    184(ptr) AccessChain 24(data) 25 352 172 26
                               Store 358 357
              359:     27(ptr) AccessChain 10(dti) 26
              360:      6(int) Load 359
              361:     27(ptr) AccessChain 10(dti) 26
              362:      6(int) Load 361
-             363:     42(ptr) AccessChain 24(data) 25 362 25 26
-             364:      6(int) Load 363
-             365:      6(int) GroupNonUniformUMin 35 Reduce 364
-             366:     42(ptr) AccessChain 24(data) 25 360 25 26
-                              Store 366 365
-             367:     27(ptr) AccessChain 10(dti) 26
-             368:      6(int) Load 367
-             369:     27(ptr) AccessChain 10(dti) 26
-             370:      6(int) Load 369
-             371:     32(ptr) AccessChain 24(data) 25 370 25
-             372:   13(ivec4) Load 371
-             373:   51(ivec2) VectorShuffle 372 372 0 1
-             374:   51(ivec2) GroupNonUniformUMin 35 Reduce 373
-             375:     32(ptr) AccessChain 24(data) 25 368 25
-             376:   13(ivec4) Load 375
-             377:   13(ivec4) VectorShuffle 376 374 4 5 2 3
-                              Store 375 377
-             378:     27(ptr) AccessChain 10(dti) 26
-             379:      6(int) Load 378
-             380:     27(ptr) AccessChain 10(dti) 26
-             381:      6(int) Load 380
-             382:     32(ptr) AccessChain 24(data) 25 381 25
-             383:   13(ivec4) Load 382
-             384:    7(ivec3) VectorShuffle 383 383 0 1 2
-             385:    7(ivec3) GroupNonUniformUMin 35 Reduce 384
-             386:     32(ptr) AccessChain 24(data) 25 379 25
-             387:   13(ivec4) Load 386
-             388:   13(ivec4) VectorShuffle 387 385 4 5 6 3
-                              Store 386 388
-             389:     27(ptr) AccessChain 10(dti) 26
-             390:      6(int) Load 389
-             391:     27(ptr) AccessChain 10(dti) 26
-             392:      6(int) Load 391
-             393:     75(ptr) AccessChain 24(data) 25 392 72
-             394:   15(ivec4) Load 393
-             395:   15(ivec4) GroupNonUniformSMin 35 Reduce 394
-             396:     75(ptr) AccessChain 24(data) 25 390 72
-                              Store 396 395
-             397:     27(ptr) AccessChain 10(dti) 26
+             363:    175(ptr) AccessChain 24(data) 25 362 172
+             364: 19(f64vec4) Load 363
+             365:193(f64vec2) VectorShuffle 364 364 0 1
+             366:193(f64vec2) GroupNonUniformFMul 35 Reduce 365
+             367:    184(ptr) AccessChain 24(data) 25 360 172 26
+             368:18(float64_t) CompositeExtract 366 0
+                              Store 367 368
+             369:    184(ptr) AccessChain 24(data) 25 360 172 58
+             370:18(float64_t) CompositeExtract 366 1
+                              Store 369 370
+             371:     27(ptr) AccessChain 10(dti) 26
+             372:      6(int) Load 371
+             373:     27(ptr) AccessChain 10(dti) 26
+             374:      6(int) Load 373
+             375:    175(ptr) AccessChain 24(data) 25 374 172
+             376: 19(f64vec4) Load 375
+             377:206(f64vec3) VectorShuffle 376 376 0 1 2
+             378:206(f64vec3) GroupNonUniformFMul 35 Reduce 377
+             379:    184(ptr) AccessChain 24(data) 25 372 172 26
+             380:18(float64_t) CompositeExtract 378 0
+                              Store 379 380
+             381:    184(ptr) AccessChain 24(data) 25 372 172 58
+             382:18(float64_t) CompositeExtract 378 1
+                              Store 381 382
+             383:    184(ptr) AccessChain 24(data) 25 372 172 73
+             384:18(float64_t) CompositeExtract 378 2
+                              Store 383 384
+             385:     27(ptr) AccessChain 10(dti) 26
+             386:      6(int) Load 385
+             387:     27(ptr) AccessChain 10(dti) 26
+             388:      6(int) Load 387
+             389:     32(ptr) AccessChain 24(data) 25 388 25
+             390:   13(ivec4) Load 389
+             391:   13(ivec4) GroupNonUniformUMin 35 Reduce 390
+             392:     32(ptr) AccessChain 24(data) 25 386 25
+                              Store 392 391
+             393:     27(ptr) AccessChain 10(dti) 26
+             394:      6(int) Load 393
+             395:     27(ptr) AccessChain 10(dti) 26
+             396:      6(int) Load 395
+             397:     42(ptr) AccessChain 24(data) 25 396 25 26
              398:      6(int) Load 397
-             399:     27(ptr) AccessChain 10(dti) 26
-             400:      6(int) Load 399
-             401:     84(ptr) AccessChain 24(data) 25 400 72 26
-             402:     14(int) Load 401
-             403:     14(int) GroupNonUniformSMin 35 Reduce 402
-             404:     84(ptr) AccessChain 24(data) 25 398 72 26
-                              Store 404 403
-             405:     27(ptr) AccessChain 10(dti) 26
-             406:      6(int) Load 405
-             407:     27(ptr) AccessChain 10(dti) 26
-             408:      6(int) Load 407
-             409:     75(ptr) AccessChain 24(data) 25 408 72
-             410:   15(ivec4) Load 409
-             411:   93(ivec2) VectorShuffle 410 410 0 1
-             412:   93(ivec2) GroupNonUniformSMin 35 Reduce 411
-             413:     75(ptr) AccessChain 24(data) 25 406 72
-             414:   15(ivec4) Load 413
-             415:   15(ivec4) VectorShuffle 414 412 4 5 2 3
-                              Store 413 415
-             416:     27(ptr) AccessChain 10(dti) 26
-             417:      6(int) Load 416
-             418:     27(ptr) AccessChain 10(dti) 26
-             419:      6(int) Load 418
-             420:     75(ptr) AccessChain 24(data) 25 419 72
-             421:   15(ivec4) Load 420
-             422:  105(ivec3) VectorShuffle 421 421 0 1 2
-             423:  105(ivec3) GroupNonUniformSMin 35 Reduce 422
-             424:     75(ptr) AccessChain 24(data) 25 417 72
-             425:   15(ivec4) Load 424
-             426:   15(ivec4) VectorShuffle 425 423 4 5 6 3
-                              Store 424 426
+             399:      6(int) GroupNonUniformUMin 35 Reduce 398
+             400:     42(ptr) AccessChain 24(data) 25 394 25 26
+                              Store 400 399
+             401:     27(ptr) AccessChain 10(dti) 26
+             402:      6(int) Load 401
+             403:     27(ptr) AccessChain 10(dti) 26
+             404:      6(int) Load 403
+             405:     32(ptr) AccessChain 24(data) 25 404 25
+             406:   13(ivec4) Load 405
+             407:   51(ivec2) VectorShuffle 406 406 0 1
+             408:   51(ivec2) GroupNonUniformUMin 35 Reduce 407
+             409:     42(ptr) AccessChain 24(data) 25 402 25 26
+             410:      6(int) CompositeExtract 408 0
+                              Store 409 410
+             411:     42(ptr) AccessChain 24(data) 25 402 25 58
+             412:      6(int) CompositeExtract 408 1
+                              Store 411 412
+             413:     27(ptr) AccessChain 10(dti) 26
+             414:      6(int) Load 413
+             415:     27(ptr) AccessChain 10(dti) 26
+             416:      6(int) Load 415
+             417:     32(ptr) AccessChain 24(data) 25 416 25
+             418:   13(ivec4) Load 417
+             419:    7(ivec3) VectorShuffle 418 418 0 1 2
+             420:    7(ivec3) GroupNonUniformUMin 35 Reduce 419
+             421:     42(ptr) AccessChain 24(data) 25 414 25 26
+             422:      6(int) CompositeExtract 420 0
+                              Store 421 422
+             423:     42(ptr) AccessChain 24(data) 25 414 25 58
+             424:      6(int) CompositeExtract 420 1
+                              Store 423 424
+             425:     42(ptr) AccessChain 24(data) 25 414 25 73
+             426:      6(int) CompositeExtract 420 2
+                              Store 425 426
              427:     27(ptr) AccessChain 10(dti) 26
              428:      6(int) Load 427
              429:     27(ptr) AccessChain 10(dti) 26
              430:      6(int) Load 429
-             431:    118(ptr) AccessChain 24(data) 25 430 115
-             432:   17(fvec4) Load 431
-             433:   17(fvec4) GroupNonUniformFMin 35 Reduce 432
-             434:    118(ptr) AccessChain 24(data) 25 428 115
+             431:     81(ptr) AccessChain 24(data) 25 430 78
+             432:   15(ivec4) Load 431
+             433:   15(ivec4) GroupNonUniformSMin 35 Reduce 432
+             434:     81(ptr) AccessChain 24(data) 25 428 78
                               Store 434 433
              435:     27(ptr) AccessChain 10(dti) 26
              436:      6(int) Load 435
              437:     27(ptr) AccessChain 10(dti) 26
              438:      6(int) Load 437
-             439:    127(ptr) AccessChain 24(data) 25 438 115 26
-             440:   16(float) Load 439
-             441:   16(float) GroupNonUniformFMin 35 Reduce 440
-             442:    127(ptr) AccessChain 24(data) 25 436 115 26
+             439:     90(ptr) AccessChain 24(data) 25 438 78 26
+             440:     14(int) Load 439
+             441:     14(int) GroupNonUniformSMin 35 Reduce 440
+             442:     90(ptr) AccessChain 24(data) 25 436 78 26
                               Store 442 441
              443:     27(ptr) AccessChain 10(dti) 26
              444:      6(int) Load 443
              445:     27(ptr) AccessChain 10(dti) 26
              446:      6(int) Load 445
-             447:    118(ptr) AccessChain 24(data) 25 446 115
-             448:   17(fvec4) Load 447
-             449:  136(fvec2) VectorShuffle 448 448 0 1
-             450:  136(fvec2) GroupNonUniformFMin 35 Reduce 449
-             451:    118(ptr) AccessChain 24(data) 25 444 115
-             452:   17(fvec4) Load 451
-             453:   17(fvec4) VectorShuffle 452 450 4 5 2 3
-                              Store 451 453
-             454:     27(ptr) AccessChain 10(dti) 26
-             455:      6(int) Load 454
-             456:     27(ptr) AccessChain 10(dti) 26
-             457:      6(int) Load 456
-             458:    118(ptr) AccessChain 24(data) 25 457 115
-             459:   17(fvec4) Load 458
-             460:  148(fvec3) VectorShuffle 459 459 0 1 2
-             461:  148(fvec3) GroupNonUniformFMin 35 Reduce 460
-             462:    118(ptr) AccessChain 24(data) 25 455 115
-             463:   17(fvec4) Load 462
-             464:   17(fvec4) VectorShuffle 463 461 4 5 6 3
-                              Store 462 464
-             465:     27(ptr) AccessChain 10(dti) 26
-             466:      6(int) Load 465
-             467:     27(ptr) AccessChain 10(dti) 26
-             468:      6(int) Load 467
-             469:    161(ptr) AccessChain 24(data) 25 468 158
-             470: 19(f64vec4) Load 469
-             471: 19(f64vec4) GroupNonUniformFMin 35 Reduce 470
-             472:    161(ptr) AccessChain 24(data) 25 466 158
-                              Store 472 471
-             473:     27(ptr) AccessChain 10(dti) 26
-             474:      6(int) Load 473
-             475:     27(ptr) AccessChain 10(dti) 26
-             476:      6(int) Load 475
-             477:    170(ptr) AccessChain 24(data) 25 476 158 26
-             478:18(float64_t) Load 477
-             479:18(float64_t) GroupNonUniformFMin 35 Reduce 478
-             480:    170(ptr) AccessChain 24(data) 25 474 158 26
-                              Store 480 479
-             481:     27(ptr) AccessChain 10(dti) 26
-             482:      6(int) Load 481
-             483:     27(ptr) AccessChain 10(dti) 26
-             484:      6(int) Load 483
-             485:    161(ptr) AccessChain 24(data) 25 484 158
-             486: 19(f64vec4) Load 485
-             487:179(f64vec2) VectorShuffle 486 486 0 1
-             488:179(f64vec2) GroupNonUniformFMin 35 Reduce 487
-             489:    161(ptr) AccessChain 24(data) 25 482 158
-             490: 19(f64vec4) Load 489
-             491: 19(f64vec4) VectorShuffle 490 488 4 5 2 3
-                              Store 489 491
-             492:     27(ptr) AccessChain 10(dti) 26
-             493:      6(int) Load 492
-             494:     27(ptr) AccessChain 10(dti) 26
-             495:      6(int) Load 494
-             496:    161(ptr) AccessChain 24(data) 25 495 158
-             497: 19(f64vec4) Load 496
-             498:191(f64vec3) VectorShuffle 497 497 0 1 2
-             499:191(f64vec3) GroupNonUniformFMin 35 Reduce 498
-             500:    161(ptr) AccessChain 24(data) 25 493 158
-             501: 19(f64vec4) Load 500
-             502: 19(f64vec4) VectorShuffle 501 499 4 5 6 3
-                              Store 500 502
-             503:     27(ptr) AccessChain 10(dti) 26
-             504:      6(int) Load 503
-             505:     27(ptr) AccessChain 10(dti) 26
-             506:      6(int) Load 505
-             507:     32(ptr) AccessChain 24(data) 25 506 25
-             508:   13(ivec4) Load 507
-             509:   13(ivec4) GroupNonUniformUMax 35 Reduce 508
-             510:     32(ptr) AccessChain 24(data) 25 504 25
-                              Store 510 509
+             447:     81(ptr) AccessChain 24(data) 25 446 78
+             448:   15(ivec4) Load 447
+             449:   99(ivec2) VectorShuffle 448 448 0 1
+             450:   99(ivec2) GroupNonUniformSMin 35 Reduce 449
+             451:     90(ptr) AccessChain 24(data) 25 444 78 26
+             452:     14(int) CompositeExtract 450 0
+                              Store 451 452
+             453:     90(ptr) AccessChain 24(data) 25 444 78 58
+             454:     14(int) CompositeExtract 450 1
+                              Store 453 454
+             455:     27(ptr) AccessChain 10(dti) 26
+             456:      6(int) Load 455
+             457:     27(ptr) AccessChain 10(dti) 26
+             458:      6(int) Load 457
+             459:     81(ptr) AccessChain 24(data) 25 458 78
+             460:   15(ivec4) Load 459
+             461:  112(ivec3) VectorShuffle 460 460 0 1 2
+             462:  112(ivec3) GroupNonUniformSMin 35 Reduce 461
+             463:     90(ptr) AccessChain 24(data) 25 456 78 26
+             464:     14(int) CompositeExtract 462 0
+                              Store 463 464
+             465:     90(ptr) AccessChain 24(data) 25 456 78 58
+             466:     14(int) CompositeExtract 462 1
+                              Store 465 466
+             467:     90(ptr) AccessChain 24(data) 25 456 78 73
+             468:     14(int) CompositeExtract 462 2
+                              Store 467 468
+             469:     27(ptr) AccessChain 10(dti) 26
+             470:      6(int) Load 469
+             471:     27(ptr) AccessChain 10(dti) 26
+             472:      6(int) Load 471
+             473:    128(ptr) AccessChain 24(data) 25 472 125
+             474:   17(fvec4) Load 473
+             475:   17(fvec4) GroupNonUniformFMin 35 Reduce 474
+             476:    128(ptr) AccessChain 24(data) 25 470 125
+                              Store 476 475
+             477:     27(ptr) AccessChain 10(dti) 26
+             478:      6(int) Load 477
+             479:     27(ptr) AccessChain 10(dti) 26
+             480:      6(int) Load 479
+             481:    137(ptr) AccessChain 24(data) 25 480 125 26
+             482:   16(float) Load 481
+             483:   16(float) GroupNonUniformFMin 35 Reduce 482
+             484:    137(ptr) AccessChain 24(data) 25 478 125 26
+                              Store 484 483
+             485:     27(ptr) AccessChain 10(dti) 26
+             486:      6(int) Load 485
+             487:     27(ptr) AccessChain 10(dti) 26
+             488:      6(int) Load 487
+             489:    128(ptr) AccessChain 24(data) 25 488 125
+             490:   17(fvec4) Load 489
+             491:  146(fvec2) VectorShuffle 490 490 0 1
+             492:  146(fvec2) GroupNonUniformFMin 35 Reduce 491
+             493:    137(ptr) AccessChain 24(data) 25 486 125 26
+             494:   16(float) CompositeExtract 492 0
+                              Store 493 494
+             495:    137(ptr) AccessChain 24(data) 25 486 125 58
+             496:   16(float) CompositeExtract 492 1
+                              Store 495 496
+             497:     27(ptr) AccessChain 10(dti) 26
+             498:      6(int) Load 497
+             499:     27(ptr) AccessChain 10(dti) 26
+             500:      6(int) Load 499
+             501:    128(ptr) AccessChain 24(data) 25 500 125
+             502:   17(fvec4) Load 501
+             503:  159(fvec3) VectorShuffle 502 502 0 1 2
+             504:  159(fvec3) GroupNonUniformFMin 35 Reduce 503
+             505:    137(ptr) AccessChain 24(data) 25 498 125 26
+             506:   16(float) CompositeExtract 504 0
+                              Store 505 506
+             507:    137(ptr) AccessChain 24(data) 25 498 125 58
+             508:   16(float) CompositeExtract 504 1
+                              Store 507 508
+             509:    137(ptr) AccessChain 24(data) 25 498 125 73
+             510:   16(float) CompositeExtract 504 2
+                              Store 509 510
              511:     27(ptr) AccessChain 10(dti) 26
              512:      6(int) Load 511
              513:     27(ptr) AccessChain 10(dti) 26
              514:      6(int) Load 513
-             515:     42(ptr) AccessChain 24(data) 25 514 25 26
-             516:      6(int) Load 515
-             517:      6(int) GroupNonUniformUMax 35 Reduce 516
-             518:     42(ptr) AccessChain 24(data) 25 512 25 26
+             515:    175(ptr) AccessChain 24(data) 25 514 172
+             516: 19(f64vec4) Load 515
+             517: 19(f64vec4) GroupNonUniformFMin 35 Reduce 516
+             518:    175(ptr) AccessChain 24(data) 25 512 172
                               Store 518 517
              519:     27(ptr) AccessChain 10(dti) 26
              520:      6(int) Load 519
              521:     27(ptr) AccessChain 10(dti) 26
              522:      6(int) Load 521
-             523:     32(ptr) AccessChain 24(data) 25 522 25
-             524:   13(ivec4) Load 523
-             525:   51(ivec2) VectorShuffle 524 524 0 1
-             526:   51(ivec2) GroupNonUniformUMax 35 Reduce 525
-             527:     32(ptr) AccessChain 24(data) 25 520 25
-             528:   13(ivec4) Load 527
-             529:   13(ivec4) VectorShuffle 528 526 4 5 2 3
-                              Store 527 529
-             530:     27(ptr) AccessChain 10(dti) 26
-             531:      6(int) Load 530
-             532:     27(ptr) AccessChain 10(dti) 26
-             533:      6(int) Load 532
-             534:     32(ptr) AccessChain 24(data) 25 533 25
-             535:   13(ivec4) Load 534
-             536:    7(ivec3) VectorShuffle 535 535 0 1 2
-             537:    7(ivec3) GroupNonUniformUMax 35 Reduce 536
-             538:     32(ptr) AccessChain 24(data) 25 531 25
-             539:   13(ivec4) Load 538
-             540:   13(ivec4) VectorShuffle 539 537 4 5 6 3
-                              Store 538 540
+             523:    184(ptr) AccessChain 24(data) 25 522 172 26
+             524:18(float64_t) Load 523
+             525:18(float64_t) GroupNonUniformFMin 35 Reduce 524
+             526:    184(ptr) AccessChain 24(data) 25 520 172 26
+                              Store 526 525
+             527:     27(ptr) AccessChain 10(dti) 26
+             528:      6(int) Load 527
+             529:     27(ptr) AccessChain 10(dti) 26
+             530:      6(int) Load 529
+             531:    175(ptr) AccessChain 24(data) 25 530 172
+             532: 19(f64vec4) Load 531
+             533:193(f64vec2) VectorShuffle 532 532 0 1
+             534:193(f64vec2) GroupNonUniformFMin 35 Reduce 533
+             535:    184(ptr) AccessChain 24(data) 25 528 172 26
+             536:18(float64_t) CompositeExtract 534 0
+                              Store 535 536
+             537:    184(ptr) AccessChain 24(data) 25 528 172 58
+             538:18(float64_t) CompositeExtract 534 1
+                              Store 537 538
+             539:     27(ptr) AccessChain 10(dti) 26
+             540:      6(int) Load 539
              541:     27(ptr) AccessChain 10(dti) 26
              542:      6(int) Load 541
-             543:     27(ptr) AccessChain 10(dti) 26
-             544:      6(int) Load 543
-             545:     75(ptr) AccessChain 24(data) 25 544 72
-             546:   15(ivec4) Load 545
-             547:   15(ivec4) GroupNonUniformSMax 35 Reduce 546
-             548:     75(ptr) AccessChain 24(data) 25 542 72
-                              Store 548 547
-             549:     27(ptr) AccessChain 10(dti) 26
-             550:      6(int) Load 549
-             551:     27(ptr) AccessChain 10(dti) 26
-             552:      6(int) Load 551
-             553:     84(ptr) AccessChain 24(data) 25 552 72 26
-             554:     14(int) Load 553
-             555:     14(int) GroupNonUniformSMax 35 Reduce 554
-             556:     84(ptr) AccessChain 24(data) 25 550 72 26
-                              Store 556 555
-             557:     27(ptr) AccessChain 10(dti) 26
-             558:      6(int) Load 557
-             559:     27(ptr) AccessChain 10(dti) 26
-             560:      6(int) Load 559
-             561:     75(ptr) AccessChain 24(data) 25 560 72
-             562:   15(ivec4) Load 561
-             563:   93(ivec2) VectorShuffle 562 562 0 1
-             564:   93(ivec2) GroupNonUniformSMax 35 Reduce 563
-             565:     75(ptr) AccessChain 24(data) 25 558 72
-             566:   15(ivec4) Load 565
-             567:   15(ivec4) VectorShuffle 566 564 4 5 2 3
-                              Store 565 567
-             568:     27(ptr) AccessChain 10(dti) 26
-             569:      6(int) Load 568
-             570:     27(ptr) AccessChain 10(dti) 26
-             571:      6(int) Load 570
-             572:     75(ptr) AccessChain 24(data) 25 571 72
-             573:   15(ivec4) Load 572
-             574:  105(ivec3) VectorShuffle 573 573 0 1 2
-             575:  105(ivec3) GroupNonUniformSMax 35 Reduce 574
-             576:     75(ptr) AccessChain 24(data) 25 569 72
-             577:   15(ivec4) Load 576
-             578:   15(ivec4) VectorShuffle 577 575 4 5 6 3
-                              Store 576 578
-             579:     27(ptr) AccessChain 10(dti) 26
-             580:      6(int) Load 579
+             543:    175(ptr) AccessChain 24(data) 25 542 172
+             544: 19(f64vec4) Load 543
+             545:206(f64vec3) VectorShuffle 544 544 0 1 2
+             546:206(f64vec3) GroupNonUniformFMin 35 Reduce 545
+             547:    184(ptr) AccessChain 24(data) 25 540 172 26
+             548:18(float64_t) CompositeExtract 546 0
+                              Store 547 548
+             549:    184(ptr) AccessChain 24(data) 25 540 172 58
+             550:18(float64_t) CompositeExtract 546 1
+                              Store 549 550
+             551:    184(ptr) AccessChain 24(data) 25 540 172 73
+             552:18(float64_t) CompositeExtract 546 2
+                              Store 551 552
+             553:     27(ptr) AccessChain 10(dti) 26
+             554:      6(int) Load 553
+             555:     27(ptr) AccessChain 10(dti) 26
+             556:      6(int) Load 555
+             557:     32(ptr) AccessChain 24(data) 25 556 25
+             558:   13(ivec4) Load 557
+             559:   13(ivec4) GroupNonUniformUMax 35 Reduce 558
+             560:     32(ptr) AccessChain 24(data) 25 554 25
+                              Store 560 559
+             561:     27(ptr) AccessChain 10(dti) 26
+             562:      6(int) Load 561
+             563:     27(ptr) AccessChain 10(dti) 26
+             564:      6(int) Load 563
+             565:     42(ptr) AccessChain 24(data) 25 564 25 26
+             566:      6(int) Load 565
+             567:      6(int) GroupNonUniformUMax 35 Reduce 566
+             568:     42(ptr) AccessChain 24(data) 25 562 25 26
+                              Store 568 567
+             569:     27(ptr) AccessChain 10(dti) 26
+             570:      6(int) Load 569
+             571:     27(ptr) AccessChain 10(dti) 26
+             572:      6(int) Load 571
+             573:     32(ptr) AccessChain 24(data) 25 572 25
+             574:   13(ivec4) Load 573
+             575:   51(ivec2) VectorShuffle 574 574 0 1
+             576:   51(ivec2) GroupNonUniformUMax 35 Reduce 575
+             577:     42(ptr) AccessChain 24(data) 25 570 25 26
+             578:      6(int) CompositeExtract 576 0
+                              Store 577 578
+             579:     42(ptr) AccessChain 24(data) 25 570 25 58
+             580:      6(int) CompositeExtract 576 1
+                              Store 579 580
              581:     27(ptr) AccessChain 10(dti) 26
              582:      6(int) Load 581
-             583:    118(ptr) AccessChain 24(data) 25 582 115
-             584:   17(fvec4) Load 583
-             585:   17(fvec4) GroupNonUniformFMax 35 Reduce 584
-             586:    118(ptr) AccessChain 24(data) 25 580 115
-                              Store 586 585
-             587:     27(ptr) AccessChain 10(dti) 26
-             588:      6(int) Load 587
-             589:     27(ptr) AccessChain 10(dti) 26
-             590:      6(int) Load 589
-             591:    127(ptr) AccessChain 24(data) 25 590 115 26
-             592:   16(float) Load 591
-             593:   16(float) GroupNonUniformFMax 35 Reduce 592
-             594:    127(ptr) AccessChain 24(data) 25 588 115 26
-                              Store 594 593
+             583:     27(ptr) AccessChain 10(dti) 26
+             584:      6(int) Load 583
+             585:     32(ptr) AccessChain 24(data) 25 584 25
+             586:   13(ivec4) Load 585
+             587:    7(ivec3) VectorShuffle 586 586 0 1 2
+             588:    7(ivec3) GroupNonUniformUMax 35 Reduce 587
+             589:     42(ptr) AccessChain 24(data) 25 582 25 26
+             590:      6(int) CompositeExtract 588 0
+                              Store 589 590
+             591:     42(ptr) AccessChain 24(data) 25 582 25 58
+             592:      6(int) CompositeExtract 588 1
+                              Store 591 592
+             593:     42(ptr) AccessChain 24(data) 25 582 25 73
+             594:      6(int) CompositeExtract 588 2
+                              Store 593 594
              595:     27(ptr) AccessChain 10(dti) 26
              596:      6(int) Load 595
              597:     27(ptr) AccessChain 10(dti) 26
              598:      6(int) Load 597
-             599:    118(ptr) AccessChain 24(data) 25 598 115
-             600:   17(fvec4) Load 599
-             601:  136(fvec2) VectorShuffle 600 600 0 1
-             602:  136(fvec2) GroupNonUniformFMax 35 Reduce 601
-             603:    118(ptr) AccessChain 24(data) 25 596 115
-             604:   17(fvec4) Load 603
-             605:   17(fvec4) VectorShuffle 604 602 4 5 2 3
-                              Store 603 605
-             606:     27(ptr) AccessChain 10(dti) 26
-             607:      6(int) Load 606
-             608:     27(ptr) AccessChain 10(dti) 26
-             609:      6(int) Load 608
-             610:    118(ptr) AccessChain 24(data) 25 609 115
-             611:   17(fvec4) Load 610
-             612:  148(fvec3) VectorShuffle 611 611 0 1 2
-             613:  148(fvec3) GroupNonUniformFMax 35 Reduce 612
-             614:    118(ptr) AccessChain 24(data) 25 607 115
-             615:   17(fvec4) Load 614
-             616:   17(fvec4) VectorShuffle 615 613 4 5 6 3
-                              Store 614 616
-             617:     27(ptr) AccessChain 10(dti) 26
-             618:      6(int) Load 617
-             619:     27(ptr) AccessChain 10(dti) 26
-             620:      6(int) Load 619
-             621:    161(ptr) AccessChain 24(data) 25 620 158
-             622: 19(f64vec4) Load 621
-             623: 19(f64vec4) GroupNonUniformFMax 35 Reduce 622
-             624:    161(ptr) AccessChain 24(data) 25 618 158
-                              Store 624 623
+             599:     81(ptr) AccessChain 24(data) 25 598 78
+             600:   15(ivec4) Load 599
+             601:   15(ivec4) GroupNonUniformSMax 35 Reduce 600
+             602:     81(ptr) AccessChain 24(data) 25 596 78
+                              Store 602 601
+             603:     27(ptr) AccessChain 10(dti) 26
+             604:      6(int) Load 603
+             605:     27(ptr) AccessChain 10(dti) 26
+             606:      6(int) Load 605
+             607:     90(ptr) AccessChain 24(data) 25 606 78 26
+             608:     14(int) Load 607
+             609:     14(int) GroupNonUniformSMax 35 Reduce 608
+             610:     90(ptr) AccessChain 24(data) 25 604 78 26
+                              Store 610 609
+             611:     27(ptr) AccessChain 10(dti) 26
+             612:      6(int) Load 611
+             613:     27(ptr) AccessChain 10(dti) 26
+             614:      6(int) Load 613
+             615:     81(ptr) AccessChain 24(data) 25 614 78
+             616:   15(ivec4) Load 615
+             617:   99(ivec2) VectorShuffle 616 616 0 1
+             618:   99(ivec2) GroupNonUniformSMax 35 Reduce 617
+             619:     90(ptr) AccessChain 24(data) 25 612 78 26
+             620:     14(int) CompositeExtract 618 0
+                              Store 619 620
+             621:     90(ptr) AccessChain 24(data) 25 612 78 58
+             622:     14(int) CompositeExtract 618 1
+                              Store 621 622
+             623:     27(ptr) AccessChain 10(dti) 26
+             624:      6(int) Load 623
              625:     27(ptr) AccessChain 10(dti) 26
              626:      6(int) Load 625
-             627:     27(ptr) AccessChain 10(dti) 26
-             628:      6(int) Load 627
-             629:    170(ptr) AccessChain 24(data) 25 628 158 26
-             630:18(float64_t) Load 629
-             631:18(float64_t) GroupNonUniformFMax 35 Reduce 630
-             632:    170(ptr) AccessChain 24(data) 25 626 158 26
-                              Store 632 631
-             633:     27(ptr) AccessChain 10(dti) 26
-             634:      6(int) Load 633
-             635:     27(ptr) AccessChain 10(dti) 26
-             636:      6(int) Load 635
-             637:    161(ptr) AccessChain 24(data) 25 636 158
-             638: 19(f64vec4) Load 637
-             639:179(f64vec2) VectorShuffle 638 638 0 1
-             640:179(f64vec2) GroupNonUniformFMax 35 Reduce 639
-             641:    161(ptr) AccessChain 24(data) 25 634 158
-             642: 19(f64vec4) Load 641
-             643: 19(f64vec4) VectorShuffle 642 640 4 5 2 3
-                              Store 641 643
-             644:     27(ptr) AccessChain 10(dti) 26
-             645:      6(int) Load 644
-             646:     27(ptr) AccessChain 10(dti) 26
-             647:      6(int) Load 646
-             648:    161(ptr) AccessChain 24(data) 25 647 158
-             649: 19(f64vec4) Load 648
-             650:191(f64vec3) VectorShuffle 649 649 0 1 2
-             651:191(f64vec3) GroupNonUniformFMax 35 Reduce 650
-             652:    161(ptr) AccessChain 24(data) 25 645 158
-             653: 19(f64vec4) Load 652
-             654: 19(f64vec4) VectorShuffle 653 651 4 5 6 3
-                              Store 652 654
+             627:     81(ptr) AccessChain 24(data) 25 626 78
+             628:   15(ivec4) Load 627
+             629:  112(ivec3) VectorShuffle 628 628 0 1 2
+             630:  112(ivec3) GroupNonUniformSMax 35 Reduce 629
+             631:     90(ptr) AccessChain 24(data) 25 624 78 26
+             632:     14(int) CompositeExtract 630 0
+                              Store 631 632
+             633:     90(ptr) AccessChain 24(data) 25 624 78 58
+             634:     14(int) CompositeExtract 630 1
+                              Store 633 634
+             635:     90(ptr) AccessChain 24(data) 25 624 78 73
+             636:     14(int) CompositeExtract 630 2
+                              Store 635 636
+             637:     27(ptr) AccessChain 10(dti) 26
+             638:      6(int) Load 637
+             639:     27(ptr) AccessChain 10(dti) 26
+             640:      6(int) Load 639
+             641:    128(ptr) AccessChain 24(data) 25 640 125
+             642:   17(fvec4) Load 641
+             643:   17(fvec4) GroupNonUniformFMax 35 Reduce 642
+             644:    128(ptr) AccessChain 24(data) 25 638 125
+                              Store 644 643
+             645:     27(ptr) AccessChain 10(dti) 26
+             646:      6(int) Load 645
+             647:     27(ptr) AccessChain 10(dti) 26
+             648:      6(int) Load 647
+             649:    137(ptr) AccessChain 24(data) 25 648 125 26
+             650:   16(float) Load 649
+             651:   16(float) GroupNonUniformFMax 35 Reduce 650
+             652:    137(ptr) AccessChain 24(data) 25 646 125 26
+                              Store 652 651
+             653:     27(ptr) AccessChain 10(dti) 26
+             654:      6(int) Load 653
              655:     27(ptr) AccessChain 10(dti) 26
              656:      6(int) Load 655
-             657:     27(ptr) AccessChain 10(dti) 26
-             658:      6(int) Load 657
-             659:     32(ptr) AccessChain 24(data) 25 658 25
-             660:   13(ivec4) Load 659
-             661:   13(ivec4) GroupNonUniformBitwiseAnd 35 Reduce 660
-             662:     32(ptr) AccessChain 24(data) 25 656 25
-                              Store 662 661
-             663:     27(ptr) AccessChain 10(dti) 26
-             664:      6(int) Load 663
+             657:    128(ptr) AccessChain 24(data) 25 656 125
+             658:   17(fvec4) Load 657
+             659:  146(fvec2) VectorShuffle 658 658 0 1
+             660:  146(fvec2) GroupNonUniformFMax 35 Reduce 659
+             661:    137(ptr) AccessChain 24(data) 25 654 125 26
+             662:   16(float) CompositeExtract 660 0
+                              Store 661 662
+             663:    137(ptr) AccessChain 24(data) 25 654 125 58
+             664:   16(float) CompositeExtract 660 1
+                              Store 663 664
              665:     27(ptr) AccessChain 10(dti) 26
              666:      6(int) Load 665
-             667:     42(ptr) AccessChain 24(data) 25 666 25 26
+             667:     27(ptr) AccessChain 10(dti) 26
              668:      6(int) Load 667
-             669:      6(int) GroupNonUniformBitwiseAnd 35 Reduce 668
-             670:     42(ptr) AccessChain 24(data) 25 664 25 26
-                              Store 670 669
-             671:     27(ptr) AccessChain 10(dti) 26
-             672:      6(int) Load 671
-             673:     27(ptr) AccessChain 10(dti) 26
-             674:      6(int) Load 673
-             675:     32(ptr) AccessChain 24(data) 25 674 25
-             676:   13(ivec4) Load 675
-             677:   51(ivec2) VectorShuffle 676 676 0 1
-             678:   51(ivec2) GroupNonUniformBitwiseAnd 35 Reduce 677
-             679:     32(ptr) AccessChain 24(data) 25 672 25
-             680:   13(ivec4) Load 679
-             681:   13(ivec4) VectorShuffle 680 678 4 5 2 3
-                              Store 679 681
-             682:     27(ptr) AccessChain 10(dti) 26
-             683:      6(int) Load 682
-             684:     27(ptr) AccessChain 10(dti) 26
-             685:      6(int) Load 684
-             686:     32(ptr) AccessChain 24(data) 25 685 25
-             687:   13(ivec4) Load 686
-             688:    7(ivec3) VectorShuffle 687 687 0 1 2
-             689:    7(ivec3) GroupNonUniformBitwiseAnd 35 Reduce 688
-             690:     32(ptr) AccessChain 24(data) 25 683 25
-             691:   13(ivec4) Load 690
-             692:   13(ivec4) VectorShuffle 691 689 4 5 6 3
-                              Store 690 692
-             693:     27(ptr) AccessChain 10(dti) 26
-             694:      6(int) Load 693
+             669:    128(ptr) AccessChain 24(data) 25 668 125
+             670:   17(fvec4) Load 669
+             671:  159(fvec3) VectorShuffle 670 670 0 1 2
+             672:  159(fvec3) GroupNonUniformFMax 35 Reduce 671
+             673:    137(ptr) AccessChain 24(data) 25 666 125 26
+             674:   16(float) CompositeExtract 672 0
+                              Store 673 674
+             675:    137(ptr) AccessChain 24(data) 25 666 125 58
+             676:   16(float) CompositeExtract 672 1
+                              Store 675 676
+             677:    137(ptr) AccessChain 24(data) 25 666 125 73
+             678:   16(float) CompositeExtract 672 2
+                              Store 677 678
+             679:     27(ptr) AccessChain 10(dti) 26
+             680:      6(int) Load 679
+             681:     27(ptr) AccessChain 10(dti) 26
+             682:      6(int) Load 681
+             683:    175(ptr) AccessChain 24(data) 25 682 172
+             684: 19(f64vec4) Load 683
+             685: 19(f64vec4) GroupNonUniformFMax 35 Reduce 684
+             686:    175(ptr) AccessChain 24(data) 25 680 172
+                              Store 686 685
+             687:     27(ptr) AccessChain 10(dti) 26
+             688:      6(int) Load 687
+             689:     27(ptr) AccessChain 10(dti) 26
+             690:      6(int) Load 689
+             691:    184(ptr) AccessChain 24(data) 25 690 172 26
+             692:18(float64_t) Load 691
+             693:18(float64_t) GroupNonUniformFMax 35 Reduce 692
+             694:    184(ptr) AccessChain 24(data) 25 688 172 26
+                              Store 694 693
              695:     27(ptr) AccessChain 10(dti) 26
              696:      6(int) Load 695
-             697:     75(ptr) AccessChain 24(data) 25 696 72
-             698:   15(ivec4) Load 697
-             699:   15(ivec4) GroupNonUniformBitwiseAnd 35 Reduce 698
-             700:     75(ptr) AccessChain 24(data) 25 694 72
-                              Store 700 699
-             701:     27(ptr) AccessChain 10(dti) 26
-             702:      6(int) Load 701
-             703:     27(ptr) AccessChain 10(dti) 26
-             704:      6(int) Load 703
-             705:     84(ptr) AccessChain 24(data) 25 704 72 26
-             706:     14(int) Load 705
-             707:     14(int) GroupNonUniformBitwiseAnd 35 Reduce 706
-             708:     84(ptr) AccessChain 24(data) 25 702 72 26
-                              Store 708 707
+             697:     27(ptr) AccessChain 10(dti) 26
+             698:      6(int) Load 697
+             699:    175(ptr) AccessChain 24(data) 25 698 172
+             700: 19(f64vec4) Load 699
+             701:193(f64vec2) VectorShuffle 700 700 0 1
+             702:193(f64vec2) GroupNonUniformFMax 35 Reduce 701
+             703:    184(ptr) AccessChain 24(data) 25 696 172 26
+             704:18(float64_t) CompositeExtract 702 0
+                              Store 703 704
+             705:    184(ptr) AccessChain 24(data) 25 696 172 58
+             706:18(float64_t) CompositeExtract 702 1
+                              Store 705 706
+             707:     27(ptr) AccessChain 10(dti) 26
+             708:      6(int) Load 707
              709:     27(ptr) AccessChain 10(dti) 26
              710:      6(int) Load 709
-             711:     27(ptr) AccessChain 10(dti) 26
-             712:      6(int) Load 711
-             713:     75(ptr) AccessChain 24(data) 25 712 72
-             714:   15(ivec4) Load 713
-             715:   93(ivec2) VectorShuffle 714 714 0 1
-             716:   93(ivec2) GroupNonUniformBitwiseAnd 35 Reduce 715
-             717:     75(ptr) AccessChain 24(data) 25 710 72
-             718:   15(ivec4) Load 717
-             719:   15(ivec4) VectorShuffle 718 716 4 5 2 3
-                              Store 717 719
-             720:     27(ptr) AccessChain 10(dti) 26
-             721:      6(int) Load 720
-             722:     27(ptr) AccessChain 10(dti) 26
-             723:      6(int) Load 722
-             724:     75(ptr) AccessChain 24(data) 25 723 72
-             725:   15(ivec4) Load 724
-             726:  105(ivec3) VectorShuffle 725 725 0 1 2
-             727:  105(ivec3) GroupNonUniformBitwiseAnd 35 Reduce 726
-             728:     75(ptr) AccessChain 24(data) 25 721 72
-             729:   15(ivec4) Load 728
-             730:   15(ivec4) VectorShuffle 729 727 4 5 6 3
-                              Store 728 730
+             711:    175(ptr) AccessChain 24(data) 25 710 172
+             712: 19(f64vec4) Load 711
+             713:206(f64vec3) VectorShuffle 712 712 0 1 2
+             714:206(f64vec3) GroupNonUniformFMax 35 Reduce 713
+             715:    184(ptr) AccessChain 24(data) 25 708 172 26
+             716:18(float64_t) CompositeExtract 714 0
+                              Store 715 716
+             717:    184(ptr) AccessChain 24(data) 25 708 172 58
+             718:18(float64_t) CompositeExtract 714 1
+                              Store 717 718
+             719:    184(ptr) AccessChain 24(data) 25 708 172 73
+             720:18(float64_t) CompositeExtract 714 2
+                              Store 719 720
+             721:     27(ptr) AccessChain 10(dti) 26
+             722:      6(int) Load 721
+             723:     27(ptr) AccessChain 10(dti) 26
+             724:      6(int) Load 723
+             725:     32(ptr) AccessChain 24(data) 25 724 25
+             726:   13(ivec4) Load 725
+             727:   13(ivec4) GroupNonUniformBitwiseAnd 35 Reduce 726
+             728:     32(ptr) AccessChain 24(data) 25 722 25
+                              Store 728 727
+             729:     27(ptr) AccessChain 10(dti) 26
+             730:      6(int) Load 729
              731:     27(ptr) AccessChain 10(dti) 26
              732:      6(int) Load 731
-             733:     27(ptr) AccessChain 10(dti) 26
+             733:     42(ptr) AccessChain 24(data) 25 732 25 26
              734:      6(int) Load 733
-             735:     32(ptr) AccessChain 24(data) 25 734 25
-             736:   13(ivec4) Load 735
-             737:   13(ivec4) GroupNonUniformBitwiseOr 35 Reduce 736
-             738:     32(ptr) AccessChain 24(data) 25 732 25
-                              Store 738 737
+             735:      6(int) GroupNonUniformBitwiseAnd 35 Reduce 734
+             736:     42(ptr) AccessChain 24(data) 25 730 25 26
+                              Store 736 735
+             737:     27(ptr) AccessChain 10(dti) 26
+             738:      6(int) Load 737
              739:     27(ptr) AccessChain 10(dti) 26
              740:      6(int) Load 739
-             741:     27(ptr) AccessChain 10(dti) 26
-             742:      6(int) Load 741
-             743:     42(ptr) AccessChain 24(data) 25 742 25 26
-             744:      6(int) Load 743
-             745:      6(int) GroupNonUniformBitwiseOr 35 Reduce 744
-             746:     42(ptr) AccessChain 24(data) 25 740 25 26
-                              Store 746 745
-             747:     27(ptr) AccessChain 10(dti) 26
-             748:      6(int) Load 747
+             741:     32(ptr) AccessChain 24(data) 25 740 25
+             742:   13(ivec4) Load 741
+             743:   51(ivec2) VectorShuffle 742 742 0 1
+             744:   51(ivec2) GroupNonUniformBitwiseAnd 35 Reduce 743
+             745:     42(ptr) AccessChain 24(data) 25 738 25 26
+             746:      6(int) CompositeExtract 744 0
+                              Store 745 746
+             747:     42(ptr) AccessChain 24(data) 25 738 25 58
+             748:      6(int) CompositeExtract 744 1
+                              Store 747 748
              749:     27(ptr) AccessChain 10(dti) 26
              750:      6(int) Load 749
-             751:     32(ptr) AccessChain 24(data) 25 750 25
-             752:   13(ivec4) Load 751
-             753:   51(ivec2) VectorShuffle 752 752 0 1
-             754:   51(ivec2) GroupNonUniformBitwiseOr 35 Reduce 753
-             755:     32(ptr) AccessChain 24(data) 25 748 25
-             756:   13(ivec4) Load 755
-             757:   13(ivec4) VectorShuffle 756 754 4 5 2 3
-                              Store 755 757
-             758:     27(ptr) AccessChain 10(dti) 26
-             759:      6(int) Load 758
-             760:     27(ptr) AccessChain 10(dti) 26
-             761:      6(int) Load 760
-             762:     32(ptr) AccessChain 24(data) 25 761 25
-             763:   13(ivec4) Load 762
-             764:    7(ivec3) VectorShuffle 763 763 0 1 2
-             765:    7(ivec3) GroupNonUniformBitwiseOr 35 Reduce 764
-             766:     32(ptr) AccessChain 24(data) 25 759 25
-             767:   13(ivec4) Load 766
-             768:   13(ivec4) VectorShuffle 767 765 4 5 6 3
-                              Store 766 768
-             769:     27(ptr) AccessChain 10(dti) 26
-             770:      6(int) Load 769
+             751:     27(ptr) AccessChain 10(dti) 26
+             752:      6(int) Load 751
+             753:     32(ptr) AccessChain 24(data) 25 752 25
+             754:   13(ivec4) Load 753
+             755:    7(ivec3) VectorShuffle 754 754 0 1 2
+             756:    7(ivec3) GroupNonUniformBitwiseAnd 35 Reduce 755
+             757:     42(ptr) AccessChain 24(data) 25 750 25 26
+             758:      6(int) CompositeExtract 756 0
+                              Store 757 758
+             759:     42(ptr) AccessChain 24(data) 25 750 25 58
+             760:      6(int) CompositeExtract 756 1
+                              Store 759 760
+             761:     42(ptr) AccessChain 24(data) 25 750 25 73
+             762:      6(int) CompositeExtract 756 2
+                              Store 761 762
+             763:     27(ptr) AccessChain 10(dti) 26
+             764:      6(int) Load 763
+             765:     27(ptr) AccessChain 10(dti) 26
+             766:      6(int) Load 765
+             767:     81(ptr) AccessChain 24(data) 25 766 78
+             768:   15(ivec4) Load 767
+             769:   15(ivec4) GroupNonUniformBitwiseAnd 35 Reduce 768
+             770:     81(ptr) AccessChain 24(data) 25 764 78
+                              Store 770 769
              771:     27(ptr) AccessChain 10(dti) 26
              772:      6(int) Load 771
-             773:     75(ptr) AccessChain 24(data) 25 772 72
-             774:   15(ivec4) Load 773
-             775:   15(ivec4) GroupNonUniformBitwiseOr 35 Reduce 774
-             776:     75(ptr) AccessChain 24(data) 25 770 72
-                              Store 776 775
-             777:     27(ptr) AccessChain 10(dti) 26
-             778:      6(int) Load 777
+             773:     27(ptr) AccessChain 10(dti) 26
+             774:      6(int) Load 773
+             775:     90(ptr) AccessChain 24(data) 25 774 78 26
+             776:     14(int) Load 775
+             777:     14(int) GroupNonUniformBitwiseAnd 35 Reduce 776
+             778:     90(ptr) AccessChain 24(data) 25 772 78 26
+                              Store 778 777
              779:     27(ptr) AccessChain 10(dti) 26
              780:      6(int) Load 779
-             781:     84(ptr) AccessChain 24(data) 25 780 72 26
-             782:     14(int) Load 781
-             783:     14(int) GroupNonUniformBitwiseOr 35 Reduce 782
-             784:     84(ptr) AccessChain 24(data) 25 778 72 26
-                              Store 784 783
-             785:     27(ptr) AccessChain 10(dti) 26
-             786:      6(int) Load 785
-             787:     27(ptr) AccessChain 10(dti) 26
-             788:      6(int) Load 787
-             789:     75(ptr) AccessChain 24(data) 25 788 72
-             790:   15(ivec4) Load 789
-             791:   93(ivec2) VectorShuffle 790 790 0 1
-             792:   93(ivec2) GroupNonUniformBitwiseOr 35 Reduce 791
-             793:     75(ptr) AccessChain 24(data) 25 786 72
-             794:   15(ivec4) Load 793
-             795:   15(ivec4) VectorShuffle 794 792 4 5 2 3
-                              Store 793 795
-             796:     27(ptr) AccessChain 10(dti) 26
-             797:      6(int) Load 796
-             798:     27(ptr) AccessChain 10(dti) 26
-             799:      6(int) Load 798
-             800:     75(ptr) AccessChain 24(data) 25 799 72
-             801:   15(ivec4) Load 800
-             802:  105(ivec3) VectorShuffle 801 801 0 1 2
-             803:  105(ivec3) GroupNonUniformBitwiseOr 35 Reduce 802
-             804:     75(ptr) AccessChain 24(data) 25 797 72
-             805:   15(ivec4) Load 804
-             806:   15(ivec4) VectorShuffle 805 803 4 5 6 3
-                              Store 804 806
+             781:     27(ptr) AccessChain 10(dti) 26
+             782:      6(int) Load 781
+             783:     81(ptr) AccessChain 24(data) 25 782 78
+             784:   15(ivec4) Load 783
+             785:   99(ivec2) VectorShuffle 784 784 0 1
+             786:   99(ivec2) GroupNonUniformBitwiseAnd 35 Reduce 785
+             787:     90(ptr) AccessChain 24(data) 25 780 78 26
+             788:     14(int) CompositeExtract 786 0
+                              Store 787 788
+             789:     90(ptr) AccessChain 24(data) 25 780 78 58
+             790:     14(int) CompositeExtract 786 1
+                              Store 789 790
+             791:     27(ptr) AccessChain 10(dti) 26
+             792:      6(int) Load 791
+             793:     27(ptr) AccessChain 10(dti) 26
+             794:      6(int) Load 793
+             795:     81(ptr) AccessChain 24(data) 25 794 78
+             796:   15(ivec4) Load 795
+             797:  112(ivec3) VectorShuffle 796 796 0 1 2
+             798:  112(ivec3) GroupNonUniformBitwiseAnd 35 Reduce 797
+             799:     90(ptr) AccessChain 24(data) 25 792 78 26
+             800:     14(int) CompositeExtract 798 0
+                              Store 799 800
+             801:     90(ptr) AccessChain 24(data) 25 792 78 58
+             802:     14(int) CompositeExtract 798 1
+                              Store 801 802
+             803:     90(ptr) AccessChain 24(data) 25 792 78 73
+             804:     14(int) CompositeExtract 798 2
+                              Store 803 804
+             805:     27(ptr) AccessChain 10(dti) 26
+             806:      6(int) Load 805
              807:     27(ptr) AccessChain 10(dti) 26
              808:      6(int) Load 807
-             809:     27(ptr) AccessChain 10(dti) 26
-             810:      6(int) Load 809
-             811:     32(ptr) AccessChain 24(data) 25 810 25
-             812:   13(ivec4) Load 811
-             813:   13(ivec4) GroupNonUniformBitwiseXor 35 Reduce 812
-             814:     32(ptr) AccessChain 24(data) 25 808 25
-                              Store 814 813
+             809:     32(ptr) AccessChain 24(data) 25 808 25
+             810:   13(ivec4) Load 809
+             811:   13(ivec4) GroupNonUniformBitwiseOr 35 Reduce 810
+             812:     32(ptr) AccessChain 24(data) 25 806 25
+                              Store 812 811
+             813:     27(ptr) AccessChain 10(dti) 26
+             814:      6(int) Load 813
              815:     27(ptr) AccessChain 10(dti) 26
              816:      6(int) Load 815
-             817:     27(ptr) AccessChain 10(dti) 26
+             817:     42(ptr) AccessChain 24(data) 25 816 25 26
              818:      6(int) Load 817
-             819:     42(ptr) AccessChain 24(data) 25 818 25 26
-             820:      6(int) Load 819
-             821:      6(int) GroupNonUniformBitwiseXor 35 Reduce 820
-             822:     42(ptr) AccessChain 24(data) 25 816 25 26
-                              Store 822 821
+             819:      6(int) GroupNonUniformBitwiseOr 35 Reduce 818
+             820:     42(ptr) AccessChain 24(data) 25 814 25 26
+                              Store 820 819
+             821:     27(ptr) AccessChain 10(dti) 26
+             822:      6(int) Load 821
              823:     27(ptr) AccessChain 10(dti) 26
              824:      6(int) Load 823
-             825:     27(ptr) AccessChain 10(dti) 26
-             826:      6(int) Load 825
-             827:     32(ptr) AccessChain 24(data) 25 826 25
-             828:   13(ivec4) Load 827
-             829:   51(ivec2) VectorShuffle 828 828 0 1
-             830:   51(ivec2) GroupNonUniformBitwiseXor 35 Reduce 829
-             831:     32(ptr) AccessChain 24(data) 25 824 25
-             832:   13(ivec4) Load 831
-             833:   13(ivec4) VectorShuffle 832 830 4 5 2 3
-                              Store 831 833
-             834:     27(ptr) AccessChain 10(dti) 26
-             835:      6(int) Load 834
-             836:     27(ptr) AccessChain 10(dti) 26
-             837:      6(int) Load 836
-             838:     32(ptr) AccessChain 24(data) 25 837 25
-             839:   13(ivec4) Load 838
-             840:    7(ivec3) VectorShuffle 839 839 0 1 2
-             841:    7(ivec3) GroupNonUniformBitwiseXor 35 Reduce 840
-             842:     32(ptr) AccessChain 24(data) 25 835 25
-             843:   13(ivec4) Load 842
-             844:   13(ivec4) VectorShuffle 843 841 4 5 6 3
-                              Store 842 844
-             845:     27(ptr) AccessChain 10(dti) 26
-             846:      6(int) Load 845
+             825:     32(ptr) AccessChain 24(data) 25 824 25
+             826:   13(ivec4) Load 825
+             827:   51(ivec2) VectorShuffle 826 826 0 1
+             828:   51(ivec2) GroupNonUniformBitwiseOr 35 Reduce 827
+             829:     42(ptr) AccessChain 24(data) 25 822 25 26
+             830:      6(int) CompositeExtract 828 0
+                              Store 829 830
+             831:     42(ptr) AccessChain 24(data) 25 822 25 58
+             832:      6(int) CompositeExtract 828 1
+                              Store 831 832
+             833:     27(ptr) AccessChain 10(dti) 26
+             834:      6(int) Load 833
+             835:     27(ptr) AccessChain 10(dti) 26
+             836:      6(int) Load 835
+             837:     32(ptr) AccessChain 24(data) 25 836 25
+             838:   13(ivec4) Load 837
+             839:    7(ivec3) VectorShuffle 838 838 0 1 2
+             840:    7(ivec3) GroupNonUniformBitwiseOr 35 Reduce 839
+             841:     42(ptr) AccessChain 24(data) 25 834 25 26
+             842:      6(int) CompositeExtract 840 0
+                              Store 841 842
+             843:     42(ptr) AccessChain 24(data) 25 834 25 58
+             844:      6(int) CompositeExtract 840 1
+                              Store 843 844
+             845:     42(ptr) AccessChain 24(data) 25 834 25 73
+             846:      6(int) CompositeExtract 840 2
+                              Store 845 846
              847:     27(ptr) AccessChain 10(dti) 26
              848:      6(int) Load 847
-             849:     75(ptr) AccessChain 24(data) 25 848 72
-             850:   15(ivec4) Load 849
-             851:   15(ivec4) GroupNonUniformBitwiseXor 35 Reduce 850
-             852:     75(ptr) AccessChain 24(data) 25 846 72
-                              Store 852 851
-             853:     27(ptr) AccessChain 10(dti) 26
-             854:      6(int) Load 853
+             849:     27(ptr) AccessChain 10(dti) 26
+             850:      6(int) Load 849
+             851:     81(ptr) AccessChain 24(data) 25 850 78
+             852:   15(ivec4) Load 851
+             853:   15(ivec4) GroupNonUniformBitwiseOr 35 Reduce 852
+             854:     81(ptr) AccessChain 24(data) 25 848 78
+                              Store 854 853
              855:     27(ptr) AccessChain 10(dti) 26
              856:      6(int) Load 855
-             857:     84(ptr) AccessChain 24(data) 25 856 72 26
-             858:     14(int) Load 857
-             859:     14(int) GroupNonUniformBitwiseXor 35 Reduce 858
-             860:     84(ptr) AccessChain 24(data) 25 854 72 26
-                              Store 860 859
-             861:     27(ptr) AccessChain 10(dti) 26
-             862:      6(int) Load 861
+             857:     27(ptr) AccessChain 10(dti) 26
+             858:      6(int) Load 857
+             859:     90(ptr) AccessChain 24(data) 25 858 78 26
+             860:     14(int) Load 859
+             861:     14(int) GroupNonUniformBitwiseOr 35 Reduce 860
+             862:     90(ptr) AccessChain 24(data) 25 856 78 26
+                              Store 862 861
              863:     27(ptr) AccessChain 10(dti) 26
              864:      6(int) Load 863
-             865:     75(ptr) AccessChain 24(data) 25 864 72
-             866:   15(ivec4) Load 865
-             867:   93(ivec2) VectorShuffle 866 866 0 1
-             868:   93(ivec2) GroupNonUniformBitwiseXor 35 Reduce 867
-             869:     75(ptr) AccessChain 24(data) 25 862 72
-             870:   15(ivec4) Load 869
-             871:   15(ivec4) VectorShuffle 870 868 4 5 2 3
-                              Store 869 871
-             872:     27(ptr) AccessChain 10(dti) 26
-             873:      6(int) Load 872
-             874:     27(ptr) AccessChain 10(dti) 26
-             875:      6(int) Load 874
-             876:     75(ptr) AccessChain 24(data) 25 875 72
-             877:   15(ivec4) Load 876
-             878:  105(ivec3) VectorShuffle 877 877 0 1 2
-             879:  105(ivec3) GroupNonUniformBitwiseXor 35 Reduce 878
-             880:     75(ptr) AccessChain 24(data) 25 873 72
-             881:   15(ivec4) Load 880
-             882:   15(ivec4) VectorShuffle 881 879 4 5 6 3
-                              Store 880 882
-             883:     27(ptr) AccessChain 10(dti) 26
-             884:      6(int) Load 883
-             885:     27(ptr) AccessChain 10(dti) 26
-             886:      6(int) Load 885
-             887:     42(ptr) AccessChain 24(data) 25 886 25 26
-             888:      6(int) Load 887
-             890:   889(bool) IEqual 888 26
-             891:   13(ivec4) GroupNonUniformBallot 35 890
-             892:      6(int) GroupNonUniformBallotBitCount 35 Reduce 891
-             893:     42(ptr) AccessChain 24(data) 25 884 25 26
-                              Store 893 892
+             865:     27(ptr) AccessChain 10(dti) 26
+             866:      6(int) Load 865
+             867:     81(ptr) AccessChain 24(data) 25 866 78
+             868:   15(ivec4) Load 867
+             869:   99(ivec2) VectorShuffle 868 868 0 1
+             870:   99(ivec2) GroupNonUniformBitwiseOr 35 Reduce 869
+             871:     90(ptr) AccessChain 24(data) 25 864 78 26
+             872:     14(int) CompositeExtract 870 0
+                              Store 871 872
+             873:     90(ptr) AccessChain 24(data) 25 864 78 58
+             874:     14(int) CompositeExtract 870 1
+                              Store 873 874
+             875:     27(ptr) AccessChain 10(dti) 26
+             876:      6(int) Load 875
+             877:     27(ptr) AccessChain 10(dti) 26
+             878:      6(int) Load 877
+             879:     81(ptr) AccessChain 24(data) 25 878 78
+             880:   15(ivec4) Load 879
+             881:  112(ivec3) VectorShuffle 880 880 0 1 2
+             882:  112(ivec3) GroupNonUniformBitwiseOr 35 Reduce 881
+             883:     90(ptr) AccessChain 24(data) 25 876 78 26
+             884:     14(int) CompositeExtract 882 0
+                              Store 883 884
+             885:     90(ptr) AccessChain 24(data) 25 876 78 58
+             886:     14(int) CompositeExtract 882 1
+                              Store 885 886
+             887:     90(ptr) AccessChain 24(data) 25 876 78 73
+             888:     14(int) CompositeExtract 882 2
+                              Store 887 888
+             889:     27(ptr) AccessChain 10(dti) 26
+             890:      6(int) Load 889
+             891:     27(ptr) AccessChain 10(dti) 26
+             892:      6(int) Load 891
+             893:     32(ptr) AccessChain 24(data) 25 892 25
+             894:   13(ivec4) Load 893
+             895:   13(ivec4) GroupNonUniformBitwiseXor 35 Reduce 894
+             896:     32(ptr) AccessChain 24(data) 25 890 25
+                              Store 896 895
+             897:     27(ptr) AccessChain 10(dti) 26
+             898:      6(int) Load 897
+             899:     27(ptr) AccessChain 10(dti) 26
+             900:      6(int) Load 899
+             901:     42(ptr) AccessChain 24(data) 25 900 25 26
+             902:      6(int) Load 901
+             903:      6(int) GroupNonUniformBitwiseXor 35 Reduce 902
+             904:     42(ptr) AccessChain 24(data) 25 898 25 26
+                              Store 904 903
+             905:     27(ptr) AccessChain 10(dti) 26
+             906:      6(int) Load 905
+             907:     27(ptr) AccessChain 10(dti) 26
+             908:      6(int) Load 907
+             909:     32(ptr) AccessChain 24(data) 25 908 25
+             910:   13(ivec4) Load 909
+             911:   51(ivec2) VectorShuffle 910 910 0 1
+             912:   51(ivec2) GroupNonUniformBitwiseXor 35 Reduce 911
+             913:     42(ptr) AccessChain 24(data) 25 906 25 26
+             914:      6(int) CompositeExtract 912 0
+                              Store 913 914
+             915:     42(ptr) AccessChain 24(data) 25 906 25 58
+             916:      6(int) CompositeExtract 912 1
+                              Store 915 916
+             917:     27(ptr) AccessChain 10(dti) 26
+             918:      6(int) Load 917
+             919:     27(ptr) AccessChain 10(dti) 26
+             920:      6(int) Load 919
+             921:     32(ptr) AccessChain 24(data) 25 920 25
+             922:   13(ivec4) Load 921
+             923:    7(ivec3) VectorShuffle 922 922 0 1 2
+             924:    7(ivec3) GroupNonUniformBitwiseXor 35 Reduce 923
+             925:     42(ptr) AccessChain 24(data) 25 918 25 26
+             926:      6(int) CompositeExtract 924 0
+                              Store 925 926
+             927:     42(ptr) AccessChain 24(data) 25 918 25 58
+             928:      6(int) CompositeExtract 924 1
+                              Store 927 928
+             929:     42(ptr) AccessChain 24(data) 25 918 25 73
+             930:      6(int) CompositeExtract 924 2
+                              Store 929 930
+             931:     27(ptr) AccessChain 10(dti) 26
+             932:      6(int) Load 931
+             933:     27(ptr) AccessChain 10(dti) 26
+             934:      6(int) Load 933
+             935:     81(ptr) AccessChain 24(data) 25 934 78
+             936:   15(ivec4) Load 935
+             937:   15(ivec4) GroupNonUniformBitwiseXor 35 Reduce 936
+             938:     81(ptr) AccessChain 24(data) 25 932 78
+                              Store 938 937
+             939:     27(ptr) AccessChain 10(dti) 26
+             940:      6(int) Load 939
+             941:     27(ptr) AccessChain 10(dti) 26
+             942:      6(int) Load 941
+             943:     90(ptr) AccessChain 24(data) 25 942 78 26
+             944:     14(int) Load 943
+             945:     14(int) GroupNonUniformBitwiseXor 35 Reduce 944
+             946:     90(ptr) AccessChain 24(data) 25 940 78 26
+                              Store 946 945
+             947:     27(ptr) AccessChain 10(dti) 26
+             948:      6(int) Load 947
+             949:     27(ptr) AccessChain 10(dti) 26
+             950:      6(int) Load 949
+             951:     81(ptr) AccessChain 24(data) 25 950 78
+             952:   15(ivec4) Load 951
+             953:   99(ivec2) VectorShuffle 952 952 0 1
+             954:   99(ivec2) GroupNonUniformBitwiseXor 35 Reduce 953
+             955:     90(ptr) AccessChain 24(data) 25 948 78 26
+             956:     14(int) CompositeExtract 954 0
+                              Store 955 956
+             957:     90(ptr) AccessChain 24(data) 25 948 78 58
+             958:     14(int) CompositeExtract 954 1
+                              Store 957 958
+             959:     27(ptr) AccessChain 10(dti) 26
+             960:      6(int) Load 959
+             961:     27(ptr) AccessChain 10(dti) 26
+             962:      6(int) Load 961
+             963:     81(ptr) AccessChain 24(data) 25 962 78
+             964:   15(ivec4) Load 963
+             965:  112(ivec3) VectorShuffle 964 964 0 1 2
+             966:  112(ivec3) GroupNonUniformBitwiseXor 35 Reduce 965
+             967:     90(ptr) AccessChain 24(data) 25 960 78 26
+             968:     14(int) CompositeExtract 966 0
+                              Store 967 968
+             969:     90(ptr) AccessChain 24(data) 25 960 78 58
+             970:     14(int) CompositeExtract 966 1
+                              Store 969 970
+             971:     90(ptr) AccessChain 24(data) 25 960 78 73
+             972:     14(int) CompositeExtract 966 2
+                              Store 971 972
+             973:     27(ptr) AccessChain 10(dti) 26
+             974:      6(int) Load 973
+             975:     27(ptr) AccessChain 10(dti) 26
+             976:      6(int) Load 975
+             977:     42(ptr) AccessChain 24(data) 25 976 25 26
+             978:      6(int) Load 977
+             980:   979(bool) IEqual 978 26
+             981:   13(ivec4) GroupNonUniformBallot 35 980
+             982:      6(int) GroupNonUniformBallotBitCount 35 Reduce 981
+             983:     42(ptr) AccessChain 24(data) 25 974 25 26
+                              Store 983 982
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/remap.uniformarray.everything.frag.out b/Test/baseResults/remap.uniformarray.everything.frag.out
index bebff93..ee1daa7 100644
--- a/Test/baseResults/remap.uniformarray.everything.frag.out
+++ b/Test/baseResults/remap.uniformarray.everything.frag.out
@@ -28,14 +28,17 @@
               24:             TypeVector 13(float) 3
              661:             TypePointer Input 24(fvec3)
             4957:    661(ptr) Variable Input
+            2570:     11(int) Constant 0
+             650:             TypePointer Function 13(float)
+            2573:     11(int) Constant 1
+            2576:     11(int) Constant 2
             2618:     11(int) Constant 16
-             669:             TypeArray 13(float) 2618
-            1306:             TypePointer Input 669
-            4339:   1306(ptr) Variable Input
+             709:             TypeArray 13(float) 2618
+            1346:             TypePointer Input 709
+            4339:   1346(ptr) Variable Input
             2607:     12(int) Constant 12
-             650:             TypePointer Input 13(float)
+             651:             TypePointer Input 13(float)
             2579:     11(int) Constant 3
-             651:             TypePointer Function 13(float)
              668:             TypePointer Output 29(fvec4)
             5139:    668(ptr) Variable Output
             5663:           8 Function None 1282
@@ -49,17 +52,23 @@
                               Store 4902 23084
            21218:   24(fvec3) Load 4957
            13695:   29(fvec4) Load 4902
-           23883:   24(fvec3) VectorShuffle 13695 13695 0 1 2
-           15591:   24(fvec3) FAdd 23883 21218
-           17086:   29(fvec4) Load 4902
-            7051:   29(fvec4) VectorShuffle 17086 15591 4 5 6 3
-                              Store 4902 7051
-           18282:    650(ptr) AccessChain 4339 2607
-            7372:   13(float) Load 18282
-           21371:    651(ptr) AccessChain 4902 2579
+           23959:   24(fvec3) VectorShuffle 13695 13695 0 1 2
+           14937:   24(fvec3) FAdd 23959 21218
+           15653:    650(ptr) AccessChain 4902 2570
+           21354:   13(float) CompositeExtract 14937 0
+                              Store 15653 21354
+           16378:    650(ptr) AccessChain 4902 2573
+           15746:   13(float) CompositeExtract 14937 1
+                              Store 16378 15746
+           16379:    650(ptr) AccessChain 4902 2576
+           15747:   13(float) CompositeExtract 14937 2
+                              Store 16379 15747
+           19895:    651(ptr) AccessChain 4339 2607
+            7372:   13(float) Load 19895
+           21371:    650(ptr) AccessChain 4902 2579
            11412:   13(float) Load 21371
            22584:   13(float) FAdd 11412 7372
-           17318:    651(ptr) AccessChain 4902 2579
+           17318:    650(ptr) AccessChain 4902 2579
                               Store 17318 22584
            17934:   29(fvec4) Load 4902
                               Store 5139 17934
diff --git a/Test/baseResults/remap.uniformarray.none.frag.out b/Test/baseResults/remap.uniformarray.none.frag.out
index 6bd58d2..00e1f57 100644
--- a/Test/baseResults/remap.uniformarray.none.frag.out
+++ b/Test/baseResults/remap.uniformarray.none.frag.out
@@ -1,27 +1,27 @@
 remap.uniformarray.none.frag
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 53
+// Id's are bound by 60
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 14 25 35 47
+                              EntryPoint Fragment 4  "main" 14 25 43 54
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 140
                               Name 4  "main"
                               Name 9  "texColor"
                               Name 14  "color"
                               Name 25  "inColor"
-                              Name 35  "alpha"
-                              Name 47  "gl_FragColor"
-                              Name 52  "texSampler2D"
+                              Name 43  "alpha"
+                              Name 54  "gl_FragColor"
+                              Name 59  "texSampler2D"
                               Decorate 14(color) Location 1
                               Decorate 25(inColor) Location 0
-                              Decorate 35(alpha) Location 7
-                              Decorate 47(gl_FragColor) Location 0
-                              Decorate 52(texSampler2D) DescriptorSet 0
-                              Decorate 52(texSampler2D) Binding 0
+                              Decorate 43(alpha) Location 7
+                              Decorate 54(gl_FragColor) Location 0
+                              Decorate 59(texSampler2D) DescriptorSet 0
+                              Decorate 59(texSampler2D) Binding 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -38,20 +38,23 @@
               23:             TypeVector 6(float) 3
               24:             TypePointer Input 23(fvec3)
      25(inColor):     24(ptr) Variable Input
-              32:     10(int) Constant 16
-              33:             TypeArray 6(float) 32
-              34:             TypePointer Input 33
-       35(alpha):     34(ptr) Variable Input
-              36:     15(int) Constant 12
-              37:             TypePointer Input 6(float)
-              40:     10(int) Constant 3
-              41:             TypePointer Function 6(float)
-              46:             TypePointer Output 7(fvec4)
-47(gl_FragColor):     46(ptr) Variable Output
-              49:             TypeImage 6(float) 2D sampled format:Unknown
-              50:             TypeSampledImage 49
-              51:             TypePointer UniformConstant 50
-52(texSampler2D):     51(ptr) Variable UniformConstant
+              30:     10(int) Constant 0
+              31:             TypePointer Function 6(float)
+              34:     10(int) Constant 1
+              37:     10(int) Constant 2
+              40:     10(int) Constant 16
+              41:             TypeArray 6(float) 40
+              42:             TypePointer Input 41
+       43(alpha):     42(ptr) Variable Input
+              44:     15(int) Constant 12
+              45:             TypePointer Input 6(float)
+              48:     10(int) Constant 3
+              53:             TypePointer Output 7(fvec4)
+54(gl_FragColor):     53(ptr) Variable Output
+              56:             TypeImage 6(float) 2D sampled format:Unknown
+              57:             TypeSampledImage 56
+              58:             TypePointer UniformConstant 57
+59(texSampler2D):     58(ptr) Variable UniformConstant
          4(main):           2 Function None 3
                5:             Label
      9(texColor):      8(ptr) Variable Function
@@ -65,17 +68,23 @@
               27:    7(fvec4) Load 9(texColor)
               28:   23(fvec3) VectorShuffle 27 27 0 1 2
               29:   23(fvec3) FAdd 28 26
-              30:    7(fvec4) Load 9(texColor)
-              31:    7(fvec4) VectorShuffle 30 29 4 5 6 3
-                              Store 9(texColor) 31
-              38:     37(ptr) AccessChain 35(alpha) 36
-              39:    6(float) Load 38
-              42:     41(ptr) AccessChain 9(texColor) 40
-              43:    6(float) Load 42
-              44:    6(float) FAdd 43 39
-              45:     41(ptr) AccessChain 9(texColor) 40
-                              Store 45 44
-              48:    7(fvec4) Load 9(texColor)
-                              Store 47(gl_FragColor) 48
+              32:     31(ptr) AccessChain 9(texColor) 30
+              33:    6(float) CompositeExtract 29 0
+                              Store 32 33
+              35:     31(ptr) AccessChain 9(texColor) 34
+              36:    6(float) CompositeExtract 29 1
+                              Store 35 36
+              38:     31(ptr) AccessChain 9(texColor) 37
+              39:    6(float) CompositeExtract 29 2
+                              Store 38 39
+              46:     45(ptr) AccessChain 43(alpha) 44
+              47:    6(float) Load 46
+              49:     31(ptr) AccessChain 9(texColor) 48
+              50:    6(float) Load 49
+              51:    6(float) FAdd 50 47
+              52:     31(ptr) AccessChain 9(texColor) 48
+                              Store 52 51
+              55:    7(fvec4) Load 9(texColor)
+                              Store 54(gl_FragColor) 55
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.1.4.load.bool.array.interface.block.frag.out b/Test/baseResults/spv.1.4.load.bool.array.interface.block.frag.out
new file mode 100644
index 0000000..9f698db
--- /dev/null
+++ b/Test/baseResults/spv.1.4.load.bool.array.interface.block.frag.out
@@ -0,0 +1,104 @@
+spv.1.4.load.bool.array.interface.block.frag
+Validation failed
+// Module Version 10400
+// Generated by (magic number): 8000a
+// Id's are bound by 64
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 13 20 61
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 450
+                              Name 4  "main"
+                              Name 11  "ssbo"
+                              MemberName 11(ssbo) 0  "bo"
+                              Name 13  ""
+                              Name 18  "ub"
+                              MemberName 18(ub) 0  "bi"
+                              Name 20  ""
+                              Name 61  "color"
+                              Decorate 8 ArrayStride 4
+                              Decorate 10 ArrayStride 12
+                              MemberDecorate 11(ssbo) 0 Offset 0
+                              Decorate 11(ssbo) Block
+                              Decorate 13 DescriptorSet 0
+                              Decorate 13 Binding 1
+                              Decorate 16 ArrayStride 16
+                              Decorate 17 ArrayStride 48
+                              MemberDecorate 18(ub) 0 Offset 0
+                              Decorate 18(ub) Block
+                              Decorate 20 DescriptorSet 0
+                              Decorate 20 Binding 0
+                              Decorate 61(color) Location 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:      6(int) Constant 3
+               8:             TypeArray 6(int) 7
+               9:      6(int) Constant 2
+              10:             TypeArray 8 9
+        11(ssbo):             TypeStruct 10
+              12:             TypePointer StorageBuffer 11(ssbo)
+              13:     12(ptr) Variable StorageBuffer
+              14:             TypeInt 32 1
+              15:     14(int) Constant 0
+              16:             TypeArray 6(int) 7
+              17:             TypeArray 16 9
+          18(ub):             TypeStruct 17
+              19:             TypePointer Uniform 18(ub)
+              20:     19(ptr) Variable Uniform
+              21:             TypePointer Uniform 17
+              24:             TypeBool
+              25:             TypeArray 24(bool) 7
+              26:             TypeArray 25 9
+              28:             TypePointer StorageBuffer 10
+              31:             TypePointer StorageBuffer 8
+              34:      6(int) Constant 1
+              35:      6(int) Constant 0
+              37:             TypePointer StorageBuffer 6(int)
+              40:     14(int) Constant 1
+              44:     14(int) Constant 2
+              58:             TypeFloat 32
+              59:             TypeVector 58(float) 4
+              60:             TypePointer Output 59(fvec4)
+       61(color):     60(ptr) Variable Output
+              62:   58(float) Constant 0
+              63:   59(fvec4) ConstantComposite 62 62 62 62
+         4(main):           2 Function None 3
+               5:             Label
+              22:     21(ptr) AccessChain 20 15
+              23:          17 Load 22
+              27:          26 CopyLogical 23
+              29:     28(ptr) AccessChain 13 15
+              30:          25 CompositeExtract 27 0
+              32:     31(ptr) AccessChain 29 15
+              33:    24(bool) CompositeExtract 30 0
+              36:      6(int) Select 33 34 35
+              38:     37(ptr) AccessChain 32 15
+                              Store 38 36
+              39:    24(bool) CompositeExtract 30 1
+              41:      6(int) Select 39 34 35
+              42:     37(ptr) AccessChain 32 40
+                              Store 42 41
+              43:    24(bool) CompositeExtract 30 2
+              45:      6(int) Select 43 34 35
+              46:     37(ptr) AccessChain 32 44
+                              Store 46 45
+              47:          25 CompositeExtract 27 1
+              48:     31(ptr) AccessChain 29 40
+              49:    24(bool) CompositeExtract 47 0
+              50:      6(int) Select 49 34 35
+              51:     37(ptr) AccessChain 48 15
+                              Store 51 50
+              52:    24(bool) CompositeExtract 47 1
+              53:      6(int) Select 52 34 35
+              54:     37(ptr) AccessChain 48 40
+                              Store 54 53
+              55:    24(bool) CompositeExtract 47 2
+              56:      6(int) Select 55 34 35
+              57:     37(ptr) AccessChain 48 44
+                              Store 57 56
+                              Store 61(color) 63
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.310.bitcast.frag.out b/Test/baseResults/spv.310.bitcast.frag.out
index b7f823d..f4322ab 100644
--- a/Test/baseResults/spv.310.bitcast.frag.out
+++ b/Test/baseResults/spv.310.bitcast.frag.out
@@ -1,71 +1,71 @@
 spv.310.bitcast.frag
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 153
+// Id's are bound by 179
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 14 26 37 48 89 98 107 116 122 130 139 148
+                              EntryPoint Fragment 4  "main" 14 26 40 56 103 112 123 136 142 150 161 174
                               ExecutionMode 4 OriginUpperLeft
                               Source ESSL 310
                               Name 4  "main"
                               Name 9  "idata"
                               Name 14  "f1"
                               Name 26  "f2"
-                              Name 37  "f3"
-                              Name 48  "f4"
-                              Name 55  "udata"
-                              Name 85  "fdata"
-                              Name 89  "i1"
-                              Name 98  "i2"
-                              Name 107  "i3"
-                              Name 116  "i4"
-                              Name 122  "u1"
-                              Name 130  "u2"
-                              Name 139  "u3"
-                              Name 148  "u4"
+                              Name 40  "f3"
+                              Name 56  "f4"
+                              Name 63  "udata"
+                              Name 99  "fdata"
+                              Name 103  "i1"
+                              Name 112  "i2"
+                              Name 123  "i3"
+                              Name 136  "i4"
+                              Name 142  "u1"
+                              Name 150  "u2"
+                              Name 161  "u3"
+                              Name 174  "u4"
                               Decorate 14(f1) RelaxedPrecision
                               Decorate 14(f1) Location 8
                               Decorate 15 RelaxedPrecision
                               Decorate 26(f2) RelaxedPrecision
                               Decorate 26(f2) Location 9
                               Decorate 27 RelaxedPrecision
-                              Decorate 37(f3) RelaxedPrecision
-                              Decorate 37(f3) Location 10
-                              Decorate 38 RelaxedPrecision
-                              Decorate 48(f4) Location 11
-                              Decorate 57 RelaxedPrecision
-                              Decorate 64 RelaxedPrecision
+                              Decorate 40(f3) RelaxedPrecision
+                              Decorate 40(f3) Location 10
+                              Decorate 41 RelaxedPrecision
+                              Decorate 56(f4) Location 11
+                              Decorate 65 RelaxedPrecision
                               Decorate 72 RelaxedPrecision
-                              Decorate 89(i1) RelaxedPrecision
-                              Decorate 89(i1) Flat
-                              Decorate 89(i1) Location 0
-                              Decorate 90 RelaxedPrecision
-                              Decorate 98(i2) RelaxedPrecision
-                              Decorate 98(i2) Flat
-                              Decorate 98(i2) Location 1
-                              Decorate 99 RelaxedPrecision
-                              Decorate 107(i3) RelaxedPrecision
-                              Decorate 107(i3) Flat
-                              Decorate 107(i3) Location 2
-                              Decorate 108 RelaxedPrecision
-                              Decorate 116(i4) Flat
-                              Decorate 116(i4) Location 3
-                              Decorate 122(u1) RelaxedPrecision
-                              Decorate 122(u1) Flat
-                              Decorate 122(u1) Location 4
-                              Decorate 123 RelaxedPrecision
-                              Decorate 130(u2) RelaxedPrecision
-                              Decorate 130(u2) Flat
-                              Decorate 130(u2) Location 5
-                              Decorate 131 RelaxedPrecision
-                              Decorate 139(u3) RelaxedPrecision
-                              Decorate 139(u3) Flat
-                              Decorate 139(u3) Location 6
-                              Decorate 140 RelaxedPrecision
-                              Decorate 148(u4) Flat
-                              Decorate 148(u4) Location 7
+                              Decorate 82 RelaxedPrecision
+                              Decorate 103(i1) RelaxedPrecision
+                              Decorate 103(i1) Flat
+                              Decorate 103(i1) Location 0
+                              Decorate 104 RelaxedPrecision
+                              Decorate 112(i2) RelaxedPrecision
+                              Decorate 112(i2) Flat
+                              Decorate 112(i2) Location 1
+                              Decorate 113 RelaxedPrecision
+                              Decorate 123(i3) RelaxedPrecision
+                              Decorate 123(i3) Flat
+                              Decorate 123(i3) Location 2
+                              Decorate 124 RelaxedPrecision
+                              Decorate 136(i4) Flat
+                              Decorate 136(i4) Location 3
+                              Decorate 142(u1) RelaxedPrecision
+                              Decorate 142(u1) Flat
+                              Decorate 142(u1) Location 4
+                              Decorate 143 RelaxedPrecision
+                              Decorate 150(u2) RelaxedPrecision
+                              Decorate 150(u2) Flat
+                              Decorate 150(u2) Location 5
+                              Decorate 151 RelaxedPrecision
+                              Decorate 161(u3) RelaxedPrecision
+                              Decorate 161(u3) Flat
+                              Decorate 161(u3) Location 6
+                              Decorate 162 RelaxedPrecision
+                              Decorate 174(u4) Flat
+                              Decorate 174(u4) Location 7
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
@@ -83,44 +83,46 @@
               25:             TypePointer Input 24(fvec2)
           26(f2):     25(ptr) Variable Input
               28:             TypeVector 6(int) 2
-              35:             TypeVector 12(float) 3
-              36:             TypePointer Input 35(fvec3)
-          37(f3):     36(ptr) Variable Input
-              39:             TypeVector 6(int) 3
-              46:             TypeVector 12(float) 4
-              47:             TypePointer Input 46(fvec4)
-          48(f4):     47(ptr) Variable Input
-              53:             TypeVector 17(int) 4
-              54:             TypePointer Function 53(ivec4)
-              56:   53(ivec4) ConstantComposite 18 18 18 18
-              59:             TypePointer Function 17(int)
-              65:             TypeVector 17(int) 2
-              73:             TypeVector 17(int) 3
-              84:             TypePointer Function 46(fvec4)
-              86:   12(float) Constant 0
-              87:   46(fvec4) ConstantComposite 86 86 86 86
-              88:             TypePointer Input 6(int)
-          89(i1):     88(ptr) Variable Input
-              92:             TypePointer Function 12(float)
-              97:             TypePointer Input 28(ivec2)
-          98(i2):     97(ptr) Variable Input
-             106:             TypePointer Input 39(ivec3)
-         107(i3):    106(ptr) Variable Input
-             115:             TypePointer Input 7(ivec4)
-         116(i4):    115(ptr) Variable Input
-             121:             TypePointer Input 17(int)
-         122(u1):    121(ptr) Variable Input
-             129:             TypePointer Input 65(ivec2)
-         130(u2):    129(ptr) Variable Input
-             138:             TypePointer Input 73(ivec3)
-         139(u3):    138(ptr) Variable Input
-             147:             TypePointer Input 53(ivec4)
-         148(u4):    147(ptr) Variable Input
+              35:     17(int) Constant 1
+              38:             TypeVector 12(float) 3
+              39:             TypePointer Input 38(fvec3)
+          40(f3):     39(ptr) Variable Input
+              42:             TypeVector 6(int) 3
+              51:     17(int) Constant 2
+              54:             TypeVector 12(float) 4
+              55:             TypePointer Input 54(fvec4)
+          56(f4):     55(ptr) Variable Input
+              61:             TypeVector 17(int) 4
+              62:             TypePointer Function 61(ivec4)
+              64:   61(ivec4) ConstantComposite 18 18 18 18
+              67:             TypePointer Function 17(int)
+              73:             TypeVector 17(int) 2
+              83:             TypeVector 17(int) 3
+              98:             TypePointer Function 54(fvec4)
+             100:   12(float) Constant 0
+             101:   54(fvec4) ConstantComposite 100 100 100 100
+             102:             TypePointer Input 6(int)
+         103(i1):    102(ptr) Variable Input
+             106:             TypePointer Function 12(float)
+             111:             TypePointer Input 28(ivec2)
+         112(i2):    111(ptr) Variable Input
+             122:             TypePointer Input 42(ivec3)
+         123(i3):    122(ptr) Variable Input
+             135:             TypePointer Input 7(ivec4)
+         136(i4):    135(ptr) Variable Input
+             141:             TypePointer Input 17(int)
+         142(u1):    141(ptr) Variable Input
+             149:             TypePointer Input 73(ivec2)
+         150(u2):    149(ptr) Variable Input
+             160:             TypePointer Input 83(ivec3)
+         161(u3):    160(ptr) Variable Input
+             173:             TypePointer Input 61(ivec4)
+         174(u4):    173(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
         9(idata):      8(ptr) Variable Function
-       55(udata):     54(ptr) Variable Function
-       85(fdata):     84(ptr) Variable Function
+       63(udata):     62(ptr) Variable Function
+       99(fdata):     98(ptr) Variable Function
                               Store 9(idata) 11
               15:   12(float) Load 14(f1)
               16:      6(int) Bitcast 15
@@ -134,107 +136,143 @@
               30:    7(ivec4) Load 9(idata)
               31:   28(ivec2) VectorShuffle 30 30 0 1
               32:   28(ivec2) IAdd 31 29
-              33:    7(ivec4) Load 9(idata)
-              34:    7(ivec4) VectorShuffle 33 32 4 5 2 3
-                              Store 9(idata) 34
-              38:   35(fvec3) Load 37(f3)
-              40:   39(ivec3) Bitcast 38
-              41:    7(ivec4) Load 9(idata)
-              42:   39(ivec3) VectorShuffle 41 41 0 1 2
-              43:   39(ivec3) IAdd 42 40
+              33:     19(ptr) AccessChain 9(idata) 18
+              34:      6(int) CompositeExtract 32 0
+                              Store 33 34
+              36:     19(ptr) AccessChain 9(idata) 35
+              37:      6(int) CompositeExtract 32 1
+                              Store 36 37
+              41:   38(fvec3) Load 40(f3)
+              43:   42(ivec3) Bitcast 41
               44:    7(ivec4) Load 9(idata)
-              45:    7(ivec4) VectorShuffle 44 43 4 5 6 3
-                              Store 9(idata) 45
-              49:   46(fvec4) Load 48(f4)
-              50:    7(ivec4) Bitcast 49
-              51:    7(ivec4) Load 9(idata)
-              52:    7(ivec4) IAdd 51 50
-                              Store 9(idata) 52
-                              Store 55(udata) 56
-              57:   12(float) Load 14(f1)
-              58:     17(int) Bitcast 57
-              60:     59(ptr) AccessChain 55(udata) 18
-              61:     17(int) Load 60
-              62:     17(int) IAdd 61 58
-              63:     59(ptr) AccessChain 55(udata) 18
-                              Store 63 62
-              64:   24(fvec2) Load 26(f2)
-              66:   65(ivec2) Bitcast 64
-              67:   53(ivec4) Load 55(udata)
-              68:   65(ivec2) VectorShuffle 67 67 0 1
-              69:   65(ivec2) IAdd 68 66
-              70:   53(ivec4) Load 55(udata)
-              71:   53(ivec4) VectorShuffle 70 69 4 5 2 3
-                              Store 55(udata) 71
-              72:   35(fvec3) Load 37(f3)
-              74:   73(ivec3) Bitcast 72
-              75:   53(ivec4) Load 55(udata)
-              76:   73(ivec3) VectorShuffle 75 75 0 1 2
-              77:   73(ivec3) IAdd 76 74
-              78:   53(ivec4) Load 55(udata)
-              79:   53(ivec4) VectorShuffle 78 77 4 5 6 3
-                              Store 55(udata) 79
-              80:   46(fvec4) Load 48(f4)
-              81:   53(ivec4) Bitcast 80
-              82:   53(ivec4) Load 55(udata)
-              83:   53(ivec4) IAdd 82 81
-                              Store 55(udata) 83
-                              Store 85(fdata) 87
-              90:      6(int) Load 89(i1)
-              91:   12(float) Bitcast 90
-              93:     92(ptr) AccessChain 85(fdata) 18
-              94:   12(float) Load 93
-              95:   12(float) FAdd 94 91
-              96:     92(ptr) AccessChain 85(fdata) 18
-                              Store 96 95
-              99:   28(ivec2) Load 98(i2)
-             100:   24(fvec2) Bitcast 99
-             101:   46(fvec4) Load 85(fdata)
-             102:   24(fvec2) VectorShuffle 101 101 0 1
-             103:   24(fvec2) FAdd 102 100
-             104:   46(fvec4) Load 85(fdata)
-             105:   46(fvec4) VectorShuffle 104 103 4 5 2 3
-                              Store 85(fdata) 105
-             108:   39(ivec3) Load 107(i3)
-             109:   35(fvec3) Bitcast 108
-             110:   46(fvec4) Load 85(fdata)
-             111:   35(fvec3) VectorShuffle 110 110 0 1 2
-             112:   35(fvec3) FAdd 111 109
-             113:   46(fvec4) Load 85(fdata)
-             114:   46(fvec4) VectorShuffle 113 112 4 5 6 3
-                              Store 85(fdata) 114
-             117:    7(ivec4) Load 116(i4)
-             118:   46(fvec4) Bitcast 117
-             119:   46(fvec4) Load 85(fdata)
-             120:   46(fvec4) FAdd 119 118
-                              Store 85(fdata) 120
-             123:     17(int) Load 122(u1)
-             124:   12(float) Bitcast 123
-             125:     92(ptr) AccessChain 85(fdata) 18
-             126:   12(float) Load 125
-             127:   12(float) FAdd 126 124
-             128:     92(ptr) AccessChain 85(fdata) 18
-                              Store 128 127
-             131:   65(ivec2) Load 130(u2)
-             132:   24(fvec2) Bitcast 131
-             133:   46(fvec4) Load 85(fdata)
-             134:   24(fvec2) VectorShuffle 133 133 0 1
-             135:   24(fvec2) FAdd 134 132
-             136:   46(fvec4) Load 85(fdata)
-             137:   46(fvec4) VectorShuffle 136 135 4 5 2 3
-                              Store 85(fdata) 137
-             140:   73(ivec3) Load 139(u3)
-             141:   35(fvec3) Bitcast 140
-             142:   46(fvec4) Load 85(fdata)
-             143:   35(fvec3) VectorShuffle 142 142 0 1 2
-             144:   35(fvec3) FAdd 143 141
-             145:   46(fvec4) Load 85(fdata)
-             146:   46(fvec4) VectorShuffle 145 144 4 5 6 3
-                              Store 85(fdata) 146
-             149:   53(ivec4) Load 148(u4)
-             150:   46(fvec4) Bitcast 149
-             151:   46(fvec4) Load 85(fdata)
-             152:   46(fvec4) FAdd 151 150
-                              Store 85(fdata) 152
+              45:   42(ivec3) VectorShuffle 44 44 0 1 2
+              46:   42(ivec3) IAdd 45 43
+              47:     19(ptr) AccessChain 9(idata) 18
+              48:      6(int) CompositeExtract 46 0
+                              Store 47 48
+              49:     19(ptr) AccessChain 9(idata) 35
+              50:      6(int) CompositeExtract 46 1
+                              Store 49 50
+              52:     19(ptr) AccessChain 9(idata) 51
+              53:      6(int) CompositeExtract 46 2
+                              Store 52 53
+              57:   54(fvec4) Load 56(f4)
+              58:    7(ivec4) Bitcast 57
+              59:    7(ivec4) Load 9(idata)
+              60:    7(ivec4) IAdd 59 58
+                              Store 9(idata) 60
+                              Store 63(udata) 64
+              65:   12(float) Load 14(f1)
+              66:     17(int) Bitcast 65
+              68:     67(ptr) AccessChain 63(udata) 18
+              69:     17(int) Load 68
+              70:     17(int) IAdd 69 66
+              71:     67(ptr) AccessChain 63(udata) 18
+                              Store 71 70
+              72:   24(fvec2) Load 26(f2)
+              74:   73(ivec2) Bitcast 72
+              75:   61(ivec4) Load 63(udata)
+              76:   73(ivec2) VectorShuffle 75 75 0 1
+              77:   73(ivec2) IAdd 76 74
+              78:     67(ptr) AccessChain 63(udata) 18
+              79:     17(int) CompositeExtract 77 0
+                              Store 78 79
+              80:     67(ptr) AccessChain 63(udata) 35
+              81:     17(int) CompositeExtract 77 1
+                              Store 80 81
+              82:   38(fvec3) Load 40(f3)
+              84:   83(ivec3) Bitcast 82
+              85:   61(ivec4) Load 63(udata)
+              86:   83(ivec3) VectorShuffle 85 85 0 1 2
+              87:   83(ivec3) IAdd 86 84
+              88:     67(ptr) AccessChain 63(udata) 18
+              89:     17(int) CompositeExtract 87 0
+                              Store 88 89
+              90:     67(ptr) AccessChain 63(udata) 35
+              91:     17(int) CompositeExtract 87 1
+                              Store 90 91
+              92:     67(ptr) AccessChain 63(udata) 51
+              93:     17(int) CompositeExtract 87 2
+                              Store 92 93
+              94:   54(fvec4) Load 56(f4)
+              95:   61(ivec4) Bitcast 94
+              96:   61(ivec4) Load 63(udata)
+              97:   61(ivec4) IAdd 96 95
+                              Store 63(udata) 97
+                              Store 99(fdata) 101
+             104:      6(int) Load 103(i1)
+             105:   12(float) Bitcast 104
+             107:    106(ptr) AccessChain 99(fdata) 18
+             108:   12(float) Load 107
+             109:   12(float) FAdd 108 105
+             110:    106(ptr) AccessChain 99(fdata) 18
+                              Store 110 109
+             113:   28(ivec2) Load 112(i2)
+             114:   24(fvec2) Bitcast 113
+             115:   54(fvec4) Load 99(fdata)
+             116:   24(fvec2) VectorShuffle 115 115 0 1
+             117:   24(fvec2) FAdd 116 114
+             118:    106(ptr) AccessChain 99(fdata) 18
+             119:   12(float) CompositeExtract 117 0
+                              Store 118 119
+             120:    106(ptr) AccessChain 99(fdata) 35
+             121:   12(float) CompositeExtract 117 1
+                              Store 120 121
+             124:   42(ivec3) Load 123(i3)
+             125:   38(fvec3) Bitcast 124
+             126:   54(fvec4) Load 99(fdata)
+             127:   38(fvec3) VectorShuffle 126 126 0 1 2
+             128:   38(fvec3) FAdd 127 125
+             129:    106(ptr) AccessChain 99(fdata) 18
+             130:   12(float) CompositeExtract 128 0
+                              Store 129 130
+             131:    106(ptr) AccessChain 99(fdata) 35
+             132:   12(float) CompositeExtract 128 1
+                              Store 131 132
+             133:    106(ptr) AccessChain 99(fdata) 51
+             134:   12(float) CompositeExtract 128 2
+                              Store 133 134
+             137:    7(ivec4) Load 136(i4)
+             138:   54(fvec4) Bitcast 137
+             139:   54(fvec4) Load 99(fdata)
+             140:   54(fvec4) FAdd 139 138
+                              Store 99(fdata) 140
+             143:     17(int) Load 142(u1)
+             144:   12(float) Bitcast 143
+             145:    106(ptr) AccessChain 99(fdata) 18
+             146:   12(float) Load 145
+             147:   12(float) FAdd 146 144
+             148:    106(ptr) AccessChain 99(fdata) 18
+                              Store 148 147
+             151:   73(ivec2) Load 150(u2)
+             152:   24(fvec2) Bitcast 151
+             153:   54(fvec4) Load 99(fdata)
+             154:   24(fvec2) VectorShuffle 153 153 0 1
+             155:   24(fvec2) FAdd 154 152
+             156:    106(ptr) AccessChain 99(fdata) 18
+             157:   12(float) CompositeExtract 155 0
+                              Store 156 157
+             158:    106(ptr) AccessChain 99(fdata) 35
+             159:   12(float) CompositeExtract 155 1
+                              Store 158 159
+             162:   83(ivec3) Load 161(u3)
+             163:   38(fvec3) Bitcast 162
+             164:   54(fvec4) Load 99(fdata)
+             165:   38(fvec3) VectorShuffle 164 164 0 1 2
+             166:   38(fvec3) FAdd 165 163
+             167:    106(ptr) AccessChain 99(fdata) 18
+             168:   12(float) CompositeExtract 166 0
+                              Store 167 168
+             169:    106(ptr) AccessChain 99(fdata) 35
+             170:   12(float) CompositeExtract 166 1
+                              Store 169 170
+             171:    106(ptr) AccessChain 99(fdata) 51
+             172:   12(float) CompositeExtract 166 2
+                              Store 171 172
+             175:   61(ivec4) Load 174(u4)
+             176:   54(fvec4) Bitcast 175
+             177:   54(fvec4) Load 99(fdata)
+             178:   54(fvec4) FAdd 177 176
+                              Store 99(fdata) 178
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out b/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out
index 9bc86d0..a4d8413 100644
--- a/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out
+++ b/Test/baseResults/spv.320.meshShaderUserDefined.mesh.out
@@ -1,13 +1,13 @@
 spv.320.meshShaderUserDefined.mesh
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 140
+// Id's are bound by 143
 
                               Capability MeshShadingNV
                               Extension  "SPV_NV_mesh_shader"
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint MeshNV 4  "main" 12 19 37 103
+                              EntryPoint MeshNV 4  "main" 12 19 37 106
                               ExecutionMode 4 LocalSize 32 1 1
                               ExecutionMode 4 OutputVertices 81
                               ExecutionMode 4 OutputPrimitivesNV 32
@@ -27,11 +27,11 @@
                               MemberName 33(myblock) 4  "m"
                               MemberName 33(myblock) 5  "mArr"
                               Name 37  "blk"
-                              Name 99  "myblock2"
-                              MemberName 99(myblock2) 0  "f"
-                              MemberName 99(myblock2) 1  "pos"
-                              MemberName 99(myblock2) 2  "m"
-                              Name 103  "blk2"
+                              Name 102  "myblock2"
+                              MemberName 102(myblock2) 0  "f"
+                              MemberName 102(myblock2) 1  "pos"
+                              MemberName 102(myblock2) 2  "m"
+                              Name 106  "blk2"
                               Decorate 12(gl_LocalInvocationID) BuiltIn LocalInvocationId
                               Decorate 19(gl_WorkGroupID) BuiltIn WorkgroupId
                               MemberDecorate 33(myblock) 0 PerPrimitiveNV
@@ -42,9 +42,9 @@
                               MemberDecorate 33(myblock) 5 PerPrimitiveNV
                               Decorate 33(myblock) Block
                               Decorate 37(blk) Location 0
-                              Decorate 99(myblock2) Block
-                              Decorate 103(blk2) Location 20
-                              Decorate 139 BuiltIn WorkgroupSize
+                              Decorate 102(myblock2) Block
+                              Decorate 106(blk2) Location 20
+                              Decorate 142 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
@@ -82,31 +82,31 @@
               57:   26(fvec3) ConstantComposite 54 55 56
               58:             TypePointer Output 26(fvec3)
               64:      6(int) Constant 3
-              69:             TypePointer Output 27(fvec4)
-              74:      6(int) Constant 4
-              76:   23(float) Constant 1098907648
-              77:   27(fvec4) ConstantComposite 56 54 55 76
-              82:      6(int) Constant 5
-              85:      9(int) Constant 3
-              88:      9(int) Constant 1
-              93:   23(float) Constant 1099431936
-              94:   23(float) Constant 1099956224
-              95:   23(float) Constant 1100480512
-              96:   26(fvec3) ConstantComposite 93 94 95
-              98:      9(int) Constant 264
-    99(myblock2):             TypeStruct 23(float) 27(fvec4) 29
-             100:      9(int) Constant 81
-             101:             TypeArray 99(myblock2) 100
-             102:             TypePointer Output 101
-       103(blk2):    102(ptr) Variable Output
-             109:   23(float) Constant 1101004800
-             113:   23(float) Constant 1101529088
-             114:   23(float) Constant 1102053376
-             115:   23(float) Constant 1102577664
-             116:   23(float) Constant 1103101952
-             117:   27(fvec4) ConstantComposite 113 114 115 116
-             129:   23(float) Constant 1105723392
-             139:   10(ivec3) ConstantComposite 34 88 88
+              69:      9(int) Constant 1
+              74:      9(int) Constant 3
+              78:      6(int) Constant 4
+              80:   23(float) Constant 1098907648
+              81:   27(fvec4) ConstantComposite 56 54 55 80
+              82:             TypePointer Output 27(fvec4)
+              87:      6(int) Constant 5
+              96:   23(float) Constant 1099431936
+              97:   23(float) Constant 1099956224
+              98:   23(float) Constant 1100480512
+              99:   26(fvec3) ConstantComposite 96 97 98
+             101:      9(int) Constant 264
+   102(myblock2):             TypeStruct 23(float) 27(fvec4) 29
+             103:      9(int) Constant 81
+             104:             TypeArray 102(myblock2) 103
+             105:             TypePointer Output 104
+       106(blk2):    105(ptr) Variable Output
+             112:   23(float) Constant 1101004800
+             116:   23(float) Constant 1101529088
+             117:   23(float) Constant 1102053376
+             118:   23(float) Constant 1102577664
+             119:   23(float) Constant 1103101952
+             120:   27(fvec4) ConstantComposite 116 117 118 119
+             132:   23(float) Constant 1105723392
+             142:   10(ivec3) ConstantComposite 34 69 69
          4(main):           2 Function None 3
                5:             Label
           8(iid):      7(ptr) Variable Function
@@ -142,64 +142,69 @@
               66:      6(int) SDiv 65 52
               67:     58(ptr) AccessChain 37(blk) 66 52
               68:   26(fvec3) Load 67
-              70:     69(ptr) AccessChain 37(blk) 63 64 44
-              71:   27(fvec4) Load 70
-              72:   27(fvec4) VectorShuffle 71 68 0 4 5 6
-                              Store 70 72
-              73:      6(int) Load 8(iid)
-              75:      6(int) SDiv 73 74
-              78:     69(ptr) AccessChain 37(blk) 75 74 52
-              79:   27(fvec4) Load 78
-              80:   27(fvec4) VectorShuffle 79 77 7 6 5 4
-                              Store 78 80
-              81:      6(int) Load 8(iid)
-              83:      6(int) Load 8(iid)
-              84:      6(int) SDiv 83 74
-              86:     41(ptr) AccessChain 37(blk) 84 74 52 85
-              87:   23(float) Load 86
-              89:     41(ptr) AccessChain 37(blk) 81 82 39 44 88
-                              Store 89 87
-              90:      6(int) Load 8(iid)
-              91:      6(int) IMul 90 74
-              92:      6(int) Load 18(gid)
-              97:     58(ptr) AccessChain 37(blk) 91 82 44 92
-                              Store 97 96
-                              MemoryBarrier 88 98
-                              ControlBarrier 31 31 98
-             104:      6(int) Load 8(iid)
-             105:      6(int) Load 8(iid)
-             106:      6(int) ISub 105 44
-             107:     41(ptr) AccessChain 103(blk2) 106 39
-             108:   23(float) Load 107
-             110:   23(float) FAdd 108 109
-             111:     41(ptr) AccessChain 103(blk2) 104 39
-                              Store 111 110
-             112:      6(int) Load 8(iid)
-             118:     69(ptr) AccessChain 103(blk2) 112 44
-                              Store 118 117
-             119:      6(int) Load 8(iid)
-             120:      6(int) IAdd 119 44
-             121:      6(int) Load 18(gid)
+              70:     41(ptr) AccessChain 37(blk) 63 64 44 69
+              71:   23(float) CompositeExtract 68 0
+                              Store 70 71
+              72:     41(ptr) AccessChain 37(blk) 63 64 44 31
+              73:   23(float) CompositeExtract 68 1
+                              Store 72 73
+              75:     41(ptr) AccessChain 37(blk) 63 64 44 74
+              76:   23(float) CompositeExtract 68 2
+                              Store 75 76
+              77:      6(int) Load 8(iid)
+              79:      6(int) SDiv 77 78
+              83:     82(ptr) AccessChain 37(blk) 79 78 52
+              84:   27(fvec4) Load 83
+              85:   27(fvec4) VectorShuffle 84 81 7 6 5 4
+                              Store 83 85
+              86:      6(int) Load 8(iid)
+              88:      6(int) Load 8(iid)
+              89:      6(int) SDiv 88 78
+              90:     41(ptr) AccessChain 37(blk) 89 78 52 74
+              91:   23(float) Load 90
+              92:     41(ptr) AccessChain 37(blk) 86 87 39 44 69
+                              Store 92 91
+              93:      6(int) Load 8(iid)
+              94:      6(int) IMul 93 78
+              95:      6(int) Load 18(gid)
+             100:     58(ptr) AccessChain 37(blk) 94 87 44 95
+                              Store 100 99
+                              MemoryBarrier 69 101
+                              ControlBarrier 31 31 101
+             107:      6(int) Load 8(iid)
+             108:      6(int) Load 8(iid)
+             109:      6(int) ISub 108 44
+             110:     41(ptr) AccessChain 106(blk2) 109 39
+             111:   23(float) Load 110
+             113:   23(float) FAdd 111 112
+             114:     41(ptr) AccessChain 106(blk2) 107 39
+                              Store 114 113
+             115:      6(int) Load 8(iid)
+             121:     82(ptr) AccessChain 106(blk2) 115 44
+                              Store 121 120
              122:      6(int) Load 8(iid)
-             123:     69(ptr) AccessChain 103(blk2) 122 44
-             124:   27(fvec4) Load 123
-             125:     69(ptr) AccessChain 103(blk2) 120 52 121
-                              Store 125 124
-             126:      6(int) Load 8(iid)
-             127:      6(int) IAdd 126 44
-             128:      6(int) Load 18(gid)
-             130:     41(ptr) AccessChain 103(blk2) 127 52 128 31
-                              Store 130 129
-             131:      6(int) Load 8(iid)
-             132:      6(int) IAdd 131 52
-             133:      6(int) Load 8(iid)
-             134:      6(int) IAdd 133 44
-             135:      6(int) Load 18(gid)
-             136:     69(ptr) AccessChain 103(blk2) 134 52 135
-             137:   27(fvec4) Load 136
-             138:     69(ptr) AccessChain 103(blk2) 132 52 64
-                              Store 138 137
-                              MemoryBarrier 88 98
-                              ControlBarrier 31 31 98
+             123:      6(int) IAdd 122 44
+             124:      6(int) Load 18(gid)
+             125:      6(int) Load 8(iid)
+             126:     82(ptr) AccessChain 106(blk2) 125 44
+             127:   27(fvec4) Load 126
+             128:     82(ptr) AccessChain 106(blk2) 123 52 124
+                              Store 128 127
+             129:      6(int) Load 8(iid)
+             130:      6(int) IAdd 129 44
+             131:      6(int) Load 18(gid)
+             133:     41(ptr) AccessChain 106(blk2) 130 52 131 31
+                              Store 133 132
+             134:      6(int) Load 8(iid)
+             135:      6(int) IAdd 134 52
+             136:      6(int) Load 8(iid)
+             137:      6(int) IAdd 136 44
+             138:      6(int) Load 18(gid)
+             139:     82(ptr) AccessChain 106(blk2) 137 52 138
+             140:   27(fvec4) Load 139
+             141:     82(ptr) AccessChain 106(blk2) 135 52 64
+                              Store 141 140
+                              MemoryBarrier 69 101
+                              ControlBarrier 31 31 101
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.400.frag.nanclamp.out b/Test/baseResults/spv.400.frag.nanclamp.out
index 57f4365..cf1ffb0 100644
--- a/Test/baseResults/spv.400.frag.nanclamp.out
+++ b/Test/baseResults/spv.400.frag.nanclamp.out
@@ -1,7 +1,7 @@
 spv.400.frag
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 1118
+// Id's are bound by 1122
 
                               Capability Shader
                               Capability Geometry
@@ -11,7 +11,7 @@
                               Capability SampledRect
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 13 1027 1033 1038 1050 1076 1097 1099 1105 1107 1116
+                              EntryPoint Fragment 4  "main" 13 1027 1033 1038 1054 1080 1101 1103 1109 1111 1120
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 400
                               SourceExtension  "GL_ARB_separate_shader_objects"
@@ -42,16 +42,16 @@
                               Name 1027  "i"
                               Name 1033  "c2D"
                               Name 1038  "gl_ClipDistance"
-                              Name 1050  "uoutp"
-                              Name 1054  "samp2dr"
-                              Name 1076  "ioutp"
-                              Name 1080  "isamp2DA"
-                              Name 1097  "gl_FragCoord"
-                              Name 1099  "vl2"
-                              Name 1105  "uo"
-                              Name 1107  "u"
-                              Name 1115  "id"
-                              Name 1116  "gl_PrimitiveID"
+                              Name 1054  "uoutp"
+                              Name 1058  "samp2dr"
+                              Name 1080  "ioutp"
+                              Name 1084  "isamp2DA"
+                              Name 1101  "gl_FragCoord"
+                              Name 1103  "vl2"
+                              Name 1109  "uo"
+                              Name 1111  "u"
+                              Name 1119  "id"
+                              Name 1120  "gl_PrimitiveID"
                               Decorate 13(outp) Location 1
                               Decorate 17(u2drs) DescriptorSet 0
                               Decorate 17(u2drs) Binding 3
@@ -61,19 +61,19 @@
                               Decorate 1027(i) Location 1
                               Decorate 1033(c2D) Location 0
                               Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance
-                              Decorate 1050(uoutp) Location 3
-                              Decorate 1054(samp2dr) DescriptorSet 0
-                              Decorate 1054(samp2dr) Binding 1
-                              Decorate 1076(ioutp) Location 2
-                              Decorate 1080(isamp2DA) DescriptorSet 0
-                              Decorate 1080(isamp2DA) Binding 2
-                              Decorate 1097(gl_FragCoord) BuiltIn FragCoord
-                              Decorate 1099(vl2) Location 6
-                              Decorate 1105(uo) Location 0
-                              Decorate 1107(u) Flat
-                              Decorate 1107(u) Location 2
-                              Decorate 1116(gl_PrimitiveID) Flat
-                              Decorate 1116(gl_PrimitiveID) BuiltIn PrimitiveId
+                              Decorate 1054(uoutp) Location 3
+                              Decorate 1058(samp2dr) DescriptorSet 0
+                              Decorate 1058(samp2dr) Binding 1
+                              Decorate 1080(ioutp) Location 2
+                              Decorate 1084(isamp2DA) DescriptorSet 0
+                              Decorate 1084(isamp2DA) Binding 2
+                              Decorate 1101(gl_FragCoord) BuiltIn FragCoord
+                              Decorate 1103(vl2) Location 6
+                              Decorate 1109(uo) Location 0
+                              Decorate 1111(u) Flat
+                              Decorate 1111(u) Location 2
+                              Decorate 1120(gl_PrimitiveID) Flat
+                              Decorate 1120(gl_PrimitiveID) BuiltIn PrimitiveId
                2:             TypeVoid
                3:             TypeFunction 2
               10:             TypeFloat 32
@@ -161,46 +161,46 @@
 1038(gl_ClipDistance):   1037(ptr) Variable Input
             1039:             TypePointer Input 10(float)
             1043:             TypeVector 10(float) 3
-            1048:             TypeVector 32(int) 4
-            1049:             TypePointer Output 1048(ivec4)
-     1050(uoutp):   1049(ptr) Variable Output
-            1051:             TypeImage 32(int) Rect sampled format:Unknown
-            1052:             TypeSampledImage 1051
-            1053:             TypePointer UniformConstant 1052
-   1054(samp2dr):   1053(ptr) Variable UniformConstant
-            1057:     32(int) Constant 4
-            1058:             TypeArray 24(ivec2) 1057
-            1059:   24(ivec2) ConstantComposite 966 970
-            1060:     23(int) Constant 15
-            1061:     23(int) Constant 16
-            1062:   24(ivec2) ConstantComposite 1060 1061
-            1063:     23(int) Constant 4294967294
-            1064:     23(int) Constant 0
-            1065:   24(ivec2) ConstantComposite 1063 1064
-            1066:        1058 ConstantComposite 1059 27 1062 1065
-            1074:             TypeVector 23(int) 4
-            1075:             TypePointer Output 1074(ivec4)
-     1076(ioutp):   1075(ptr) Variable Output
-            1077:             TypeImage 23(int) 2D array sampled format:Unknown
-            1078:             TypeSampledImage 1077
-            1079:             TypePointer UniformConstant 1078
-  1080(isamp2DA):   1079(ptr) Variable UniformConstant
-            1082:   10(float) Constant 1036831949
-            1083: 1043(fvec3) ConstantComposite 1082 1082 1082
-            1084:   24(ivec2) ConstantComposite 966 966
-            1096:             TypePointer Input 11(fvec4)
-1097(gl_FragCoord):   1096(ptr) Variable Input
-       1099(vl2):   1096(ptr) Variable Input
-            1104:             TypePointer Output 32(int)
-        1105(uo):   1104(ptr) Variable Output
-            1106:             TypePointer Input 32(int)
-         1107(u):   1106(ptr) Variable Input
-            1114:             TypePointer Function 23(int)
-1116(gl_PrimitiveID):   1026(ptr) Variable Input
+            1052:             TypeVector 32(int) 4
+            1053:             TypePointer Output 1052(ivec4)
+     1054(uoutp):   1053(ptr) Variable Output
+            1055:             TypeImage 32(int) Rect sampled format:Unknown
+            1056:             TypeSampledImage 1055
+            1057:             TypePointer UniformConstant 1056
+   1058(samp2dr):   1057(ptr) Variable UniformConstant
+            1061:     32(int) Constant 4
+            1062:             TypeArray 24(ivec2) 1061
+            1063:   24(ivec2) ConstantComposite 966 970
+            1064:     23(int) Constant 15
+            1065:     23(int) Constant 16
+            1066:   24(ivec2) ConstantComposite 1064 1065
+            1067:     23(int) Constant 4294967294
+            1068:     23(int) Constant 0
+            1069:   24(ivec2) ConstantComposite 1067 1068
+            1070:        1062 ConstantComposite 1063 27 1066 1069
+            1078:             TypeVector 23(int) 4
+            1079:             TypePointer Output 1078(ivec4)
+     1080(ioutp):   1079(ptr) Variable Output
+            1081:             TypeImage 23(int) 2D array sampled format:Unknown
+            1082:             TypeSampledImage 1081
+            1083:             TypePointer UniformConstant 1082
+  1084(isamp2DA):   1083(ptr) Variable UniformConstant
+            1086:   10(float) Constant 1036831949
+            1087: 1043(fvec3) ConstantComposite 1086 1086 1086
+            1088:   24(ivec2) ConstantComposite 966 966
+            1100:             TypePointer Input 11(fvec4)
+1101(gl_FragCoord):   1100(ptr) Variable Input
+       1103(vl2):   1100(ptr) Variable Input
+            1108:             TypePointer Output 32(int)
+        1109(uo):   1108(ptr) Variable Output
+            1110:             TypePointer Input 32(int)
+         1111(u):   1110(ptr) Variable Input
+            1118:             TypePointer Function 23(int)
+1120(gl_PrimitiveID):   1026(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
          1019(v):   1018(ptr) Variable Function
-        1115(id):   1114(ptr) Variable Function
+        1119(id):   1118(ptr) Variable Function
             1028:     23(int) Load 1027(i)
             1030:   1029(ptr) AccessChain 1025(arrayedSampler) 1028
             1031:        1021 Load 1030
@@ -213,50 +213,56 @@
                               Store 1042 1041
             1044:   11(fvec4) Load 1019(v)
             1045: 1043(fvec3) VectorShuffle 1044 1044 1 2 3
-            1046:   11(fvec4) Load 13(outp)
-            1047:   11(fvec4) VectorShuffle 1046 1045 0 4 5 6
-                              Store 13(outp) 1047
-            1055:        1052 Load 1054(samp2dr)
-            1056:   20(fvec2) Load 1033(c2D)
-            1067: 1048(ivec4) ImageGather 1055 1056 970 ConstOffsets 1066
-                              Store 1050(uoutp) 1067
-            1068:   1029(ptr) AccessChain 1025(arrayedSampler) 1064
-            1069:        1021 Load 1068
-            1070:   20(fvec2) Load 1033(c2D)
-            1071:   11(fvec4) ImageGather 1069 1070 1064
-            1072:   11(fvec4) Load 13(outp)
-            1073:   11(fvec4) FAdd 1072 1071
-                              Store 13(outp) 1073
-            1081:        1078 Load 1080(isamp2DA)
-            1085: 1074(ivec4) ImageGather 1081 1083 25 ConstOffset 1084
-                              Store 1076(ioutp) 1085
-            1086:        1078 Load 1080(isamp2DA)
-            1087: 1074(ivec4) ImageGather 1086 1083 25 ConstOffset 1084
-            1088: 1074(ivec4) Load 1076(ioutp)
-            1089: 1074(ivec4) IAdd 1088 1087
-                              Store 1076(ioutp) 1089
-            1090:        1078 Load 1080(isamp2DA)
-            1091:     23(int) Load 1027(i)
-            1092:   24(ivec2) CompositeConstruct 1091 1091
-            1093: 1074(ivec4) ImageGather 1090 1083 1064 Offset 1092
-            1094: 1074(ivec4) Load 1076(ioutp)
-            1095: 1074(ivec4) IAdd 1094 1093
-                              Store 1076(ioutp) 1095
-            1098:   11(fvec4) Load 1097(gl_FragCoord)
-            1100:   11(fvec4) Load 1099(vl2)
-            1101:   11(fvec4) FAdd 1098 1100
-            1102:   11(fvec4) Load 13(outp)
-            1103:   11(fvec4) FAdd 1102 1101
-                              Store 13(outp) 1103
-            1108:     32(int) Load 1107(u)
-            1109:     23(int) Load 1027(i)
-            1110:     32(int) Bitcast 1109
-            1111:     32(int) UMod 1108 1110
-                              Store 1105(uo) 1111
-            1112:           2 FunctionCall 6(foo23()
-            1113:           2 FunctionCall 8(doubles()
-            1117:     23(int) Load 1116(gl_PrimitiveID)
-                              Store 1115(id) 1117
+            1046:     34(ptr) AccessChain 13(outp) 954
+            1047:   10(float) CompositeExtract 1045 0
+                              Store 1046 1047
+            1048:     34(ptr) AccessChain 13(outp) 958
+            1049:   10(float) CompositeExtract 1045 1
+                              Store 1048 1049
+            1050:     34(ptr) AccessChain 13(outp) 962
+            1051:   10(float) CompositeExtract 1045 2
+                              Store 1050 1051
+            1059:        1056 Load 1058(samp2dr)
+            1060:   20(fvec2) Load 1033(c2D)
+            1071: 1052(ivec4) ImageGather 1059 1060 970 ConstOffsets 1070
+                              Store 1054(uoutp) 1071
+            1072:   1029(ptr) AccessChain 1025(arrayedSampler) 1068
+            1073:        1021 Load 1072
+            1074:   20(fvec2) Load 1033(c2D)
+            1075:   11(fvec4) ImageGather 1073 1074 1068
+            1076:   11(fvec4) Load 13(outp)
+            1077:   11(fvec4) FAdd 1076 1075
+                              Store 13(outp) 1077
+            1085:        1082 Load 1084(isamp2DA)
+            1089: 1078(ivec4) ImageGather 1085 1087 25 ConstOffset 1088
+                              Store 1080(ioutp) 1089
+            1090:        1082 Load 1084(isamp2DA)
+            1091: 1078(ivec4) ImageGather 1090 1087 25 ConstOffset 1088
+            1092: 1078(ivec4) Load 1080(ioutp)
+            1093: 1078(ivec4) IAdd 1092 1091
+                              Store 1080(ioutp) 1093
+            1094:        1082 Load 1084(isamp2DA)
+            1095:     23(int) Load 1027(i)
+            1096:   24(ivec2) CompositeConstruct 1095 1095
+            1097: 1078(ivec4) ImageGather 1094 1087 1068 Offset 1096
+            1098: 1078(ivec4) Load 1080(ioutp)
+            1099: 1078(ivec4) IAdd 1098 1097
+                              Store 1080(ioutp) 1099
+            1102:   11(fvec4) Load 1101(gl_FragCoord)
+            1104:   11(fvec4) Load 1103(vl2)
+            1105:   11(fvec4) FAdd 1102 1104
+            1106:   11(fvec4) Load 13(outp)
+            1107:   11(fvec4) FAdd 1106 1105
+                              Store 13(outp) 1107
+            1112:     32(int) Load 1111(u)
+            1113:     23(int) Load 1027(i)
+            1114:     32(int) Bitcast 1113
+            1115:     32(int) UMod 1112 1114
+                              Store 1109(uo) 1115
+            1116:           2 FunctionCall 6(foo23()
+            1117:           2 FunctionCall 8(doubles()
+            1121:     23(int) Load 1120(gl_PrimitiveID)
+                              Store 1119(id) 1121
                               Return
                               FunctionEnd
        6(foo23():           2 Function None 3
diff --git a/Test/baseResults/spv.400.frag.out b/Test/baseResults/spv.400.frag.out
index 2e7b2f5..6786885 100644
--- a/Test/baseResults/spv.400.frag.out
+++ b/Test/baseResults/spv.400.frag.out
@@ -2,7 +2,7 @@
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 1118
+// Id's are bound by 1122
 
                               Capability Shader
                               Capability Geometry
@@ -12,7 +12,7 @@
                               Capability SampledRect
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 13 1027 1033 1038 1050 1076 1097 1099 1105 1107 1116
+                              EntryPoint Fragment 4  "main" 13 1027 1033 1038 1054 1080 1101 1103 1109 1111 1120
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 400
                               SourceExtension  "GL_ARB_separate_shader_objects"
@@ -43,16 +43,16 @@
                               Name 1027  "i"
                               Name 1033  "c2D"
                               Name 1038  "gl_ClipDistance"
-                              Name 1050  "uoutp"
-                              Name 1054  "samp2dr"
-                              Name 1076  "ioutp"
-                              Name 1080  "isamp2DA"
-                              Name 1097  "gl_FragCoord"
-                              Name 1099  "vl2"
-                              Name 1105  "uo"
-                              Name 1107  "u"
-                              Name 1115  "id"
-                              Name 1116  "gl_PrimitiveID"
+                              Name 1054  "uoutp"
+                              Name 1058  "samp2dr"
+                              Name 1080  "ioutp"
+                              Name 1084  "isamp2DA"
+                              Name 1101  "gl_FragCoord"
+                              Name 1103  "vl2"
+                              Name 1109  "uo"
+                              Name 1111  "u"
+                              Name 1119  "id"
+                              Name 1120  "gl_PrimitiveID"
                               Decorate 13(outp) Location 1
                               Decorate 17(u2drs) DescriptorSet 0
                               Decorate 17(u2drs) Binding 3
@@ -62,19 +62,19 @@
                               Decorate 1027(i) Location 1
                               Decorate 1033(c2D) Location 0
                               Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance
-                              Decorate 1050(uoutp) Location 3
-                              Decorate 1054(samp2dr) DescriptorSet 0
-                              Decorate 1054(samp2dr) Binding 1
-                              Decorate 1076(ioutp) Location 2
-                              Decorate 1080(isamp2DA) DescriptorSet 0
-                              Decorate 1080(isamp2DA) Binding 2
-                              Decorate 1097(gl_FragCoord) BuiltIn FragCoord
-                              Decorate 1099(vl2) Location 6
-                              Decorate 1105(uo) Location 0
-                              Decorate 1107(u) Flat
-                              Decorate 1107(u) Location 2
-                              Decorate 1116(gl_PrimitiveID) Flat
-                              Decorate 1116(gl_PrimitiveID) BuiltIn PrimitiveId
+                              Decorate 1054(uoutp) Location 3
+                              Decorate 1058(samp2dr) DescriptorSet 0
+                              Decorate 1058(samp2dr) Binding 1
+                              Decorate 1080(ioutp) Location 2
+                              Decorate 1084(isamp2DA) DescriptorSet 0
+                              Decorate 1084(isamp2DA) Binding 2
+                              Decorate 1101(gl_FragCoord) BuiltIn FragCoord
+                              Decorate 1103(vl2) Location 6
+                              Decorate 1109(uo) Location 0
+                              Decorate 1111(u) Flat
+                              Decorate 1111(u) Location 2
+                              Decorate 1120(gl_PrimitiveID) Flat
+                              Decorate 1120(gl_PrimitiveID) BuiltIn PrimitiveId
                2:             TypeVoid
                3:             TypeFunction 2
               10:             TypeFloat 32
@@ -162,46 +162,46 @@
 1038(gl_ClipDistance):   1037(ptr) Variable Input
             1039:             TypePointer Input 10(float)
             1043:             TypeVector 10(float) 3
-            1048:             TypeVector 32(int) 4
-            1049:             TypePointer Output 1048(ivec4)
-     1050(uoutp):   1049(ptr) Variable Output
-            1051:             TypeImage 32(int) Rect sampled format:Unknown
-            1052:             TypeSampledImage 1051
-            1053:             TypePointer UniformConstant 1052
-   1054(samp2dr):   1053(ptr) Variable UniformConstant
-            1057:     32(int) Constant 4
-            1058:             TypeArray 24(ivec2) 1057
-            1059:   24(ivec2) ConstantComposite 966 970
-            1060:     23(int) Constant 15
-            1061:     23(int) Constant 16
-            1062:   24(ivec2) ConstantComposite 1060 1061
-            1063:     23(int) Constant 4294967294
-            1064:     23(int) Constant 0
-            1065:   24(ivec2) ConstantComposite 1063 1064
-            1066:        1058 ConstantComposite 1059 27 1062 1065
-            1074:             TypeVector 23(int) 4
-            1075:             TypePointer Output 1074(ivec4)
-     1076(ioutp):   1075(ptr) Variable Output
-            1077:             TypeImage 23(int) 2D array sampled format:Unknown
-            1078:             TypeSampledImage 1077
-            1079:             TypePointer UniformConstant 1078
-  1080(isamp2DA):   1079(ptr) Variable UniformConstant
-            1082:   10(float) Constant 1036831949
-            1083: 1043(fvec3) ConstantComposite 1082 1082 1082
-            1084:   24(ivec2) ConstantComposite 966 966
-            1096:             TypePointer Input 11(fvec4)
-1097(gl_FragCoord):   1096(ptr) Variable Input
-       1099(vl2):   1096(ptr) Variable Input
-            1104:             TypePointer Output 32(int)
-        1105(uo):   1104(ptr) Variable Output
-            1106:             TypePointer Input 32(int)
-         1107(u):   1106(ptr) Variable Input
-            1114:             TypePointer Function 23(int)
-1116(gl_PrimitiveID):   1026(ptr) Variable Input
+            1052:             TypeVector 32(int) 4
+            1053:             TypePointer Output 1052(ivec4)
+     1054(uoutp):   1053(ptr) Variable Output
+            1055:             TypeImage 32(int) Rect sampled format:Unknown
+            1056:             TypeSampledImage 1055
+            1057:             TypePointer UniformConstant 1056
+   1058(samp2dr):   1057(ptr) Variable UniformConstant
+            1061:     32(int) Constant 4
+            1062:             TypeArray 24(ivec2) 1061
+            1063:   24(ivec2) ConstantComposite 966 970
+            1064:     23(int) Constant 15
+            1065:     23(int) Constant 16
+            1066:   24(ivec2) ConstantComposite 1064 1065
+            1067:     23(int) Constant 4294967294
+            1068:     23(int) Constant 0
+            1069:   24(ivec2) ConstantComposite 1067 1068
+            1070:        1062 ConstantComposite 1063 27 1066 1069
+            1078:             TypeVector 23(int) 4
+            1079:             TypePointer Output 1078(ivec4)
+     1080(ioutp):   1079(ptr) Variable Output
+            1081:             TypeImage 23(int) 2D array sampled format:Unknown
+            1082:             TypeSampledImage 1081
+            1083:             TypePointer UniformConstant 1082
+  1084(isamp2DA):   1083(ptr) Variable UniformConstant
+            1086:   10(float) Constant 1036831949
+            1087: 1043(fvec3) ConstantComposite 1086 1086 1086
+            1088:   24(ivec2) ConstantComposite 966 966
+            1100:             TypePointer Input 11(fvec4)
+1101(gl_FragCoord):   1100(ptr) Variable Input
+       1103(vl2):   1100(ptr) Variable Input
+            1108:             TypePointer Output 32(int)
+        1109(uo):   1108(ptr) Variable Output
+            1110:             TypePointer Input 32(int)
+         1111(u):   1110(ptr) Variable Input
+            1118:             TypePointer Function 23(int)
+1120(gl_PrimitiveID):   1026(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
          1019(v):   1018(ptr) Variable Function
-        1115(id):   1114(ptr) Variable Function
+        1119(id):   1118(ptr) Variable Function
             1028:     23(int) Load 1027(i)
             1030:   1029(ptr) AccessChain 1025(arrayedSampler) 1028
             1031:        1021 Load 1030
@@ -214,50 +214,56 @@
                               Store 1042 1041
             1044:   11(fvec4) Load 1019(v)
             1045: 1043(fvec3) VectorShuffle 1044 1044 1 2 3
-            1046:   11(fvec4) Load 13(outp)
-            1047:   11(fvec4) VectorShuffle 1046 1045 0 4 5 6
-                              Store 13(outp) 1047
-            1055:        1052 Load 1054(samp2dr)
-            1056:   20(fvec2) Load 1033(c2D)
-            1067: 1048(ivec4) ImageGather 1055 1056 970 ConstOffsets 1066
-                              Store 1050(uoutp) 1067
-            1068:   1029(ptr) AccessChain 1025(arrayedSampler) 1064
-            1069:        1021 Load 1068
-            1070:   20(fvec2) Load 1033(c2D)
-            1071:   11(fvec4) ImageGather 1069 1070 1064
-            1072:   11(fvec4) Load 13(outp)
-            1073:   11(fvec4) FAdd 1072 1071
-                              Store 13(outp) 1073
-            1081:        1078 Load 1080(isamp2DA)
-            1085: 1074(ivec4) ImageGather 1081 1083 25 ConstOffset 1084
-                              Store 1076(ioutp) 1085
-            1086:        1078 Load 1080(isamp2DA)
-            1087: 1074(ivec4) ImageGather 1086 1083 25 ConstOffset 1084
-            1088: 1074(ivec4) Load 1076(ioutp)
-            1089: 1074(ivec4) IAdd 1088 1087
-                              Store 1076(ioutp) 1089
-            1090:        1078 Load 1080(isamp2DA)
-            1091:     23(int) Load 1027(i)
-            1092:   24(ivec2) CompositeConstruct 1091 1091
-            1093: 1074(ivec4) ImageGather 1090 1083 1064 Offset 1092
-            1094: 1074(ivec4) Load 1076(ioutp)
-            1095: 1074(ivec4) IAdd 1094 1093
-                              Store 1076(ioutp) 1095
-            1098:   11(fvec4) Load 1097(gl_FragCoord)
-            1100:   11(fvec4) Load 1099(vl2)
-            1101:   11(fvec4) FAdd 1098 1100
-            1102:   11(fvec4) Load 13(outp)
-            1103:   11(fvec4) FAdd 1102 1101
-                              Store 13(outp) 1103
-            1108:     32(int) Load 1107(u)
-            1109:     23(int) Load 1027(i)
-            1110:     32(int) Bitcast 1109
-            1111:     32(int) UMod 1108 1110
-                              Store 1105(uo) 1111
-            1112:           2 FunctionCall 6(foo23()
-            1113:           2 FunctionCall 8(doubles()
-            1117:     23(int) Load 1116(gl_PrimitiveID)
-                              Store 1115(id) 1117
+            1046:     34(ptr) AccessChain 13(outp) 954
+            1047:   10(float) CompositeExtract 1045 0
+                              Store 1046 1047
+            1048:     34(ptr) AccessChain 13(outp) 958
+            1049:   10(float) CompositeExtract 1045 1
+                              Store 1048 1049
+            1050:     34(ptr) AccessChain 13(outp) 962
+            1051:   10(float) CompositeExtract 1045 2
+                              Store 1050 1051
+            1059:        1056 Load 1058(samp2dr)
+            1060:   20(fvec2) Load 1033(c2D)
+            1071: 1052(ivec4) ImageGather 1059 1060 970 ConstOffsets 1070
+                              Store 1054(uoutp) 1071
+            1072:   1029(ptr) AccessChain 1025(arrayedSampler) 1068
+            1073:        1021 Load 1072
+            1074:   20(fvec2) Load 1033(c2D)
+            1075:   11(fvec4) ImageGather 1073 1074 1068
+            1076:   11(fvec4) Load 13(outp)
+            1077:   11(fvec4) FAdd 1076 1075
+                              Store 13(outp) 1077
+            1085:        1082 Load 1084(isamp2DA)
+            1089: 1078(ivec4) ImageGather 1085 1087 25 ConstOffset 1088
+                              Store 1080(ioutp) 1089
+            1090:        1082 Load 1084(isamp2DA)
+            1091: 1078(ivec4) ImageGather 1090 1087 25 ConstOffset 1088
+            1092: 1078(ivec4) Load 1080(ioutp)
+            1093: 1078(ivec4) IAdd 1092 1091
+                              Store 1080(ioutp) 1093
+            1094:        1082 Load 1084(isamp2DA)
+            1095:     23(int) Load 1027(i)
+            1096:   24(ivec2) CompositeConstruct 1095 1095
+            1097: 1078(ivec4) ImageGather 1094 1087 1068 Offset 1096
+            1098: 1078(ivec4) Load 1080(ioutp)
+            1099: 1078(ivec4) IAdd 1098 1097
+                              Store 1080(ioutp) 1099
+            1102:   11(fvec4) Load 1101(gl_FragCoord)
+            1104:   11(fvec4) Load 1103(vl2)
+            1105:   11(fvec4) FAdd 1102 1104
+            1106:   11(fvec4) Load 13(outp)
+            1107:   11(fvec4) FAdd 1106 1105
+                              Store 13(outp) 1107
+            1112:     32(int) Load 1111(u)
+            1113:     23(int) Load 1027(i)
+            1114:     32(int) Bitcast 1113
+            1115:     32(int) UMod 1112 1114
+                              Store 1109(uo) 1115
+            1116:           2 FunctionCall 6(foo23()
+            1117:           2 FunctionCall 8(doubles()
+            1121:     23(int) Load 1120(gl_PrimitiveID)
+                              Store 1119(id) 1121
                               Return
                               FunctionEnd
        6(foo23():           2 Function None 3
diff --git a/Test/baseResults/spv.AnyHitShaderMotion.rahit.out b/Test/baseResults/spv.AnyHitShaderMotion.rahit.out
new file mode 100644
index 0000000..f9e1e1b
--- /dev/null
+++ b/Test/baseResults/spv.AnyHitShaderMotion.rahit.out
@@ -0,0 +1,33 @@
+spv.AnyHitShaderMotion.rahit
+// Module Version 10400
+// Generated by (magic number): 8000a
+// Id's are bound by 14
+
+                              Capability RayTracingKHR
+                              Capability RayTracingMotionBlurNV
+                              Extension  "SPV_KHR_ray_tracing"
+                              Extension  "SPV_NV_ray_tracing_motion_blur"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint AnyHitKHR 4  "main" 10
+                              Source GLSL 460
+                              SourceExtension  "GL_NV_ray_tracing_motion_blur"
+                              Name 4  "main"
+                              Name 8  "time"
+                              Name 10  "gl_CurrentRayTimeNV"
+                              Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Function 6(float)
+               9:             TypePointer Input 6(float)
+10(gl_CurrentRayTimeNV):      9(ptr) Variable Input
+              12:    6(float) Constant 1056964608
+         4(main):           2 Function None 3
+               5:             Label
+         8(time):      7(ptr) Variable Function
+              11:    6(float) Load 10(gl_CurrentRayTimeNV)
+              13:    6(float) FAdd 11 12
+                              Store 8(time) 13
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.ClosestHitShaderMotion.rchit.out b/Test/baseResults/spv.ClosestHitShaderMotion.rchit.out
new file mode 100644
index 0000000..e89abb4
--- /dev/null
+++ b/Test/baseResults/spv.ClosestHitShaderMotion.rchit.out
@@ -0,0 +1,59 @@
+spv.ClosestHitShaderMotion.rchit
+// Module Version 10400
+// Generated by (magic number): 8000a
+// Id's are bound by 33
+
+                              Capability RayTracingKHR
+                              Capability RayTracingMotionBlurNV
+                              Extension  "SPV_KHR_ray_tracing"
+                              Extension  "SPV_NV_ray_tracing_motion_blur"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint ClosestHitKHR 4  "main" 10 16 32
+                              Source GLSL 460
+                              SourceExtension  "GL_EXT_ray_tracing"
+                              SourceExtension  "GL_NV_ray_tracing_motion_blur"
+                              Name 4  "main"
+                              Name 8  "time"
+                              Name 10  "gl_CurrentRayTimeNV"
+                              Name 16  "accEXT"
+                              Name 32  "incomingPayloadEXT"
+                              Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV
+                              Decorate 16(accEXT) DescriptorSet 0
+                              Decorate 16(accEXT) Binding 0
+                              Decorate 32(incomingPayloadEXT) Location 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Function 6(float)
+               9:             TypePointer Input 6(float)
+10(gl_CurrentRayTimeNV):      9(ptr) Variable Input
+              12:    6(float) Constant 1056964608
+              14:             TypeAccelerationStructureKHR
+              15:             TypePointer UniformConstant 14
+      16(accEXT):     15(ptr) Variable UniformConstant
+              18:             TypeInt 32 0
+              19:     18(int) Constant 0
+              20:     18(int) Constant 1
+              21:     18(int) Constant 2
+              22:     18(int) Constant 3
+              23:             TypeVector 6(float) 3
+              24:   23(fvec3) ConstantComposite 12 12 12
+              25:    6(float) Constant 1065353216
+              26:   23(fvec3) ConstantComposite 25 25 25
+              27:    6(float) Constant 1061158912
+              28:             TypeInt 32 1
+              29:     28(int) Constant 0
+              30:             TypeVector 6(float) 4
+              31:             TypePointer IncomingRayPayloadKHR 30(fvec4)
+32(incomingPayloadEXT):     31(ptr) Variable IncomingRayPayloadKHR
+         4(main):           2 Function None 3
+               5:             Label
+         8(time):      7(ptr) Variable Function
+              11:    6(float) Load 10(gl_CurrentRayTimeNV)
+              13:    6(float) FAdd 11 12
+                              Store 8(time) 13
+              17:          14 Load 16(accEXT)
+                              TraceRayMotionNV 17 19 20 21 22 19 24 12 26 27 25 32(incomingPayloadEXT)
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.IntersectShaderMotion.rint.out b/Test/baseResults/spv.IntersectShaderMotion.rint.out
new file mode 100644
index 0000000..f77c9a8
--- /dev/null
+++ b/Test/baseResults/spv.IntersectShaderMotion.rint.out
@@ -0,0 +1,33 @@
+spv.IntersectShaderMotion.rint
+// Module Version 10400
+// Generated by (magic number): 8000a
+// Id's are bound by 14
+
+                              Capability RayTracingKHR
+                              Capability RayTracingMotionBlurNV
+                              Extension  "SPV_KHR_ray_tracing"
+                              Extension  "SPV_NV_ray_tracing_motion_blur"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint IntersectionKHR 4  "main" 10
+                              Source GLSL 460
+                              SourceExtension  "GL_NV_ray_tracing_motion_blur"
+                              Name 4  "main"
+                              Name 8  "time"
+                              Name 10  "gl_CurrentRayTimeNV"
+                              Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Function 6(float)
+               9:             TypePointer Input 6(float)
+10(gl_CurrentRayTimeNV):      9(ptr) Variable Input
+              12:    6(float) Constant 1056964608
+         4(main):           2 Function None 3
+               5:             Label
+         8(time):      7(ptr) Variable Function
+              11:    6(float) Load 10(gl_CurrentRayTimeNV)
+              13:    6(float) FAdd 11 12
+                              Store 8(time) 13
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.MissShaderMotion.rmiss.out b/Test/baseResults/spv.MissShaderMotion.rmiss.out
new file mode 100644
index 0000000..2f18338
--- /dev/null
+++ b/Test/baseResults/spv.MissShaderMotion.rmiss.out
@@ -0,0 +1,59 @@
+spv.MissShaderMotion.rmiss
+// Module Version 10400
+// Generated by (magic number): 8000a
+// Id's are bound by 33
+
+                              Capability RayTracingKHR
+                              Capability RayTracingMotionBlurNV
+                              Extension  "SPV_KHR_ray_tracing"
+                              Extension  "SPV_NV_ray_tracing_motion_blur"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint MissKHR 4  "main" 10 16 32
+                              Source GLSL 460
+                              SourceExtension  "GL_EXT_ray_tracing"
+                              SourceExtension  "GL_NV_ray_tracing_motion_blur"
+                              Name 4  "main"
+                              Name 8  "time"
+                              Name 10  "gl_CurrentRayTimeNV"
+                              Name 16  "accEXT"
+                              Name 32  "localPayloadEXT"
+                              Decorate 10(gl_CurrentRayTimeNV) BuiltIn CurrentRayTimeNV
+                              Decorate 16(accEXT) DescriptorSet 0
+                              Decorate 16(accEXT) Binding 0
+                              Decorate 32(localPayloadEXT) Location 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Function 6(float)
+               9:             TypePointer Input 6(float)
+10(gl_CurrentRayTimeNV):      9(ptr) Variable Input
+              12:    6(float) Constant 1056964608
+              14:             TypeAccelerationStructureKHR
+              15:             TypePointer UniformConstant 14
+      16(accEXT):     15(ptr) Variable UniformConstant
+              18:             TypeInt 32 0
+              19:     18(int) Constant 0
+              20:     18(int) Constant 1
+              21:     18(int) Constant 2
+              22:     18(int) Constant 3
+              23:             TypeVector 6(float) 3
+              24:   23(fvec3) ConstantComposite 12 12 12
+              25:    6(float) Constant 1065353216
+              26:   23(fvec3) ConstantComposite 25 25 25
+              27:    6(float) Constant 1061158912
+              28:             TypeInt 32 1
+              29:     28(int) Constant 0
+              30:             TypeVector 6(float) 4
+              31:             TypePointer RayPayloadKHR 30(fvec4)
+32(localPayloadEXT):     31(ptr) Variable RayPayloadKHR
+         4(main):           2 Function None 3
+               5:             Label
+         8(time):      7(ptr) Variable Function
+              11:    6(float) Load 10(gl_CurrentRayTimeNV)
+              13:    6(float) FAdd 11 12
+                              Store 8(time) 13
+              17:          14 Load 16(accEXT)
+                              TraceRayMotionNV 17 19 20 21 22 19 24 12 26 27 25 32(localPayloadEXT)
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.Operations.frag.out b/Test/baseResults/spv.Operations.frag.out
index a856e6e..fc8e241 100644
--- a/Test/baseResults/spv.Operations.frag.out
+++ b/Test/baseResults/spv.Operations.frag.out
@@ -1,12 +1,12 @@
 spv.Operations.frag
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 583
+// Id's are bound by 591
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 11 22 220 296 314 539 580
+                              EntryPoint Fragment 4  "main" 11 22 220 296 314 547 588
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 450
                               Name 4  "main"
@@ -26,13 +26,13 @@
                               Name 324  "lsb"
                               Name 325  "swizzleTemp"
                               Name 326  "ResType"
-                              Name 359  "b"
-                              Name 396  "ub42"
-                              Name 539  "FragColor"
-                              Name 557  "m1"
-                              Name 564  "m2"
-                              Name 580  "uiv4"
-                              Name 582  "ub"
+                              Name 367  "b"
+                              Name 404  "ub42"
+                              Name 547  "FragColor"
+                              Name 565  "m1"
+                              Name 572  "m2"
+                              Name 588  "uiv4"
+                              Name 590  "ub"
                               Decorate 11(uv4) Location 1
                               Decorate 22(ui) Flat
                               Decorate 22(ui) Location 3
@@ -41,9 +41,9 @@
                               Decorate 296(uui) Location 5
                               Decorate 314(uuv4) Flat
                               Decorate 314(uuv4) Location 4
-                              Decorate 539(FragColor) Location 0
-                              Decorate 580(uiv4) Flat
-                              Decorate 580(uiv4) Location 0
+                              Decorate 547(FragColor) Location 0
+                              Decorate 588(uiv4) Flat
+                              Decorate 588(uiv4) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -74,34 +74,34 @@
              320:             TypePointer Function 312(ivec4)
              322:             TypePointer Function 315(ivec3)
     326(ResType):             TypeStruct 315(ivec3) 315(ivec3)
-             338:    141(int) Constant 1
-             342:    141(int) Constant 2
-             358:             TypePointer Function 186(bool)
-       396(ub42):    188(ptr) Variable Private
-             452:     18(int) Constant 2
-             459:     18(int) Constant 1
-             489:             TypeVector 6(float) 3
-             508:    6(float) Constant 1073741824
-             515:    6(float) Constant 1065353216
-             520:     18(int) Constant 66
-             526:     18(int) Constant 17
-             538:             TypePointer Output 7(fvec4)
-  539(FragColor):    538(ptr) Variable Output
-             555:             TypeMatrix 7(fvec4) 4
-             556:             TypePointer Function 555
-             558:    6(float) Constant 0
-             559:    7(fvec4) ConstantComposite 515 558 558 558
-             560:    7(fvec4) ConstantComposite 558 515 558 558
-             561:    7(fvec4) ConstantComposite 558 558 515 558
-             562:    7(fvec4) ConstantComposite 558 558 558 515
-             563:         555 ConstantComposite 559 560 561 562
-             565:    7(fvec4) ConstantComposite 558 558 558 558
-             566:         555 ConstantComposite 565 565 565 565
-             578:             TypeVector 18(int) 4
-             579:             TypePointer Input 578(ivec4)
-       580(uiv4):    579(ptr) Variable Input
-             581:             TypePointer Private 186(bool)
-         582(ub):    581(ptr) Variable Private
+             333:    141(int) Constant 1
+             336:    141(int) Constant 2
+             366:             TypePointer Function 186(bool)
+       404(ub42):    188(ptr) Variable Private
+             460:     18(int) Constant 2
+             467:     18(int) Constant 1
+             497:             TypeVector 6(float) 3
+             516:    6(float) Constant 1073741824
+             523:    6(float) Constant 1065353216
+             528:     18(int) Constant 66
+             534:     18(int) Constant 17
+             546:             TypePointer Output 7(fvec4)
+  547(FragColor):    546(ptr) Variable Output
+             563:             TypeMatrix 7(fvec4) 4
+             564:             TypePointer Function 563
+             566:    6(float) Constant 0
+             567:    7(fvec4) ConstantComposite 523 566 566 566
+             568:    7(fvec4) ConstantComposite 566 523 566 566
+             569:    7(fvec4) ConstantComposite 566 566 523 566
+             570:    7(fvec4) ConstantComposite 566 566 566 523
+             571:         563 ConstantComposite 567 568 569 570
+             573:    7(fvec4) ConstantComposite 566 566 566 566
+             574:         563 ConstantComposite 573 573 573 573
+             586:             TypeVector 18(int) 4
+             587:             TypePointer Input 586(ivec4)
+       588(uiv4):    587(ptr) Variable Input
+             589:             TypePointer Private 186(bool)
+         590(ub):    589(ptr) Variable Private
          4(main):           2 Function None 3
                5:             Label
             9(v):      8(ptr) Variable Function
@@ -113,11 +113,11 @@
 323(swizzleTemp):    322(ptr) Variable Function
         324(lsb):    320(ptr) Variable Function
 325(swizzleTemp):    322(ptr) Variable Function
-          359(b):    358(ptr) Variable Function
-             541:      8(ptr) Variable Function
-         557(m1):    556(ptr) Variable Function
-         564(m2):    556(ptr) Variable Function
-             568:    556(ptr) Variable Function
+          367(b):    366(ptr) Variable Function
+             549:      8(ptr) Variable Function
+         565(m1):    564(ptr) Variable Function
+         572(m2):    564(ptr) Variable Function
+             576:    564(ptr) Variable Function
               12:    7(fvec4) Load 11(uv4)
               13:    7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12
                               Store 9(v) 13
@@ -469,306 +469,318 @@
              329:  315(ivec3) CompositeExtract 327 1
                               Store 323(swizzleTemp) 329
              330:  315(ivec3) Load 323(swizzleTemp)
-             331:  312(ivec4) Load 321(msb)
-             332:  312(ivec4) VectorShuffle 331 330 4 5 6 3
-                              Store 321(msb) 332
-             333:  315(ivec3) Load 325(swizzleTemp)
-             334:  312(ivec4) Load 324(lsb)
-             335:  312(ivec4) VectorShuffle 334 333 4 5 6 3
-                              Store 324(lsb) 335
-             336:    292(ptr) AccessChain 321(msb) 142
-             337:    141(int) Load 336
-             339:    292(ptr) AccessChain 321(msb) 338
-             340:    141(int) Load 339
-             341:    141(int) IAdd 337 340
-             343:    292(ptr) AccessChain 321(msb) 342
-             344:    141(int) Load 343
-             345:    141(int) IAdd 341 344
-             346:    141(int) Load 293(u)
-             347:    141(int) IAdd 346 345
-                              Store 293(u) 347
-             348:    292(ptr) AccessChain 324(lsb) 142
+             331:    292(ptr) AccessChain 321(msb) 142
+             332:    141(int) CompositeExtract 330 0
+                              Store 331 332
+             334:    292(ptr) AccessChain 321(msb) 333
+             335:    141(int) CompositeExtract 330 1
+                              Store 334 335
+             337:    292(ptr) AccessChain 321(msb) 336
+             338:    141(int) CompositeExtract 330 2
+                              Store 337 338
+             339:  315(ivec3) Load 325(swizzleTemp)
+             340:    292(ptr) AccessChain 324(lsb) 142
+             341:    141(int) CompositeExtract 339 0
+                              Store 340 341
+             342:    292(ptr) AccessChain 324(lsb) 333
+             343:    141(int) CompositeExtract 339 1
+                              Store 342 343
+             344:    292(ptr) AccessChain 324(lsb) 336
+             345:    141(int) CompositeExtract 339 2
+                              Store 344 345
+             346:    292(ptr) AccessChain 321(msb) 142
+             347:    141(int) Load 346
+             348:    292(ptr) AccessChain 321(msb) 333
              349:    141(int) Load 348
-             350:    292(ptr) AccessChain 324(lsb) 338
-             351:    141(int) Load 350
-             352:    141(int) IAdd 349 351
-             353:    292(ptr) AccessChain 324(lsb) 342
-             354:    141(int) Load 353
-             355:    141(int) IAdd 352 354
-             356:    141(int) Load 293(u)
-             357:    141(int) IAdd 356 355
-                              Store 293(u) 357
-             360:    6(float) Load 220(uf)
-             361:   186(bool) IsNan 360
-                              Store 359(b) 361
-             362:    6(float) Load 196(f)
-             363:   186(bool) IsInf 362
-                              Store 359(b) 363
-             364:    7(fvec4) Load 9(v)
-             365:    7(fvec4) Load 11(uv4)
-             366:  187(bvec4) FOrdLessThan 364 365
-             367:   186(bool) Any 366
-                              Store 359(b) 367
-             368:   186(bool) Load 359(b)
-                              SelectionMerge 370 None
-                              BranchConditional 368 369 370
-             369:               Label
-             371:    7(fvec4)   Load 9(v)
-             372:    7(fvec4)   Load 11(uv4)
-             373:  187(bvec4)   FOrdLessThanEqual 371 372
-             374:   186(bool)   Any 373
-                                Branch 370
-             370:             Label
-             375:   186(bool) Phi 368 5 374 369
-                              Store 359(b) 375
-             376:   186(bool) Load 359(b)
+             350:    141(int) IAdd 347 349
+             351:    292(ptr) AccessChain 321(msb) 336
+             352:    141(int) Load 351
+             353:    141(int) IAdd 350 352
+             354:    141(int) Load 293(u)
+             355:    141(int) IAdd 354 353
+                              Store 293(u) 355
+             356:    292(ptr) AccessChain 324(lsb) 142
+             357:    141(int) Load 356
+             358:    292(ptr) AccessChain 324(lsb) 333
+             359:    141(int) Load 358
+             360:    141(int) IAdd 357 359
+             361:    292(ptr) AccessChain 324(lsb) 336
+             362:    141(int) Load 361
+             363:    141(int) IAdd 360 362
+             364:    141(int) Load 293(u)
+             365:    141(int) IAdd 364 363
+                              Store 293(u) 365
+             368:    6(float) Load 220(uf)
+             369:   186(bool) IsNan 368
+                              Store 367(b) 369
+             370:    6(float) Load 196(f)
+             371:   186(bool) IsInf 370
+                              Store 367(b) 371
+             372:    7(fvec4) Load 9(v)
+             373:    7(fvec4) Load 11(uv4)
+             374:  187(bvec4) FOrdLessThan 372 373
+             375:   186(bool) Any 374
+                              Store 367(b) 375
+             376:   186(bool) Load 367(b)
                               SelectionMerge 378 None
                               BranchConditional 376 377 378
              377:               Label
              379:    7(fvec4)   Load 9(v)
              380:    7(fvec4)   Load 11(uv4)
-             381:  187(bvec4)   FOrdGreaterThan 379 380
+             381:  187(bvec4)   FOrdLessThanEqual 379 380
              382:   186(bool)   Any 381
                                 Branch 378
              378:             Label
-             383:   186(bool) Phi 376 370 382 377
-                              Store 359(b) 383
-             384:   186(bool) Load 359(b)
+             383:   186(bool) Phi 376 5 382 377
+                              Store 367(b) 383
+             384:   186(bool) Load 367(b)
                               SelectionMerge 386 None
                               BranchConditional 384 385 386
              385:               Label
              387:    7(fvec4)   Load 9(v)
              388:    7(fvec4)   Load 11(uv4)
-             389:  187(bvec4)   FOrdGreaterThanEqual 387 388
+             389:  187(bvec4)   FOrdGreaterThan 387 388
              390:   186(bool)   Any 389
                                 Branch 386
              386:             Label
              391:   186(bool) Phi 384 378 390 385
-                              Store 359(b) 391
-             392:   186(bool) Load 359(b)
+                              Store 367(b) 391
+             392:   186(bool) Load 367(b)
                               SelectionMerge 394 None
                               BranchConditional 392 393 394
              393:               Label
-             395:  187(bvec4)   Load 189(ub41)
-             397:  187(bvec4)   Load 396(ub42)
-             398:  187(bvec4)   LogicalEqual 395 397
-             399:   186(bool)   Any 398
+             395:    7(fvec4)   Load 9(v)
+             396:    7(fvec4)   Load 11(uv4)
+             397:  187(bvec4)   FOrdGreaterThanEqual 395 396
+             398:   186(bool)   Any 397
                                 Branch 394
              394:             Label
-             400:   186(bool) Phi 392 386 399 393
-                              Store 359(b) 400
-             401:   186(bool) Load 359(b)
-                              SelectionMerge 403 None
-                              BranchConditional 401 402 403
-             402:               Label
-             404:  187(bvec4)   Load 189(ub41)
-             405:  187(bvec4)   Load 396(ub42)
-             406:  187(bvec4)   LogicalNotEqual 404 405
+             399:   186(bool) Phi 392 386 398 393
+                              Store 367(b) 399
+             400:   186(bool) Load 367(b)
+                              SelectionMerge 402 None
+                              BranchConditional 400 401 402
+             401:               Label
+             403:  187(bvec4)   Load 189(ub41)
+             405:  187(bvec4)   Load 404(ub42)
+             406:  187(bvec4)   LogicalEqual 403 405
              407:   186(bool)   Any 406
-                                Branch 403
-             403:             Label
-             408:   186(bool) Phi 401 394 407 402
-                              Store 359(b) 408
-             409:   186(bool) Load 359(b)
-             410:  187(bvec4) Load 189(ub41)
-             411:   186(bool) Any 410
-             412:   186(bool) LogicalAnd 409 411
-                              Store 359(b) 412
-             413:   186(bool) Load 359(b)
-             414:  187(bvec4) Load 189(ub41)
-             415:   186(bool) All 414
-             416:   186(bool) LogicalAnd 413 415
-                              Store 359(b) 416
-             417:   186(bool) Load 359(b)
-                              SelectionMerge 419 None
-                              BranchConditional 417 418 419
-             418:               Label
-             420:  187(bvec4)   Load 189(ub41)
-             421:  187(bvec4)   LogicalNot 420
-             422:   186(bool)   Any 421
-                                Branch 419
-             419:             Label
-             423:   186(bool) Phi 417 403 422 418
-                              Store 359(b) 423
-             424:     18(int) Load 20(i)
-             425:     18(int) Load 22(ui)
-             426:     18(int) IAdd 424 425
-             427:     18(int) Load 20(i)
-             428:     18(int) IMul 426 427
-             429:     18(int) Load 22(ui)
-             430:     18(int) ISub 428 429
-             431:     18(int) Load 20(i)
-             432:     18(int) SDiv 430 431
-                              Store 20(i) 432
-             433:     18(int) Load 20(i)
-             434:     18(int) Load 22(ui)
-             435:     18(int) SMod 433 434
-                              Store 20(i) 435
-             436:     18(int) Load 20(i)
+                                Branch 402
+             402:             Label
+             408:   186(bool) Phi 400 394 407 401
+                              Store 367(b) 408
+             409:   186(bool) Load 367(b)
+                              SelectionMerge 411 None
+                              BranchConditional 409 410 411
+             410:               Label
+             412:  187(bvec4)   Load 189(ub41)
+             413:  187(bvec4)   Load 404(ub42)
+             414:  187(bvec4)   LogicalNotEqual 412 413
+             415:   186(bool)   Any 414
+                                Branch 411
+             411:             Label
+             416:   186(bool) Phi 409 402 415 410
+                              Store 367(b) 416
+             417:   186(bool) Load 367(b)
+             418:  187(bvec4) Load 189(ub41)
+             419:   186(bool) Any 418
+             420:   186(bool) LogicalAnd 417 419
+                              Store 367(b) 420
+             421:   186(bool) Load 367(b)
+             422:  187(bvec4) Load 189(ub41)
+             423:   186(bool) All 422
+             424:   186(bool) LogicalAnd 421 423
+                              Store 367(b) 424
+             425:   186(bool) Load 367(b)
+                              SelectionMerge 427 None
+                              BranchConditional 425 426 427
+             426:               Label
+             428:  187(bvec4)   Load 189(ub41)
+             429:  187(bvec4)   LogicalNot 428
+             430:   186(bool)   Any 429
+                                Branch 427
+             427:             Label
+             431:   186(bool) Phi 425 411 430 426
+                              Store 367(b) 431
+             432:     18(int) Load 20(i)
+             433:     18(int) Load 22(ui)
+             434:     18(int) IAdd 432 433
+             435:     18(int) Load 20(i)
+             436:     18(int) IMul 434 435
              437:     18(int) Load 22(ui)
-             438:   186(bool) IEqual 436 437
-             439:   186(bool) LogicalNot 438
-                              SelectionMerge 441 None
-                              BranchConditional 439 440 441
-             440:               Label
-             442:     18(int)   Load 20(i)
-             443:     18(int)   Load 22(ui)
-             444:   186(bool)   INotEqual 442 443
-                                SelectionMerge 446 None
-                                BranchConditional 444 445 446
-             445:                 Label
-             447:     18(int)     Load 20(i)
-             448:     18(int)     Load 22(ui)
-             449:   186(bool)     IEqual 447 448
-                                  Branch 446
-             446:               Label
-             450:   186(bool)   Phi 444 440 449 445
-             451:     18(int)   Load 20(i)
-             453:   186(bool)   INotEqual 451 452
-             454:   186(bool)   LogicalNotEqual 450 453
-                                Branch 441
-             441:             Label
-             455:   186(bool) Phi 438 419 454 446
-                              SelectionMerge 457 None
-                              BranchConditional 455 456 457
-             456:               Label
-             458:     18(int)   Load 20(i)
-             460:     18(int)   IAdd 458 459
-                                Store 20(i) 460
-                                Branch 457
-             457:             Label
-             461:    6(float) Load 220(uf)
-             462:    6(float) Load 220(uf)
-             463:    6(float) FAdd 461 462
-             464:    6(float) Load 220(uf)
-             465:    6(float) FMul 463 464
-             466:    6(float) Load 220(uf)
-             467:    6(float) FSub 465 466
-             468:    6(float) Load 220(uf)
-             469:    6(float) FDiv 467 468
-                              Store 196(f) 469
-             470:    7(fvec4) Load 9(v)
-             471:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 470
-             472:    6(float) Load 196(f)
-             473:    6(float) FAdd 472 471
-                              Store 196(f) 473
-             474:    7(fvec4) Load 9(v)
-             475:    7(fvec4) Load 9(v)
-             476:    6(float) ExtInst 1(GLSL.std.450) 67(Distance) 474 475
-             477:    6(float) Load 196(f)
-             478:    6(float) FAdd 477 476
-                              Store 196(f) 478
-             479:    7(fvec4) Load 9(v)
-             480:    7(fvec4) Load 9(v)
-             481:    6(float) Dot 479 480
-             482:    6(float) Load 196(f)
-             483:    6(float) FAdd 482 481
-                              Store 196(f) 483
-             484:    6(float) Load 196(f)
-             485:    6(float) Load 220(uf)
-             486:    6(float) FMul 484 485
-             487:    6(float) Load 196(f)
-             488:    6(float) FAdd 487 486
-                              Store 196(f) 488
-             490:    7(fvec4) Load 9(v)
-             491:  489(fvec3) VectorShuffle 490 490 0 1 2
-             492:    7(fvec4) Load 9(v)
-             493:  489(fvec3) VectorShuffle 492 492 0 1 2
-             494:  489(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 491 493
-             495:    6(float) CompositeExtract 494 0
-             496:    6(float) Load 196(f)
-             497:    6(float) FAdd 496 495
-                              Store 196(f) 497
-             498:    6(float) Load 196(f)
-             499:    6(float) Load 220(uf)
-             500:   186(bool) FOrdEqual 498 499
-             501:   186(bool) LogicalNot 500
-                              SelectionMerge 503 None
-                              BranchConditional 501 502 503
-             502:               Label
-             504:    6(float)   Load 196(f)
-             505:    6(float)   Load 220(uf)
-             506:   186(bool)   FUnordNotEqual 504 505
-             507:    6(float)   Load 196(f)
-             509:   186(bool)   FUnordNotEqual 507 508
-             510:   186(bool)   LogicalAnd 506 509
-                                Branch 503
-             503:             Label
-             511:   186(bool) Phi 500 457 510 502
-                              SelectionMerge 513 None
-                              BranchConditional 511 512 513
-             512:               Label
-             514:    6(float)   Load 196(f)
-             516:    6(float)   FAdd 514 515
-                                Store 196(f) 516
-                                Branch 513
-             513:             Label
-             517:     18(int) Load 22(ui)
-             518:     18(int) Load 20(i)
-             519:     18(int) BitwiseAnd 518 517
-                              Store 20(i) 519
-             521:     18(int) Load 20(i)
-             522:     18(int) BitwiseOr 521 520
-                              Store 20(i) 522
-             523:     18(int) Load 22(ui)
-             524:     18(int) Load 20(i)
-             525:     18(int) BitwiseXor 524 523
-                              Store 20(i) 525
-             527:     18(int) Load 20(i)
-             528:     18(int) SMod 527 526
-                              Store 20(i) 528
+             438:     18(int) ISub 436 437
+             439:     18(int) Load 20(i)
+             440:     18(int) SDiv 438 439
+                              Store 20(i) 440
+             441:     18(int) Load 20(i)
+             442:     18(int) Load 22(ui)
+             443:     18(int) SMod 441 442
+                              Store 20(i) 443
+             444:     18(int) Load 20(i)
+             445:     18(int) Load 22(ui)
+             446:   186(bool) IEqual 444 445
+             447:   186(bool) LogicalNot 446
+                              SelectionMerge 449 None
+                              BranchConditional 447 448 449
+             448:               Label
+             450:     18(int)   Load 20(i)
+             451:     18(int)   Load 22(ui)
+             452:   186(bool)   INotEqual 450 451
+                                SelectionMerge 454 None
+                                BranchConditional 452 453 454
+             453:                 Label
+             455:     18(int)     Load 20(i)
+             456:     18(int)     Load 22(ui)
+             457:   186(bool)     IEqual 455 456
+                                  Branch 454
+             454:               Label
+             458:   186(bool)   Phi 452 448 457 453
+             459:     18(int)   Load 20(i)
+             461:   186(bool)   INotEqual 459 460
+             462:   186(bool)   LogicalNotEqual 458 461
+                                Branch 449
+             449:             Label
+             463:   186(bool) Phi 446 427 462 454
+                              SelectionMerge 465 None
+                              BranchConditional 463 464 465
+             464:               Label
+             466:     18(int)   Load 20(i)
+             468:     18(int)   IAdd 466 467
+                                Store 20(i) 468
+                                Branch 465
+             465:             Label
+             469:    6(float) Load 220(uf)
+             470:    6(float) Load 220(uf)
+             471:    6(float) FAdd 469 470
+             472:    6(float) Load 220(uf)
+             473:    6(float) FMul 471 472
+             474:    6(float) Load 220(uf)
+             475:    6(float) FSub 473 474
+             476:    6(float) Load 220(uf)
+             477:    6(float) FDiv 475 476
+                              Store 196(f) 477
+             478:    7(fvec4) Load 9(v)
+             479:    6(float) ExtInst 1(GLSL.std.450) 66(Length) 478
+             480:    6(float) Load 196(f)
+             481:    6(float) FAdd 480 479
+                              Store 196(f) 481
+             482:    7(fvec4) Load 9(v)
+             483:    7(fvec4) Load 9(v)
+             484:    6(float) ExtInst 1(GLSL.std.450) 67(Distance) 482 483
+             485:    6(float) Load 196(f)
+             486:    6(float) FAdd 485 484
+                              Store 196(f) 486
+             487:    7(fvec4) Load 9(v)
+             488:    7(fvec4) Load 9(v)
+             489:    6(float) Dot 487 488
+             490:    6(float) Load 196(f)
+             491:    6(float) FAdd 490 489
+                              Store 196(f) 491
+             492:    6(float) Load 196(f)
+             493:    6(float) Load 220(uf)
+             494:    6(float) FMul 492 493
+             495:    6(float) Load 196(f)
+             496:    6(float) FAdd 495 494
+                              Store 196(f) 496
+             498:    7(fvec4) Load 9(v)
+             499:  497(fvec3) VectorShuffle 498 498 0 1 2
+             500:    7(fvec4) Load 9(v)
+             501:  497(fvec3) VectorShuffle 500 500 0 1 2
+             502:  497(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 499 501
+             503:    6(float) CompositeExtract 502 0
+             504:    6(float) Load 196(f)
+             505:    6(float) FAdd 504 503
+                              Store 196(f) 505
+             506:    6(float) Load 196(f)
+             507:    6(float) Load 220(uf)
+             508:   186(bool) FOrdEqual 506 507
+             509:   186(bool) LogicalNot 508
+                              SelectionMerge 511 None
+                              BranchConditional 509 510 511
+             510:               Label
+             512:    6(float)   Load 196(f)
+             513:    6(float)   Load 220(uf)
+             514:   186(bool)   FUnordNotEqual 512 513
+             515:    6(float)   Load 196(f)
+             517:   186(bool)   FUnordNotEqual 515 516
+             518:   186(bool)   LogicalAnd 514 517
+                                Branch 511
+             511:             Label
+             519:   186(bool) Phi 508 465 518 510
+                              SelectionMerge 521 None
+                              BranchConditional 519 520 521
+             520:               Label
+             522:    6(float)   Load 196(f)
+             524:    6(float)   FAdd 522 523
+                                Store 196(f) 524
+                                Branch 521
+             521:             Label
+             525:     18(int) Load 22(ui)
+             526:     18(int) Load 20(i)
+             527:     18(int) BitwiseAnd 526 525
+                              Store 20(i) 527
              529:     18(int) Load 20(i)
-             530:     18(int) ShiftRightArithmetic 529 452
+             530:     18(int) BitwiseOr 529 528
                               Store 20(i) 530
              531:     18(int) Load 22(ui)
              532:     18(int) Load 20(i)
-             533:     18(int) ShiftLeftLogical 532 531
+             533:     18(int) BitwiseXor 532 531
                               Store 20(i) 533
-             534:     18(int) Load 20(i)
-             535:     18(int) Not 534
-                              Store 20(i) 535
-             536:   186(bool) Load 359(b)
-             537:   186(bool) LogicalNot 536
-                              Store 359(b) 537
-             540:   186(bool) Load 359(b)
-                              SelectionMerge 543 None
-                              BranchConditional 540 542 552
-             542:               Label
-             544:     18(int)   Load 20(i)
-             545:    6(float)   ConvertSToF 544
-             546:    7(fvec4)   CompositeConstruct 545 545 545 545
-             547:    6(float)   Load 196(f)
-             548:    7(fvec4)   CompositeConstruct 547 547 547 547
-             549:    7(fvec4)   FAdd 546 548
-             550:    7(fvec4)   Load 9(v)
-             551:    7(fvec4)   FAdd 549 550
-                                Store 541 551
-                                Branch 543
-             552:               Label
-             553:    7(fvec4)   Load 9(v)
-                                Store 541 553
-                                Branch 543
-             543:             Label
-             554:    7(fvec4) Load 541
-                              Store 539(FragColor) 554
-                              Store 557(m1) 563
-                              Store 564(m2) 566
-             567:   186(bool) Load 359(b)
-                              SelectionMerge 570 None
-                              BranchConditional 567 569 572
-             569:               Label
-             571:         555   Load 557(m1)
-                                Store 568 571
-                                Branch 570
-             572:               Label
-             573:         555   Load 564(m2)
-                                Store 568 573
-                                Branch 570
-             570:             Label
-             574:      8(ptr) AccessChain 568 459
-             575:    7(fvec4) Load 574
-             576:    7(fvec4) Load 539(FragColor)
-             577:    7(fvec4) FAdd 576 575
-                              Store 539(FragColor) 577
+             535:     18(int) Load 20(i)
+             536:     18(int) SMod 535 534
+                              Store 20(i) 536
+             537:     18(int) Load 20(i)
+             538:     18(int) ShiftRightArithmetic 537 460
+                              Store 20(i) 538
+             539:     18(int) Load 22(ui)
+             540:     18(int) Load 20(i)
+             541:     18(int) ShiftLeftLogical 540 539
+                              Store 20(i) 541
+             542:     18(int) Load 20(i)
+             543:     18(int) Not 542
+                              Store 20(i) 543
+             544:   186(bool) Load 367(b)
+             545:   186(bool) LogicalNot 544
+                              Store 367(b) 545
+             548:   186(bool) Load 367(b)
+                              SelectionMerge 551 None
+                              BranchConditional 548 550 560
+             550:               Label
+             552:     18(int)   Load 20(i)
+             553:    6(float)   ConvertSToF 552
+             554:    7(fvec4)   CompositeConstruct 553 553 553 553
+             555:    6(float)   Load 196(f)
+             556:    7(fvec4)   CompositeConstruct 555 555 555 555
+             557:    7(fvec4)   FAdd 554 556
+             558:    7(fvec4)   Load 9(v)
+             559:    7(fvec4)   FAdd 557 558
+                                Store 549 559
+                                Branch 551
+             560:               Label
+             561:    7(fvec4)   Load 9(v)
+                                Store 549 561
+                                Branch 551
+             551:             Label
+             562:    7(fvec4) Load 549
+                              Store 547(FragColor) 562
+                              Store 565(m1) 571
+                              Store 572(m2) 574
+             575:   186(bool) Load 367(b)
+                              SelectionMerge 578 None
+                              BranchConditional 575 577 580
+             577:               Label
+             579:         563   Load 565(m1)
+                                Store 576 579
+                                Branch 578
+             580:               Label
+             581:         563   Load 572(m2)
+                                Store 576 581
+                                Branch 578
+             578:             Label
+             582:      8(ptr) AccessChain 576 467
+             583:    7(fvec4) Load 582
+             584:    7(fvec4) Load 547(FragColor)
+             585:    7(fvec4) FAdd 584 583
+                              Store 547(FragColor) 585
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.RayGenShaderMotion.rgen.out b/Test/baseResults/spv.RayGenShaderMotion.rgen.out
new file mode 100644
index 0000000..f9b9fa5
--- /dev/null
+++ b/Test/baseResults/spv.RayGenShaderMotion.rgen.out
@@ -0,0 +1,81 @@
+spv.RayGenShaderMotion.rgen
+// Module Version 10400
+// Generated by (magic number): 8000a
+// Id's are bound by 47
+
+                              Capability RayTracingKHR
+                              Capability RayTracingMotionBlurNV
+                              Extension  "SPV_KHR_ray_tracing"
+                              Extension  "SPV_NV_ray_tracing_motion_blur"
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint RayGenerationKHR 4  "main" 11 21 29 46
+                              Source GLSL 460
+                              SourceExtension  "GL_EXT_ray_tracing"
+                              SourceExtension  "GL_NV_ray_tracing_motion_blur"
+                              Name 4  "main"
+                              Name 8  "lx"
+                              Name 11  "gl_LaunchIDEXT"
+                              Name 16  "ly"
+                              Name 20  "sx"
+                              Name 21  "gl_LaunchSizeEXT"
+                              Name 24  "sy"
+                              Name 29  "accEXT"
+                              Name 46  "payloadEXT"
+                              Decorate 11(gl_LaunchIDEXT) BuiltIn LaunchIdKHR
+                              Decorate 21(gl_LaunchSizeEXT) BuiltIn LaunchSizeKHR
+                              Decorate 29(accEXT) DescriptorSet 0
+                              Decorate 29(accEXT) Binding 0
+                              Decorate 46(payloadEXT) Location 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:             TypePointer Function 6(int)
+               9:             TypeVector 6(int) 3
+              10:             TypePointer Input 9(ivec3)
+11(gl_LaunchIDEXT):     10(ptr) Variable Input
+              12:      6(int) Constant 0
+              13:             TypePointer Input 6(int)
+              17:      6(int) Constant 1
+21(gl_LaunchSizeEXT):     10(ptr) Variable Input
+              27:             TypeAccelerationStructureKHR
+              28:             TypePointer UniformConstant 27
+      29(accEXT):     28(ptr) Variable UniformConstant
+              35:             TypeFloat 32
+              36:             TypeVector 35(float) 3
+              37:   35(float) Constant 1056964608
+              38:   36(fvec3) ConstantComposite 37 37 37
+              39:   35(float) Constant 1065353216
+              40:   36(fvec3) ConstantComposite 39 39 39
+              41:   35(float) Constant 1061158912
+              42:             TypeInt 32 1
+              43:     42(int) Constant 0
+              44:             TypeVector 35(float) 4
+              45:             TypePointer RayPayloadKHR 44(fvec4)
+  46(payloadEXT):     45(ptr) Variable RayPayloadKHR
+         4(main):           2 Function None 3
+               5:             Label
+           8(lx):      7(ptr) Variable Function
+          16(ly):      7(ptr) Variable Function
+          20(sx):      7(ptr) Variable Function
+          24(sy):      7(ptr) Variable Function
+              14:     13(ptr) AccessChain 11(gl_LaunchIDEXT) 12
+              15:      6(int) Load 14
+                              Store 8(lx) 15
+              18:     13(ptr) AccessChain 11(gl_LaunchIDEXT) 17
+              19:      6(int) Load 18
+                              Store 16(ly) 19
+              22:     13(ptr) AccessChain 21(gl_LaunchSizeEXT) 12
+              23:      6(int) Load 22
+                              Store 20(sx) 23
+              25:     13(ptr) AccessChain 21(gl_LaunchSizeEXT) 17
+              26:      6(int) Load 25
+                              Store 24(sy) 26
+              30:          27 Load 29(accEXT)
+              31:      6(int) Load 8(lx)
+              32:      6(int) Load 16(ly)
+              33:      6(int) Load 20(sx)
+              34:      6(int) Load 24(sy)
+                              TraceRayMotionNV 30 31 32 33 34 12 38 37 40 41 37 46(payloadEXT)
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.accessChain.frag.out b/Test/baseResults/spv.accessChain.frag.out
index 753688f..379131b 100644
--- a/Test/baseResults/spv.accessChain.frag.out
+++ b/Test/baseResults/spv.accessChain.frag.out
@@ -1,12 +1,12 @@
 spv.accessChain.frag
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 222
+// Id's are bound by 228
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 69 170
+                              EntryPoint Fragment 4  "main" 69 176
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 420
                               Name 4  "main"
@@ -54,24 +54,24 @@
                               Name 64  "i"
                               Name 65  "comp"
                               Name 69  "OutColor"
-                              Name 165  "s"
-                              Name 170  "u"
-                              Name 171  "param"
-                              Name 175  "param"
-                              Name 179  "param"
-                              Name 183  "param"
-                              Name 187  "param"
-                              Name 191  "param"
-                              Name 195  "param"
-                              Name 199  "param"
-                              Name 203  "param"
-                              Name 207  "param"
-                              Name 211  "param"
-                              Name 215  "param"
-                              Name 219  "param"
+                              Name 171  "s"
+                              Name 176  "u"
+                              Name 177  "param"
+                              Name 181  "param"
+                              Name 185  "param"
+                              Name 189  "param"
+                              Name 193  "param"
+                              Name 197  "param"
+                              Name 201  "param"
+                              Name 205  "param"
+                              Name 209  "param"
+                              Name 213  "param"
+                              Name 217  "param"
+                              Name 221  "param"
+                              Name 225  "param"
                               Decorate 69(OutColor) Location 0
-                              Decorate 170(u) Flat
-                              Decorate 170(u) Location 0
+                              Decorate 176(u) Flat
+                              Decorate 176(u) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -87,89 +87,89 @@
               71:             TypeInt 32 0
               72:     71(int) Constant 0
               99:             TypeVector 6(float) 2
-             113:     71(int) Constant 2
-             140:             TypePointer Output 6(float)
-             147:     71(int) Constant 1
-             148:             TypeVector 71(int) 2
-             149:  148(ivec2) ConstantComposite 113 147
-             158:             TypeVector 71(int) 3
-             159:  158(ivec3) ConstantComposite 113 147 72
-             162:    6(float) Constant 0
-             163:    7(fvec3) ConstantComposite 162 162 162
-             164:             TypePointer Function 8(S)
-             169:             TypePointer Input 13(int)
-          170(u):    169(ptr) Variable Input
+             111:             TypePointer Output 6(float)
+             114:     71(int) Constant 1
+             117:     71(int) Constant 2
+             154:             TypeVector 71(int) 2
+             155:  154(ivec2) ConstantComposite 117 114
+             164:             TypeVector 71(int) 3
+             165:  164(ivec3) ConstantComposite 117 114 72
+             168:    6(float) Constant 0
+             169:    7(fvec3) ConstantComposite 168 168 168
+             170:             TypePointer Function 8(S)
+             175:             TypePointer Input 13(int)
+          176(u):    175(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
-          165(s):    164(ptr) Variable Function
-      171(param):     14(ptr) Variable Function
-      175(param):     14(ptr) Variable Function
-      179(param):     14(ptr) Variable Function
-      183(param):     14(ptr) Variable Function
-      187(param):     14(ptr) Variable Function
-      191(param):     14(ptr) Variable Function
-      195(param):     14(ptr) Variable Function
-      199(param):     14(ptr) Variable Function
-      203(param):     14(ptr) Variable Function
-      207(param):     14(ptr) Variable Function
-      211(param):     14(ptr) Variable Function
-      215(param):     14(ptr) Variable Function
-      219(param):     14(ptr) Variable Function
-                              Store 69(OutColor) 163
-             166:        8(S) Load 165(s)
-             167:           2 FunctionCall 11(GetColor1(struct-S-vf31;) 166
-             168:        8(S) Load 165(s)
-             172:     13(int) Load 170(u)
-                              Store 171(param) 172
-             173:           2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 168 171(param)
-             174:        8(S) Load 165(s)
-             176:     13(int) Load 170(u)
-                              Store 175(param) 176
-             177:           2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 174 175(param)
-             178:        8(S) Load 165(s)
-             180:     13(int) Load 170(u)
-                              Store 179(param) 180
-             181:           2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 178 179(param)
-             182:        8(S) Load 165(s)
-             184:     13(int) Load 170(u)
-                              Store 183(param) 184
-             185:           2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 182 183(param)
-             186:        8(S) Load 165(s)
-             188:     13(int) Load 170(u)
-                              Store 187(param) 188
-             189:           2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 186 187(param)
-             190:        8(S) Load 165(s)
-             192:     13(int) Load 170(u)
-                              Store 191(param) 192
-             193:           2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 190 191(param)
-             194:        8(S) Load 165(s)
-             196:     13(int) Load 170(u)
-                              Store 195(param) 196
-             197:           2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 194 195(param)
-             198:        8(S) Load 165(s)
-             200:     13(int) Load 170(u)
-                              Store 199(param) 200
-             201:           2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 198 199(param)
-             202:        8(S) Load 165(s)
-             204:     13(int) Load 170(u)
-                              Store 203(param) 204
-             205:           2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 202 203(param)
-             206:        8(S) Load 165(s)
-             208:     13(int) Load 170(u)
-                              Store 207(param) 208
-             209:           2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 206 207(param)
-             210:        8(S) Load 165(s)
-             212:     13(int) Load 170(u)
-                              Store 211(param) 212
-             213:           2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 210 211(param)
-             214:        8(S) Load 165(s)
-             216:     13(int) Load 170(u)
-                              Store 215(param) 216
-             217:           2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 214 215(param)
-             218:        8(S) Load 165(s)
-             220:     13(int) Load 170(u)
-                              Store 219(param) 220
-             221:           2 FunctionCall 66(GetColor14(struct-S-vf31;i1;) 218 219(param)
+          171(s):    170(ptr) Variable Function
+      177(param):     14(ptr) Variable Function
+      181(param):     14(ptr) Variable Function
+      185(param):     14(ptr) Variable Function
+      189(param):     14(ptr) Variable Function
+      193(param):     14(ptr) Variable Function
+      197(param):     14(ptr) Variable Function
+      201(param):     14(ptr) Variable Function
+      205(param):     14(ptr) Variable Function
+      209(param):     14(ptr) Variable Function
+      213(param):     14(ptr) Variable Function
+      217(param):     14(ptr) Variable Function
+      221(param):     14(ptr) Variable Function
+      225(param):     14(ptr) Variable Function
+                              Store 69(OutColor) 169
+             172:        8(S) Load 171(s)
+             173:           2 FunctionCall 11(GetColor1(struct-S-vf31;) 172
+             174:        8(S) Load 171(s)
+             178:     13(int) Load 176(u)
+                              Store 177(param) 178
+             179:           2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 174 177(param)
+             180:        8(S) Load 171(s)
+             182:     13(int) Load 176(u)
+                              Store 181(param) 182
+             183:           2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 180 181(param)
+             184:        8(S) Load 171(s)
+             186:     13(int) Load 176(u)
+                              Store 185(param) 186
+             187:           2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 184 185(param)
+             188:        8(S) Load 171(s)
+             190:     13(int) Load 176(u)
+                              Store 189(param) 190
+             191:           2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 188 189(param)
+             192:        8(S) Load 171(s)
+             194:     13(int) Load 176(u)
+                              Store 193(param) 194
+             195:           2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 192 193(param)
+             196:        8(S) Load 171(s)
+             198:     13(int) Load 176(u)
+                              Store 197(param) 198
+             199:           2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 196 197(param)
+             200:        8(S) Load 171(s)
+             202:     13(int) Load 176(u)
+                              Store 201(param) 202
+             203:           2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 200 201(param)
+             204:        8(S) Load 171(s)
+             206:     13(int) Load 176(u)
+                              Store 205(param) 206
+             207:           2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 204 205(param)
+             208:        8(S) Load 171(s)
+             210:     13(int) Load 176(u)
+                              Store 209(param) 210
+             211:           2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 208 209(param)
+             212:        8(S) Load 171(s)
+             214:     13(int) Load 176(u)
+                              Store 213(param) 214
+             215:           2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 212 213(param)
+             216:        8(S) Load 171(s)
+             218:     13(int) Load 176(u)
+                              Store 217(param) 218
+             219:           2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 216 217(param)
+             220:        8(S) Load 171(s)
+             222:     13(int) Load 176(u)
+                              Store 221(param) 222
+             223:           2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 220 221(param)
+             224:        8(S) Load 171(s)
+             226:     13(int) Load 176(u)
+                              Store 225(param) 226
+             227:           2 FunctionCall 66(GetColor14(struct-S-vf31;i1;) 224 225(param)
                               Return
                               FunctionEnd
 11(GetColor1(struct-S-vf31;):           2 Function None 9
@@ -254,99 +254,108 @@
              108:    7(fvec3) Load 69(OutColor)
              109:   99(fvec2) VectorShuffle 108 108 0 1
              110:   99(fvec2) FAdd 109 107
-             111:    7(fvec3) Load 69(OutColor)
-             112:    7(fvec3) VectorShuffle 111 110 3 4 2
-                              Store 69(OutColor) 112
+             112:    111(ptr) AccessChain 69(OutColor) 72
+             113:    6(float) CompositeExtract 110 0
+                              Store 112 113
+             115:    111(ptr) AccessChain 69(OutColor) 114
+             116:    6(float) CompositeExtract 110 1
+                              Store 115 116
                               Return
                               FunctionEnd
 42(GetColor8(struct-S-vf31;i1;):           2 Function None 15
            40(i):        8(S) FunctionParameter
         41(comp):     14(ptr) FunctionParameter
               43:             Label
-             114:    6(float) CompositeExtract 40(i) 0 2
-             115:    7(fvec3) Load 69(OutColor)
-             116:    7(fvec3) CompositeConstruct 114 114 114
-             117:    7(fvec3) FAdd 115 116
-                              Store 69(OutColor) 117
+             118:    6(float) CompositeExtract 40(i) 0 2
+             119:    7(fvec3) Load 69(OutColor)
+             120:    7(fvec3) CompositeConstruct 118 118 118
+             121:    7(fvec3) FAdd 119 120
+                              Store 69(OutColor) 121
                               Return
                               FunctionEnd
 46(GetColor9(struct-S-vf31;i1;):           2 Function None 15
            44(i):        8(S) FunctionParameter
         45(comp):     14(ptr) FunctionParameter
               47:             Label
-             118:    7(fvec3) CompositeExtract 44(i) 0
-             119:    7(fvec3) Load 69(OutColor)
-             120:    7(fvec3) VectorShuffle 119 119 2 0 1
-             121:    7(fvec3) FAdd 120 118
-             122:    7(fvec3) Load 69(OutColor)
-             123:    7(fvec3) VectorShuffle 122 121 4 5 3
-                              Store 69(OutColor) 123
+             122:    7(fvec3) CompositeExtract 44(i) 0
+             123:    7(fvec3) Load 69(OutColor)
+             124:    7(fvec3) VectorShuffle 123 123 2 0 1
+             125:    7(fvec3) FAdd 124 122
+             126:    7(fvec3) Load 69(OutColor)
+             127:    7(fvec3) VectorShuffle 126 125 4 5 3
+                              Store 69(OutColor) 127
                               Return
                               FunctionEnd
 50(GetColor10(struct-S-vf31;i1;):           2 Function None 15
            48(i):        8(S) FunctionParameter
         49(comp):     14(ptr) FunctionParameter
               51:             Label
-             124:    7(fvec3) CompositeExtract 48(i) 0
-             125:   99(fvec2) VectorShuffle 124 124 0 1
-             126:    7(fvec3) Load 69(OutColor)
-             127:   99(fvec2) VectorShuffle 126 126 2 1
-             128:   99(fvec2) FAdd 127 125
-             129:    7(fvec3) Load 69(OutColor)
-             130:    7(fvec3) VectorShuffle 129 128 0 4 3
-                              Store 69(OutColor) 130
+             128:    7(fvec3) CompositeExtract 48(i) 0
+             129:   99(fvec2) VectorShuffle 128 128 0 1
+             130:    7(fvec3) Load 69(OutColor)
+             131:   99(fvec2) VectorShuffle 130 130 2 1
+             132:   99(fvec2) FAdd 131 129
+             133:    111(ptr) AccessChain 69(OutColor) 117
+             134:    6(float) CompositeExtract 132 0
+                              Store 133 134
+             135:    111(ptr) AccessChain 69(OutColor) 114
+             136:    6(float) CompositeExtract 132 1
+                              Store 135 136
                               Return
                               FunctionEnd
 54(GetColor11(struct-S-vf31;i1;):           2 Function None 15
            52(i):        8(S) FunctionParameter
         53(comp):     14(ptr) FunctionParameter
               55:             Label
-             131:    7(fvec3) CompositeExtract 52(i) 0
-             132:   99(fvec2) VectorShuffle 131 131 0 1
-             133:    7(fvec3) Load 69(OutColor)
-             134:   99(fvec2) VectorShuffle 133 133 0 2
-             135:   99(fvec2) FAdd 134 132
-             136:    7(fvec3) Load 69(OutColor)
-             137:    7(fvec3) VectorShuffle 136 135 3 1 4
-                              Store 69(OutColor) 137
+             137:    7(fvec3) CompositeExtract 52(i) 0
+             138:   99(fvec2) VectorShuffle 137 137 0 1
+             139:    7(fvec3) Load 69(OutColor)
+             140:   99(fvec2) VectorShuffle 139 139 0 2
+             141:   99(fvec2) FAdd 140 138
+             142:    111(ptr) AccessChain 69(OutColor) 72
+             143:    6(float) CompositeExtract 141 0
+                              Store 142 143
+             144:    111(ptr) AccessChain 69(OutColor) 117
+             145:    6(float) CompositeExtract 141 1
+                              Store 144 145
                               Return
                               FunctionEnd
 58(GetColor12(struct-S-vf31;i1;):           2 Function None 15
            56(i):        8(S) FunctionParameter
         57(comp):     14(ptr) FunctionParameter
               59:             Label
-             138:     13(int) Load 57(comp)
-             139:    6(float) CompositeExtract 56(i) 0 0
-             141:    140(ptr) AccessChain 69(OutColor) 138
-             142:    6(float) Load 141
-             143:    6(float) FAdd 142 139
-             144:    140(ptr) AccessChain 69(OutColor) 138
-                              Store 144 143
+             146:     13(int) Load 57(comp)
+             147:    6(float) CompositeExtract 56(i) 0 0
+             148:    111(ptr) AccessChain 69(OutColor) 146
+             149:    6(float) Load 148
+             150:    6(float) FAdd 149 147
+             151:    111(ptr) AccessChain 69(OutColor) 146
+                              Store 151 150
                               Return
                               FunctionEnd
 62(GetColor13(struct-S-vf31;i1;):           2 Function None 15
            60(i):        8(S) FunctionParameter
         61(comp):     14(ptr) FunctionParameter
               63:             Label
-             145:     13(int) Load 61(comp)
-             146:    6(float) CompositeExtract 60(i) 0 0
-             150:     71(int) VectorExtractDynamic 149 145
-             151:    140(ptr) AccessChain 69(OutColor) 150
-             152:    6(float) Load 151
-             153:    6(float) FAdd 152 146
-             154:     71(int) VectorExtractDynamic 149 145
-             155:    140(ptr) AccessChain 69(OutColor) 154
-                              Store 155 153
+             152:     13(int) Load 61(comp)
+             153:    6(float) CompositeExtract 60(i) 0 0
+             156:     71(int) VectorExtractDynamic 155 152
+             157:    111(ptr) AccessChain 69(OutColor) 156
+             158:    6(float) Load 157
+             159:    6(float) FAdd 158 153
+             160:     71(int) VectorExtractDynamic 155 152
+             161:    111(ptr) AccessChain 69(OutColor) 160
+                              Store 161 159
                               Return
                               FunctionEnd
 66(GetColor14(struct-S-vf31;i1;):           2 Function None 15
            64(i):        8(S) FunctionParameter
         65(comp):     14(ptr) FunctionParameter
               67:             Label
-             156:     13(int) Load 65(comp)
-             157:    6(float) CompositeExtract 64(i) 0 0
-             160:     71(int) VectorExtractDynamic 159 156
-             161:    140(ptr) AccessChain 69(OutColor) 160
-                              Store 161 157
+             162:     13(int) Load 65(comp)
+             163:    6(float) CompositeExtract 64(i) 0 0
+             166:     71(int) VectorExtractDynamic 165 162
+             167:    111(ptr) AccessChain 69(OutColor) 166
+                              Store 167 163
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.atomicAdd.bufferReference.comp.out b/Test/baseResults/spv.atomicAdd.bufferReference.comp.out
new file mode 100644
index 0000000..9ecc742
--- /dev/null
+++ b/Test/baseResults/spv.atomicAdd.bufferReference.comp.out
@@ -0,0 +1,304 @@
+spv.atomicAdd.bufferReference.comp
+// Module Version 10000
+// Generated by (magic number): 8000a
+// Id's are bound by 188
+
+                              Capability Shader
+                              Capability VulkanMemoryModelKHR
+                              Capability VulkanMemoryModelDeviceScopeKHR
+                              Capability PhysicalStorageBufferAddressesEXT
+                              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" 37 81 133
+                              ExecutionMode 4 LocalSize 1 1 1
+                              Source GLSL 450
+                              SourceExtension  "GL_ARB_gpu_shader_int64"
+                              SourceExtension  "GL_EXT_buffer_reference"
+                              SourceExtension  "GL_KHR_memory_scope_semantics"
+                              SourceExtension  "GL_KHR_shader_subgroup_ballot"
+                              SourceExtension  "GL_KHR_shader_subgroup_basic"
+                              SourceExtension  "GL_KHR_shader_subgroup_shuffle"
+                              Name 4  "main"
+                              Name 8  "pass"
+                              Name 10  "skip"
+                              Name 13  "sharedSkip"
+                              Name 18  "PayloadRef"
+                              MemberName 18(PayloadRef) 0  "x"
+                              Name 20  "payload"
+                              Name 22  "PC"
+                              MemberName 22(PC) 0  "payloadref"
+                              MemberName 22(PC) 1  "guard"
+                              Name 24  "GuardRef"
+                              MemberName 24(GuardRef) 0  "x"
+                              Name 26  ""
+                              Name 34  "globalId"
+                              Name 37  "gl_GlobalInvocationID"
+                              Name 42  "partnerGlobalId"
+                              Name 43  "DIM"
+                              Name 44  "NUM_WORKGROUP_EACH_DIM"
+                              Name 54  "bufferCoord"
+                              Name 66  "partnerBufferCoord"
+                              Name 75  "imageCoord"
+                              Name 77  "partnerImageCoord"
+                              Name 79  "globalId00"
+                              Name 81  "gl_WorkGroupID"
+                              Name 86  "partnerGlobalId00"
+                              Name 95  "bufferCoord00"
+                              Name 104  "partnerBufferCoord00"
+                              Name 113  "imageCoord00"
+                              Name 115  "partnerImageCoord00"
+                              Name 133  "gl_LocalInvocationID"
+                              Name 163  "r"
+                              Name 179  "Fail"
+                              MemberName 179(Fail) 0  "x"
+                              Name 181  "fail"
+                              Decorate 17 ArrayStride 4
+                              MemberDecorate 18(PayloadRef) 0 Offset 0
+                              Decorate 18(PayloadRef) Block
+                              Decorate 20(payload) DecorationAliasedPointerEXT
+                              MemberDecorate 22(PC) 0 Offset 0
+                              MemberDecorate 22(PC) 1 Offset 8
+                              Decorate 22(PC) Block
+                              Decorate 23 ArrayStride 4
+                              MemberDecorate 24(GuardRef) 0 Offset 0
+                              Decorate 24(GuardRef) Block
+                              Decorate 37(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
+                              Decorate 43(DIM) SpecId 0
+                              Decorate 44(NUM_WORKGROUP_EACH_DIM) SpecId 1
+                              Decorate 81(gl_WorkGroupID) BuiltIn WorkgroupId
+                              Decorate 133(gl_LocalInvocationID) BuiltIn LocalInvocationId
+                              Decorate 178 ArrayStride 4
+                              MemberDecorate 179(Fail) 0 Offset 0
+                              Decorate 179(Fail) Block
+                              Decorate 181(fail) DescriptorSet 0
+                              Decorate 181(fail) Binding 2
+                              Decorate 185 SpecId 0
+                              Decorate 186 SpecId 0
+                              Decorate 187 BuiltIn WorkgroupSize
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeBool
+               7:             TypePointer Function 6(bool)
+               9:     6(bool) ConstantTrue
+              11:     6(bool) ConstantFalse
+              12:             TypePointer Workgroup 6(bool)
+  13(sharedSkip):     12(ptr) Variable Workgroup
+              14:             TypeInt 32 0
+              15:     14(int) Constant 2
+                              TypeForwardPointer 16 PhysicalStorageBufferEXT
+              17:             TypeRuntimeArray 14(int)
+  18(PayloadRef):             TypeStruct 17
+              16:             TypePointer PhysicalStorageBufferEXT 18(PayloadRef)
+              19:             TypePointer Function 16(ptr)
+                              TypeForwardPointer 21 PhysicalStorageBufferEXT
+          22(PC):             TypeStruct 16(ptr) 21
+              23:             TypeRuntimeArray 14(int)
+    24(GuardRef):             TypeStruct 23
+              21:             TypePointer PhysicalStorageBufferEXT 24(GuardRef)
+              25:             TypePointer PushConstant 22(PC)
+              26:     25(ptr) Variable PushConstant
+              27:             TypeInt 32 1
+              28:     27(int) Constant 0
+              29:             TypePointer PushConstant 16(ptr)
+              32:             TypeVector 27(int) 2
+              33:             TypePointer Function 32(ivec2)
+              35:             TypeVector 14(int) 3
+              36:             TypePointer Input 35(ivec3)
+37(gl_GlobalInvocationID):     36(ptr) Variable Input
+              38:             TypeVector 14(int) 2
+         43(DIM):     27(int) SpecConstant 1
+44(NUM_WORKGROUP_EACH_DIM):     27(int) SpecConstant 1
+              45:     27(int) SpecConstantOp 132 43(DIM) 44(NUM_WORKGROUP_EACH_DIM)
+              46:     27(int) Constant 1
+              47:     27(int) SpecConstantOp 130 45 46
+              48:   32(ivec2) SpecConstantComposite 47 47
+              53:             TypePointer Function 14(int)
+              55:     14(int) Constant 1
+              56:             TypePointer Function 27(int)
+              61:     14(int) Constant 0
+              80:   32(ivec2) SpecConstantComposite 43(DIM) 43(DIM)
+81(gl_WorkGroupID):     36(ptr) Variable Input
+              87:   32(ivec2) SpecConstantComposite 43(DIM) 43(DIM)
+              88:     27(int) SpecConstantOp 130 44(NUM_WORKGROUP_EACH_DIM) 46
+              89:   32(ivec2) SpecConstantComposite 88 88
+             122:             TypePointer PhysicalStorageBufferEXT 14(int)
+             125:     27(int) Constant 31
+             129:     27(int) Constant 2
+             130:     27(int) Constant 320
+             131:     27(int) Constant 8200
+             132:     14(int) Constant 8520
+133(gl_LocalInvocationID):     36(ptr) Variable Input
+             136:   38(ivec2) ConstantComposite 61 61
+             137:             TypeVector 6(bool) 2
+             142:             TypePointer PushConstant 21(ptr)
+             147:     27(int) Constant 64
+             148:     27(int) Constant 8196
+             149:     14(int) Constant 5
+             150:     14(int) Constant 8260
+             155:     27(int) Constant 16386
+             156:     14(int) Constant 16450
+             160:     27(int) Constant 16392
+             161:     14(int) Constant 16712
+             178:             TypeRuntimeArray 14(int)
+       179(Fail):             TypeStruct 178
+             180:             TypePointer StorageBuffer 179(Fail)
+       181(fail):    180(ptr) Variable StorageBuffer
+             183:             TypePointer StorageBuffer 14(int)
+             185:     14(int) SpecConstant 1
+             186:     14(int) SpecConstant 1
+             187:   35(ivec3) SpecConstantComposite 185 186 55
+         4(main):           2 Function None 3
+               5:             Label
+         8(pass):      7(ptr) Variable Function
+        10(skip):      7(ptr) Variable Function
+     20(payload):     19(ptr) Variable Function
+    34(globalId):     33(ptr) Variable Function
+42(partnerGlobalId):     33(ptr) Variable Function
+ 54(bufferCoord):     53(ptr) Variable Function
+66(partnerBufferCoord):     53(ptr) Variable Function
+  75(imageCoord):     33(ptr) Variable Function
+77(partnerImageCoord):     33(ptr) Variable Function
+  79(globalId00):     33(ptr) Variable Function
+86(partnerGlobalId00):     33(ptr) Variable Function
+95(bufferCoord00):     53(ptr) Variable Function
+104(partnerBufferCoord00):     53(ptr) Variable Function
+113(imageCoord00):     33(ptr) Variable Function
+115(partnerImageCoord00):     33(ptr) Variable Function
+          163(r):     53(ptr) Variable Function
+                              Store 8(pass) 9
+                              Store 10(skip) 11
+                              Store 13(sharedSkip) 11 MakePointerAvailableKHR NonPrivatePointerKHR 15
+              30:     29(ptr) AccessChain 26 28
+              31:     16(ptr) Load 30
+                              Store 20(payload) 31
+              39:   35(ivec3) Load 37(gl_GlobalInvocationID)
+              40:   38(ivec2) VectorShuffle 39 39 0 1
+              41:   32(ivec2) Bitcast 40
+                              Store 34(globalId) 41
+              49:   35(ivec3) Load 37(gl_GlobalInvocationID)
+              50:   38(ivec2) VectorShuffle 49 49 0 1
+              51:   32(ivec2) Bitcast 50
+              52:   32(ivec2) ISub 48 51
+                              Store 42(partnerGlobalId) 52
+              57:     56(ptr) AccessChain 34(globalId) 55
+              58:     27(int) Load 57
+              59:     27(int) IMul 58 43(DIM)
+              60:     27(int) IMul 59 44(NUM_WORKGROUP_EACH_DIM)
+              62:     56(ptr) AccessChain 34(globalId) 61
+              63:     27(int) Load 62
+              64:     27(int) IAdd 60 63
+              65:     14(int) Bitcast 64
+                              Store 54(bufferCoord) 65
+              67:     56(ptr) AccessChain 42(partnerGlobalId) 55
+              68:     27(int) Load 67
+              69:     27(int) IMul 68 43(DIM)
+              70:     27(int) IMul 69 44(NUM_WORKGROUP_EACH_DIM)
+              71:     56(ptr) AccessChain 42(partnerGlobalId) 61
+              72:     27(int) Load 71
+              73:     27(int) IAdd 70 72
+              74:     14(int) Bitcast 73
+                              Store 66(partnerBufferCoord) 74
+              76:   32(ivec2) Load 34(globalId)
+                              Store 75(imageCoord) 76
+              78:   32(ivec2) Load 42(partnerGlobalId)
+                              Store 77(partnerImageCoord) 78
+              82:   35(ivec3) Load 81(gl_WorkGroupID)
+              83:   38(ivec2) VectorShuffle 82 82 0 1
+              84:   32(ivec2) Bitcast 83
+              85:   32(ivec2) IMul 80 84
+                              Store 79(globalId00) 85
+              90:   35(ivec3) Load 81(gl_WorkGroupID)
+              91:   38(ivec2) VectorShuffle 90 90 0 1
+              92:   32(ivec2) Bitcast 91
+              93:   32(ivec2) ISub 89 92
+              94:   32(ivec2) IMul 87 93
+                              Store 86(partnerGlobalId00) 94
+              96:     56(ptr) AccessChain 79(globalId00) 55
+              97:     27(int) Load 96
+              98:     27(int) IMul 97 43(DIM)
+              99:     27(int) IMul 98 44(NUM_WORKGROUP_EACH_DIM)
+             100:     56(ptr) AccessChain 79(globalId00) 61
+             101:     27(int) Load 100
+             102:     27(int) IAdd 99 101
+             103:     14(int) Bitcast 102
+                              Store 95(bufferCoord00) 103
+             105:     56(ptr) AccessChain 86(partnerGlobalId00) 55
+             106:     27(int) Load 105
+             107:     27(int) IMul 106 43(DIM)
+             108:     27(int) IMul 107 44(NUM_WORKGROUP_EACH_DIM)
+             109:     56(ptr) AccessChain 86(partnerGlobalId00) 61
+             110:     27(int) Load 109
+             111:     27(int) IAdd 108 110
+             112:     14(int) Bitcast 111
+                              Store 104(partnerBufferCoord00) 112
+             114:   32(ivec2) Load 79(globalId00)
+                              Store 113(imageCoord00) 114
+             116:   32(ivec2) Load 86(partnerGlobalId00)
+                              Store 115(partnerImageCoord00) 116
+             117:     16(ptr) Load 20(payload)
+             118:     14(int) Load 54(bufferCoord)
+             119:     14(int) Load 54(bufferCoord)
+             120:     16(ptr) Load 20(payload)
+             121:     14(int) Load 66(partnerBufferCoord)
+             123:    122(ptr) AccessChain 120 28 121
+             124:     14(int) Load 123 Aligned NonPrivatePointerKHR 4
+             126:     14(int) ShiftRightLogical 124 125
+             127:     14(int) IAdd 119 126
+             128:    122(ptr) AccessChain 117 28 118
+                              Store 128 127 Aligned NonPrivatePointerKHR 4
+                              ControlBarrier 15 15 132
+             134:   35(ivec3) Load 133(gl_LocalInvocationID)
+             135:   38(ivec2) VectorShuffle 134 134 0 1
+             138:  137(bvec2) IEqual 135 136
+             139:     6(bool) All 138
+                              SelectionMerge 141 None
+                              BranchConditional 139 140 141
+             140:               Label
+             143:    142(ptr)   AccessChain 26 46
+             144:     21(ptr)   Load 143
+             145:     14(int)   Load 54(bufferCoord)
+             146:    122(ptr)   AccessChain 144 28 145
+                                AtomicStore 146 46 150 55
+             151:    142(ptr)   AccessChain 26 46
+             152:     21(ptr)   Load 151
+             153:     14(int)   Load 104(partnerBufferCoord00)
+             154:    122(ptr)   AccessChain 152 28 153
+             157:     14(int)   AtomicLoad 154 46 156
+             158:     6(bool)   IEqual 157 61
+                                Store 10(skip) 158
+             159:     6(bool)   Load 10(skip)
+                                Store 13(sharedSkip) 159 MakePointerAvailableKHR NonPrivatePointerKHR 15
+                                Branch 141
+             141:             Label
+                              ControlBarrier 15 15 161
+             162:     6(bool) Load 13(sharedSkip) MakePointerVisibleKHR NonPrivatePointerKHR 15
+                              Store 10(skip) 162
+             164:     16(ptr) Load 20(payload)
+             165:     14(int) Load 66(partnerBufferCoord)
+             166:    122(ptr) AccessChain 164 28 165
+             167:     14(int) Load 166 Aligned NonPrivatePointerKHR 4
+                              Store 163(r) 167
+             168:     6(bool) Load 10(skip)
+             169:     6(bool) LogicalNot 168
+                              SelectionMerge 171 None
+                              BranchConditional 169 170 171
+             170:               Label
+             172:     14(int)   Load 163(r)
+             173:     14(int)   Load 66(partnerBufferCoord)
+             174:     6(bool)   INotEqual 172 173
+                                Branch 171
+             171:             Label
+             175:     6(bool) Phi 169 141 174 170
+                              SelectionMerge 177 None
+                              BranchConditional 175 176 177
+             176:               Label
+             182:     14(int)   Load 54(bufferCoord)
+             184:    183(ptr)   AccessChain 181(fail) 28 182
+                                Store 184 55
+                                Branch 177
+             177:             Label
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.bitCast.frag.out b/Test/baseResults/spv.bitCast.frag.out
index daf7b1d..88b2a09 100644
--- a/Test/baseResults/spv.bitCast.frag.out
+++ b/Test/baseResults/spv.bitCast.frag.out
@@ -1,52 +1,52 @@
 spv.bitCast.frag
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 172
+// Id's are bound by 198
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 14 26 37 48 89 98 107 116 122 130 139 148 154
+                              EntryPoint Fragment 4  "main" 14 26 40 56 103 112 123 136 142 150 161 174 180
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 450
                               Name 4  "main"
                               Name 9  "idata"
                               Name 14  "f1"
                               Name 26  "f2"
-                              Name 37  "f3"
-                              Name 48  "f4"
-                              Name 55  "udata"
-                              Name 85  "fdata"
-                              Name 89  "i1"
-                              Name 98  "i2"
-                              Name 107  "i3"
-                              Name 116  "i4"
-                              Name 122  "u1"
-                              Name 130  "u2"
-                              Name 139  "u3"
-                              Name 148  "u4"
-                              Name 154  "fragColor"
+                              Name 40  "f3"
+                              Name 56  "f4"
+                              Name 63  "udata"
+                              Name 99  "fdata"
+                              Name 103  "i1"
+                              Name 112  "i2"
+                              Name 123  "i3"
+                              Name 136  "i4"
+                              Name 142  "u1"
+                              Name 150  "u2"
+                              Name 161  "u3"
+                              Name 174  "u4"
+                              Name 180  "fragColor"
                               Decorate 14(f1) Location 8
                               Decorate 26(f2) Location 9
-                              Decorate 37(f3) Location 10
-                              Decorate 48(f4) Location 11
-                              Decorate 89(i1) Flat
-                              Decorate 89(i1) Location 0
-                              Decorate 98(i2) Flat
-                              Decorate 98(i2) Location 1
-                              Decorate 107(i3) Flat
-                              Decorate 107(i3) Location 2
-                              Decorate 116(i4) Flat
-                              Decorate 116(i4) Location 3
-                              Decorate 122(u1) Flat
-                              Decorate 122(u1) Location 4
-                              Decorate 130(u2) Flat
-                              Decorate 130(u2) Location 5
-                              Decorate 139(u3) Flat
-                              Decorate 139(u3) Location 6
-                              Decorate 148(u4) Flat
-                              Decorate 148(u4) Location 7
-                              Decorate 154(fragColor) Location 0
+                              Decorate 40(f3) Location 10
+                              Decorate 56(f4) Location 11
+                              Decorate 103(i1) Flat
+                              Decorate 103(i1) Location 0
+                              Decorate 112(i2) Flat
+                              Decorate 112(i2) Location 1
+                              Decorate 123(i3) Flat
+                              Decorate 123(i3) Location 2
+                              Decorate 136(i4) Flat
+                              Decorate 136(i4) Location 3
+                              Decorate 142(u1) Flat
+                              Decorate 142(u1) Location 4
+                              Decorate 150(u2) Flat
+                              Decorate 150(u2) Location 5
+                              Decorate 161(u3) Flat
+                              Decorate 161(u3) Location 6
+                              Decorate 174(u4) Flat
+                              Decorate 174(u4) Location 7
+                              Decorate 180(fragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
@@ -64,51 +64,53 @@
               25:             TypePointer Input 24(fvec2)
           26(f2):     25(ptr) Variable Input
               28:             TypeVector 6(int) 2
-              35:             TypeVector 12(float) 3
-              36:             TypePointer Input 35(fvec3)
-          37(f3):     36(ptr) Variable Input
-              39:             TypeVector 6(int) 3
-              46:             TypeVector 12(float) 4
-              47:             TypePointer Input 46(fvec4)
-          48(f4):     47(ptr) Variable Input
-              53:             TypeVector 17(int) 4
-              54:             TypePointer Function 53(ivec4)
-              56:   53(ivec4) ConstantComposite 18 18 18 18
-              59:             TypePointer Function 17(int)
-              65:             TypeVector 17(int) 2
-              73:             TypeVector 17(int) 3
-              84:             TypePointer Function 46(fvec4)
-              86:   12(float) Constant 0
-              87:   46(fvec4) ConstantComposite 86 86 86 86
-              88:             TypePointer Input 6(int)
-          89(i1):     88(ptr) Variable Input
-              92:             TypePointer Function 12(float)
-              97:             TypePointer Input 28(ivec2)
-          98(i2):     97(ptr) Variable Input
-             106:             TypePointer Input 39(ivec3)
-         107(i3):    106(ptr) Variable Input
-             115:             TypePointer Input 7(ivec4)
-         116(i4):    115(ptr) Variable Input
-             121:             TypePointer Input 17(int)
-         122(u1):    121(ptr) Variable Input
-             129:             TypePointer Input 65(ivec2)
-         130(u2):    129(ptr) Variable Input
-             138:             TypePointer Input 73(ivec3)
-         139(u3):    138(ptr) Variable Input
-             147:             TypePointer Input 53(ivec4)
-         148(u4):    147(ptr) Variable Input
-             153:             TypePointer Output 46(fvec4)
-  154(fragColor):    153(ptr) Variable Output
-             158:             TypeBool
-             159:             TypeVector 158(bool) 4
-             168:   12(float) Constant 1045220557
-             169:   46(fvec4) ConstantComposite 168 168 168 168
+              35:     17(int) Constant 1
+              38:             TypeVector 12(float) 3
+              39:             TypePointer Input 38(fvec3)
+          40(f3):     39(ptr) Variable Input
+              42:             TypeVector 6(int) 3
+              51:     17(int) Constant 2
+              54:             TypeVector 12(float) 4
+              55:             TypePointer Input 54(fvec4)
+          56(f4):     55(ptr) Variable Input
+              61:             TypeVector 17(int) 4
+              62:             TypePointer Function 61(ivec4)
+              64:   61(ivec4) ConstantComposite 18 18 18 18
+              67:             TypePointer Function 17(int)
+              73:             TypeVector 17(int) 2
+              83:             TypeVector 17(int) 3
+              98:             TypePointer Function 54(fvec4)
+             100:   12(float) Constant 0
+             101:   54(fvec4) ConstantComposite 100 100 100 100
+             102:             TypePointer Input 6(int)
+         103(i1):    102(ptr) Variable Input
+             106:             TypePointer Function 12(float)
+             111:             TypePointer Input 28(ivec2)
+         112(i2):    111(ptr) Variable Input
+             122:             TypePointer Input 42(ivec3)
+         123(i3):    122(ptr) Variable Input
+             135:             TypePointer Input 7(ivec4)
+         136(i4):    135(ptr) Variable Input
+             141:             TypePointer Input 17(int)
+         142(u1):    141(ptr) Variable Input
+             149:             TypePointer Input 73(ivec2)
+         150(u2):    149(ptr) Variable Input
+             160:             TypePointer Input 83(ivec3)
+         161(u3):    160(ptr) Variable Input
+             173:             TypePointer Input 61(ivec4)
+         174(u4):    173(ptr) Variable Input
+             179:             TypePointer Output 54(fvec4)
+  180(fragColor):    179(ptr) Variable Output
+             184:             TypeBool
+             185:             TypeVector 184(bool) 4
+             194:   12(float) Constant 1045220557
+             195:   54(fvec4) ConstantComposite 194 194 194 194
          4(main):           2 Function None 3
                5:             Label
         9(idata):      8(ptr) Variable Function
-       55(udata):     54(ptr) Variable Function
-       85(fdata):     84(ptr) Variable Function
-             162:     84(ptr) Variable Function
+       63(udata):     62(ptr) Variable Function
+       99(fdata):     98(ptr) Variable Function
+             188:     98(ptr) Variable Function
                               Store 9(idata) 11
               15:   12(float) Load 14(f1)
               16:      6(int) Bitcast 15
@@ -122,126 +124,162 @@
               30:    7(ivec4) Load 9(idata)
               31:   28(ivec2) VectorShuffle 30 30 0 1
               32:   28(ivec2) IAdd 31 29
-              33:    7(ivec4) Load 9(idata)
-              34:    7(ivec4) VectorShuffle 33 32 4 5 2 3
-                              Store 9(idata) 34
-              38:   35(fvec3) Load 37(f3)
-              40:   39(ivec3) Bitcast 38
-              41:    7(ivec4) Load 9(idata)
-              42:   39(ivec3) VectorShuffle 41 41 0 1 2
-              43:   39(ivec3) IAdd 42 40
+              33:     19(ptr) AccessChain 9(idata) 18
+              34:      6(int) CompositeExtract 32 0
+                              Store 33 34
+              36:     19(ptr) AccessChain 9(idata) 35
+              37:      6(int) CompositeExtract 32 1
+                              Store 36 37
+              41:   38(fvec3) Load 40(f3)
+              43:   42(ivec3) Bitcast 41
               44:    7(ivec4) Load 9(idata)
-              45:    7(ivec4) VectorShuffle 44 43 4 5 6 3
-                              Store 9(idata) 45
-              49:   46(fvec4) Load 48(f4)
-              50:    7(ivec4) Bitcast 49
-              51:    7(ivec4) Load 9(idata)
-              52:    7(ivec4) IAdd 51 50
-                              Store 9(idata) 52
-                              Store 55(udata) 56
-              57:   12(float) Load 14(f1)
-              58:     17(int) Bitcast 57
-              60:     59(ptr) AccessChain 55(udata) 18
-              61:     17(int) Load 60
-              62:     17(int) IAdd 61 58
-              63:     59(ptr) AccessChain 55(udata) 18
-                              Store 63 62
-              64:   24(fvec2) Load 26(f2)
-              66:   65(ivec2) Bitcast 64
-              67:   53(ivec4) Load 55(udata)
-              68:   65(ivec2) VectorShuffle 67 67 0 1
-              69:   65(ivec2) IAdd 68 66
-              70:   53(ivec4) Load 55(udata)
-              71:   53(ivec4) VectorShuffle 70 69 4 5 2 3
-                              Store 55(udata) 71
-              72:   35(fvec3) Load 37(f3)
-              74:   73(ivec3) Bitcast 72
-              75:   53(ivec4) Load 55(udata)
-              76:   73(ivec3) VectorShuffle 75 75 0 1 2
-              77:   73(ivec3) IAdd 76 74
-              78:   53(ivec4) Load 55(udata)
-              79:   53(ivec4) VectorShuffle 78 77 4 5 6 3
-                              Store 55(udata) 79
-              80:   46(fvec4) Load 48(f4)
-              81:   53(ivec4) Bitcast 80
-              82:   53(ivec4) Load 55(udata)
-              83:   53(ivec4) IAdd 82 81
-                              Store 55(udata) 83
-                              Store 85(fdata) 87
-              90:      6(int) Load 89(i1)
-              91:   12(float) Bitcast 90
-              93:     92(ptr) AccessChain 85(fdata) 18
-              94:   12(float) Load 93
-              95:   12(float) FAdd 94 91
-              96:     92(ptr) AccessChain 85(fdata) 18
-                              Store 96 95
-              99:   28(ivec2) Load 98(i2)
-             100:   24(fvec2) Bitcast 99
-             101:   46(fvec4) Load 85(fdata)
-             102:   24(fvec2) VectorShuffle 101 101 0 1
-             103:   24(fvec2) FAdd 102 100
-             104:   46(fvec4) Load 85(fdata)
-             105:   46(fvec4) VectorShuffle 104 103 4 5 2 3
-                              Store 85(fdata) 105
-             108:   39(ivec3) Load 107(i3)
-             109:   35(fvec3) Bitcast 108
-             110:   46(fvec4) Load 85(fdata)
-             111:   35(fvec3) VectorShuffle 110 110 0 1 2
-             112:   35(fvec3) FAdd 111 109
-             113:   46(fvec4) Load 85(fdata)
-             114:   46(fvec4) VectorShuffle 113 112 4 5 6 3
-                              Store 85(fdata) 114
-             117:    7(ivec4) Load 116(i4)
-             118:   46(fvec4) Bitcast 117
-             119:   46(fvec4) Load 85(fdata)
-             120:   46(fvec4) FAdd 119 118
-                              Store 85(fdata) 120
-             123:     17(int) Load 122(u1)
-             124:   12(float) Bitcast 123
-             125:     92(ptr) AccessChain 85(fdata) 18
-             126:   12(float) Load 125
-             127:   12(float) FAdd 126 124
-             128:     92(ptr) AccessChain 85(fdata) 18
-                              Store 128 127
-             131:   65(ivec2) Load 130(u2)
-             132:   24(fvec2) Bitcast 131
-             133:   46(fvec4) Load 85(fdata)
-             134:   24(fvec2) VectorShuffle 133 133 0 1
-             135:   24(fvec2) FAdd 134 132
-             136:   46(fvec4) Load 85(fdata)
-             137:   46(fvec4) VectorShuffle 136 135 4 5 2 3
-                              Store 85(fdata) 137
-             140:   73(ivec3) Load 139(u3)
-             141:   35(fvec3) Bitcast 140
-             142:   46(fvec4) Load 85(fdata)
-             143:   35(fvec3) VectorShuffle 142 142 0 1 2
-             144:   35(fvec3) FAdd 143 141
-             145:   46(fvec4) Load 85(fdata)
-             146:   46(fvec4) VectorShuffle 145 144 4 5 6 3
-                              Store 85(fdata) 146
-             149:   53(ivec4) Load 148(u4)
-             150:   46(fvec4) Bitcast 149
-             151:   46(fvec4) Load 85(fdata)
-             152:   46(fvec4) FAdd 151 150
-                              Store 85(fdata) 152
-             155:    7(ivec4) Load 9(idata)
-             156:   53(ivec4) Bitcast 155
-             157:   53(ivec4) Load 55(udata)
-             160:  159(bvec4) IEqual 156 157
-             161:   158(bool) All 160
-                              SelectionMerge 164 None
-                              BranchConditional 161 163 166
-             163:               Label
-             165:   46(fvec4)   Load 85(fdata)
-                                Store 162 165
-                                Branch 164
-             166:               Label
-             167:   46(fvec4)   Load 85(fdata)
-             170:   46(fvec4)   FAdd 167 169
-                                Store 162 170
-                                Branch 164
-             164:             Label
-             171:   46(fvec4) Load 162
-                              Store 154(fragColor) 171
+              45:   42(ivec3) VectorShuffle 44 44 0 1 2
+              46:   42(ivec3) IAdd 45 43
+              47:     19(ptr) AccessChain 9(idata) 18
+              48:      6(int) CompositeExtract 46 0
+                              Store 47 48
+              49:     19(ptr) AccessChain 9(idata) 35
+              50:      6(int) CompositeExtract 46 1
+                              Store 49 50
+              52:     19(ptr) AccessChain 9(idata) 51
+              53:      6(int) CompositeExtract 46 2
+                              Store 52 53
+              57:   54(fvec4) Load 56(f4)
+              58:    7(ivec4) Bitcast 57
+              59:    7(ivec4) Load 9(idata)
+              60:    7(ivec4) IAdd 59 58
+                              Store 9(idata) 60
+                              Store 63(udata) 64
+              65:   12(float) Load 14(f1)
+              66:     17(int) Bitcast 65
+              68:     67(ptr) AccessChain 63(udata) 18
+              69:     17(int) Load 68
+              70:     17(int) IAdd 69 66
+              71:     67(ptr) AccessChain 63(udata) 18
+                              Store 71 70
+              72:   24(fvec2) Load 26(f2)
+              74:   73(ivec2) Bitcast 72
+              75:   61(ivec4) Load 63(udata)
+              76:   73(ivec2) VectorShuffle 75 75 0 1
+              77:   73(ivec2) IAdd 76 74
+              78:     67(ptr) AccessChain 63(udata) 18
+              79:     17(int) CompositeExtract 77 0
+                              Store 78 79
+              80:     67(ptr) AccessChain 63(udata) 35
+              81:     17(int) CompositeExtract 77 1
+                              Store 80 81
+              82:   38(fvec3) Load 40(f3)
+              84:   83(ivec3) Bitcast 82
+              85:   61(ivec4) Load 63(udata)
+              86:   83(ivec3) VectorShuffle 85 85 0 1 2
+              87:   83(ivec3) IAdd 86 84
+              88:     67(ptr) AccessChain 63(udata) 18
+              89:     17(int) CompositeExtract 87 0
+                              Store 88 89
+              90:     67(ptr) AccessChain 63(udata) 35
+              91:     17(int) CompositeExtract 87 1
+                              Store 90 91
+              92:     67(ptr) AccessChain 63(udata) 51
+              93:     17(int) CompositeExtract 87 2
+                              Store 92 93
+              94:   54(fvec4) Load 56(f4)
+              95:   61(ivec4) Bitcast 94
+              96:   61(ivec4) Load 63(udata)
+              97:   61(ivec4) IAdd 96 95
+                              Store 63(udata) 97
+                              Store 99(fdata) 101
+             104:      6(int) Load 103(i1)
+             105:   12(float) Bitcast 104
+             107:    106(ptr) AccessChain 99(fdata) 18
+             108:   12(float) Load 107
+             109:   12(float) FAdd 108 105
+             110:    106(ptr) AccessChain 99(fdata) 18
+                              Store 110 109
+             113:   28(ivec2) Load 112(i2)
+             114:   24(fvec2) Bitcast 113
+             115:   54(fvec4) Load 99(fdata)
+             116:   24(fvec2) VectorShuffle 115 115 0 1
+             117:   24(fvec2) FAdd 116 114
+             118:    106(ptr) AccessChain 99(fdata) 18
+             119:   12(float) CompositeExtract 117 0
+                              Store 118 119
+             120:    106(ptr) AccessChain 99(fdata) 35
+             121:   12(float) CompositeExtract 117 1
+                              Store 120 121
+             124:   42(ivec3) Load 123(i3)
+             125:   38(fvec3) Bitcast 124
+             126:   54(fvec4) Load 99(fdata)
+             127:   38(fvec3) VectorShuffle 126 126 0 1 2
+             128:   38(fvec3) FAdd 127 125
+             129:    106(ptr) AccessChain 99(fdata) 18
+             130:   12(float) CompositeExtract 128 0
+                              Store 129 130
+             131:    106(ptr) AccessChain 99(fdata) 35
+             132:   12(float) CompositeExtract 128 1
+                              Store 131 132
+             133:    106(ptr) AccessChain 99(fdata) 51
+             134:   12(float) CompositeExtract 128 2
+                              Store 133 134
+             137:    7(ivec4) Load 136(i4)
+             138:   54(fvec4) Bitcast 137
+             139:   54(fvec4) Load 99(fdata)
+             140:   54(fvec4) FAdd 139 138
+                              Store 99(fdata) 140
+             143:     17(int) Load 142(u1)
+             144:   12(float) Bitcast 143
+             145:    106(ptr) AccessChain 99(fdata) 18
+             146:   12(float) Load 145
+             147:   12(float) FAdd 146 144
+             148:    106(ptr) AccessChain 99(fdata) 18
+                              Store 148 147
+             151:   73(ivec2) Load 150(u2)
+             152:   24(fvec2) Bitcast 151
+             153:   54(fvec4) Load 99(fdata)
+             154:   24(fvec2) VectorShuffle 153 153 0 1
+             155:   24(fvec2) FAdd 154 152
+             156:    106(ptr) AccessChain 99(fdata) 18
+             157:   12(float) CompositeExtract 155 0
+                              Store 156 157
+             158:    106(ptr) AccessChain 99(fdata) 35
+             159:   12(float) CompositeExtract 155 1
+                              Store 158 159
+             162:   83(ivec3) Load 161(u3)
+             163:   38(fvec3) Bitcast 162
+             164:   54(fvec4) Load 99(fdata)
+             165:   38(fvec3) VectorShuffle 164 164 0 1 2
+             166:   38(fvec3) FAdd 165 163
+             167:    106(ptr) AccessChain 99(fdata) 18
+             168:   12(float) CompositeExtract 166 0
+                              Store 167 168
+             169:    106(ptr) AccessChain 99(fdata) 35
+             170:   12(float) CompositeExtract 166 1
+                              Store 169 170
+             171:    106(ptr) AccessChain 99(fdata) 51
+             172:   12(float) CompositeExtract 166 2
+                              Store 171 172
+             175:   61(ivec4) Load 174(u4)
+             176:   54(fvec4) Bitcast 175
+             177:   54(fvec4) Load 99(fdata)
+             178:   54(fvec4) FAdd 177 176
+                              Store 99(fdata) 178
+             181:    7(ivec4) Load 9(idata)
+             182:   61(ivec4) Bitcast 181
+             183:   61(ivec4) Load 63(udata)
+             186:  185(bvec4) IEqual 182 183
+             187:   184(bool) All 186
+                              SelectionMerge 190 None
+                              BranchConditional 187 189 192
+             189:               Label
+             191:   54(fvec4)   Load 99(fdata)
+                                Store 188 191
+                                Branch 190
+             192:               Label
+             193:   54(fvec4)   Load 99(fdata)
+             196:   54(fvec4)   FAdd 193 195
+                                Store 188 196
+                                Branch 190
+             190:             Label
+             197:   54(fvec4) Load 188
+                              Store 180(fragColor) 197
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.float16.frag.out b/Test/baseResults/spv.float16.frag.out
index dd677b4..8c33a66 100644
--- a/Test/baseResults/spv.float16.frag.out
+++ b/Test/baseResults/spv.float16.frag.out
@@ -2,7 +2,7 @@
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 534
+// Id's are bound by 542
 
                               Capability Shader
                               Capability Float16
@@ -80,87 +80,87 @@
                               Name 445  "f16v2"
                               Name 463  "f16v"
                               Name 465  "if16v"
-                              Name 514  "S"
-                              MemberName 514(S) 0  "x"
-                              MemberName 514(S) 1  "y"
-                              MemberName 514(S) 2  "z"
-                              Name 516  "B1"
-                              MemberName 516(B1) 0  "a"
-                              MemberName 516(B1) 1  "b"
-                              MemberName 516(B1) 2  "c"
-                              MemberName 516(B1) 3  "d"
-                              MemberName 516(B1) 4  "e"
-                              MemberName 516(B1) 5  "f"
-                              MemberName 516(B1) 6  "g"
-                              MemberName 516(B1) 7  "h"
-                              Name 518  ""
-                              Name 521  "S"
-                              MemberName 521(S) 0  "x"
-                              MemberName 521(S) 1  "y"
-                              MemberName 521(S) 2  "z"
-                              Name 523  "B2"
-                              MemberName 523(B2) 0  "o"
-                              MemberName 523(B2) 1  "p"
-                              MemberName 523(B2) 2  "q"
-                              MemberName 523(B2) 3  "r"
-                              MemberName 523(B2) 4  "s"
-                              MemberName 523(B2) 5  "t"
-                              MemberName 523(B2) 6  "u"
-                              MemberName 523(B2) 7  "v"
-                              Name 525  ""
-                              Name 526  "sf16"
-                              Name 527  "sf"
-                              Name 528  "sd"
-                              Name 529  "f16_to_f"
-                              Name 531  "f16_to_d"
-                              Name 532  "f_to_f16"
-                              Name 533  "d_to_f16"
+                              Name 522  "S"
+                              MemberName 522(S) 0  "x"
+                              MemberName 522(S) 1  "y"
+                              MemberName 522(S) 2  "z"
+                              Name 524  "B1"
+                              MemberName 524(B1) 0  "a"
+                              MemberName 524(B1) 1  "b"
+                              MemberName 524(B1) 2  "c"
+                              MemberName 524(B1) 3  "d"
+                              MemberName 524(B1) 4  "e"
+                              MemberName 524(B1) 5  "f"
+                              MemberName 524(B1) 6  "g"
+                              MemberName 524(B1) 7  "h"
+                              Name 526  ""
+                              Name 529  "S"
+                              MemberName 529(S) 0  "x"
+                              MemberName 529(S) 1  "y"
+                              MemberName 529(S) 2  "z"
+                              Name 531  "B2"
+                              MemberName 531(B2) 0  "o"
+                              MemberName 531(B2) 1  "p"
+                              MemberName 531(B2) 2  "q"
+                              MemberName 531(B2) 3  "r"
+                              MemberName 531(B2) 4  "s"
+                              MemberName 531(B2) 5  "t"
+                              MemberName 531(B2) 6  "u"
+                              MemberName 531(B2) 7  "v"
+                              Name 533  ""
+                              Name 534  "sf16"
+                              Name 535  "sf"
+                              Name 536  "sd"
+                              Name 537  "f16_to_f"
+                              Name 539  "f16_to_d"
+                              Name 540  "f_to_f16"
+                              Name 541  "d_to_f16"
                               Decorate 465(if16v) Location 0
-                              Decorate 512 ArrayStride 16
-                              Decorate 513 ArrayStride 32
-                              MemberDecorate 514(S) 0 Offset 0
-                              MemberDecorate 514(S) 1 Offset 4
-                              MemberDecorate 514(S) 2 Offset 8
-                              Decorate 515 ArrayStride 16
-                              MemberDecorate 516(B1) 0 Offset 0
-                              MemberDecorate 516(B1) 1 Offset 4
-                              MemberDecorate 516(B1) 2 Offset 8
-                              MemberDecorate 516(B1) 3 Offset 16
-                              MemberDecorate 516(B1) 4 ColMajor
-                              MemberDecorate 516(B1) 4 Offset 48
-                              MemberDecorate 516(B1) 4 MatrixStride 16
-                              MemberDecorate 516(B1) 5 ColMajor
-                              MemberDecorate 516(B1) 5 Offset 80
-                              MemberDecorate 516(B1) 5 MatrixStride 16
-                              MemberDecorate 516(B1) 6 Offset 144
-                              MemberDecorate 516(B1) 7 Offset 160
-                              Decorate 516(B1) Block
-                              Decorate 518 DescriptorSet 0
-                              Decorate 518 Binding 0
-                              Decorate 519 ArrayStride 2
-                              Decorate 520 ArrayStride 12
-                              MemberDecorate 521(S) 0 Offset 0
-                              MemberDecorate 521(S) 1 Offset 4
-                              MemberDecorate 521(S) 2 Offset 8
-                              Decorate 522 ArrayStride 16
-                              MemberDecorate 523(B2) 0 Offset 0
-                              MemberDecorate 523(B2) 1 Offset 4
-                              MemberDecorate 523(B2) 2 Offset 8
-                              MemberDecorate 523(B2) 3 Offset 14
-                              MemberDecorate 523(B2) 4 RowMajor
-                              MemberDecorate 523(B2) 4 Offset 20
-                              MemberDecorate 523(B2) 4 MatrixStride 4
-                              MemberDecorate 523(B2) 5 RowMajor
-                              MemberDecorate 523(B2) 5 Offset 32
-                              MemberDecorate 523(B2) 5 MatrixStride 4
-                              MemberDecorate 523(B2) 6 Offset 56
-                              MemberDecorate 523(B2) 7 Offset 72
-                              Decorate 523(B2) BufferBlock
-                              Decorate 525 DescriptorSet 0
-                              Decorate 525 Binding 0
-                              Decorate 526(sf16) SpecId 100
-                              Decorate 527(sf) SpecId 101
-                              Decorate 528(sd) SpecId 102
+                              Decorate 520 ArrayStride 16
+                              Decorate 521 ArrayStride 32
+                              MemberDecorate 522(S) 0 Offset 0
+                              MemberDecorate 522(S) 1 Offset 4
+                              MemberDecorate 522(S) 2 Offset 8
+                              Decorate 523 ArrayStride 16
+                              MemberDecorate 524(B1) 0 Offset 0
+                              MemberDecorate 524(B1) 1 Offset 4
+                              MemberDecorate 524(B1) 2 Offset 8
+                              MemberDecorate 524(B1) 3 Offset 16
+                              MemberDecorate 524(B1) 4 ColMajor
+                              MemberDecorate 524(B1) 4 Offset 48
+                              MemberDecorate 524(B1) 4 MatrixStride 16
+                              MemberDecorate 524(B1) 5 ColMajor
+                              MemberDecorate 524(B1) 5 Offset 80
+                              MemberDecorate 524(B1) 5 MatrixStride 16
+                              MemberDecorate 524(B1) 6 Offset 144
+                              MemberDecorate 524(B1) 7 Offset 160
+                              Decorate 524(B1) Block
+                              Decorate 526 DescriptorSet 0
+                              Decorate 526 Binding 0
+                              Decorate 527 ArrayStride 2
+                              Decorate 528 ArrayStride 12
+                              MemberDecorate 529(S) 0 Offset 0
+                              MemberDecorate 529(S) 1 Offset 4
+                              MemberDecorate 529(S) 2 Offset 8
+                              Decorate 530 ArrayStride 16
+                              MemberDecorate 531(B2) 0 Offset 0
+                              MemberDecorate 531(B2) 1 Offset 4
+                              MemberDecorate 531(B2) 2 Offset 8
+                              MemberDecorate 531(B2) 3 Offset 14
+                              MemberDecorate 531(B2) 4 RowMajor
+                              MemberDecorate 531(B2) 4 Offset 20
+                              MemberDecorate 531(B2) 4 MatrixStride 4
+                              MemberDecorate 531(B2) 5 RowMajor
+                              MemberDecorate 531(B2) 5 Offset 32
+                              MemberDecorate 531(B2) 5 MatrixStride 4
+                              MemberDecorate 531(B2) 6 Offset 56
+                              MemberDecorate 531(B2) 7 Offset 72
+                              Decorate 531(B2) BufferBlock
+                              Decorate 533 DescriptorSet 0
+                              Decorate 533 Binding 0
+                              Decorate 534(sf16) SpecId 100
+                              Decorate 535(sf) SpecId 101
+                              Decorate 536(sd) SpecId 102
                2:             TypeVoid
                3:             TypeFunction 2
               28:             TypeFloat 16
@@ -218,32 +218,32 @@
              464:             TypePointer Input 151(f16vec3)
       465(if16v):    464(ptr) Variable Input
              466:             TypePointer Input 28(float16_t)
-             503:    183(int) Constant 1
-             508:28(float16_t) Constant 14336
-             509: 29(f16vec2) ConstantComposite 508 508
-             511:     33(int) Constant 2
-             512:             TypeArray 28(float16_t) 511
-             513:             TypeArray 406 511
-          514(S):             TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3)
-             515:             TypeArray 514(S) 511
-         516(B1):             TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 512 406 513 514(S) 515
-             517:             TypePointer Uniform 516(B1)
-             518:    517(ptr) Variable Uniform
-             519:             TypeArray 28(float16_t) 511
-             520:             TypeArray 406 511
-          521(S):             TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3)
-             522:             TypeArray 521(S) 511
-         523(B2):             TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 519 406 520 521(S) 522
-             524:             TypePointer Uniform 523(B2)
-             525:    524(ptr) Variable Uniform
-       526(sf16):28(float16_t) SpecConstant 12288
-         527(sf):  164(float) SpecConstant 1048576000
-         528(sd):172(float64_t) SpecConstant 0 1071644672
-   529(f16_to_f):  164(float) SpecConstantOp 115 526(sf16)
-             530:  164(float) SpecConstantOp 115 526(sf16)
-   531(f16_to_d):172(float64_t) SpecConstantOp 115 530
-   532(f_to_f16):28(float16_t) SpecConstantOp 115 527(sf)
-   533(d_to_f16):28(float16_t) SpecConstantOp 115 528(sd)
+             509:    183(int) Constant 1
+             516:28(float16_t) Constant 14336
+             517: 29(f16vec2) ConstantComposite 516 516
+             519:     33(int) Constant 2
+             520:             TypeArray 28(float16_t) 519
+             521:             TypeArray 406 519
+          522(S):             TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3)
+             523:             TypeArray 522(S) 519
+         524(B1):             TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 520 406 521 522(S) 523
+             525:             TypePointer Uniform 524(B1)
+             526:    525(ptr) Variable Uniform
+             527:             TypeArray 28(float16_t) 519
+             528:             TypeArray 406 519
+          529(S):             TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3)
+             530:             TypeArray 529(S) 519
+         531(B2):             TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 527 406 528 529(S) 530
+             532:             TypePointer Uniform 531(B2)
+             533:    532(ptr) Variable Uniform
+       534(sf16):28(float16_t) SpecConstant 12288
+         535(sf):  164(float) SpecConstant 1048576000
+         536(sd):172(float64_t) SpecConstant 0 1071644672
+   537(f16_to_f):  164(float) SpecConstantOp 115 534(sf16)
+             538:  164(float) SpecConstantOp 115 534(sf16)
+   539(f16_to_d):172(float64_t) SpecConstantOp 115 538
+   540(f_to_f16):28(float16_t) SpecConstantOp 115 535(sf)
+   541(d_to_f16):28(float16_t) SpecConstantOp 115 536(sd)
          4(main):           2 Function None 3
                5:             Label
                               Return
@@ -801,45 +801,57 @@
              475:151(f16vec3) Load 465(if16v)
              476: 29(f16vec2) VectorShuffle 475 475 0 1
              477: 29(f16vec2) DPdxFine 476
-             478:151(f16vec3) Load 463(f16v)
-             479:151(f16vec3) VectorShuffle 478 477 3 4 2
-                              Store 463(f16v) 479
-             480:151(f16vec3) Load 465(if16v)
-             481: 29(f16vec2) VectorShuffle 480 480 0 1
-             482: 29(f16vec2) DPdyFine 481
-             483:151(f16vec3) Load 463(f16v)
-             484:151(f16vec3) VectorShuffle 483 482 3 4 2
-                              Store 463(f16v) 484
-             485:151(f16vec3) Load 465(if16v)
-             486:151(f16vec3) DPdxCoarse 485
-                              Store 463(f16v) 486
-             487:151(f16vec3) Load 465(if16v)
-             488:151(f16vec3) DPdxCoarse 487
-                              Store 463(f16v) 488
-             489:    466(ptr) AccessChain 465(if16v) 34
-             490:28(float16_t) Load 489
-             491:28(float16_t) Fwidth 490
-             492:     35(ptr) AccessChain 463(f16v) 34
-                              Store 492 491
-             493:151(f16vec3) Load 465(if16v)
-             494: 29(f16vec2) VectorShuffle 493 493 0 1
-             495: 29(f16vec2) FwidthFine 494
-             496:151(f16vec3) Load 463(f16v)
-             497:151(f16vec3) VectorShuffle 496 495 3 4 2
-                              Store 463(f16v) 497
-             498:151(f16vec3) Load 465(if16v)
-             499:151(f16vec3) FwidthCoarse 498
-                              Store 463(f16v) 499
-             500:    466(ptr) AccessChain 465(if16v) 34
-             501:28(float16_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 500
-             502:     35(ptr) AccessChain 463(f16v) 34
-                              Store 502 501
-             504:151(f16vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 465(if16v) 503
-             505: 29(f16vec2) VectorShuffle 504 504 0 1
-             506:151(f16vec3) Load 463(f16v)
-             507:151(f16vec3) VectorShuffle 506 505 3 4 2
-                              Store 463(f16v) 507
-             510:151(f16vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 509
-                              Store 463(f16v) 510
+             478:     35(ptr) AccessChain 463(f16v) 34
+             479:28(float16_t) CompositeExtract 477 0
+                              Store 478 479
+             480:     35(ptr) AccessChain 463(f16v) 90
+             481:28(float16_t) CompositeExtract 477 1
+                              Store 480 481
+             482:151(f16vec3) Load 465(if16v)
+             483: 29(f16vec2) VectorShuffle 482 482 0 1
+             484: 29(f16vec2) DPdyFine 483
+             485:     35(ptr) AccessChain 463(f16v) 34
+             486:28(float16_t) CompositeExtract 484 0
+                              Store 485 486
+             487:     35(ptr) AccessChain 463(f16v) 90
+             488:28(float16_t) CompositeExtract 484 1
+                              Store 487 488
+             489:151(f16vec3) Load 465(if16v)
+             490:151(f16vec3) DPdxCoarse 489
+                              Store 463(f16v) 490
+             491:151(f16vec3) Load 465(if16v)
+             492:151(f16vec3) DPdxCoarse 491
+                              Store 463(f16v) 492
+             493:    466(ptr) AccessChain 465(if16v) 34
+             494:28(float16_t) Load 493
+             495:28(float16_t) Fwidth 494
+             496:     35(ptr) AccessChain 463(f16v) 34
+                              Store 496 495
+             497:151(f16vec3) Load 465(if16v)
+             498: 29(f16vec2) VectorShuffle 497 497 0 1
+             499: 29(f16vec2) FwidthFine 498
+             500:     35(ptr) AccessChain 463(f16v) 34
+             501:28(float16_t) CompositeExtract 499 0
+                              Store 500 501
+             502:     35(ptr) AccessChain 463(f16v) 90
+             503:28(float16_t) CompositeExtract 499 1
+                              Store 502 503
+             504:151(f16vec3) Load 465(if16v)
+             505:151(f16vec3) FwidthCoarse 504
+                              Store 463(f16v) 505
+             506:    466(ptr) AccessChain 465(if16v) 34
+             507:28(float16_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 506
+             508:     35(ptr) AccessChain 463(f16v) 34
+                              Store 508 507
+             510:151(f16vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 465(if16v) 509
+             511: 29(f16vec2) VectorShuffle 510 510 0 1
+             512:     35(ptr) AccessChain 463(f16v) 34
+             513:28(float16_t) CompositeExtract 511 0
+                              Store 512 513
+             514:     35(ptr) AccessChain 463(f16v) 90
+             515:28(float16_t) CompositeExtract 511 1
+                              Store 514 515
+             518:151(f16vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 517
+                              Store 463(f16v) 518
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.float16Fetch.frag.out b/Test/baseResults/spv.float16Fetch.frag.out
index 3b2c36f..da4aa4d 100644
--- a/Test/baseResults/spv.float16Fetch.frag.out
+++ b/Test/baseResults/spv.float16Fetch.frag.out
@@ -2,7 +2,7 @@
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 5933
+// Id's are bound by 5979
 
                               Capability Shader
                               Capability Float16
@@ -29,7 +29,7 @@
                               Extension  "SPV_KHR_16bit_storage"
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 128 135 137 148 156 169 177 215 251 309 565 572 1393 1401 1409 1417 1425 1433 4267 4274 5923 5932
+                              EntryPoint Fragment 4  "main" 128 135 137 148 156 169 177 215 251 309 565 572 1393 1401 1409 1417 1425 1433 4311 4318 5969 5978
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 450
                               SourceExtension  "GL_AMD_gpu_shader_half_float"
@@ -145,68 +145,68 @@
                               Name 2502  "texel"
                               Name 2530  "texel"
                               Name 2559  "size"
-                              Name 2733  "lod"
-                              Name 2869  "levels"
-                              Name 2938  "samples"
-                              Name 2952  "texel"
-                              Name 2955  "i1D"
-                              Name 2964  "i2D"
-                              Name 2973  "i3D"
-                              Name 2982  "i2DRect"
-                              Name 2991  "iCube"
-                              Name 3000  "iBuffer"
-                              Name 3009  "i1DArray"
-                              Name 3018  "i2DArray"
-                              Name 3027  "iCubeArray"
-                              Name 3036  "i2DMS"
-                              Name 3045  "i2DMSArray"
-                              Name 3099  "texel"
-                              Name 3102  "ResType"
-                              Name 3138  "ResType"
-                              Name 3242  "texel"
-                              Name 3322  "texel"
-                              Name 3412  "texel"
-                              Name 3468  "texel"
-                              Name 3628  "texel"
-                              Name 3742  "texel"
-                              Name 3794  "texel"
-                              Name 3832  "texel"
-                              Name 3950  "texel"
-                              Name 4022  "texel"
-                              Name 4104  "texel"
-                              Name 4156  "texel"
-                              Name 4184  "texel"
-                              Name 4212  "texel"
-                              Name 4264  "texel"
-                              Name 4267  "lodClamp"
-                              Name 4274  "f16lodClamp"
-                              Name 4401  "texel"
-                              Name 4608  "texel"
-                              Name 4684  "texel"
-                              Name 4828  "texel"
-                              Name 4972  "texel"
-                              Name 5198  "texel"
-                              Name 5290  "texel"
-                              Name 5462  "texel"
-                              Name 5464  "t1D"
-                              Name 5468  "s"
-                              Name 5484  "t2D"
-                              Name 5501  "t3D"
-                              Name 5518  "tCube"
-                              Name 5535  "sShadow"
-                              Name 5599  "t1DArray"
-                              Name 5616  "t2DArray"
-                              Name 5633  "tCubeArray"
-                              Name 5691  "t2DRect"
-                              Name 5751  "subpass"
-                              Name 5757  "subpassMS"
-                              Name 5763  "result"
-                              Name 5844  "param"
-                              Name 5923  "fragColor"
-                              Name 5927  "tBuffer"
-                              Name 5929  "t2DMS"
-                              Name 5931  "t2DMSArray"
-                              Name 5932  "bias"
+                              Name 2777  "lod"
+                              Name 2913  "levels"
+                              Name 2982  "samples"
+                              Name 2996  "texel"
+                              Name 2999  "i1D"
+                              Name 3008  "i2D"
+                              Name 3017  "i3D"
+                              Name 3026  "i2DRect"
+                              Name 3035  "iCube"
+                              Name 3044  "iBuffer"
+                              Name 3053  "i1DArray"
+                              Name 3062  "i2DArray"
+                              Name 3071  "iCubeArray"
+                              Name 3080  "i2DMS"
+                              Name 3089  "i2DMSArray"
+                              Name 3143  "texel"
+                              Name 3146  "ResType"
+                              Name 3182  "ResType"
+                              Name 3286  "texel"
+                              Name 3366  "texel"
+                              Name 3456  "texel"
+                              Name 3512  "texel"
+                              Name 3672  "texel"
+                              Name 3786  "texel"
+                              Name 3838  "texel"
+                              Name 3876  "texel"
+                              Name 3994  "texel"
+                              Name 4066  "texel"
+                              Name 4148  "texel"
+                              Name 4200  "texel"
+                              Name 4228  "texel"
+                              Name 4256  "texel"
+                              Name 4308  "texel"
+                              Name 4311  "lodClamp"
+                              Name 4318  "f16lodClamp"
+                              Name 4445  "texel"
+                              Name 4652  "texel"
+                              Name 4728  "texel"
+                              Name 4872  "texel"
+                              Name 5016  "texel"
+                              Name 5242  "texel"
+                              Name 5334  "texel"
+                              Name 5506  "texel"
+                              Name 5508  "t1D"
+                              Name 5512  "s"
+                              Name 5528  "t2D"
+                              Name 5545  "t3D"
+                              Name 5562  "tCube"
+                              Name 5579  "sShadow"
+                              Name 5643  "t1DArray"
+                              Name 5660  "t2DArray"
+                              Name 5677  "tCubeArray"
+                              Name 5735  "t2DRect"
+                              Name 5795  "subpass"
+                              Name 5801  "subpassMS"
+                              Name 5807  "result"
+                              Name 5890  "param"
+                              Name 5969  "fragColor"
+                              Name 5973  "tBuffer"
+                              Name 5975  "t2DMS"
+                              Name 5977  "t2DMSArray"
+                              Name 5978  "bias"
                               Decorate 125(s1D) DescriptorSet 0
                               Decorate 125(s1D) Binding 0
                               Decorate 128(c1) Location 0
@@ -261,64 +261,64 @@
                               Decorate 1417(f16dPdxy2) Location 19
                               Decorate 1425(dPdxy3) Location 10
                               Decorate 1433(f16dPdxy3) Location 20
-                              Decorate 2955(i1D) DescriptorSet 1
-                              Decorate 2955(i1D) Binding 0
-                              Decorate 2964(i2D) DescriptorSet 1
-                              Decorate 2964(i2D) Binding 1
-                              Decorate 2973(i3D) DescriptorSet 1
-                              Decorate 2973(i3D) Binding 2
-                              Decorate 2982(i2DRect) DescriptorSet 1
-                              Decorate 2982(i2DRect) Binding 3
-                              Decorate 2991(iCube) DescriptorSet 1
-                              Decorate 2991(iCube) Binding 4
-                              Decorate 3000(iBuffer) DescriptorSet 1
-                              Decorate 3000(iBuffer) Binding 8
-                              Decorate 3009(i1DArray) DescriptorSet 1
-                              Decorate 3009(i1DArray) Binding 5
-                              Decorate 3018(i2DArray) DescriptorSet 1
-                              Decorate 3018(i2DArray) Binding 6
-                              Decorate 3027(iCubeArray) DescriptorSet 1
-                              Decorate 3027(iCubeArray) Binding 7
-                              Decorate 3036(i2DMS) DescriptorSet 1
-                              Decorate 3036(i2DMS) Binding 9
-                              Decorate 3045(i2DMSArray) DescriptorSet 1
-                              Decorate 3045(i2DMSArray) Binding 10
-                              Decorate 4267(lodClamp) Location 7
-                              Decorate 4274(f16lodClamp) Location 17
-                              Decorate 5464(t1D) DescriptorSet 2
-                              Decorate 5464(t1D) Binding 0
-                              Decorate 5468(s) DescriptorSet 2
-                              Decorate 5468(s) Binding 11
-                              Decorate 5484(t2D) DescriptorSet 2
-                              Decorate 5484(t2D) Binding 1
-                              Decorate 5501(t3D) DescriptorSet 2
-                              Decorate 5501(t3D) Binding 2
-                              Decorate 5518(tCube) DescriptorSet 2
-                              Decorate 5518(tCube) Binding 4
-                              Decorate 5535(sShadow) DescriptorSet 2
-                              Decorate 5535(sShadow) Binding 12
-                              Decorate 5599(t1DArray) DescriptorSet 2
-                              Decorate 5599(t1DArray) Binding 5
-                              Decorate 5616(t2DArray) DescriptorSet 2
-                              Decorate 5616(t2DArray) Binding 6
-                              Decorate 5633(tCubeArray) DescriptorSet 2
-                              Decorate 5633(tCubeArray) Binding 7
-                              Decorate 5691(t2DRect) DescriptorSet 2
-                              Decorate 5691(t2DRect) Binding 3
-                              Decorate 5751(subpass) DescriptorSet 3
-                              Decorate 5751(subpass) Binding 0
-                              Decorate 5751(subpass) InputAttachmentIndex 0
-                              Decorate 5757(subpassMS) DescriptorSet 3
-                              Decorate 5757(subpassMS) Binding 1
-                              Decorate 5757(subpassMS) InputAttachmentIndex 0
-                              Decorate 5923(fragColor) Location 0
-                              Decorate 5927(tBuffer) DescriptorSet 2
-                              Decorate 5927(tBuffer) Binding 8
-                              Decorate 5929(t2DMS) DescriptorSet 2
-                              Decorate 5929(t2DMS) Binding 9
-                              Decorate 5931(t2DMSArray) DescriptorSet 2
-                              Decorate 5931(t2DMSArray) Binding 10
-                              Decorate 5932(bias) Location 6
+                              Decorate 2999(i1D) DescriptorSet 1
+                              Decorate 2999(i1D) Binding 0
+                              Decorate 3008(i2D) DescriptorSet 1
+                              Decorate 3008(i2D) Binding 1
+                              Decorate 3017(i3D) DescriptorSet 1
+                              Decorate 3017(i3D) Binding 2
+                              Decorate 3026(i2DRect) DescriptorSet 1
+                              Decorate 3026(i2DRect) Binding 3
+                              Decorate 3035(iCube) DescriptorSet 1
+                              Decorate 3035(iCube) Binding 4
+                              Decorate 3044(iBuffer) DescriptorSet 1
+                              Decorate 3044(iBuffer) Binding 8
+                              Decorate 3053(i1DArray) DescriptorSet 1
+                              Decorate 3053(i1DArray) Binding 5
+                              Decorate 3062(i2DArray) DescriptorSet 1
+                              Decorate 3062(i2DArray) Binding 6
+                              Decorate 3071(iCubeArray) DescriptorSet 1
+                              Decorate 3071(iCubeArray) Binding 7
+                              Decorate 3080(i2DMS) DescriptorSet 1
+                              Decorate 3080(i2DMS) Binding 9
+                              Decorate 3089(i2DMSArray) DescriptorSet 1
+                              Decorate 3089(i2DMSArray) Binding 10
+                              Decorate 4311(lodClamp) Location 7
+                              Decorate 4318(f16lodClamp) Location 17
+                              Decorate 5508(t1D) DescriptorSet 2
+                              Decorate 5508(t1D) Binding 0
+                              Decorate 5512(s) DescriptorSet 2
+                              Decorate 5512(s) Binding 11
+                              Decorate 5528(t2D) DescriptorSet 2
+                              Decorate 5528(t2D) Binding 1
+                              Decorate 5545(t3D) DescriptorSet 2
+                              Decorate 5545(t3D) Binding 2
+                              Decorate 5562(tCube) DescriptorSet 2
+                              Decorate 5562(tCube) Binding 4
+                              Decorate 5579(sShadow) DescriptorSet 2
+                              Decorate 5579(sShadow) Binding 12
+                              Decorate 5643(t1DArray) DescriptorSet 2
+                              Decorate 5643(t1DArray) Binding 5
+                              Decorate 5660(t2DArray) DescriptorSet 2
+                              Decorate 5660(t2DArray) Binding 6
+                              Decorate 5677(tCubeArray) DescriptorSet 2
+                              Decorate 5677(tCubeArray) Binding 7
+                              Decorate 5735(t2DRect) DescriptorSet 2
+                              Decorate 5735(t2DRect) Binding 3
+                              Decorate 5795(subpass) DescriptorSet 3
+                              Decorate 5795(subpass) Binding 0
+                              Decorate 5795(subpass) InputAttachmentIndex 0
+                              Decorate 5801(subpassMS) DescriptorSet 3
+                              Decorate 5801(subpassMS) Binding 1
+                              Decorate 5801(subpassMS) InputAttachmentIndex 0
+                              Decorate 5969(fragColor) Location 0
+                              Decorate 5973(tBuffer) DescriptorSet 2
+                              Decorate 5973(tBuffer) Binding 8
+                              Decorate 5975(t2DMS) DescriptorSet 2
+                              Decorate 5975(t2DMS) Binding 9
+                              Decorate 5977(t2DMSArray) DescriptorSet 2
+                              Decorate 5977(t2DMSArray) Binding 10
+                              Decorate 5978(bias) Location 6
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 16
@@ -453,306 +453,311 @@
             2558:             TypePointer Function 48(ivec4)
             2560:   48(ivec4) ConstantComposite 2187 2187 2187 2187
             2566:             TypePointer Function 47(int)
-            2732:             TypePointer Function 53(fvec2)
-            2734:   52(float) Constant 0
-            2735:   53(fvec2) ConstantComposite 2734 2734
-            2953:             TypeImage 6(float16_t) 1D nonsampled format:Rgba16f
-            2954:             TypePointer UniformConstant 2953
-       2955(i1D):   2954(ptr) Variable UniformConstant
-            2962:             TypeImage 6(float16_t) 2D nonsampled format:Rgba16f
-            2963:             TypePointer UniformConstant 2962
-       2964(i2D):   2963(ptr) Variable UniformConstant
-            2971:             TypeImage 6(float16_t) 3D nonsampled format:Rgba16f
-            2972:             TypePointer UniformConstant 2971
-       2973(i3D):   2972(ptr) Variable UniformConstant
-            2980:             TypeImage 6(float16_t) Rect nonsampled format:Rgba16f
-            2981:             TypePointer UniformConstant 2980
-   2982(i2DRect):   2981(ptr) Variable UniformConstant
-            2989:             TypeImage 6(float16_t) Cube nonsampled format:Rgba16f
-            2990:             TypePointer UniformConstant 2989
-     2991(iCube):   2990(ptr) Variable UniformConstant
-            2998:             TypeImage 6(float16_t) Buffer nonsampled format:Rgba16f
-            2999:             TypePointer UniformConstant 2998
-   3000(iBuffer):   2999(ptr) Variable UniformConstant
-            3007:             TypeImage 6(float16_t) 1D array nonsampled format:Rgba16f
-            3008:             TypePointer UniformConstant 3007
-  3009(i1DArray):   3008(ptr) Variable UniformConstant
-            3016:             TypeImage 6(float16_t) 2D array nonsampled format:Rgba16f
-            3017:             TypePointer UniformConstant 3016
-  3018(i2DArray):   3017(ptr) Variable UniformConstant
-            3025:             TypeImage 6(float16_t) Cube array nonsampled format:Rgba16f
-            3026:             TypePointer UniformConstant 3025
-3027(iCubeArray):   3026(ptr) Variable UniformConstant
-            3034:             TypeImage 6(float16_t) 2D multi-sampled nonsampled format:Rgba16f
-            3035:             TypePointer UniformConstant 3034
-     3036(i2DMS):   3035(ptr) Variable UniformConstant
-            3043:             TypeImage 6(float16_t) 2D array multi-sampled nonsampled format:Rgba16f
-            3044:             TypePointer UniformConstant 3043
-3045(i2DMSArray):   3044(ptr) Variable UniformConstant
-   3102(ResType):             TypeStruct 47(int) 7(f16vec4)
-   3138(ResType):             TypeStruct 47(int) 6(float16_t)
-            4025:  721(ivec2) ConstantComposite 709 1326
-            4026:     47(int) Constant 3
-            4027:     47(int) Constant 4
-            4028:  721(ivec2) ConstantComposite 4026 4027
-            4029:     47(int) Constant 15
-            4030:     47(int) Constant 16
-            4031:  721(ivec2) ConstantComposite 4029 4030
-            4032:     47(int) Constant 4294967294
-            4033:  721(ivec2) ConstantComposite 4032 2187
-            4034:        2379 ConstantComposite 4025 4028 4031 4033
-  4267(lodClamp):    127(ptr) Variable Input
-4274(f16lodClamp):    134(ptr) Variable Input
-            5463:             TypePointer UniformConstant 122
-       5464(t1D):   5463(ptr) Variable UniformConstant
-            5466:             TypeSampler
-            5467:             TypePointer UniformConstant 5466
-         5468(s):   5467(ptr) Variable UniformConstant
-            5483:             TypePointer UniformConstant 142
-       5484(t2D):   5483(ptr) Variable UniformConstant
-            5500:             TypePointer UniformConstant 162
-       5501(t3D):   5500(ptr) Variable UniformConstant
-            5517:             TypePointer UniformConstant 183
-     5518(tCube):   5517(ptr) Variable UniformConstant
-   5535(sShadow):   5467(ptr) Variable UniformConstant
-            5598:             TypePointer UniformConstant 268
-  5599(t1DArray):   5598(ptr) Variable UniformConstant
-            5615:             TypePointer UniformConstant 283
-  5616(t2DArray):   5615(ptr) Variable UniformConstant
-            5632:             TypePointer UniformConstant 298
-5633(tCubeArray):   5632(ptr) Variable UniformConstant
-            5690:             TypePointer UniformConstant 356
-   5691(t2DRect):   5690(ptr) Variable UniformConstant
-            5749:             TypeImage 6(float16_t) SubpassData nonsampled format:Unknown
-            5750:             TypePointer UniformConstant 5749
-   5751(subpass):   5750(ptr) Variable UniformConstant
-            5753:  721(ivec2) ConstantComposite 2187 2187
-            5755:             TypeImage 6(float16_t) SubpassData multi-sampled nonsampled format:Unknown
-            5756:             TypePointer UniformConstant 5755
- 5757(subpassMS):   5756(ptr) Variable UniformConstant
-            5922:             TypePointer Output 249(fvec4)
- 5923(fragColor):   5922(ptr) Variable Output
-            5926:             TypePointer UniformConstant 1297
-   5927(tBuffer):   5926(ptr) Variable UniformConstant
-            5928:             TypePointer UniformConstant 1308
-     5929(t2DMS):   5928(ptr) Variable UniformConstant
-            5930:             TypePointer UniformConstant 1319
-5931(t2DMSArray):   5930(ptr) Variable UniformConstant
-      5932(bias):    127(ptr) Variable Input
+            2581:    206(int) Constant 1
+            2596:    206(int) Constant 2
+            2776:             TypePointer Function 53(fvec2)
+            2778:   52(float) Constant 0
+            2779:   53(fvec2) ConstantComposite 2778 2778
+            2997:             TypeImage 6(float16_t) 1D nonsampled format:Rgba16f
+            2998:             TypePointer UniformConstant 2997
+       2999(i1D):   2998(ptr) Variable UniformConstant
+            3006:             TypeImage 6(float16_t) 2D nonsampled format:Rgba16f
+            3007:             TypePointer UniformConstant 3006
+       3008(i2D):   3007(ptr) Variable UniformConstant
+            3015:             TypeImage 6(float16_t) 3D nonsampled format:Rgba16f
+            3016:             TypePointer UniformConstant 3015
+       3017(i3D):   3016(ptr) Variable UniformConstant
+            3024:             TypeImage 6(float16_t) Rect nonsampled format:Rgba16f
+            3025:             TypePointer UniformConstant 3024
+   3026(i2DRect):   3025(ptr) Variable UniformConstant
+            3033:             TypeImage 6(float16_t) Cube nonsampled format:Rgba16f
+            3034:             TypePointer UniformConstant 3033
+     3035(iCube):   3034(ptr) Variable UniformConstant
+            3042:             TypeImage 6(float16_t) Buffer nonsampled format:Rgba16f
+            3043:             TypePointer UniformConstant 3042
+   3044(iBuffer):   3043(ptr) Variable UniformConstant
+            3051:             TypeImage 6(float16_t) 1D array nonsampled format:Rgba16f
+            3052:             TypePointer UniformConstant 3051
+  3053(i1DArray):   3052(ptr) Variable UniformConstant
+            3060:             TypeImage 6(float16_t) 2D array nonsampled format:Rgba16f
+            3061:             TypePointer UniformConstant 3060
+  3062(i2DArray):   3061(ptr) Variable UniformConstant
+            3069:             TypeImage 6(float16_t) Cube array nonsampled format:Rgba16f
+            3070:             TypePointer UniformConstant 3069
+3071(iCubeArray):   3070(ptr) Variable UniformConstant
+            3078:             TypeImage 6(float16_t) 2D multi-sampled nonsampled format:Rgba16f
+            3079:             TypePointer UniformConstant 3078
+     3080(i2DMS):   3079(ptr) Variable UniformConstant
+            3087:             TypeImage 6(float16_t) 2D array multi-sampled nonsampled format:Rgba16f
+            3088:             TypePointer UniformConstant 3087
+3089(i2DMSArray):   3088(ptr) Variable UniformConstant
+   3146(ResType):             TypeStruct 47(int) 7(f16vec4)
+   3182(ResType):             TypeStruct 47(int) 6(float16_t)
+            4069:  721(ivec2) ConstantComposite 709 1326
+            4070:     47(int) Constant 3
+            4071:     47(int) Constant 4
+            4072:  721(ivec2) ConstantComposite 4070 4071
+            4073:     47(int) Constant 15
+            4074:     47(int) Constant 16
+            4075:  721(ivec2) ConstantComposite 4073 4074
+            4076:     47(int) Constant 4294967294
+            4077:  721(ivec2) ConstantComposite 4076 2187
+            4078:        2379 ConstantComposite 4069 4072 4075 4077
+  4311(lodClamp):    127(ptr) Variable Input
+4318(f16lodClamp):    134(ptr) Variable Input
+            5507:             TypePointer UniformConstant 122
+       5508(t1D):   5507(ptr) Variable UniformConstant
+            5510:             TypeSampler
+            5511:             TypePointer UniformConstant 5510
+         5512(s):   5511(ptr) Variable UniformConstant
+            5527:             TypePointer UniformConstant 142
+       5528(t2D):   5527(ptr) Variable UniformConstant
+            5544:             TypePointer UniformConstant 162
+       5545(t3D):   5544(ptr) Variable UniformConstant
+            5561:             TypePointer UniformConstant 183
+     5562(tCube):   5561(ptr) Variable UniformConstant
+   5579(sShadow):   5511(ptr) Variable UniformConstant
+            5642:             TypePointer UniformConstant 268
+  5643(t1DArray):   5642(ptr) Variable UniformConstant
+            5659:             TypePointer UniformConstant 283
+  5660(t2DArray):   5659(ptr) Variable UniformConstant
+            5676:             TypePointer UniformConstant 298
+5677(tCubeArray):   5676(ptr) Variable UniformConstant
+            5734:             TypePointer UniformConstant 356
+   5735(t2DRect):   5734(ptr) Variable UniformConstant
+            5793:             TypeImage 6(float16_t) SubpassData nonsampled format:Unknown
+            5794:             TypePointer UniformConstant 5793
+   5795(subpass):   5794(ptr) Variable UniformConstant
+            5797:  721(ivec2) ConstantComposite 2187 2187
+            5799:             TypeImage 6(float16_t) SubpassData multi-sampled nonsampled format:Unknown
+            5800:             TypePointer UniformConstant 5799
+ 5801(subpassMS):   5800(ptr) Variable UniformConstant
+            5968:             TypePointer Output 249(fvec4)
+ 5969(fragColor):   5968(ptr) Variable Output
+            5972:             TypePointer UniformConstant 1297
+   5973(tBuffer):   5972(ptr) Variable UniformConstant
+            5974:             TypePointer UniformConstant 1308
+     5975(t2DMS):   5974(ptr) Variable UniformConstant
+            5976:             TypePointer UniformConstant 1319
+5977(t2DMSArray):   5976(ptr) Variable UniformConstant
+      5978(bias):    127(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
-    5763(result):     64(ptr) Variable Function
-     5844(param):     64(ptr) Variable Function
-                              Store 5763(result) 121
-            5764:  7(f16vec4) FunctionCall 9(testTexture()
-            5765:  7(f16vec4) Load 5763(result)
-            5766:  7(f16vec4) FAdd 5765 5764
-                              Store 5763(result) 5766
-            5767:  7(f16vec4) FunctionCall 11(testTextureProj()
-            5768:  7(f16vec4) Load 5763(result)
-            5769:  7(f16vec4) FAdd 5768 5767
-                              Store 5763(result) 5769
-            5770:  7(f16vec4) FunctionCall 13(testTextureLod()
-            5771:  7(f16vec4) Load 5763(result)
-            5772:  7(f16vec4) FAdd 5771 5770
-                              Store 5763(result) 5772
-            5773:  7(f16vec4) FunctionCall 15(testTextureOffset()
-            5774:  7(f16vec4) Load 5763(result)
-            5775:  7(f16vec4) FAdd 5774 5773
-                              Store 5763(result) 5775
-            5776:  7(f16vec4) FunctionCall 19(testTextureLodOffset()
-            5777:  7(f16vec4) Load 5763(result)
-            5778:  7(f16vec4) FAdd 5777 5776
-                              Store 5763(result) 5778
-            5779:  7(f16vec4) FunctionCall 21(testTextureProjLodOffset()
-            5780:  7(f16vec4) Load 5763(result)
-            5781:  7(f16vec4) FAdd 5780 5779
-                              Store 5763(result) 5781
-            5782:  7(f16vec4) FunctionCall 23(testTexelFetch()
-            5783:  7(f16vec4) Load 5763(result)
-            5784:  7(f16vec4) FAdd 5783 5782
-                              Store 5763(result) 5784
-            5785:  7(f16vec4) FunctionCall 25(testTexelFetchOffset()
-            5786:  7(f16vec4) Load 5763(result)
-            5787:  7(f16vec4) FAdd 5786 5785
-                              Store 5763(result) 5787
-            5788:  7(f16vec4) FunctionCall 27(testTextureGrad()
-            5789:  7(f16vec4) Load 5763(result)
-            5790:  7(f16vec4) FAdd 5789 5788
-                              Store 5763(result) 5790
-            5791:  7(f16vec4) FunctionCall 29(testTextureGradOffset()
-            5792:  7(f16vec4) Load 5763(result)
-            5793:  7(f16vec4) FAdd 5792 5791
-                              Store 5763(result) 5793
-            5794:  7(f16vec4) FunctionCall 31(testTextureProjGrad()
-            5795:  7(f16vec4) Load 5763(result)
-            5796:  7(f16vec4) FAdd 5795 5794
-                              Store 5763(result) 5796
-            5797:  7(f16vec4) FunctionCall 33(testTextureProjGradoffset()
-            5798:  7(f16vec4) Load 5763(result)
-            5799:  7(f16vec4) FAdd 5798 5797
-                              Store 5763(result) 5799
-            5800:  7(f16vec4) FunctionCall 35(testTextureGather()
-            5801:  7(f16vec4) Load 5763(result)
-            5802:  7(f16vec4) FAdd 5801 5800
-                              Store 5763(result) 5802
-            5803:  7(f16vec4) FunctionCall 37(testTextureGatherOffset()
-            5804:  7(f16vec4) Load 5763(result)
-            5805:  7(f16vec4) FAdd 5804 5803
-                              Store 5763(result) 5805
-            5806:  7(f16vec4) FunctionCall 39(testTextureGatherOffsets()
-            5807:  7(f16vec4) Load 5763(result)
-            5808:  7(f16vec4) FAdd 5807 5806
-                              Store 5763(result) 5808
-            5809:  7(f16vec4) FunctionCall 41(testTextureGatherLod()
-            5810:  7(f16vec4) Load 5763(result)
-            5811:  7(f16vec4) FAdd 5810 5809
-                              Store 5763(result) 5811
-            5812:  7(f16vec4) FunctionCall 43(testTextureGatherLodOffset()
-            5813:  7(f16vec4) Load 5763(result)
-            5814:  7(f16vec4) FAdd 5813 5812
-                              Store 5763(result) 5814
-            5815:  7(f16vec4) FunctionCall 45(testTextureGatherLodOffsets()
-            5816:  7(f16vec4) Load 5763(result)
-            5817:  7(f16vec4) FAdd 5816 5815
-                              Store 5763(result) 5817
-            5818:   48(ivec4) FunctionCall 50(testTextureSize()
-            5819:  7(f16vec4) ConvertSToF 5818
-            5820:  7(f16vec4) Load 5763(result)
-            5821:  7(f16vec4) FAdd 5820 5819
-                              Store 5763(result) 5821
-            5822:   53(fvec2) FunctionCall 55(testTextureQueryLod()
-            5823:154(f16vec2) FConvert 5822
-            5824:  7(f16vec4) Load 5763(result)
-            5825:154(f16vec2) VectorShuffle 5824 5824 0 1
-            5826:154(f16vec2) FAdd 5825 5823
-            5827:  7(f16vec4) Load 5763(result)
-            5828:  7(f16vec4) VectorShuffle 5827 5826 4 5 2 3
-                              Store 5763(result) 5828
-            5829:     47(int) FunctionCall 58(testTextureQueryLevels()
-            5830:6(float16_t) ConvertSToF 5829
-            5831:    208(ptr) AccessChain 5763(result) 207
-            5832:6(float16_t) Load 5831
-            5833:6(float16_t) FAdd 5832 5830
-            5834:    208(ptr) AccessChain 5763(result) 207
-                              Store 5834 5833
-            5835:     47(int) FunctionCall 60(testTextureSamples()
-            5836:6(float16_t) ConvertSToF 5835
-            5837:    208(ptr) AccessChain 5763(result) 207
-            5838:6(float16_t) Load 5837
-            5839:6(float16_t) FAdd 5838 5836
-            5840:    208(ptr) AccessChain 5763(result) 207
-                              Store 5840 5839
-            5841:  7(f16vec4) FunctionCall 62(testImageLoad()
-            5842:  7(f16vec4) Load 5763(result)
+    5807(result):     64(ptr) Variable Function
+     5890(param):     64(ptr) Variable Function
+                              Store 5807(result) 121
+            5808:  7(f16vec4) FunctionCall 9(testTexture()
+            5809:  7(f16vec4) Load 5807(result)
+            5810:  7(f16vec4) FAdd 5809 5808
+                              Store 5807(result) 5810
+            5811:  7(f16vec4) FunctionCall 11(testTextureProj()
+            5812:  7(f16vec4) Load 5807(result)
+            5813:  7(f16vec4) FAdd 5812 5811
+                              Store 5807(result) 5813
+            5814:  7(f16vec4) FunctionCall 13(testTextureLod()
+            5815:  7(f16vec4) Load 5807(result)
+            5816:  7(f16vec4) FAdd 5815 5814
+                              Store 5807(result) 5816
+            5817:  7(f16vec4) FunctionCall 15(testTextureOffset()
+            5818:  7(f16vec4) Load 5807(result)
+            5819:  7(f16vec4) FAdd 5818 5817
+                              Store 5807(result) 5819
+            5820:  7(f16vec4) FunctionCall 19(testTextureLodOffset()
+            5821:  7(f16vec4) Load 5807(result)
+            5822:  7(f16vec4) FAdd 5821 5820
+                              Store 5807(result) 5822
+            5823:  7(f16vec4) FunctionCall 21(testTextureProjLodOffset()
+            5824:  7(f16vec4) Load 5807(result)
+            5825:  7(f16vec4) FAdd 5824 5823
+                              Store 5807(result) 5825
+            5826:  7(f16vec4) FunctionCall 23(testTexelFetch()
+            5827:  7(f16vec4) Load 5807(result)
+            5828:  7(f16vec4) FAdd 5827 5826
+                              Store 5807(result) 5828
+            5829:  7(f16vec4) FunctionCall 25(testTexelFetchOffset()
+            5830:  7(f16vec4) Load 5807(result)
+            5831:  7(f16vec4) FAdd 5830 5829
+                              Store 5807(result) 5831
+            5832:  7(f16vec4) FunctionCall 27(testTextureGrad()
+            5833:  7(f16vec4) Load 5807(result)
+            5834:  7(f16vec4) FAdd 5833 5832
+                              Store 5807(result) 5834
+            5835:  7(f16vec4) FunctionCall 29(testTextureGradOffset()
+            5836:  7(f16vec4) Load 5807(result)
+            5837:  7(f16vec4) FAdd 5836 5835
+                              Store 5807(result) 5837
+            5838:  7(f16vec4) FunctionCall 31(testTextureProjGrad()
+            5839:  7(f16vec4) Load 5807(result)
+            5840:  7(f16vec4) FAdd 5839 5838
+                              Store 5807(result) 5840
+            5841:  7(f16vec4) FunctionCall 33(testTextureProjGradoffset()
+            5842:  7(f16vec4) Load 5807(result)
             5843:  7(f16vec4) FAdd 5842 5841
-                              Store 5763(result) 5843
-            5845:  7(f16vec4) Load 5763(result)
-                              Store 5844(param) 5845
-            5846:           2 FunctionCall 67(testImageStore(vf164;) 5844(param)
-            5847:  7(f16vec4) FunctionCall 69(testSparseTexture()
-            5848:  7(f16vec4) Load 5763(result)
+                              Store 5807(result) 5843
+            5844:  7(f16vec4) FunctionCall 35(testTextureGather()
+            5845:  7(f16vec4) Load 5807(result)
+            5846:  7(f16vec4) FAdd 5845 5844
+                              Store 5807(result) 5846
+            5847:  7(f16vec4) FunctionCall 37(testTextureGatherOffset()
+            5848:  7(f16vec4) Load 5807(result)
             5849:  7(f16vec4) FAdd 5848 5847
-                              Store 5763(result) 5849
-            5850:  7(f16vec4) FunctionCall 71(testSparseTextureLod()
-            5851:  7(f16vec4) Load 5763(result)
+                              Store 5807(result) 5849
+            5850:  7(f16vec4) FunctionCall 39(testTextureGatherOffsets()
+            5851:  7(f16vec4) Load 5807(result)
             5852:  7(f16vec4) FAdd 5851 5850
-                              Store 5763(result) 5852
-            5853:  7(f16vec4) FunctionCall 73(testSparseTextureOffset()
-            5854:  7(f16vec4) Load 5763(result)
+                              Store 5807(result) 5852
+            5853:  7(f16vec4) FunctionCall 41(testTextureGatherLod()
+            5854:  7(f16vec4) Load 5807(result)
             5855:  7(f16vec4) FAdd 5854 5853
-                              Store 5763(result) 5855
-            5856:  7(f16vec4) FunctionCall 75(testSparseTextureLodOffset()
-            5857:  7(f16vec4) Load 5763(result)
+                              Store 5807(result) 5855
+            5856:  7(f16vec4) FunctionCall 43(testTextureGatherLodOffset()
+            5857:  7(f16vec4) Load 5807(result)
             5858:  7(f16vec4) FAdd 5857 5856
-                              Store 5763(result) 5858
-            5859:  7(f16vec4) FunctionCall 77(testSparseTextureGrad()
-            5860:  7(f16vec4) Load 5763(result)
+                              Store 5807(result) 5858
+            5859:  7(f16vec4) FunctionCall 45(testTextureGatherLodOffsets()
+            5860:  7(f16vec4) Load 5807(result)
             5861:  7(f16vec4) FAdd 5860 5859
-                              Store 5763(result) 5861
-            5862:  7(f16vec4) FunctionCall 79(testSparseTextureGradOffset()
-            5863:  7(f16vec4) Load 5763(result)
-            5864:  7(f16vec4) FAdd 5863 5862
-                              Store 5763(result) 5864
-            5865:  7(f16vec4) FunctionCall 81(testSparseTexelFetch()
-            5866:  7(f16vec4) Load 5763(result)
-            5867:  7(f16vec4) FAdd 5866 5865
-                              Store 5763(result) 5867
-            5868:  7(f16vec4) FunctionCall 83(testSparseTexelFetchOffset()
-            5869:  7(f16vec4) Load 5763(result)
-            5870:  7(f16vec4) FAdd 5869 5868
-                              Store 5763(result) 5870
-            5871:  7(f16vec4) FunctionCall 85(testSparseTextureGather()
-            5872:  7(f16vec4) Load 5763(result)
-            5873:  7(f16vec4) FAdd 5872 5871
-                              Store 5763(result) 5873
-            5874:  7(f16vec4) FunctionCall 87(testSparseTextureGatherOffset()
-            5875:  7(f16vec4) Load 5763(result)
-            5876:  7(f16vec4) FAdd 5875 5874
-                              Store 5763(result) 5876
-            5877:  7(f16vec4) FunctionCall 89(testSparseTextureGatherOffsets()
-            5878:  7(f16vec4) Load 5763(result)
-            5879:  7(f16vec4) FAdd 5878 5877
-                              Store 5763(result) 5879
-            5880:  7(f16vec4) FunctionCall 91(testSparseTextureGatherLod()
-            5881:  7(f16vec4) Load 5763(result)
-            5882:  7(f16vec4) FAdd 5881 5880
-                              Store 5763(result) 5882
-            5883:  7(f16vec4) FunctionCall 93(testSparseTextureGatherLodOffset()
-            5884:  7(f16vec4) Load 5763(result)
-            5885:  7(f16vec4) FAdd 5884 5883
-                              Store 5763(result) 5885
-            5886:  7(f16vec4) FunctionCall 95(testSparseTextureGatherLodOffsets()
-            5887:  7(f16vec4) Load 5763(result)
-            5888:  7(f16vec4) FAdd 5887 5886
-                              Store 5763(result) 5888
-            5889:  7(f16vec4) FunctionCall 97(testSparseImageLoad()
-            5890:  7(f16vec4) Load 5763(result)
-            5891:  7(f16vec4) FAdd 5890 5889
-                              Store 5763(result) 5891
-            5892:  7(f16vec4) FunctionCall 99(testSparseTextureClamp()
-            5893:  7(f16vec4) Load 5763(result)
-            5894:  7(f16vec4) FAdd 5893 5892
-                              Store 5763(result) 5894
-            5895:  7(f16vec4) FunctionCall 101(testTextureClamp()
-            5896:  7(f16vec4) Load 5763(result)
-            5897:  7(f16vec4) FAdd 5896 5895
-                              Store 5763(result) 5897
-            5898:  7(f16vec4) FunctionCall 103(testSparseTextureOffsetClamp()
-            5899:  7(f16vec4) Load 5763(result)
-            5900:  7(f16vec4) FAdd 5899 5898
-                              Store 5763(result) 5900
-            5901:  7(f16vec4) FunctionCall 105(testTextureOffsetClamp()
-            5902:  7(f16vec4) Load 5763(result)
-            5903:  7(f16vec4) FAdd 5902 5901
-                              Store 5763(result) 5903
-            5904:  7(f16vec4) FunctionCall 77(testSparseTextureGrad()
-            5905:  7(f16vec4) Load 5763(result)
-            5906:  7(f16vec4) FAdd 5905 5904
-                              Store 5763(result) 5906
-            5907:  7(f16vec4) FunctionCall 27(testTextureGrad()
-            5908:  7(f16vec4) Load 5763(result)
-            5909:  7(f16vec4) FAdd 5908 5907
-                              Store 5763(result) 5909
-            5910:  7(f16vec4) FunctionCall 111(testSparseTextureGradOffsetClamp()
-            5911:  7(f16vec4) Load 5763(result)
-            5912:  7(f16vec4) FAdd 5911 5910
-                              Store 5763(result) 5912
-            5913:  7(f16vec4) FunctionCall 113(testTextureGradOffsetClamp()
-            5914:  7(f16vec4) Load 5763(result)
-            5915:  7(f16vec4) FAdd 5914 5913
-                              Store 5763(result) 5915
-            5916:  7(f16vec4) FunctionCall 115(testCombinedTextureSampler()
-            5917:  7(f16vec4) Load 5763(result)
-            5918:  7(f16vec4) FAdd 5917 5916
-                              Store 5763(result) 5918
-            5919:  7(f16vec4) FunctionCall 117(testSubpassLoad()
-            5920:  7(f16vec4) Load 5763(result)
-            5921:  7(f16vec4) FAdd 5920 5919
-                              Store 5763(result) 5921
-            5924:  7(f16vec4) Load 5763(result)
-            5925:  249(fvec4) FConvert 5924
-                              Store 5923(fragColor) 5925
+                              Store 5807(result) 5861
+            5862:   48(ivec4) FunctionCall 50(testTextureSize()
+            5863:  7(f16vec4) ConvertSToF 5862
+            5864:  7(f16vec4) Load 5807(result)
+            5865:  7(f16vec4) FAdd 5864 5863
+                              Store 5807(result) 5865
+            5866:   53(fvec2) FunctionCall 55(testTextureQueryLod()
+            5867:154(f16vec2) FConvert 5866
+            5868:  7(f16vec4) Load 5807(result)
+            5869:154(f16vec2) VectorShuffle 5868 5868 0 1
+            5870:154(f16vec2) FAdd 5869 5867
+            5871:    208(ptr) AccessChain 5807(result) 207
+            5872:6(float16_t) CompositeExtract 5870 0
+                              Store 5871 5872
+            5873:    208(ptr) AccessChain 5807(result) 2581
+            5874:6(float16_t) CompositeExtract 5870 1
+                              Store 5873 5874
+            5875:     47(int) FunctionCall 58(testTextureQueryLevels()
+            5876:6(float16_t) ConvertSToF 5875
+            5877:    208(ptr) AccessChain 5807(result) 207
+            5878:6(float16_t) Load 5877
+            5879:6(float16_t) FAdd 5878 5876
+            5880:    208(ptr) AccessChain 5807(result) 207
+                              Store 5880 5879
+            5881:     47(int) FunctionCall 60(testTextureSamples()
+            5882:6(float16_t) ConvertSToF 5881
+            5883:    208(ptr) AccessChain 5807(result) 207
+            5884:6(float16_t) Load 5883
+            5885:6(float16_t) FAdd 5884 5882
+            5886:    208(ptr) AccessChain 5807(result) 207
+                              Store 5886 5885
+            5887:  7(f16vec4) FunctionCall 62(testImageLoad()
+            5888:  7(f16vec4) Load 5807(result)
+            5889:  7(f16vec4) FAdd 5888 5887
+                              Store 5807(result) 5889
+            5891:  7(f16vec4) Load 5807(result)
+                              Store 5890(param) 5891
+            5892:           2 FunctionCall 67(testImageStore(vf164;) 5890(param)
+            5893:  7(f16vec4) FunctionCall 69(testSparseTexture()
+            5894:  7(f16vec4) Load 5807(result)
+            5895:  7(f16vec4) FAdd 5894 5893
+                              Store 5807(result) 5895
+            5896:  7(f16vec4) FunctionCall 71(testSparseTextureLod()
+            5897:  7(f16vec4) Load 5807(result)
+            5898:  7(f16vec4) FAdd 5897 5896
+                              Store 5807(result) 5898
+            5899:  7(f16vec4) FunctionCall 73(testSparseTextureOffset()
+            5900:  7(f16vec4) Load 5807(result)
+            5901:  7(f16vec4) FAdd 5900 5899
+                              Store 5807(result) 5901
+            5902:  7(f16vec4) FunctionCall 75(testSparseTextureLodOffset()
+            5903:  7(f16vec4) Load 5807(result)
+            5904:  7(f16vec4) FAdd 5903 5902
+                              Store 5807(result) 5904
+            5905:  7(f16vec4) FunctionCall 77(testSparseTextureGrad()
+            5906:  7(f16vec4) Load 5807(result)
+            5907:  7(f16vec4) FAdd 5906 5905
+                              Store 5807(result) 5907
+            5908:  7(f16vec4) FunctionCall 79(testSparseTextureGradOffset()
+            5909:  7(f16vec4) Load 5807(result)
+            5910:  7(f16vec4) FAdd 5909 5908
+                              Store 5807(result) 5910
+            5911:  7(f16vec4) FunctionCall 81(testSparseTexelFetch()
+            5912:  7(f16vec4) Load 5807(result)
+            5913:  7(f16vec4) FAdd 5912 5911
+                              Store 5807(result) 5913
+            5914:  7(f16vec4) FunctionCall 83(testSparseTexelFetchOffset()
+            5915:  7(f16vec4) Load 5807(result)
+            5916:  7(f16vec4) FAdd 5915 5914
+                              Store 5807(result) 5916
+            5917:  7(f16vec4) FunctionCall 85(testSparseTextureGather()
+            5918:  7(f16vec4) Load 5807(result)
+            5919:  7(f16vec4) FAdd 5918 5917
+                              Store 5807(result) 5919
+            5920:  7(f16vec4) FunctionCall 87(testSparseTextureGatherOffset()
+            5921:  7(f16vec4) Load 5807(result)
+            5922:  7(f16vec4) FAdd 5921 5920
+                              Store 5807(result) 5922
+            5923:  7(f16vec4) FunctionCall 89(testSparseTextureGatherOffsets()
+            5924:  7(f16vec4) Load 5807(result)
+            5925:  7(f16vec4) FAdd 5924 5923
+                              Store 5807(result) 5925
+            5926:  7(f16vec4) FunctionCall 91(testSparseTextureGatherLod()
+            5927:  7(f16vec4) Load 5807(result)
+            5928:  7(f16vec4) FAdd 5927 5926
+                              Store 5807(result) 5928
+            5929:  7(f16vec4) FunctionCall 93(testSparseTextureGatherLodOffset()
+            5930:  7(f16vec4) Load 5807(result)
+            5931:  7(f16vec4) FAdd 5930 5929
+                              Store 5807(result) 5931
+            5932:  7(f16vec4) FunctionCall 95(testSparseTextureGatherLodOffsets()
+            5933:  7(f16vec4) Load 5807(result)
+            5934:  7(f16vec4) FAdd 5933 5932
+                              Store 5807(result) 5934
+            5935:  7(f16vec4) FunctionCall 97(testSparseImageLoad()
+            5936:  7(f16vec4) Load 5807(result)
+            5937:  7(f16vec4) FAdd 5936 5935
+                              Store 5807(result) 5937
+            5938:  7(f16vec4) FunctionCall 99(testSparseTextureClamp()
+            5939:  7(f16vec4) Load 5807(result)
+            5940:  7(f16vec4) FAdd 5939 5938
+                              Store 5807(result) 5940
+            5941:  7(f16vec4) FunctionCall 101(testTextureClamp()
+            5942:  7(f16vec4) Load 5807(result)
+            5943:  7(f16vec4) FAdd 5942 5941
+                              Store 5807(result) 5943
+            5944:  7(f16vec4) FunctionCall 103(testSparseTextureOffsetClamp()
+            5945:  7(f16vec4) Load 5807(result)
+            5946:  7(f16vec4) FAdd 5945 5944
+                              Store 5807(result) 5946
+            5947:  7(f16vec4) FunctionCall 105(testTextureOffsetClamp()
+            5948:  7(f16vec4) Load 5807(result)
+            5949:  7(f16vec4) FAdd 5948 5947
+                              Store 5807(result) 5949
+            5950:  7(f16vec4) FunctionCall 77(testSparseTextureGrad()
+            5951:  7(f16vec4) Load 5807(result)
+            5952:  7(f16vec4) FAdd 5951 5950
+                              Store 5807(result) 5952
+            5953:  7(f16vec4) FunctionCall 27(testTextureGrad()
+            5954:  7(f16vec4) Load 5807(result)
+            5955:  7(f16vec4) FAdd 5954 5953
+                              Store 5807(result) 5955
+            5956:  7(f16vec4) FunctionCall 111(testSparseTextureGradOffsetClamp()
+            5957:  7(f16vec4) Load 5807(result)
+            5958:  7(f16vec4) FAdd 5957 5956
+                              Store 5807(result) 5958
+            5959:  7(f16vec4) FunctionCall 113(testTextureGradOffsetClamp()
+            5960:  7(f16vec4) Load 5807(result)
+            5961:  7(f16vec4) FAdd 5960 5959
+                              Store 5807(result) 5961
+            5962:  7(f16vec4) FunctionCall 115(testCombinedTextureSampler()
+            5963:  7(f16vec4) Load 5807(result)
+            5964:  7(f16vec4) FAdd 5963 5962
+                              Store 5807(result) 5964
+            5965:  7(f16vec4) FunctionCall 117(testSubpassLoad()
+            5966:  7(f16vec4) Load 5807(result)
+            5967:  7(f16vec4) FAdd 5966 5965
+                              Store 5807(result) 5967
+            5970:  7(f16vec4) Load 5807(result)
+            5971:  249(fvec4) FConvert 5970
+                              Store 5969(fragColor) 5971
                               Return
                               FunctionEnd
  9(testTexture():  7(f16vec4) Function None 8
@@ -3463,3619 +3468,3682 @@
             2576:   48(ivec4) Load 2559(size)
             2577:  721(ivec2) VectorShuffle 2576 2576 0 1
             2578:  721(ivec2) IAdd 2577 2575
-            2579:   48(ivec4) Load 2559(size)
-            2580:   48(ivec4) VectorShuffle 2579 2578 4 5 2 3
-                              Store 2559(size) 2580
-            2581:         163 Load 165(s3D)
-            2582:   52(float) Load 565(lod)
-            2583:     47(int) ConvertFToS 2582
-            2584:         162 Image 2581
-            2585:  734(ivec3) ImageQuerySizeLod 2584 2583
-            2586:   48(ivec4) Load 2559(size)
-            2587:  734(ivec3) VectorShuffle 2586 2586 0 1 2
-            2588:  734(ivec3) IAdd 2587 2585
+            2579:   2566(ptr) AccessChain 2559(size) 207
+            2580:     47(int) CompositeExtract 2578 0
+                              Store 2579 2580
+            2582:   2566(ptr) AccessChain 2559(size) 2581
+            2583:     47(int) CompositeExtract 2578 1
+                              Store 2582 2583
+            2584:         163 Load 165(s3D)
+            2585:   52(float) Load 565(lod)
+            2586:     47(int) ConvertFToS 2585
+            2587:         162 Image 2584
+            2588:  734(ivec3) ImageQuerySizeLod 2587 2586
             2589:   48(ivec4) Load 2559(size)
-            2590:   48(ivec4) VectorShuffle 2589 2588 4 5 6 3
-                              Store 2559(size) 2590
-            2591:         184 Load 186(sCube)
-            2592:   52(float) Load 565(lod)
-            2593:     47(int) ConvertFToS 2592
-            2594:         183 Image 2591
-            2595:  721(ivec2) ImageQuerySizeLod 2594 2593
-            2596:   48(ivec4) Load 2559(size)
-            2597:  721(ivec2) VectorShuffle 2596 2596 0 1
-            2598:  721(ivec2) IAdd 2597 2595
-            2599:   48(ivec4) Load 2559(size)
-            2600:   48(ivec4) VectorShuffle 2599 2598 4 5 2 3
-                              Store 2559(size) 2600
-            2601:         199 Load 201(s1DShadow)
-            2602:   52(float) Load 565(lod)
-            2603:     47(int) ConvertFToS 2602
-            2604:         198 Image 2601
-            2605:     47(int) ImageQuerySizeLod 2604 2603
-            2606:   2566(ptr) AccessChain 2559(size) 207
-            2607:     47(int) Load 2606
-            2608:     47(int) IAdd 2607 2605
-            2609:   2566(ptr) AccessChain 2559(size) 207
-                              Store 2609 2608
-            2610:         224 Load 226(s2DShadow)
-            2611:   52(float) Load 565(lod)
-            2612:     47(int) ConvertFToS 2611
-            2613:         223 Image 2610
-            2614:  721(ivec2) ImageQuerySizeLod 2613 2612
-            2615:   48(ivec4) Load 2559(size)
-            2616:  721(ivec2) VectorShuffle 2615 2615 0 1
-            2617:  721(ivec2) IAdd 2616 2614
-            2618:   48(ivec4) Load 2559(size)
-            2619:   48(ivec4) VectorShuffle 2618 2617 4 5 2 3
-                              Store 2559(size) 2619
-            2620:         245 Load 247(sCubeShadow)
+            2590:  734(ivec3) VectorShuffle 2589 2589 0 1 2
+            2591:  734(ivec3) IAdd 2590 2588
+            2592:   2566(ptr) AccessChain 2559(size) 207
+            2593:     47(int) CompositeExtract 2591 0
+                              Store 2592 2593
+            2594:   2566(ptr) AccessChain 2559(size) 2581
+            2595:     47(int) CompositeExtract 2591 1
+                              Store 2594 2595
+            2597:   2566(ptr) AccessChain 2559(size) 2596
+            2598:     47(int) CompositeExtract 2591 2
+                              Store 2597 2598
+            2599:         184 Load 186(sCube)
+            2600:   52(float) Load 565(lod)
+            2601:     47(int) ConvertFToS 2600
+            2602:         183 Image 2599
+            2603:  721(ivec2) ImageQuerySizeLod 2602 2601
+            2604:   48(ivec4) Load 2559(size)
+            2605:  721(ivec2) VectorShuffle 2604 2604 0 1
+            2606:  721(ivec2) IAdd 2605 2603
+            2607:   2566(ptr) AccessChain 2559(size) 207
+            2608:     47(int) CompositeExtract 2606 0
+                              Store 2607 2608
+            2609:   2566(ptr) AccessChain 2559(size) 2581
+            2610:     47(int) CompositeExtract 2606 1
+                              Store 2609 2610
+            2611:         199 Load 201(s1DShadow)
+            2612:   52(float) Load 565(lod)
+            2613:     47(int) ConvertFToS 2612
+            2614:         198 Image 2611
+            2615:     47(int) ImageQuerySizeLod 2614 2613
+            2616:   2566(ptr) AccessChain 2559(size) 207
+            2617:     47(int) Load 2616
+            2618:     47(int) IAdd 2617 2615
+            2619:   2566(ptr) AccessChain 2559(size) 207
+                              Store 2619 2618
+            2620:         224 Load 226(s2DShadow)
             2621:   52(float) Load 565(lod)
             2622:     47(int) ConvertFToS 2621
-            2623:         244 Image 2620
+            2623:         223 Image 2620
             2624:  721(ivec2) ImageQuerySizeLod 2623 2622
             2625:   48(ivec4) Load 2559(size)
             2626:  721(ivec2) VectorShuffle 2625 2625 0 1
             2627:  721(ivec2) IAdd 2626 2624
-            2628:   48(ivec4) Load 2559(size)
-            2629:   48(ivec4) VectorShuffle 2628 2627 4 5 2 3
-                              Store 2559(size) 2629
-            2630:         299 Load 301(sCubeArray)
-            2631:   52(float) Load 565(lod)
-            2632:     47(int) ConvertFToS 2631
-            2633:         298 Image 2630
-            2634:  734(ivec3) ImageQuerySizeLod 2633 2632
-            2635:   48(ivec4) Load 2559(size)
-            2636:  734(ivec3) VectorShuffle 2635 2635 0 1 2
-            2637:  734(ivec3) IAdd 2636 2634
-            2638:   48(ivec4) Load 2559(size)
-            2639:   48(ivec4) VectorShuffle 2638 2637 4 5 6 3
-                              Store 2559(size) 2639
-            2640:         391 Load 393(sCubeArrayShadow)
-            2641:   52(float) Load 565(lod)
-            2642:     47(int) ConvertFToS 2641
-            2643:         390 Image 2640
-            2644:  734(ivec3) ImageQuerySizeLod 2643 2642
-            2645:   48(ivec4) Load 2559(size)
-            2646:  734(ivec3) VectorShuffle 2645 2645 0 1 2
-            2647:  734(ivec3) IAdd 2646 2644
-            2648:   48(ivec4) Load 2559(size)
-            2649:   48(ivec4) VectorShuffle 2648 2647 4 5 6 3
-                              Store 2559(size) 2649
-            2650:         357 Load 359(s2DRect)
-            2651:         356 Image 2650
-            2652:  721(ivec2) ImageQuerySize 2651
-            2653:   48(ivec4) Load 2559(size)
-            2654:  721(ivec2) VectorShuffle 2653 2653 0 1
-            2655:  721(ivec2) IAdd 2654 2652
-            2656:   48(ivec4) Load 2559(size)
-            2657:   48(ivec4) VectorShuffle 2656 2655 4 5 2 3
-                              Store 2559(size) 2657
-            2658:         371 Load 373(s2DRectShadow)
-            2659:         370 Image 2658
-            2660:  721(ivec2) ImageQuerySize 2659
-            2661:   48(ivec4) Load 2559(size)
-            2662:  721(ivec2) VectorShuffle 2661 2661 0 1
-            2663:  721(ivec2) IAdd 2662 2660
-            2664:   48(ivec4) Load 2559(size)
-            2665:   48(ivec4) VectorShuffle 2664 2663 4 5 2 3
-                              Store 2559(size) 2665
-            2666:         269 Load 271(s1DArray)
-            2667:   52(float) Load 565(lod)
-            2668:     47(int) ConvertFToS 2667
-            2669:         268 Image 2666
-            2670:  721(ivec2) ImageQuerySizeLod 2669 2668
-            2671:   48(ivec4) Load 2559(size)
-            2672:  721(ivec2) VectorShuffle 2671 2671 0 1
-            2673:  721(ivec2) IAdd 2672 2670
-            2674:   48(ivec4) Load 2559(size)
-            2675:   48(ivec4) VectorShuffle 2674 2673 4 5 2 3
-                              Store 2559(size) 2675
-            2676:         284 Load 286(s2DArray)
-            2677:   52(float) Load 565(lod)
-            2678:     47(int) ConvertFToS 2677
-            2679:         283 Image 2676
-            2680:  734(ivec3) ImageQuerySizeLod 2679 2678
-            2681:   48(ivec4) Load 2559(size)
-            2682:  734(ivec3) VectorShuffle 2681 2681 0 1 2
-            2683:  734(ivec3) IAdd 2682 2680
-            2684:   48(ivec4) Load 2559(size)
-            2685:   48(ivec4) VectorShuffle 2684 2683 4 5 6 3
-                              Store 2559(size) 2685
-            2686:         316 Load 318(s1DArrayShadow)
-            2687:   52(float) Load 565(lod)
-            2688:     47(int) ConvertFToS 2687
-            2689:         315 Image 2686
-            2690:  721(ivec2) ImageQuerySizeLod 2689 2688
-            2691:   48(ivec4) Load 2559(size)
-            2692:  721(ivec2) VectorShuffle 2691 2691 0 1
-            2693:  721(ivec2) IAdd 2692 2690
-            2694:   48(ivec4) Load 2559(size)
-            2695:   48(ivec4) VectorShuffle 2694 2693 4 5 2 3
-                              Store 2559(size) 2695
-            2696:         337 Load 339(s2DArrayShadow)
-            2697:   52(float) Load 565(lod)
-            2698:     47(int) ConvertFToS 2697
-            2699:         336 Image 2696
-            2700:  734(ivec3) ImageQuerySizeLod 2699 2698
-            2701:   48(ivec4) Load 2559(size)
-            2702:  734(ivec3) VectorShuffle 2701 2701 0 1 2
-            2703:  734(ivec3) IAdd 2702 2700
-            2704:   48(ivec4) Load 2559(size)
-            2705:   48(ivec4) VectorShuffle 2704 2703 4 5 6 3
-                              Store 2559(size) 2705
-            2706:        1298 Load 1300(sBuffer)
-            2707:        1297 Image 2706
-            2708:     47(int) ImageQuerySize 2707
-            2709:   2566(ptr) AccessChain 2559(size) 207
-            2710:     47(int) Load 2709
-            2711:     47(int) IAdd 2710 2708
+            2628:   2566(ptr) AccessChain 2559(size) 207
+            2629:     47(int) CompositeExtract 2627 0
+                              Store 2628 2629
+            2630:   2566(ptr) AccessChain 2559(size) 2581
+            2631:     47(int) CompositeExtract 2627 1
+                              Store 2630 2631
+            2632:         245 Load 247(sCubeShadow)
+            2633:   52(float) Load 565(lod)
+            2634:     47(int) ConvertFToS 2633
+            2635:         244 Image 2632
+            2636:  721(ivec2) ImageQuerySizeLod 2635 2634
+            2637:   48(ivec4) Load 2559(size)
+            2638:  721(ivec2) VectorShuffle 2637 2637 0 1
+            2639:  721(ivec2) IAdd 2638 2636
+            2640:   2566(ptr) AccessChain 2559(size) 207
+            2641:     47(int) CompositeExtract 2639 0
+                              Store 2640 2641
+            2642:   2566(ptr) AccessChain 2559(size) 2581
+            2643:     47(int) CompositeExtract 2639 1
+                              Store 2642 2643
+            2644:         299 Load 301(sCubeArray)
+            2645:   52(float) Load 565(lod)
+            2646:     47(int) ConvertFToS 2645
+            2647:         298 Image 2644
+            2648:  734(ivec3) ImageQuerySizeLod 2647 2646
+            2649:   48(ivec4) Load 2559(size)
+            2650:  734(ivec3) VectorShuffle 2649 2649 0 1 2
+            2651:  734(ivec3) IAdd 2650 2648
+            2652:   2566(ptr) AccessChain 2559(size) 207
+            2653:     47(int) CompositeExtract 2651 0
+                              Store 2652 2653
+            2654:   2566(ptr) AccessChain 2559(size) 2581
+            2655:     47(int) CompositeExtract 2651 1
+                              Store 2654 2655
+            2656:   2566(ptr) AccessChain 2559(size) 2596
+            2657:     47(int) CompositeExtract 2651 2
+                              Store 2656 2657
+            2658:         391 Load 393(sCubeArrayShadow)
+            2659:   52(float) Load 565(lod)
+            2660:     47(int) ConvertFToS 2659
+            2661:         390 Image 2658
+            2662:  734(ivec3) ImageQuerySizeLod 2661 2660
+            2663:   48(ivec4) Load 2559(size)
+            2664:  734(ivec3) VectorShuffle 2663 2663 0 1 2
+            2665:  734(ivec3) IAdd 2664 2662
+            2666:   2566(ptr) AccessChain 2559(size) 207
+            2667:     47(int) CompositeExtract 2665 0
+                              Store 2666 2667
+            2668:   2566(ptr) AccessChain 2559(size) 2581
+            2669:     47(int) CompositeExtract 2665 1
+                              Store 2668 2669
+            2670:   2566(ptr) AccessChain 2559(size) 2596
+            2671:     47(int) CompositeExtract 2665 2
+                              Store 2670 2671
+            2672:         357 Load 359(s2DRect)
+            2673:         356 Image 2672
+            2674:  721(ivec2) ImageQuerySize 2673
+            2675:   48(ivec4) Load 2559(size)
+            2676:  721(ivec2) VectorShuffle 2675 2675 0 1
+            2677:  721(ivec2) IAdd 2676 2674
+            2678:   2566(ptr) AccessChain 2559(size) 207
+            2679:     47(int) CompositeExtract 2677 0
+                              Store 2678 2679
+            2680:   2566(ptr) AccessChain 2559(size) 2581
+            2681:     47(int) CompositeExtract 2677 1
+                              Store 2680 2681
+            2682:         371 Load 373(s2DRectShadow)
+            2683:         370 Image 2682
+            2684:  721(ivec2) ImageQuerySize 2683
+            2685:   48(ivec4) Load 2559(size)
+            2686:  721(ivec2) VectorShuffle 2685 2685 0 1
+            2687:  721(ivec2) IAdd 2686 2684
+            2688:   2566(ptr) AccessChain 2559(size) 207
+            2689:     47(int) CompositeExtract 2687 0
+                              Store 2688 2689
+            2690:   2566(ptr) AccessChain 2559(size) 2581
+            2691:     47(int) CompositeExtract 2687 1
+                              Store 2690 2691
+            2692:         269 Load 271(s1DArray)
+            2693:   52(float) Load 565(lod)
+            2694:     47(int) ConvertFToS 2693
+            2695:         268 Image 2692
+            2696:  721(ivec2) ImageQuerySizeLod 2695 2694
+            2697:   48(ivec4) Load 2559(size)
+            2698:  721(ivec2) VectorShuffle 2697 2697 0 1
+            2699:  721(ivec2) IAdd 2698 2696
+            2700:   2566(ptr) AccessChain 2559(size) 207
+            2701:     47(int) CompositeExtract 2699 0
+                              Store 2700 2701
+            2702:   2566(ptr) AccessChain 2559(size) 2581
+            2703:     47(int) CompositeExtract 2699 1
+                              Store 2702 2703
+            2704:         284 Load 286(s2DArray)
+            2705:   52(float) Load 565(lod)
+            2706:     47(int) ConvertFToS 2705
+            2707:         283 Image 2704
+            2708:  734(ivec3) ImageQuerySizeLod 2707 2706
+            2709:   48(ivec4) Load 2559(size)
+            2710:  734(ivec3) VectorShuffle 2709 2709 0 1 2
+            2711:  734(ivec3) IAdd 2710 2708
             2712:   2566(ptr) AccessChain 2559(size) 207
-                              Store 2712 2711
-            2713:        1309 Load 1311(s2DMS)
-            2714:        1308 Image 2713
-            2715:  721(ivec2) ImageQuerySize 2714
-            2716:   48(ivec4) Load 2559(size)
-            2717:  721(ivec2) VectorShuffle 2716 2716 0 1
-            2718:  721(ivec2) IAdd 2717 2715
-            2719:   48(ivec4) Load 2559(size)
-            2720:   48(ivec4) VectorShuffle 2719 2718 4 5 2 3
-                              Store 2559(size) 2720
-            2721:        1320 Load 1322(s2DMSArray)
-            2722:        1319 Image 2721
-            2723:  734(ivec3) ImageQuerySize 2722
-            2724:   48(ivec4) Load 2559(size)
-            2725:  734(ivec3) VectorShuffle 2724 2724 0 1 2
-            2726:  734(ivec3) IAdd 2725 2723
-            2727:   48(ivec4) Load 2559(size)
-            2728:   48(ivec4) VectorShuffle 2727 2726 4 5 6 3
-                              Store 2559(size) 2728
-            2729:   48(ivec4) Load 2559(size)
-                              ReturnValue 2729
+            2713:     47(int) CompositeExtract 2711 0
+                              Store 2712 2713
+            2714:   2566(ptr) AccessChain 2559(size) 2581
+            2715:     47(int) CompositeExtract 2711 1
+                              Store 2714 2715
+            2716:   2566(ptr) AccessChain 2559(size) 2596
+            2717:     47(int) CompositeExtract 2711 2
+                              Store 2716 2717
+            2718:         316 Load 318(s1DArrayShadow)
+            2719:   52(float) Load 565(lod)
+            2720:     47(int) ConvertFToS 2719
+            2721:         315 Image 2718
+            2722:  721(ivec2) ImageQuerySizeLod 2721 2720
+            2723:   48(ivec4) Load 2559(size)
+            2724:  721(ivec2) VectorShuffle 2723 2723 0 1
+            2725:  721(ivec2) IAdd 2724 2722
+            2726:   2566(ptr) AccessChain 2559(size) 207
+            2727:     47(int) CompositeExtract 2725 0
+                              Store 2726 2727
+            2728:   2566(ptr) AccessChain 2559(size) 2581
+            2729:     47(int) CompositeExtract 2725 1
+                              Store 2728 2729
+            2730:         337 Load 339(s2DArrayShadow)
+            2731:   52(float) Load 565(lod)
+            2732:     47(int) ConvertFToS 2731
+            2733:         336 Image 2730
+            2734:  734(ivec3) ImageQuerySizeLod 2733 2732
+            2735:   48(ivec4) Load 2559(size)
+            2736:  734(ivec3) VectorShuffle 2735 2735 0 1 2
+            2737:  734(ivec3) IAdd 2736 2734
+            2738:   2566(ptr) AccessChain 2559(size) 207
+            2739:     47(int) CompositeExtract 2737 0
+                              Store 2738 2739
+            2740:   2566(ptr) AccessChain 2559(size) 2581
+            2741:     47(int) CompositeExtract 2737 1
+                              Store 2740 2741
+            2742:   2566(ptr) AccessChain 2559(size) 2596
+            2743:     47(int) CompositeExtract 2737 2
+                              Store 2742 2743
+            2744:        1298 Load 1300(sBuffer)
+            2745:        1297 Image 2744
+            2746:     47(int) ImageQuerySize 2745
+            2747:   2566(ptr) AccessChain 2559(size) 207
+            2748:     47(int) Load 2747
+            2749:     47(int) IAdd 2748 2746
+            2750:   2566(ptr) AccessChain 2559(size) 207
+                              Store 2750 2749
+            2751:        1309 Load 1311(s2DMS)
+            2752:        1308 Image 2751
+            2753:  721(ivec2) ImageQuerySize 2752
+            2754:   48(ivec4) Load 2559(size)
+            2755:  721(ivec2) VectorShuffle 2754 2754 0 1
+            2756:  721(ivec2) IAdd 2755 2753
+            2757:   2566(ptr) AccessChain 2559(size) 207
+            2758:     47(int) CompositeExtract 2756 0
+                              Store 2757 2758
+            2759:   2566(ptr) AccessChain 2559(size) 2581
+            2760:     47(int) CompositeExtract 2756 1
+                              Store 2759 2760
+            2761:        1320 Load 1322(s2DMSArray)
+            2762:        1319 Image 2761
+            2763:  734(ivec3) ImageQuerySize 2762
+            2764:   48(ivec4) Load 2559(size)
+            2765:  734(ivec3) VectorShuffle 2764 2764 0 1 2
+            2766:  734(ivec3) IAdd 2765 2763
+            2767:   2566(ptr) AccessChain 2559(size) 207
+            2768:     47(int) CompositeExtract 2766 0
+                              Store 2767 2768
+            2769:   2566(ptr) AccessChain 2559(size) 2581
+            2770:     47(int) CompositeExtract 2766 1
+                              Store 2769 2770
+            2771:   2566(ptr) AccessChain 2559(size) 2596
+            2772:     47(int) CompositeExtract 2766 2
+                              Store 2771 2772
+            2773:   48(ivec4) Load 2559(size)
+                              ReturnValue 2773
                               FunctionEnd
 55(testTextureQueryLod():   53(fvec2) Function None 54
               56:             Label
-       2733(lod):   2732(ptr) Variable Function
-                              Store 2733(lod) 2735
-            2736:         123 Load 125(s1D)
-            2737:   52(float) Load 128(c1)
-            2738:   53(fvec2) ImageQueryLod 2736 2737
-            2739:   53(fvec2) Load 2733(lod)
-            2740:   53(fvec2) FAdd 2739 2738
-                              Store 2733(lod) 2740
-            2741:         123 Load 125(s1D)
-            2742:6(float16_t) Load 135(f16c1)
-            2743:154(f16vec2) ImageQueryLod 2741 2742
-            2744:   53(fvec2) Load 2733(lod)
-            2745:   53(fvec2) FAdd 2744 2743
-                              Store 2733(lod) 2745
-            2746:         143 Load 145(s2D)
-            2747:   53(fvec2) Load 148(c2)
-            2748:   53(fvec2) ImageQueryLod 2746 2747
-            2749:   53(fvec2) Load 2733(lod)
-            2750:   53(fvec2) FAdd 2749 2748
-                              Store 2733(lod) 2750
-            2751:         143 Load 145(s2D)
-            2752:154(f16vec2) Load 156(f16c2)
-            2753:154(f16vec2) ImageQueryLod 2751 2752
-            2754:   53(fvec2) Load 2733(lod)
-            2755:   53(fvec2) FAdd 2754 2753
-                              Store 2733(lod) 2755
-            2756:         163 Load 165(s3D)
-            2757:  167(fvec3) Load 169(c3)
-            2758:   53(fvec2) ImageQueryLod 2756 2757
-            2759:   53(fvec2) Load 2733(lod)
-            2760:   53(fvec2) FAdd 2759 2758
-                              Store 2733(lod) 2760
-            2761:         163 Load 165(s3D)
-            2762:175(f16vec3) Load 177(f16c3)
-            2763:154(f16vec2) ImageQueryLod 2761 2762
-            2764:   53(fvec2) Load 2733(lod)
-            2765:   53(fvec2) FAdd 2764 2763
-                              Store 2733(lod) 2765
-            2766:         184 Load 186(sCube)
-            2767:  167(fvec3) Load 169(c3)
-            2768:   53(fvec2) ImageQueryLod 2766 2767
-            2769:   53(fvec2) Load 2733(lod)
-            2770:   53(fvec2) FAdd 2769 2768
-                              Store 2733(lod) 2770
-            2771:         184 Load 186(sCube)
-            2772:175(f16vec3) Load 177(f16c3)
-            2773:154(f16vec2) ImageQueryLod 2771 2772
-            2774:   53(fvec2) Load 2733(lod)
-            2775:   53(fvec2) FAdd 2774 2773
-                              Store 2733(lod) 2775
-            2776:         269 Load 271(s1DArray)
-            2777:   52(float) Load 128(c1)
-            2778:   53(fvec2) ImageQueryLod 2776 2777
-            2779:   53(fvec2) Load 2733(lod)
-            2780:   53(fvec2) FAdd 2779 2778
-                              Store 2733(lod) 2780
-            2781:         269 Load 271(s1DArray)
-            2782:6(float16_t) Load 135(f16c1)
-            2783:154(f16vec2) ImageQueryLod 2781 2782
-            2784:   53(fvec2) Load 2733(lod)
-            2785:   53(fvec2) FAdd 2784 2783
-                              Store 2733(lod) 2785
-            2786:         284 Load 286(s2DArray)
-            2787:   53(fvec2) Load 148(c2)
-            2788:   53(fvec2) ImageQueryLod 2786 2787
-            2789:   53(fvec2) Load 2733(lod)
-            2790:   53(fvec2) FAdd 2789 2788
-                              Store 2733(lod) 2790
-            2791:         284 Load 286(s2DArray)
-            2792:154(f16vec2) Load 156(f16c2)
-            2793:154(f16vec2) ImageQueryLod 2791 2792
-            2794:   53(fvec2) Load 2733(lod)
-            2795:   53(fvec2) FAdd 2794 2793
-                              Store 2733(lod) 2795
-            2796:         299 Load 301(sCubeArray)
-            2797:  167(fvec3) Load 169(c3)
-            2798:   53(fvec2) ImageQueryLod 2796 2797
-            2799:   53(fvec2) Load 2733(lod)
-            2800:   53(fvec2) FAdd 2799 2798
-                              Store 2733(lod) 2800
-            2801:         299 Load 301(sCubeArray)
-            2802:175(f16vec3) Load 177(f16c3)
-            2803:154(f16vec2) ImageQueryLod 2801 2802
-            2804:   53(fvec2) Load 2733(lod)
-            2805:   53(fvec2) FAdd 2804 2803
-                              Store 2733(lod) 2805
-            2806:         199 Load 201(s1DShadow)
-            2807:   52(float) Load 128(c1)
-            2808:   53(fvec2) ImageQueryLod 2806 2807
-            2809:   53(fvec2) Load 2733(lod)
-            2810:   53(fvec2) FAdd 2809 2808
-                              Store 2733(lod) 2810
-            2811:         199 Load 201(s1DShadow)
-            2812:6(float16_t) Load 135(f16c1)
-            2813:154(f16vec2) ImageQueryLod 2811 2812
-            2814:   53(fvec2) Load 2733(lod)
-            2815:   53(fvec2) FAdd 2814 2813
-                              Store 2733(lod) 2815
-            2816:         224 Load 226(s2DShadow)
-            2817:   53(fvec2) Load 148(c2)
-            2818:   53(fvec2) ImageQueryLod 2816 2817
-            2819:   53(fvec2) Load 2733(lod)
-            2820:   53(fvec2) FAdd 2819 2818
-                              Store 2733(lod) 2820
-            2821:         224 Load 226(s2DShadow)
-            2822:154(f16vec2) Load 156(f16c2)
-            2823:154(f16vec2) ImageQueryLod 2821 2822
-            2824:   53(fvec2) Load 2733(lod)
-            2825:   53(fvec2) FAdd 2824 2823
-                              Store 2733(lod) 2825
-            2826:         391 Load 393(sCubeArrayShadow)
-            2827:  167(fvec3) Load 169(c3)
-            2828:   53(fvec2) ImageQueryLod 2826 2827
-            2829:   53(fvec2) Load 2733(lod)
-            2830:   53(fvec2) FAdd 2829 2828
-                              Store 2733(lod) 2830
-            2831:         391 Load 393(sCubeArrayShadow)
-            2832:175(f16vec3) Load 177(f16c3)
-            2833:154(f16vec2) ImageQueryLod 2831 2832
-            2834:   53(fvec2) Load 2733(lod)
-            2835:   53(fvec2) FAdd 2834 2833
-                              Store 2733(lod) 2835
-            2836:         316 Load 318(s1DArrayShadow)
-            2837:   52(float) Load 128(c1)
-            2838:   53(fvec2) ImageQueryLod 2836 2837
-            2839:   53(fvec2) Load 2733(lod)
-            2840:   53(fvec2) FAdd 2839 2838
-                              Store 2733(lod) 2840
-            2841:         316 Load 318(s1DArrayShadow)
-            2842:6(float16_t) Load 135(f16c1)
-            2843:154(f16vec2) ImageQueryLod 2841 2842
-            2844:   53(fvec2) Load 2733(lod)
-            2845:   53(fvec2) FAdd 2844 2843
-                              Store 2733(lod) 2845
-            2846:         337 Load 339(s2DArrayShadow)
-            2847:   53(fvec2) Load 148(c2)
-            2848:   53(fvec2) ImageQueryLod 2846 2847
-            2849:   53(fvec2) Load 2733(lod)
-            2850:   53(fvec2) FAdd 2849 2848
-                              Store 2733(lod) 2850
-            2851:         337 Load 339(s2DArrayShadow)
-            2852:154(f16vec2) Load 156(f16c2)
-            2853:154(f16vec2) ImageQueryLod 2851 2852
-            2854:   53(fvec2) Load 2733(lod)
-            2855:   53(fvec2) FAdd 2854 2853
-                              Store 2733(lod) 2855
-            2856:         391 Load 393(sCubeArrayShadow)
-            2857:  167(fvec3) Load 169(c3)
-            2858:   53(fvec2) ImageQueryLod 2856 2857
-            2859:   53(fvec2) Load 2733(lod)
-            2860:   53(fvec2) FAdd 2859 2858
-                              Store 2733(lod) 2860
-            2861:         391 Load 393(sCubeArrayShadow)
-            2862:175(f16vec3) Load 177(f16c3)
-            2863:154(f16vec2) ImageQueryLod 2861 2862
-            2864:   53(fvec2) Load 2733(lod)
-            2865:   53(fvec2) FAdd 2864 2863
-                              Store 2733(lod) 2865
-            2866:   53(fvec2) Load 2733(lod)
-                              ReturnValue 2866
+       2777(lod):   2776(ptr) Variable Function
+                              Store 2777(lod) 2779
+            2780:         123 Load 125(s1D)
+            2781:   52(float) Load 128(c1)
+            2782:   53(fvec2) ImageQueryLod 2780 2781
+            2783:   53(fvec2) Load 2777(lod)
+            2784:   53(fvec2) FAdd 2783 2782
+                              Store 2777(lod) 2784
+            2785:         123 Load 125(s1D)
+            2786:6(float16_t) Load 135(f16c1)
+            2787:154(f16vec2) ImageQueryLod 2785 2786
+            2788:   53(fvec2) Load 2777(lod)
+            2789:   53(fvec2) FAdd 2788 2787
+                              Store 2777(lod) 2789
+            2790:         143 Load 145(s2D)
+            2791:   53(fvec2) Load 148(c2)
+            2792:   53(fvec2) ImageQueryLod 2790 2791
+            2793:   53(fvec2) Load 2777(lod)
+            2794:   53(fvec2) FAdd 2793 2792
+                              Store 2777(lod) 2794
+            2795:         143 Load 145(s2D)
+            2796:154(f16vec2) Load 156(f16c2)
+            2797:154(f16vec2) ImageQueryLod 2795 2796
+            2798:   53(fvec2) Load 2777(lod)
+            2799:   53(fvec2) FAdd 2798 2797
+                              Store 2777(lod) 2799
+            2800:         163 Load 165(s3D)
+            2801:  167(fvec3) Load 169(c3)
+            2802:   53(fvec2) ImageQueryLod 2800 2801
+            2803:   53(fvec2) Load 2777(lod)
+            2804:   53(fvec2) FAdd 2803 2802
+                              Store 2777(lod) 2804
+            2805:         163 Load 165(s3D)
+            2806:175(f16vec3) Load 177(f16c3)
+            2807:154(f16vec2) ImageQueryLod 2805 2806
+            2808:   53(fvec2) Load 2777(lod)
+            2809:   53(fvec2) FAdd 2808 2807
+                              Store 2777(lod) 2809
+            2810:         184 Load 186(sCube)
+            2811:  167(fvec3) Load 169(c3)
+            2812:   53(fvec2) ImageQueryLod 2810 2811
+            2813:   53(fvec2) Load 2777(lod)
+            2814:   53(fvec2) FAdd 2813 2812
+                              Store 2777(lod) 2814
+            2815:         184 Load 186(sCube)
+            2816:175(f16vec3) Load 177(f16c3)
+            2817:154(f16vec2) ImageQueryLod 2815 2816
+            2818:   53(fvec2) Load 2777(lod)
+            2819:   53(fvec2) FAdd 2818 2817
+                              Store 2777(lod) 2819
+            2820:         269 Load 271(s1DArray)
+            2821:   52(float) Load 128(c1)
+            2822:   53(fvec2) ImageQueryLod 2820 2821
+            2823:   53(fvec2) Load 2777(lod)
+            2824:   53(fvec2) FAdd 2823 2822
+                              Store 2777(lod) 2824
+            2825:         269 Load 271(s1DArray)
+            2826:6(float16_t) Load 135(f16c1)
+            2827:154(f16vec2) ImageQueryLod 2825 2826
+            2828:   53(fvec2) Load 2777(lod)
+            2829:   53(fvec2) FAdd 2828 2827
+                              Store 2777(lod) 2829
+            2830:         284 Load 286(s2DArray)
+            2831:   53(fvec2) Load 148(c2)
+            2832:   53(fvec2) ImageQueryLod 2830 2831
+            2833:   53(fvec2) Load 2777(lod)
+            2834:   53(fvec2) FAdd 2833 2832
+                              Store 2777(lod) 2834
+            2835:         284 Load 286(s2DArray)
+            2836:154(f16vec2) Load 156(f16c2)
+            2837:154(f16vec2) ImageQueryLod 2835 2836
+            2838:   53(fvec2) Load 2777(lod)
+            2839:   53(fvec2) FAdd 2838 2837
+                              Store 2777(lod) 2839
+            2840:         299 Load 301(sCubeArray)
+            2841:  167(fvec3) Load 169(c3)
+            2842:   53(fvec2) ImageQueryLod 2840 2841
+            2843:   53(fvec2) Load 2777(lod)
+            2844:   53(fvec2) FAdd 2843 2842
+                              Store 2777(lod) 2844
+            2845:         299 Load 301(sCubeArray)
+            2846:175(f16vec3) Load 177(f16c3)
+            2847:154(f16vec2) ImageQueryLod 2845 2846
+            2848:   53(fvec2) Load 2777(lod)
+            2849:   53(fvec2) FAdd 2848 2847
+                              Store 2777(lod) 2849
+            2850:         199 Load 201(s1DShadow)
+            2851:   52(float) Load 128(c1)
+            2852:   53(fvec2) ImageQueryLod 2850 2851
+            2853:   53(fvec2) Load 2777(lod)
+            2854:   53(fvec2) FAdd 2853 2852
+                              Store 2777(lod) 2854
+            2855:         199 Load 201(s1DShadow)
+            2856:6(float16_t) Load 135(f16c1)
+            2857:154(f16vec2) ImageQueryLod 2855 2856
+            2858:   53(fvec2) Load 2777(lod)
+            2859:   53(fvec2) FAdd 2858 2857
+                              Store 2777(lod) 2859
+            2860:         224 Load 226(s2DShadow)
+            2861:   53(fvec2) Load 148(c2)
+            2862:   53(fvec2) ImageQueryLod 2860 2861
+            2863:   53(fvec2) Load 2777(lod)
+            2864:   53(fvec2) FAdd 2863 2862
+                              Store 2777(lod) 2864
+            2865:         224 Load 226(s2DShadow)
+            2866:154(f16vec2) Load 156(f16c2)
+            2867:154(f16vec2) ImageQueryLod 2865 2866
+            2868:   53(fvec2) Load 2777(lod)
+            2869:   53(fvec2) FAdd 2868 2867
+                              Store 2777(lod) 2869
+            2870:         391 Load 393(sCubeArrayShadow)
+            2871:  167(fvec3) Load 169(c3)
+            2872:   53(fvec2) ImageQueryLod 2870 2871
+            2873:   53(fvec2) Load 2777(lod)
+            2874:   53(fvec2) FAdd 2873 2872
+                              Store 2777(lod) 2874
+            2875:         391 Load 393(sCubeArrayShadow)
+            2876:175(f16vec3) Load 177(f16c3)
+            2877:154(f16vec2) ImageQueryLod 2875 2876
+            2878:   53(fvec2) Load 2777(lod)
+            2879:   53(fvec2) FAdd 2878 2877
+                              Store 2777(lod) 2879
+            2880:         316 Load 318(s1DArrayShadow)
+            2881:   52(float) Load 128(c1)
+            2882:   53(fvec2) ImageQueryLod 2880 2881
+            2883:   53(fvec2) Load 2777(lod)
+            2884:   53(fvec2) FAdd 2883 2882
+                              Store 2777(lod) 2884
+            2885:         316 Load 318(s1DArrayShadow)
+            2886:6(float16_t) Load 135(f16c1)
+            2887:154(f16vec2) ImageQueryLod 2885 2886
+            2888:   53(fvec2) Load 2777(lod)
+            2889:   53(fvec2) FAdd 2888 2887
+                              Store 2777(lod) 2889
+            2890:         337 Load 339(s2DArrayShadow)
+            2891:   53(fvec2) Load 148(c2)
+            2892:   53(fvec2) ImageQueryLod 2890 2891
+            2893:   53(fvec2) Load 2777(lod)
+            2894:   53(fvec2) FAdd 2893 2892
+                              Store 2777(lod) 2894
+            2895:         337 Load 339(s2DArrayShadow)
+            2896:154(f16vec2) Load 156(f16c2)
+            2897:154(f16vec2) ImageQueryLod 2895 2896
+            2898:   53(fvec2) Load 2777(lod)
+            2899:   53(fvec2) FAdd 2898 2897
+                              Store 2777(lod) 2899
+            2900:         391 Load 393(sCubeArrayShadow)
+            2901:  167(fvec3) Load 169(c3)
+            2902:   53(fvec2) ImageQueryLod 2900 2901
+            2903:   53(fvec2) Load 2777(lod)
+            2904:   53(fvec2) FAdd 2903 2902
+                              Store 2777(lod) 2904
+            2905:         391 Load 393(sCubeArrayShadow)
+            2906:175(f16vec3) Load 177(f16c3)
+            2907:154(f16vec2) ImageQueryLod 2905 2906
+            2908:   53(fvec2) Load 2777(lod)
+            2909:   53(fvec2) FAdd 2908 2907
+                              Store 2777(lod) 2909
+            2910:   53(fvec2) Load 2777(lod)
+                              ReturnValue 2910
                               FunctionEnd
 58(testTextureQueryLevels():     47(int) Function None 57
               59:             Label
-    2869(levels):   2566(ptr) Variable Function
-                              Store 2869(levels) 2187
-            2870:         123 Load 125(s1D)
-            2871:         122 Image 2870
-            2872:     47(int) ImageQueryLevels 2871
-            2873:     47(int) Load 2869(levels)
-            2874:     47(int) IAdd 2873 2872
-                              Store 2869(levels) 2874
-            2875:         143 Load 145(s2D)
-            2876:         142 Image 2875
-            2877:     47(int) ImageQueryLevels 2876
-            2878:     47(int) Load 2869(levels)
-            2879:     47(int) IAdd 2878 2877
-                              Store 2869(levels) 2879
-            2880:         163 Load 165(s3D)
-            2881:         162 Image 2880
-            2882:     47(int) ImageQueryLevels 2881
-            2883:     47(int) Load 2869(levels)
-            2884:     47(int) IAdd 2883 2882
-                              Store 2869(levels) 2884
-            2885:         184 Load 186(sCube)
-            2886:         183 Image 2885
-            2887:     47(int) ImageQueryLevels 2886
-            2888:     47(int) Load 2869(levels)
-            2889:     47(int) IAdd 2888 2887
-                              Store 2869(levels) 2889
-            2890:         199 Load 201(s1DShadow)
-            2891:         198 Image 2890
-            2892:     47(int) ImageQueryLevels 2891
-            2893:     47(int) Load 2869(levels)
-            2894:     47(int) IAdd 2893 2892
-                              Store 2869(levels) 2894
-            2895:         224 Load 226(s2DShadow)
-            2896:         223 Image 2895
-            2897:     47(int) ImageQueryLevels 2896
-            2898:     47(int) Load 2869(levels)
-            2899:     47(int) IAdd 2898 2897
-                              Store 2869(levels) 2899
-            2900:         245 Load 247(sCubeShadow)
-            2901:         244 Image 2900
-            2902:     47(int) ImageQueryLevels 2901
-            2903:     47(int) Load 2869(levels)
-            2904:     47(int) IAdd 2903 2902
-                              Store 2869(levels) 2904
-            2905:         299 Load 301(sCubeArray)
-            2906:         298 Image 2905
-            2907:     47(int) ImageQueryLevels 2906
-            2908:     47(int) Load 2869(levels)
-            2909:     47(int) IAdd 2908 2907
-                              Store 2869(levels) 2909
-            2910:         391 Load 393(sCubeArrayShadow)
-            2911:         390 Image 2910
-            2912:     47(int) ImageQueryLevels 2911
-            2913:     47(int) Load 2869(levels)
-            2914:     47(int) IAdd 2913 2912
-                              Store 2869(levels) 2914
-            2915:         269 Load 271(s1DArray)
-            2916:         268 Image 2915
-            2917:     47(int) ImageQueryLevels 2916
-            2918:     47(int) Load 2869(levels)
-            2919:     47(int) IAdd 2918 2917
-                              Store 2869(levels) 2919
-            2920:         284 Load 286(s2DArray)
-            2921:         283 Image 2920
-            2922:     47(int) ImageQueryLevels 2921
-            2923:     47(int) Load 2869(levels)
-            2924:     47(int) IAdd 2923 2922
-                              Store 2869(levels) 2924
-            2925:         316 Load 318(s1DArrayShadow)
-            2926:         315 Image 2925
-            2927:     47(int) ImageQueryLevels 2926
-            2928:     47(int) Load 2869(levels)
-            2929:     47(int) IAdd 2928 2927
-                              Store 2869(levels) 2929
-            2930:         337 Load 339(s2DArrayShadow)
-            2931:         336 Image 2930
-            2932:     47(int) ImageQueryLevels 2931
-            2933:     47(int) Load 2869(levels)
-            2934:     47(int) IAdd 2933 2932
-                              Store 2869(levels) 2934
-            2935:     47(int) Load 2869(levels)
-                              ReturnValue 2935
+    2913(levels):   2566(ptr) Variable Function
+                              Store 2913(levels) 2187
+            2914:         123 Load 125(s1D)
+            2915:         122 Image 2914
+            2916:     47(int) ImageQueryLevels 2915
+            2917:     47(int) Load 2913(levels)
+            2918:     47(int) IAdd 2917 2916
+                              Store 2913(levels) 2918
+            2919:         143 Load 145(s2D)
+            2920:         142 Image 2919
+            2921:     47(int) ImageQueryLevels 2920
+            2922:     47(int) Load 2913(levels)
+            2923:     47(int) IAdd 2922 2921
+                              Store 2913(levels) 2923
+            2924:         163 Load 165(s3D)
+            2925:         162 Image 2924
+            2926:     47(int) ImageQueryLevels 2925
+            2927:     47(int) Load 2913(levels)
+            2928:     47(int) IAdd 2927 2926
+                              Store 2913(levels) 2928
+            2929:         184 Load 186(sCube)
+            2930:         183 Image 2929
+            2931:     47(int) ImageQueryLevels 2930
+            2932:     47(int) Load 2913(levels)
+            2933:     47(int) IAdd 2932 2931
+                              Store 2913(levels) 2933
+            2934:         199 Load 201(s1DShadow)
+            2935:         198 Image 2934
+            2936:     47(int) ImageQueryLevels 2935
+            2937:     47(int) Load 2913(levels)
+            2938:     47(int) IAdd 2937 2936
+                              Store 2913(levels) 2938
+            2939:         224 Load 226(s2DShadow)
+            2940:         223 Image 2939
+            2941:     47(int) ImageQueryLevels 2940
+            2942:     47(int) Load 2913(levels)
+            2943:     47(int) IAdd 2942 2941
+                              Store 2913(levels) 2943
+            2944:         245 Load 247(sCubeShadow)
+            2945:         244 Image 2944
+            2946:     47(int) ImageQueryLevels 2945
+            2947:     47(int) Load 2913(levels)
+            2948:     47(int) IAdd 2947 2946
+                              Store 2913(levels) 2948
+            2949:         299 Load 301(sCubeArray)
+            2950:         298 Image 2949
+            2951:     47(int) ImageQueryLevels 2950
+            2952:     47(int) Load 2913(levels)
+            2953:     47(int) IAdd 2952 2951
+                              Store 2913(levels) 2953
+            2954:         391 Load 393(sCubeArrayShadow)
+            2955:         390 Image 2954
+            2956:     47(int) ImageQueryLevels 2955
+            2957:     47(int) Load 2913(levels)
+            2958:     47(int) IAdd 2957 2956
+                              Store 2913(levels) 2958
+            2959:         269 Load 271(s1DArray)
+            2960:         268 Image 2959
+            2961:     47(int) ImageQueryLevels 2960
+            2962:     47(int) Load 2913(levels)
+            2963:     47(int) IAdd 2962 2961
+                              Store 2913(levels) 2963
+            2964:         284 Load 286(s2DArray)
+            2965:         283 Image 2964
+            2966:     47(int) ImageQueryLevels 2965
+            2967:     47(int) Load 2913(levels)
+            2968:     47(int) IAdd 2967 2966
+                              Store 2913(levels) 2968
+            2969:         316 Load 318(s1DArrayShadow)
+            2970:         315 Image 2969
+            2971:     47(int) ImageQueryLevels 2970
+            2972:     47(int) Load 2913(levels)
+            2973:     47(int) IAdd 2972 2971
+                              Store 2913(levels) 2973
+            2974:         337 Load 339(s2DArrayShadow)
+            2975:         336 Image 2974
+            2976:     47(int) ImageQueryLevels 2975
+            2977:     47(int) Load 2913(levels)
+            2978:     47(int) IAdd 2977 2976
+                              Store 2913(levels) 2978
+            2979:     47(int) Load 2913(levels)
+                              ReturnValue 2979
                               FunctionEnd
 60(testTextureSamples():     47(int) Function None 57
               61:             Label
-   2938(samples):   2566(ptr) Variable Function
-                              Store 2938(samples) 2187
-            2939:        1309 Load 1311(s2DMS)
-            2940:        1308 Image 2939
-            2941:     47(int) ImageQuerySamples 2940
-            2942:     47(int) Load 2938(samples)
-            2943:     47(int) IAdd 2942 2941
-                              Store 2938(samples) 2943
-            2944:        1320 Load 1322(s2DMSArray)
-            2945:        1319 Image 2944
-            2946:     47(int) ImageQuerySamples 2945
-            2947:     47(int) Load 2938(samples)
-            2948:     47(int) IAdd 2947 2946
-                              Store 2938(samples) 2948
-            2949:     47(int) Load 2938(samples)
-                              ReturnValue 2949
+   2982(samples):   2566(ptr) Variable Function
+                              Store 2982(samples) 2187
+            2983:        1309 Load 1311(s2DMS)
+            2984:        1308 Image 2983
+            2985:     47(int) ImageQuerySamples 2984
+            2986:     47(int) Load 2982(samples)
+            2987:     47(int) IAdd 2986 2985
+                              Store 2982(samples) 2987
+            2988:        1320 Load 1322(s2DMSArray)
+            2989:        1319 Image 2988
+            2990:     47(int) ImageQuerySamples 2989
+            2991:     47(int) Load 2982(samples)
+            2992:     47(int) IAdd 2991 2990
+                              Store 2982(samples) 2992
+            2993:     47(int) Load 2982(samples)
+                              ReturnValue 2993
                               FunctionEnd
 62(testImageLoad():  7(f16vec4) Function None 8
               63:             Label
-     2952(texel):     64(ptr) Variable Function
-                              Store 2952(texel) 121
-            2956:        2953 Load 2955(i1D)
-            2957:   52(float) Load 128(c1)
-            2958:     47(int) ConvertFToS 2957
-            2959:  7(f16vec4) ImageRead 2956 2958
-            2960:  7(f16vec4) Load 2952(texel)
-            2961:  7(f16vec4) FAdd 2960 2959
-                              Store 2952(texel) 2961
-            2965:        2962 Load 2964(i2D)
-            2966:   53(fvec2) Load 148(c2)
-            2967:  721(ivec2) ConvertFToS 2966
-            2968:  7(f16vec4) ImageRead 2965 2967
-            2969:  7(f16vec4) Load 2952(texel)
-            2970:  7(f16vec4) FAdd 2969 2968
-                              Store 2952(texel) 2970
-            2974:        2971 Load 2973(i3D)
-            2975:  167(fvec3) Load 169(c3)
-            2976:  734(ivec3) ConvertFToS 2975
-            2977:  7(f16vec4) ImageRead 2974 2976
-            2978:  7(f16vec4) Load 2952(texel)
-            2979:  7(f16vec4) FAdd 2978 2977
-                              Store 2952(texel) 2979
-            2983:        2980 Load 2982(i2DRect)
-            2984:   53(fvec2) Load 148(c2)
-            2985:  721(ivec2) ConvertFToS 2984
-            2986:  7(f16vec4) ImageRead 2983 2985
-            2987:  7(f16vec4) Load 2952(texel)
-            2988:  7(f16vec4) FAdd 2987 2986
-                              Store 2952(texel) 2988
-            2992:        2989 Load 2991(iCube)
-            2993:  167(fvec3) Load 169(c3)
-            2994:  734(ivec3) ConvertFToS 2993
-            2995:  7(f16vec4) ImageRead 2992 2994
-            2996:  7(f16vec4) Load 2952(texel)
-            2997:  7(f16vec4) FAdd 2996 2995
-                              Store 2952(texel) 2997
-            3001:        2998 Load 3000(iBuffer)
-            3002:   52(float) Load 128(c1)
-            3003:     47(int) ConvertFToS 3002
-            3004:  7(f16vec4) ImageRead 3001 3003
-            3005:  7(f16vec4) Load 2952(texel)
-            3006:  7(f16vec4) FAdd 3005 3004
-                              Store 2952(texel) 3006
-            3010:        3007 Load 3009(i1DArray)
-            3011:   53(fvec2) Load 148(c2)
-            3012:  721(ivec2) ConvertFToS 3011
-            3013:  7(f16vec4) ImageRead 3010 3012
-            3014:  7(f16vec4) Load 2952(texel)
-            3015:  7(f16vec4) FAdd 3014 3013
-                              Store 2952(texel) 3015
-            3019:        3016 Load 3018(i2DArray)
-            3020:  167(fvec3) Load 169(c3)
-            3021:  734(ivec3) ConvertFToS 3020
-            3022:  7(f16vec4) ImageRead 3019 3021
-            3023:  7(f16vec4) Load 2952(texel)
-            3024:  7(f16vec4) FAdd 3023 3022
-                              Store 2952(texel) 3024
-            3028:        3025 Load 3027(iCubeArray)
-            3029:  167(fvec3) Load 169(c3)
-            3030:  734(ivec3) ConvertFToS 3029
-            3031:  7(f16vec4) ImageRead 3028 3030
-            3032:  7(f16vec4) Load 2952(texel)
-            3033:  7(f16vec4) FAdd 3032 3031
-                              Store 2952(texel) 3033
-            3037:        3034 Load 3036(i2DMS)
-            3038:   53(fvec2) Load 148(c2)
-            3039:  721(ivec2) ConvertFToS 3038
-            3040:  7(f16vec4) ImageRead 3037 3039 Sample 709
-            3041:  7(f16vec4) Load 2952(texel)
-            3042:  7(f16vec4) FAdd 3041 3040
-                              Store 2952(texel) 3042
-            3046:        3043 Load 3045(i2DMSArray)
-            3047:  167(fvec3) Load 169(c3)
-            3048:  734(ivec3) ConvertFToS 3047
-            3049:  7(f16vec4) ImageRead 3046 3048 Sample 709
-            3050:  7(f16vec4) Load 2952(texel)
-            3051:  7(f16vec4) FAdd 3050 3049
-                              Store 2952(texel) 3051
-            3052:  7(f16vec4) Load 2952(texel)
-                              ReturnValue 3052
+     2996(texel):     64(ptr) Variable Function
+                              Store 2996(texel) 121
+            3000:        2997 Load 2999(i1D)
+            3001:   52(float) Load 128(c1)
+            3002:     47(int) ConvertFToS 3001
+            3003:  7(f16vec4) ImageRead 3000 3002
+            3004:  7(f16vec4) Load 2996(texel)
+            3005:  7(f16vec4) FAdd 3004 3003
+                              Store 2996(texel) 3005
+            3009:        3006 Load 3008(i2D)
+            3010:   53(fvec2) Load 148(c2)
+            3011:  721(ivec2) ConvertFToS 3010
+            3012:  7(f16vec4) ImageRead 3009 3011
+            3013:  7(f16vec4) Load 2996(texel)
+            3014:  7(f16vec4) FAdd 3013 3012
+                              Store 2996(texel) 3014
+            3018:        3015 Load 3017(i3D)
+            3019:  167(fvec3) Load 169(c3)
+            3020:  734(ivec3) ConvertFToS 3019
+            3021:  7(f16vec4) ImageRead 3018 3020
+            3022:  7(f16vec4) Load 2996(texel)
+            3023:  7(f16vec4) FAdd 3022 3021
+                              Store 2996(texel) 3023
+            3027:        3024 Load 3026(i2DRect)
+            3028:   53(fvec2) Load 148(c2)
+            3029:  721(ivec2) ConvertFToS 3028
+            3030:  7(f16vec4) ImageRead 3027 3029
+            3031:  7(f16vec4) Load 2996(texel)
+            3032:  7(f16vec4) FAdd 3031 3030
+                              Store 2996(texel) 3032
+            3036:        3033 Load 3035(iCube)
+            3037:  167(fvec3) Load 169(c3)
+            3038:  734(ivec3) ConvertFToS 3037
+            3039:  7(f16vec4) ImageRead 3036 3038
+            3040:  7(f16vec4) Load 2996(texel)
+            3041:  7(f16vec4) FAdd 3040 3039
+                              Store 2996(texel) 3041
+            3045:        3042 Load 3044(iBuffer)
+            3046:   52(float) Load 128(c1)
+            3047:     47(int) ConvertFToS 3046
+            3048:  7(f16vec4) ImageRead 3045 3047
+            3049:  7(f16vec4) Load 2996(texel)
+            3050:  7(f16vec4) FAdd 3049 3048
+                              Store 2996(texel) 3050
+            3054:        3051 Load 3053(i1DArray)
+            3055:   53(fvec2) Load 148(c2)
+            3056:  721(ivec2) ConvertFToS 3055
+            3057:  7(f16vec4) ImageRead 3054 3056
+            3058:  7(f16vec4) Load 2996(texel)
+            3059:  7(f16vec4) FAdd 3058 3057
+                              Store 2996(texel) 3059
+            3063:        3060 Load 3062(i2DArray)
+            3064:  167(fvec3) Load 169(c3)
+            3065:  734(ivec3) ConvertFToS 3064
+            3066:  7(f16vec4) ImageRead 3063 3065
+            3067:  7(f16vec4) Load 2996(texel)
+            3068:  7(f16vec4) FAdd 3067 3066
+                              Store 2996(texel) 3068
+            3072:        3069 Load 3071(iCubeArray)
+            3073:  167(fvec3) Load 169(c3)
+            3074:  734(ivec3) ConvertFToS 3073
+            3075:  7(f16vec4) ImageRead 3072 3074
+            3076:  7(f16vec4) Load 2996(texel)
+            3077:  7(f16vec4) FAdd 3076 3075
+                              Store 2996(texel) 3077
+            3081:        3078 Load 3080(i2DMS)
+            3082:   53(fvec2) Load 148(c2)
+            3083:  721(ivec2) ConvertFToS 3082
+            3084:  7(f16vec4) ImageRead 3081 3083 Sample 709
+            3085:  7(f16vec4) Load 2996(texel)
+            3086:  7(f16vec4) FAdd 3085 3084
+                              Store 2996(texel) 3086
+            3090:        3087 Load 3089(i2DMSArray)
+            3091:  167(fvec3) Load 169(c3)
+            3092:  734(ivec3) ConvertFToS 3091
+            3093:  7(f16vec4) ImageRead 3090 3092 Sample 709
+            3094:  7(f16vec4) Load 2996(texel)
+            3095:  7(f16vec4) FAdd 3094 3093
+                              Store 2996(texel) 3095
+            3096:  7(f16vec4) Load 2996(texel)
+                              ReturnValue 3096
                               FunctionEnd
 67(testImageStore(vf164;):           2 Function None 65
         66(data):     64(ptr) FunctionParameter
               68:             Label
-            3055:        2953 Load 2955(i1D)
-            3056:   52(float) Load 128(c1)
-            3057:     47(int) ConvertFToS 3056
-            3058:  7(f16vec4) Load 66(data)
-                              ImageWrite 3055 3057 3058
-            3059:        2962 Load 2964(i2D)
-            3060:   53(fvec2) Load 148(c2)
-            3061:  721(ivec2) ConvertFToS 3060
-            3062:  7(f16vec4) Load 66(data)
-                              ImageWrite 3059 3061 3062
-            3063:        2971 Load 2973(i3D)
-            3064:  167(fvec3) Load 169(c3)
-            3065:  734(ivec3) ConvertFToS 3064
-            3066:  7(f16vec4) Load 66(data)
-                              ImageWrite 3063 3065 3066
-            3067:        2980 Load 2982(i2DRect)
-            3068:   53(fvec2) Load 148(c2)
-            3069:  721(ivec2) ConvertFToS 3068
-            3070:  7(f16vec4) Load 66(data)
-                              ImageWrite 3067 3069 3070
-            3071:        2989 Load 2991(iCube)
-            3072:  167(fvec3) Load 169(c3)
-            3073:  734(ivec3) ConvertFToS 3072
-            3074:  7(f16vec4) Load 66(data)
-                              ImageWrite 3071 3073 3074
-            3075:        2998 Load 3000(iBuffer)
-            3076:   52(float) Load 128(c1)
-            3077:     47(int) ConvertFToS 3076
-            3078:  7(f16vec4) Load 66(data)
-                              ImageWrite 3075 3077 3078
-            3079:        3007 Load 3009(i1DArray)
-            3080:   53(fvec2) Load 148(c2)
-            3081:  721(ivec2) ConvertFToS 3080
-            3082:  7(f16vec4) Load 66(data)
-                              ImageWrite 3079 3081 3082
-            3083:        3016 Load 3018(i2DArray)
-            3084:  167(fvec3) Load 169(c3)
-            3085:  734(ivec3) ConvertFToS 3084
-            3086:  7(f16vec4) Load 66(data)
-                              ImageWrite 3083 3085 3086
-            3087:        3025 Load 3027(iCubeArray)
-            3088:  167(fvec3) Load 169(c3)
-            3089:  734(ivec3) ConvertFToS 3088
-            3090:  7(f16vec4) Load 66(data)
-                              ImageWrite 3087 3089 3090
-            3091:        3034 Load 3036(i2DMS)
-            3092:   53(fvec2) Load 148(c2)
-            3093:  721(ivec2) ConvertFToS 3092
-            3094:  7(f16vec4) Load 66(data)
-                              ImageWrite 3091 3093 3094 Sample 709
-            3095:        3043 Load 3045(i2DMSArray)
-            3096:  167(fvec3) Load 169(c3)
-            3097:  734(ivec3) ConvertFToS 3096
-            3098:  7(f16vec4) Load 66(data)
-                              ImageWrite 3095 3097 3098 Sample 709
+            3099:        2997 Load 2999(i1D)
+            3100:   52(float) Load 128(c1)
+            3101:     47(int) ConvertFToS 3100
+            3102:  7(f16vec4) Load 66(data)
+                              ImageWrite 3099 3101 3102
+            3103:        3006 Load 3008(i2D)
+            3104:   53(fvec2) Load 148(c2)
+            3105:  721(ivec2) ConvertFToS 3104
+            3106:  7(f16vec4) Load 66(data)
+                              ImageWrite 3103 3105 3106
+            3107:        3015 Load 3017(i3D)
+            3108:  167(fvec3) Load 169(c3)
+            3109:  734(ivec3) ConvertFToS 3108
+            3110:  7(f16vec4) Load 66(data)
+                              ImageWrite 3107 3109 3110
+            3111:        3024 Load 3026(i2DRect)
+            3112:   53(fvec2) Load 148(c2)
+            3113:  721(ivec2) ConvertFToS 3112
+            3114:  7(f16vec4) Load 66(data)
+                              ImageWrite 3111 3113 3114
+            3115:        3033 Load 3035(iCube)
+            3116:  167(fvec3) Load 169(c3)
+            3117:  734(ivec3) ConvertFToS 3116
+            3118:  7(f16vec4) Load 66(data)
+                              ImageWrite 3115 3117 3118
+            3119:        3042 Load 3044(iBuffer)
+            3120:   52(float) Load 128(c1)
+            3121:     47(int) ConvertFToS 3120
+            3122:  7(f16vec4) Load 66(data)
+                              ImageWrite 3119 3121 3122
+            3123:        3051 Load 3053(i1DArray)
+            3124:   53(fvec2) Load 148(c2)
+            3125:  721(ivec2) ConvertFToS 3124
+            3126:  7(f16vec4) Load 66(data)
+                              ImageWrite 3123 3125 3126
+            3127:        3060 Load 3062(i2DArray)
+            3128:  167(fvec3) Load 169(c3)
+            3129:  734(ivec3) ConvertFToS 3128
+            3130:  7(f16vec4) Load 66(data)
+                              ImageWrite 3127 3129 3130
+            3131:        3069 Load 3071(iCubeArray)
+            3132:  167(fvec3) Load 169(c3)
+            3133:  734(ivec3) ConvertFToS 3132
+            3134:  7(f16vec4) Load 66(data)
+                              ImageWrite 3131 3133 3134
+            3135:        3078 Load 3080(i2DMS)
+            3136:   53(fvec2) Load 148(c2)
+            3137:  721(ivec2) ConvertFToS 3136
+            3138:  7(f16vec4) Load 66(data)
+                              ImageWrite 3135 3137 3138 Sample 709
+            3139:        3087 Load 3089(i2DMSArray)
+            3140:  167(fvec3) Load 169(c3)
+            3141:  734(ivec3) ConvertFToS 3140
+            3142:  7(f16vec4) Load 66(data)
+                              ImageWrite 3139 3141 3142 Sample 709
                               Return
                               FunctionEnd
 69(testSparseTexture():  7(f16vec4) Function None 8
               70:             Label
-     3099(texel):     64(ptr) Variable Function
-                              Store 3099(texel) 121
-            3100:         143 Load 145(s2D)
-            3101:   53(fvec2) Load 148(c2)
-            3103:3102(ResType) ImageSparseSampleImplicitLod 3100 3101
-            3104:  7(f16vec4) CompositeExtract 3103 1
-                              Store 3099(texel) 3104
-            3105:     47(int) CompositeExtract 3103 0
-            3106:         143 Load 145(s2D)
-            3107:154(f16vec2) Load 156(f16c2)
-            3108:6(float16_t) Load 137(f16bias)
-            3109:3102(ResType) ImageSparseSampleImplicitLod 3106 3107 Bias 3108
-            3110:  7(f16vec4) CompositeExtract 3109 1
-                              Store 3099(texel) 3110
-            3111:     47(int) CompositeExtract 3109 0
-            3112:         163 Load 165(s3D)
-            3113:  167(fvec3) Load 169(c3)
-            3114:3102(ResType) ImageSparseSampleImplicitLod 3112 3113
-            3115:  7(f16vec4) CompositeExtract 3114 1
-                              Store 3099(texel) 3115
-            3116:     47(int) CompositeExtract 3114 0
-            3117:         163 Load 165(s3D)
-            3118:175(f16vec3) Load 177(f16c3)
-            3119:6(float16_t) Load 137(f16bias)
-            3120:3102(ResType) ImageSparseSampleImplicitLod 3117 3118 Bias 3119
-            3121:  7(f16vec4) CompositeExtract 3120 1
-                              Store 3099(texel) 3121
-            3122:     47(int) CompositeExtract 3120 0
-            3123:         184 Load 186(sCube)
-            3124:  167(fvec3) Load 169(c3)
-            3125:3102(ResType) ImageSparseSampleImplicitLod 3123 3124
-            3126:  7(f16vec4) CompositeExtract 3125 1
-                              Store 3099(texel) 3126
-            3127:     47(int) CompositeExtract 3125 0
-            3128:         184 Load 186(sCube)
-            3129:175(f16vec3) Load 177(f16c3)
-            3130:6(float16_t) Load 137(f16bias)
-            3131:3102(ResType) ImageSparseSampleImplicitLod 3128 3129 Bias 3130
-            3132:  7(f16vec4) CompositeExtract 3131 1
-                              Store 3099(texel) 3132
-            3133:     47(int) CompositeExtract 3131 0
-            3134:         224 Load 226(s2DShadow)
-            3135:  167(fvec3) Load 169(c3)
-            3136:    208(ptr) AccessChain 3099(texel) 207
-            3137:   52(float) CompositeExtract 3135 2
-            3139:3138(ResType) ImageSparseSampleDrefImplicitLod 3134 3135 3137
-            3140:6(float16_t) CompositeExtract 3139 1
-                              Store 3136 3140
-            3141:     47(int) CompositeExtract 3139 0
-            3142:         224 Load 226(s2DShadow)
-            3143:154(f16vec2) Load 156(f16c2)
-            3144:   52(float) Load 215(compare)
-            3145:    208(ptr) AccessChain 3099(texel) 207
-            3146:6(float16_t) Load 137(f16bias)
-            3147:3138(ResType) ImageSparseSampleDrefImplicitLod 3142 3143 3144 Bias 3146
-            3148:6(float16_t) CompositeExtract 3147 1
-                              Store 3145 3148
+     3143(texel):     64(ptr) Variable Function
+                              Store 3143(texel) 121
+            3144:         143 Load 145(s2D)
+            3145:   53(fvec2) Load 148(c2)
+            3147:3146(ResType) ImageSparseSampleImplicitLod 3144 3145
+            3148:  7(f16vec4) CompositeExtract 3147 1
+                              Store 3143(texel) 3148
             3149:     47(int) CompositeExtract 3147 0
-            3150:         245 Load 247(sCubeShadow)
-            3151:  249(fvec4) Load 251(c4)
-            3152:    208(ptr) AccessChain 3099(texel) 207
-            3153:   52(float) CompositeExtract 3151 3
-            3154:3138(ResType) ImageSparseSampleDrefImplicitLod 3150 3151 3153
-            3155:6(float16_t) CompositeExtract 3154 1
-                              Store 3152 3155
-            3156:     47(int) CompositeExtract 3154 0
-            3157:         245 Load 247(sCubeShadow)
-            3158:175(f16vec3) Load 177(f16c3)
-            3159:   52(float) Load 215(compare)
-            3160:    208(ptr) AccessChain 3099(texel) 207
-            3161:6(float16_t) Load 137(f16bias)
-            3162:3138(ResType) ImageSparseSampleDrefImplicitLod 3157 3158 3159 Bias 3161
-            3163:6(float16_t) CompositeExtract 3162 1
-                              Store 3160 3163
-            3164:     47(int) CompositeExtract 3162 0
-            3165:         284 Load 286(s2DArray)
-            3166:  167(fvec3) Load 169(c3)
-            3167:3102(ResType) ImageSparseSampleImplicitLod 3165 3166
-            3168:  7(f16vec4) CompositeExtract 3167 1
-                              Store 3099(texel) 3168
-            3169:     47(int) CompositeExtract 3167 0
-            3170:         284 Load 286(s2DArray)
-            3171:175(f16vec3) Load 177(f16c3)
-            3172:6(float16_t) Load 137(f16bias)
-            3173:3102(ResType) ImageSparseSampleImplicitLod 3170 3171 Bias 3172
-            3174:  7(f16vec4) CompositeExtract 3173 1
-                              Store 3099(texel) 3174
-            3175:     47(int) CompositeExtract 3173 0
-            3176:         299 Load 301(sCubeArray)
-            3177:  249(fvec4) Load 251(c4)
-            3178:3102(ResType) ImageSparseSampleImplicitLod 3176 3177
-            3179:  7(f16vec4) CompositeExtract 3178 1
-                              Store 3099(texel) 3179
-            3180:     47(int) CompositeExtract 3178 0
-            3181:         299 Load 301(sCubeArray)
-            3182:  7(f16vec4) Load 309(f16c4)
-            3183:6(float16_t) Load 137(f16bias)
-            3184:3102(ResType) ImageSparseSampleImplicitLod 3181 3182 Bias 3183
-            3185:  7(f16vec4) CompositeExtract 3184 1
-                              Store 3099(texel) 3185
-            3186:     47(int) CompositeExtract 3184 0
-            3187:         337 Load 339(s2DArrayShadow)
-            3188:  249(fvec4) Load 251(c4)
-            3189:    208(ptr) AccessChain 3099(texel) 207
-            3190:   52(float) CompositeExtract 3188 3
-            3191:3138(ResType) ImageSparseSampleDrefImplicitLod 3187 3188 3190
+            3150:         143 Load 145(s2D)
+            3151:154(f16vec2) Load 156(f16c2)
+            3152:6(float16_t) Load 137(f16bias)
+            3153:3146(ResType) ImageSparseSampleImplicitLod 3150 3151 Bias 3152
+            3154:  7(f16vec4) CompositeExtract 3153 1
+                              Store 3143(texel) 3154
+            3155:     47(int) CompositeExtract 3153 0
+            3156:         163 Load 165(s3D)
+            3157:  167(fvec3) Load 169(c3)
+            3158:3146(ResType) ImageSparseSampleImplicitLod 3156 3157
+            3159:  7(f16vec4) CompositeExtract 3158 1
+                              Store 3143(texel) 3159
+            3160:     47(int) CompositeExtract 3158 0
+            3161:         163 Load 165(s3D)
+            3162:175(f16vec3) Load 177(f16c3)
+            3163:6(float16_t) Load 137(f16bias)
+            3164:3146(ResType) ImageSparseSampleImplicitLod 3161 3162 Bias 3163
+            3165:  7(f16vec4) CompositeExtract 3164 1
+                              Store 3143(texel) 3165
+            3166:     47(int) CompositeExtract 3164 0
+            3167:         184 Load 186(sCube)
+            3168:  167(fvec3) Load 169(c3)
+            3169:3146(ResType) ImageSparseSampleImplicitLod 3167 3168
+            3170:  7(f16vec4) CompositeExtract 3169 1
+                              Store 3143(texel) 3170
+            3171:     47(int) CompositeExtract 3169 0
+            3172:         184 Load 186(sCube)
+            3173:175(f16vec3) Load 177(f16c3)
+            3174:6(float16_t) Load 137(f16bias)
+            3175:3146(ResType) ImageSparseSampleImplicitLod 3172 3173 Bias 3174
+            3176:  7(f16vec4) CompositeExtract 3175 1
+                              Store 3143(texel) 3176
+            3177:     47(int) CompositeExtract 3175 0
+            3178:         224 Load 226(s2DShadow)
+            3179:  167(fvec3) Load 169(c3)
+            3180:    208(ptr) AccessChain 3143(texel) 207
+            3181:   52(float) CompositeExtract 3179 2
+            3183:3182(ResType) ImageSparseSampleDrefImplicitLod 3178 3179 3181
+            3184:6(float16_t) CompositeExtract 3183 1
+                              Store 3180 3184
+            3185:     47(int) CompositeExtract 3183 0
+            3186:         224 Load 226(s2DShadow)
+            3187:154(f16vec2) Load 156(f16c2)
+            3188:   52(float) Load 215(compare)
+            3189:    208(ptr) AccessChain 3143(texel) 207
+            3190:6(float16_t) Load 137(f16bias)
+            3191:3182(ResType) ImageSparseSampleDrefImplicitLod 3186 3187 3188 Bias 3190
             3192:6(float16_t) CompositeExtract 3191 1
                               Store 3189 3192
             3193:     47(int) CompositeExtract 3191 0
-            3194:         337 Load 339(s2DArrayShadow)
-            3195:175(f16vec3) Load 177(f16c3)
-            3196:   52(float) Load 215(compare)
-            3197:    208(ptr) AccessChain 3099(texel) 207
-            3198:3138(ResType) ImageSparseSampleDrefImplicitLod 3194 3195 3196
+            3194:         245 Load 247(sCubeShadow)
+            3195:  249(fvec4) Load 251(c4)
+            3196:    208(ptr) AccessChain 3143(texel) 207
+            3197:   52(float) CompositeExtract 3195 3
+            3198:3182(ResType) ImageSparseSampleDrefImplicitLod 3194 3195 3197
             3199:6(float16_t) CompositeExtract 3198 1
-                              Store 3197 3199
+                              Store 3196 3199
             3200:     47(int) CompositeExtract 3198 0
-            3201:         357 Load 359(s2DRect)
-            3202:   53(fvec2) Load 148(c2)
-            3203:3102(ResType) ImageSparseSampleImplicitLod 3201 3202
-            3204:  7(f16vec4) CompositeExtract 3203 1
-                              Store 3099(texel) 3204
-            3205:     47(int) CompositeExtract 3203 0
-            3206:         357 Load 359(s2DRect)
-            3207:154(f16vec2) Load 156(f16c2)
-            3208:3102(ResType) ImageSparseSampleImplicitLod 3206 3207
-            3209:  7(f16vec4) CompositeExtract 3208 1
-                              Store 3099(texel) 3209
-            3210:     47(int) CompositeExtract 3208 0
-            3211:         371 Load 373(s2DRectShadow)
-            3212:  167(fvec3) Load 169(c3)
-            3213:    208(ptr) AccessChain 3099(texel) 207
-            3214:   52(float) CompositeExtract 3212 2
-            3215:3138(ResType) ImageSparseSampleDrefImplicitLod 3211 3212 3214
-            3216:6(float16_t) CompositeExtract 3215 1
-                              Store 3213 3216
-            3217:     47(int) CompositeExtract 3215 0
-            3218:         371 Load 373(s2DRectShadow)
-            3219:154(f16vec2) Load 156(f16c2)
-            3220:   52(float) Load 215(compare)
-            3221:    208(ptr) AccessChain 3099(texel) 207
-            3222:3138(ResType) ImageSparseSampleDrefImplicitLod 3218 3219 3220
-            3223:6(float16_t) CompositeExtract 3222 1
-                              Store 3221 3223
+            3201:         245 Load 247(sCubeShadow)
+            3202:175(f16vec3) Load 177(f16c3)
+            3203:   52(float) Load 215(compare)
+            3204:    208(ptr) AccessChain 3143(texel) 207
+            3205:6(float16_t) Load 137(f16bias)
+            3206:3182(ResType) ImageSparseSampleDrefImplicitLod 3201 3202 3203 Bias 3205
+            3207:6(float16_t) CompositeExtract 3206 1
+                              Store 3204 3207
+            3208:     47(int) CompositeExtract 3206 0
+            3209:         284 Load 286(s2DArray)
+            3210:  167(fvec3) Load 169(c3)
+            3211:3146(ResType) ImageSparseSampleImplicitLod 3209 3210
+            3212:  7(f16vec4) CompositeExtract 3211 1
+                              Store 3143(texel) 3212
+            3213:     47(int) CompositeExtract 3211 0
+            3214:         284 Load 286(s2DArray)
+            3215:175(f16vec3) Load 177(f16c3)
+            3216:6(float16_t) Load 137(f16bias)
+            3217:3146(ResType) ImageSparseSampleImplicitLod 3214 3215 Bias 3216
+            3218:  7(f16vec4) CompositeExtract 3217 1
+                              Store 3143(texel) 3218
+            3219:     47(int) CompositeExtract 3217 0
+            3220:         299 Load 301(sCubeArray)
+            3221:  249(fvec4) Load 251(c4)
+            3222:3146(ResType) ImageSparseSampleImplicitLod 3220 3221
+            3223:  7(f16vec4) CompositeExtract 3222 1
+                              Store 3143(texel) 3223
             3224:     47(int) CompositeExtract 3222 0
-            3225:         391 Load 393(sCubeArrayShadow)
-            3226:  249(fvec4) Load 251(c4)
-            3227:   52(float) Load 215(compare)
-            3228:    208(ptr) AccessChain 3099(texel) 207
-            3229:3138(ResType) ImageSparseSampleDrefImplicitLod 3225 3226 3227
-            3230:6(float16_t) CompositeExtract 3229 1
-                              Store 3228 3230
-            3231:     47(int) CompositeExtract 3229 0
-            3232:         391 Load 393(sCubeArrayShadow)
-            3233:  7(f16vec4) Load 309(f16c4)
-            3234:   52(float) Load 215(compare)
-            3235:    208(ptr) AccessChain 3099(texel) 207
-            3236:3138(ResType) ImageSparseSampleDrefImplicitLod 3232 3233 3234
-            3237:6(float16_t) CompositeExtract 3236 1
-                              Store 3235 3237
-            3238:     47(int) CompositeExtract 3236 0
-            3239:  7(f16vec4) Load 3099(texel)
-                              ReturnValue 3239
+            3225:         299 Load 301(sCubeArray)
+            3226:  7(f16vec4) Load 309(f16c4)
+            3227:6(float16_t) Load 137(f16bias)
+            3228:3146(ResType) ImageSparseSampleImplicitLod 3225 3226 Bias 3227
+            3229:  7(f16vec4) CompositeExtract 3228 1
+                              Store 3143(texel) 3229
+            3230:     47(int) CompositeExtract 3228 0
+            3231:         337 Load 339(s2DArrayShadow)
+            3232:  249(fvec4) Load 251(c4)
+            3233:    208(ptr) AccessChain 3143(texel) 207
+            3234:   52(float) CompositeExtract 3232 3
+            3235:3182(ResType) ImageSparseSampleDrefImplicitLod 3231 3232 3234
+            3236:6(float16_t) CompositeExtract 3235 1
+                              Store 3233 3236
+            3237:     47(int) CompositeExtract 3235 0
+            3238:         337 Load 339(s2DArrayShadow)
+            3239:175(f16vec3) Load 177(f16c3)
+            3240:   52(float) Load 215(compare)
+            3241:    208(ptr) AccessChain 3143(texel) 207
+            3242:3182(ResType) ImageSparseSampleDrefImplicitLod 3238 3239 3240
+            3243:6(float16_t) CompositeExtract 3242 1
+                              Store 3241 3243
+            3244:     47(int) CompositeExtract 3242 0
+            3245:         357 Load 359(s2DRect)
+            3246:   53(fvec2) Load 148(c2)
+            3247:3146(ResType) ImageSparseSampleImplicitLod 3245 3246
+            3248:  7(f16vec4) CompositeExtract 3247 1
+                              Store 3143(texel) 3248
+            3249:     47(int) CompositeExtract 3247 0
+            3250:         357 Load 359(s2DRect)
+            3251:154(f16vec2) Load 156(f16c2)
+            3252:3146(ResType) ImageSparseSampleImplicitLod 3250 3251
+            3253:  7(f16vec4) CompositeExtract 3252 1
+                              Store 3143(texel) 3253
+            3254:     47(int) CompositeExtract 3252 0
+            3255:         371 Load 373(s2DRectShadow)
+            3256:  167(fvec3) Load 169(c3)
+            3257:    208(ptr) AccessChain 3143(texel) 207
+            3258:   52(float) CompositeExtract 3256 2
+            3259:3182(ResType) ImageSparseSampleDrefImplicitLod 3255 3256 3258
+            3260:6(float16_t) CompositeExtract 3259 1
+                              Store 3257 3260
+            3261:     47(int) CompositeExtract 3259 0
+            3262:         371 Load 373(s2DRectShadow)
+            3263:154(f16vec2) Load 156(f16c2)
+            3264:   52(float) Load 215(compare)
+            3265:    208(ptr) AccessChain 3143(texel) 207
+            3266:3182(ResType) ImageSparseSampleDrefImplicitLod 3262 3263 3264
+            3267:6(float16_t) CompositeExtract 3266 1
+                              Store 3265 3267
+            3268:     47(int) CompositeExtract 3266 0
+            3269:         391 Load 393(sCubeArrayShadow)
+            3270:  249(fvec4) Load 251(c4)
+            3271:   52(float) Load 215(compare)
+            3272:    208(ptr) AccessChain 3143(texel) 207
+            3273:3182(ResType) ImageSparseSampleDrefImplicitLod 3269 3270 3271
+            3274:6(float16_t) CompositeExtract 3273 1
+                              Store 3272 3274
+            3275:     47(int) CompositeExtract 3273 0
+            3276:         391 Load 393(sCubeArrayShadow)
+            3277:  7(f16vec4) Load 309(f16c4)
+            3278:   52(float) Load 215(compare)
+            3279:    208(ptr) AccessChain 3143(texel) 207
+            3280:3182(ResType) ImageSparseSampleDrefImplicitLod 3276 3277 3278
+            3281:6(float16_t) CompositeExtract 3280 1
+                              Store 3279 3281
+            3282:     47(int) CompositeExtract 3280 0
+            3283:  7(f16vec4) Load 3143(texel)
+                              ReturnValue 3283
                               FunctionEnd
 71(testSparseTextureLod():  7(f16vec4) Function None 8
               72:             Label
-     3242(texel):     64(ptr) Variable Function
-                              Store 3242(texel) 121
-            3243:         143 Load 145(s2D)
-            3244:   53(fvec2) Load 148(c2)
-            3245:   52(float) Load 565(lod)
-            3246:3102(ResType) ImageSparseSampleExplicitLod 3243 3244 Lod 3245
-            3247:  7(f16vec4) CompositeExtract 3246 1
-                              Store 3242(texel) 3247
-            3248:     47(int) CompositeExtract 3246 0
-            3249:         143 Load 145(s2D)
-            3250:154(f16vec2) Load 156(f16c2)
-            3251:6(float16_t) Load 572(f16lod)
-            3252:3102(ResType) ImageSparseSampleExplicitLod 3249 3250 Lod 3251
-            3253:  7(f16vec4) CompositeExtract 3252 1
-                              Store 3242(texel) 3253
-            3254:     47(int) CompositeExtract 3252 0
-            3255:         163 Load 165(s3D)
-            3256:  167(fvec3) Load 169(c3)
-            3257:   52(float) Load 565(lod)
-            3258:3102(ResType) ImageSparseSampleExplicitLod 3255 3256 Lod 3257
-            3259:  7(f16vec4) CompositeExtract 3258 1
-                              Store 3242(texel) 3259
-            3260:     47(int) CompositeExtract 3258 0
-            3261:         163 Load 165(s3D)
-            3262:175(f16vec3) Load 177(f16c3)
-            3263:6(float16_t) Load 572(f16lod)
-            3264:3102(ResType) ImageSparseSampleExplicitLod 3261 3262 Lod 3263
-            3265:  7(f16vec4) CompositeExtract 3264 1
-                              Store 3242(texel) 3265
-            3266:     47(int) CompositeExtract 3264 0
-            3267:         184 Load 186(sCube)
-            3268:  167(fvec3) Load 169(c3)
-            3269:   52(float) Load 565(lod)
-            3270:3102(ResType) ImageSparseSampleExplicitLod 3267 3268 Lod 3269
-            3271:  7(f16vec4) CompositeExtract 3270 1
-                              Store 3242(texel) 3271
-            3272:     47(int) CompositeExtract 3270 0
-            3273:         184 Load 186(sCube)
-            3274:175(f16vec3) Load 177(f16c3)
-            3275:6(float16_t) Load 572(f16lod)
-            3276:3102(ResType) ImageSparseSampleExplicitLod 3273 3274 Lod 3275
-            3277:  7(f16vec4) CompositeExtract 3276 1
-                              Store 3242(texel) 3277
-            3278:     47(int) CompositeExtract 3276 0
-            3279:         224 Load 226(s2DShadow)
-            3280:  167(fvec3) Load 169(c3)
-            3281:   52(float) Load 565(lod)
-            3282:    208(ptr) AccessChain 3242(texel) 207
-            3283:   52(float) CompositeExtract 3280 2
-            3284:3138(ResType) ImageSparseSampleDrefExplicitLod 3279 3280 3283 Lod 3281
-            3285:6(float16_t) CompositeExtract 3284 1
-                              Store 3282 3285
-            3286:     47(int) CompositeExtract 3284 0
-            3287:         224 Load 226(s2DShadow)
-            3288:154(f16vec2) Load 156(f16c2)
-            3289:   52(float) Load 215(compare)
-            3290:6(float16_t) Load 572(f16lod)
-            3291:    208(ptr) AccessChain 3242(texel) 207
-            3292:3138(ResType) ImageSparseSampleDrefExplicitLod 3287 3288 3289 Lod 3290
-            3293:6(float16_t) CompositeExtract 3292 1
-                              Store 3291 3293
-            3294:     47(int) CompositeExtract 3292 0
-            3295:         284 Load 286(s2DArray)
-            3296:  167(fvec3) Load 169(c3)
-            3297:   52(float) Load 565(lod)
-            3298:3102(ResType) ImageSparseSampleExplicitLod 3295 3296 Lod 3297
-            3299:  7(f16vec4) CompositeExtract 3298 1
-                              Store 3242(texel) 3299
-            3300:     47(int) CompositeExtract 3298 0
-            3301:         284 Load 286(s2DArray)
-            3302:175(f16vec3) Load 177(f16c3)
-            3303:6(float16_t) Load 572(f16lod)
-            3304:3102(ResType) ImageSparseSampleExplicitLod 3301 3302 Lod 3303
-            3305:  7(f16vec4) CompositeExtract 3304 1
-                              Store 3242(texel) 3305
-            3306:     47(int) CompositeExtract 3304 0
-            3307:         299 Load 301(sCubeArray)
-            3308:  249(fvec4) Load 251(c4)
-            3309:   52(float) Load 565(lod)
-            3310:3102(ResType) ImageSparseSampleExplicitLod 3307 3308 Lod 3309
-            3311:  7(f16vec4) CompositeExtract 3310 1
-                              Store 3242(texel) 3311
-            3312:     47(int) CompositeExtract 3310 0
-            3313:         299 Load 301(sCubeArray)
-            3314:  7(f16vec4) Load 309(f16c4)
-            3315:6(float16_t) Load 572(f16lod)
-            3316:3102(ResType) ImageSparseSampleExplicitLod 3313 3314 Lod 3315
-            3317:  7(f16vec4) CompositeExtract 3316 1
-                              Store 3242(texel) 3317
-            3318:     47(int) CompositeExtract 3316 0
-            3319:  7(f16vec4) Load 3242(texel)
-                              ReturnValue 3319
+     3286(texel):     64(ptr) Variable Function
+                              Store 3286(texel) 121
+            3287:         143 Load 145(s2D)
+            3288:   53(fvec2) Load 148(c2)
+            3289:   52(float) Load 565(lod)
+            3290:3146(ResType) ImageSparseSampleExplicitLod 3287 3288 Lod 3289
+            3291:  7(f16vec4) CompositeExtract 3290 1
+                              Store 3286(texel) 3291
+            3292:     47(int) CompositeExtract 3290 0
+            3293:         143 Load 145(s2D)
+            3294:154(f16vec2) Load 156(f16c2)
+            3295:6(float16_t) Load 572(f16lod)
+            3296:3146(ResType) ImageSparseSampleExplicitLod 3293 3294 Lod 3295
+            3297:  7(f16vec4) CompositeExtract 3296 1
+                              Store 3286(texel) 3297
+            3298:     47(int) CompositeExtract 3296 0
+            3299:         163 Load 165(s3D)
+            3300:  167(fvec3) Load 169(c3)
+            3301:   52(float) Load 565(lod)
+            3302:3146(ResType) ImageSparseSampleExplicitLod 3299 3300 Lod 3301
+            3303:  7(f16vec4) CompositeExtract 3302 1
+                              Store 3286(texel) 3303
+            3304:     47(int) CompositeExtract 3302 0
+            3305:         163 Load 165(s3D)
+            3306:175(f16vec3) Load 177(f16c3)
+            3307:6(float16_t) Load 572(f16lod)
+            3308:3146(ResType) ImageSparseSampleExplicitLod 3305 3306 Lod 3307
+            3309:  7(f16vec4) CompositeExtract 3308 1
+                              Store 3286(texel) 3309
+            3310:     47(int) CompositeExtract 3308 0
+            3311:         184 Load 186(sCube)
+            3312:  167(fvec3) Load 169(c3)
+            3313:   52(float) Load 565(lod)
+            3314:3146(ResType) ImageSparseSampleExplicitLod 3311 3312 Lod 3313
+            3315:  7(f16vec4) CompositeExtract 3314 1
+                              Store 3286(texel) 3315
+            3316:     47(int) CompositeExtract 3314 0
+            3317:         184 Load 186(sCube)
+            3318:175(f16vec3) Load 177(f16c3)
+            3319:6(float16_t) Load 572(f16lod)
+            3320:3146(ResType) ImageSparseSampleExplicitLod 3317 3318 Lod 3319
+            3321:  7(f16vec4) CompositeExtract 3320 1
+                              Store 3286(texel) 3321
+            3322:     47(int) CompositeExtract 3320 0
+            3323:         224 Load 226(s2DShadow)
+            3324:  167(fvec3) Load 169(c3)
+            3325:   52(float) Load 565(lod)
+            3326:    208(ptr) AccessChain 3286(texel) 207
+            3327:   52(float) CompositeExtract 3324 2
+            3328:3182(ResType) ImageSparseSampleDrefExplicitLod 3323 3324 3327 Lod 3325
+            3329:6(float16_t) CompositeExtract 3328 1
+                              Store 3326 3329
+            3330:     47(int) CompositeExtract 3328 0
+            3331:         224 Load 226(s2DShadow)
+            3332:154(f16vec2) Load 156(f16c2)
+            3333:   52(float) Load 215(compare)
+            3334:6(float16_t) Load 572(f16lod)
+            3335:    208(ptr) AccessChain 3286(texel) 207
+            3336:3182(ResType) ImageSparseSampleDrefExplicitLod 3331 3332 3333 Lod 3334
+            3337:6(float16_t) CompositeExtract 3336 1
+                              Store 3335 3337
+            3338:     47(int) CompositeExtract 3336 0
+            3339:         284 Load 286(s2DArray)
+            3340:  167(fvec3) Load 169(c3)
+            3341:   52(float) Load 565(lod)
+            3342:3146(ResType) ImageSparseSampleExplicitLod 3339 3340 Lod 3341
+            3343:  7(f16vec4) CompositeExtract 3342 1
+                              Store 3286(texel) 3343
+            3344:     47(int) CompositeExtract 3342 0
+            3345:         284 Load 286(s2DArray)
+            3346:175(f16vec3) Load 177(f16c3)
+            3347:6(float16_t) Load 572(f16lod)
+            3348:3146(ResType) ImageSparseSampleExplicitLod 3345 3346 Lod 3347
+            3349:  7(f16vec4) CompositeExtract 3348 1
+                              Store 3286(texel) 3349
+            3350:     47(int) CompositeExtract 3348 0
+            3351:         299 Load 301(sCubeArray)
+            3352:  249(fvec4) Load 251(c4)
+            3353:   52(float) Load 565(lod)
+            3354:3146(ResType) ImageSparseSampleExplicitLod 3351 3352 Lod 3353
+            3355:  7(f16vec4) CompositeExtract 3354 1
+                              Store 3286(texel) 3355
+            3356:     47(int) CompositeExtract 3354 0
+            3357:         299 Load 301(sCubeArray)
+            3358:  7(f16vec4) Load 309(f16c4)
+            3359:6(float16_t) Load 572(f16lod)
+            3360:3146(ResType) ImageSparseSampleExplicitLod 3357 3358 Lod 3359
+            3361:  7(f16vec4) CompositeExtract 3360 1
+                              Store 3286(texel) 3361
+            3362:     47(int) CompositeExtract 3360 0
+            3363:  7(f16vec4) Load 3286(texel)
+                              ReturnValue 3363
                               FunctionEnd
 73(testSparseTextureOffset():  7(f16vec4) Function None 8
               74:             Label
-     3322(texel):     64(ptr) Variable Function
-                              Store 3322(texel) 121
-            3323:         143 Load 145(s2D)
-            3324:   53(fvec2) Load 148(c2)
-            3325:3102(ResType) ImageSparseSampleImplicitLod 3323 3324 ConstOffset 722
-            3326:  7(f16vec4) CompositeExtract 3325 1
-                              Store 3322(texel) 3326
-            3327:     47(int) CompositeExtract 3325 0
-            3328:         143 Load 145(s2D)
-            3329:154(f16vec2) Load 156(f16c2)
-            3330:6(float16_t) Load 137(f16bias)
-            3331:3102(ResType) ImageSparseSampleImplicitLod 3328 3329 Bias ConstOffset 3330 722
-            3332:  7(f16vec4) CompositeExtract 3331 1
-                              Store 3322(texel) 3332
-            3333:     47(int) CompositeExtract 3331 0
-            3334:         163 Load 165(s3D)
-            3335:  167(fvec3) Load 169(c3)
-            3336:3102(ResType) ImageSparseSampleImplicitLod 3334 3335 ConstOffset 735
-            3337:  7(f16vec4) CompositeExtract 3336 1
-                              Store 3322(texel) 3337
-            3338:     47(int) CompositeExtract 3336 0
-            3339:         163 Load 165(s3D)
-            3340:175(f16vec3) Load 177(f16c3)
-            3341:6(float16_t) Load 137(f16bias)
-            3342:3102(ResType) ImageSparseSampleImplicitLod 3339 3340 Bias ConstOffset 3341 735
-            3343:  7(f16vec4) CompositeExtract 3342 1
-                              Store 3322(texel) 3343
-            3344:     47(int) CompositeExtract 3342 0
-            3345:         357 Load 359(s2DRect)
-            3346:   53(fvec2) Load 148(c2)
-            3347:3102(ResType) ImageSparseSampleImplicitLod 3345 3346 ConstOffset 722
-            3348:  7(f16vec4) CompositeExtract 3347 1
-                              Store 3322(texel) 3348
-            3349:     47(int) CompositeExtract 3347 0
-            3350:         357 Load 359(s2DRect)
-            3351:154(f16vec2) Load 156(f16c2)
-            3352:3102(ResType) ImageSparseSampleImplicitLod 3350 3351 ConstOffset 722
-            3353:  7(f16vec4) CompositeExtract 3352 1
-                              Store 3322(texel) 3353
-            3354:     47(int) CompositeExtract 3352 0
-            3355:         371 Load 373(s2DRectShadow)
-            3356:  167(fvec3) Load 169(c3)
-            3357:    208(ptr) AccessChain 3322(texel) 207
-            3358:   52(float) CompositeExtract 3356 2
-            3359:3138(ResType) ImageSparseSampleDrefImplicitLod 3355 3356 3358 ConstOffset 722
-            3360:6(float16_t) CompositeExtract 3359 1
-                              Store 3357 3360
-            3361:     47(int) CompositeExtract 3359 0
-            3362:         371 Load 373(s2DRectShadow)
-            3363:154(f16vec2) Load 156(f16c2)
-            3364:   52(float) Load 215(compare)
-            3365:    208(ptr) AccessChain 3322(texel) 207
-            3366:3138(ResType) ImageSparseSampleDrefImplicitLod 3362 3363 3364 ConstOffset 722
-            3367:6(float16_t) CompositeExtract 3366 1
-                              Store 3365 3367
-            3368:     47(int) CompositeExtract 3366 0
-            3369:         224 Load 226(s2DShadow)
-            3370:  167(fvec3) Load 169(c3)
-            3371:    208(ptr) AccessChain 3322(texel) 207
-            3372:   52(float) CompositeExtract 3370 2
-            3373:3138(ResType) ImageSparseSampleDrefImplicitLod 3369 3370 3372 ConstOffset 722
-            3374:6(float16_t) CompositeExtract 3373 1
-                              Store 3371 3374
-            3375:     47(int) CompositeExtract 3373 0
-            3376:         224 Load 226(s2DShadow)
-            3377:154(f16vec2) Load 156(f16c2)
-            3378:   52(float) Load 215(compare)
-            3379:    208(ptr) AccessChain 3322(texel) 207
-            3380:6(float16_t) Load 137(f16bias)
-            3381:3138(ResType) ImageSparseSampleDrefImplicitLod 3376 3377 3378 Bias ConstOffset 3380 722
-            3382:6(float16_t) CompositeExtract 3381 1
-                              Store 3379 3382
-            3383:     47(int) CompositeExtract 3381 0
-            3384:         284 Load 286(s2DArray)
-            3385:  167(fvec3) Load 169(c3)
-            3386:3102(ResType) ImageSparseSampleImplicitLod 3384 3385 ConstOffset 722
+     3366(texel):     64(ptr) Variable Function
+                              Store 3366(texel) 121
+            3367:         143 Load 145(s2D)
+            3368:   53(fvec2) Load 148(c2)
+            3369:3146(ResType) ImageSparseSampleImplicitLod 3367 3368 ConstOffset 722
+            3370:  7(f16vec4) CompositeExtract 3369 1
+                              Store 3366(texel) 3370
+            3371:     47(int) CompositeExtract 3369 0
+            3372:         143 Load 145(s2D)
+            3373:154(f16vec2) Load 156(f16c2)
+            3374:6(float16_t) Load 137(f16bias)
+            3375:3146(ResType) ImageSparseSampleImplicitLod 3372 3373 Bias ConstOffset 3374 722
+            3376:  7(f16vec4) CompositeExtract 3375 1
+                              Store 3366(texel) 3376
+            3377:     47(int) CompositeExtract 3375 0
+            3378:         163 Load 165(s3D)
+            3379:  167(fvec3) Load 169(c3)
+            3380:3146(ResType) ImageSparseSampleImplicitLod 3378 3379 ConstOffset 735
+            3381:  7(f16vec4) CompositeExtract 3380 1
+                              Store 3366(texel) 3381
+            3382:     47(int) CompositeExtract 3380 0
+            3383:         163 Load 165(s3D)
+            3384:175(f16vec3) Load 177(f16c3)
+            3385:6(float16_t) Load 137(f16bias)
+            3386:3146(ResType) ImageSparseSampleImplicitLod 3383 3384 Bias ConstOffset 3385 735
             3387:  7(f16vec4) CompositeExtract 3386 1
-                              Store 3322(texel) 3387
+                              Store 3366(texel) 3387
             3388:     47(int) CompositeExtract 3386 0
-            3389:         284 Load 286(s2DArray)
-            3390:175(f16vec3) Load 177(f16c3)
-            3391:6(float16_t) Load 137(f16bias)
-            3392:3102(ResType) ImageSparseSampleImplicitLod 3389 3390 Bias ConstOffset 3391 722
-            3393:  7(f16vec4) CompositeExtract 3392 1
-                              Store 3322(texel) 3393
-            3394:     47(int) CompositeExtract 3392 0
-            3395:         337 Load 339(s2DArrayShadow)
-            3396:  249(fvec4) Load 251(c4)
-            3397:    208(ptr) AccessChain 3322(texel) 207
-            3398:   52(float) CompositeExtract 3396 3
-            3399:3138(ResType) ImageSparseSampleDrefImplicitLod 3395 3396 3398 ConstOffset 722
-            3400:6(float16_t) CompositeExtract 3399 1
-                              Store 3397 3400
-            3401:     47(int) CompositeExtract 3399 0
-            3402:         337 Load 339(s2DArrayShadow)
-            3403:175(f16vec3) Load 177(f16c3)
-            3404:   52(float) Load 215(compare)
-            3405:    208(ptr) AccessChain 3322(texel) 207
-            3406:3138(ResType) ImageSparseSampleDrefImplicitLod 3402 3403 3404 ConstOffset 722
-            3407:6(float16_t) CompositeExtract 3406 1
-                              Store 3405 3407
-            3408:     47(int) CompositeExtract 3406 0
-            3409:  7(f16vec4) Load 3322(texel)
-                              ReturnValue 3409
-                              FunctionEnd
-75(testSparseTextureLodOffset():  7(f16vec4) Function None 8
-              76:             Label
-     3412(texel):     64(ptr) Variable Function
-                              Store 3412(texel) 121
-            3413:         143 Load 145(s2D)
-            3414:   53(fvec2) Load 148(c2)
-            3415:   52(float) Load 565(lod)
-            3416:3102(ResType) ImageSparseSampleExplicitLod 3413 3414 Lod ConstOffset 3415 722
-            3417:  7(f16vec4) CompositeExtract 3416 1
-                              Store 3412(texel) 3417
-            3418:     47(int) CompositeExtract 3416 0
-            3419:         143 Load 145(s2D)
-            3420:154(f16vec2) Load 156(f16c2)
-            3421:6(float16_t) Load 572(f16lod)
-            3422:3102(ResType) ImageSparseSampleExplicitLod 3419 3420 Lod ConstOffset 3421 722
-            3423:  7(f16vec4) CompositeExtract 3422 1
-                              Store 3412(texel) 3423
-            3424:     47(int) CompositeExtract 3422 0
-            3425:         163 Load 165(s3D)
-            3426:  167(fvec3) Load 169(c3)
-            3427:   52(float) Load 565(lod)
-            3428:3102(ResType) ImageSparseSampleExplicitLod 3425 3426 Lod ConstOffset 3427 735
-            3429:  7(f16vec4) CompositeExtract 3428 1
-                              Store 3412(texel) 3429
-            3430:     47(int) CompositeExtract 3428 0
-            3431:         163 Load 165(s3D)
-            3432:175(f16vec3) Load 177(f16c3)
-            3433:6(float16_t) Load 572(f16lod)
-            3434:3102(ResType) ImageSparseSampleExplicitLod 3431 3432 Lod ConstOffset 3433 735
-            3435:  7(f16vec4) CompositeExtract 3434 1
-                              Store 3412(texel) 3435
-            3436:     47(int) CompositeExtract 3434 0
-            3437:         224 Load 226(s2DShadow)
-            3438:  167(fvec3) Load 169(c3)
-            3439:   52(float) Load 565(lod)
-            3440:    208(ptr) AccessChain 3412(texel) 207
-            3441:   52(float) CompositeExtract 3438 2
-            3442:3138(ResType) ImageSparseSampleDrefExplicitLod 3437 3438 3441 Lod ConstOffset 3439 722
-            3443:6(float16_t) CompositeExtract 3442 1
-                              Store 3440 3443
-            3444:     47(int) CompositeExtract 3442 0
-            3445:         224 Load 226(s2DShadow)
-            3446:154(f16vec2) Load 156(f16c2)
-            3447:   52(float) Load 215(compare)
-            3448:6(float16_t) Load 572(f16lod)
-            3449:    208(ptr) AccessChain 3412(texel) 207
-            3450:3138(ResType) ImageSparseSampleDrefExplicitLod 3445 3446 3447 Lod ConstOffset 3448 722
+            3389:         357 Load 359(s2DRect)
+            3390:   53(fvec2) Load 148(c2)
+            3391:3146(ResType) ImageSparseSampleImplicitLod 3389 3390 ConstOffset 722
+            3392:  7(f16vec4) CompositeExtract 3391 1
+                              Store 3366(texel) 3392
+            3393:     47(int) CompositeExtract 3391 0
+            3394:         357 Load 359(s2DRect)
+            3395:154(f16vec2) Load 156(f16c2)
+            3396:3146(ResType) ImageSparseSampleImplicitLod 3394 3395 ConstOffset 722
+            3397:  7(f16vec4) CompositeExtract 3396 1
+                              Store 3366(texel) 3397
+            3398:     47(int) CompositeExtract 3396 0
+            3399:         371 Load 373(s2DRectShadow)
+            3400:  167(fvec3) Load 169(c3)
+            3401:    208(ptr) AccessChain 3366(texel) 207
+            3402:   52(float) CompositeExtract 3400 2
+            3403:3182(ResType) ImageSparseSampleDrefImplicitLod 3399 3400 3402 ConstOffset 722
+            3404:6(float16_t) CompositeExtract 3403 1
+                              Store 3401 3404
+            3405:     47(int) CompositeExtract 3403 0
+            3406:         371 Load 373(s2DRectShadow)
+            3407:154(f16vec2) Load 156(f16c2)
+            3408:   52(float) Load 215(compare)
+            3409:    208(ptr) AccessChain 3366(texel) 207
+            3410:3182(ResType) ImageSparseSampleDrefImplicitLod 3406 3407 3408 ConstOffset 722
+            3411:6(float16_t) CompositeExtract 3410 1
+                              Store 3409 3411
+            3412:     47(int) CompositeExtract 3410 0
+            3413:         224 Load 226(s2DShadow)
+            3414:  167(fvec3) Load 169(c3)
+            3415:    208(ptr) AccessChain 3366(texel) 207
+            3416:   52(float) CompositeExtract 3414 2
+            3417:3182(ResType) ImageSparseSampleDrefImplicitLod 3413 3414 3416 ConstOffset 722
+            3418:6(float16_t) CompositeExtract 3417 1
+                              Store 3415 3418
+            3419:     47(int) CompositeExtract 3417 0
+            3420:         224 Load 226(s2DShadow)
+            3421:154(f16vec2) Load 156(f16c2)
+            3422:   52(float) Load 215(compare)
+            3423:    208(ptr) AccessChain 3366(texel) 207
+            3424:6(float16_t) Load 137(f16bias)
+            3425:3182(ResType) ImageSparseSampleDrefImplicitLod 3420 3421 3422 Bias ConstOffset 3424 722
+            3426:6(float16_t) CompositeExtract 3425 1
+                              Store 3423 3426
+            3427:     47(int) CompositeExtract 3425 0
+            3428:         284 Load 286(s2DArray)
+            3429:  167(fvec3) Load 169(c3)
+            3430:3146(ResType) ImageSparseSampleImplicitLod 3428 3429 ConstOffset 722
+            3431:  7(f16vec4) CompositeExtract 3430 1
+                              Store 3366(texel) 3431
+            3432:     47(int) CompositeExtract 3430 0
+            3433:         284 Load 286(s2DArray)
+            3434:175(f16vec3) Load 177(f16c3)
+            3435:6(float16_t) Load 137(f16bias)
+            3436:3146(ResType) ImageSparseSampleImplicitLod 3433 3434 Bias ConstOffset 3435 722
+            3437:  7(f16vec4) CompositeExtract 3436 1
+                              Store 3366(texel) 3437
+            3438:     47(int) CompositeExtract 3436 0
+            3439:         337 Load 339(s2DArrayShadow)
+            3440:  249(fvec4) Load 251(c4)
+            3441:    208(ptr) AccessChain 3366(texel) 207
+            3442:   52(float) CompositeExtract 3440 3
+            3443:3182(ResType) ImageSparseSampleDrefImplicitLod 3439 3440 3442 ConstOffset 722
+            3444:6(float16_t) CompositeExtract 3443 1
+                              Store 3441 3444
+            3445:     47(int) CompositeExtract 3443 0
+            3446:         337 Load 339(s2DArrayShadow)
+            3447:175(f16vec3) Load 177(f16c3)
+            3448:   52(float) Load 215(compare)
+            3449:    208(ptr) AccessChain 3366(texel) 207
+            3450:3182(ResType) ImageSparseSampleDrefImplicitLod 3446 3447 3448 ConstOffset 722
             3451:6(float16_t) CompositeExtract 3450 1
                               Store 3449 3451
             3452:     47(int) CompositeExtract 3450 0
-            3453:         284 Load 286(s2DArray)
-            3454:  167(fvec3) Load 169(c3)
-            3455:   52(float) Load 565(lod)
-            3456:3102(ResType) ImageSparseSampleExplicitLod 3453 3454 Lod ConstOffset 3455 722
-            3457:  7(f16vec4) CompositeExtract 3456 1
-                              Store 3412(texel) 3457
-            3458:     47(int) CompositeExtract 3456 0
-            3459:         284 Load 286(s2DArray)
-            3460:175(f16vec3) Load 177(f16c3)
-            3461:6(float16_t) Load 572(f16lod)
-            3462:3102(ResType) ImageSparseSampleExplicitLod 3459 3460 Lod ConstOffset 3461 722
-            3463:  7(f16vec4) CompositeExtract 3462 1
-                              Store 3412(texel) 3463
-            3464:     47(int) CompositeExtract 3462 0
-            3465:  7(f16vec4) Load 3412(texel)
-                              ReturnValue 3465
+            3453:  7(f16vec4) Load 3366(texel)
+                              ReturnValue 3453
+                              FunctionEnd
+75(testSparseTextureLodOffset():  7(f16vec4) Function None 8
+              76:             Label
+     3456(texel):     64(ptr) Variable Function
+                              Store 3456(texel) 121
+            3457:         143 Load 145(s2D)
+            3458:   53(fvec2) Load 148(c2)
+            3459:   52(float) Load 565(lod)
+            3460:3146(ResType) ImageSparseSampleExplicitLod 3457 3458 Lod ConstOffset 3459 722
+            3461:  7(f16vec4) CompositeExtract 3460 1
+                              Store 3456(texel) 3461
+            3462:     47(int) CompositeExtract 3460 0
+            3463:         143 Load 145(s2D)
+            3464:154(f16vec2) Load 156(f16c2)
+            3465:6(float16_t) Load 572(f16lod)
+            3466:3146(ResType) ImageSparseSampleExplicitLod 3463 3464 Lod ConstOffset 3465 722
+            3467:  7(f16vec4) CompositeExtract 3466 1
+                              Store 3456(texel) 3467
+            3468:     47(int) CompositeExtract 3466 0
+            3469:         163 Load 165(s3D)
+            3470:  167(fvec3) Load 169(c3)
+            3471:   52(float) Load 565(lod)
+            3472:3146(ResType) ImageSparseSampleExplicitLod 3469 3470 Lod ConstOffset 3471 735
+            3473:  7(f16vec4) CompositeExtract 3472 1
+                              Store 3456(texel) 3473
+            3474:     47(int) CompositeExtract 3472 0
+            3475:         163 Load 165(s3D)
+            3476:175(f16vec3) Load 177(f16c3)
+            3477:6(float16_t) Load 572(f16lod)
+            3478:3146(ResType) ImageSparseSampleExplicitLod 3475 3476 Lod ConstOffset 3477 735
+            3479:  7(f16vec4) CompositeExtract 3478 1
+                              Store 3456(texel) 3479
+            3480:     47(int) CompositeExtract 3478 0
+            3481:         224 Load 226(s2DShadow)
+            3482:  167(fvec3) Load 169(c3)
+            3483:   52(float) Load 565(lod)
+            3484:    208(ptr) AccessChain 3456(texel) 207
+            3485:   52(float) CompositeExtract 3482 2
+            3486:3182(ResType) ImageSparseSampleDrefExplicitLod 3481 3482 3485 Lod ConstOffset 3483 722
+            3487:6(float16_t) CompositeExtract 3486 1
+                              Store 3484 3487
+            3488:     47(int) CompositeExtract 3486 0
+            3489:         224 Load 226(s2DShadow)
+            3490:154(f16vec2) Load 156(f16c2)
+            3491:   52(float) Load 215(compare)
+            3492:6(float16_t) Load 572(f16lod)
+            3493:    208(ptr) AccessChain 3456(texel) 207
+            3494:3182(ResType) ImageSparseSampleDrefExplicitLod 3489 3490 3491 Lod ConstOffset 3492 722
+            3495:6(float16_t) CompositeExtract 3494 1
+                              Store 3493 3495
+            3496:     47(int) CompositeExtract 3494 0
+            3497:         284 Load 286(s2DArray)
+            3498:  167(fvec3) Load 169(c3)
+            3499:   52(float) Load 565(lod)
+            3500:3146(ResType) ImageSparseSampleExplicitLod 3497 3498 Lod ConstOffset 3499 722
+            3501:  7(f16vec4) CompositeExtract 3500 1
+                              Store 3456(texel) 3501
+            3502:     47(int) CompositeExtract 3500 0
+            3503:         284 Load 286(s2DArray)
+            3504:175(f16vec3) Load 177(f16c3)
+            3505:6(float16_t) Load 572(f16lod)
+            3506:3146(ResType) ImageSparseSampleExplicitLod 3503 3504 Lod ConstOffset 3505 722
+            3507:  7(f16vec4) CompositeExtract 3506 1
+                              Store 3456(texel) 3507
+            3508:     47(int) CompositeExtract 3506 0
+            3509:  7(f16vec4) Load 3456(texel)
+                              ReturnValue 3509
                               FunctionEnd
 77(testSparseTextureGrad():  7(f16vec4) Function None 8
               78:             Label
-     3468(texel):     64(ptr) Variable Function
-                              Store 3468(texel) 121
-            3469:         143 Load 145(s2D)
-            3470:   53(fvec2) Load 148(c2)
-            3471:   53(fvec2) Load 1409(dPdxy2)
-            3472:   53(fvec2) Load 1409(dPdxy2)
-            3473:3102(ResType) ImageSparseSampleExplicitLod 3469 3470 Grad 3471 3472
-            3474:  7(f16vec4) CompositeExtract 3473 1
-                              Store 3468(texel) 3474
-            3475:     47(int) CompositeExtract 3473 0
-            3476:         143 Load 145(s2D)
-            3477:154(f16vec2) Load 156(f16c2)
-            3478:154(f16vec2) Load 1417(f16dPdxy2)
-            3479:154(f16vec2) Load 1417(f16dPdxy2)
-            3480:3102(ResType) ImageSparseSampleExplicitLod 3476 3477 Grad 3478 3479
-            3481:  7(f16vec4) CompositeExtract 3480 1
-                              Store 3468(texel) 3481
-            3482:     47(int) CompositeExtract 3480 0
-            3483:         163 Load 165(s3D)
-            3484:  167(fvec3) Load 169(c3)
-            3485:  167(fvec3) Load 1425(dPdxy3)
-            3486:  167(fvec3) Load 1425(dPdxy3)
-            3487:3102(ResType) ImageSparseSampleExplicitLod 3483 3484 Grad 3485 3486
-            3488:  7(f16vec4) CompositeExtract 3487 1
-                              Store 3468(texel) 3488
-            3489:     47(int) CompositeExtract 3487 0
-            3490:         163 Load 165(s3D)
-            3491:175(f16vec3) Load 177(f16c3)
-            3492:175(f16vec3) Load 1433(f16dPdxy3)
-            3493:175(f16vec3) Load 1433(f16dPdxy3)
-            3494:3102(ResType) ImageSparseSampleExplicitLod 3490 3491 Grad 3492 3493
-            3495:  7(f16vec4) CompositeExtract 3494 1
-                              Store 3468(texel) 3495
-            3496:     47(int) CompositeExtract 3494 0
-            3497:         184 Load 186(sCube)
-            3498:  167(fvec3) Load 169(c3)
-            3499:  167(fvec3) Load 1425(dPdxy3)
-            3500:  167(fvec3) Load 1425(dPdxy3)
-            3501:3102(ResType) ImageSparseSampleExplicitLod 3497 3498 Grad 3499 3500
-            3502:  7(f16vec4) CompositeExtract 3501 1
-                              Store 3468(texel) 3502
-            3503:     47(int) CompositeExtract 3501 0
-            3504:         184 Load 186(sCube)
-            3505:175(f16vec3) Load 177(f16c3)
-            3506:175(f16vec3) Load 1433(f16dPdxy3)
-            3507:175(f16vec3) Load 1433(f16dPdxy3)
-            3508:3102(ResType) ImageSparseSampleExplicitLod 3504 3505 Grad 3506 3507
-            3509:  7(f16vec4) CompositeExtract 3508 1
-                              Store 3468(texel) 3509
-            3510:     47(int) CompositeExtract 3508 0
-            3511:         357 Load 359(s2DRect)
-            3512:   53(fvec2) Load 148(c2)
-            3513:   53(fvec2) Load 1409(dPdxy2)
-            3514:   53(fvec2) Load 1409(dPdxy2)
-            3515:3102(ResType) ImageSparseSampleExplicitLod 3511 3512 Grad 3513 3514
-            3516:  7(f16vec4) CompositeExtract 3515 1
-                              Store 3468(texel) 3516
-            3517:     47(int) CompositeExtract 3515 0
-            3518:         357 Load 359(s2DRect)
-            3519:154(f16vec2) Load 156(f16c2)
-            3520:154(f16vec2) Load 1417(f16dPdxy2)
-            3521:154(f16vec2) Load 1417(f16dPdxy2)
-            3522:3102(ResType) ImageSparseSampleExplicitLod 3518 3519 Grad 3520 3521
-            3523:  7(f16vec4) CompositeExtract 3522 1
-                              Store 3468(texel) 3523
-            3524:     47(int) CompositeExtract 3522 0
-            3525:         371 Load 373(s2DRectShadow)
-            3526:  167(fvec3) Load 169(c3)
-            3527:   53(fvec2) Load 1409(dPdxy2)
-            3528:   53(fvec2) Load 1409(dPdxy2)
-            3529:    208(ptr) AccessChain 3468(texel) 207
-            3530:   52(float) CompositeExtract 3526 2
-            3531:3138(ResType) ImageSparseSampleDrefExplicitLod 3525 3526 3530 Grad 3527 3528
-            3532:6(float16_t) CompositeExtract 3531 1
-                              Store 3529 3532
+     3512(texel):     64(ptr) Variable Function
+                              Store 3512(texel) 121
+            3513:         143 Load 145(s2D)
+            3514:   53(fvec2) Load 148(c2)
+            3515:   53(fvec2) Load 1409(dPdxy2)
+            3516:   53(fvec2) Load 1409(dPdxy2)
+            3517:3146(ResType) ImageSparseSampleExplicitLod 3513 3514 Grad 3515 3516
+            3518:  7(f16vec4) CompositeExtract 3517 1
+                              Store 3512(texel) 3518
+            3519:     47(int) CompositeExtract 3517 0
+            3520:         143 Load 145(s2D)
+            3521:154(f16vec2) Load 156(f16c2)
+            3522:154(f16vec2) Load 1417(f16dPdxy2)
+            3523:154(f16vec2) Load 1417(f16dPdxy2)
+            3524:3146(ResType) ImageSparseSampleExplicitLod 3520 3521 Grad 3522 3523
+            3525:  7(f16vec4) CompositeExtract 3524 1
+                              Store 3512(texel) 3525
+            3526:     47(int) CompositeExtract 3524 0
+            3527:         163 Load 165(s3D)
+            3528:  167(fvec3) Load 169(c3)
+            3529:  167(fvec3) Load 1425(dPdxy3)
+            3530:  167(fvec3) Load 1425(dPdxy3)
+            3531:3146(ResType) ImageSparseSampleExplicitLod 3527 3528 Grad 3529 3530
+            3532:  7(f16vec4) CompositeExtract 3531 1
+                              Store 3512(texel) 3532
             3533:     47(int) CompositeExtract 3531 0
-            3534:         371 Load 373(s2DRectShadow)
-            3535:154(f16vec2) Load 156(f16c2)
-            3536:   52(float) Load 215(compare)
-            3537:154(f16vec2) Load 1417(f16dPdxy2)
-            3538:154(f16vec2) Load 1417(f16dPdxy2)
-            3539:    208(ptr) AccessChain 3468(texel) 207
-            3540:3138(ResType) ImageSparseSampleDrefExplicitLod 3534 3535 3536 Grad 3537 3538
-            3541:6(float16_t) CompositeExtract 3540 1
-                              Store 3539 3541
-            3542:     47(int) CompositeExtract 3540 0
-            3543:         224 Load 226(s2DShadow)
-            3544:  167(fvec3) Load 169(c3)
-            3545:   53(fvec2) Load 1409(dPdxy2)
-            3546:   53(fvec2) Load 1409(dPdxy2)
-            3547:    208(ptr) AccessChain 3468(texel) 207
-            3548:   52(float) CompositeExtract 3544 2
-            3549:3138(ResType) ImageSparseSampleDrefExplicitLod 3543 3544 3548 Grad 3545 3546
-            3550:6(float16_t) CompositeExtract 3549 1
-                              Store 3547 3550
-            3551:     47(int) CompositeExtract 3549 0
-            3552:         224 Load 226(s2DShadow)
-            3553:154(f16vec2) Load 156(f16c2)
-            3554:   52(float) Load 215(compare)
-            3555:154(f16vec2) Load 1417(f16dPdxy2)
-            3556:154(f16vec2) Load 1417(f16dPdxy2)
-            3557:    208(ptr) AccessChain 3468(texel) 207
-            3558:3138(ResType) ImageSparseSampleDrefExplicitLod 3552 3553 3554 Grad 3555 3556
-            3559:6(float16_t) CompositeExtract 3558 1
-                              Store 3557 3559
-            3560:     47(int) CompositeExtract 3558 0
-            3561:         245 Load 247(sCubeShadow)
-            3562:  249(fvec4) Load 251(c4)
-            3563:  167(fvec3) Load 1425(dPdxy3)
-            3564:  167(fvec3) Load 1425(dPdxy3)
-            3565:    208(ptr) AccessChain 3468(texel) 207
-            3566:   52(float) CompositeExtract 3562 3
-            3567:3138(ResType) ImageSparseSampleDrefExplicitLod 3561 3562 3566 Grad 3563 3564
-            3568:6(float16_t) CompositeExtract 3567 1
-                              Store 3565 3568
-            3569:     47(int) CompositeExtract 3567 0
-            3570:         245 Load 247(sCubeShadow)
-            3571:175(f16vec3) Load 177(f16c3)
-            3572:   52(float) Load 215(compare)
-            3573:175(f16vec3) Load 1433(f16dPdxy3)
-            3574:175(f16vec3) Load 1433(f16dPdxy3)
-            3575:    208(ptr) AccessChain 3468(texel) 207
-            3576:3138(ResType) ImageSparseSampleDrefExplicitLod 3570 3571 3572 Grad 3573 3574
-            3577:6(float16_t) CompositeExtract 3576 1
-                              Store 3575 3577
-            3578:     47(int) CompositeExtract 3576 0
-            3579:         284 Load 286(s2DArray)
-            3580:  167(fvec3) Load 169(c3)
-            3581:   53(fvec2) Load 1409(dPdxy2)
-            3582:   53(fvec2) Load 1409(dPdxy2)
-            3583:3102(ResType) ImageSparseSampleExplicitLod 3579 3580 Grad 3581 3582
-            3584:  7(f16vec4) CompositeExtract 3583 1
-                              Store 3468(texel) 3584
-            3585:     47(int) CompositeExtract 3583 0
-            3586:         284 Load 286(s2DArray)
-            3587:175(f16vec3) Load 177(f16c3)
-            3588:154(f16vec2) Load 1417(f16dPdxy2)
-            3589:154(f16vec2) Load 1417(f16dPdxy2)
-            3590:3102(ResType) ImageSparseSampleExplicitLod 3586 3587 Grad 3588 3589
-            3591:  7(f16vec4) CompositeExtract 3590 1
-                              Store 3468(texel) 3591
-            3592:     47(int) CompositeExtract 3590 0
-            3593:         337 Load 339(s2DArrayShadow)
-            3594:  249(fvec4) Load 251(c4)
-            3595:   53(fvec2) Load 1409(dPdxy2)
-            3596:   53(fvec2) Load 1409(dPdxy2)
-            3597:    208(ptr) AccessChain 3468(texel) 207
-            3598:   52(float) CompositeExtract 3594 3
-            3599:3138(ResType) ImageSparseSampleDrefExplicitLod 3593 3594 3598 Grad 3595 3596
-            3600:6(float16_t) CompositeExtract 3599 1
-                              Store 3597 3600
-            3601:     47(int) CompositeExtract 3599 0
-            3602:         337 Load 339(s2DArrayShadow)
-            3603:175(f16vec3) Load 177(f16c3)
-            3604:   52(float) Load 215(compare)
-            3605:154(f16vec2) Load 1417(f16dPdxy2)
-            3606:154(f16vec2) Load 1417(f16dPdxy2)
-            3607:    208(ptr) AccessChain 3468(texel) 207
-            3608:3138(ResType) ImageSparseSampleDrefExplicitLod 3602 3603 3604 Grad 3605 3606
-            3609:6(float16_t) CompositeExtract 3608 1
-                              Store 3607 3609
-            3610:     47(int) CompositeExtract 3608 0
-            3611:         299 Load 301(sCubeArray)
-            3612:  249(fvec4) Load 251(c4)
-            3613:  167(fvec3) Load 1425(dPdxy3)
-            3614:  167(fvec3) Load 1425(dPdxy3)
-            3615:3102(ResType) ImageSparseSampleExplicitLod 3611 3612 Grad 3613 3614
-            3616:  7(f16vec4) CompositeExtract 3615 1
-                              Store 3468(texel) 3616
-            3617:     47(int) CompositeExtract 3615 0
-            3618:         299 Load 301(sCubeArray)
-            3619:  7(f16vec4) Load 309(f16c4)
-            3620:175(f16vec3) Load 1433(f16dPdxy3)
-            3621:175(f16vec3) Load 1433(f16dPdxy3)
-            3622:3102(ResType) ImageSparseSampleExplicitLod 3618 3619 Grad 3620 3621
-            3623:  7(f16vec4) CompositeExtract 3622 1
-                              Store 3468(texel) 3623
-            3624:     47(int) CompositeExtract 3622 0
-            3625:  7(f16vec4) Load 3468(texel)
-                              ReturnValue 3625
+            3534:         163 Load 165(s3D)
+            3535:175(f16vec3) Load 177(f16c3)
+            3536:175(f16vec3) Load 1433(f16dPdxy3)
+            3537:175(f16vec3) Load 1433(f16dPdxy3)
+            3538:3146(ResType) ImageSparseSampleExplicitLod 3534 3535 Grad 3536 3537
+            3539:  7(f16vec4) CompositeExtract 3538 1
+                              Store 3512(texel) 3539
+            3540:     47(int) CompositeExtract 3538 0
+            3541:         184 Load 186(sCube)
+            3542:  167(fvec3) Load 169(c3)
+            3543:  167(fvec3) Load 1425(dPdxy3)
+            3544:  167(fvec3) Load 1425(dPdxy3)
+            3545:3146(ResType) ImageSparseSampleExplicitLod 3541 3542 Grad 3543 3544
+            3546:  7(f16vec4) CompositeExtract 3545 1
+                              Store 3512(texel) 3546
+            3547:     47(int) CompositeExtract 3545 0
+            3548:         184 Load 186(sCube)
+            3549:175(f16vec3) Load 177(f16c3)
+            3550:175(f16vec3) Load 1433(f16dPdxy3)
+            3551:175(f16vec3) Load 1433(f16dPdxy3)
+            3552:3146(ResType) ImageSparseSampleExplicitLod 3548 3549 Grad 3550 3551
+            3553:  7(f16vec4) CompositeExtract 3552 1
+                              Store 3512(texel) 3553
+            3554:     47(int) CompositeExtract 3552 0
+            3555:         357 Load 359(s2DRect)
+            3556:   53(fvec2) Load 148(c2)
+            3557:   53(fvec2) Load 1409(dPdxy2)
+            3558:   53(fvec2) Load 1409(dPdxy2)
+            3559:3146(ResType) ImageSparseSampleExplicitLod 3555 3556 Grad 3557 3558
+            3560:  7(f16vec4) CompositeExtract 3559 1
+                              Store 3512(texel) 3560
+            3561:     47(int) CompositeExtract 3559 0
+            3562:         357 Load 359(s2DRect)
+            3563:154(f16vec2) Load 156(f16c2)
+            3564:154(f16vec2) Load 1417(f16dPdxy2)
+            3565:154(f16vec2) Load 1417(f16dPdxy2)
+            3566:3146(ResType) ImageSparseSampleExplicitLod 3562 3563 Grad 3564 3565
+            3567:  7(f16vec4) CompositeExtract 3566 1
+                              Store 3512(texel) 3567
+            3568:     47(int) CompositeExtract 3566 0
+            3569:         371 Load 373(s2DRectShadow)
+            3570:  167(fvec3) Load 169(c3)
+            3571:   53(fvec2) Load 1409(dPdxy2)
+            3572:   53(fvec2) Load 1409(dPdxy2)
+            3573:    208(ptr) AccessChain 3512(texel) 207
+            3574:   52(float) CompositeExtract 3570 2
+            3575:3182(ResType) ImageSparseSampleDrefExplicitLod 3569 3570 3574 Grad 3571 3572
+            3576:6(float16_t) CompositeExtract 3575 1
+                              Store 3573 3576
+            3577:     47(int) CompositeExtract 3575 0
+            3578:         371 Load 373(s2DRectShadow)
+            3579:154(f16vec2) Load 156(f16c2)
+            3580:   52(float) Load 215(compare)
+            3581:154(f16vec2) Load 1417(f16dPdxy2)
+            3582:154(f16vec2) Load 1417(f16dPdxy2)
+            3583:    208(ptr) AccessChain 3512(texel) 207
+            3584:3182(ResType) ImageSparseSampleDrefExplicitLod 3578 3579 3580 Grad 3581 3582
+            3585:6(float16_t) CompositeExtract 3584 1
+                              Store 3583 3585
+            3586:     47(int) CompositeExtract 3584 0
+            3587:         224 Load 226(s2DShadow)
+            3588:  167(fvec3) Load 169(c3)
+            3589:   53(fvec2) Load 1409(dPdxy2)
+            3590:   53(fvec2) Load 1409(dPdxy2)
+            3591:    208(ptr) AccessChain 3512(texel) 207
+            3592:   52(float) CompositeExtract 3588 2
+            3593:3182(ResType) ImageSparseSampleDrefExplicitLod 3587 3588 3592 Grad 3589 3590
+            3594:6(float16_t) CompositeExtract 3593 1
+                              Store 3591 3594
+            3595:     47(int) CompositeExtract 3593 0
+            3596:         224 Load 226(s2DShadow)
+            3597:154(f16vec2) Load 156(f16c2)
+            3598:   52(float) Load 215(compare)
+            3599:154(f16vec2) Load 1417(f16dPdxy2)
+            3600:154(f16vec2) Load 1417(f16dPdxy2)
+            3601:    208(ptr) AccessChain 3512(texel) 207
+            3602:3182(ResType) ImageSparseSampleDrefExplicitLod 3596 3597 3598 Grad 3599 3600
+            3603:6(float16_t) CompositeExtract 3602 1
+                              Store 3601 3603
+            3604:     47(int) CompositeExtract 3602 0
+            3605:         245 Load 247(sCubeShadow)
+            3606:  249(fvec4) Load 251(c4)
+            3607:  167(fvec3) Load 1425(dPdxy3)
+            3608:  167(fvec3) Load 1425(dPdxy3)
+            3609:    208(ptr) AccessChain 3512(texel) 207
+            3610:   52(float) CompositeExtract 3606 3
+            3611:3182(ResType) ImageSparseSampleDrefExplicitLod 3605 3606 3610 Grad 3607 3608
+            3612:6(float16_t) CompositeExtract 3611 1
+                              Store 3609 3612
+            3613:     47(int) CompositeExtract 3611 0
+            3614:         245 Load 247(sCubeShadow)
+            3615:175(f16vec3) Load 177(f16c3)
+            3616:   52(float) Load 215(compare)
+            3617:175(f16vec3) Load 1433(f16dPdxy3)
+            3618:175(f16vec3) Load 1433(f16dPdxy3)
+            3619:    208(ptr) AccessChain 3512(texel) 207
+            3620:3182(ResType) ImageSparseSampleDrefExplicitLod 3614 3615 3616 Grad 3617 3618
+            3621:6(float16_t) CompositeExtract 3620 1
+                              Store 3619 3621
+            3622:     47(int) CompositeExtract 3620 0
+            3623:         284 Load 286(s2DArray)
+            3624:  167(fvec3) Load 169(c3)
+            3625:   53(fvec2) Load 1409(dPdxy2)
+            3626:   53(fvec2) Load 1409(dPdxy2)
+            3627:3146(ResType) ImageSparseSampleExplicitLod 3623 3624 Grad 3625 3626
+            3628:  7(f16vec4) CompositeExtract 3627 1
+                              Store 3512(texel) 3628
+            3629:     47(int) CompositeExtract 3627 0
+            3630:         284 Load 286(s2DArray)
+            3631:175(f16vec3) Load 177(f16c3)
+            3632:154(f16vec2) Load 1417(f16dPdxy2)
+            3633:154(f16vec2) Load 1417(f16dPdxy2)
+            3634:3146(ResType) ImageSparseSampleExplicitLod 3630 3631 Grad 3632 3633
+            3635:  7(f16vec4) CompositeExtract 3634 1
+                              Store 3512(texel) 3635
+            3636:     47(int) CompositeExtract 3634 0
+            3637:         337 Load 339(s2DArrayShadow)
+            3638:  249(fvec4) Load 251(c4)
+            3639:   53(fvec2) Load 1409(dPdxy2)
+            3640:   53(fvec2) Load 1409(dPdxy2)
+            3641:    208(ptr) AccessChain 3512(texel) 207
+            3642:   52(float) CompositeExtract 3638 3
+            3643:3182(ResType) ImageSparseSampleDrefExplicitLod 3637 3638 3642 Grad 3639 3640
+            3644:6(float16_t) CompositeExtract 3643 1
+                              Store 3641 3644
+            3645:     47(int) CompositeExtract 3643 0
+            3646:         337 Load 339(s2DArrayShadow)
+            3647:175(f16vec3) Load 177(f16c3)
+            3648:   52(float) Load 215(compare)
+            3649:154(f16vec2) Load 1417(f16dPdxy2)
+            3650:154(f16vec2) Load 1417(f16dPdxy2)
+            3651:    208(ptr) AccessChain 3512(texel) 207
+            3652:3182(ResType) ImageSparseSampleDrefExplicitLod 3646 3647 3648 Grad 3649 3650
+            3653:6(float16_t) CompositeExtract 3652 1
+                              Store 3651 3653
+            3654:     47(int) CompositeExtract 3652 0
+            3655:         299 Load 301(sCubeArray)
+            3656:  249(fvec4) Load 251(c4)
+            3657:  167(fvec3) Load 1425(dPdxy3)
+            3658:  167(fvec3) Load 1425(dPdxy3)
+            3659:3146(ResType) ImageSparseSampleExplicitLod 3655 3656 Grad 3657 3658
+            3660:  7(f16vec4) CompositeExtract 3659 1
+                              Store 3512(texel) 3660
+            3661:     47(int) CompositeExtract 3659 0
+            3662:         299 Load 301(sCubeArray)
+            3663:  7(f16vec4) Load 309(f16c4)
+            3664:175(f16vec3) Load 1433(f16dPdxy3)
+            3665:175(f16vec3) Load 1433(f16dPdxy3)
+            3666:3146(ResType) ImageSparseSampleExplicitLod 3662 3663 Grad 3664 3665
+            3667:  7(f16vec4) CompositeExtract 3666 1
+                              Store 3512(texel) 3667
+            3668:     47(int) CompositeExtract 3666 0
+            3669:  7(f16vec4) Load 3512(texel)
+                              ReturnValue 3669
                               FunctionEnd
 79(testSparseTextureGradOffset():  7(f16vec4) Function None 8
               80:             Label
-     3628(texel):     64(ptr) Variable Function
-                              Store 3628(texel) 121
-            3629:         143 Load 145(s2D)
-            3630:   53(fvec2) Load 148(c2)
-            3631:   53(fvec2) Load 1409(dPdxy2)
-            3632:   53(fvec2) Load 1409(dPdxy2)
-            3633:3102(ResType) ImageSparseSampleExplicitLod 3629 3630 Grad ConstOffset 3631 3632 722
-            3634:  7(f16vec4) CompositeExtract 3633 1
-                              Store 3628(texel) 3634
-            3635:     47(int) CompositeExtract 3633 0
-            3636:         143 Load 145(s2D)
-            3637:154(f16vec2) Load 156(f16c2)
-            3638:154(f16vec2) Load 1417(f16dPdxy2)
-            3639:154(f16vec2) Load 1417(f16dPdxy2)
-            3640:3102(ResType) ImageSparseSampleExplicitLod 3636 3637 Grad ConstOffset 3638 3639 722
-            3641:  7(f16vec4) CompositeExtract 3640 1
-                              Store 3628(texel) 3641
-            3642:     47(int) CompositeExtract 3640 0
-            3643:         163 Load 165(s3D)
-            3644:  167(fvec3) Load 169(c3)
-            3645:  167(fvec3) Load 1425(dPdxy3)
-            3646:  167(fvec3) Load 1425(dPdxy3)
-            3647:3102(ResType) ImageSparseSampleExplicitLod 3643 3644 Grad ConstOffset 3645 3646 735
-            3648:  7(f16vec4) CompositeExtract 3647 1
-                              Store 3628(texel) 3648
-            3649:     47(int) CompositeExtract 3647 0
-            3650:         163 Load 165(s3D)
-            3651:175(f16vec3) Load 177(f16c3)
-            3652:175(f16vec3) Load 1433(f16dPdxy3)
-            3653:175(f16vec3) Load 1433(f16dPdxy3)
-            3654:3102(ResType) ImageSparseSampleExplicitLod 3650 3651 Grad ConstOffset 3652 3653 735
-            3655:  7(f16vec4) CompositeExtract 3654 1
-                              Store 3628(texel) 3655
-            3656:     47(int) CompositeExtract 3654 0
-            3657:         357 Load 359(s2DRect)
-            3658:   53(fvec2) Load 148(c2)
-            3659:   53(fvec2) Load 1409(dPdxy2)
-            3660:   53(fvec2) Load 1409(dPdxy2)
-            3661:3102(ResType) ImageSparseSampleExplicitLod 3657 3658 Grad ConstOffset 3659 3660 722
-            3662:  7(f16vec4) CompositeExtract 3661 1
-                              Store 3628(texel) 3662
-            3663:     47(int) CompositeExtract 3661 0
-            3664:         357 Load 359(s2DRect)
-            3665:154(f16vec2) Load 156(f16c2)
-            3666:154(f16vec2) Load 1417(f16dPdxy2)
-            3667:154(f16vec2) Load 1417(f16dPdxy2)
-            3668:3102(ResType) ImageSparseSampleExplicitLod 3664 3665 Grad ConstOffset 3666 3667 722
-            3669:  7(f16vec4) CompositeExtract 3668 1
-                              Store 3628(texel) 3669
-            3670:     47(int) CompositeExtract 3668 0
-            3671:         371 Load 373(s2DRectShadow)
-            3672:  167(fvec3) Load 169(c3)
-            3673:   53(fvec2) Load 1409(dPdxy2)
-            3674:   53(fvec2) Load 1409(dPdxy2)
-            3675:    208(ptr) AccessChain 3628(texel) 207
-            3676:   52(float) CompositeExtract 3672 2
-            3677:3138(ResType) ImageSparseSampleDrefExplicitLod 3671 3672 3676 Grad ConstOffset 3673 3674 722
-            3678:6(float16_t) CompositeExtract 3677 1
-                              Store 3675 3678
+     3672(texel):     64(ptr) Variable Function
+                              Store 3672(texel) 121
+            3673:         143 Load 145(s2D)
+            3674:   53(fvec2) Load 148(c2)
+            3675:   53(fvec2) Load 1409(dPdxy2)
+            3676:   53(fvec2) Load 1409(dPdxy2)
+            3677:3146(ResType) ImageSparseSampleExplicitLod 3673 3674 Grad ConstOffset 3675 3676 722
+            3678:  7(f16vec4) CompositeExtract 3677 1
+                              Store 3672(texel) 3678
             3679:     47(int) CompositeExtract 3677 0
-            3680:         371 Load 373(s2DRectShadow)
+            3680:         143 Load 145(s2D)
             3681:154(f16vec2) Load 156(f16c2)
-            3682:   52(float) Load 215(compare)
+            3682:154(f16vec2) Load 1417(f16dPdxy2)
             3683:154(f16vec2) Load 1417(f16dPdxy2)
-            3684:154(f16vec2) Load 1417(f16dPdxy2)
-            3685:    208(ptr) AccessChain 3628(texel) 207
-            3686:3138(ResType) ImageSparseSampleDrefExplicitLod 3680 3681 3682 Grad ConstOffset 3683 3684 722
-            3687:6(float16_t) CompositeExtract 3686 1
-                              Store 3685 3687
-            3688:     47(int) CompositeExtract 3686 0
-            3689:         224 Load 226(s2DShadow)
-            3690:  167(fvec3) Load 169(c3)
-            3691:   53(fvec2) Load 1409(dPdxy2)
-            3692:   53(fvec2) Load 1409(dPdxy2)
-            3693:    208(ptr) AccessChain 3628(texel) 207
-            3694:   52(float) CompositeExtract 3690 2
-            3695:3138(ResType) ImageSparseSampleDrefExplicitLod 3689 3690 3694 Grad ConstOffset 3691 3692 722
-            3696:6(float16_t) CompositeExtract 3695 1
-                              Store 3693 3696
-            3697:     47(int) CompositeExtract 3695 0
-            3698:         224 Load 226(s2DShadow)
-            3699:154(f16vec2) Load 156(f16c2)
-            3700:   52(float) Load 215(compare)
-            3701:154(f16vec2) Load 1417(f16dPdxy2)
-            3702:154(f16vec2) Load 1417(f16dPdxy2)
-            3703:    208(ptr) AccessChain 3628(texel) 207
-            3704:3138(ResType) ImageSparseSampleDrefExplicitLod 3698 3699 3700 Grad ConstOffset 3701 3702 722
-            3705:6(float16_t) CompositeExtract 3704 1
-                              Store 3703 3705
-            3706:     47(int) CompositeExtract 3704 0
-            3707:         284 Load 286(s2DArray)
-            3708:  167(fvec3) Load 169(c3)
-            3709:   53(fvec2) Load 1409(dPdxy2)
-            3710:   53(fvec2) Load 1409(dPdxy2)
-            3711:3102(ResType) ImageSparseSampleExplicitLod 3707 3708 Grad ConstOffset 3709 3710 722
-            3712:  7(f16vec4) CompositeExtract 3711 1
-                              Store 3628(texel) 3712
-            3713:     47(int) CompositeExtract 3711 0
-            3714:         284 Load 286(s2DArray)
-            3715:175(f16vec3) Load 177(f16c3)
-            3716:154(f16vec2) Load 1417(f16dPdxy2)
-            3717:154(f16vec2) Load 1417(f16dPdxy2)
-            3718:3102(ResType) ImageSparseSampleExplicitLod 3714 3715 Grad ConstOffset 3716 3717 722
-            3719:  7(f16vec4) CompositeExtract 3718 1
-                              Store 3628(texel) 3719
-            3720:     47(int) CompositeExtract 3718 0
-            3721:         337 Load 339(s2DArrayShadow)
-            3722:  249(fvec4) Load 251(c4)
-            3723:   53(fvec2) Load 1409(dPdxy2)
-            3724:   53(fvec2) Load 1409(dPdxy2)
-            3725:    208(ptr) AccessChain 3628(texel) 207
-            3726:   52(float) CompositeExtract 3722 3
-            3727:3138(ResType) ImageSparseSampleDrefExplicitLod 3721 3722 3726 Grad ConstOffset 3723 3724 722
-            3728:6(float16_t) CompositeExtract 3727 1
-                              Store 3725 3728
-            3729:     47(int) CompositeExtract 3727 0
-            3730:         337 Load 339(s2DArrayShadow)
-            3731:175(f16vec3) Load 177(f16c3)
-            3732:   52(float) Load 215(compare)
-            3733:154(f16vec2) Load 1417(f16dPdxy2)
-            3734:154(f16vec2) Load 1417(f16dPdxy2)
-            3735:    208(ptr) AccessChain 3628(texel) 207
-            3736:3138(ResType) ImageSparseSampleDrefExplicitLod 3730 3731 3732 Grad ConstOffset 3733 3734 722
-            3737:6(float16_t) CompositeExtract 3736 1
-                              Store 3735 3737
-            3738:     47(int) CompositeExtract 3736 0
-            3739:  7(f16vec4) Load 3628(texel)
-                              ReturnValue 3739
+            3684:3146(ResType) ImageSparseSampleExplicitLod 3680 3681 Grad ConstOffset 3682 3683 722
+            3685:  7(f16vec4) CompositeExtract 3684 1
+                              Store 3672(texel) 3685
+            3686:     47(int) CompositeExtract 3684 0
+            3687:         163 Load 165(s3D)
+            3688:  167(fvec3) Load 169(c3)
+            3689:  167(fvec3) Load 1425(dPdxy3)
+            3690:  167(fvec3) Load 1425(dPdxy3)
+            3691:3146(ResType) ImageSparseSampleExplicitLod 3687 3688 Grad ConstOffset 3689 3690 735
+            3692:  7(f16vec4) CompositeExtract 3691 1
+                              Store 3672(texel) 3692
+            3693:     47(int) CompositeExtract 3691 0
+            3694:         163 Load 165(s3D)
+            3695:175(f16vec3) Load 177(f16c3)
+            3696:175(f16vec3) Load 1433(f16dPdxy3)
+            3697:175(f16vec3) Load 1433(f16dPdxy3)
+            3698:3146(ResType) ImageSparseSampleExplicitLod 3694 3695 Grad ConstOffset 3696 3697 735
+            3699:  7(f16vec4) CompositeExtract 3698 1
+                              Store 3672(texel) 3699
+            3700:     47(int) CompositeExtract 3698 0
+            3701:         357 Load 359(s2DRect)
+            3702:   53(fvec2) Load 148(c2)
+            3703:   53(fvec2) Load 1409(dPdxy2)
+            3704:   53(fvec2) Load 1409(dPdxy2)
+            3705:3146(ResType) ImageSparseSampleExplicitLod 3701 3702 Grad ConstOffset 3703 3704 722
+            3706:  7(f16vec4) CompositeExtract 3705 1
+                              Store 3672(texel) 3706
+            3707:     47(int) CompositeExtract 3705 0
+            3708:         357 Load 359(s2DRect)
+            3709:154(f16vec2) Load 156(f16c2)
+            3710:154(f16vec2) Load 1417(f16dPdxy2)
+            3711:154(f16vec2) Load 1417(f16dPdxy2)
+            3712:3146(ResType) ImageSparseSampleExplicitLod 3708 3709 Grad ConstOffset 3710 3711 722
+            3713:  7(f16vec4) CompositeExtract 3712 1
+                              Store 3672(texel) 3713
+            3714:     47(int) CompositeExtract 3712 0
+            3715:         371 Load 373(s2DRectShadow)
+            3716:  167(fvec3) Load 169(c3)
+            3717:   53(fvec2) Load 1409(dPdxy2)
+            3718:   53(fvec2) Load 1409(dPdxy2)
+            3719:    208(ptr) AccessChain 3672(texel) 207
+            3720:   52(float) CompositeExtract 3716 2
+            3721:3182(ResType) ImageSparseSampleDrefExplicitLod 3715 3716 3720 Grad ConstOffset 3717 3718 722
+            3722:6(float16_t) CompositeExtract 3721 1
+                              Store 3719 3722
+            3723:     47(int) CompositeExtract 3721 0
+            3724:         371 Load 373(s2DRectShadow)
+            3725:154(f16vec2) Load 156(f16c2)
+            3726:   52(float) Load 215(compare)
+            3727:154(f16vec2) Load 1417(f16dPdxy2)
+            3728:154(f16vec2) Load 1417(f16dPdxy2)
+            3729:    208(ptr) AccessChain 3672(texel) 207
+            3730:3182(ResType) ImageSparseSampleDrefExplicitLod 3724 3725 3726 Grad ConstOffset 3727 3728 722
+            3731:6(float16_t) CompositeExtract 3730 1
+                              Store 3729 3731
+            3732:     47(int) CompositeExtract 3730 0
+            3733:         224 Load 226(s2DShadow)
+            3734:  167(fvec3) Load 169(c3)
+            3735:   53(fvec2) Load 1409(dPdxy2)
+            3736:   53(fvec2) Load 1409(dPdxy2)
+            3737:    208(ptr) AccessChain 3672(texel) 207
+            3738:   52(float) CompositeExtract 3734 2
+            3739:3182(ResType) ImageSparseSampleDrefExplicitLod 3733 3734 3738 Grad ConstOffset 3735 3736 722
+            3740:6(float16_t) CompositeExtract 3739 1
+                              Store 3737 3740
+            3741:     47(int) CompositeExtract 3739 0
+            3742:         224 Load 226(s2DShadow)
+            3743:154(f16vec2) Load 156(f16c2)
+            3744:   52(float) Load 215(compare)
+            3745:154(f16vec2) Load 1417(f16dPdxy2)
+            3746:154(f16vec2) Load 1417(f16dPdxy2)
+            3747:    208(ptr) AccessChain 3672(texel) 207
+            3748:3182(ResType) ImageSparseSampleDrefExplicitLod 3742 3743 3744 Grad ConstOffset 3745 3746 722
+            3749:6(float16_t) CompositeExtract 3748 1
+                              Store 3747 3749
+            3750:     47(int) CompositeExtract 3748 0
+            3751:         284 Load 286(s2DArray)
+            3752:  167(fvec3) Load 169(c3)
+            3753:   53(fvec2) Load 1409(dPdxy2)
+            3754:   53(fvec2) Load 1409(dPdxy2)
+            3755:3146(ResType) ImageSparseSampleExplicitLod 3751 3752 Grad ConstOffset 3753 3754 722
+            3756:  7(f16vec4) CompositeExtract 3755 1
+                              Store 3672(texel) 3756
+            3757:     47(int) CompositeExtract 3755 0
+            3758:         284 Load 286(s2DArray)
+            3759:175(f16vec3) Load 177(f16c3)
+            3760:154(f16vec2) Load 1417(f16dPdxy2)
+            3761:154(f16vec2) Load 1417(f16dPdxy2)
+            3762:3146(ResType) ImageSparseSampleExplicitLod 3758 3759 Grad ConstOffset 3760 3761 722
+            3763:  7(f16vec4) CompositeExtract 3762 1
+                              Store 3672(texel) 3763
+            3764:     47(int) CompositeExtract 3762 0
+            3765:         337 Load 339(s2DArrayShadow)
+            3766:  249(fvec4) Load 251(c4)
+            3767:   53(fvec2) Load 1409(dPdxy2)
+            3768:   53(fvec2) Load 1409(dPdxy2)
+            3769:    208(ptr) AccessChain 3672(texel) 207
+            3770:   52(float) CompositeExtract 3766 3
+            3771:3182(ResType) ImageSparseSampleDrefExplicitLod 3765 3766 3770 Grad ConstOffset 3767 3768 722
+            3772:6(float16_t) CompositeExtract 3771 1
+                              Store 3769 3772
+            3773:     47(int) CompositeExtract 3771 0
+            3774:         337 Load 339(s2DArrayShadow)
+            3775:175(f16vec3) Load 177(f16c3)
+            3776:   52(float) Load 215(compare)
+            3777:154(f16vec2) Load 1417(f16dPdxy2)
+            3778:154(f16vec2) Load 1417(f16dPdxy2)
+            3779:    208(ptr) AccessChain 3672(texel) 207
+            3780:3182(ResType) ImageSparseSampleDrefExplicitLod 3774 3775 3776 Grad ConstOffset 3777 3778 722
+            3781:6(float16_t) CompositeExtract 3780 1
+                              Store 3779 3781
+            3782:     47(int) CompositeExtract 3780 0
+            3783:  7(f16vec4) Load 3672(texel)
+                              ReturnValue 3783
                               FunctionEnd
 81(testSparseTexelFetch():  7(f16vec4) Function None 8
               82:             Label
-     3742(texel):     64(ptr) Variable Function
-                              Store 3742(texel) 121
-            3743:         143 Load 145(s2D)
-            3744:   53(fvec2) Load 148(c2)
-            3745:  721(ivec2) ConvertFToS 3744
-            3746:   52(float) Load 565(lod)
-            3747:     47(int) ConvertFToS 3746
-            3748:         142 Image 3743
-            3749:3102(ResType) ImageSparseFetch 3748 3745 Lod 3747
-            3750:  7(f16vec4) CompositeExtract 3749 1
-                              Store 3742(texel) 3750
-            3751:     47(int) CompositeExtract 3749 0
-            3752:         163 Load 165(s3D)
-            3753:  167(fvec3) Load 169(c3)
-            3754:  734(ivec3) ConvertFToS 3753
-            3755:   52(float) Load 565(lod)
-            3756:     47(int) ConvertFToS 3755
-            3757:         162 Image 3752
-            3758:3102(ResType) ImageSparseFetch 3757 3754 Lod 3756
-            3759:  7(f16vec4) CompositeExtract 3758 1
-                              Store 3742(texel) 3759
-            3760:     47(int) CompositeExtract 3758 0
-            3761:         357 Load 359(s2DRect)
-            3762:   53(fvec2) Load 148(c2)
-            3763:  721(ivec2) ConvertFToS 3762
-            3764:         356 Image 3761
-            3765:3102(ResType) ImageSparseFetch 3764 3763
-            3766:  7(f16vec4) CompositeExtract 3765 1
-                              Store 3742(texel) 3766
-            3767:     47(int) CompositeExtract 3765 0
-            3768:         284 Load 286(s2DArray)
-            3769:  167(fvec3) Load 169(c3)
-            3770:  734(ivec3) ConvertFToS 3769
-            3771:   52(float) Load 565(lod)
-            3772:     47(int) ConvertFToS 3771
-            3773:         283 Image 3768
-            3774:3102(ResType) ImageSparseFetch 3773 3770 Lod 3772
-            3775:  7(f16vec4) CompositeExtract 3774 1
-                              Store 3742(texel) 3775
-            3776:     47(int) CompositeExtract 3774 0
-            3777:        1309 Load 1311(s2DMS)
-            3778:   53(fvec2) Load 148(c2)
-            3779:  721(ivec2) ConvertFToS 3778
-            3780:        1308 Image 3777
-            3781:3102(ResType) ImageSparseFetch 3780 3779 Sample 709
-            3782:  7(f16vec4) CompositeExtract 3781 1
-                              Store 3742(texel) 3782
-            3783:     47(int) CompositeExtract 3781 0
-            3784:        1320 Load 1322(s2DMSArray)
-            3785:  167(fvec3) Load 169(c3)
-            3786:  734(ivec3) ConvertFToS 3785
-            3787:        1319 Image 3784
-            3788:3102(ResType) ImageSparseFetch 3787 3786 Sample 1326
-            3789:  7(f16vec4) CompositeExtract 3788 1
-                              Store 3742(texel) 3789
-            3790:     47(int) CompositeExtract 3788 0
-            3791:  7(f16vec4) Load 3742(texel)
-                              ReturnValue 3791
+     3786(texel):     64(ptr) Variable Function
+                              Store 3786(texel) 121
+            3787:         143 Load 145(s2D)
+            3788:   53(fvec2) Load 148(c2)
+            3789:  721(ivec2) ConvertFToS 3788
+            3790:   52(float) Load 565(lod)
+            3791:     47(int) ConvertFToS 3790
+            3792:         142 Image 3787
+            3793:3146(ResType) ImageSparseFetch 3792 3789 Lod 3791
+            3794:  7(f16vec4) CompositeExtract 3793 1
+                              Store 3786(texel) 3794
+            3795:     47(int) CompositeExtract 3793 0
+            3796:         163 Load 165(s3D)
+            3797:  167(fvec3) Load 169(c3)
+            3798:  734(ivec3) ConvertFToS 3797
+            3799:   52(float) Load 565(lod)
+            3800:     47(int) ConvertFToS 3799
+            3801:         162 Image 3796
+            3802:3146(ResType) ImageSparseFetch 3801 3798 Lod 3800
+            3803:  7(f16vec4) CompositeExtract 3802 1
+                              Store 3786(texel) 3803
+            3804:     47(int) CompositeExtract 3802 0
+            3805:         357 Load 359(s2DRect)
+            3806:   53(fvec2) Load 148(c2)
+            3807:  721(ivec2) ConvertFToS 3806
+            3808:         356 Image 3805
+            3809:3146(ResType) ImageSparseFetch 3808 3807
+            3810:  7(f16vec4) CompositeExtract 3809 1
+                              Store 3786(texel) 3810
+            3811:     47(int) CompositeExtract 3809 0
+            3812:         284 Load 286(s2DArray)
+            3813:  167(fvec3) Load 169(c3)
+            3814:  734(ivec3) ConvertFToS 3813
+            3815:   52(float) Load 565(lod)
+            3816:     47(int) ConvertFToS 3815
+            3817:         283 Image 3812
+            3818:3146(ResType) ImageSparseFetch 3817 3814 Lod 3816
+            3819:  7(f16vec4) CompositeExtract 3818 1
+                              Store 3786(texel) 3819
+            3820:     47(int) CompositeExtract 3818 0
+            3821:        1309 Load 1311(s2DMS)
+            3822:   53(fvec2) Load 148(c2)
+            3823:  721(ivec2) ConvertFToS 3822
+            3824:        1308 Image 3821
+            3825:3146(ResType) ImageSparseFetch 3824 3823 Sample 709
+            3826:  7(f16vec4) CompositeExtract 3825 1
+                              Store 3786(texel) 3826
+            3827:     47(int) CompositeExtract 3825 0
+            3828:        1320 Load 1322(s2DMSArray)
+            3829:  167(fvec3) Load 169(c3)
+            3830:  734(ivec3) ConvertFToS 3829
+            3831:        1319 Image 3828
+            3832:3146(ResType) ImageSparseFetch 3831 3830 Sample 1326
+            3833:  7(f16vec4) CompositeExtract 3832 1
+                              Store 3786(texel) 3833
+            3834:     47(int) CompositeExtract 3832 0
+            3835:  7(f16vec4) Load 3786(texel)
+                              ReturnValue 3835
                               FunctionEnd
 83(testSparseTexelFetchOffset():  7(f16vec4) Function None 8
               84:             Label
-     3794(texel):     64(ptr) Variable Function
-                              Store 3794(texel) 121
-            3795:         143 Load 145(s2D)
-            3796:   53(fvec2) Load 148(c2)
-            3797:  721(ivec2) ConvertFToS 3796
-            3798:   52(float) Load 565(lod)
-            3799:     47(int) ConvertFToS 3798
-            3800:         142 Image 3795
-            3801:3102(ResType) ImageSparseFetch 3800 3797 Lod ConstOffset 3799 722
-            3802:  7(f16vec4) CompositeExtract 3801 1
-                              Store 3794(texel) 3802
-            3803:     47(int) CompositeExtract 3801 0
-            3804:         163 Load 165(s3D)
-            3805:  167(fvec3) Load 169(c3)
-            3806:  734(ivec3) ConvertFToS 3805
-            3807:   52(float) Load 565(lod)
-            3808:     47(int) ConvertFToS 3807
-            3809:         162 Image 3804
-            3810:3102(ResType) ImageSparseFetch 3809 3806 Lod ConstOffset 3808 735
-            3811:  7(f16vec4) CompositeExtract 3810 1
-                              Store 3794(texel) 3811
-            3812:     47(int) CompositeExtract 3810 0
-            3813:         357 Load 359(s2DRect)
-            3814:   53(fvec2) Load 148(c2)
-            3815:  721(ivec2) ConvertFToS 3814
-            3816:         356 Image 3813
-            3817:3102(ResType) ImageSparseFetch 3816 3815 ConstOffset 722
-            3818:  7(f16vec4) CompositeExtract 3817 1
-                              Store 3794(texel) 3818
-            3819:     47(int) CompositeExtract 3817 0
-            3820:         284 Load 286(s2DArray)
-            3821:  167(fvec3) Load 169(c3)
-            3822:  734(ivec3) ConvertFToS 3821
-            3823:   52(float) Load 565(lod)
-            3824:     47(int) ConvertFToS 3823
-            3825:         283 Image 3820
-            3826:3102(ResType) ImageSparseFetch 3825 3822 Lod ConstOffset 3824 722
-            3827:  7(f16vec4) CompositeExtract 3826 1
-                              Store 3794(texel) 3827
-            3828:     47(int) CompositeExtract 3826 0
-            3829:  7(f16vec4) Load 3794(texel)
-                              ReturnValue 3829
+     3838(texel):     64(ptr) Variable Function
+                              Store 3838(texel) 121
+            3839:         143 Load 145(s2D)
+            3840:   53(fvec2) Load 148(c2)
+            3841:  721(ivec2) ConvertFToS 3840
+            3842:   52(float) Load 565(lod)
+            3843:     47(int) ConvertFToS 3842
+            3844:         142 Image 3839
+            3845:3146(ResType) ImageSparseFetch 3844 3841 Lod ConstOffset 3843 722
+            3846:  7(f16vec4) CompositeExtract 3845 1
+                              Store 3838(texel) 3846
+            3847:     47(int) CompositeExtract 3845 0
+            3848:         163 Load 165(s3D)
+            3849:  167(fvec3) Load 169(c3)
+            3850:  734(ivec3) ConvertFToS 3849
+            3851:   52(float) Load 565(lod)
+            3852:     47(int) ConvertFToS 3851
+            3853:         162 Image 3848
+            3854:3146(ResType) ImageSparseFetch 3853 3850 Lod ConstOffset 3852 735
+            3855:  7(f16vec4) CompositeExtract 3854 1
+                              Store 3838(texel) 3855
+            3856:     47(int) CompositeExtract 3854 0
+            3857:         357 Load 359(s2DRect)
+            3858:   53(fvec2) Load 148(c2)
+            3859:  721(ivec2) ConvertFToS 3858
+            3860:         356 Image 3857
+            3861:3146(ResType) ImageSparseFetch 3860 3859 ConstOffset 722
+            3862:  7(f16vec4) CompositeExtract 3861 1
+                              Store 3838(texel) 3862
+            3863:     47(int) CompositeExtract 3861 0
+            3864:         284 Load 286(s2DArray)
+            3865:  167(fvec3) Load 169(c3)
+            3866:  734(ivec3) ConvertFToS 3865
+            3867:   52(float) Load 565(lod)
+            3868:     47(int) ConvertFToS 3867
+            3869:         283 Image 3864
+            3870:3146(ResType) ImageSparseFetch 3869 3866 Lod ConstOffset 3868 722
+            3871:  7(f16vec4) CompositeExtract 3870 1
+                              Store 3838(texel) 3871
+            3872:     47(int) CompositeExtract 3870 0
+            3873:  7(f16vec4) Load 3838(texel)
+                              ReturnValue 3873
                               FunctionEnd
 85(testSparseTextureGather():  7(f16vec4) Function None 8
               86:             Label
-     3832(texel):     64(ptr) Variable Function
-                              Store 3832(texel) 121
-            3833:         143 Load 145(s2D)
-            3834:   53(fvec2) Load 148(c2)
-            3835:3102(ResType) ImageSparseGather 3833 3834 2187
-            3836:  7(f16vec4) CompositeExtract 3835 1
-                              Store 3832(texel) 3836
-            3837:     47(int) CompositeExtract 3835 0
-            3838:         143 Load 145(s2D)
-            3839:154(f16vec2) Load 156(f16c2)
-            3840:6(float16_t) Load 137(f16bias)
-            3841:3102(ResType) ImageSparseGather 3838 3839 2187 Bias 3840
-            3842:  7(f16vec4) CompositeExtract 3841 1
-                              Store 3832(texel) 3842
-            3843:     47(int) CompositeExtract 3841 0
-            3844:         284 Load 286(s2DArray)
-            3845:  167(fvec3) Load 169(c3)
-            3846:3102(ResType) ImageSparseGather 3844 3845 2187
-            3847:  7(f16vec4) CompositeExtract 3846 1
-                              Store 3832(texel) 3847
-            3848:     47(int) CompositeExtract 3846 0
-            3849:         284 Load 286(s2DArray)
-            3850:175(f16vec3) Load 177(f16c3)
-            3851:6(float16_t) Load 137(f16bias)
-            3852:3102(ResType) ImageSparseGather 3849 3850 2187 Bias 3851
-            3853:  7(f16vec4) CompositeExtract 3852 1
-                              Store 3832(texel) 3853
-            3854:     47(int) CompositeExtract 3852 0
-            3855:         184 Load 186(sCube)
-            3856:  167(fvec3) Load 169(c3)
-            3857:3102(ResType) ImageSparseGather 3855 3856 2187
-            3858:  7(f16vec4) CompositeExtract 3857 1
-                              Store 3832(texel) 3858
-            3859:     47(int) CompositeExtract 3857 0
-            3860:         184 Load 186(sCube)
-            3861:175(f16vec3) Load 177(f16c3)
-            3862:6(float16_t) Load 137(f16bias)
-            3863:3102(ResType) ImageSparseGather 3860 3861 2187 Bias 3862
-            3864:  7(f16vec4) CompositeExtract 3863 1
-                              Store 3832(texel) 3864
-            3865:     47(int) CompositeExtract 3863 0
-            3866:         299 Load 301(sCubeArray)
-            3867:  249(fvec4) Load 251(c4)
-            3868:3102(ResType) ImageSparseGather 3866 3867 2187
-            3869:  7(f16vec4) CompositeExtract 3868 1
-                              Store 3832(texel) 3869
-            3870:     47(int) CompositeExtract 3868 0
-            3871:         299 Load 301(sCubeArray)
-            3872:  7(f16vec4) Load 309(f16c4)
-            3873:6(float16_t) Load 137(f16bias)
-            3874:3102(ResType) ImageSparseGather 3871 3872 2187 Bias 3873
-            3875:  7(f16vec4) CompositeExtract 3874 1
-                              Store 3832(texel) 3875
-            3876:     47(int) CompositeExtract 3874 0
-            3877:         357 Load 359(s2DRect)
+     3876(texel):     64(ptr) Variable Function
+                              Store 3876(texel) 121
+            3877:         143 Load 145(s2D)
             3878:   53(fvec2) Load 148(c2)
-            3879:3102(ResType) ImageSparseGather 3877 3878 2187
+            3879:3146(ResType) ImageSparseGather 3877 3878 2187
             3880:  7(f16vec4) CompositeExtract 3879 1
-                              Store 3832(texel) 3880
+                              Store 3876(texel) 3880
             3881:     47(int) CompositeExtract 3879 0
-            3882:         357 Load 359(s2DRect)
+            3882:         143 Load 145(s2D)
             3883:154(f16vec2) Load 156(f16c2)
-            3884:3102(ResType) ImageSparseGather 3882 3883 2187
-            3885:  7(f16vec4) CompositeExtract 3884 1
-                              Store 3832(texel) 3885
-            3886:     47(int) CompositeExtract 3884 0
-            3887:         224 Load 226(s2DShadow)
-            3888:   53(fvec2) Load 148(c2)
-            3889:   52(float) Load 215(compare)
-            3890:3102(ResType) ImageSparseDrefGather 3887 3888 3889
+            3884:6(float16_t) Load 137(f16bias)
+            3885:3146(ResType) ImageSparseGather 3882 3883 2187 Bias 3884
+            3886:  7(f16vec4) CompositeExtract 3885 1
+                              Store 3876(texel) 3886
+            3887:     47(int) CompositeExtract 3885 0
+            3888:         284 Load 286(s2DArray)
+            3889:  167(fvec3) Load 169(c3)
+            3890:3146(ResType) ImageSparseGather 3888 3889 2187
             3891:  7(f16vec4) CompositeExtract 3890 1
-                              Store 3832(texel) 3891
+                              Store 3876(texel) 3891
             3892:     47(int) CompositeExtract 3890 0
-            3893:         224 Load 226(s2DShadow)
-            3894:154(f16vec2) Load 156(f16c2)
-            3895:   52(float) Load 215(compare)
-            3896:3102(ResType) ImageSparseDrefGather 3893 3894 3895
+            3893:         284 Load 286(s2DArray)
+            3894:175(f16vec3) Load 177(f16c3)
+            3895:6(float16_t) Load 137(f16bias)
+            3896:3146(ResType) ImageSparseGather 3893 3894 2187 Bias 3895
             3897:  7(f16vec4) CompositeExtract 3896 1
-                              Store 3832(texel) 3897
+                              Store 3876(texel) 3897
             3898:     47(int) CompositeExtract 3896 0
-            3899:         337 Load 339(s2DArrayShadow)
+            3899:         184 Load 186(sCube)
             3900:  167(fvec3) Load 169(c3)
-            3901:   52(float) Load 215(compare)
-            3902:3102(ResType) ImageSparseDrefGather 3899 3900 3901
-            3903:  7(f16vec4) CompositeExtract 3902 1
-                              Store 3832(texel) 3903
-            3904:     47(int) CompositeExtract 3902 0
-            3905:         337 Load 339(s2DArrayShadow)
-            3906:175(f16vec3) Load 177(f16c3)
-            3907:   52(float) Load 215(compare)
-            3908:3102(ResType) ImageSparseDrefGather 3905 3906 3907
-            3909:  7(f16vec4) CompositeExtract 3908 1
-                              Store 3832(texel) 3909
-            3910:     47(int) CompositeExtract 3908 0
-            3911:         245 Load 247(sCubeShadow)
-            3912:  167(fvec3) Load 169(c3)
-            3913:   52(float) Load 215(compare)
-            3914:3102(ResType) ImageSparseDrefGather 3911 3912 3913
-            3915:  7(f16vec4) CompositeExtract 3914 1
-                              Store 3832(texel) 3915
-            3916:     47(int) CompositeExtract 3914 0
-            3917:         245 Load 247(sCubeShadow)
-            3918:175(f16vec3) Load 177(f16c3)
-            3919:   52(float) Load 215(compare)
-            3920:3102(ResType) ImageSparseDrefGather 3917 3918 3919
-            3921:  7(f16vec4) CompositeExtract 3920 1
-                              Store 3832(texel) 3921
-            3922:     47(int) CompositeExtract 3920 0
-            3923:         391 Load 393(sCubeArrayShadow)
-            3924:  249(fvec4) Load 251(c4)
-            3925:   52(float) Load 215(compare)
-            3926:3102(ResType) ImageSparseDrefGather 3923 3924 3925
-            3927:  7(f16vec4) CompositeExtract 3926 1
-                              Store 3832(texel) 3927
-            3928:     47(int) CompositeExtract 3926 0
-            3929:         391 Load 393(sCubeArrayShadow)
-            3930:  7(f16vec4) Load 309(f16c4)
-            3931:   52(float) Load 215(compare)
-            3932:3102(ResType) ImageSparseDrefGather 3929 3930 3931
-            3933:  7(f16vec4) CompositeExtract 3932 1
-                              Store 3832(texel) 3933
-            3934:     47(int) CompositeExtract 3932 0
-            3935:         371 Load 373(s2DRectShadow)
-            3936:   53(fvec2) Load 148(c2)
-            3937:   52(float) Load 215(compare)
-            3938:3102(ResType) ImageSparseDrefGather 3935 3936 3937
-            3939:  7(f16vec4) CompositeExtract 3938 1
-                              Store 3832(texel) 3939
-            3940:     47(int) CompositeExtract 3938 0
-            3941:         371 Load 373(s2DRectShadow)
-            3942:154(f16vec2) Load 156(f16c2)
-            3943:   52(float) Load 215(compare)
-            3944:3102(ResType) ImageSparseDrefGather 3941 3942 3943
-            3945:  7(f16vec4) CompositeExtract 3944 1
-                              Store 3832(texel) 3945
-            3946:     47(int) CompositeExtract 3944 0
-            3947:  7(f16vec4) Load 3832(texel)
-                              ReturnValue 3947
+            3901:3146(ResType) ImageSparseGather 3899 3900 2187
+            3902:  7(f16vec4) CompositeExtract 3901 1
+                              Store 3876(texel) 3902
+            3903:     47(int) CompositeExtract 3901 0
+            3904:         184 Load 186(sCube)
+            3905:175(f16vec3) Load 177(f16c3)
+            3906:6(float16_t) Load 137(f16bias)
+            3907:3146(ResType) ImageSparseGather 3904 3905 2187 Bias 3906
+            3908:  7(f16vec4) CompositeExtract 3907 1
+                              Store 3876(texel) 3908
+            3909:     47(int) CompositeExtract 3907 0
+            3910:         299 Load 301(sCubeArray)
+            3911:  249(fvec4) Load 251(c4)
+            3912:3146(ResType) ImageSparseGather 3910 3911 2187
+            3913:  7(f16vec4) CompositeExtract 3912 1
+                              Store 3876(texel) 3913
+            3914:     47(int) CompositeExtract 3912 0
+            3915:         299 Load 301(sCubeArray)
+            3916:  7(f16vec4) Load 309(f16c4)
+            3917:6(float16_t) Load 137(f16bias)
+            3918:3146(ResType) ImageSparseGather 3915 3916 2187 Bias 3917
+            3919:  7(f16vec4) CompositeExtract 3918 1
+                              Store 3876(texel) 3919
+            3920:     47(int) CompositeExtract 3918 0
+            3921:         357 Load 359(s2DRect)
+            3922:   53(fvec2) Load 148(c2)
+            3923:3146(ResType) ImageSparseGather 3921 3922 2187
+            3924:  7(f16vec4) CompositeExtract 3923 1
+                              Store 3876(texel) 3924
+            3925:     47(int) CompositeExtract 3923 0
+            3926:         357 Load 359(s2DRect)
+            3927:154(f16vec2) Load 156(f16c2)
+            3928:3146(ResType) ImageSparseGather 3926 3927 2187
+            3929:  7(f16vec4) CompositeExtract 3928 1
+                              Store 3876(texel) 3929
+            3930:     47(int) CompositeExtract 3928 0
+            3931:         224 Load 226(s2DShadow)
+            3932:   53(fvec2) Load 148(c2)
+            3933:   52(float) Load 215(compare)
+            3934:3146(ResType) ImageSparseDrefGather 3931 3932 3933
+            3935:  7(f16vec4) CompositeExtract 3934 1
+                              Store 3876(texel) 3935
+            3936:     47(int) CompositeExtract 3934 0
+            3937:         224 Load 226(s2DShadow)
+            3938:154(f16vec2) Load 156(f16c2)
+            3939:   52(float) Load 215(compare)
+            3940:3146(ResType) ImageSparseDrefGather 3937 3938 3939
+            3941:  7(f16vec4) CompositeExtract 3940 1
+                              Store 3876(texel) 3941
+            3942:     47(int) CompositeExtract 3940 0
+            3943:         337 Load 339(s2DArrayShadow)
+            3944:  167(fvec3) Load 169(c3)
+            3945:   52(float) Load 215(compare)
+            3946:3146(ResType) ImageSparseDrefGather 3943 3944 3945
+            3947:  7(f16vec4) CompositeExtract 3946 1
+                              Store 3876(texel) 3947
+            3948:     47(int) CompositeExtract 3946 0
+            3949:         337 Load 339(s2DArrayShadow)
+            3950:175(f16vec3) Load 177(f16c3)
+            3951:   52(float) Load 215(compare)
+            3952:3146(ResType) ImageSparseDrefGather 3949 3950 3951
+            3953:  7(f16vec4) CompositeExtract 3952 1
+                              Store 3876(texel) 3953
+            3954:     47(int) CompositeExtract 3952 0
+            3955:         245 Load 247(sCubeShadow)
+            3956:  167(fvec3) Load 169(c3)
+            3957:   52(float) Load 215(compare)
+            3958:3146(ResType) ImageSparseDrefGather 3955 3956 3957
+            3959:  7(f16vec4) CompositeExtract 3958 1
+                              Store 3876(texel) 3959
+            3960:     47(int) CompositeExtract 3958 0
+            3961:         245 Load 247(sCubeShadow)
+            3962:175(f16vec3) Load 177(f16c3)
+            3963:   52(float) Load 215(compare)
+            3964:3146(ResType) ImageSparseDrefGather 3961 3962 3963
+            3965:  7(f16vec4) CompositeExtract 3964 1
+                              Store 3876(texel) 3965
+            3966:     47(int) CompositeExtract 3964 0
+            3967:         391 Load 393(sCubeArrayShadow)
+            3968:  249(fvec4) Load 251(c4)
+            3969:   52(float) Load 215(compare)
+            3970:3146(ResType) ImageSparseDrefGather 3967 3968 3969
+            3971:  7(f16vec4) CompositeExtract 3970 1
+                              Store 3876(texel) 3971
+            3972:     47(int) CompositeExtract 3970 0
+            3973:         391 Load 393(sCubeArrayShadow)
+            3974:  7(f16vec4) Load 309(f16c4)
+            3975:   52(float) Load 215(compare)
+            3976:3146(ResType) ImageSparseDrefGather 3973 3974 3975
+            3977:  7(f16vec4) CompositeExtract 3976 1
+                              Store 3876(texel) 3977
+            3978:     47(int) CompositeExtract 3976 0
+            3979:         371 Load 373(s2DRectShadow)
+            3980:   53(fvec2) Load 148(c2)
+            3981:   52(float) Load 215(compare)
+            3982:3146(ResType) ImageSparseDrefGather 3979 3980 3981
+            3983:  7(f16vec4) CompositeExtract 3982 1
+                              Store 3876(texel) 3983
+            3984:     47(int) CompositeExtract 3982 0
+            3985:         371 Load 373(s2DRectShadow)
+            3986:154(f16vec2) Load 156(f16c2)
+            3987:   52(float) Load 215(compare)
+            3988:3146(ResType) ImageSparseDrefGather 3985 3986 3987
+            3989:  7(f16vec4) CompositeExtract 3988 1
+                              Store 3876(texel) 3989
+            3990:     47(int) CompositeExtract 3988 0
+            3991:  7(f16vec4) Load 3876(texel)
+                              ReturnValue 3991
                               FunctionEnd
 87(testSparseTextureGatherOffset():  7(f16vec4) Function None 8
               88:             Label
-     3950(texel):     64(ptr) Variable Function
-                              Store 3950(texel) 121
-            3951:         143 Load 145(s2D)
-            3952:   53(fvec2) Load 148(c2)
-            3953:3102(ResType) ImageSparseGather 3951 3952 2187 ConstOffset 722
-            3954:  7(f16vec4) CompositeExtract 3953 1
-                              Store 3950(texel) 3954
-            3955:     47(int) CompositeExtract 3953 0
-            3956:         143 Load 145(s2D)
-            3957:154(f16vec2) Load 156(f16c2)
-            3958:6(float16_t) Load 137(f16bias)
-            3959:3102(ResType) ImageSparseGather 3956 3957 2187 Bias ConstOffset 3958 722
-            3960:  7(f16vec4) CompositeExtract 3959 1
-                              Store 3950(texel) 3960
-            3961:     47(int) CompositeExtract 3959 0
-            3962:         284 Load 286(s2DArray)
-            3963:  167(fvec3) Load 169(c3)
-            3964:3102(ResType) ImageSparseGather 3962 3963 2187 ConstOffset 722
-            3965:  7(f16vec4) CompositeExtract 3964 1
-                              Store 3950(texel) 3965
-            3966:     47(int) CompositeExtract 3964 0
-            3967:         284 Load 286(s2DArray)
-            3968:175(f16vec3) Load 177(f16c3)
-            3969:6(float16_t) Load 137(f16bias)
-            3970:3102(ResType) ImageSparseGather 3967 3968 2187 Bias ConstOffset 3969 722
-            3971:  7(f16vec4) CompositeExtract 3970 1
-                              Store 3950(texel) 3971
-            3972:     47(int) CompositeExtract 3970 0
-            3973:         357 Load 359(s2DRect)
-            3974:   53(fvec2) Load 148(c2)
-            3975:3102(ResType) ImageSparseGather 3973 3974 2187 ConstOffset 722
-            3976:  7(f16vec4) CompositeExtract 3975 1
-                              Store 3950(texel) 3976
-            3977:     47(int) CompositeExtract 3975 0
-            3978:         357 Load 359(s2DRect)
-            3979:154(f16vec2) Load 156(f16c2)
-            3980:3102(ResType) ImageSparseGather 3978 3979 2187 ConstOffset 722
-            3981:  7(f16vec4) CompositeExtract 3980 1
-                              Store 3950(texel) 3981
-            3982:     47(int) CompositeExtract 3980 0
-            3983:         224 Load 226(s2DShadow)
-            3984:   53(fvec2) Load 148(c2)
-            3985:   52(float) Load 215(compare)
-            3986:3102(ResType) ImageSparseDrefGather 3983 3984 3985 ConstOffset 722
-            3987:  7(f16vec4) CompositeExtract 3986 1
-                              Store 3950(texel) 3987
-            3988:     47(int) CompositeExtract 3986 0
-            3989:         224 Load 226(s2DShadow)
-            3990:154(f16vec2) Load 156(f16c2)
-            3991:   52(float) Load 215(compare)
-            3992:3102(ResType) ImageSparseDrefGather 3989 3990 3991 ConstOffset 722
-            3993:  7(f16vec4) CompositeExtract 3992 1
-                              Store 3950(texel) 3993
-            3994:     47(int) CompositeExtract 3992 0
-            3995:         337 Load 339(s2DArrayShadow)
-            3996:  167(fvec3) Load 169(c3)
-            3997:   52(float) Load 215(compare)
-            3998:3102(ResType) ImageSparseDrefGather 3995 3996 3997 ConstOffset 722
-            3999:  7(f16vec4) CompositeExtract 3998 1
-                              Store 3950(texel) 3999
-            4000:     47(int) CompositeExtract 3998 0
-            4001:         337 Load 339(s2DArrayShadow)
-            4002:175(f16vec3) Load 177(f16c3)
-            4003:   52(float) Load 215(compare)
-            4004:3102(ResType) ImageSparseDrefGather 4001 4002 4003 ConstOffset 722
-            4005:  7(f16vec4) CompositeExtract 4004 1
-                              Store 3950(texel) 4005
-            4006:     47(int) CompositeExtract 4004 0
-            4007:         371 Load 373(s2DRectShadow)
-            4008:   53(fvec2) Load 148(c2)
-            4009:   52(float) Load 215(compare)
-            4010:3102(ResType) ImageSparseDrefGather 4007 4008 4009 ConstOffset 722
-            4011:  7(f16vec4) CompositeExtract 4010 1
-                              Store 3950(texel) 4011
-            4012:     47(int) CompositeExtract 4010 0
-            4013:         371 Load 373(s2DRectShadow)
-            4014:154(f16vec2) Load 156(f16c2)
-            4015:   52(float) Load 215(compare)
-            4016:3102(ResType) ImageSparseDrefGather 4013 4014 4015 ConstOffset 722
-            4017:  7(f16vec4) CompositeExtract 4016 1
-                              Store 3950(texel) 4017
-            4018:     47(int) CompositeExtract 4016 0
-            4019:  7(f16vec4) Load 3950(texel)
-                              ReturnValue 4019
+     3994(texel):     64(ptr) Variable Function
+                              Store 3994(texel) 121
+            3995:         143 Load 145(s2D)
+            3996:   53(fvec2) Load 148(c2)
+            3997:3146(ResType) ImageSparseGather 3995 3996 2187 ConstOffset 722
+            3998:  7(f16vec4) CompositeExtract 3997 1
+                              Store 3994(texel) 3998
+            3999:     47(int) CompositeExtract 3997 0
+            4000:         143 Load 145(s2D)
+            4001:154(f16vec2) Load 156(f16c2)
+            4002:6(float16_t) Load 137(f16bias)
+            4003:3146(ResType) ImageSparseGather 4000 4001 2187 Bias ConstOffset 4002 722
+            4004:  7(f16vec4) CompositeExtract 4003 1
+                              Store 3994(texel) 4004
+            4005:     47(int) CompositeExtract 4003 0
+            4006:         284 Load 286(s2DArray)
+            4007:  167(fvec3) Load 169(c3)
+            4008:3146(ResType) ImageSparseGather 4006 4007 2187 ConstOffset 722
+            4009:  7(f16vec4) CompositeExtract 4008 1
+                              Store 3994(texel) 4009
+            4010:     47(int) CompositeExtract 4008 0
+            4011:         284 Load 286(s2DArray)
+            4012:175(f16vec3) Load 177(f16c3)
+            4013:6(float16_t) Load 137(f16bias)
+            4014:3146(ResType) ImageSparseGather 4011 4012 2187 Bias ConstOffset 4013 722
+            4015:  7(f16vec4) CompositeExtract 4014 1
+                              Store 3994(texel) 4015
+            4016:     47(int) CompositeExtract 4014 0
+            4017:         357 Load 359(s2DRect)
+            4018:   53(fvec2) Load 148(c2)
+            4019:3146(ResType) ImageSparseGather 4017 4018 2187 ConstOffset 722
+            4020:  7(f16vec4) CompositeExtract 4019 1
+                              Store 3994(texel) 4020
+            4021:     47(int) CompositeExtract 4019 0
+            4022:         357 Load 359(s2DRect)
+            4023:154(f16vec2) Load 156(f16c2)
+            4024:3146(ResType) ImageSparseGather 4022 4023 2187 ConstOffset 722
+            4025:  7(f16vec4) CompositeExtract 4024 1
+                              Store 3994(texel) 4025
+            4026:     47(int) CompositeExtract 4024 0
+            4027:         224 Load 226(s2DShadow)
+            4028:   53(fvec2) Load 148(c2)
+            4029:   52(float) Load 215(compare)
+            4030:3146(ResType) ImageSparseDrefGather 4027 4028 4029 ConstOffset 722
+            4031:  7(f16vec4) CompositeExtract 4030 1
+                              Store 3994(texel) 4031
+            4032:     47(int) CompositeExtract 4030 0
+            4033:         224 Load 226(s2DShadow)
+            4034:154(f16vec2) Load 156(f16c2)
+            4035:   52(float) Load 215(compare)
+            4036:3146(ResType) ImageSparseDrefGather 4033 4034 4035 ConstOffset 722
+            4037:  7(f16vec4) CompositeExtract 4036 1
+                              Store 3994(texel) 4037
+            4038:     47(int) CompositeExtract 4036 0
+            4039:         337 Load 339(s2DArrayShadow)
+            4040:  167(fvec3) Load 169(c3)
+            4041:   52(float) Load 215(compare)
+            4042:3146(ResType) ImageSparseDrefGather 4039 4040 4041 ConstOffset 722
+            4043:  7(f16vec4) CompositeExtract 4042 1
+                              Store 3994(texel) 4043
+            4044:     47(int) CompositeExtract 4042 0
+            4045:         337 Load 339(s2DArrayShadow)
+            4046:175(f16vec3) Load 177(f16c3)
+            4047:   52(float) Load 215(compare)
+            4048:3146(ResType) ImageSparseDrefGather 4045 4046 4047 ConstOffset 722
+            4049:  7(f16vec4) CompositeExtract 4048 1
+                              Store 3994(texel) 4049
+            4050:     47(int) CompositeExtract 4048 0
+            4051:         371 Load 373(s2DRectShadow)
+            4052:   53(fvec2) Load 148(c2)
+            4053:   52(float) Load 215(compare)
+            4054:3146(ResType) ImageSparseDrefGather 4051 4052 4053 ConstOffset 722
+            4055:  7(f16vec4) CompositeExtract 4054 1
+                              Store 3994(texel) 4055
+            4056:     47(int) CompositeExtract 4054 0
+            4057:         371 Load 373(s2DRectShadow)
+            4058:154(f16vec2) Load 156(f16c2)
+            4059:   52(float) Load 215(compare)
+            4060:3146(ResType) ImageSparseDrefGather 4057 4058 4059 ConstOffset 722
+            4061:  7(f16vec4) CompositeExtract 4060 1
+                              Store 3994(texel) 4061
+            4062:     47(int) CompositeExtract 4060 0
+            4063:  7(f16vec4) Load 3994(texel)
+                              ReturnValue 4063
                               FunctionEnd
 89(testSparseTextureGatherOffsets():  7(f16vec4) Function None 8
               90:             Label
-     4022(texel):     64(ptr) Variable Function
-                              Store 4022(texel) 121
-            4023:         143 Load 145(s2D)
-            4024:   53(fvec2) Load 148(c2)
-            4035:3102(ResType) ImageSparseGather 4023 4024 2187 ConstOffsets 4034
-            4036:  7(f16vec4) CompositeExtract 4035 1
-                              Store 4022(texel) 4036
-            4037:     47(int) CompositeExtract 4035 0
-            4038:         143 Load 145(s2D)
-            4039:154(f16vec2) Load 156(f16c2)
-            4040:6(float16_t) Load 137(f16bias)
-            4041:3102(ResType) ImageSparseGather 4038 4039 2187 Bias ConstOffsets 4040 4034
-            4042:  7(f16vec4) CompositeExtract 4041 1
-                              Store 4022(texel) 4042
-            4043:     47(int) CompositeExtract 4041 0
-            4044:         284 Load 286(s2DArray)
-            4045:  167(fvec3) Load 169(c3)
-            4046:3102(ResType) ImageSparseGather 4044 4045 2187 ConstOffsets 4034
-            4047:  7(f16vec4) CompositeExtract 4046 1
-                              Store 4022(texel) 4047
-            4048:     47(int) CompositeExtract 4046 0
-            4049:         284 Load 286(s2DArray)
-            4050:175(f16vec3) Load 177(f16c3)
-            4051:6(float16_t) Load 137(f16bias)
-            4052:3102(ResType) ImageSparseGather 4049 4050 2187 Bias ConstOffsets 4051 4034
-            4053:  7(f16vec4) CompositeExtract 4052 1
-                              Store 4022(texel) 4053
-            4054:     47(int) CompositeExtract 4052 0
-            4055:         357 Load 359(s2DRect)
-            4056:   53(fvec2) Load 148(c2)
-            4057:3102(ResType) ImageSparseGather 4055 4056 2187 ConstOffsets 4034
-            4058:  7(f16vec4) CompositeExtract 4057 1
-                              Store 4022(texel) 4058
-            4059:     47(int) CompositeExtract 4057 0
-            4060:         357 Load 359(s2DRect)
-            4061:154(f16vec2) Load 156(f16c2)
-            4062:3102(ResType) ImageSparseGather 4060 4061 2187 ConstOffsets 4034
-            4063:  7(f16vec4) CompositeExtract 4062 1
-                              Store 4022(texel) 4063
-            4064:     47(int) CompositeExtract 4062 0
-            4065:         224 Load 226(s2DShadow)
-            4066:   53(fvec2) Load 148(c2)
-            4067:   52(float) Load 215(compare)
-            4068:3102(ResType) ImageSparseDrefGather 4065 4066 4067 ConstOffsets 4034
-            4069:  7(f16vec4) CompositeExtract 4068 1
-                              Store 4022(texel) 4069
-            4070:     47(int) CompositeExtract 4068 0
-            4071:         224 Load 226(s2DShadow)
-            4072:154(f16vec2) Load 156(f16c2)
-            4073:   52(float) Load 215(compare)
-            4074:3102(ResType) ImageSparseDrefGather 4071 4072 4073 ConstOffsets 4034
-            4075:  7(f16vec4) CompositeExtract 4074 1
-                              Store 4022(texel) 4075
-            4076:     47(int) CompositeExtract 4074 0
-            4077:         337 Load 339(s2DArrayShadow)
-            4078:  167(fvec3) Load 169(c3)
-            4079:   52(float) Load 215(compare)
-            4080:3102(ResType) ImageSparseDrefGather 4077 4078 4079 ConstOffsets 4034
-            4081:  7(f16vec4) CompositeExtract 4080 1
-                              Store 4022(texel) 4081
-            4082:     47(int) CompositeExtract 4080 0
-            4083:         337 Load 339(s2DArrayShadow)
-            4084:175(f16vec3) Load 177(f16c3)
-            4085:   52(float) Load 215(compare)
-            4086:3102(ResType) ImageSparseDrefGather 4083 4084 4085 ConstOffsets 4034
-            4087:  7(f16vec4) CompositeExtract 4086 1
-                              Store 4022(texel) 4087
-            4088:     47(int) CompositeExtract 4086 0
-            4089:         371 Load 373(s2DRectShadow)
-            4090:   53(fvec2) Load 148(c2)
-            4091:   52(float) Load 215(compare)
-            4092:3102(ResType) ImageSparseDrefGather 4089 4090 4091 ConstOffsets 4034
-            4093:  7(f16vec4) CompositeExtract 4092 1
-                              Store 4022(texel) 4093
-            4094:     47(int) CompositeExtract 4092 0
-            4095:         371 Load 373(s2DRectShadow)
-            4096:154(f16vec2) Load 156(f16c2)
-            4097:   52(float) Load 215(compare)
-            4098:3102(ResType) ImageSparseDrefGather 4095 4096 4097 ConstOffsets 4034
-            4099:  7(f16vec4) CompositeExtract 4098 1
-                              Store 4022(texel) 4099
-            4100:     47(int) CompositeExtract 4098 0
-            4101:  7(f16vec4) Load 4022(texel)
-                              ReturnValue 4101
+     4066(texel):     64(ptr) Variable Function
+                              Store 4066(texel) 121
+            4067:         143 Load 145(s2D)
+            4068:   53(fvec2) Load 148(c2)
+            4079:3146(ResType) ImageSparseGather 4067 4068 2187 ConstOffsets 4078
+            4080:  7(f16vec4) CompositeExtract 4079 1
+                              Store 4066(texel) 4080
+            4081:     47(int) CompositeExtract 4079 0
+            4082:         143 Load 145(s2D)
+            4083:154(f16vec2) Load 156(f16c2)
+            4084:6(float16_t) Load 137(f16bias)
+            4085:3146(ResType) ImageSparseGather 4082 4083 2187 Bias ConstOffsets 4084 4078
+            4086:  7(f16vec4) CompositeExtract 4085 1
+                              Store 4066(texel) 4086
+            4087:     47(int) CompositeExtract 4085 0
+            4088:         284 Load 286(s2DArray)
+            4089:  167(fvec3) Load 169(c3)
+            4090:3146(ResType) ImageSparseGather 4088 4089 2187 ConstOffsets 4078
+            4091:  7(f16vec4) CompositeExtract 4090 1
+                              Store 4066(texel) 4091
+            4092:     47(int) CompositeExtract 4090 0
+            4093:         284 Load 286(s2DArray)
+            4094:175(f16vec3) Load 177(f16c3)
+            4095:6(float16_t) Load 137(f16bias)
+            4096:3146(ResType) ImageSparseGather 4093 4094 2187 Bias ConstOffsets 4095 4078
+            4097:  7(f16vec4) CompositeExtract 4096 1
+                              Store 4066(texel) 4097
+            4098:     47(int) CompositeExtract 4096 0
+            4099:         357 Load 359(s2DRect)
+            4100:   53(fvec2) Load 148(c2)
+            4101:3146(ResType) ImageSparseGather 4099 4100 2187 ConstOffsets 4078
+            4102:  7(f16vec4) CompositeExtract 4101 1
+                              Store 4066(texel) 4102
+            4103:     47(int) CompositeExtract 4101 0
+            4104:         357 Load 359(s2DRect)
+            4105:154(f16vec2) Load 156(f16c2)
+            4106:3146(ResType) ImageSparseGather 4104 4105 2187 ConstOffsets 4078
+            4107:  7(f16vec4) CompositeExtract 4106 1
+                              Store 4066(texel) 4107
+            4108:     47(int) CompositeExtract 4106 0
+            4109:         224 Load 226(s2DShadow)
+            4110:   53(fvec2) Load 148(c2)
+            4111:   52(float) Load 215(compare)
+            4112:3146(ResType) ImageSparseDrefGather 4109 4110 4111 ConstOffsets 4078
+            4113:  7(f16vec4) CompositeExtract 4112 1
+                              Store 4066(texel) 4113
+            4114:     47(int) CompositeExtract 4112 0
+            4115:         224 Load 226(s2DShadow)
+            4116:154(f16vec2) Load 156(f16c2)
+            4117:   52(float) Load 215(compare)
+            4118:3146(ResType) ImageSparseDrefGather 4115 4116 4117 ConstOffsets 4078
+            4119:  7(f16vec4) CompositeExtract 4118 1
+                              Store 4066(texel) 4119
+            4120:     47(int) CompositeExtract 4118 0
+            4121:         337 Load 339(s2DArrayShadow)
+            4122:  167(fvec3) Load 169(c3)
+            4123:   52(float) Load 215(compare)
+            4124:3146(ResType) ImageSparseDrefGather 4121 4122 4123 ConstOffsets 4078
+            4125:  7(f16vec4) CompositeExtract 4124 1
+                              Store 4066(texel) 4125
+            4126:     47(int) CompositeExtract 4124 0
+            4127:         337 Load 339(s2DArrayShadow)
+            4128:175(f16vec3) Load 177(f16c3)
+            4129:   52(float) Load 215(compare)
+            4130:3146(ResType) ImageSparseDrefGather 4127 4128 4129 ConstOffsets 4078
+            4131:  7(f16vec4) CompositeExtract 4130 1
+                              Store 4066(texel) 4131
+            4132:     47(int) CompositeExtract 4130 0
+            4133:         371 Load 373(s2DRectShadow)
+            4134:   53(fvec2) Load 148(c2)
+            4135:   52(float) Load 215(compare)
+            4136:3146(ResType) ImageSparseDrefGather 4133 4134 4135 ConstOffsets 4078
+            4137:  7(f16vec4) CompositeExtract 4136 1
+                              Store 4066(texel) 4137
+            4138:     47(int) CompositeExtract 4136 0
+            4139:         371 Load 373(s2DRectShadow)
+            4140:154(f16vec2) Load 156(f16c2)
+            4141:   52(float) Load 215(compare)
+            4142:3146(ResType) ImageSparseDrefGather 4139 4140 4141 ConstOffsets 4078
+            4143:  7(f16vec4) CompositeExtract 4142 1
+                              Store 4066(texel) 4143
+            4144:     47(int) CompositeExtract 4142 0
+            4145:  7(f16vec4) Load 4066(texel)
+                              ReturnValue 4145
                               FunctionEnd
 91(testSparseTextureGatherLod():  7(f16vec4) Function None 8
               92:             Label
-     4104(texel):     64(ptr) Variable Function
-                              Store 4104(texel) 121
-            4105:         143 Load 145(s2D)
-            4106:   53(fvec2) Load 148(c2)
-            4107:   52(float) Load 565(lod)
-            4108:3102(ResType) ImageSparseGather 4105 4106 2187 Lod 4107
-            4109:  7(f16vec4) CompositeExtract 4108 1
-                              Store 4104(texel) 4109
-            4110:     47(int) CompositeExtract 4108 0
-            4111:         143 Load 145(s2D)
-            4112:154(f16vec2) Load 156(f16c2)
-            4113:6(float16_t) Load 572(f16lod)
-            4114:3102(ResType) ImageSparseGather 4111 4112 2187 Lod 4113
-            4115:  7(f16vec4) CompositeExtract 4114 1
-                              Store 4104(texel) 4115
-            4116:     47(int) CompositeExtract 4114 0
-            4117:         284 Load 286(s2DArray)
-            4118:  167(fvec3) Load 169(c3)
-            4119:   52(float) Load 565(lod)
-            4120:3102(ResType) ImageSparseGather 4117 4118 2187 Lod 4119
-            4121:  7(f16vec4) CompositeExtract 4120 1
-                              Store 4104(texel) 4121
-            4122:     47(int) CompositeExtract 4120 0
-            4123:         284 Load 286(s2DArray)
-            4124:175(f16vec3) Load 177(f16c3)
-            4125:6(float16_t) Load 572(f16lod)
-            4126:3102(ResType) ImageSparseGather 4123 4124 2187 Lod 4125
-            4127:  7(f16vec4) CompositeExtract 4126 1
-                              Store 4104(texel) 4127
-            4128:     47(int) CompositeExtract 4126 0
-            4129:         184 Load 186(sCube)
-            4130:  167(fvec3) Load 169(c3)
-            4131:   52(float) Load 565(lod)
-            4132:3102(ResType) ImageSparseGather 4129 4130 2187 Lod 4131
-            4133:  7(f16vec4) CompositeExtract 4132 1
-                              Store 4104(texel) 4133
-            4134:     47(int) CompositeExtract 4132 0
-            4135:         184 Load 186(sCube)
-            4136:175(f16vec3) Load 177(f16c3)
-            4137:6(float16_t) Load 572(f16lod)
-            4138:3102(ResType) ImageSparseGather 4135 4136 2187 Lod 4137
-            4139:  7(f16vec4) CompositeExtract 4138 1
-                              Store 4104(texel) 4139
-            4140:     47(int) CompositeExtract 4138 0
-            4141:         299 Load 301(sCubeArray)
-            4142:  249(fvec4) Load 251(c4)
-            4143:   52(float) Load 565(lod)
-            4144:3102(ResType) ImageSparseGather 4141 4142 2187 Lod 4143
-            4145:  7(f16vec4) CompositeExtract 4144 1
-                              Store 4104(texel) 4145
-            4146:     47(int) CompositeExtract 4144 0
-            4147:         299 Load 301(sCubeArray)
-            4148:  7(f16vec4) Load 309(f16c4)
-            4149:6(float16_t) Load 572(f16lod)
-            4150:3102(ResType) ImageSparseGather 4147 4148 2187 Lod 4149
-            4151:  7(f16vec4) CompositeExtract 4150 1
-                              Store 4104(texel) 4151
-            4152:     47(int) CompositeExtract 4150 0
-            4153:  7(f16vec4) Load 4104(texel)
-                              ReturnValue 4153
+     4148(texel):     64(ptr) Variable Function
+                              Store 4148(texel) 121
+            4149:         143 Load 145(s2D)
+            4150:   53(fvec2) Load 148(c2)
+            4151:   52(float) Load 565(lod)
+            4152:3146(ResType) ImageSparseGather 4149 4150 2187 Lod 4151
+            4153:  7(f16vec4) CompositeExtract 4152 1
+                              Store 4148(texel) 4153
+            4154:     47(int) CompositeExtract 4152 0
+            4155:         143 Load 145(s2D)
+            4156:154(f16vec2) Load 156(f16c2)
+            4157:6(float16_t) Load 572(f16lod)
+            4158:3146(ResType) ImageSparseGather 4155 4156 2187 Lod 4157
+            4159:  7(f16vec4) CompositeExtract 4158 1
+                              Store 4148(texel) 4159
+            4160:     47(int) CompositeExtract 4158 0
+            4161:         284 Load 286(s2DArray)
+            4162:  167(fvec3) Load 169(c3)
+            4163:   52(float) Load 565(lod)
+            4164:3146(ResType) ImageSparseGather 4161 4162 2187 Lod 4163
+            4165:  7(f16vec4) CompositeExtract 4164 1
+                              Store 4148(texel) 4165
+            4166:     47(int) CompositeExtract 4164 0
+            4167:         284 Load 286(s2DArray)
+            4168:175(f16vec3) Load 177(f16c3)
+            4169:6(float16_t) Load 572(f16lod)
+            4170:3146(ResType) ImageSparseGather 4167 4168 2187 Lod 4169
+            4171:  7(f16vec4) CompositeExtract 4170 1
+                              Store 4148(texel) 4171
+            4172:     47(int) CompositeExtract 4170 0
+            4173:         184 Load 186(sCube)
+            4174:  167(fvec3) Load 169(c3)
+            4175:   52(float) Load 565(lod)
+            4176:3146(ResType) ImageSparseGather 4173 4174 2187 Lod 4175
+            4177:  7(f16vec4) CompositeExtract 4176 1
+                              Store 4148(texel) 4177
+            4178:     47(int) CompositeExtract 4176 0
+            4179:         184 Load 186(sCube)
+            4180:175(f16vec3) Load 177(f16c3)
+            4181:6(float16_t) Load 572(f16lod)
+            4182:3146(ResType) ImageSparseGather 4179 4180 2187 Lod 4181
+            4183:  7(f16vec4) CompositeExtract 4182 1
+                              Store 4148(texel) 4183
+            4184:     47(int) CompositeExtract 4182 0
+            4185:         299 Load 301(sCubeArray)
+            4186:  249(fvec4) Load 251(c4)
+            4187:   52(float) Load 565(lod)
+            4188:3146(ResType) ImageSparseGather 4185 4186 2187 Lod 4187
+            4189:  7(f16vec4) CompositeExtract 4188 1
+                              Store 4148(texel) 4189
+            4190:     47(int) CompositeExtract 4188 0
+            4191:         299 Load 301(sCubeArray)
+            4192:  7(f16vec4) Load 309(f16c4)
+            4193:6(float16_t) Load 572(f16lod)
+            4194:3146(ResType) ImageSparseGather 4191 4192 2187 Lod 4193
+            4195:  7(f16vec4) CompositeExtract 4194 1
+                              Store 4148(texel) 4195
+            4196:     47(int) CompositeExtract 4194 0
+            4197:  7(f16vec4) Load 4148(texel)
+                              ReturnValue 4197
                               FunctionEnd
 93(testSparseTextureGatherLodOffset():  7(f16vec4) Function None 8
               94:             Label
-     4156(texel):     64(ptr) Variable Function
-                              Store 4156(texel) 121
-            4157:         143 Load 145(s2D)
-            4158:   53(fvec2) Load 148(c2)
-            4159:   52(float) Load 565(lod)
-            4160:3102(ResType) ImageSparseGather 4157 4158 2187 Lod ConstOffset 4159 722
-            4161:  7(f16vec4) CompositeExtract 4160 1
-                              Store 4156(texel) 4161
-            4162:     47(int) CompositeExtract 4160 0
-            4163:         143 Load 145(s2D)
-            4164:154(f16vec2) Load 156(f16c2)
-            4165:6(float16_t) Load 572(f16lod)
-            4166:3102(ResType) ImageSparseGather 4163 4164 2187 Lod ConstOffset 4165 722
-            4167:  7(f16vec4) CompositeExtract 4166 1
-                              Store 4156(texel) 4167
-            4168:     47(int) CompositeExtract 4166 0
-            4169:         284 Load 286(s2DArray)
-            4170:  167(fvec3) Load 169(c3)
-            4171:   52(float) Load 565(lod)
-            4172:3102(ResType) ImageSparseGather 4169 4170 2187 Lod ConstOffset 4171 722
-            4173:  7(f16vec4) CompositeExtract 4172 1
-                              Store 4156(texel) 4173
-            4174:     47(int) CompositeExtract 4172 0
-            4175:         284 Load 286(s2DArray)
-            4176:175(f16vec3) Load 177(f16c3)
-            4177:6(float16_t) Load 572(f16lod)
-            4178:3102(ResType) ImageSparseGather 4175 4176 2187 Lod ConstOffset 4177 722
-            4179:  7(f16vec4) CompositeExtract 4178 1
-                              Store 4156(texel) 4179
-            4180:     47(int) CompositeExtract 4178 0
-            4181:  7(f16vec4) Load 4156(texel)
-                              ReturnValue 4181
+     4200(texel):     64(ptr) Variable Function
+                              Store 4200(texel) 121
+            4201:         143 Load 145(s2D)
+            4202:   53(fvec2) Load 148(c2)
+            4203:   52(float) Load 565(lod)
+            4204:3146(ResType) ImageSparseGather 4201 4202 2187 Lod ConstOffset 4203 722
+            4205:  7(f16vec4) CompositeExtract 4204 1
+                              Store 4200(texel) 4205
+            4206:     47(int) CompositeExtract 4204 0
+            4207:         143 Load 145(s2D)
+            4208:154(f16vec2) Load 156(f16c2)
+            4209:6(float16_t) Load 572(f16lod)
+            4210:3146(ResType) ImageSparseGather 4207 4208 2187 Lod ConstOffset 4209 722
+            4211:  7(f16vec4) CompositeExtract 4210 1
+                              Store 4200(texel) 4211
+            4212:     47(int) CompositeExtract 4210 0
+            4213:         284 Load 286(s2DArray)
+            4214:  167(fvec3) Load 169(c3)
+            4215:   52(float) Load 565(lod)
+            4216:3146(ResType) ImageSparseGather 4213 4214 2187 Lod ConstOffset 4215 722
+            4217:  7(f16vec4) CompositeExtract 4216 1
+                              Store 4200(texel) 4217
+            4218:     47(int) CompositeExtract 4216 0
+            4219:         284 Load 286(s2DArray)
+            4220:175(f16vec3) Load 177(f16c3)
+            4221:6(float16_t) Load 572(f16lod)
+            4222:3146(ResType) ImageSparseGather 4219 4220 2187 Lod ConstOffset 4221 722
+            4223:  7(f16vec4) CompositeExtract 4222 1
+                              Store 4200(texel) 4223
+            4224:     47(int) CompositeExtract 4222 0
+            4225:  7(f16vec4) Load 4200(texel)
+                              ReturnValue 4225
                               FunctionEnd
 95(testSparseTextureGatherLodOffsets():  7(f16vec4) Function None 8
               96:             Label
-     4184(texel):     64(ptr) Variable Function
-                              Store 4184(texel) 121
-            4185:         143 Load 145(s2D)
-            4186:   53(fvec2) Load 148(c2)
-            4187:   52(float) Load 565(lod)
-            4188:3102(ResType) ImageSparseGather 4185 4186 2187 Lod ConstOffsets 4187 2380
-            4189:  7(f16vec4) CompositeExtract 4188 1
-                              Store 4184(texel) 4189
-            4190:     47(int) CompositeExtract 4188 0
-            4191:         143 Load 145(s2D)
-            4192:154(f16vec2) Load 156(f16c2)
-            4193:6(float16_t) Load 572(f16lod)
-            4194:3102(ResType) ImageSparseGather 4191 4192 2187 Lod ConstOffsets 4193 2380
-            4195:  7(f16vec4) CompositeExtract 4194 1
-                              Store 4184(texel) 4195
-            4196:     47(int) CompositeExtract 4194 0
-            4197:         284 Load 286(s2DArray)
-            4198:  167(fvec3) Load 169(c3)
-            4199:   52(float) Load 565(lod)
-            4200:3102(ResType) ImageSparseGather 4197 4198 2187 Lod ConstOffsets 4199 2380
-            4201:  7(f16vec4) CompositeExtract 4200 1
-                              Store 4184(texel) 4201
-            4202:     47(int) CompositeExtract 4200 0
-            4203:         284 Load 286(s2DArray)
-            4204:175(f16vec3) Load 177(f16c3)
-            4205:6(float16_t) Load 572(f16lod)
-            4206:3102(ResType) ImageSparseGather 4203 4204 2187 Lod ConstOffsets 4205 2380
-            4207:  7(f16vec4) CompositeExtract 4206 1
-                              Store 4184(texel) 4207
-            4208:     47(int) CompositeExtract 4206 0
-            4209:  7(f16vec4) Load 4184(texel)
-                              ReturnValue 4209
+     4228(texel):     64(ptr) Variable Function
+                              Store 4228(texel) 121
+            4229:         143 Load 145(s2D)
+            4230:   53(fvec2) Load 148(c2)
+            4231:   52(float) Load 565(lod)
+            4232:3146(ResType) ImageSparseGather 4229 4230 2187 Lod ConstOffsets 4231 2380
+            4233:  7(f16vec4) CompositeExtract 4232 1
+                              Store 4228(texel) 4233
+            4234:     47(int) CompositeExtract 4232 0
+            4235:         143 Load 145(s2D)
+            4236:154(f16vec2) Load 156(f16c2)
+            4237:6(float16_t) Load 572(f16lod)
+            4238:3146(ResType) ImageSparseGather 4235 4236 2187 Lod ConstOffsets 4237 2380
+            4239:  7(f16vec4) CompositeExtract 4238 1
+                              Store 4228(texel) 4239
+            4240:     47(int) CompositeExtract 4238 0
+            4241:         284 Load 286(s2DArray)
+            4242:  167(fvec3) Load 169(c3)
+            4243:   52(float) Load 565(lod)
+            4244:3146(ResType) ImageSparseGather 4241 4242 2187 Lod ConstOffsets 4243 2380
+            4245:  7(f16vec4) CompositeExtract 4244 1
+                              Store 4228(texel) 4245
+            4246:     47(int) CompositeExtract 4244 0
+            4247:         284 Load 286(s2DArray)
+            4248:175(f16vec3) Load 177(f16c3)
+            4249:6(float16_t) Load 572(f16lod)
+            4250:3146(ResType) ImageSparseGather 4247 4248 2187 Lod ConstOffsets 4249 2380
+            4251:  7(f16vec4) CompositeExtract 4250 1
+                              Store 4228(texel) 4251
+            4252:     47(int) CompositeExtract 4250 0
+            4253:  7(f16vec4) Load 4228(texel)
+                              ReturnValue 4253
                               FunctionEnd
 97(testSparseImageLoad():  7(f16vec4) Function None 8
               98:             Label
-     4212(texel):     64(ptr) Variable Function
-                              Store 4212(texel) 121
-            4213:        2962 Load 2964(i2D)
-            4214:   53(fvec2) Load 148(c2)
-            4215:  721(ivec2) ConvertFToS 4214
-            4216:3102(ResType) ImageSparseRead 4213 4215
-            4217:  7(f16vec4) CompositeExtract 4216 1
-                              Store 4212(texel) 4217
-            4218:     47(int) CompositeExtract 4216 0
-            4219:        2971 Load 2973(i3D)
-            4220:  167(fvec3) Load 169(c3)
-            4221:  734(ivec3) ConvertFToS 4220
-            4222:3102(ResType) ImageSparseRead 4219 4221
-            4223:  7(f16vec4) CompositeExtract 4222 1
-                              Store 4212(texel) 4223
-            4224:     47(int) CompositeExtract 4222 0
-            4225:        2980 Load 2982(i2DRect)
-            4226:   53(fvec2) Load 148(c2)
-            4227:  721(ivec2) ConvertFToS 4226
-            4228:3102(ResType) ImageSparseRead 4225 4227
-            4229:  7(f16vec4) CompositeExtract 4228 1
-                              Store 4212(texel) 4229
-            4230:     47(int) CompositeExtract 4228 0
-            4231:        2989 Load 2991(iCube)
-            4232:  167(fvec3) Load 169(c3)
-            4233:  734(ivec3) ConvertFToS 4232
-            4234:3102(ResType) ImageSparseRead 4231 4233
-            4235:  7(f16vec4) CompositeExtract 4234 1
-                              Store 4212(texel) 4235
-            4236:     47(int) CompositeExtract 4234 0
-            4237:        3016 Load 3018(i2DArray)
-            4238:  167(fvec3) Load 169(c3)
-            4239:  734(ivec3) ConvertFToS 4238
-            4240:3102(ResType) ImageSparseRead 4237 4239
-            4241:  7(f16vec4) CompositeExtract 4240 1
-                              Store 4212(texel) 4241
-            4242:     47(int) CompositeExtract 4240 0
-            4243:        3025 Load 3027(iCubeArray)
-            4244:  167(fvec3) Load 169(c3)
-            4245:  734(ivec3) ConvertFToS 4244
-            4246:3102(ResType) ImageSparseRead 4243 4245
-            4247:  7(f16vec4) CompositeExtract 4246 1
-                              Store 4212(texel) 4247
-            4248:     47(int) CompositeExtract 4246 0
-            4249:        3034 Load 3036(i2DMS)
-            4250:   53(fvec2) Load 148(c2)
-            4251:  721(ivec2) ConvertFToS 4250
-            4252:3102(ResType) ImageSparseRead 4249 4251 Sample 709
-            4253:  7(f16vec4) CompositeExtract 4252 1
-                              Store 4212(texel) 4253
-            4254:     47(int) CompositeExtract 4252 0
-            4255:        3043 Load 3045(i2DMSArray)
-            4256:  167(fvec3) Load 169(c3)
-            4257:  734(ivec3) ConvertFToS 4256
-            4258:3102(ResType) ImageSparseRead 4255 4257 Sample 1326
-            4259:  7(f16vec4) CompositeExtract 4258 1
-                              Store 4212(texel) 4259
-            4260:     47(int) CompositeExtract 4258 0
-            4261:  7(f16vec4) Load 4212(texel)
-                              ReturnValue 4261
+     4256(texel):     64(ptr) Variable Function
+                              Store 4256(texel) 121
+            4257:        3006 Load 3008(i2D)
+            4258:   53(fvec2) Load 148(c2)
+            4259:  721(ivec2) ConvertFToS 4258
+            4260:3146(ResType) ImageSparseRead 4257 4259
+            4261:  7(f16vec4) CompositeExtract 4260 1
+                              Store 4256(texel) 4261
+            4262:     47(int) CompositeExtract 4260 0
+            4263:        3015 Load 3017(i3D)
+            4264:  167(fvec3) Load 169(c3)
+            4265:  734(ivec3) ConvertFToS 4264
+            4266:3146(ResType) ImageSparseRead 4263 4265
+            4267:  7(f16vec4) CompositeExtract 4266 1
+                              Store 4256(texel) 4267
+            4268:     47(int) CompositeExtract 4266 0
+            4269:        3024 Load 3026(i2DRect)
+            4270:   53(fvec2) Load 148(c2)
+            4271:  721(ivec2) ConvertFToS 4270
+            4272:3146(ResType) ImageSparseRead 4269 4271
+            4273:  7(f16vec4) CompositeExtract 4272 1
+                              Store 4256(texel) 4273
+            4274:     47(int) CompositeExtract 4272 0
+            4275:        3033 Load 3035(iCube)
+            4276:  167(fvec3) Load 169(c3)
+            4277:  734(ivec3) ConvertFToS 4276
+            4278:3146(ResType) ImageSparseRead 4275 4277
+            4279:  7(f16vec4) CompositeExtract 4278 1
+                              Store 4256(texel) 4279
+            4280:     47(int) CompositeExtract 4278 0
+            4281:        3060 Load 3062(i2DArray)
+            4282:  167(fvec3) Load 169(c3)
+            4283:  734(ivec3) ConvertFToS 4282
+            4284:3146(ResType) ImageSparseRead 4281 4283
+            4285:  7(f16vec4) CompositeExtract 4284 1
+                              Store 4256(texel) 4285
+            4286:     47(int) CompositeExtract 4284 0
+            4287:        3069 Load 3071(iCubeArray)
+            4288:  167(fvec3) Load 169(c3)
+            4289:  734(ivec3) ConvertFToS 4288
+            4290:3146(ResType) ImageSparseRead 4287 4289
+            4291:  7(f16vec4) CompositeExtract 4290 1
+                              Store 4256(texel) 4291
+            4292:     47(int) CompositeExtract 4290 0
+            4293:        3078 Load 3080(i2DMS)
+            4294:   53(fvec2) Load 148(c2)
+            4295:  721(ivec2) ConvertFToS 4294
+            4296:3146(ResType) ImageSparseRead 4293 4295 Sample 709
+            4297:  7(f16vec4) CompositeExtract 4296 1
+                              Store 4256(texel) 4297
+            4298:     47(int) CompositeExtract 4296 0
+            4299:        3087 Load 3089(i2DMSArray)
+            4300:  167(fvec3) Load 169(c3)
+            4301:  734(ivec3) ConvertFToS 4300
+            4302:3146(ResType) ImageSparseRead 4299 4301 Sample 1326
+            4303:  7(f16vec4) CompositeExtract 4302 1
+                              Store 4256(texel) 4303
+            4304:     47(int) CompositeExtract 4302 0
+            4305:  7(f16vec4) Load 4256(texel)
+                              ReturnValue 4305
                               FunctionEnd
 99(testSparseTextureClamp():  7(f16vec4) Function None 8
              100:             Label
-     4264(texel):     64(ptr) Variable Function
-                              Store 4264(texel) 121
-            4265:         143 Load 145(s2D)
-            4266:   53(fvec2) Load 148(c2)
-            4268:   52(float) Load 4267(lodClamp)
-            4269:3102(ResType) ImageSparseSampleImplicitLod 4265 4266 MinLod 4268
-            4270:  7(f16vec4) CompositeExtract 4269 1
-                              Store 4264(texel) 4270
-            4271:     47(int) CompositeExtract 4269 0
-            4272:         143 Load 145(s2D)
-            4273:154(f16vec2) Load 156(f16c2)
-            4275:6(float16_t) Load 4274(f16lodClamp)
-            4276:6(float16_t) Load 137(f16bias)
-            4277:3102(ResType) ImageSparseSampleImplicitLod 4272 4273 Bias MinLod 4276 4275
-            4278:  7(f16vec4) CompositeExtract 4277 1
-                              Store 4264(texel) 4278
-            4279:     47(int) CompositeExtract 4277 0
-            4280:         163 Load 165(s3D)
-            4281:  167(fvec3) Load 169(c3)
-            4282:   52(float) Load 4267(lodClamp)
-            4283:3102(ResType) ImageSparseSampleImplicitLod 4280 4281 MinLod 4282
-            4284:  7(f16vec4) CompositeExtract 4283 1
-                              Store 4264(texel) 4284
-            4285:     47(int) CompositeExtract 4283 0
-            4286:         163 Load 165(s3D)
-            4287:175(f16vec3) Load 177(f16c3)
-            4288:6(float16_t) Load 4274(f16lodClamp)
-            4289:6(float16_t) Load 137(f16bias)
-            4290:3102(ResType) ImageSparseSampleImplicitLod 4286 4287 Bias MinLod 4289 4288
-            4291:  7(f16vec4) CompositeExtract 4290 1
-                              Store 4264(texel) 4291
-            4292:     47(int) CompositeExtract 4290 0
-            4293:         184 Load 186(sCube)
-            4294:  167(fvec3) Load 169(c3)
-            4295:   52(float) Load 4267(lodClamp)
-            4296:3102(ResType) ImageSparseSampleImplicitLod 4293 4294 MinLod 4295
-            4297:  7(f16vec4) CompositeExtract 4296 1
-                              Store 4264(texel) 4297
-            4298:     47(int) CompositeExtract 4296 0
-            4299:         184 Load 186(sCube)
-            4300:175(f16vec3) Load 177(f16c3)
-            4301:6(float16_t) Load 4274(f16lodClamp)
-            4302:6(float16_t) Load 137(f16bias)
-            4303:3102(ResType) ImageSparseSampleImplicitLod 4299 4300 Bias MinLod 4302 4301
-            4304:  7(f16vec4) CompositeExtract 4303 1
-                              Store 4264(texel) 4304
-            4305:     47(int) CompositeExtract 4303 0
-            4306:         224 Load 226(s2DShadow)
-            4307:  167(fvec3) Load 169(c3)
-            4308:   52(float) Load 4267(lodClamp)
-            4309:    208(ptr) AccessChain 4264(texel) 207
-            4310:   52(float) CompositeExtract 4307 2
-            4311:3138(ResType) ImageSparseSampleDrefImplicitLod 4306 4307 4310 MinLod 4308
-            4312:6(float16_t) CompositeExtract 4311 1
-                              Store 4309 4312
-            4313:     47(int) CompositeExtract 4311 0
-            4314:         224 Load 226(s2DShadow)
-            4315:154(f16vec2) Load 156(f16c2)
-            4316:   52(float) Load 215(compare)
-            4317:6(float16_t) Load 4274(f16lodClamp)
-            4318:    208(ptr) AccessChain 4264(texel) 207
-            4319:6(float16_t) Load 137(f16bias)
-            4320:3138(ResType) ImageSparseSampleDrefImplicitLod 4314 4315 4316 Bias MinLod 4319 4317
-            4321:6(float16_t) CompositeExtract 4320 1
-                              Store 4318 4321
-            4322:     47(int) CompositeExtract 4320 0
-            4323:         245 Load 247(sCubeShadow)
-            4324:  249(fvec4) Load 251(c4)
-            4325:   52(float) Load 4267(lodClamp)
-            4326:    208(ptr) AccessChain 4264(texel) 207
-            4327:   52(float) CompositeExtract 4324 3
-            4328:3138(ResType) ImageSparseSampleDrefImplicitLod 4323 4324 4327 MinLod 4325
-            4329:6(float16_t) CompositeExtract 4328 1
-                              Store 4326 4329
-            4330:     47(int) CompositeExtract 4328 0
-            4331:         245 Load 247(sCubeShadow)
-            4332:175(f16vec3) Load 177(f16c3)
-            4333:   52(float) Load 215(compare)
-            4334:6(float16_t) Load 4274(f16lodClamp)
-            4335:    208(ptr) AccessChain 4264(texel) 207
-            4336:6(float16_t) Load 137(f16bias)
-            4337:3138(ResType) ImageSparseSampleDrefImplicitLod 4331 4332 4333 Bias MinLod 4336 4334
-            4338:6(float16_t) CompositeExtract 4337 1
-                              Store 4335 4338
-            4339:     47(int) CompositeExtract 4337 0
-            4340:         284 Load 286(s2DArray)
-            4341:  167(fvec3) Load 169(c3)
-            4342:   52(float) Load 4267(lodClamp)
-            4343:3102(ResType) ImageSparseSampleImplicitLod 4340 4341 MinLod 4342
-            4344:  7(f16vec4) CompositeExtract 4343 1
-                              Store 4264(texel) 4344
-            4345:     47(int) CompositeExtract 4343 0
-            4346:         284 Load 286(s2DArray)
-            4347:175(f16vec3) Load 177(f16c3)
-            4348:6(float16_t) Load 4274(f16lodClamp)
-            4349:6(float16_t) Load 137(f16bias)
-            4350:3102(ResType) ImageSparseSampleImplicitLod 4346 4347 Bias MinLod 4349 4348
-            4351:  7(f16vec4) CompositeExtract 4350 1
-                              Store 4264(texel) 4351
-            4352:     47(int) CompositeExtract 4350 0
-            4353:         299 Load 301(sCubeArray)
-            4354:  249(fvec4) Load 251(c4)
-            4355:   52(float) Load 4267(lodClamp)
-            4356:3102(ResType) ImageSparseSampleImplicitLod 4353 4354 MinLod 4355
-            4357:  7(f16vec4) CompositeExtract 4356 1
-                              Store 4264(texel) 4357
-            4358:     47(int) CompositeExtract 4356 0
-            4359:         299 Load 301(sCubeArray)
-            4360:  7(f16vec4) Load 309(f16c4)
-            4361:6(float16_t) Load 4274(f16lodClamp)
-            4362:6(float16_t) Load 137(f16bias)
-            4363:3102(ResType) ImageSparseSampleImplicitLod 4359 4360 Bias MinLod 4362 4361
-            4364:  7(f16vec4) CompositeExtract 4363 1
-                              Store 4264(texel) 4364
-            4365:     47(int) CompositeExtract 4363 0
-            4366:         337 Load 339(s2DArrayShadow)
-            4367:  249(fvec4) Load 251(c4)
-            4368:   52(float) Load 4267(lodClamp)
-            4369:    208(ptr) AccessChain 4264(texel) 207
-            4370:   52(float) CompositeExtract 4367 3
-            4371:3138(ResType) ImageSparseSampleDrefImplicitLod 4366 4367 4370 MinLod 4368
-            4372:6(float16_t) CompositeExtract 4371 1
-                              Store 4369 4372
-            4373:     47(int) CompositeExtract 4371 0
-            4374:         337 Load 339(s2DArrayShadow)
-            4375:175(f16vec3) Load 177(f16c3)
-            4376:   52(float) Load 215(compare)
-            4377:6(float16_t) Load 4274(f16lodClamp)
-            4378:    208(ptr) AccessChain 4264(texel) 207
-            4379:3138(ResType) ImageSparseSampleDrefImplicitLod 4374 4375 4376 MinLod 4377
-            4380:6(float16_t) CompositeExtract 4379 1
-                              Store 4378 4380
-            4381:     47(int) CompositeExtract 4379 0
-            4382:         391 Load 393(sCubeArrayShadow)
-            4383:  249(fvec4) Load 251(c4)
-            4384:   52(float) Load 215(compare)
-            4385:   52(float) Load 4267(lodClamp)
-            4386:    208(ptr) AccessChain 4264(texel) 207
-            4387:3138(ResType) ImageSparseSampleDrefImplicitLod 4382 4383 4384 MinLod 4385
-            4388:6(float16_t) CompositeExtract 4387 1
-                              Store 4386 4388
+     4308(texel):     64(ptr) Variable Function
+                              Store 4308(texel) 121
+            4309:         143 Load 145(s2D)
+            4310:   53(fvec2) Load 148(c2)
+            4312:   52(float) Load 4311(lodClamp)
+            4313:3146(ResType) ImageSparseSampleImplicitLod 4309 4310 MinLod 4312
+            4314:  7(f16vec4) CompositeExtract 4313 1
+                              Store 4308(texel) 4314
+            4315:     47(int) CompositeExtract 4313 0
+            4316:         143 Load 145(s2D)
+            4317:154(f16vec2) Load 156(f16c2)
+            4319:6(float16_t) Load 4318(f16lodClamp)
+            4320:6(float16_t) Load 137(f16bias)
+            4321:3146(ResType) ImageSparseSampleImplicitLod 4316 4317 Bias MinLod 4320 4319
+            4322:  7(f16vec4) CompositeExtract 4321 1
+                              Store 4308(texel) 4322
+            4323:     47(int) CompositeExtract 4321 0
+            4324:         163 Load 165(s3D)
+            4325:  167(fvec3) Load 169(c3)
+            4326:   52(float) Load 4311(lodClamp)
+            4327:3146(ResType) ImageSparseSampleImplicitLod 4324 4325 MinLod 4326
+            4328:  7(f16vec4) CompositeExtract 4327 1
+                              Store 4308(texel) 4328
+            4329:     47(int) CompositeExtract 4327 0
+            4330:         163 Load 165(s3D)
+            4331:175(f16vec3) Load 177(f16c3)
+            4332:6(float16_t) Load 4318(f16lodClamp)
+            4333:6(float16_t) Load 137(f16bias)
+            4334:3146(ResType) ImageSparseSampleImplicitLod 4330 4331 Bias MinLod 4333 4332
+            4335:  7(f16vec4) CompositeExtract 4334 1
+                              Store 4308(texel) 4335
+            4336:     47(int) CompositeExtract 4334 0
+            4337:         184 Load 186(sCube)
+            4338:  167(fvec3) Load 169(c3)
+            4339:   52(float) Load 4311(lodClamp)
+            4340:3146(ResType) ImageSparseSampleImplicitLod 4337 4338 MinLod 4339
+            4341:  7(f16vec4) CompositeExtract 4340 1
+                              Store 4308(texel) 4341
+            4342:     47(int) CompositeExtract 4340 0
+            4343:         184 Load 186(sCube)
+            4344:175(f16vec3) Load 177(f16c3)
+            4345:6(float16_t) Load 4318(f16lodClamp)
+            4346:6(float16_t) Load 137(f16bias)
+            4347:3146(ResType) ImageSparseSampleImplicitLod 4343 4344 Bias MinLod 4346 4345
+            4348:  7(f16vec4) CompositeExtract 4347 1
+                              Store 4308(texel) 4348
+            4349:     47(int) CompositeExtract 4347 0
+            4350:         224 Load 226(s2DShadow)
+            4351:  167(fvec3) Load 169(c3)
+            4352:   52(float) Load 4311(lodClamp)
+            4353:    208(ptr) AccessChain 4308(texel) 207
+            4354:   52(float) CompositeExtract 4351 2
+            4355:3182(ResType) ImageSparseSampleDrefImplicitLod 4350 4351 4354 MinLod 4352
+            4356:6(float16_t) CompositeExtract 4355 1
+                              Store 4353 4356
+            4357:     47(int) CompositeExtract 4355 0
+            4358:         224 Load 226(s2DShadow)
+            4359:154(f16vec2) Load 156(f16c2)
+            4360:   52(float) Load 215(compare)
+            4361:6(float16_t) Load 4318(f16lodClamp)
+            4362:    208(ptr) AccessChain 4308(texel) 207
+            4363:6(float16_t) Load 137(f16bias)
+            4364:3182(ResType) ImageSparseSampleDrefImplicitLod 4358 4359 4360 Bias MinLod 4363 4361
+            4365:6(float16_t) CompositeExtract 4364 1
+                              Store 4362 4365
+            4366:     47(int) CompositeExtract 4364 0
+            4367:         245 Load 247(sCubeShadow)
+            4368:  249(fvec4) Load 251(c4)
+            4369:   52(float) Load 4311(lodClamp)
+            4370:    208(ptr) AccessChain 4308(texel) 207
+            4371:   52(float) CompositeExtract 4368 3
+            4372:3182(ResType) ImageSparseSampleDrefImplicitLod 4367 4368 4371 MinLod 4369
+            4373:6(float16_t) CompositeExtract 4372 1
+                              Store 4370 4373
+            4374:     47(int) CompositeExtract 4372 0
+            4375:         245 Load 247(sCubeShadow)
+            4376:175(f16vec3) Load 177(f16c3)
+            4377:   52(float) Load 215(compare)
+            4378:6(float16_t) Load 4318(f16lodClamp)
+            4379:    208(ptr) AccessChain 4308(texel) 207
+            4380:6(float16_t) Load 137(f16bias)
+            4381:3182(ResType) ImageSparseSampleDrefImplicitLod 4375 4376 4377 Bias MinLod 4380 4378
+            4382:6(float16_t) CompositeExtract 4381 1
+                              Store 4379 4382
+            4383:     47(int) CompositeExtract 4381 0
+            4384:         284 Load 286(s2DArray)
+            4385:  167(fvec3) Load 169(c3)
+            4386:   52(float) Load 4311(lodClamp)
+            4387:3146(ResType) ImageSparseSampleImplicitLod 4384 4385 MinLod 4386
+            4388:  7(f16vec4) CompositeExtract 4387 1
+                              Store 4308(texel) 4388
             4389:     47(int) CompositeExtract 4387 0
-            4390:         391 Load 393(sCubeArrayShadow)
-            4391:  7(f16vec4) Load 309(f16c4)
-            4392:   52(float) Load 215(compare)
-            4393:6(float16_t) Load 4274(f16lodClamp)
-            4394:    208(ptr) AccessChain 4264(texel) 207
-            4395:3138(ResType) ImageSparseSampleDrefImplicitLod 4390 4391 4392 MinLod 4393
-            4396:6(float16_t) CompositeExtract 4395 1
-                              Store 4394 4396
-            4397:     47(int) CompositeExtract 4395 0
-            4398:  7(f16vec4) Load 4264(texel)
-                              ReturnValue 4398
+            4390:         284 Load 286(s2DArray)
+            4391:175(f16vec3) Load 177(f16c3)
+            4392:6(float16_t) Load 4318(f16lodClamp)
+            4393:6(float16_t) Load 137(f16bias)
+            4394:3146(ResType) ImageSparseSampleImplicitLod 4390 4391 Bias MinLod 4393 4392
+            4395:  7(f16vec4) CompositeExtract 4394 1
+                              Store 4308(texel) 4395
+            4396:     47(int) CompositeExtract 4394 0
+            4397:         299 Load 301(sCubeArray)
+            4398:  249(fvec4) Load 251(c4)
+            4399:   52(float) Load 4311(lodClamp)
+            4400:3146(ResType) ImageSparseSampleImplicitLod 4397 4398 MinLod 4399
+            4401:  7(f16vec4) CompositeExtract 4400 1
+                              Store 4308(texel) 4401
+            4402:     47(int) CompositeExtract 4400 0
+            4403:         299 Load 301(sCubeArray)
+            4404:  7(f16vec4) Load 309(f16c4)
+            4405:6(float16_t) Load 4318(f16lodClamp)
+            4406:6(float16_t) Load 137(f16bias)
+            4407:3146(ResType) ImageSparseSampleImplicitLod 4403 4404 Bias MinLod 4406 4405
+            4408:  7(f16vec4) CompositeExtract 4407 1
+                              Store 4308(texel) 4408
+            4409:     47(int) CompositeExtract 4407 0
+            4410:         337 Load 339(s2DArrayShadow)
+            4411:  249(fvec4) Load 251(c4)
+            4412:   52(float) Load 4311(lodClamp)
+            4413:    208(ptr) AccessChain 4308(texel) 207
+            4414:   52(float) CompositeExtract 4411 3
+            4415:3182(ResType) ImageSparseSampleDrefImplicitLod 4410 4411 4414 MinLod 4412
+            4416:6(float16_t) CompositeExtract 4415 1
+                              Store 4413 4416
+            4417:     47(int) CompositeExtract 4415 0
+            4418:         337 Load 339(s2DArrayShadow)
+            4419:175(f16vec3) Load 177(f16c3)
+            4420:   52(float) Load 215(compare)
+            4421:6(float16_t) Load 4318(f16lodClamp)
+            4422:    208(ptr) AccessChain 4308(texel) 207
+            4423:3182(ResType) ImageSparseSampleDrefImplicitLod 4418 4419 4420 MinLod 4421
+            4424:6(float16_t) CompositeExtract 4423 1
+                              Store 4422 4424
+            4425:     47(int) CompositeExtract 4423 0
+            4426:         391 Load 393(sCubeArrayShadow)
+            4427:  249(fvec4) Load 251(c4)
+            4428:   52(float) Load 215(compare)
+            4429:   52(float) Load 4311(lodClamp)
+            4430:    208(ptr) AccessChain 4308(texel) 207
+            4431:3182(ResType) ImageSparseSampleDrefImplicitLod 4426 4427 4428 MinLod 4429
+            4432:6(float16_t) CompositeExtract 4431 1
+                              Store 4430 4432
+            4433:     47(int) CompositeExtract 4431 0
+            4434:         391 Load 393(sCubeArrayShadow)
+            4435:  7(f16vec4) Load 309(f16c4)
+            4436:   52(float) Load 215(compare)
+            4437:6(float16_t) Load 4318(f16lodClamp)
+            4438:    208(ptr) AccessChain 4308(texel) 207
+            4439:3182(ResType) ImageSparseSampleDrefImplicitLod 4434 4435 4436 MinLod 4437
+            4440:6(float16_t) CompositeExtract 4439 1
+                              Store 4438 4440
+            4441:     47(int) CompositeExtract 4439 0
+            4442:  7(f16vec4) Load 4308(texel)
+                              ReturnValue 4442
                               FunctionEnd
 101(testTextureClamp():  7(f16vec4) Function None 8
              102:             Label
-     4401(texel):     64(ptr) Variable Function
-                              Store 4401(texel) 121
-            4402:         123 Load 125(s1D)
-            4403:   52(float) Load 128(c1)
-            4404:   52(float) Load 4267(lodClamp)
-            4405:  7(f16vec4) ImageSampleImplicitLod 4402 4403 MinLod 4404
-            4406:  7(f16vec4) Load 4401(texel)
-            4407:  7(f16vec4) FAdd 4406 4405
-                              Store 4401(texel) 4407
-            4408:         123 Load 125(s1D)
-            4409:6(float16_t) Load 135(f16c1)
-            4410:6(float16_t) Load 4274(f16lodClamp)
-            4411:6(float16_t) Load 137(f16bias)
-            4412:  7(f16vec4) ImageSampleImplicitLod 4408 4409 Bias MinLod 4411 4410
-            4413:  7(f16vec4) Load 4401(texel)
-            4414:  7(f16vec4) FAdd 4413 4412
-                              Store 4401(texel) 4414
-            4415:         143 Load 145(s2D)
-            4416:   53(fvec2) Load 148(c2)
-            4417:   52(float) Load 4267(lodClamp)
-            4418:  7(f16vec4) ImageSampleImplicitLod 4415 4416 MinLod 4417
-            4419:  7(f16vec4) Load 4401(texel)
-            4420:  7(f16vec4) FAdd 4419 4418
-                              Store 4401(texel) 4420
-            4421:         143 Load 145(s2D)
-            4422:154(f16vec2) Load 156(f16c2)
-            4423:6(float16_t) Load 4274(f16lodClamp)
-            4424:6(float16_t) Load 137(f16bias)
-            4425:  7(f16vec4) ImageSampleImplicitLod 4421 4422 Bias MinLod 4424 4423
-            4426:  7(f16vec4) Load 4401(texel)
-            4427:  7(f16vec4) FAdd 4426 4425
-                              Store 4401(texel) 4427
-            4428:         163 Load 165(s3D)
-            4429:  167(fvec3) Load 169(c3)
-            4430:   52(float) Load 4267(lodClamp)
-            4431:  7(f16vec4) ImageSampleImplicitLod 4428 4429 MinLod 4430
-            4432:  7(f16vec4) Load 4401(texel)
-            4433:  7(f16vec4) FAdd 4432 4431
-                              Store 4401(texel) 4433
-            4434:         163 Load 165(s3D)
-            4435:175(f16vec3) Load 177(f16c3)
-            4436:6(float16_t) Load 4274(f16lodClamp)
-            4437:6(float16_t) Load 137(f16bias)
-            4438:  7(f16vec4) ImageSampleImplicitLod 4434 4435 Bias MinLod 4437 4436
-            4439:  7(f16vec4) Load 4401(texel)
-            4440:  7(f16vec4) FAdd 4439 4438
-                              Store 4401(texel) 4440
-            4441:         184 Load 186(sCube)
-            4442:  167(fvec3) Load 169(c3)
-            4443:   52(float) Load 4267(lodClamp)
-            4444:  7(f16vec4) ImageSampleImplicitLod 4441 4442 MinLod 4443
-            4445:  7(f16vec4) Load 4401(texel)
-            4446:  7(f16vec4) FAdd 4445 4444
-                              Store 4401(texel) 4446
-            4447:         184 Load 186(sCube)
-            4448:175(f16vec3) Load 177(f16c3)
-            4449:6(float16_t) Load 4274(f16lodClamp)
-            4450:6(float16_t) Load 137(f16bias)
-            4451:  7(f16vec4) ImageSampleImplicitLod 4447 4448 Bias MinLod 4450 4449
-            4452:  7(f16vec4) Load 4401(texel)
-            4453:  7(f16vec4) FAdd 4452 4451
-                              Store 4401(texel) 4453
-            4454:         199 Load 201(s1DShadow)
-            4455:  167(fvec3) Load 169(c3)
-            4456:   52(float) Load 4267(lodClamp)
-            4457:   52(float) CompositeExtract 4455 2
-            4458:6(float16_t) ImageSampleDrefImplicitLod 4454 4455 4457 MinLod 4456
-            4459:    208(ptr) AccessChain 4401(texel) 207
-            4460:6(float16_t) Load 4459
-            4461:6(float16_t) FAdd 4460 4458
-            4462:    208(ptr) AccessChain 4401(texel) 207
-                              Store 4462 4461
-            4463:         199 Load 201(s1DShadow)
-            4464:154(f16vec2) Load 156(f16c2)
-            4465:   52(float) Load 215(compare)
-            4466:6(float16_t) Load 4274(f16lodClamp)
-            4467:6(float16_t) Load 137(f16bias)
-            4468:6(float16_t) ImageSampleDrefImplicitLod 4463 4464 4465 Bias MinLod 4467 4466
-            4469:    208(ptr) AccessChain 4401(texel) 207
-            4470:6(float16_t) Load 4469
-            4471:6(float16_t) FAdd 4470 4468
-            4472:    208(ptr) AccessChain 4401(texel) 207
-                              Store 4472 4471
-            4473:         224 Load 226(s2DShadow)
-            4474:  167(fvec3) Load 169(c3)
-            4475:   52(float) Load 4267(lodClamp)
-            4476:   52(float) CompositeExtract 4474 2
-            4477:6(float16_t) ImageSampleDrefImplicitLod 4473 4474 4476 MinLod 4475
-            4478:    208(ptr) AccessChain 4401(texel) 207
-            4479:6(float16_t) Load 4478
-            4480:6(float16_t) FAdd 4479 4477
-            4481:    208(ptr) AccessChain 4401(texel) 207
-                              Store 4481 4480
-            4482:         224 Load 226(s2DShadow)
-            4483:154(f16vec2) Load 156(f16c2)
-            4484:   52(float) Load 215(compare)
-            4485:6(float16_t) Load 4274(f16lodClamp)
-            4486:6(float16_t) Load 137(f16bias)
-            4487:6(float16_t) ImageSampleDrefImplicitLod 4482 4483 4484 Bias MinLod 4486 4485
-            4488:    208(ptr) AccessChain 4401(texel) 207
-            4489:6(float16_t) Load 4488
-            4490:6(float16_t) FAdd 4489 4487
-            4491:    208(ptr) AccessChain 4401(texel) 207
-                              Store 4491 4490
-            4492:         245 Load 247(sCubeShadow)
-            4493:  249(fvec4) Load 251(c4)
-            4494:   52(float) Load 4267(lodClamp)
-            4495:   52(float) CompositeExtract 4493 3
-            4496:6(float16_t) ImageSampleDrefImplicitLod 4492 4493 4495 MinLod 4494
-            4497:    208(ptr) AccessChain 4401(texel) 207
-            4498:6(float16_t) Load 4497
-            4499:6(float16_t) FAdd 4498 4496
-            4500:    208(ptr) AccessChain 4401(texel) 207
-                              Store 4500 4499
-            4501:         245 Load 247(sCubeShadow)
-            4502:175(f16vec3) Load 177(f16c3)
-            4503:   52(float) Load 215(compare)
-            4504:6(float16_t) Load 4274(f16lodClamp)
-            4505:6(float16_t) Load 137(f16bias)
-            4506:6(float16_t) ImageSampleDrefImplicitLod 4501 4502 4503 Bias MinLod 4505 4504
-            4507:    208(ptr) AccessChain 4401(texel) 207
-            4508:6(float16_t) Load 4507
-            4509:6(float16_t) FAdd 4508 4506
-            4510:    208(ptr) AccessChain 4401(texel) 207
-                              Store 4510 4509
-            4511:         269 Load 271(s1DArray)
-            4512:   53(fvec2) Load 148(c2)
-            4513:   52(float) Load 4267(lodClamp)
-            4514:  7(f16vec4) ImageSampleImplicitLod 4511 4512 MinLod 4513
-            4515:  7(f16vec4) Load 4401(texel)
-            4516:  7(f16vec4) FAdd 4515 4514
-                              Store 4401(texel) 4516
-            4517:         269 Load 271(s1DArray)
-            4518:154(f16vec2) Load 156(f16c2)
-            4519:6(float16_t) Load 4274(f16lodClamp)
-            4520:6(float16_t) Load 137(f16bias)
-            4521:  7(f16vec4) ImageSampleImplicitLod 4517 4518 Bias MinLod 4520 4519
-            4522:  7(f16vec4) Load 4401(texel)
-            4523:  7(f16vec4) FAdd 4522 4521
-                              Store 4401(texel) 4523
-            4524:         284 Load 286(s2DArray)
-            4525:  167(fvec3) Load 169(c3)
-            4526:   52(float) Load 4267(lodClamp)
-            4527:  7(f16vec4) ImageSampleImplicitLod 4524 4525 MinLod 4526
-            4528:  7(f16vec4) Load 4401(texel)
-            4529:  7(f16vec4) FAdd 4528 4527
-                              Store 4401(texel) 4529
-            4530:         284 Load 286(s2DArray)
-            4531:175(f16vec3) Load 177(f16c3)
-            4532:6(float16_t) Load 4274(f16lodClamp)
-            4533:6(float16_t) Load 137(f16bias)
-            4534:  7(f16vec4) ImageSampleImplicitLod 4530 4531 Bias MinLod 4533 4532
-            4535:  7(f16vec4) Load 4401(texel)
-            4536:  7(f16vec4) FAdd 4535 4534
-                              Store 4401(texel) 4536
-            4537:         299 Load 301(sCubeArray)
-            4538:  249(fvec4) Load 251(c4)
-            4539:   52(float) Load 4267(lodClamp)
-            4540:  7(f16vec4) ImageSampleImplicitLod 4537 4538 MinLod 4539
-            4541:  7(f16vec4) Load 4401(texel)
-            4542:  7(f16vec4) FAdd 4541 4540
-                              Store 4401(texel) 4542
-            4543:         299 Load 301(sCubeArray)
-            4544:  7(f16vec4) Load 309(f16c4)
-            4545:6(float16_t) Load 4274(f16lodClamp)
-            4546:6(float16_t) Load 137(f16bias)
-            4547:  7(f16vec4) ImageSampleImplicitLod 4543 4544 Bias MinLod 4546 4545
-            4548:  7(f16vec4) Load 4401(texel)
-            4549:  7(f16vec4) FAdd 4548 4547
-                              Store 4401(texel) 4549
-            4550:         316 Load 318(s1DArrayShadow)
-            4551:  167(fvec3) Load 169(c3)
-            4552:   52(float) Load 4267(lodClamp)
-            4553:   52(float) CompositeExtract 4551 2
-            4554:6(float16_t) ImageSampleDrefImplicitLod 4550 4551 4553 MinLod 4552
-            4555:    208(ptr) AccessChain 4401(texel) 207
-            4556:6(float16_t) Load 4555
-            4557:6(float16_t) FAdd 4556 4554
-            4558:    208(ptr) AccessChain 4401(texel) 207
-                              Store 4558 4557
-            4559:         316 Load 318(s1DArrayShadow)
-            4560:154(f16vec2) Load 156(f16c2)
-            4561:   52(float) Load 215(compare)
-            4562:6(float16_t) Load 4274(f16lodClamp)
-            4563:6(float16_t) Load 137(f16bias)
-            4564:6(float16_t) ImageSampleDrefImplicitLod 4559 4560 4561 Bias MinLod 4563 4562
-            4565:    208(ptr) AccessChain 4401(texel) 207
-            4566:6(float16_t) Load 4565
-            4567:6(float16_t) FAdd 4566 4564
-            4568:    208(ptr) AccessChain 4401(texel) 207
-                              Store 4568 4567
-            4569:         337 Load 339(s2DArrayShadow)
-            4570:  249(fvec4) Load 251(c4)
-            4571:   52(float) Load 4267(lodClamp)
-            4572:   52(float) CompositeExtract 4570 3
-            4573:6(float16_t) ImageSampleDrefImplicitLod 4569 4570 4572 MinLod 4571
-            4574:    208(ptr) AccessChain 4401(texel) 207
-            4575:6(float16_t) Load 4574
-            4576:6(float16_t) FAdd 4575 4573
-            4577:    208(ptr) AccessChain 4401(texel) 207
-                              Store 4577 4576
-            4578:         337 Load 339(s2DArrayShadow)
-            4579:175(f16vec3) Load 177(f16c3)
-            4580:   52(float) Load 215(compare)
-            4581:6(float16_t) Load 4274(f16lodClamp)
-            4582:6(float16_t) ImageSampleDrefImplicitLod 4578 4579 4580 MinLod 4581
-            4583:    208(ptr) AccessChain 4401(texel) 207
-            4584:6(float16_t) Load 4583
-            4585:6(float16_t) FAdd 4584 4582
-            4586:    208(ptr) AccessChain 4401(texel) 207
-                              Store 4586 4585
-            4587:         391 Load 393(sCubeArrayShadow)
-            4588:  249(fvec4) Load 251(c4)
-            4589:   52(float) Load 215(compare)
-            4590:   52(float) Load 4267(lodClamp)
-            4591:6(float16_t) ImageSampleDrefImplicitLod 4587 4588 4589 MinLod 4590
-            4592:    208(ptr) AccessChain 4401(texel) 207
-            4593:6(float16_t) Load 4592
-            4594:6(float16_t) FAdd 4593 4591
-            4595:    208(ptr) AccessChain 4401(texel) 207
-                              Store 4595 4594
-            4596:         391 Load 393(sCubeArrayShadow)
-            4597:  7(f16vec4) Load 309(f16c4)
-            4598:   52(float) Load 215(compare)
-            4599:6(float16_t) Load 4274(f16lodClamp)
-            4600:6(float16_t) ImageSampleDrefImplicitLod 4596 4597 4598 MinLod 4599
-            4601:    208(ptr) AccessChain 4401(texel) 207
-            4602:6(float16_t) Load 4601
-            4603:6(float16_t) FAdd 4602 4600
-            4604:    208(ptr) AccessChain 4401(texel) 207
-                              Store 4604 4603
-            4605:  7(f16vec4) Load 4401(texel)
-                              ReturnValue 4605
+     4445(texel):     64(ptr) Variable Function
+                              Store 4445(texel) 121
+            4446:         123 Load 125(s1D)
+            4447:   52(float) Load 128(c1)
+            4448:   52(float) Load 4311(lodClamp)
+            4449:  7(f16vec4) ImageSampleImplicitLod 4446 4447 MinLod 4448
+            4450:  7(f16vec4) Load 4445(texel)
+            4451:  7(f16vec4) FAdd 4450 4449
+                              Store 4445(texel) 4451
+            4452:         123 Load 125(s1D)
+            4453:6(float16_t) Load 135(f16c1)
+            4454:6(float16_t) Load 4318(f16lodClamp)
+            4455:6(float16_t) Load 137(f16bias)
+            4456:  7(f16vec4) ImageSampleImplicitLod 4452 4453 Bias MinLod 4455 4454
+            4457:  7(f16vec4) Load 4445(texel)
+            4458:  7(f16vec4) FAdd 4457 4456
+                              Store 4445(texel) 4458
+            4459:         143 Load 145(s2D)
+            4460:   53(fvec2) Load 148(c2)
+            4461:   52(float) Load 4311(lodClamp)
+            4462:  7(f16vec4) ImageSampleImplicitLod 4459 4460 MinLod 4461
+            4463:  7(f16vec4) Load 4445(texel)
+            4464:  7(f16vec4) FAdd 4463 4462
+                              Store 4445(texel) 4464
+            4465:         143 Load 145(s2D)
+            4466:154(f16vec2) Load 156(f16c2)
+            4467:6(float16_t) Load 4318(f16lodClamp)
+            4468:6(float16_t) Load 137(f16bias)
+            4469:  7(f16vec4) ImageSampleImplicitLod 4465 4466 Bias MinLod 4468 4467
+            4470:  7(f16vec4) Load 4445(texel)
+            4471:  7(f16vec4) FAdd 4470 4469
+                              Store 4445(texel) 4471
+            4472:         163 Load 165(s3D)
+            4473:  167(fvec3) Load 169(c3)
+            4474:   52(float) Load 4311(lodClamp)
+            4475:  7(f16vec4) ImageSampleImplicitLod 4472 4473 MinLod 4474
+            4476:  7(f16vec4) Load 4445(texel)
+            4477:  7(f16vec4) FAdd 4476 4475
+                              Store 4445(texel) 4477
+            4478:         163 Load 165(s3D)
+            4479:175(f16vec3) Load 177(f16c3)
+            4480:6(float16_t) Load 4318(f16lodClamp)
+            4481:6(float16_t) Load 137(f16bias)
+            4482:  7(f16vec4) ImageSampleImplicitLod 4478 4479 Bias MinLod 4481 4480
+            4483:  7(f16vec4) Load 4445(texel)
+            4484:  7(f16vec4) FAdd 4483 4482
+                              Store 4445(texel) 4484
+            4485:         184 Load 186(sCube)
+            4486:  167(fvec3) Load 169(c3)
+            4487:   52(float) Load 4311(lodClamp)
+            4488:  7(f16vec4) ImageSampleImplicitLod 4485 4486 MinLod 4487
+            4489:  7(f16vec4) Load 4445(texel)
+            4490:  7(f16vec4) FAdd 4489 4488
+                              Store 4445(texel) 4490
+            4491:         184 Load 186(sCube)
+            4492:175(f16vec3) Load 177(f16c3)
+            4493:6(float16_t) Load 4318(f16lodClamp)
+            4494:6(float16_t) Load 137(f16bias)
+            4495:  7(f16vec4) ImageSampleImplicitLod 4491 4492 Bias MinLod 4494 4493
+            4496:  7(f16vec4) Load 4445(texel)
+            4497:  7(f16vec4) FAdd 4496 4495
+                              Store 4445(texel) 4497
+            4498:         199 Load 201(s1DShadow)
+            4499:  167(fvec3) Load 169(c3)
+            4500:   52(float) Load 4311(lodClamp)
+            4501:   52(float) CompositeExtract 4499 2
+            4502:6(float16_t) ImageSampleDrefImplicitLod 4498 4499 4501 MinLod 4500
+            4503:    208(ptr) AccessChain 4445(texel) 207
+            4504:6(float16_t) Load 4503
+            4505:6(float16_t) FAdd 4504 4502
+            4506:    208(ptr) AccessChain 4445(texel) 207
+                              Store 4506 4505
+            4507:         199 Load 201(s1DShadow)
+            4508:154(f16vec2) Load 156(f16c2)
+            4509:   52(float) Load 215(compare)
+            4510:6(float16_t) Load 4318(f16lodClamp)
+            4511:6(float16_t) Load 137(f16bias)
+            4512:6(float16_t) ImageSampleDrefImplicitLod 4507 4508 4509 Bias MinLod 4511 4510
+            4513:    208(ptr) AccessChain 4445(texel) 207
+            4514:6(float16_t) Load 4513
+            4515:6(float16_t) FAdd 4514 4512
+            4516:    208(ptr) AccessChain 4445(texel) 207
+                              Store 4516 4515
+            4517:         224 Load 226(s2DShadow)
+            4518:  167(fvec3) Load 169(c3)
+            4519:   52(float) Load 4311(lodClamp)
+            4520:   52(float) CompositeExtract 4518 2
+            4521:6(float16_t) ImageSampleDrefImplicitLod 4517 4518 4520 MinLod 4519
+            4522:    208(ptr) AccessChain 4445(texel) 207
+            4523:6(float16_t) Load 4522
+            4524:6(float16_t) FAdd 4523 4521
+            4525:    208(ptr) AccessChain 4445(texel) 207
+                              Store 4525 4524
+            4526:         224 Load 226(s2DShadow)
+            4527:154(f16vec2) Load 156(f16c2)
+            4528:   52(float) Load 215(compare)
+            4529:6(float16_t) Load 4318(f16lodClamp)
+            4530:6(float16_t) Load 137(f16bias)
+            4531:6(float16_t) ImageSampleDrefImplicitLod 4526 4527 4528 Bias MinLod 4530 4529
+            4532:    208(ptr) AccessChain 4445(texel) 207
+            4533:6(float16_t) Load 4532
+            4534:6(float16_t) FAdd 4533 4531
+            4535:    208(ptr) AccessChain 4445(texel) 207
+                              Store 4535 4534
+            4536:         245 Load 247(sCubeShadow)
+            4537:  249(fvec4) Load 251(c4)
+            4538:   52(float) Load 4311(lodClamp)
+            4539:   52(float) CompositeExtract 4537 3
+            4540:6(float16_t) ImageSampleDrefImplicitLod 4536 4537 4539 MinLod 4538
+            4541:    208(ptr) AccessChain 4445(texel) 207
+            4542:6(float16_t) Load 4541
+            4543:6(float16_t) FAdd 4542 4540
+            4544:    208(ptr) AccessChain 4445(texel) 207
+                              Store 4544 4543
+            4545:         245 Load 247(sCubeShadow)
+            4546:175(f16vec3) Load 177(f16c3)
+            4547:   52(float) Load 215(compare)
+            4548:6(float16_t) Load 4318(f16lodClamp)
+            4549:6(float16_t) Load 137(f16bias)
+            4550:6(float16_t) ImageSampleDrefImplicitLod 4545 4546 4547 Bias MinLod 4549 4548
+            4551:    208(ptr) AccessChain 4445(texel) 207
+            4552:6(float16_t) Load 4551
+            4553:6(float16_t) FAdd 4552 4550
+            4554:    208(ptr) AccessChain 4445(texel) 207
+                              Store 4554 4553
+            4555:         269 Load 271(s1DArray)
+            4556:   53(fvec2) Load 148(c2)
+            4557:   52(float) Load 4311(lodClamp)
+            4558:  7(f16vec4) ImageSampleImplicitLod 4555 4556 MinLod 4557
+            4559:  7(f16vec4) Load 4445(texel)
+            4560:  7(f16vec4) FAdd 4559 4558
+                              Store 4445(texel) 4560
+            4561:         269 Load 271(s1DArray)
+            4562:154(f16vec2) Load 156(f16c2)
+            4563:6(float16_t) Load 4318(f16lodClamp)
+            4564:6(float16_t) Load 137(f16bias)
+            4565:  7(f16vec4) ImageSampleImplicitLod 4561 4562 Bias MinLod 4564 4563
+            4566:  7(f16vec4) Load 4445(texel)
+            4567:  7(f16vec4) FAdd 4566 4565
+                              Store 4445(texel) 4567
+            4568:         284 Load 286(s2DArray)
+            4569:  167(fvec3) Load 169(c3)
+            4570:   52(float) Load 4311(lodClamp)
+            4571:  7(f16vec4) ImageSampleImplicitLod 4568 4569 MinLod 4570
+            4572:  7(f16vec4) Load 4445(texel)
+            4573:  7(f16vec4) FAdd 4572 4571
+                              Store 4445(texel) 4573
+            4574:         284 Load 286(s2DArray)
+            4575:175(f16vec3) Load 177(f16c3)
+            4576:6(float16_t) Load 4318(f16lodClamp)
+            4577:6(float16_t) Load 137(f16bias)
+            4578:  7(f16vec4) ImageSampleImplicitLod 4574 4575 Bias MinLod 4577 4576
+            4579:  7(f16vec4) Load 4445(texel)
+            4580:  7(f16vec4) FAdd 4579 4578
+                              Store 4445(texel) 4580
+            4581:         299 Load 301(sCubeArray)
+            4582:  249(fvec4) Load 251(c4)
+            4583:   52(float) Load 4311(lodClamp)
+            4584:  7(f16vec4) ImageSampleImplicitLod 4581 4582 MinLod 4583
+            4585:  7(f16vec4) Load 4445(texel)
+            4586:  7(f16vec4) FAdd 4585 4584
+                              Store 4445(texel) 4586
+            4587:         299 Load 301(sCubeArray)
+            4588:  7(f16vec4) Load 309(f16c4)
+            4589:6(float16_t) Load 4318(f16lodClamp)
+            4590:6(float16_t) Load 137(f16bias)
+            4591:  7(f16vec4) ImageSampleImplicitLod 4587 4588 Bias MinLod 4590 4589
+            4592:  7(f16vec4) Load 4445(texel)
+            4593:  7(f16vec4) FAdd 4592 4591
+                              Store 4445(texel) 4593
+            4594:         316 Load 318(s1DArrayShadow)
+            4595:  167(fvec3) Load 169(c3)
+            4596:   52(float) Load 4311(lodClamp)
+            4597:   52(float) CompositeExtract 4595 2
+            4598:6(float16_t) ImageSampleDrefImplicitLod 4594 4595 4597 MinLod 4596
+            4599:    208(ptr) AccessChain 4445(texel) 207
+            4600:6(float16_t) Load 4599
+            4601:6(float16_t) FAdd 4600 4598
+            4602:    208(ptr) AccessChain 4445(texel) 207
+                              Store 4602 4601
+            4603:         316 Load 318(s1DArrayShadow)
+            4604:154(f16vec2) Load 156(f16c2)
+            4605:   52(float) Load 215(compare)
+            4606:6(float16_t) Load 4318(f16lodClamp)
+            4607:6(float16_t) Load 137(f16bias)
+            4608:6(float16_t) ImageSampleDrefImplicitLod 4603 4604 4605 Bias MinLod 4607 4606
+            4609:    208(ptr) AccessChain 4445(texel) 207
+            4610:6(float16_t) Load 4609
+            4611:6(float16_t) FAdd 4610 4608
+            4612:    208(ptr) AccessChain 4445(texel) 207
+                              Store 4612 4611
+            4613:         337 Load 339(s2DArrayShadow)
+            4614:  249(fvec4) Load 251(c4)
+            4615:   52(float) Load 4311(lodClamp)
+            4616:   52(float) CompositeExtract 4614 3
+            4617:6(float16_t) ImageSampleDrefImplicitLod 4613 4614 4616 MinLod 4615
+            4618:    208(ptr) AccessChain 4445(texel) 207
+            4619:6(float16_t) Load 4618
+            4620:6(float16_t) FAdd 4619 4617
+            4621:    208(ptr) AccessChain 4445(texel) 207
+                              Store 4621 4620
+            4622:         337 Load 339(s2DArrayShadow)
+            4623:175(f16vec3) Load 177(f16c3)
+            4624:   52(float) Load 215(compare)
+            4625:6(float16_t) Load 4318(f16lodClamp)
+            4626:6(float16_t) ImageSampleDrefImplicitLod 4622 4623 4624 MinLod 4625
+            4627:    208(ptr) AccessChain 4445(texel) 207
+            4628:6(float16_t) Load 4627
+            4629:6(float16_t) FAdd 4628 4626
+            4630:    208(ptr) AccessChain 4445(texel) 207
+                              Store 4630 4629
+            4631:         391 Load 393(sCubeArrayShadow)
+            4632:  249(fvec4) Load 251(c4)
+            4633:   52(float) Load 215(compare)
+            4634:   52(float) Load 4311(lodClamp)
+            4635:6(float16_t) ImageSampleDrefImplicitLod 4631 4632 4633 MinLod 4634
+            4636:    208(ptr) AccessChain 4445(texel) 207
+            4637:6(float16_t) Load 4636
+            4638:6(float16_t) FAdd 4637 4635
+            4639:    208(ptr) AccessChain 4445(texel) 207
+                              Store 4639 4638
+            4640:         391 Load 393(sCubeArrayShadow)
+            4641:  7(f16vec4) Load 309(f16c4)
+            4642:   52(float) Load 215(compare)
+            4643:6(float16_t) Load 4318(f16lodClamp)
+            4644:6(float16_t) ImageSampleDrefImplicitLod 4640 4641 4642 MinLod 4643
+            4645:    208(ptr) AccessChain 4445(texel) 207
+            4646:6(float16_t) Load 4645
+            4647:6(float16_t) FAdd 4646 4644
+            4648:    208(ptr) AccessChain 4445(texel) 207
+                              Store 4648 4647
+            4649:  7(f16vec4) Load 4445(texel)
+                              ReturnValue 4649
                               FunctionEnd
 103(testSparseTextureOffsetClamp():  7(f16vec4) Function None 8
              104:             Label
-     4608(texel):     64(ptr) Variable Function
-                              Store 4608(texel) 121
-            4609:         143 Load 145(s2D)
-            4610:   53(fvec2) Load 148(c2)
-            4611:   52(float) Load 4267(lodClamp)
-            4612:3102(ResType) ImageSparseSampleImplicitLod 4609 4610 ConstOffset MinLod 722 4611
-            4613:  7(f16vec4) CompositeExtract 4612 1
-                              Store 4608(texel) 4613
-            4614:     47(int) CompositeExtract 4612 0
-            4615:         143 Load 145(s2D)
-            4616:154(f16vec2) Load 156(f16c2)
-            4617:6(float16_t) Load 4274(f16lodClamp)
-            4618:6(float16_t) Load 137(f16bias)
-            4619:3102(ResType) ImageSparseSampleImplicitLod 4615 4616 Bias ConstOffset MinLod 4618 722 4617
-            4620:  7(f16vec4) CompositeExtract 4619 1
-                              Store 4608(texel) 4620
-            4621:     47(int) CompositeExtract 4619 0
-            4622:         163 Load 165(s3D)
-            4623:  167(fvec3) Load 169(c3)
-            4624:   52(float) Load 4267(lodClamp)
-            4625:3102(ResType) ImageSparseSampleImplicitLod 4622 4623 ConstOffset MinLod 735 4624
-            4626:  7(f16vec4) CompositeExtract 4625 1
-                              Store 4608(texel) 4626
-            4627:     47(int) CompositeExtract 4625 0
-            4628:         163 Load 165(s3D)
-            4629:175(f16vec3) Load 177(f16c3)
-            4630:6(float16_t) Load 4274(f16lodClamp)
-            4631:6(float16_t) Load 137(f16bias)
-            4632:3102(ResType) ImageSparseSampleImplicitLod 4628 4629 Bias ConstOffset MinLod 4631 735 4630
-            4633:  7(f16vec4) CompositeExtract 4632 1
-                              Store 4608(texel) 4633
-            4634:     47(int) CompositeExtract 4632 0
-            4635:         224 Load 226(s2DShadow)
-            4636:  167(fvec3) Load 169(c3)
-            4637:   52(float) Load 4267(lodClamp)
-            4638:    208(ptr) AccessChain 4608(texel) 207
-            4639:   52(float) CompositeExtract 4636 2
-            4640:3138(ResType) ImageSparseSampleDrefImplicitLod 4635 4636 4639 ConstOffset MinLod 722 4637
-            4641:6(float16_t) CompositeExtract 4640 1
-                              Store 4638 4641
-            4642:     47(int) CompositeExtract 4640 0
-            4643:         224 Load 226(s2DShadow)
-            4644:154(f16vec2) Load 156(f16c2)
-            4645:   52(float) Load 215(compare)
-            4646:6(float16_t) Load 4274(f16lodClamp)
-            4647:    208(ptr) AccessChain 4608(texel) 207
-            4648:6(float16_t) Load 137(f16bias)
-            4649:3138(ResType) ImageSparseSampleDrefImplicitLod 4643 4644 4645 Bias ConstOffset MinLod 4648 722 4646
-            4650:6(float16_t) CompositeExtract 4649 1
-                              Store 4647 4650
-            4651:     47(int) CompositeExtract 4649 0
-            4652:         284 Load 286(s2DArray)
-            4653:  167(fvec3) Load 169(c3)
-            4654:   52(float) Load 4267(lodClamp)
-            4655:3102(ResType) ImageSparseSampleImplicitLod 4652 4653 ConstOffset MinLod 722 4654
-            4656:  7(f16vec4) CompositeExtract 4655 1
-                              Store 4608(texel) 4656
-            4657:     47(int) CompositeExtract 4655 0
-            4658:         284 Load 286(s2DArray)
-            4659:175(f16vec3) Load 177(f16c3)
-            4660:6(float16_t) Load 4274(f16lodClamp)
-            4661:6(float16_t) Load 137(f16bias)
-            4662:3102(ResType) ImageSparseSampleImplicitLod 4658 4659 Bias ConstOffset MinLod 4661 722 4660
-            4663:  7(f16vec4) CompositeExtract 4662 1
-                              Store 4608(texel) 4663
-            4664:     47(int) CompositeExtract 4662 0
-            4665:         337 Load 339(s2DArrayShadow)
-            4666:  249(fvec4) Load 251(c4)
-            4667:   52(float) Load 4267(lodClamp)
-            4668:    208(ptr) AccessChain 4608(texel) 207
-            4669:   52(float) CompositeExtract 4666 3
-            4670:3138(ResType) ImageSparseSampleDrefImplicitLod 4665 4666 4669 ConstOffset MinLod 722 4667
-            4671:6(float16_t) CompositeExtract 4670 1
-                              Store 4668 4671
-            4672:     47(int) CompositeExtract 4670 0
-            4673:         337 Load 339(s2DArrayShadow)
-            4674:175(f16vec3) Load 177(f16c3)
-            4675:   52(float) Load 215(compare)
-            4676:6(float16_t) Load 4274(f16lodClamp)
-            4677:    208(ptr) AccessChain 4608(texel) 207
-            4678:3138(ResType) ImageSparseSampleDrefImplicitLod 4673 4674 4675 ConstOffset MinLod 722 4676
-            4679:6(float16_t) CompositeExtract 4678 1
-                              Store 4677 4679
-            4680:     47(int) CompositeExtract 4678 0
-            4681:  7(f16vec4) Load 4608(texel)
-                              ReturnValue 4681
+     4652(texel):     64(ptr) Variable Function
+                              Store 4652(texel) 121
+            4653:         143 Load 145(s2D)
+            4654:   53(fvec2) Load 148(c2)
+            4655:   52(float) Load 4311(lodClamp)
+            4656:3146(ResType) ImageSparseSampleImplicitLod 4653 4654 ConstOffset MinLod 722 4655
+            4657:  7(f16vec4) CompositeExtract 4656 1
+                              Store 4652(texel) 4657
+            4658:     47(int) CompositeExtract 4656 0
+            4659:         143 Load 145(s2D)
+            4660:154(f16vec2) Load 156(f16c2)
+            4661:6(float16_t) Load 4318(f16lodClamp)
+            4662:6(float16_t) Load 137(f16bias)
+            4663:3146(ResType) ImageSparseSampleImplicitLod 4659 4660 Bias ConstOffset MinLod 4662 722 4661
+            4664:  7(f16vec4) CompositeExtract 4663 1
+                              Store 4652(texel) 4664
+            4665:     47(int) CompositeExtract 4663 0
+            4666:         163 Load 165(s3D)
+            4667:  167(fvec3) Load 169(c3)
+            4668:   52(float) Load 4311(lodClamp)
+            4669:3146(ResType) ImageSparseSampleImplicitLod 4666 4667 ConstOffset MinLod 735 4668
+            4670:  7(f16vec4) CompositeExtract 4669 1
+                              Store 4652(texel) 4670
+            4671:     47(int) CompositeExtract 4669 0
+            4672:         163 Load 165(s3D)
+            4673:175(f16vec3) Load 177(f16c3)
+            4674:6(float16_t) Load 4318(f16lodClamp)
+            4675:6(float16_t) Load 137(f16bias)
+            4676:3146(ResType) ImageSparseSampleImplicitLod 4672 4673 Bias ConstOffset MinLod 4675 735 4674
+            4677:  7(f16vec4) CompositeExtract 4676 1
+                              Store 4652(texel) 4677
+            4678:     47(int) CompositeExtract 4676 0
+            4679:         224 Load 226(s2DShadow)
+            4680:  167(fvec3) Load 169(c3)
+            4681:   52(float) Load 4311(lodClamp)
+            4682:    208(ptr) AccessChain 4652(texel) 207
+            4683:   52(float) CompositeExtract 4680 2
+            4684:3182(ResType) ImageSparseSampleDrefImplicitLod 4679 4680 4683 ConstOffset MinLod 722 4681
+            4685:6(float16_t) CompositeExtract 4684 1
+                              Store 4682 4685
+            4686:     47(int) CompositeExtract 4684 0
+            4687:         224 Load 226(s2DShadow)
+            4688:154(f16vec2) Load 156(f16c2)
+            4689:   52(float) Load 215(compare)
+            4690:6(float16_t) Load 4318(f16lodClamp)
+            4691:    208(ptr) AccessChain 4652(texel) 207
+            4692:6(float16_t) Load 137(f16bias)
+            4693:3182(ResType) ImageSparseSampleDrefImplicitLod 4687 4688 4689 Bias ConstOffset MinLod 4692 722 4690
+            4694:6(float16_t) CompositeExtract 4693 1
+                              Store 4691 4694
+            4695:     47(int) CompositeExtract 4693 0
+            4696:         284 Load 286(s2DArray)
+            4697:  167(fvec3) Load 169(c3)
+            4698:   52(float) Load 4311(lodClamp)
+            4699:3146(ResType) ImageSparseSampleImplicitLod 4696 4697 ConstOffset MinLod 722 4698
+            4700:  7(f16vec4) CompositeExtract 4699 1
+                              Store 4652(texel) 4700
+            4701:     47(int) CompositeExtract 4699 0
+            4702:         284 Load 286(s2DArray)
+            4703:175(f16vec3) Load 177(f16c3)
+            4704:6(float16_t) Load 4318(f16lodClamp)
+            4705:6(float16_t) Load 137(f16bias)
+            4706:3146(ResType) ImageSparseSampleImplicitLod 4702 4703 Bias ConstOffset MinLod 4705 722 4704
+            4707:  7(f16vec4) CompositeExtract 4706 1
+                              Store 4652(texel) 4707
+            4708:     47(int) CompositeExtract 4706 0
+            4709:         337 Load 339(s2DArrayShadow)
+            4710:  249(fvec4) Load 251(c4)
+            4711:   52(float) Load 4311(lodClamp)
+            4712:    208(ptr) AccessChain 4652(texel) 207
+            4713:   52(float) CompositeExtract 4710 3
+            4714:3182(ResType) ImageSparseSampleDrefImplicitLod 4709 4710 4713 ConstOffset MinLod 722 4711
+            4715:6(float16_t) CompositeExtract 4714 1
+                              Store 4712 4715
+            4716:     47(int) CompositeExtract 4714 0
+            4717:         337 Load 339(s2DArrayShadow)
+            4718:175(f16vec3) Load 177(f16c3)
+            4719:   52(float) Load 215(compare)
+            4720:6(float16_t) Load 4318(f16lodClamp)
+            4721:    208(ptr) AccessChain 4652(texel) 207
+            4722:3182(ResType) ImageSparseSampleDrefImplicitLod 4717 4718 4719 ConstOffset MinLod 722 4720
+            4723:6(float16_t) CompositeExtract 4722 1
+                              Store 4721 4723
+            4724:     47(int) CompositeExtract 4722 0
+            4725:  7(f16vec4) Load 4652(texel)
+                              ReturnValue 4725
                               FunctionEnd
 105(testTextureOffsetClamp():  7(f16vec4) Function None 8
              106:             Label
-     4684(texel):     64(ptr) Variable Function
-                              Store 4684(texel) 121
-            4685:         123 Load 125(s1D)
-            4686:   52(float) Load 128(c1)
-            4687:   52(float) Load 4267(lodClamp)
-            4688:  7(f16vec4) ImageSampleImplicitLod 4685 4686 ConstOffset MinLod 709 4687
-            4689:  7(f16vec4) Load 4684(texel)
-            4690:  7(f16vec4) FAdd 4689 4688
-                              Store 4684(texel) 4690
-            4691:         123 Load 125(s1D)
-            4692:6(float16_t) Load 135(f16c1)
-            4693:6(float16_t) Load 4274(f16lodClamp)
-            4694:6(float16_t) Load 137(f16bias)
-            4695:  7(f16vec4) ImageSampleImplicitLod 4691 4692 Bias ConstOffset MinLod 4694 709 4693
-            4696:  7(f16vec4) Load 4684(texel)
-            4697:  7(f16vec4) FAdd 4696 4695
-                              Store 4684(texel) 4697
-            4698:         143 Load 145(s2D)
-            4699:   53(fvec2) Load 148(c2)
-            4700:   52(float) Load 4267(lodClamp)
-            4701:  7(f16vec4) ImageSampleImplicitLod 4698 4699 ConstOffset MinLod 722 4700
-            4702:  7(f16vec4) Load 4684(texel)
-            4703:  7(f16vec4) FAdd 4702 4701
-                              Store 4684(texel) 4703
-            4704:         143 Load 145(s2D)
-            4705:154(f16vec2) Load 156(f16c2)
-            4706:6(float16_t) Load 4274(f16lodClamp)
-            4707:6(float16_t) Load 137(f16bias)
-            4708:  7(f16vec4) ImageSampleImplicitLod 4704 4705 Bias ConstOffset MinLod 4707 722 4706
-            4709:  7(f16vec4) Load 4684(texel)
-            4710:  7(f16vec4) FAdd 4709 4708
-                              Store 4684(texel) 4710
-            4711:         163 Load 165(s3D)
-            4712:  167(fvec3) Load 169(c3)
-            4713:   52(float) Load 4267(lodClamp)
-            4714:  7(f16vec4) ImageSampleImplicitLod 4711 4712 ConstOffset MinLod 735 4713
-            4715:  7(f16vec4) Load 4684(texel)
-            4716:  7(f16vec4) FAdd 4715 4714
-                              Store 4684(texel) 4716
-            4717:         163 Load 165(s3D)
-            4718:175(f16vec3) Load 177(f16c3)
-            4719:6(float16_t) Load 4274(f16lodClamp)
-            4720:6(float16_t) Load 137(f16bias)
-            4721:  7(f16vec4) ImageSampleImplicitLod 4717 4718 Bias ConstOffset MinLod 4720 735 4719
-            4722:  7(f16vec4) Load 4684(texel)
-            4723:  7(f16vec4) FAdd 4722 4721
-                              Store 4684(texel) 4723
-            4724:         199 Load 201(s1DShadow)
-            4725:  167(fvec3) Load 169(c3)
-            4726:   52(float) Load 4267(lodClamp)
-            4727:   52(float) CompositeExtract 4725 2
-            4728:6(float16_t) ImageSampleDrefImplicitLod 4724 4725 4727 ConstOffset MinLod 709 4726
-            4729:    208(ptr) AccessChain 4684(texel) 207
-            4730:6(float16_t) Load 4729
-            4731:6(float16_t) FAdd 4730 4728
-            4732:    208(ptr) AccessChain 4684(texel) 207
-                              Store 4732 4731
-            4733:         199 Load 201(s1DShadow)
-            4734:154(f16vec2) Load 156(f16c2)
-            4735:   52(float) Load 215(compare)
-            4736:6(float16_t) Load 4274(f16lodClamp)
-            4737:6(float16_t) Load 137(f16bias)
-            4738:6(float16_t) ImageSampleDrefImplicitLod 4733 4734 4735 Bias ConstOffset MinLod 4737 709 4736
-            4739:    208(ptr) AccessChain 4684(texel) 207
-            4740:6(float16_t) Load 4739
-            4741:6(float16_t) FAdd 4740 4738
-            4742:    208(ptr) AccessChain 4684(texel) 207
-                              Store 4742 4741
-            4743:         224 Load 226(s2DShadow)
-            4744:  167(fvec3) Load 169(c3)
-            4745:   52(float) Load 4267(lodClamp)
-            4746:   52(float) CompositeExtract 4744 2
-            4747:6(float16_t) ImageSampleDrefImplicitLod 4743 4744 4746 ConstOffset MinLod 722 4745
-            4748:    208(ptr) AccessChain 4684(texel) 207
-            4749:6(float16_t) Load 4748
-            4750:6(float16_t) FAdd 4749 4747
-            4751:    208(ptr) AccessChain 4684(texel) 207
-                              Store 4751 4750
-            4752:         224 Load 226(s2DShadow)
-            4753:154(f16vec2) Load 156(f16c2)
-            4754:   52(float) Load 215(compare)
-            4755:6(float16_t) Load 4274(f16lodClamp)
-            4756:6(float16_t) Load 137(f16bias)
-            4757:6(float16_t) ImageSampleDrefImplicitLod 4752 4753 4754 Bias ConstOffset MinLod 4756 722 4755
-            4758:    208(ptr) AccessChain 4684(texel) 207
-            4759:6(float16_t) Load 4758
-            4760:6(float16_t) FAdd 4759 4757
-            4761:    208(ptr) AccessChain 4684(texel) 207
-                              Store 4761 4760
-            4762:         269 Load 271(s1DArray)
-            4763:   53(fvec2) Load 148(c2)
-            4764:   52(float) Load 4267(lodClamp)
-            4765:  7(f16vec4) ImageSampleImplicitLod 4762 4763 ConstOffset MinLod 709 4764
-            4766:  7(f16vec4) Load 4684(texel)
+     4728(texel):     64(ptr) Variable Function
+                              Store 4728(texel) 121
+            4729:         123 Load 125(s1D)
+            4730:   52(float) Load 128(c1)
+            4731:   52(float) Load 4311(lodClamp)
+            4732:  7(f16vec4) ImageSampleImplicitLod 4729 4730 ConstOffset MinLod 709 4731
+            4733:  7(f16vec4) Load 4728(texel)
+            4734:  7(f16vec4) FAdd 4733 4732
+                              Store 4728(texel) 4734
+            4735:         123 Load 125(s1D)
+            4736:6(float16_t) Load 135(f16c1)
+            4737:6(float16_t) Load 4318(f16lodClamp)
+            4738:6(float16_t) Load 137(f16bias)
+            4739:  7(f16vec4) ImageSampleImplicitLod 4735 4736 Bias ConstOffset MinLod 4738 709 4737
+            4740:  7(f16vec4) Load 4728(texel)
+            4741:  7(f16vec4) FAdd 4740 4739
+                              Store 4728(texel) 4741
+            4742:         143 Load 145(s2D)
+            4743:   53(fvec2) Load 148(c2)
+            4744:   52(float) Load 4311(lodClamp)
+            4745:  7(f16vec4) ImageSampleImplicitLod 4742 4743 ConstOffset MinLod 722 4744
+            4746:  7(f16vec4) Load 4728(texel)
+            4747:  7(f16vec4) FAdd 4746 4745
+                              Store 4728(texel) 4747
+            4748:         143 Load 145(s2D)
+            4749:154(f16vec2) Load 156(f16c2)
+            4750:6(float16_t) Load 4318(f16lodClamp)
+            4751:6(float16_t) Load 137(f16bias)
+            4752:  7(f16vec4) ImageSampleImplicitLod 4748 4749 Bias ConstOffset MinLod 4751 722 4750
+            4753:  7(f16vec4) Load 4728(texel)
+            4754:  7(f16vec4) FAdd 4753 4752
+                              Store 4728(texel) 4754
+            4755:         163 Load 165(s3D)
+            4756:  167(fvec3) Load 169(c3)
+            4757:   52(float) Load 4311(lodClamp)
+            4758:  7(f16vec4) ImageSampleImplicitLod 4755 4756 ConstOffset MinLod 735 4757
+            4759:  7(f16vec4) Load 4728(texel)
+            4760:  7(f16vec4) FAdd 4759 4758
+                              Store 4728(texel) 4760
+            4761:         163 Load 165(s3D)
+            4762:175(f16vec3) Load 177(f16c3)
+            4763:6(float16_t) Load 4318(f16lodClamp)
+            4764:6(float16_t) Load 137(f16bias)
+            4765:  7(f16vec4) ImageSampleImplicitLod 4761 4762 Bias ConstOffset MinLod 4764 735 4763
+            4766:  7(f16vec4) Load 4728(texel)
             4767:  7(f16vec4) FAdd 4766 4765
-                              Store 4684(texel) 4767
-            4768:         269 Load 271(s1DArray)
-            4769:154(f16vec2) Load 156(f16c2)
-            4770:6(float16_t) Load 4274(f16lodClamp)
-            4771:6(float16_t) Load 137(f16bias)
-            4772:  7(f16vec4) ImageSampleImplicitLod 4768 4769 Bias ConstOffset MinLod 4771 709 4770
-            4773:  7(f16vec4) Load 4684(texel)
-            4774:  7(f16vec4) FAdd 4773 4772
-                              Store 4684(texel) 4774
-            4775:         284 Load 286(s2DArray)
-            4776:  167(fvec3) Load 169(c3)
-            4777:   52(float) Load 4267(lodClamp)
-            4778:  7(f16vec4) ImageSampleImplicitLod 4775 4776 ConstOffset MinLod 722 4777
-            4779:  7(f16vec4) Load 4684(texel)
-            4780:  7(f16vec4) FAdd 4779 4778
-                              Store 4684(texel) 4780
-            4781:         284 Load 286(s2DArray)
-            4782:175(f16vec3) Load 177(f16c3)
-            4783:6(float16_t) Load 4274(f16lodClamp)
-            4784:6(float16_t) Load 137(f16bias)
-            4785:  7(f16vec4) ImageSampleImplicitLod 4781 4782 Bias ConstOffset MinLod 4784 722 4783
-            4786:  7(f16vec4) Load 4684(texel)
-            4787:  7(f16vec4) FAdd 4786 4785
-                              Store 4684(texel) 4787
-            4788:         316 Load 318(s1DArrayShadow)
-            4789:  167(fvec3) Load 169(c3)
-            4790:   52(float) Load 4267(lodClamp)
-            4791:   52(float) CompositeExtract 4789 2
-            4792:6(float16_t) ImageSampleDrefImplicitLod 4788 4789 4791 ConstOffset MinLod 709 4790
-            4793:    208(ptr) AccessChain 4684(texel) 207
-            4794:6(float16_t) Load 4793
-            4795:6(float16_t) FAdd 4794 4792
-            4796:    208(ptr) AccessChain 4684(texel) 207
-                              Store 4796 4795
-            4797:         316 Load 318(s1DArrayShadow)
-            4798:154(f16vec2) Load 156(f16c2)
-            4799:   52(float) Load 215(compare)
-            4800:6(float16_t) Load 4274(f16lodClamp)
-            4801:6(float16_t) Load 137(f16bias)
-            4802:6(float16_t) ImageSampleDrefImplicitLod 4797 4798 4799 Bias ConstOffset MinLod 4801 709 4800
-            4803:    208(ptr) AccessChain 4684(texel) 207
-            4804:6(float16_t) Load 4803
-            4805:6(float16_t) FAdd 4804 4802
-            4806:    208(ptr) AccessChain 4684(texel) 207
-                              Store 4806 4805
-            4807:         337 Load 339(s2DArrayShadow)
-            4808:  249(fvec4) Load 251(c4)
-            4809:   52(float) Load 4267(lodClamp)
-            4810:   52(float) CompositeExtract 4808 3
-            4811:6(float16_t) ImageSampleDrefImplicitLod 4807 4808 4810 ConstOffset MinLod 722 4809
-            4812:    208(ptr) AccessChain 4684(texel) 207
-            4813:6(float16_t) Load 4812
-            4814:6(float16_t) FAdd 4813 4811
-            4815:    208(ptr) AccessChain 4684(texel) 207
-                              Store 4815 4814
-            4816:         337 Load 339(s2DArrayShadow)
-            4817:175(f16vec3) Load 177(f16c3)
-            4818:   52(float) Load 215(compare)
-            4819:6(float16_t) Load 4274(f16lodClamp)
-            4820:6(float16_t) ImageSampleDrefImplicitLod 4816 4817 4818 ConstOffset MinLod 722 4819
-            4821:    208(ptr) AccessChain 4684(texel) 207
-            4822:6(float16_t) Load 4821
-            4823:6(float16_t) FAdd 4822 4820
-            4824:    208(ptr) AccessChain 4684(texel) 207
-                              Store 4824 4823
-            4825:  7(f16vec4) Load 4684(texel)
-                              ReturnValue 4825
+                              Store 4728(texel) 4767
+            4768:         199 Load 201(s1DShadow)
+            4769:  167(fvec3) Load 169(c3)
+            4770:   52(float) Load 4311(lodClamp)
+            4771:   52(float) CompositeExtract 4769 2
+            4772:6(float16_t) ImageSampleDrefImplicitLod 4768 4769 4771 ConstOffset MinLod 709 4770
+            4773:    208(ptr) AccessChain 4728(texel) 207
+            4774:6(float16_t) Load 4773
+            4775:6(float16_t) FAdd 4774 4772
+            4776:    208(ptr) AccessChain 4728(texel) 207
+                              Store 4776 4775
+            4777:         199 Load 201(s1DShadow)
+            4778:154(f16vec2) Load 156(f16c2)
+            4779:   52(float) Load 215(compare)
+            4780:6(float16_t) Load 4318(f16lodClamp)
+            4781:6(float16_t) Load 137(f16bias)
+            4782:6(float16_t) ImageSampleDrefImplicitLod 4777 4778 4779 Bias ConstOffset MinLod 4781 709 4780
+            4783:    208(ptr) AccessChain 4728(texel) 207
+            4784:6(float16_t) Load 4783
+            4785:6(float16_t) FAdd 4784 4782
+            4786:    208(ptr) AccessChain 4728(texel) 207
+                              Store 4786 4785
+            4787:         224 Load 226(s2DShadow)
+            4788:  167(fvec3) Load 169(c3)
+            4789:   52(float) Load 4311(lodClamp)
+            4790:   52(float) CompositeExtract 4788 2
+            4791:6(float16_t) ImageSampleDrefImplicitLod 4787 4788 4790 ConstOffset MinLod 722 4789
+            4792:    208(ptr) AccessChain 4728(texel) 207
+            4793:6(float16_t) Load 4792
+            4794:6(float16_t) FAdd 4793 4791
+            4795:    208(ptr) AccessChain 4728(texel) 207
+                              Store 4795 4794
+            4796:         224 Load 226(s2DShadow)
+            4797:154(f16vec2) Load 156(f16c2)
+            4798:   52(float) Load 215(compare)
+            4799:6(float16_t) Load 4318(f16lodClamp)
+            4800:6(float16_t) Load 137(f16bias)
+            4801:6(float16_t) ImageSampleDrefImplicitLod 4796 4797 4798 Bias ConstOffset MinLod 4800 722 4799
+            4802:    208(ptr) AccessChain 4728(texel) 207
+            4803:6(float16_t) Load 4802
+            4804:6(float16_t) FAdd 4803 4801
+            4805:    208(ptr) AccessChain 4728(texel) 207
+                              Store 4805 4804
+            4806:         269 Load 271(s1DArray)
+            4807:   53(fvec2) Load 148(c2)
+            4808:   52(float) Load 4311(lodClamp)
+            4809:  7(f16vec4) ImageSampleImplicitLod 4806 4807 ConstOffset MinLod 709 4808
+            4810:  7(f16vec4) Load 4728(texel)
+            4811:  7(f16vec4) FAdd 4810 4809
+                              Store 4728(texel) 4811
+            4812:         269 Load 271(s1DArray)
+            4813:154(f16vec2) Load 156(f16c2)
+            4814:6(float16_t) Load 4318(f16lodClamp)
+            4815:6(float16_t) Load 137(f16bias)
+            4816:  7(f16vec4) ImageSampleImplicitLod 4812 4813 Bias ConstOffset MinLod 4815 709 4814
+            4817:  7(f16vec4) Load 4728(texel)
+            4818:  7(f16vec4) FAdd 4817 4816
+                              Store 4728(texel) 4818
+            4819:         284 Load 286(s2DArray)
+            4820:  167(fvec3) Load 169(c3)
+            4821:   52(float) Load 4311(lodClamp)
+            4822:  7(f16vec4) ImageSampleImplicitLod 4819 4820 ConstOffset MinLod 722 4821
+            4823:  7(f16vec4) Load 4728(texel)
+            4824:  7(f16vec4) FAdd 4823 4822
+                              Store 4728(texel) 4824
+            4825:         284 Load 286(s2DArray)
+            4826:175(f16vec3) Load 177(f16c3)
+            4827:6(float16_t) Load 4318(f16lodClamp)
+            4828:6(float16_t) Load 137(f16bias)
+            4829:  7(f16vec4) ImageSampleImplicitLod 4825 4826 Bias ConstOffset MinLod 4828 722 4827
+            4830:  7(f16vec4) Load 4728(texel)
+            4831:  7(f16vec4) FAdd 4830 4829
+                              Store 4728(texel) 4831
+            4832:         316 Load 318(s1DArrayShadow)
+            4833:  167(fvec3) Load 169(c3)
+            4834:   52(float) Load 4311(lodClamp)
+            4835:   52(float) CompositeExtract 4833 2
+            4836:6(float16_t) ImageSampleDrefImplicitLod 4832 4833 4835 ConstOffset MinLod 709 4834
+            4837:    208(ptr) AccessChain 4728(texel) 207
+            4838:6(float16_t) Load 4837
+            4839:6(float16_t) FAdd 4838 4836
+            4840:    208(ptr) AccessChain 4728(texel) 207
+                              Store 4840 4839
+            4841:         316 Load 318(s1DArrayShadow)
+            4842:154(f16vec2) Load 156(f16c2)
+            4843:   52(float) Load 215(compare)
+            4844:6(float16_t) Load 4318(f16lodClamp)
+            4845:6(float16_t) Load 137(f16bias)
+            4846:6(float16_t) ImageSampleDrefImplicitLod 4841 4842 4843 Bias ConstOffset MinLod 4845 709 4844
+            4847:    208(ptr) AccessChain 4728(texel) 207
+            4848:6(float16_t) Load 4847
+            4849:6(float16_t) FAdd 4848 4846
+            4850:    208(ptr) AccessChain 4728(texel) 207
+                              Store 4850 4849
+            4851:         337 Load 339(s2DArrayShadow)
+            4852:  249(fvec4) Load 251(c4)
+            4853:   52(float) Load 4311(lodClamp)
+            4854:   52(float) CompositeExtract 4852 3
+            4855:6(float16_t) ImageSampleDrefImplicitLod 4851 4852 4854 ConstOffset MinLod 722 4853
+            4856:    208(ptr) AccessChain 4728(texel) 207
+            4857:6(float16_t) Load 4856
+            4858:6(float16_t) FAdd 4857 4855
+            4859:    208(ptr) AccessChain 4728(texel) 207
+                              Store 4859 4858
+            4860:         337 Load 339(s2DArrayShadow)
+            4861:175(f16vec3) Load 177(f16c3)
+            4862:   52(float) Load 215(compare)
+            4863:6(float16_t) Load 4318(f16lodClamp)
+            4864:6(float16_t) ImageSampleDrefImplicitLod 4860 4861 4862 ConstOffset MinLod 722 4863
+            4865:    208(ptr) AccessChain 4728(texel) 207
+            4866:6(float16_t) Load 4865
+            4867:6(float16_t) FAdd 4866 4864
+            4868:    208(ptr) AccessChain 4728(texel) 207
+                              Store 4868 4867
+            4869:  7(f16vec4) Load 4728(texel)
+                              ReturnValue 4869
                               FunctionEnd
 107(testSparseTextureGradClamp():  7(f16vec4) Function None 8
              108:             Label
-     4828(texel):     64(ptr) Variable Function
-                              Store 4828(texel) 121
-            4829:         143 Load 145(s2D)
-            4830:   53(fvec2) Load 148(c2)
-            4831:   53(fvec2) Load 1409(dPdxy2)
-            4832:   53(fvec2) Load 1409(dPdxy2)
-            4833:   52(float) Load 4267(lodClamp)
-            4834:3102(ResType) ImageSparseSampleExplicitLod 4829 4830 Grad MinLod 4831 4832 4833
-            4835:  7(f16vec4) CompositeExtract 4834 1
-                              Store 4828(texel) 4835
-            4836:     47(int) CompositeExtract 4834 0
-            4837:         143 Load 145(s2D)
-            4838:154(f16vec2) Load 156(f16c2)
-            4839:154(f16vec2) Load 1417(f16dPdxy2)
-            4840:154(f16vec2) Load 1417(f16dPdxy2)
-            4841:6(float16_t) Load 4274(f16lodClamp)
-            4842:3102(ResType) ImageSparseSampleExplicitLod 4837 4838 Grad MinLod 4839 4840 4841
-            4843:  7(f16vec4) CompositeExtract 4842 1
-                              Store 4828(texel) 4843
-            4844:     47(int) CompositeExtract 4842 0
-            4845:         163 Load 165(s3D)
-            4846:  167(fvec3) Load 169(c3)
-            4847:  167(fvec3) Load 1425(dPdxy3)
-            4848:  167(fvec3) Load 1425(dPdxy3)
-            4849:   52(float) Load 4267(lodClamp)
-            4850:3102(ResType) ImageSparseSampleExplicitLod 4845 4846 Grad MinLod 4847 4848 4849
-            4851:  7(f16vec4) CompositeExtract 4850 1
-                              Store 4828(texel) 4851
-            4852:     47(int) CompositeExtract 4850 0
-            4853:         163 Load 165(s3D)
-            4854:175(f16vec3) Load 177(f16c3)
-            4855:175(f16vec3) Load 1433(f16dPdxy3)
-            4856:175(f16vec3) Load 1433(f16dPdxy3)
-            4857:6(float16_t) Load 4274(f16lodClamp)
-            4858:3102(ResType) ImageSparseSampleExplicitLod 4853 4854 Grad MinLod 4855 4856 4857
-            4859:  7(f16vec4) CompositeExtract 4858 1
-                              Store 4828(texel) 4859
-            4860:     47(int) CompositeExtract 4858 0
-            4861:         184 Load 186(sCube)
-            4862:  167(fvec3) Load 169(c3)
-            4863:  167(fvec3) Load 1425(dPdxy3)
-            4864:  167(fvec3) Load 1425(dPdxy3)
-            4865:   52(float) Load 4267(lodClamp)
-            4866:3102(ResType) ImageSparseSampleExplicitLod 4861 4862 Grad MinLod 4863 4864 4865
-            4867:  7(f16vec4) CompositeExtract 4866 1
-                              Store 4828(texel) 4867
-            4868:     47(int) CompositeExtract 4866 0
-            4869:         184 Load 186(sCube)
-            4870:175(f16vec3) Load 177(f16c3)
-            4871:175(f16vec3) Load 1433(f16dPdxy3)
-            4872:175(f16vec3) Load 1433(f16dPdxy3)
-            4873:6(float16_t) Load 4274(f16lodClamp)
-            4874:3102(ResType) ImageSparseSampleExplicitLod 4869 4870 Grad MinLod 4871 4872 4873
-            4875:  7(f16vec4) CompositeExtract 4874 1
-                              Store 4828(texel) 4875
-            4876:     47(int) CompositeExtract 4874 0
-            4877:         224 Load 226(s2DShadow)
-            4878:  167(fvec3) Load 169(c3)
-            4879:   53(fvec2) Load 1409(dPdxy2)
-            4880:   53(fvec2) Load 1409(dPdxy2)
-            4881:   52(float) Load 4267(lodClamp)
-            4882:    208(ptr) AccessChain 4828(texel) 207
-            4883:   52(float) CompositeExtract 4878 2
-            4884:3138(ResType) ImageSparseSampleDrefExplicitLod 4877 4878 4883 Grad MinLod 4879 4880 4881
-            4885:6(float16_t) CompositeExtract 4884 1
-                              Store 4882 4885
-            4886:     47(int) CompositeExtract 4884 0
-            4887:         224 Load 226(s2DShadow)
-            4888:154(f16vec2) Load 156(f16c2)
-            4889:   52(float) Load 215(compare)
-            4890:154(f16vec2) Load 1417(f16dPdxy2)
-            4891:154(f16vec2) Load 1417(f16dPdxy2)
-            4892:6(float16_t) Load 4274(f16lodClamp)
-            4893:    208(ptr) AccessChain 4828(texel) 207
-            4894:3138(ResType) ImageSparseSampleDrefExplicitLod 4887 4888 4889 Grad MinLod 4890 4891 4892
-            4895:6(float16_t) CompositeExtract 4894 1
-                              Store 4893 4895
+     4872(texel):     64(ptr) Variable Function
+                              Store 4872(texel) 121
+            4873:         143 Load 145(s2D)
+            4874:   53(fvec2) Load 148(c2)
+            4875:   53(fvec2) Load 1409(dPdxy2)
+            4876:   53(fvec2) Load 1409(dPdxy2)
+            4877:   52(float) Load 4311(lodClamp)
+            4878:3146(ResType) ImageSparseSampleExplicitLod 4873 4874 Grad MinLod 4875 4876 4877
+            4879:  7(f16vec4) CompositeExtract 4878 1
+                              Store 4872(texel) 4879
+            4880:     47(int) CompositeExtract 4878 0
+            4881:         143 Load 145(s2D)
+            4882:154(f16vec2) Load 156(f16c2)
+            4883:154(f16vec2) Load 1417(f16dPdxy2)
+            4884:154(f16vec2) Load 1417(f16dPdxy2)
+            4885:6(float16_t) Load 4318(f16lodClamp)
+            4886:3146(ResType) ImageSparseSampleExplicitLod 4881 4882 Grad MinLod 4883 4884 4885
+            4887:  7(f16vec4) CompositeExtract 4886 1
+                              Store 4872(texel) 4887
+            4888:     47(int) CompositeExtract 4886 0
+            4889:         163 Load 165(s3D)
+            4890:  167(fvec3) Load 169(c3)
+            4891:  167(fvec3) Load 1425(dPdxy3)
+            4892:  167(fvec3) Load 1425(dPdxy3)
+            4893:   52(float) Load 4311(lodClamp)
+            4894:3146(ResType) ImageSparseSampleExplicitLod 4889 4890 Grad MinLod 4891 4892 4893
+            4895:  7(f16vec4) CompositeExtract 4894 1
+                              Store 4872(texel) 4895
             4896:     47(int) CompositeExtract 4894 0
-            4897:         245 Load 247(sCubeShadow)
-            4898:  249(fvec4) Load 251(c4)
-            4899:  167(fvec3) Load 1425(dPdxy3)
-            4900:  167(fvec3) Load 1425(dPdxy3)
-            4901:   52(float) Load 4267(lodClamp)
-            4902:    208(ptr) AccessChain 4828(texel) 207
-            4903:   52(float) CompositeExtract 4898 3
-            4904:3138(ResType) ImageSparseSampleDrefExplicitLod 4897 4898 4903 Grad MinLod 4899 4900 4901
-            4905:6(float16_t) CompositeExtract 4904 1
-                              Store 4902 4905
-            4906:     47(int) CompositeExtract 4904 0
-            4907:         245 Load 247(sCubeShadow)
-            4908:175(f16vec3) Load 177(f16c3)
-            4909:   52(float) Load 215(compare)
-            4910:175(f16vec3) Load 1433(f16dPdxy3)
-            4911:175(f16vec3) Load 1433(f16dPdxy3)
-            4912:6(float16_t) Load 4274(f16lodClamp)
-            4913:    208(ptr) AccessChain 4828(texel) 207
-            4914:3138(ResType) ImageSparseSampleDrefExplicitLod 4907 4908 4909 Grad MinLod 4910 4911 4912
-            4915:6(float16_t) CompositeExtract 4914 1
-                              Store 4913 4915
-            4916:     47(int) CompositeExtract 4914 0
-            4917:         284 Load 286(s2DArray)
-            4918:  167(fvec3) Load 169(c3)
-            4919:   53(fvec2) Load 1409(dPdxy2)
-            4920:   53(fvec2) Load 1409(dPdxy2)
-            4921:   52(float) Load 4267(lodClamp)
-            4922:3102(ResType) ImageSparseSampleExplicitLod 4917 4918 Grad MinLod 4919 4920 4921
-            4923:  7(f16vec4) CompositeExtract 4922 1
-                              Store 4828(texel) 4923
-            4924:     47(int) CompositeExtract 4922 0
-            4925:         284 Load 286(s2DArray)
-            4926:175(f16vec3) Load 177(f16c3)
-            4927:154(f16vec2) Load 1417(f16dPdxy2)
-            4928:154(f16vec2) Load 1417(f16dPdxy2)
-            4929:6(float16_t) Load 4274(f16lodClamp)
-            4930:3102(ResType) ImageSparseSampleExplicitLod 4925 4926 Grad MinLod 4927 4928 4929
-            4931:  7(f16vec4) CompositeExtract 4930 1
-                              Store 4828(texel) 4931
-            4932:     47(int) CompositeExtract 4930 0
-            4933:         337 Load 339(s2DArrayShadow)
-            4934:  249(fvec4) Load 251(c4)
-            4935:   53(fvec2) Load 1409(dPdxy2)
-            4936:   53(fvec2) Load 1409(dPdxy2)
-            4937:   52(float) Load 4267(lodClamp)
-            4938:    208(ptr) AccessChain 4828(texel) 207
-            4939:   52(float) CompositeExtract 4934 3
-            4940:3138(ResType) ImageSparseSampleDrefExplicitLod 4933 4934 4939 Grad MinLod 4935 4936 4937
-            4941:6(float16_t) CompositeExtract 4940 1
-                              Store 4938 4941
-            4942:     47(int) CompositeExtract 4940 0
-            4943:         337 Load 339(s2DArrayShadow)
-            4944:175(f16vec3) Load 177(f16c3)
-            4945:   52(float) Load 215(compare)
-            4946:154(f16vec2) Load 1417(f16dPdxy2)
-            4947:154(f16vec2) Load 1417(f16dPdxy2)
-            4948:6(float16_t) Load 4274(f16lodClamp)
-            4949:    208(ptr) AccessChain 4828(texel) 207
-            4950:3138(ResType) ImageSparseSampleDrefExplicitLod 4943 4944 4945 Grad MinLod 4946 4947 4948
-            4951:6(float16_t) CompositeExtract 4950 1
-                              Store 4949 4951
-            4952:     47(int) CompositeExtract 4950 0
-            4953:         299 Load 301(sCubeArray)
-            4954:  249(fvec4) Load 251(c4)
-            4955:  167(fvec3) Load 1425(dPdxy3)
-            4956:  167(fvec3) Load 1425(dPdxy3)
-            4957:   52(float) Load 4267(lodClamp)
-            4958:3102(ResType) ImageSparseSampleExplicitLod 4953 4954 Grad MinLod 4955 4956 4957
-            4959:  7(f16vec4) CompositeExtract 4958 1
-                              Store 4828(texel) 4959
+            4897:         163 Load 165(s3D)
+            4898:175(f16vec3) Load 177(f16c3)
+            4899:175(f16vec3) Load 1433(f16dPdxy3)
+            4900:175(f16vec3) Load 1433(f16dPdxy3)
+            4901:6(float16_t) Load 4318(f16lodClamp)
+            4902:3146(ResType) ImageSparseSampleExplicitLod 4897 4898 Grad MinLod 4899 4900 4901
+            4903:  7(f16vec4) CompositeExtract 4902 1
+                              Store 4872(texel) 4903
+            4904:     47(int) CompositeExtract 4902 0
+            4905:         184 Load 186(sCube)
+            4906:  167(fvec3) Load 169(c3)
+            4907:  167(fvec3) Load 1425(dPdxy3)
+            4908:  167(fvec3) Load 1425(dPdxy3)
+            4909:   52(float) Load 4311(lodClamp)
+            4910:3146(ResType) ImageSparseSampleExplicitLod 4905 4906 Grad MinLod 4907 4908 4909
+            4911:  7(f16vec4) CompositeExtract 4910 1
+                              Store 4872(texel) 4911
+            4912:     47(int) CompositeExtract 4910 0
+            4913:         184 Load 186(sCube)
+            4914:175(f16vec3) Load 177(f16c3)
+            4915:175(f16vec3) Load 1433(f16dPdxy3)
+            4916:175(f16vec3) Load 1433(f16dPdxy3)
+            4917:6(float16_t) Load 4318(f16lodClamp)
+            4918:3146(ResType) ImageSparseSampleExplicitLod 4913 4914 Grad MinLod 4915 4916 4917
+            4919:  7(f16vec4) CompositeExtract 4918 1
+                              Store 4872(texel) 4919
+            4920:     47(int) CompositeExtract 4918 0
+            4921:         224 Load 226(s2DShadow)
+            4922:  167(fvec3) Load 169(c3)
+            4923:   53(fvec2) Load 1409(dPdxy2)
+            4924:   53(fvec2) Load 1409(dPdxy2)
+            4925:   52(float) Load 4311(lodClamp)
+            4926:    208(ptr) AccessChain 4872(texel) 207
+            4927:   52(float) CompositeExtract 4922 2
+            4928:3182(ResType) ImageSparseSampleDrefExplicitLod 4921 4922 4927 Grad MinLod 4923 4924 4925
+            4929:6(float16_t) CompositeExtract 4928 1
+                              Store 4926 4929
+            4930:     47(int) CompositeExtract 4928 0
+            4931:         224 Load 226(s2DShadow)
+            4932:154(f16vec2) Load 156(f16c2)
+            4933:   52(float) Load 215(compare)
+            4934:154(f16vec2) Load 1417(f16dPdxy2)
+            4935:154(f16vec2) Load 1417(f16dPdxy2)
+            4936:6(float16_t) Load 4318(f16lodClamp)
+            4937:    208(ptr) AccessChain 4872(texel) 207
+            4938:3182(ResType) ImageSparseSampleDrefExplicitLod 4931 4932 4933 Grad MinLod 4934 4935 4936
+            4939:6(float16_t) CompositeExtract 4938 1
+                              Store 4937 4939
+            4940:     47(int) CompositeExtract 4938 0
+            4941:         245 Load 247(sCubeShadow)
+            4942:  249(fvec4) Load 251(c4)
+            4943:  167(fvec3) Load 1425(dPdxy3)
+            4944:  167(fvec3) Load 1425(dPdxy3)
+            4945:   52(float) Load 4311(lodClamp)
+            4946:    208(ptr) AccessChain 4872(texel) 207
+            4947:   52(float) CompositeExtract 4942 3
+            4948:3182(ResType) ImageSparseSampleDrefExplicitLod 4941 4942 4947 Grad MinLod 4943 4944 4945
+            4949:6(float16_t) CompositeExtract 4948 1
+                              Store 4946 4949
+            4950:     47(int) CompositeExtract 4948 0
+            4951:         245 Load 247(sCubeShadow)
+            4952:175(f16vec3) Load 177(f16c3)
+            4953:   52(float) Load 215(compare)
+            4954:175(f16vec3) Load 1433(f16dPdxy3)
+            4955:175(f16vec3) Load 1433(f16dPdxy3)
+            4956:6(float16_t) Load 4318(f16lodClamp)
+            4957:    208(ptr) AccessChain 4872(texel) 207
+            4958:3182(ResType) ImageSparseSampleDrefExplicitLod 4951 4952 4953 Grad MinLod 4954 4955 4956
+            4959:6(float16_t) CompositeExtract 4958 1
+                              Store 4957 4959
             4960:     47(int) CompositeExtract 4958 0
-            4961:         299 Load 301(sCubeArray)
-            4962:  7(f16vec4) Load 309(f16c4)
-            4963:175(f16vec3) Load 1433(f16dPdxy3)
-            4964:175(f16vec3) Load 1433(f16dPdxy3)
-            4965:6(float16_t) Load 4274(f16lodClamp)
-            4966:3102(ResType) ImageSparseSampleExplicitLod 4961 4962 Grad MinLod 4963 4964 4965
+            4961:         284 Load 286(s2DArray)
+            4962:  167(fvec3) Load 169(c3)
+            4963:   53(fvec2) Load 1409(dPdxy2)
+            4964:   53(fvec2) Load 1409(dPdxy2)
+            4965:   52(float) Load 4311(lodClamp)
+            4966:3146(ResType) ImageSparseSampleExplicitLod 4961 4962 Grad MinLod 4963 4964 4965
             4967:  7(f16vec4) CompositeExtract 4966 1
-                              Store 4828(texel) 4967
+                              Store 4872(texel) 4967
             4968:     47(int) CompositeExtract 4966 0
-            4969:  7(f16vec4) Load 4828(texel)
-                              ReturnValue 4969
+            4969:         284 Load 286(s2DArray)
+            4970:175(f16vec3) Load 177(f16c3)
+            4971:154(f16vec2) Load 1417(f16dPdxy2)
+            4972:154(f16vec2) Load 1417(f16dPdxy2)
+            4973:6(float16_t) Load 4318(f16lodClamp)
+            4974:3146(ResType) ImageSparseSampleExplicitLod 4969 4970 Grad MinLod 4971 4972 4973
+            4975:  7(f16vec4) CompositeExtract 4974 1
+                              Store 4872(texel) 4975
+            4976:     47(int) CompositeExtract 4974 0
+            4977:         337 Load 339(s2DArrayShadow)
+            4978:  249(fvec4) Load 251(c4)
+            4979:   53(fvec2) Load 1409(dPdxy2)
+            4980:   53(fvec2) Load 1409(dPdxy2)
+            4981:   52(float) Load 4311(lodClamp)
+            4982:    208(ptr) AccessChain 4872(texel) 207
+            4983:   52(float) CompositeExtract 4978 3
+            4984:3182(ResType) ImageSparseSampleDrefExplicitLod 4977 4978 4983 Grad MinLod 4979 4980 4981
+            4985:6(float16_t) CompositeExtract 4984 1
+                              Store 4982 4985
+            4986:     47(int) CompositeExtract 4984 0
+            4987:         337 Load 339(s2DArrayShadow)
+            4988:175(f16vec3) Load 177(f16c3)
+            4989:   52(float) Load 215(compare)
+            4990:154(f16vec2) Load 1417(f16dPdxy2)
+            4991:154(f16vec2) Load 1417(f16dPdxy2)
+            4992:6(float16_t) Load 4318(f16lodClamp)
+            4993:    208(ptr) AccessChain 4872(texel) 207
+            4994:3182(ResType) ImageSparseSampleDrefExplicitLod 4987 4988 4989 Grad MinLod 4990 4991 4992
+            4995:6(float16_t) CompositeExtract 4994 1
+                              Store 4993 4995
+            4996:     47(int) CompositeExtract 4994 0
+            4997:         299 Load 301(sCubeArray)
+            4998:  249(fvec4) Load 251(c4)
+            4999:  167(fvec3) Load 1425(dPdxy3)
+            5000:  167(fvec3) Load 1425(dPdxy3)
+            5001:   52(float) Load 4311(lodClamp)
+            5002:3146(ResType) ImageSparseSampleExplicitLod 4997 4998 Grad MinLod 4999 5000 5001
+            5003:  7(f16vec4) CompositeExtract 5002 1
+                              Store 4872(texel) 5003
+            5004:     47(int) CompositeExtract 5002 0
+            5005:         299 Load 301(sCubeArray)
+            5006:  7(f16vec4) Load 309(f16c4)
+            5007:175(f16vec3) Load 1433(f16dPdxy3)
+            5008:175(f16vec3) Load 1433(f16dPdxy3)
+            5009:6(float16_t) Load 4318(f16lodClamp)
+            5010:3146(ResType) ImageSparseSampleExplicitLod 5005 5006 Grad MinLod 5007 5008 5009
+            5011:  7(f16vec4) CompositeExtract 5010 1
+                              Store 4872(texel) 5011
+            5012:     47(int) CompositeExtract 5010 0
+            5013:  7(f16vec4) Load 4872(texel)
+                              ReturnValue 5013
                               FunctionEnd
 109(testTextureGradClamp():  7(f16vec4) Function None 8
              110:             Label
-     4972(texel):     64(ptr) Variable Function
-                              Store 4972(texel) 121
-            4973:         123 Load 125(s1D)
-            4974:   52(float) Load 128(c1)
-            4975:   52(float) Load 1393(dPdxy1)
-            4976:   52(float) Load 1393(dPdxy1)
-            4977:   52(float) Load 4267(lodClamp)
-            4978:  7(f16vec4) ImageSampleExplicitLod 4973 4974 Grad MinLod 4975 4976 4977
-            4979:  7(f16vec4) Load 4972(texel)
-            4980:  7(f16vec4) FAdd 4979 4978
-                              Store 4972(texel) 4980
-            4981:         123 Load 125(s1D)
-            4982:6(float16_t) Load 135(f16c1)
-            4983:6(float16_t) Load 1401(f16dPdxy1)
-            4984:6(float16_t) Load 1401(f16dPdxy1)
-            4985:6(float16_t) Load 4274(f16lodClamp)
-            4986:  7(f16vec4) ImageSampleExplicitLod 4981 4982 Grad MinLod 4983 4984 4985
-            4987:  7(f16vec4) Load 4972(texel)
-            4988:  7(f16vec4) FAdd 4987 4986
-                              Store 4972(texel) 4988
-            4989:         143 Load 145(s2D)
-            4990:   53(fvec2) Load 148(c2)
-            4991:   53(fvec2) Load 1409(dPdxy2)
-            4992:   53(fvec2) Load 1409(dPdxy2)
-            4993:   52(float) Load 4267(lodClamp)
-            4994:  7(f16vec4) ImageSampleExplicitLod 4989 4990 Grad MinLod 4991 4992 4993
-            4995:  7(f16vec4) Load 4972(texel)
-            4996:  7(f16vec4) FAdd 4995 4994
-                              Store 4972(texel) 4996
-            4997:         143 Load 145(s2D)
-            4998:154(f16vec2) Load 156(f16c2)
-            4999:154(f16vec2) Load 1417(f16dPdxy2)
-            5000:154(f16vec2) Load 1417(f16dPdxy2)
-            5001:6(float16_t) Load 4274(f16lodClamp)
-            5002:  7(f16vec4) ImageSampleExplicitLod 4997 4998 Grad MinLod 4999 5000 5001
-            5003:  7(f16vec4) Load 4972(texel)
-            5004:  7(f16vec4) FAdd 5003 5002
-                              Store 4972(texel) 5004
-            5005:         163 Load 165(s3D)
-            5006:  167(fvec3) Load 169(c3)
-            5007:  167(fvec3) Load 1425(dPdxy3)
-            5008:  167(fvec3) Load 1425(dPdxy3)
-            5009:   52(float) Load 4267(lodClamp)
-            5010:  7(f16vec4) ImageSampleExplicitLod 5005 5006 Grad MinLod 5007 5008 5009
-            5011:  7(f16vec4) Load 4972(texel)
-            5012:  7(f16vec4) FAdd 5011 5010
-                              Store 4972(texel) 5012
-            5013:         163 Load 165(s3D)
-            5014:175(f16vec3) Load 177(f16c3)
-            5015:175(f16vec3) Load 1433(f16dPdxy3)
-            5016:175(f16vec3) Load 1433(f16dPdxy3)
-            5017:6(float16_t) Load 4274(f16lodClamp)
-            5018:  7(f16vec4) ImageSampleExplicitLod 5013 5014 Grad MinLod 5015 5016 5017
-            5019:  7(f16vec4) Load 4972(texel)
-            5020:  7(f16vec4) FAdd 5019 5018
-                              Store 4972(texel) 5020
-            5021:         184 Load 186(sCube)
-            5022:  167(fvec3) Load 169(c3)
-            5023:  167(fvec3) Load 1425(dPdxy3)
-            5024:  167(fvec3) Load 1425(dPdxy3)
-            5025:   52(float) Load 4267(lodClamp)
-            5026:  7(f16vec4) ImageSampleExplicitLod 5021 5022 Grad MinLod 5023 5024 5025
-            5027:  7(f16vec4) Load 4972(texel)
-            5028:  7(f16vec4) FAdd 5027 5026
-                              Store 4972(texel) 5028
-            5029:         184 Load 186(sCube)
-            5030:175(f16vec3) Load 177(f16c3)
-            5031:175(f16vec3) Load 1433(f16dPdxy3)
-            5032:175(f16vec3) Load 1433(f16dPdxy3)
-            5033:6(float16_t) Load 4274(f16lodClamp)
-            5034:  7(f16vec4) ImageSampleExplicitLod 5029 5030 Grad MinLod 5031 5032 5033
-            5035:  7(f16vec4) Load 4972(texel)
-            5036:  7(f16vec4) FAdd 5035 5034
-                              Store 4972(texel) 5036
-            5037:         199 Load 201(s1DShadow)
-            5038:  167(fvec3) Load 169(c3)
-            5039:   52(float) Load 1393(dPdxy1)
-            5040:   52(float) Load 1393(dPdxy1)
-            5041:   52(float) Load 4267(lodClamp)
-            5042:   52(float) CompositeExtract 5038 2
-            5043:6(float16_t) ImageSampleDrefExplicitLod 5037 5038 5042 Grad MinLod 5039 5040 5041
-            5044:    208(ptr) AccessChain 4972(texel) 207
-            5045:6(float16_t) Load 5044
-            5046:6(float16_t) FAdd 5045 5043
-            5047:    208(ptr) AccessChain 4972(texel) 207
-                              Store 5047 5046
-            5048:         199 Load 201(s1DShadow)
-            5049:154(f16vec2) Load 156(f16c2)
-            5050:   52(float) Load 215(compare)
-            5051:6(float16_t) Load 1401(f16dPdxy1)
-            5052:6(float16_t) Load 1401(f16dPdxy1)
-            5053:6(float16_t) Load 4274(f16lodClamp)
-            5054:6(float16_t) ImageSampleDrefExplicitLod 5048 5049 5050 Grad MinLod 5051 5052 5053
-            5055:    208(ptr) AccessChain 4972(texel) 207
-            5056:6(float16_t) Load 5055
-            5057:6(float16_t) FAdd 5056 5054
-            5058:    208(ptr) AccessChain 4972(texel) 207
-                              Store 5058 5057
-            5059:         224 Load 226(s2DShadow)
-            5060:  167(fvec3) Load 169(c3)
-            5061:   53(fvec2) Load 1409(dPdxy2)
-            5062:   53(fvec2) Load 1409(dPdxy2)
-            5063:   52(float) Load 4267(lodClamp)
-            5064:   52(float) CompositeExtract 5060 2
-            5065:6(float16_t) ImageSampleDrefExplicitLod 5059 5060 5064 Grad MinLod 5061 5062 5063
-            5066:    208(ptr) AccessChain 4972(texel) 207
-            5067:6(float16_t) Load 5066
-            5068:6(float16_t) FAdd 5067 5065
-            5069:    208(ptr) AccessChain 4972(texel) 207
-                              Store 5069 5068
-            5070:         224 Load 226(s2DShadow)
-            5071:154(f16vec2) Load 156(f16c2)
-            5072:   52(float) Load 215(compare)
-            5073:154(f16vec2) Load 1417(f16dPdxy2)
-            5074:154(f16vec2) Load 1417(f16dPdxy2)
-            5075:6(float16_t) Load 4274(f16lodClamp)
-            5076:6(float16_t) ImageSampleDrefExplicitLod 5070 5071 5072 Grad MinLod 5073 5074 5075
-            5077:    208(ptr) AccessChain 4972(texel) 207
-            5078:6(float16_t) Load 5077
-            5079:6(float16_t) FAdd 5078 5076
-            5080:    208(ptr) AccessChain 4972(texel) 207
-                              Store 5080 5079
-            5081:         245 Load 247(sCubeShadow)
-            5082:  249(fvec4) Load 251(c4)
-            5083:  167(fvec3) Load 1425(dPdxy3)
-            5084:  167(fvec3) Load 1425(dPdxy3)
-            5085:   52(float) Load 4267(lodClamp)
-            5086:   52(float) CompositeExtract 5082 3
+     5016(texel):     64(ptr) Variable Function
+                              Store 5016(texel) 121
+            5017:         123 Load 125(s1D)
+            5018:   52(float) Load 128(c1)
+            5019:   52(float) Load 1393(dPdxy1)
+            5020:   52(float) Load 1393(dPdxy1)
+            5021:   52(float) Load 4311(lodClamp)
+            5022:  7(f16vec4) ImageSampleExplicitLod 5017 5018 Grad MinLod 5019 5020 5021
+            5023:  7(f16vec4) Load 5016(texel)
+            5024:  7(f16vec4) FAdd 5023 5022
+                              Store 5016(texel) 5024
+            5025:         123 Load 125(s1D)
+            5026:6(float16_t) Load 135(f16c1)
+            5027:6(float16_t) Load 1401(f16dPdxy1)
+            5028:6(float16_t) Load 1401(f16dPdxy1)
+            5029:6(float16_t) Load 4318(f16lodClamp)
+            5030:  7(f16vec4) ImageSampleExplicitLod 5025 5026 Grad MinLod 5027 5028 5029
+            5031:  7(f16vec4) Load 5016(texel)
+            5032:  7(f16vec4) FAdd 5031 5030
+                              Store 5016(texel) 5032
+            5033:         143 Load 145(s2D)
+            5034:   53(fvec2) Load 148(c2)
+            5035:   53(fvec2) Load 1409(dPdxy2)
+            5036:   53(fvec2) Load 1409(dPdxy2)
+            5037:   52(float) Load 4311(lodClamp)
+            5038:  7(f16vec4) ImageSampleExplicitLod 5033 5034 Grad MinLod 5035 5036 5037
+            5039:  7(f16vec4) Load 5016(texel)
+            5040:  7(f16vec4) FAdd 5039 5038
+                              Store 5016(texel) 5040
+            5041:         143 Load 145(s2D)
+            5042:154(f16vec2) Load 156(f16c2)
+            5043:154(f16vec2) Load 1417(f16dPdxy2)
+            5044:154(f16vec2) Load 1417(f16dPdxy2)
+            5045:6(float16_t) Load 4318(f16lodClamp)
+            5046:  7(f16vec4) ImageSampleExplicitLod 5041 5042 Grad MinLod 5043 5044 5045
+            5047:  7(f16vec4) Load 5016(texel)
+            5048:  7(f16vec4) FAdd 5047 5046
+                              Store 5016(texel) 5048
+            5049:         163 Load 165(s3D)
+            5050:  167(fvec3) Load 169(c3)
+            5051:  167(fvec3) Load 1425(dPdxy3)
+            5052:  167(fvec3) Load 1425(dPdxy3)
+            5053:   52(float) Load 4311(lodClamp)
+            5054:  7(f16vec4) ImageSampleExplicitLod 5049 5050 Grad MinLod 5051 5052 5053
+            5055:  7(f16vec4) Load 5016(texel)
+            5056:  7(f16vec4) FAdd 5055 5054
+                              Store 5016(texel) 5056
+            5057:         163 Load 165(s3D)
+            5058:175(f16vec3) Load 177(f16c3)
+            5059:175(f16vec3) Load 1433(f16dPdxy3)
+            5060:175(f16vec3) Load 1433(f16dPdxy3)
+            5061:6(float16_t) Load 4318(f16lodClamp)
+            5062:  7(f16vec4) ImageSampleExplicitLod 5057 5058 Grad MinLod 5059 5060 5061
+            5063:  7(f16vec4) Load 5016(texel)
+            5064:  7(f16vec4) FAdd 5063 5062
+                              Store 5016(texel) 5064
+            5065:         184 Load 186(sCube)
+            5066:  167(fvec3) Load 169(c3)
+            5067:  167(fvec3) Load 1425(dPdxy3)
+            5068:  167(fvec3) Load 1425(dPdxy3)
+            5069:   52(float) Load 4311(lodClamp)
+            5070:  7(f16vec4) ImageSampleExplicitLod 5065 5066 Grad MinLod 5067 5068 5069
+            5071:  7(f16vec4) Load 5016(texel)
+            5072:  7(f16vec4) FAdd 5071 5070
+                              Store 5016(texel) 5072
+            5073:         184 Load 186(sCube)
+            5074:175(f16vec3) Load 177(f16c3)
+            5075:175(f16vec3) Load 1433(f16dPdxy3)
+            5076:175(f16vec3) Load 1433(f16dPdxy3)
+            5077:6(float16_t) Load 4318(f16lodClamp)
+            5078:  7(f16vec4) ImageSampleExplicitLod 5073 5074 Grad MinLod 5075 5076 5077
+            5079:  7(f16vec4) Load 5016(texel)
+            5080:  7(f16vec4) FAdd 5079 5078
+                              Store 5016(texel) 5080
+            5081:         199 Load 201(s1DShadow)
+            5082:  167(fvec3) Load 169(c3)
+            5083:   52(float) Load 1393(dPdxy1)
+            5084:   52(float) Load 1393(dPdxy1)
+            5085:   52(float) Load 4311(lodClamp)
+            5086:   52(float) CompositeExtract 5082 2
             5087:6(float16_t) ImageSampleDrefExplicitLod 5081 5082 5086 Grad MinLod 5083 5084 5085
-            5088:    208(ptr) AccessChain 4972(texel) 207
+            5088:    208(ptr) AccessChain 5016(texel) 207
             5089:6(float16_t) Load 5088
             5090:6(float16_t) FAdd 5089 5087
-            5091:    208(ptr) AccessChain 4972(texel) 207
+            5091:    208(ptr) AccessChain 5016(texel) 207
                               Store 5091 5090
-            5092:         245 Load 247(sCubeShadow)
-            5093:175(f16vec3) Load 177(f16c3)
+            5092:         199 Load 201(s1DShadow)
+            5093:154(f16vec2) Load 156(f16c2)
             5094:   52(float) Load 215(compare)
-            5095:175(f16vec3) Load 1433(f16dPdxy3)
-            5096:175(f16vec3) Load 1433(f16dPdxy3)
-            5097:6(float16_t) Load 4274(f16lodClamp)
+            5095:6(float16_t) Load 1401(f16dPdxy1)
+            5096:6(float16_t) Load 1401(f16dPdxy1)
+            5097:6(float16_t) Load 4318(f16lodClamp)
             5098:6(float16_t) ImageSampleDrefExplicitLod 5092 5093 5094 Grad MinLod 5095 5096 5097
-            5099:    208(ptr) AccessChain 4972(texel) 207
+            5099:    208(ptr) AccessChain 5016(texel) 207
             5100:6(float16_t) Load 5099
             5101:6(float16_t) FAdd 5100 5098
-            5102:    208(ptr) AccessChain 4972(texel) 207
+            5102:    208(ptr) AccessChain 5016(texel) 207
                               Store 5102 5101
-            5103:         269 Load 271(s1DArray)
-            5104:   53(fvec2) Load 148(c2)
-            5105:   52(float) Load 1393(dPdxy1)
-            5106:   52(float) Load 1393(dPdxy1)
-            5107:   52(float) Load 4267(lodClamp)
-            5108:  7(f16vec4) ImageSampleExplicitLod 5103 5104 Grad MinLod 5105 5106 5107
-            5109:  7(f16vec4) Load 4972(texel)
-            5110:  7(f16vec4) FAdd 5109 5108
-                              Store 4972(texel) 5110
-            5111:         269 Load 271(s1DArray)
-            5112:154(f16vec2) Load 156(f16c2)
-            5113:6(float16_t) Load 1401(f16dPdxy1)
-            5114:6(float16_t) Load 1401(f16dPdxy1)
-            5115:6(float16_t) Load 4274(f16lodClamp)
-            5116:  7(f16vec4) ImageSampleExplicitLod 5111 5112 Grad MinLod 5113 5114 5115
-            5117:  7(f16vec4) Load 4972(texel)
-            5118:  7(f16vec4) FAdd 5117 5116
-                              Store 4972(texel) 5118
-            5119:         284 Load 286(s2DArray)
-            5120:  167(fvec3) Load 169(c3)
-            5121:   53(fvec2) Load 1409(dPdxy2)
-            5122:   53(fvec2) Load 1409(dPdxy2)
-            5123:   52(float) Load 4267(lodClamp)
-            5124:  7(f16vec4) ImageSampleExplicitLod 5119 5120 Grad MinLod 5121 5122 5123
-            5125:  7(f16vec4) Load 4972(texel)
-            5126:  7(f16vec4) FAdd 5125 5124
-                              Store 4972(texel) 5126
-            5127:         284 Load 286(s2DArray)
-            5128:175(f16vec3) Load 177(f16c3)
-            5129:154(f16vec2) Load 1417(f16dPdxy2)
-            5130:154(f16vec2) Load 1417(f16dPdxy2)
-            5131:6(float16_t) Load 4274(f16lodClamp)
-            5132:  7(f16vec4) ImageSampleExplicitLod 5127 5128 Grad MinLod 5129 5130 5131
-            5133:  7(f16vec4) Load 4972(texel)
-            5134:  7(f16vec4) FAdd 5133 5132
-                              Store 4972(texel) 5134
-            5135:         316 Load 318(s1DArrayShadow)
-            5136:  167(fvec3) Load 169(c3)
-            5137:   52(float) Load 1393(dPdxy1)
-            5138:   52(float) Load 1393(dPdxy1)
-            5139:   52(float) Load 4267(lodClamp)
-            5140:   52(float) CompositeExtract 5136 2
-            5141:6(float16_t) ImageSampleDrefExplicitLod 5135 5136 5140 Grad MinLod 5137 5138 5139
-            5142:    208(ptr) AccessChain 4972(texel) 207
-            5143:6(float16_t) Load 5142
-            5144:6(float16_t) FAdd 5143 5141
-            5145:    208(ptr) AccessChain 4972(texel) 207
-                              Store 5145 5144
-            5146:         316 Load 318(s1DArrayShadow)
-            5147:154(f16vec2) Load 156(f16c2)
-            5148:   52(float) Load 215(compare)
-            5149:6(float16_t) Load 1401(f16dPdxy1)
-            5150:6(float16_t) Load 1401(f16dPdxy1)
-            5151:6(float16_t) Load 4274(f16lodClamp)
-            5152:6(float16_t) ImageSampleDrefExplicitLod 5146 5147 5148 Grad MinLod 5149 5150 5151
-            5153:    208(ptr) AccessChain 4972(texel) 207
-            5154:6(float16_t) Load 5153
-            5155:6(float16_t) FAdd 5154 5152
-            5156:    208(ptr) AccessChain 4972(texel) 207
-                              Store 5156 5155
-            5157:         337 Load 339(s2DArrayShadow)
-            5158:  249(fvec4) Load 251(c4)
-            5159:   53(fvec2) Load 1409(dPdxy2)
-            5160:   53(fvec2) Load 1409(dPdxy2)
-            5161:   52(float) Load 4267(lodClamp)
-            5162:   52(float) CompositeExtract 5158 3
-            5163:6(float16_t) ImageSampleDrefExplicitLod 5157 5158 5162 Grad MinLod 5159 5160 5161
-            5164:    208(ptr) AccessChain 4972(texel) 207
-            5165:6(float16_t) Load 5164
-            5166:6(float16_t) FAdd 5165 5163
-            5167:    208(ptr) AccessChain 4972(texel) 207
-                              Store 5167 5166
-            5168:         337 Load 339(s2DArrayShadow)
-            5169:175(f16vec3) Load 177(f16c3)
-            5170:   52(float) Load 215(compare)
-            5171:154(f16vec2) Load 1417(f16dPdxy2)
-            5172:154(f16vec2) Load 1417(f16dPdxy2)
-            5173:6(float16_t) Load 4274(f16lodClamp)
-            5174:6(float16_t) ImageSampleDrefExplicitLod 5168 5169 5170 Grad MinLod 5171 5172 5173
-            5175:    208(ptr) AccessChain 4972(texel) 207
-            5176:6(float16_t) Load 5175
-            5177:6(float16_t) FAdd 5176 5174
-            5178:    208(ptr) AccessChain 4972(texel) 207
-                              Store 5178 5177
-            5179:         299 Load 301(sCubeArray)
-            5180:  249(fvec4) Load 251(c4)
-            5181:  167(fvec3) Load 1425(dPdxy3)
-            5182:  167(fvec3) Load 1425(dPdxy3)
-            5183:   52(float) Load 4267(lodClamp)
-            5184:  7(f16vec4) ImageSampleExplicitLod 5179 5180 Grad MinLod 5181 5182 5183
-            5185:  7(f16vec4) Load 4972(texel)
-            5186:  7(f16vec4) FAdd 5185 5184
-                              Store 4972(texel) 5186
-            5187:         299 Load 301(sCubeArray)
-            5188:  7(f16vec4) Load 309(f16c4)
-            5189:175(f16vec3) Load 1433(f16dPdxy3)
-            5190:175(f16vec3) Load 1433(f16dPdxy3)
-            5191:6(float16_t) Load 4274(f16lodClamp)
-            5192:  7(f16vec4) ImageSampleExplicitLod 5187 5188 Grad MinLod 5189 5190 5191
-            5193:  7(f16vec4) Load 4972(texel)
-            5194:  7(f16vec4) FAdd 5193 5192
-                              Store 4972(texel) 5194
-            5195:  7(f16vec4) Load 4972(texel)
-                              ReturnValue 5195
+            5103:         224 Load 226(s2DShadow)
+            5104:  167(fvec3) Load 169(c3)
+            5105:   53(fvec2) Load 1409(dPdxy2)
+            5106:   53(fvec2) Load 1409(dPdxy2)
+            5107:   52(float) Load 4311(lodClamp)
+            5108:   52(float) CompositeExtract 5104 2
+            5109:6(float16_t) ImageSampleDrefExplicitLod 5103 5104 5108 Grad MinLod 5105 5106 5107
+            5110:    208(ptr) AccessChain 5016(texel) 207
+            5111:6(float16_t) Load 5110
+            5112:6(float16_t) FAdd 5111 5109
+            5113:    208(ptr) AccessChain 5016(texel) 207
+                              Store 5113 5112
+            5114:         224 Load 226(s2DShadow)
+            5115:154(f16vec2) Load 156(f16c2)
+            5116:   52(float) Load 215(compare)
+            5117:154(f16vec2) Load 1417(f16dPdxy2)
+            5118:154(f16vec2) Load 1417(f16dPdxy2)
+            5119:6(float16_t) Load 4318(f16lodClamp)
+            5120:6(float16_t) ImageSampleDrefExplicitLod 5114 5115 5116 Grad MinLod 5117 5118 5119
+            5121:    208(ptr) AccessChain 5016(texel) 207
+            5122:6(float16_t) Load 5121
+            5123:6(float16_t) FAdd 5122 5120
+            5124:    208(ptr) AccessChain 5016(texel) 207
+                              Store 5124 5123
+            5125:         245 Load 247(sCubeShadow)
+            5126:  249(fvec4) Load 251(c4)
+            5127:  167(fvec3) Load 1425(dPdxy3)
+            5128:  167(fvec3) Load 1425(dPdxy3)
+            5129:   52(float) Load 4311(lodClamp)
+            5130:   52(float) CompositeExtract 5126 3
+            5131:6(float16_t) ImageSampleDrefExplicitLod 5125 5126 5130 Grad MinLod 5127 5128 5129
+            5132:    208(ptr) AccessChain 5016(texel) 207
+            5133:6(float16_t) Load 5132
+            5134:6(float16_t) FAdd 5133 5131
+            5135:    208(ptr) AccessChain 5016(texel) 207
+                              Store 5135 5134
+            5136:         245 Load 247(sCubeShadow)
+            5137:175(f16vec3) Load 177(f16c3)
+            5138:   52(float) Load 215(compare)
+            5139:175(f16vec3) Load 1433(f16dPdxy3)
+            5140:175(f16vec3) Load 1433(f16dPdxy3)
+            5141:6(float16_t) Load 4318(f16lodClamp)
+            5142:6(float16_t) ImageSampleDrefExplicitLod 5136 5137 5138 Grad MinLod 5139 5140 5141
+            5143:    208(ptr) AccessChain 5016(texel) 207
+            5144:6(float16_t) Load 5143
+            5145:6(float16_t) FAdd 5144 5142
+            5146:    208(ptr) AccessChain 5016(texel) 207
+                              Store 5146 5145
+            5147:         269 Load 271(s1DArray)
+            5148:   53(fvec2) Load 148(c2)
+            5149:   52(float) Load 1393(dPdxy1)
+            5150:   52(float) Load 1393(dPdxy1)
+            5151:   52(float) Load 4311(lodClamp)
+            5152:  7(f16vec4) ImageSampleExplicitLod 5147 5148 Grad MinLod 5149 5150 5151
+            5153:  7(f16vec4) Load 5016(texel)
+            5154:  7(f16vec4) FAdd 5153 5152
+                              Store 5016(texel) 5154
+            5155:         269 Load 271(s1DArray)
+            5156:154(f16vec2) Load 156(f16c2)
+            5157:6(float16_t) Load 1401(f16dPdxy1)
+            5158:6(float16_t) Load 1401(f16dPdxy1)
+            5159:6(float16_t) Load 4318(f16lodClamp)
+            5160:  7(f16vec4) ImageSampleExplicitLod 5155 5156 Grad MinLod 5157 5158 5159
+            5161:  7(f16vec4) Load 5016(texel)
+            5162:  7(f16vec4) FAdd 5161 5160
+                              Store 5016(texel) 5162
+            5163:         284 Load 286(s2DArray)
+            5164:  167(fvec3) Load 169(c3)
+            5165:   53(fvec2) Load 1409(dPdxy2)
+            5166:   53(fvec2) Load 1409(dPdxy2)
+            5167:   52(float) Load 4311(lodClamp)
+            5168:  7(f16vec4) ImageSampleExplicitLod 5163 5164 Grad MinLod 5165 5166 5167
+            5169:  7(f16vec4) Load 5016(texel)
+            5170:  7(f16vec4) FAdd 5169 5168
+                              Store 5016(texel) 5170
+            5171:         284 Load 286(s2DArray)
+            5172:175(f16vec3) Load 177(f16c3)
+            5173:154(f16vec2) Load 1417(f16dPdxy2)
+            5174:154(f16vec2) Load 1417(f16dPdxy2)
+            5175:6(float16_t) Load 4318(f16lodClamp)
+            5176:  7(f16vec4) ImageSampleExplicitLod 5171 5172 Grad MinLod 5173 5174 5175
+            5177:  7(f16vec4) Load 5016(texel)
+            5178:  7(f16vec4) FAdd 5177 5176
+                              Store 5016(texel) 5178
+            5179:         316 Load 318(s1DArrayShadow)
+            5180:  167(fvec3) Load 169(c3)
+            5181:   52(float) Load 1393(dPdxy1)
+            5182:   52(float) Load 1393(dPdxy1)
+            5183:   52(float) Load 4311(lodClamp)
+            5184:   52(float) CompositeExtract 5180 2
+            5185:6(float16_t) ImageSampleDrefExplicitLod 5179 5180 5184 Grad MinLod 5181 5182 5183
+            5186:    208(ptr) AccessChain 5016(texel) 207
+            5187:6(float16_t) Load 5186
+            5188:6(float16_t) FAdd 5187 5185
+            5189:    208(ptr) AccessChain 5016(texel) 207
+                              Store 5189 5188
+            5190:         316 Load 318(s1DArrayShadow)
+            5191:154(f16vec2) Load 156(f16c2)
+            5192:   52(float) Load 215(compare)
+            5193:6(float16_t) Load 1401(f16dPdxy1)
+            5194:6(float16_t) Load 1401(f16dPdxy1)
+            5195:6(float16_t) Load 4318(f16lodClamp)
+            5196:6(float16_t) ImageSampleDrefExplicitLod 5190 5191 5192 Grad MinLod 5193 5194 5195
+            5197:    208(ptr) AccessChain 5016(texel) 207
+            5198:6(float16_t) Load 5197
+            5199:6(float16_t) FAdd 5198 5196
+            5200:    208(ptr) AccessChain 5016(texel) 207
+                              Store 5200 5199
+            5201:         337 Load 339(s2DArrayShadow)
+            5202:  249(fvec4) Load 251(c4)
+            5203:   53(fvec2) Load 1409(dPdxy2)
+            5204:   53(fvec2) Load 1409(dPdxy2)
+            5205:   52(float) Load 4311(lodClamp)
+            5206:   52(float) CompositeExtract 5202 3
+            5207:6(float16_t) ImageSampleDrefExplicitLod 5201 5202 5206 Grad MinLod 5203 5204 5205
+            5208:    208(ptr) AccessChain 5016(texel) 207
+            5209:6(float16_t) Load 5208
+            5210:6(float16_t) FAdd 5209 5207
+            5211:    208(ptr) AccessChain 5016(texel) 207
+                              Store 5211 5210
+            5212:         337 Load 339(s2DArrayShadow)
+            5213:175(f16vec3) Load 177(f16c3)
+            5214:   52(float) Load 215(compare)
+            5215:154(f16vec2) Load 1417(f16dPdxy2)
+            5216:154(f16vec2) Load 1417(f16dPdxy2)
+            5217:6(float16_t) Load 4318(f16lodClamp)
+            5218:6(float16_t) ImageSampleDrefExplicitLod 5212 5213 5214 Grad MinLod 5215 5216 5217
+            5219:    208(ptr) AccessChain 5016(texel) 207
+            5220:6(float16_t) Load 5219
+            5221:6(float16_t) FAdd 5220 5218
+            5222:    208(ptr) AccessChain 5016(texel) 207
+                              Store 5222 5221
+            5223:         299 Load 301(sCubeArray)
+            5224:  249(fvec4) Load 251(c4)
+            5225:  167(fvec3) Load 1425(dPdxy3)
+            5226:  167(fvec3) Load 1425(dPdxy3)
+            5227:   52(float) Load 4311(lodClamp)
+            5228:  7(f16vec4) ImageSampleExplicitLod 5223 5224 Grad MinLod 5225 5226 5227
+            5229:  7(f16vec4) Load 5016(texel)
+            5230:  7(f16vec4) FAdd 5229 5228
+                              Store 5016(texel) 5230
+            5231:         299 Load 301(sCubeArray)
+            5232:  7(f16vec4) Load 309(f16c4)
+            5233:175(f16vec3) Load 1433(f16dPdxy3)
+            5234:175(f16vec3) Load 1433(f16dPdxy3)
+            5235:6(float16_t) Load 4318(f16lodClamp)
+            5236:  7(f16vec4) ImageSampleExplicitLod 5231 5232 Grad MinLod 5233 5234 5235
+            5237:  7(f16vec4) Load 5016(texel)
+            5238:  7(f16vec4) FAdd 5237 5236
+                              Store 5016(texel) 5238
+            5239:  7(f16vec4) Load 5016(texel)
+                              ReturnValue 5239
                               FunctionEnd
 111(testSparseTextureGradOffsetClamp():  7(f16vec4) Function None 8
              112:             Label
-     5198(texel):     64(ptr) Variable Function
-                              Store 5198(texel) 121
-            5199:         143 Load 145(s2D)
-            5200:   53(fvec2) Load 148(c2)
-            5201:   53(fvec2) Load 1409(dPdxy2)
-            5202:   53(fvec2) Load 1409(dPdxy2)
-            5203:   52(float) Load 4267(lodClamp)
-            5204:3102(ResType) ImageSparseSampleExplicitLod 5199 5200 Grad ConstOffset MinLod 5201 5202 722 5203
-            5205:  7(f16vec4) CompositeExtract 5204 1
-                              Store 5198(texel) 5205
-            5206:     47(int) CompositeExtract 5204 0
-            5207:         143 Load 145(s2D)
-            5208:154(f16vec2) Load 156(f16c2)
-            5209:154(f16vec2) Load 1417(f16dPdxy2)
-            5210:154(f16vec2) Load 1417(f16dPdxy2)
-            5211:6(float16_t) Load 4274(f16lodClamp)
-            5212:3102(ResType) ImageSparseSampleExplicitLod 5207 5208 Grad ConstOffset MinLod 5209 5210 722 5211
-            5213:  7(f16vec4) CompositeExtract 5212 1
-                              Store 5198(texel) 5213
-            5214:     47(int) CompositeExtract 5212 0
-            5215:         163 Load 165(s3D)
-            5216:  167(fvec3) Load 169(c3)
-            5217:  167(fvec3) Load 1425(dPdxy3)
-            5218:  167(fvec3) Load 1425(dPdxy3)
-            5219:   52(float) Load 4267(lodClamp)
-            5220:3102(ResType) ImageSparseSampleExplicitLod 5215 5216 Grad ConstOffset MinLod 5217 5218 735 5219
-            5221:  7(f16vec4) CompositeExtract 5220 1
-                              Store 5198(texel) 5221
-            5222:     47(int) CompositeExtract 5220 0
-            5223:         163 Load 165(s3D)
-            5224:175(f16vec3) Load 177(f16c3)
-            5225:175(f16vec3) Load 1433(f16dPdxy3)
-            5226:175(f16vec3) Load 1433(f16dPdxy3)
-            5227:6(float16_t) Load 4274(f16lodClamp)
-            5228:3102(ResType) ImageSparseSampleExplicitLod 5223 5224 Grad ConstOffset MinLod 5225 5226 735 5227
-            5229:  7(f16vec4) CompositeExtract 5228 1
-                              Store 5198(texel) 5229
-            5230:     47(int) CompositeExtract 5228 0
-            5231:         224 Load 226(s2DShadow)
-            5232:  167(fvec3) Load 169(c3)
-            5233:   53(fvec2) Load 1409(dPdxy2)
-            5234:   53(fvec2) Load 1409(dPdxy2)
-            5235:   52(float) Load 4267(lodClamp)
-            5236:    208(ptr) AccessChain 5198(texel) 207
-            5237:   52(float) CompositeExtract 5232 2
-            5238:3138(ResType) ImageSparseSampleDrefExplicitLod 5231 5232 5237 Grad ConstOffset MinLod 5233 5234 722 5235
-            5239:6(float16_t) CompositeExtract 5238 1
-                              Store 5236 5239
-            5240:     47(int) CompositeExtract 5238 0
-            5241:         224 Load 226(s2DShadow)
-            5242:154(f16vec2) Load 156(f16c2)
-            5243:   52(float) Load 215(compare)
-            5244:154(f16vec2) Load 1417(f16dPdxy2)
-            5245:154(f16vec2) Load 1417(f16dPdxy2)
-            5246:6(float16_t) Load 4274(f16lodClamp)
-            5247:    208(ptr) AccessChain 5198(texel) 207
-            5248:3138(ResType) ImageSparseSampleDrefExplicitLod 5241 5242 5243 Grad ConstOffset MinLod 5244 5245 722 5246
-            5249:6(float16_t) CompositeExtract 5248 1
-                              Store 5247 5249
+     5242(texel):     64(ptr) Variable Function
+                              Store 5242(texel) 121
+            5243:         143 Load 145(s2D)
+            5244:   53(fvec2) Load 148(c2)
+            5245:   53(fvec2) Load 1409(dPdxy2)
+            5246:   53(fvec2) Load 1409(dPdxy2)
+            5247:   52(float) Load 4311(lodClamp)
+            5248:3146(ResType) ImageSparseSampleExplicitLod 5243 5244 Grad ConstOffset MinLod 5245 5246 722 5247
+            5249:  7(f16vec4) CompositeExtract 5248 1
+                              Store 5242(texel) 5249
             5250:     47(int) CompositeExtract 5248 0
-            5251:         284 Load 286(s2DArray)
-            5252:  167(fvec3) Load 169(c3)
-            5253:   53(fvec2) Load 1409(dPdxy2)
-            5254:   53(fvec2) Load 1409(dPdxy2)
-            5255:   52(float) Load 4267(lodClamp)
-            5256:3102(ResType) ImageSparseSampleExplicitLod 5251 5252 Grad ConstOffset MinLod 5253 5254 722 5255
+            5251:         143 Load 145(s2D)
+            5252:154(f16vec2) Load 156(f16c2)
+            5253:154(f16vec2) Load 1417(f16dPdxy2)
+            5254:154(f16vec2) Load 1417(f16dPdxy2)
+            5255:6(float16_t) Load 4318(f16lodClamp)
+            5256:3146(ResType) ImageSparseSampleExplicitLod 5251 5252 Grad ConstOffset MinLod 5253 5254 722 5255
             5257:  7(f16vec4) CompositeExtract 5256 1
-                              Store 5198(texel) 5257
+                              Store 5242(texel) 5257
             5258:     47(int) CompositeExtract 5256 0
-            5259:         284 Load 286(s2DArray)
-            5260:175(f16vec3) Load 177(f16c3)
-            5261:154(f16vec2) Load 1417(f16dPdxy2)
-            5262:154(f16vec2) Load 1417(f16dPdxy2)
-            5263:6(float16_t) Load 4274(f16lodClamp)
-            5264:3102(ResType) ImageSparseSampleExplicitLod 5259 5260 Grad ConstOffset MinLod 5261 5262 722 5263
+            5259:         163 Load 165(s3D)
+            5260:  167(fvec3) Load 169(c3)
+            5261:  167(fvec3) Load 1425(dPdxy3)
+            5262:  167(fvec3) Load 1425(dPdxy3)
+            5263:   52(float) Load 4311(lodClamp)
+            5264:3146(ResType) ImageSparseSampleExplicitLod 5259 5260 Grad ConstOffset MinLod 5261 5262 735 5263
             5265:  7(f16vec4) CompositeExtract 5264 1
-                              Store 5198(texel) 5265
+                              Store 5242(texel) 5265
             5266:     47(int) CompositeExtract 5264 0
-            5267:         337 Load 339(s2DArrayShadow)
-            5268:  249(fvec4) Load 251(c4)
-            5269:   53(fvec2) Load 1409(dPdxy2)
-            5270:   53(fvec2) Load 1409(dPdxy2)
-            5271:   52(float) Load 4267(lodClamp)
-            5272:    208(ptr) AccessChain 5198(texel) 207
-            5273:   52(float) CompositeExtract 5268 3
-            5274:3138(ResType) ImageSparseSampleDrefExplicitLod 5267 5268 5273 Grad ConstOffset MinLod 5269 5270 722 5271
-            5275:6(float16_t) CompositeExtract 5274 1
-                              Store 5272 5275
-            5276:     47(int) CompositeExtract 5274 0
-            5277:         337 Load 339(s2DArrayShadow)
-            5278:175(f16vec3) Load 177(f16c3)
-            5279:   52(float) Load 215(compare)
-            5280:154(f16vec2) Load 1417(f16dPdxy2)
-            5281:154(f16vec2) Load 1417(f16dPdxy2)
-            5282:6(float16_t) Load 4274(f16lodClamp)
-            5283:    208(ptr) AccessChain 5198(texel) 207
-            5284:3138(ResType) ImageSparseSampleDrefExplicitLod 5277 5278 5279 Grad ConstOffset MinLod 5280 5281 722 5282
-            5285:6(float16_t) CompositeExtract 5284 1
-                              Store 5283 5285
-            5286:     47(int) CompositeExtract 5284 0
-            5287:  7(f16vec4) Load 5198(texel)
-                              ReturnValue 5287
+            5267:         163 Load 165(s3D)
+            5268:175(f16vec3) Load 177(f16c3)
+            5269:175(f16vec3) Load 1433(f16dPdxy3)
+            5270:175(f16vec3) Load 1433(f16dPdxy3)
+            5271:6(float16_t) Load 4318(f16lodClamp)
+            5272:3146(ResType) ImageSparseSampleExplicitLod 5267 5268 Grad ConstOffset MinLod 5269 5270 735 5271
+            5273:  7(f16vec4) CompositeExtract 5272 1
+                              Store 5242(texel) 5273
+            5274:     47(int) CompositeExtract 5272 0
+            5275:         224 Load 226(s2DShadow)
+            5276:  167(fvec3) Load 169(c3)
+            5277:   53(fvec2) Load 1409(dPdxy2)
+            5278:   53(fvec2) Load 1409(dPdxy2)
+            5279:   52(float) Load 4311(lodClamp)
+            5280:    208(ptr) AccessChain 5242(texel) 207
+            5281:   52(float) CompositeExtract 5276 2
+            5282:3182(ResType) ImageSparseSampleDrefExplicitLod 5275 5276 5281 Grad ConstOffset MinLod 5277 5278 722 5279
+            5283:6(float16_t) CompositeExtract 5282 1
+                              Store 5280 5283
+            5284:     47(int) CompositeExtract 5282 0
+            5285:         224 Load 226(s2DShadow)
+            5286:154(f16vec2) Load 156(f16c2)
+            5287:   52(float) Load 215(compare)
+            5288:154(f16vec2) Load 1417(f16dPdxy2)
+            5289:154(f16vec2) Load 1417(f16dPdxy2)
+            5290:6(float16_t) Load 4318(f16lodClamp)
+            5291:    208(ptr) AccessChain 5242(texel) 207
+            5292:3182(ResType) ImageSparseSampleDrefExplicitLod 5285 5286 5287 Grad ConstOffset MinLod 5288 5289 722 5290
+            5293:6(float16_t) CompositeExtract 5292 1
+                              Store 5291 5293
+            5294:     47(int) CompositeExtract 5292 0
+            5295:         284 Load 286(s2DArray)
+            5296:  167(fvec3) Load 169(c3)
+            5297:   53(fvec2) Load 1409(dPdxy2)
+            5298:   53(fvec2) Load 1409(dPdxy2)
+            5299:   52(float) Load 4311(lodClamp)
+            5300:3146(ResType) ImageSparseSampleExplicitLod 5295 5296 Grad ConstOffset MinLod 5297 5298 722 5299
+            5301:  7(f16vec4) CompositeExtract 5300 1
+                              Store 5242(texel) 5301
+            5302:     47(int) CompositeExtract 5300 0
+            5303:         284 Load 286(s2DArray)
+            5304:175(f16vec3) Load 177(f16c3)
+            5305:154(f16vec2) Load 1417(f16dPdxy2)
+            5306:154(f16vec2) Load 1417(f16dPdxy2)
+            5307:6(float16_t) Load 4318(f16lodClamp)
+            5308:3146(ResType) ImageSparseSampleExplicitLod 5303 5304 Grad ConstOffset MinLod 5305 5306 722 5307
+            5309:  7(f16vec4) CompositeExtract 5308 1
+                              Store 5242(texel) 5309
+            5310:     47(int) CompositeExtract 5308 0
+            5311:         337 Load 339(s2DArrayShadow)
+            5312:  249(fvec4) Load 251(c4)
+            5313:   53(fvec2) Load 1409(dPdxy2)
+            5314:   53(fvec2) Load 1409(dPdxy2)
+            5315:   52(float) Load 4311(lodClamp)
+            5316:    208(ptr) AccessChain 5242(texel) 207
+            5317:   52(float) CompositeExtract 5312 3
+            5318:3182(ResType) ImageSparseSampleDrefExplicitLod 5311 5312 5317 Grad ConstOffset MinLod 5313 5314 722 5315
+            5319:6(float16_t) CompositeExtract 5318 1
+                              Store 5316 5319
+            5320:     47(int) CompositeExtract 5318 0
+            5321:         337 Load 339(s2DArrayShadow)
+            5322:175(f16vec3) Load 177(f16c3)
+            5323:   52(float) Load 215(compare)
+            5324:154(f16vec2) Load 1417(f16dPdxy2)
+            5325:154(f16vec2) Load 1417(f16dPdxy2)
+            5326:6(float16_t) Load 4318(f16lodClamp)
+            5327:    208(ptr) AccessChain 5242(texel) 207
+            5328:3182(ResType) ImageSparseSampleDrefExplicitLod 5321 5322 5323 Grad ConstOffset MinLod 5324 5325 722 5326
+            5329:6(float16_t) CompositeExtract 5328 1
+                              Store 5327 5329
+            5330:     47(int) CompositeExtract 5328 0
+            5331:  7(f16vec4) Load 5242(texel)
+                              ReturnValue 5331
                               FunctionEnd
 113(testTextureGradOffsetClamp():  7(f16vec4) Function None 8
              114:             Label
-     5290(texel):     64(ptr) Variable Function
-                              Store 5290(texel) 121
-            5291:         123 Load 125(s1D)
-            5292:   52(float) Load 128(c1)
-            5293:   52(float) Load 1393(dPdxy1)
-            5294:   52(float) Load 1393(dPdxy1)
-            5295:   52(float) Load 4267(lodClamp)
-            5296:  7(f16vec4) ImageSampleExplicitLod 5291 5292 Grad ConstOffset MinLod 5293 5294 709 5295
-            5297:  7(f16vec4) Load 5290(texel)
-            5298:  7(f16vec4) FAdd 5297 5296
-                              Store 5290(texel) 5298
-            5299:         123 Load 125(s1D)
-            5300:6(float16_t) Load 135(f16c1)
-            5301:6(float16_t) Load 1401(f16dPdxy1)
-            5302:6(float16_t) Load 1401(f16dPdxy1)
-            5303:6(float16_t) Load 4274(f16lodClamp)
-            5304:  7(f16vec4) ImageSampleExplicitLod 5299 5300 Grad ConstOffset MinLod 5301 5302 709 5303
-            5305:  7(f16vec4) Load 5290(texel)
-            5306:  7(f16vec4) FAdd 5305 5304
-                              Store 5290(texel) 5306
-            5307:         143 Load 145(s2D)
-            5308:   53(fvec2) Load 148(c2)
-            5309:   53(fvec2) Load 1409(dPdxy2)
-            5310:   53(fvec2) Load 1409(dPdxy2)
-            5311:   52(float) Load 4267(lodClamp)
-            5312:  7(f16vec4) ImageSampleExplicitLod 5307 5308 Grad ConstOffset MinLod 5309 5310 722 5311
-            5313:  7(f16vec4) Load 5290(texel)
-            5314:  7(f16vec4) FAdd 5313 5312
-                              Store 5290(texel) 5314
-            5315:         143 Load 145(s2D)
-            5316:154(f16vec2) Load 156(f16c2)
-            5317:154(f16vec2) Load 1417(f16dPdxy2)
-            5318:154(f16vec2) Load 1417(f16dPdxy2)
-            5319:6(float16_t) Load 4274(f16lodClamp)
-            5320:  7(f16vec4) ImageSampleExplicitLod 5315 5316 Grad ConstOffset MinLod 5317 5318 722 5319
-            5321:  7(f16vec4) Load 5290(texel)
-            5322:  7(f16vec4) FAdd 5321 5320
-                              Store 5290(texel) 5322
-            5323:         163 Load 165(s3D)
-            5324:  167(fvec3) Load 169(c3)
-            5325:  167(fvec3) Load 1425(dPdxy3)
-            5326:  167(fvec3) Load 1425(dPdxy3)
-            5327:   52(float) Load 4267(lodClamp)
-            5328:  7(f16vec4) ImageSampleExplicitLod 5323 5324 Grad ConstOffset MinLod 5325 5326 735 5327
-            5329:  7(f16vec4) Load 5290(texel)
-            5330:  7(f16vec4) FAdd 5329 5328
-                              Store 5290(texel) 5330
-            5331:         163 Load 165(s3D)
-            5332:175(f16vec3) Load 177(f16c3)
-            5333:175(f16vec3) Load 1433(f16dPdxy3)
-            5334:175(f16vec3) Load 1433(f16dPdxy3)
-            5335:6(float16_t) Load 4274(f16lodClamp)
-            5336:  7(f16vec4) ImageSampleExplicitLod 5331 5332 Grad ConstOffset MinLod 5333 5334 735 5335
-            5337:  7(f16vec4) Load 5290(texel)
-            5338:  7(f16vec4) FAdd 5337 5336
-                              Store 5290(texel) 5338
-            5339:         199 Load 201(s1DShadow)
-            5340:  167(fvec3) Load 169(c3)
-            5341:   52(float) Load 1393(dPdxy1)
-            5342:   52(float) Load 1393(dPdxy1)
-            5343:   52(float) Load 4267(lodClamp)
-            5344:   52(float) CompositeExtract 5340 2
-            5345:6(float16_t) ImageSampleDrefExplicitLod 5339 5340 5344 Grad ConstOffset MinLod 5341 5342 709 5343
-            5346:    208(ptr) AccessChain 5290(texel) 207
-            5347:6(float16_t) Load 5346
-            5348:6(float16_t) FAdd 5347 5345
-            5349:    208(ptr) AccessChain 5290(texel) 207
-                              Store 5349 5348
-            5350:         199 Load 201(s1DShadow)
-            5351:154(f16vec2) Load 156(f16c2)
-            5352:   52(float) Load 215(compare)
-            5353:6(float16_t) Load 1401(f16dPdxy1)
-            5354:6(float16_t) Load 1401(f16dPdxy1)
-            5355:6(float16_t) Load 4274(f16lodClamp)
-            5356:6(float16_t) ImageSampleDrefExplicitLod 5350 5351 5352 Grad ConstOffset MinLod 5353 5354 709 5355
-            5357:    208(ptr) AccessChain 5290(texel) 207
-            5358:6(float16_t) Load 5357
-            5359:6(float16_t) FAdd 5358 5356
-            5360:    208(ptr) AccessChain 5290(texel) 207
-                              Store 5360 5359
-            5361:         224 Load 226(s2DShadow)
-            5362:  167(fvec3) Load 169(c3)
-            5363:   53(fvec2) Load 1409(dPdxy2)
-            5364:   53(fvec2) Load 1409(dPdxy2)
-            5365:   52(float) Load 4267(lodClamp)
-            5366:   52(float) CompositeExtract 5362 2
-            5367:6(float16_t) ImageSampleDrefExplicitLod 5361 5362 5366 Grad ConstOffset MinLod 5363 5364 722 5365
-            5368:    208(ptr) AccessChain 5290(texel) 207
-            5369:6(float16_t) Load 5368
-            5370:6(float16_t) FAdd 5369 5367
-            5371:    208(ptr) AccessChain 5290(texel) 207
-                              Store 5371 5370
-            5372:         224 Load 226(s2DShadow)
-            5373:154(f16vec2) Load 156(f16c2)
-            5374:   52(float) Load 215(compare)
-            5375:154(f16vec2) Load 1417(f16dPdxy2)
-            5376:154(f16vec2) Load 1417(f16dPdxy2)
-            5377:6(float16_t) Load 4274(f16lodClamp)
-            5378:6(float16_t) ImageSampleDrefExplicitLod 5372 5373 5374 Grad ConstOffset MinLod 5375 5376 722 5377
-            5379:    208(ptr) AccessChain 5290(texel) 207
-            5380:6(float16_t) Load 5379
-            5381:6(float16_t) FAdd 5380 5378
-            5382:    208(ptr) AccessChain 5290(texel) 207
-                              Store 5382 5381
-            5383:         269 Load 271(s1DArray)
-            5384:   53(fvec2) Load 148(c2)
+     5334(texel):     64(ptr) Variable Function
+                              Store 5334(texel) 121
+            5335:         123 Load 125(s1D)
+            5336:   52(float) Load 128(c1)
+            5337:   52(float) Load 1393(dPdxy1)
+            5338:   52(float) Load 1393(dPdxy1)
+            5339:   52(float) Load 4311(lodClamp)
+            5340:  7(f16vec4) ImageSampleExplicitLod 5335 5336 Grad ConstOffset MinLod 5337 5338 709 5339
+            5341:  7(f16vec4) Load 5334(texel)
+            5342:  7(f16vec4) FAdd 5341 5340
+                              Store 5334(texel) 5342
+            5343:         123 Load 125(s1D)
+            5344:6(float16_t) Load 135(f16c1)
+            5345:6(float16_t) Load 1401(f16dPdxy1)
+            5346:6(float16_t) Load 1401(f16dPdxy1)
+            5347:6(float16_t) Load 4318(f16lodClamp)
+            5348:  7(f16vec4) ImageSampleExplicitLod 5343 5344 Grad ConstOffset MinLod 5345 5346 709 5347
+            5349:  7(f16vec4) Load 5334(texel)
+            5350:  7(f16vec4) FAdd 5349 5348
+                              Store 5334(texel) 5350
+            5351:         143 Load 145(s2D)
+            5352:   53(fvec2) Load 148(c2)
+            5353:   53(fvec2) Load 1409(dPdxy2)
+            5354:   53(fvec2) Load 1409(dPdxy2)
+            5355:   52(float) Load 4311(lodClamp)
+            5356:  7(f16vec4) ImageSampleExplicitLod 5351 5352 Grad ConstOffset MinLod 5353 5354 722 5355
+            5357:  7(f16vec4) Load 5334(texel)
+            5358:  7(f16vec4) FAdd 5357 5356
+                              Store 5334(texel) 5358
+            5359:         143 Load 145(s2D)
+            5360:154(f16vec2) Load 156(f16c2)
+            5361:154(f16vec2) Load 1417(f16dPdxy2)
+            5362:154(f16vec2) Load 1417(f16dPdxy2)
+            5363:6(float16_t) Load 4318(f16lodClamp)
+            5364:  7(f16vec4) ImageSampleExplicitLod 5359 5360 Grad ConstOffset MinLod 5361 5362 722 5363
+            5365:  7(f16vec4) Load 5334(texel)
+            5366:  7(f16vec4) FAdd 5365 5364
+                              Store 5334(texel) 5366
+            5367:         163 Load 165(s3D)
+            5368:  167(fvec3) Load 169(c3)
+            5369:  167(fvec3) Load 1425(dPdxy3)
+            5370:  167(fvec3) Load 1425(dPdxy3)
+            5371:   52(float) Load 4311(lodClamp)
+            5372:  7(f16vec4) ImageSampleExplicitLod 5367 5368 Grad ConstOffset MinLod 5369 5370 735 5371
+            5373:  7(f16vec4) Load 5334(texel)
+            5374:  7(f16vec4) FAdd 5373 5372
+                              Store 5334(texel) 5374
+            5375:         163 Load 165(s3D)
+            5376:175(f16vec3) Load 177(f16c3)
+            5377:175(f16vec3) Load 1433(f16dPdxy3)
+            5378:175(f16vec3) Load 1433(f16dPdxy3)
+            5379:6(float16_t) Load 4318(f16lodClamp)
+            5380:  7(f16vec4) ImageSampleExplicitLod 5375 5376 Grad ConstOffset MinLod 5377 5378 735 5379
+            5381:  7(f16vec4) Load 5334(texel)
+            5382:  7(f16vec4) FAdd 5381 5380
+                              Store 5334(texel) 5382
+            5383:         199 Load 201(s1DShadow)
+            5384:  167(fvec3) Load 169(c3)
             5385:   52(float) Load 1393(dPdxy1)
             5386:   52(float) Load 1393(dPdxy1)
-            5387:   52(float) Load 4267(lodClamp)
-            5388:  7(f16vec4) ImageSampleExplicitLod 5383 5384 Grad ConstOffset MinLod 5385 5386 709 5387
-            5389:  7(f16vec4) Load 5290(texel)
-            5390:  7(f16vec4) FAdd 5389 5388
-                              Store 5290(texel) 5390
-            5391:         269 Load 271(s1DArray)
-            5392:154(f16vec2) Load 156(f16c2)
-            5393:6(float16_t) Load 1401(f16dPdxy1)
-            5394:6(float16_t) Load 1401(f16dPdxy1)
-            5395:6(float16_t) Load 4274(f16lodClamp)
-            5396:  7(f16vec4) ImageSampleExplicitLod 5391 5392 Grad ConstOffset MinLod 5393 5394 709 5395
-            5397:  7(f16vec4) Load 5290(texel)
-            5398:  7(f16vec4) FAdd 5397 5396
-                              Store 5290(texel) 5398
-            5399:         284 Load 286(s2DArray)
-            5400:  167(fvec3) Load 169(c3)
-            5401:   53(fvec2) Load 1409(dPdxy2)
-            5402:   53(fvec2) Load 1409(dPdxy2)
-            5403:   52(float) Load 4267(lodClamp)
-            5404:  7(f16vec4) ImageSampleExplicitLod 5399 5400 Grad ConstOffset MinLod 5401 5402 722 5403
-            5405:  7(f16vec4) Load 5290(texel)
-            5406:  7(f16vec4) FAdd 5405 5404
-                              Store 5290(texel) 5406
-            5407:         284 Load 286(s2DArray)
-            5408:175(f16vec3) Load 177(f16c3)
-            5409:154(f16vec2) Load 1417(f16dPdxy2)
-            5410:154(f16vec2) Load 1417(f16dPdxy2)
-            5411:6(float16_t) Load 4274(f16lodClamp)
-            5412:  7(f16vec4) ImageSampleExplicitLod 5407 5408 Grad ConstOffset MinLod 5409 5410 722 5411
-            5413:  7(f16vec4) Load 5290(texel)
-            5414:  7(f16vec4) FAdd 5413 5412
-                              Store 5290(texel) 5414
-            5415:         316 Load 318(s1DArrayShadow)
-            5416:  167(fvec3) Load 169(c3)
-            5417:   52(float) Load 1393(dPdxy1)
-            5418:   52(float) Load 1393(dPdxy1)
-            5419:   52(float) Load 4267(lodClamp)
-            5420:   52(float) CompositeExtract 5416 2
-            5421:6(float16_t) ImageSampleDrefExplicitLod 5415 5416 5420 Grad ConstOffset MinLod 5417 5418 709 5419
-            5422:    208(ptr) AccessChain 5290(texel) 207
-            5423:6(float16_t) Load 5422
-            5424:6(float16_t) FAdd 5423 5421
-            5425:    208(ptr) AccessChain 5290(texel) 207
-                              Store 5425 5424
-            5426:         316 Load 318(s1DArrayShadow)
-            5427:154(f16vec2) Load 156(f16c2)
-            5428:   52(float) Load 215(compare)
-            5429:6(float16_t) Load 1401(f16dPdxy1)
-            5430:6(float16_t) Load 1401(f16dPdxy1)
-            5431:6(float16_t) Load 4274(f16lodClamp)
-            5432:6(float16_t) ImageSampleDrefExplicitLod 5426 5427 5428 Grad ConstOffset MinLod 5429 5430 709 5431
-            5433:    208(ptr) AccessChain 5290(texel) 207
-            5434:6(float16_t) Load 5433
-            5435:6(float16_t) FAdd 5434 5432
-            5436:    208(ptr) AccessChain 5290(texel) 207
-                              Store 5436 5435
-            5437:         337 Load 339(s2DArrayShadow)
-            5438:  249(fvec4) Load 251(c4)
-            5439:   53(fvec2) Load 1409(dPdxy2)
-            5440:   53(fvec2) Load 1409(dPdxy2)
-            5441:   52(float) Load 4267(lodClamp)
-            5442:   52(float) CompositeExtract 5438 3
-            5443:6(float16_t) ImageSampleDrefExplicitLod 5437 5438 5442 Grad ConstOffset MinLod 5439 5440 722 5441
-            5444:    208(ptr) AccessChain 5290(texel) 207
-            5445:6(float16_t) Load 5444
-            5446:6(float16_t) FAdd 5445 5443
-            5447:    208(ptr) AccessChain 5290(texel) 207
-                              Store 5447 5446
-            5448:         337 Load 339(s2DArrayShadow)
-            5449:175(f16vec3) Load 177(f16c3)
-            5450:   52(float) Load 215(compare)
-            5451:154(f16vec2) Load 1417(f16dPdxy2)
-            5452:154(f16vec2) Load 1417(f16dPdxy2)
-            5453:6(float16_t) Load 4274(f16lodClamp)
-            5454:6(float16_t) ImageSampleDrefExplicitLod 5448 5449 5450 Grad ConstOffset MinLod 5451 5452 722 5453
-            5455:    208(ptr) AccessChain 5290(texel) 207
-            5456:6(float16_t) Load 5455
-            5457:6(float16_t) FAdd 5456 5454
-            5458:    208(ptr) AccessChain 5290(texel) 207
-                              Store 5458 5457
-            5459:  7(f16vec4) Load 5290(texel)
-                              ReturnValue 5459
+            5387:   52(float) Load 4311(lodClamp)
+            5388:   52(float) CompositeExtract 5384 2
+            5389:6(float16_t) ImageSampleDrefExplicitLod 5383 5384 5388 Grad ConstOffset MinLod 5385 5386 709 5387
+            5390:    208(ptr) AccessChain 5334(texel) 207
+            5391:6(float16_t) Load 5390
+            5392:6(float16_t) FAdd 5391 5389
+            5393:    208(ptr) AccessChain 5334(texel) 207
+                              Store 5393 5392
+            5394:         199 Load 201(s1DShadow)
+            5395:154(f16vec2) Load 156(f16c2)
+            5396:   52(float) Load 215(compare)
+            5397:6(float16_t) Load 1401(f16dPdxy1)
+            5398:6(float16_t) Load 1401(f16dPdxy1)
+            5399:6(float16_t) Load 4318(f16lodClamp)
+            5400:6(float16_t) ImageSampleDrefExplicitLod 5394 5395 5396 Grad ConstOffset MinLod 5397 5398 709 5399
+            5401:    208(ptr) AccessChain 5334(texel) 207
+            5402:6(float16_t) Load 5401
+            5403:6(float16_t) FAdd 5402 5400
+            5404:    208(ptr) AccessChain 5334(texel) 207
+                              Store 5404 5403
+            5405:         224 Load 226(s2DShadow)
+            5406:  167(fvec3) Load 169(c3)
+            5407:   53(fvec2) Load 1409(dPdxy2)
+            5408:   53(fvec2) Load 1409(dPdxy2)
+            5409:   52(float) Load 4311(lodClamp)
+            5410:   52(float) CompositeExtract 5406 2
+            5411:6(float16_t) ImageSampleDrefExplicitLod 5405 5406 5410 Grad ConstOffset MinLod 5407 5408 722 5409
+            5412:    208(ptr) AccessChain 5334(texel) 207
+            5413:6(float16_t) Load 5412
+            5414:6(float16_t) FAdd 5413 5411
+            5415:    208(ptr) AccessChain 5334(texel) 207
+                              Store 5415 5414
+            5416:         224 Load 226(s2DShadow)
+            5417:154(f16vec2) Load 156(f16c2)
+            5418:   52(float) Load 215(compare)
+            5419:154(f16vec2) Load 1417(f16dPdxy2)
+            5420:154(f16vec2) Load 1417(f16dPdxy2)
+            5421:6(float16_t) Load 4318(f16lodClamp)
+            5422:6(float16_t) ImageSampleDrefExplicitLod 5416 5417 5418 Grad ConstOffset MinLod 5419 5420 722 5421
+            5423:    208(ptr) AccessChain 5334(texel) 207
+            5424:6(float16_t) Load 5423
+            5425:6(float16_t) FAdd 5424 5422
+            5426:    208(ptr) AccessChain 5334(texel) 207
+                              Store 5426 5425
+            5427:         269 Load 271(s1DArray)
+            5428:   53(fvec2) Load 148(c2)
+            5429:   52(float) Load 1393(dPdxy1)
+            5430:   52(float) Load 1393(dPdxy1)
+            5431:   52(float) Load 4311(lodClamp)
+            5432:  7(f16vec4) ImageSampleExplicitLod 5427 5428 Grad ConstOffset MinLod 5429 5430 709 5431
+            5433:  7(f16vec4) Load 5334(texel)
+            5434:  7(f16vec4) FAdd 5433 5432
+                              Store 5334(texel) 5434
+            5435:         269 Load 271(s1DArray)
+            5436:154(f16vec2) Load 156(f16c2)
+            5437:6(float16_t) Load 1401(f16dPdxy1)
+            5438:6(float16_t) Load 1401(f16dPdxy1)
+            5439:6(float16_t) Load 4318(f16lodClamp)
+            5440:  7(f16vec4) ImageSampleExplicitLod 5435 5436 Grad ConstOffset MinLod 5437 5438 709 5439
+            5441:  7(f16vec4) Load 5334(texel)
+            5442:  7(f16vec4) FAdd 5441 5440
+                              Store 5334(texel) 5442
+            5443:         284 Load 286(s2DArray)
+            5444:  167(fvec3) Load 169(c3)
+            5445:   53(fvec2) Load 1409(dPdxy2)
+            5446:   53(fvec2) Load 1409(dPdxy2)
+            5447:   52(float) Load 4311(lodClamp)
+            5448:  7(f16vec4) ImageSampleExplicitLod 5443 5444 Grad ConstOffset MinLod 5445 5446 722 5447
+            5449:  7(f16vec4) Load 5334(texel)
+            5450:  7(f16vec4) FAdd 5449 5448
+                              Store 5334(texel) 5450
+            5451:         284 Load 286(s2DArray)
+            5452:175(f16vec3) Load 177(f16c3)
+            5453:154(f16vec2) Load 1417(f16dPdxy2)
+            5454:154(f16vec2) Load 1417(f16dPdxy2)
+            5455:6(float16_t) Load 4318(f16lodClamp)
+            5456:  7(f16vec4) ImageSampleExplicitLod 5451 5452 Grad ConstOffset MinLod 5453 5454 722 5455
+            5457:  7(f16vec4) Load 5334(texel)
+            5458:  7(f16vec4) FAdd 5457 5456
+                              Store 5334(texel) 5458
+            5459:         316 Load 318(s1DArrayShadow)
+            5460:  167(fvec3) Load 169(c3)
+            5461:   52(float) Load 1393(dPdxy1)
+            5462:   52(float) Load 1393(dPdxy1)
+            5463:   52(float) Load 4311(lodClamp)
+            5464:   52(float) CompositeExtract 5460 2
+            5465:6(float16_t) ImageSampleDrefExplicitLod 5459 5460 5464 Grad ConstOffset MinLod 5461 5462 709 5463
+            5466:    208(ptr) AccessChain 5334(texel) 207
+            5467:6(float16_t) Load 5466
+            5468:6(float16_t) FAdd 5467 5465
+            5469:    208(ptr) AccessChain 5334(texel) 207
+                              Store 5469 5468
+            5470:         316 Load 318(s1DArrayShadow)
+            5471:154(f16vec2) Load 156(f16c2)
+            5472:   52(float) Load 215(compare)
+            5473:6(float16_t) Load 1401(f16dPdxy1)
+            5474:6(float16_t) Load 1401(f16dPdxy1)
+            5475:6(float16_t) Load 4318(f16lodClamp)
+            5476:6(float16_t) ImageSampleDrefExplicitLod 5470 5471 5472 Grad ConstOffset MinLod 5473 5474 709 5475
+            5477:    208(ptr) AccessChain 5334(texel) 207
+            5478:6(float16_t) Load 5477
+            5479:6(float16_t) FAdd 5478 5476
+            5480:    208(ptr) AccessChain 5334(texel) 207
+                              Store 5480 5479
+            5481:         337 Load 339(s2DArrayShadow)
+            5482:  249(fvec4) Load 251(c4)
+            5483:   53(fvec2) Load 1409(dPdxy2)
+            5484:   53(fvec2) Load 1409(dPdxy2)
+            5485:   52(float) Load 4311(lodClamp)
+            5486:   52(float) CompositeExtract 5482 3
+            5487:6(float16_t) ImageSampleDrefExplicitLod 5481 5482 5486 Grad ConstOffset MinLod 5483 5484 722 5485
+            5488:    208(ptr) AccessChain 5334(texel) 207
+            5489:6(float16_t) Load 5488
+            5490:6(float16_t) FAdd 5489 5487
+            5491:    208(ptr) AccessChain 5334(texel) 207
+                              Store 5491 5490
+            5492:         337 Load 339(s2DArrayShadow)
+            5493:175(f16vec3) Load 177(f16c3)
+            5494:   52(float) Load 215(compare)
+            5495:154(f16vec2) Load 1417(f16dPdxy2)
+            5496:154(f16vec2) Load 1417(f16dPdxy2)
+            5497:6(float16_t) Load 4318(f16lodClamp)
+            5498:6(float16_t) ImageSampleDrefExplicitLod 5492 5493 5494 Grad ConstOffset MinLod 5495 5496 722 5497
+            5499:    208(ptr) AccessChain 5334(texel) 207
+            5500:6(float16_t) Load 5499
+            5501:6(float16_t) FAdd 5500 5498
+            5502:    208(ptr) AccessChain 5334(texel) 207
+                              Store 5502 5501
+            5503:  7(f16vec4) Load 5334(texel)
+                              ReturnValue 5503
                               FunctionEnd
 115(testCombinedTextureSampler():  7(f16vec4) Function None 8
              116:             Label
-     5462(texel):     64(ptr) Variable Function
-                              Store 5462(texel) 121
-            5465:         122 Load 5464(t1D)
-            5469:        5466 Load 5468(s)
-            5470:         123 SampledImage 5465 5469
-            5471:   52(float) Load 128(c1)
-            5472:  7(f16vec4) ImageSampleImplicitLod 5470 5471
-            5473:  7(f16vec4) Load 5462(texel)
-            5474:  7(f16vec4) FAdd 5473 5472
-                              Store 5462(texel) 5474
-            5475:         122 Load 5464(t1D)
-            5476:        5466 Load 5468(s)
-            5477:         123 SampledImage 5475 5476
-            5478:6(float16_t) Load 135(f16c1)
-            5479:6(float16_t) Load 137(f16bias)
-            5480:  7(f16vec4) ImageSampleImplicitLod 5477 5478 Bias 5479
-            5481:  7(f16vec4) Load 5462(texel)
-            5482:  7(f16vec4) FAdd 5481 5480
-                              Store 5462(texel) 5482
-            5485:         142 Load 5484(t2D)
-            5486:        5466 Load 5468(s)
-            5487:         143 SampledImage 5485 5486
-            5488:   53(fvec2) Load 148(c2)
-            5489:  7(f16vec4) ImageSampleImplicitLod 5487 5488
-            5490:  7(f16vec4) Load 5462(texel)
-            5491:  7(f16vec4) FAdd 5490 5489
-                              Store 5462(texel) 5491
-            5492:         142 Load 5484(t2D)
-            5493:        5466 Load 5468(s)
-            5494:         143 SampledImage 5492 5493
-            5495:154(f16vec2) Load 156(f16c2)
-            5496:6(float16_t) Load 137(f16bias)
-            5497:  7(f16vec4) ImageSampleImplicitLod 5494 5495 Bias 5496
-            5498:  7(f16vec4) Load 5462(texel)
-            5499:  7(f16vec4) FAdd 5498 5497
-                              Store 5462(texel) 5499
-            5502:         162 Load 5501(t3D)
-            5503:        5466 Load 5468(s)
-            5504:         163 SampledImage 5502 5503
-            5505:  167(fvec3) Load 169(c3)
-            5506:  7(f16vec4) ImageSampleImplicitLod 5504 5505
-            5507:  7(f16vec4) Load 5462(texel)
-            5508:  7(f16vec4) FAdd 5507 5506
-                              Store 5462(texel) 5508
-            5509:         162 Load 5501(t3D)
-            5510:        5466 Load 5468(s)
-            5511:         163 SampledImage 5509 5510
-            5512:175(f16vec3) Load 177(f16c3)
-            5513:6(float16_t) Load 137(f16bias)
-            5514:  7(f16vec4) ImageSampleImplicitLod 5511 5512 Bias 5513
-            5515:  7(f16vec4) Load 5462(texel)
-            5516:  7(f16vec4) FAdd 5515 5514
-                              Store 5462(texel) 5516
-            5519:         183 Load 5518(tCube)
-            5520:        5466 Load 5468(s)
-            5521:         184 SampledImage 5519 5520
-            5522:  167(fvec3) Load 169(c3)
-            5523:  7(f16vec4) ImageSampleImplicitLod 5521 5522
-            5524:  7(f16vec4) Load 5462(texel)
-            5525:  7(f16vec4) FAdd 5524 5523
-                              Store 5462(texel) 5525
-            5526:         183 Load 5518(tCube)
-            5527:        5466 Load 5468(s)
-            5528:         184 SampledImage 5526 5527
-            5529:175(f16vec3) Load 177(f16c3)
-            5530:6(float16_t) Load 137(f16bias)
-            5531:  7(f16vec4) ImageSampleImplicitLod 5528 5529 Bias 5530
-            5532:  7(f16vec4) Load 5462(texel)
-            5533:  7(f16vec4) FAdd 5532 5531
-                              Store 5462(texel) 5533
-            5534:         122 Load 5464(t1D)
-            5536:        5466 Load 5535(sShadow)
-            5537:         199 SampledImage 5534 5536
-            5538:  167(fvec3) Load 169(c3)
-            5539:   52(float) CompositeExtract 5538 2
-            5540:6(float16_t) ImageSampleDrefImplicitLod 5537 5538 5539
-            5541:    208(ptr) AccessChain 5462(texel) 207
-            5542:6(float16_t) Load 5541
-            5543:6(float16_t) FAdd 5542 5540
-            5544:    208(ptr) AccessChain 5462(texel) 207
-                              Store 5544 5543
-            5545:         122 Load 5464(t1D)
-            5546:        5466 Load 5535(sShadow)
-            5547:         199 SampledImage 5545 5546
-            5548:154(f16vec2) Load 156(f16c2)
-            5549:   52(float) Load 215(compare)
-            5550:6(float16_t) Load 137(f16bias)
-            5551:6(float16_t) ImageSampleDrefImplicitLod 5547 5548 5549 Bias 5550
-            5552:    208(ptr) AccessChain 5462(texel) 207
-            5553:6(float16_t) Load 5552
-            5554:6(float16_t) FAdd 5553 5551
-            5555:    208(ptr) AccessChain 5462(texel) 207
-                              Store 5555 5554
-            5556:         142 Load 5484(t2D)
-            5557:        5466 Load 5535(sShadow)
-            5558:         224 SampledImage 5556 5557
-            5559:  167(fvec3) Load 169(c3)
-            5560:   52(float) CompositeExtract 5559 2
-            5561:6(float16_t) ImageSampleDrefImplicitLod 5558 5559 5560
-            5562:    208(ptr) AccessChain 5462(texel) 207
-            5563:6(float16_t) Load 5562
-            5564:6(float16_t) FAdd 5563 5561
-            5565:    208(ptr) AccessChain 5462(texel) 207
-                              Store 5565 5564
-            5566:         142 Load 5484(t2D)
-            5567:        5466 Load 5535(sShadow)
-            5568:         224 SampledImage 5566 5567
-            5569:154(f16vec2) Load 156(f16c2)
-            5570:   52(float) Load 215(compare)
-            5571:6(float16_t) Load 137(f16bias)
-            5572:6(float16_t) ImageSampleDrefImplicitLod 5568 5569 5570 Bias 5571
-            5573:    208(ptr) AccessChain 5462(texel) 207
-            5574:6(float16_t) Load 5573
-            5575:6(float16_t) FAdd 5574 5572
-            5576:    208(ptr) AccessChain 5462(texel) 207
-                              Store 5576 5575
-            5577:         183 Load 5518(tCube)
-            5578:        5466 Load 5535(sShadow)
-            5579:         245 SampledImage 5577 5578
-            5580:  249(fvec4) Load 251(c4)
-            5581:   52(float) CompositeExtract 5580 3
-            5582:6(float16_t) ImageSampleDrefImplicitLod 5579 5580 5581
-            5583:    208(ptr) AccessChain 5462(texel) 207
-            5584:6(float16_t) Load 5583
-            5585:6(float16_t) FAdd 5584 5582
-            5586:    208(ptr) AccessChain 5462(texel) 207
-                              Store 5586 5585
-            5587:         183 Load 5518(tCube)
-            5588:        5466 Load 5535(sShadow)
-            5589:         245 SampledImage 5587 5588
-            5590:175(f16vec3) Load 177(f16c3)
-            5591:   52(float) Load 215(compare)
-            5592:6(float16_t) Load 137(f16bias)
-            5593:6(float16_t) ImageSampleDrefImplicitLod 5589 5590 5591 Bias 5592
-            5594:    208(ptr) AccessChain 5462(texel) 207
-            5595:6(float16_t) Load 5594
-            5596:6(float16_t) FAdd 5595 5593
-            5597:    208(ptr) AccessChain 5462(texel) 207
-                              Store 5597 5596
-            5600:         268 Load 5599(t1DArray)
-            5601:        5466 Load 5468(s)
-            5602:         269 SampledImage 5600 5601
-            5603:   53(fvec2) Load 148(c2)
-            5604:  7(f16vec4) ImageSampleImplicitLod 5602 5603
-            5605:  7(f16vec4) Load 5462(texel)
-            5606:  7(f16vec4) FAdd 5605 5604
-                              Store 5462(texel) 5606
-            5607:         268 Load 5599(t1DArray)
-            5608:        5466 Load 5468(s)
-            5609:         269 SampledImage 5607 5608
-            5610:154(f16vec2) Load 156(f16c2)
-            5611:6(float16_t) Load 137(f16bias)
-            5612:  7(f16vec4) ImageSampleImplicitLod 5609 5610 Bias 5611
-            5613:  7(f16vec4) Load 5462(texel)
-            5614:  7(f16vec4) FAdd 5613 5612
-                              Store 5462(texel) 5614
-            5617:         283 Load 5616(t2DArray)
-            5618:        5466 Load 5468(s)
-            5619:         284 SampledImage 5617 5618
-            5620:  167(fvec3) Load 169(c3)
-            5621:  7(f16vec4) ImageSampleImplicitLod 5619 5620
-            5622:  7(f16vec4) Load 5462(texel)
-            5623:  7(f16vec4) FAdd 5622 5621
-                              Store 5462(texel) 5623
-            5624:         283 Load 5616(t2DArray)
-            5625:        5466 Load 5468(s)
-            5626:         284 SampledImage 5624 5625
-            5627:175(f16vec3) Load 177(f16c3)
-            5628:6(float16_t) Load 137(f16bias)
-            5629:  7(f16vec4) ImageSampleImplicitLod 5626 5627 Bias 5628
-            5630:  7(f16vec4) Load 5462(texel)
-            5631:  7(f16vec4) FAdd 5630 5629
-                              Store 5462(texel) 5631
-            5634:         298 Load 5633(tCubeArray)
-            5635:        5466 Load 5468(s)
-            5636:         299 SampledImage 5634 5635
-            5637:  249(fvec4) Load 251(c4)
-            5638:  7(f16vec4) ImageSampleImplicitLod 5636 5637
-            5639:  7(f16vec4) Load 5462(texel)
-            5640:  7(f16vec4) FAdd 5639 5638
-                              Store 5462(texel) 5640
-            5641:         298 Load 5633(tCubeArray)
-            5642:        5466 Load 5468(s)
-            5643:         299 SampledImage 5641 5642
-            5644:  7(f16vec4) Load 309(f16c4)
-            5645:6(float16_t) Load 137(f16bias)
-            5646:  7(f16vec4) ImageSampleImplicitLod 5643 5644 Bias 5645
-            5647:  7(f16vec4) Load 5462(texel)
-            5648:  7(f16vec4) FAdd 5647 5646
-                              Store 5462(texel) 5648
-            5649:         268 Load 5599(t1DArray)
-            5650:        5466 Load 5535(sShadow)
-            5651:         316 SampledImage 5649 5650
-            5652:  167(fvec3) Load 169(c3)
-            5653:   52(float) CompositeExtract 5652 2
-            5654:6(float16_t) ImageSampleDrefImplicitLod 5651 5652 5653
-            5655:    208(ptr) AccessChain 5462(texel) 207
-            5656:6(float16_t) Load 5655
-            5657:6(float16_t) FAdd 5656 5654
-            5658:    208(ptr) AccessChain 5462(texel) 207
-                              Store 5658 5657
-            5659:         268 Load 5599(t1DArray)
-            5660:        5466 Load 5535(sShadow)
-            5661:         316 SampledImage 5659 5660
-            5662:154(f16vec2) Load 156(f16c2)
-            5663:   52(float) Load 215(compare)
-            5664:6(float16_t) Load 137(f16bias)
-            5665:6(float16_t) ImageSampleDrefImplicitLod 5661 5662 5663 Bias 5664
-            5666:    208(ptr) AccessChain 5462(texel) 207
-            5667:6(float16_t) Load 5666
-            5668:6(float16_t) FAdd 5667 5665
-            5669:    208(ptr) AccessChain 5462(texel) 207
-                              Store 5669 5668
-            5670:         283 Load 5616(t2DArray)
-            5671:        5466 Load 5535(sShadow)
-            5672:         337 SampledImage 5670 5671
-            5673:  249(fvec4) Load 251(c4)
-            5674:   52(float) CompositeExtract 5673 3
-            5675:6(float16_t) ImageSampleDrefImplicitLod 5672 5673 5674
-            5676:    208(ptr) AccessChain 5462(texel) 207
-            5677:6(float16_t) Load 5676
-            5678:6(float16_t) FAdd 5677 5675
-            5679:    208(ptr) AccessChain 5462(texel) 207
-                              Store 5679 5678
-            5680:         283 Load 5616(t2DArray)
-            5681:        5466 Load 5535(sShadow)
-            5682:         337 SampledImage 5680 5681
-            5683:175(f16vec3) Load 177(f16c3)
-            5684:   52(float) Load 215(compare)
-            5685:6(float16_t) ImageSampleDrefImplicitLod 5682 5683 5684
-            5686:    208(ptr) AccessChain 5462(texel) 207
-            5687:6(float16_t) Load 5686
-            5688:6(float16_t) FAdd 5687 5685
-            5689:    208(ptr) AccessChain 5462(texel) 207
-                              Store 5689 5688
-            5692:         356 Load 5691(t2DRect)
-            5693:        5466 Load 5468(s)
-            5694:         357 SampledImage 5692 5693
-            5695:   53(fvec2) Load 148(c2)
-            5696:  7(f16vec4) ImageSampleImplicitLod 5694 5695
-            5697:  7(f16vec4) Load 5462(texel)
-            5698:  7(f16vec4) FAdd 5697 5696
-                              Store 5462(texel) 5698
-            5699:         356 Load 5691(t2DRect)
-            5700:        5466 Load 5468(s)
-            5701:         357 SampledImage 5699 5700
-            5702:154(f16vec2) Load 156(f16c2)
-            5703:  7(f16vec4) ImageSampleImplicitLod 5701 5702
-            5704:  7(f16vec4) Load 5462(texel)
-            5705:  7(f16vec4) FAdd 5704 5703
-                              Store 5462(texel) 5705
-            5706:         356 Load 5691(t2DRect)
-            5707:        5466 Load 5535(sShadow)
-            5708:         371 SampledImage 5706 5707
-            5709:  167(fvec3) Load 169(c3)
-            5710:   52(float) CompositeExtract 5709 2
-            5711:6(float16_t) ImageSampleDrefImplicitLod 5708 5709 5710
-            5712:    208(ptr) AccessChain 5462(texel) 207
-            5713:6(float16_t) Load 5712
-            5714:6(float16_t) FAdd 5713 5711
-            5715:    208(ptr) AccessChain 5462(texel) 207
-                              Store 5715 5714
-            5716:         356 Load 5691(t2DRect)
-            5717:        5466 Load 5535(sShadow)
-            5718:         371 SampledImage 5716 5717
-            5719:154(f16vec2) Load 156(f16c2)
-            5720:   52(float) Load 215(compare)
-            5721:6(float16_t) ImageSampleDrefImplicitLod 5718 5719 5720
-            5722:    208(ptr) AccessChain 5462(texel) 207
-            5723:6(float16_t) Load 5722
-            5724:6(float16_t) FAdd 5723 5721
-            5725:    208(ptr) AccessChain 5462(texel) 207
-                              Store 5725 5724
-            5726:         298 Load 5633(tCubeArray)
-            5727:        5466 Load 5535(sShadow)
-            5728:         391 SampledImage 5726 5727
-            5729:  249(fvec4) Load 251(c4)
-            5730:   52(float) Load 215(compare)
-            5731:6(float16_t) ImageSampleDrefImplicitLod 5728 5729 5730
-            5732:    208(ptr) AccessChain 5462(texel) 207
-            5733:6(float16_t) Load 5732
-            5734:6(float16_t) FAdd 5733 5731
-            5735:    208(ptr) AccessChain 5462(texel) 207
-                              Store 5735 5734
-            5736:         298 Load 5633(tCubeArray)
-            5737:        5466 Load 5535(sShadow)
-            5738:         391 SampledImage 5736 5737
-            5739:  7(f16vec4) Load 309(f16c4)
-            5740:   52(float) Load 215(compare)
-            5741:6(float16_t) ImageSampleDrefImplicitLod 5738 5739 5740
-            5742:    208(ptr) AccessChain 5462(texel) 207
-            5743:6(float16_t) Load 5742
-            5744:6(float16_t) FAdd 5743 5741
-            5745:    208(ptr) AccessChain 5462(texel) 207
-                              Store 5745 5744
-            5746:  7(f16vec4) Load 5462(texel)
-                              ReturnValue 5746
+     5506(texel):     64(ptr) Variable Function
+                              Store 5506(texel) 121
+            5509:         122 Load 5508(t1D)
+            5513:        5510 Load 5512(s)
+            5514:         123 SampledImage 5509 5513
+            5515:   52(float) Load 128(c1)
+            5516:  7(f16vec4) ImageSampleImplicitLod 5514 5515
+            5517:  7(f16vec4) Load 5506(texel)
+            5518:  7(f16vec4) FAdd 5517 5516
+                              Store 5506(texel) 5518
+            5519:         122 Load 5508(t1D)
+            5520:        5510 Load 5512(s)
+            5521:         123 SampledImage 5519 5520
+            5522:6(float16_t) Load 135(f16c1)
+            5523:6(float16_t) Load 137(f16bias)
+            5524:  7(f16vec4) ImageSampleImplicitLod 5521 5522 Bias 5523
+            5525:  7(f16vec4) Load 5506(texel)
+            5526:  7(f16vec4) FAdd 5525 5524
+                              Store 5506(texel) 5526
+            5529:         142 Load 5528(t2D)
+            5530:        5510 Load 5512(s)
+            5531:         143 SampledImage 5529 5530
+            5532:   53(fvec2) Load 148(c2)
+            5533:  7(f16vec4) ImageSampleImplicitLod 5531 5532
+            5534:  7(f16vec4) Load 5506(texel)
+            5535:  7(f16vec4) FAdd 5534 5533
+                              Store 5506(texel) 5535
+            5536:         142 Load 5528(t2D)
+            5537:        5510 Load 5512(s)
+            5538:         143 SampledImage 5536 5537
+            5539:154(f16vec2) Load 156(f16c2)
+            5540:6(float16_t) Load 137(f16bias)
+            5541:  7(f16vec4) ImageSampleImplicitLod 5538 5539 Bias 5540
+            5542:  7(f16vec4) Load 5506(texel)
+            5543:  7(f16vec4) FAdd 5542 5541
+                              Store 5506(texel) 5543
+            5546:         162 Load 5545(t3D)
+            5547:        5510 Load 5512(s)
+            5548:         163 SampledImage 5546 5547
+            5549:  167(fvec3) Load 169(c3)
+            5550:  7(f16vec4) ImageSampleImplicitLod 5548 5549
+            5551:  7(f16vec4) Load 5506(texel)
+            5552:  7(f16vec4) FAdd 5551 5550
+                              Store 5506(texel) 5552
+            5553:         162 Load 5545(t3D)
+            5554:        5510 Load 5512(s)
+            5555:         163 SampledImage 5553 5554
+            5556:175(f16vec3) Load 177(f16c3)
+            5557:6(float16_t) Load 137(f16bias)
+            5558:  7(f16vec4) ImageSampleImplicitLod 5555 5556 Bias 5557
+            5559:  7(f16vec4) Load 5506(texel)
+            5560:  7(f16vec4) FAdd 5559 5558
+                              Store 5506(texel) 5560
+            5563:         183 Load 5562(tCube)
+            5564:        5510 Load 5512(s)
+            5565:         184 SampledImage 5563 5564
+            5566:  167(fvec3) Load 169(c3)
+            5567:  7(f16vec4) ImageSampleImplicitLod 5565 5566
+            5568:  7(f16vec4) Load 5506(texel)
+            5569:  7(f16vec4) FAdd 5568 5567
+                              Store 5506(texel) 5569
+            5570:         183 Load 5562(tCube)
+            5571:        5510 Load 5512(s)
+            5572:         184 SampledImage 5570 5571
+            5573:175(f16vec3) Load 177(f16c3)
+            5574:6(float16_t) Load 137(f16bias)
+            5575:  7(f16vec4) ImageSampleImplicitLod 5572 5573 Bias 5574
+            5576:  7(f16vec4) Load 5506(texel)
+            5577:  7(f16vec4) FAdd 5576 5575
+                              Store 5506(texel) 5577
+            5578:         122 Load 5508(t1D)
+            5580:        5510 Load 5579(sShadow)
+            5581:         199 SampledImage 5578 5580
+            5582:  167(fvec3) Load 169(c3)
+            5583:   52(float) CompositeExtract 5582 2
+            5584:6(float16_t) ImageSampleDrefImplicitLod 5581 5582 5583
+            5585:    208(ptr) AccessChain 5506(texel) 207
+            5586:6(float16_t) Load 5585
+            5587:6(float16_t) FAdd 5586 5584
+            5588:    208(ptr) AccessChain 5506(texel) 207
+                              Store 5588 5587
+            5589:         122 Load 5508(t1D)
+            5590:        5510 Load 5579(sShadow)
+            5591:         199 SampledImage 5589 5590
+            5592:154(f16vec2) Load 156(f16c2)
+            5593:   52(float) Load 215(compare)
+            5594:6(float16_t) Load 137(f16bias)
+            5595:6(float16_t) ImageSampleDrefImplicitLod 5591 5592 5593 Bias 5594
+            5596:    208(ptr) AccessChain 5506(texel) 207
+            5597:6(float16_t) Load 5596
+            5598:6(float16_t) FAdd 5597 5595
+            5599:    208(ptr) AccessChain 5506(texel) 207
+                              Store 5599 5598
+            5600:         142 Load 5528(t2D)
+            5601:        5510 Load 5579(sShadow)
+            5602:         224 SampledImage 5600 5601
+            5603:  167(fvec3) Load 169(c3)
+            5604:   52(float) CompositeExtract 5603 2
+            5605:6(float16_t) ImageSampleDrefImplicitLod 5602 5603 5604
+            5606:    208(ptr) AccessChain 5506(texel) 207
+            5607:6(float16_t) Load 5606
+            5608:6(float16_t) FAdd 5607 5605
+            5609:    208(ptr) AccessChain 5506(texel) 207
+                              Store 5609 5608
+            5610:         142 Load 5528(t2D)
+            5611:        5510 Load 5579(sShadow)
+            5612:         224 SampledImage 5610 5611
+            5613:154(f16vec2) Load 156(f16c2)
+            5614:   52(float) Load 215(compare)
+            5615:6(float16_t) Load 137(f16bias)
+            5616:6(float16_t) ImageSampleDrefImplicitLod 5612 5613 5614 Bias 5615
+            5617:    208(ptr) AccessChain 5506(texel) 207
+            5618:6(float16_t) Load 5617
+            5619:6(float16_t) FAdd 5618 5616
+            5620:    208(ptr) AccessChain 5506(texel) 207
+                              Store 5620 5619
+            5621:         183 Load 5562(tCube)
+            5622:        5510 Load 5579(sShadow)
+            5623:         245 SampledImage 5621 5622
+            5624:  249(fvec4) Load 251(c4)
+            5625:   52(float) CompositeExtract 5624 3
+            5626:6(float16_t) ImageSampleDrefImplicitLod 5623 5624 5625
+            5627:    208(ptr) AccessChain 5506(texel) 207
+            5628:6(float16_t) Load 5627
+            5629:6(float16_t) FAdd 5628 5626
+            5630:    208(ptr) AccessChain 5506(texel) 207
+                              Store 5630 5629
+            5631:         183 Load 5562(tCube)
+            5632:        5510 Load 5579(sShadow)
+            5633:         245 SampledImage 5631 5632
+            5634:175(f16vec3) Load 177(f16c3)
+            5635:   52(float) Load 215(compare)
+            5636:6(float16_t) Load 137(f16bias)
+            5637:6(float16_t) ImageSampleDrefImplicitLod 5633 5634 5635 Bias 5636
+            5638:    208(ptr) AccessChain 5506(texel) 207
+            5639:6(float16_t) Load 5638
+            5640:6(float16_t) FAdd 5639 5637
+            5641:    208(ptr) AccessChain 5506(texel) 207
+                              Store 5641 5640
+            5644:         268 Load 5643(t1DArray)
+            5645:        5510 Load 5512(s)
+            5646:         269 SampledImage 5644 5645
+            5647:   53(fvec2) Load 148(c2)
+            5648:  7(f16vec4) ImageSampleImplicitLod 5646 5647
+            5649:  7(f16vec4) Load 5506(texel)
+            5650:  7(f16vec4) FAdd 5649 5648
+                              Store 5506(texel) 5650
+            5651:         268 Load 5643(t1DArray)
+            5652:        5510 Load 5512(s)
+            5653:         269 SampledImage 5651 5652
+            5654:154(f16vec2) Load 156(f16c2)
+            5655:6(float16_t) Load 137(f16bias)
+            5656:  7(f16vec4) ImageSampleImplicitLod 5653 5654 Bias 5655
+            5657:  7(f16vec4) Load 5506(texel)
+            5658:  7(f16vec4) FAdd 5657 5656
+                              Store 5506(texel) 5658
+            5661:         283 Load 5660(t2DArray)
+            5662:        5510 Load 5512(s)
+            5663:         284 SampledImage 5661 5662
+            5664:  167(fvec3) Load 169(c3)
+            5665:  7(f16vec4) ImageSampleImplicitLod 5663 5664
+            5666:  7(f16vec4) Load 5506(texel)
+            5667:  7(f16vec4) FAdd 5666 5665
+                              Store 5506(texel) 5667
+            5668:         283 Load 5660(t2DArray)
+            5669:        5510 Load 5512(s)
+            5670:         284 SampledImage 5668 5669
+            5671:175(f16vec3) Load 177(f16c3)
+            5672:6(float16_t) Load 137(f16bias)
+            5673:  7(f16vec4) ImageSampleImplicitLod 5670 5671 Bias 5672
+            5674:  7(f16vec4) Load 5506(texel)
+            5675:  7(f16vec4) FAdd 5674 5673
+                              Store 5506(texel) 5675
+            5678:         298 Load 5677(tCubeArray)
+            5679:        5510 Load 5512(s)
+            5680:         299 SampledImage 5678 5679
+            5681:  249(fvec4) Load 251(c4)
+            5682:  7(f16vec4) ImageSampleImplicitLod 5680 5681
+            5683:  7(f16vec4) Load 5506(texel)
+            5684:  7(f16vec4) FAdd 5683 5682
+                              Store 5506(texel) 5684
+            5685:         298 Load 5677(tCubeArray)
+            5686:        5510 Load 5512(s)
+            5687:         299 SampledImage 5685 5686
+            5688:  7(f16vec4) Load 309(f16c4)
+            5689:6(float16_t) Load 137(f16bias)
+            5690:  7(f16vec4) ImageSampleImplicitLod 5687 5688 Bias 5689
+            5691:  7(f16vec4) Load 5506(texel)
+            5692:  7(f16vec4) FAdd 5691 5690
+                              Store 5506(texel) 5692
+            5693:         268 Load 5643(t1DArray)
+            5694:        5510 Load 5579(sShadow)
+            5695:         316 SampledImage 5693 5694
+            5696:  167(fvec3) Load 169(c3)
+            5697:   52(float) CompositeExtract 5696 2
+            5698:6(float16_t) ImageSampleDrefImplicitLod 5695 5696 5697
+            5699:    208(ptr) AccessChain 5506(texel) 207
+            5700:6(float16_t) Load 5699
+            5701:6(float16_t) FAdd 5700 5698
+            5702:    208(ptr) AccessChain 5506(texel) 207
+                              Store 5702 5701
+            5703:         268 Load 5643(t1DArray)
+            5704:        5510 Load 5579(sShadow)
+            5705:         316 SampledImage 5703 5704
+            5706:154(f16vec2) Load 156(f16c2)
+            5707:   52(float) Load 215(compare)
+            5708:6(float16_t) Load 137(f16bias)
+            5709:6(float16_t) ImageSampleDrefImplicitLod 5705 5706 5707 Bias 5708
+            5710:    208(ptr) AccessChain 5506(texel) 207
+            5711:6(float16_t) Load 5710
+            5712:6(float16_t) FAdd 5711 5709
+            5713:    208(ptr) AccessChain 5506(texel) 207
+                              Store 5713 5712
+            5714:         283 Load 5660(t2DArray)
+            5715:        5510 Load 5579(sShadow)
+            5716:         337 SampledImage 5714 5715
+            5717:  249(fvec4) Load 251(c4)
+            5718:   52(float) CompositeExtract 5717 3
+            5719:6(float16_t) ImageSampleDrefImplicitLod 5716 5717 5718
+            5720:    208(ptr) AccessChain 5506(texel) 207
+            5721:6(float16_t) Load 5720
+            5722:6(float16_t) FAdd 5721 5719
+            5723:    208(ptr) AccessChain 5506(texel) 207
+                              Store 5723 5722
+            5724:         283 Load 5660(t2DArray)
+            5725:        5510 Load 5579(sShadow)
+            5726:         337 SampledImage 5724 5725
+            5727:175(f16vec3) Load 177(f16c3)
+            5728:   52(float) Load 215(compare)
+            5729:6(float16_t) ImageSampleDrefImplicitLod 5726 5727 5728
+            5730:    208(ptr) AccessChain 5506(texel) 207
+            5731:6(float16_t) Load 5730
+            5732:6(float16_t) FAdd 5731 5729
+            5733:    208(ptr) AccessChain 5506(texel) 207
+                              Store 5733 5732
+            5736:         356 Load 5735(t2DRect)
+            5737:        5510 Load 5512(s)
+            5738:         357 SampledImage 5736 5737
+            5739:   53(fvec2) Load 148(c2)
+            5740:  7(f16vec4) ImageSampleImplicitLod 5738 5739
+            5741:  7(f16vec4) Load 5506(texel)
+            5742:  7(f16vec4) FAdd 5741 5740
+                              Store 5506(texel) 5742
+            5743:         356 Load 5735(t2DRect)
+            5744:        5510 Load 5512(s)
+            5745:         357 SampledImage 5743 5744
+            5746:154(f16vec2) Load 156(f16c2)
+            5747:  7(f16vec4) ImageSampleImplicitLod 5745 5746
+            5748:  7(f16vec4) Load 5506(texel)
+            5749:  7(f16vec4) FAdd 5748 5747
+                              Store 5506(texel) 5749
+            5750:         356 Load 5735(t2DRect)
+            5751:        5510 Load 5579(sShadow)
+            5752:         371 SampledImage 5750 5751
+            5753:  167(fvec3) Load 169(c3)
+            5754:   52(float) CompositeExtract 5753 2
+            5755:6(float16_t) ImageSampleDrefImplicitLod 5752 5753 5754
+            5756:    208(ptr) AccessChain 5506(texel) 207
+            5757:6(float16_t) Load 5756
+            5758:6(float16_t) FAdd 5757 5755
+            5759:    208(ptr) AccessChain 5506(texel) 207
+                              Store 5759 5758
+            5760:         356 Load 5735(t2DRect)
+            5761:        5510 Load 5579(sShadow)
+            5762:         371 SampledImage 5760 5761
+            5763:154(f16vec2) Load 156(f16c2)
+            5764:   52(float) Load 215(compare)
+            5765:6(float16_t) ImageSampleDrefImplicitLod 5762 5763 5764
+            5766:    208(ptr) AccessChain 5506(texel) 207
+            5767:6(float16_t) Load 5766
+            5768:6(float16_t) FAdd 5767 5765
+            5769:    208(ptr) AccessChain 5506(texel) 207
+                              Store 5769 5768
+            5770:         298 Load 5677(tCubeArray)
+            5771:        5510 Load 5579(sShadow)
+            5772:         391 SampledImage 5770 5771
+            5773:  249(fvec4) Load 251(c4)
+            5774:   52(float) Load 215(compare)
+            5775:6(float16_t) ImageSampleDrefImplicitLod 5772 5773 5774
+            5776:    208(ptr) AccessChain 5506(texel) 207
+            5777:6(float16_t) Load 5776
+            5778:6(float16_t) FAdd 5777 5775
+            5779:    208(ptr) AccessChain 5506(texel) 207
+                              Store 5779 5778
+            5780:         298 Load 5677(tCubeArray)
+            5781:        5510 Load 5579(sShadow)
+            5782:         391 SampledImage 5780 5781
+            5783:  7(f16vec4) Load 309(f16c4)
+            5784:   52(float) Load 215(compare)
+            5785:6(float16_t) ImageSampleDrefImplicitLod 5782 5783 5784
+            5786:    208(ptr) AccessChain 5506(texel) 207
+            5787:6(float16_t) Load 5786
+            5788:6(float16_t) FAdd 5787 5785
+            5789:    208(ptr) AccessChain 5506(texel) 207
+                              Store 5789 5788
+            5790:  7(f16vec4) Load 5506(texel)
+                              ReturnValue 5790
                               FunctionEnd
 117(testSubpassLoad():  7(f16vec4) Function None 8
              118:             Label
-            5752:        5749 Load 5751(subpass)
-            5754:  7(f16vec4) ImageRead 5752 5753
-            5758:        5755 Load 5757(subpassMS)
-            5759:  7(f16vec4) ImageRead 5758 5753 Sample 1326
-            5760:  7(f16vec4) FAdd 5754 5759
-                              ReturnValue 5760
+            5796:        5793 Load 5795(subpass)
+            5798:  7(f16vec4) ImageRead 5796 5797
+            5802:        5799 Load 5801(subpassMS)
+            5803:  7(f16vec4) ImageRead 5802 5797 Sample 1326
+            5804:  7(f16vec4) FAdd 5798 5803
+                              ReturnValue 5804
                               FunctionEnd
diff --git a/Test/baseResults/spv.float32.frag.out b/Test/baseResults/spv.float32.frag.out
index df73497..2ffa231 100644
--- a/Test/baseResults/spv.float32.frag.out
+++ b/Test/baseResults/spv.float32.frag.out
@@ -1,7 +1,7 @@
 spv.float32.frag
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 533
+// Id's are bound by 541
 
                               Capability Shader
                               Capability Float16
@@ -83,52 +83,52 @@
                               Name 451  "f32v2"
                               Name 469  "f32v"
                               Name 471  "if32v"
-                              Name 520  "S"
-                              MemberName 520(S) 0  "x"
-                              MemberName 520(S) 1  "y"
-                              MemberName 520(S) 2  "z"
-                              Name 522  "B1"
-                              MemberName 522(B1) 0  "a"
-                              MemberName 522(B1) 1  "b"
-                              MemberName 522(B1) 2  "c"
-                              MemberName 522(B1) 3  "d"
-                              MemberName 522(B1) 4  "e"
-                              MemberName 522(B1) 5  "f"
-                              MemberName 522(B1) 6  "g"
-                              MemberName 522(B1) 7  "h"
-                              Name 524  ""
-                              Name 525  "sf16"
-                              Name 526  "sf"
-                              Name 527  "sd"
-                              Name 528  "f16_to_f"
-                              Name 530  "f16_to_d"
-                              Name 531  "f_to_f16"
-                              Name 532  "d_to_f16"
+                              Name 528  "S"
+                              MemberName 528(S) 0  "x"
+                              MemberName 528(S) 1  "y"
+                              MemberName 528(S) 2  "z"
+                              Name 530  "B1"
+                              MemberName 530(B1) 0  "a"
+                              MemberName 530(B1) 1  "b"
+                              MemberName 530(B1) 2  "c"
+                              MemberName 530(B1) 3  "d"
+                              MemberName 530(B1) 4  "e"
+                              MemberName 530(B1) 5  "f"
+                              MemberName 530(B1) 6  "g"
+                              MemberName 530(B1) 7  "h"
+                              Name 532  ""
+                              Name 533  "sf16"
+                              Name 534  "sf"
+                              Name 535  "sd"
+                              Name 536  "f16_to_f"
+                              Name 538  "f16_to_d"
+                              Name 539  "f_to_f16"
+                              Name 540  "d_to_f16"
                               Decorate 471(if32v) Location 0
-                              Decorate 518 ArrayStride 16
-                              Decorate 519 ArrayStride 32
-                              MemberDecorate 520(S) 0 Offset 0
-                              MemberDecorate 520(S) 1 Offset 8
-                              MemberDecorate 520(S) 2 Offset 16
-                              Decorate 521 ArrayStride 32
-                              MemberDecorate 522(B1) 0 Offset 0
-                              MemberDecorate 522(B1) 1 Offset 8
-                              MemberDecorate 522(B1) 2 Offset 16
-                              MemberDecorate 522(B1) 3 Offset 32
-                              MemberDecorate 522(B1) 4 ColMajor
-                              MemberDecorate 522(B1) 4 Offset 64
-                              MemberDecorate 522(B1) 4 MatrixStride 16
-                              MemberDecorate 522(B1) 5 ColMajor
-                              MemberDecorate 522(B1) 5 Offset 96
-                              MemberDecorate 522(B1) 5 MatrixStride 16
-                              MemberDecorate 522(B1) 6 Offset 160
-                              MemberDecorate 522(B1) 7 Offset 192
-                              Decorate 522(B1) Block
-                              Decorate 524 DescriptorSet 0
-                              Decorate 524 Binding 0
-                              Decorate 525(sf16) SpecId 100
-                              Decorate 526(sf) SpecId 101
-                              Decorate 527(sd) SpecId 102
+                              Decorate 526 ArrayStride 16
+                              Decorate 527 ArrayStride 32
+                              MemberDecorate 528(S) 0 Offset 0
+                              MemberDecorate 528(S) 1 Offset 8
+                              MemberDecorate 528(S) 2 Offset 16
+                              Decorate 529 ArrayStride 32
+                              MemberDecorate 530(B1) 0 Offset 0
+                              MemberDecorate 530(B1) 1 Offset 8
+                              MemberDecorate 530(B1) 2 Offset 16
+                              MemberDecorate 530(B1) 3 Offset 32
+                              MemberDecorate 530(B1) 4 ColMajor
+                              MemberDecorate 530(B1) 4 Offset 64
+                              MemberDecorate 530(B1) 4 MatrixStride 16
+                              MemberDecorate 530(B1) 5 ColMajor
+                              MemberDecorate 530(B1) 5 Offset 96
+                              MemberDecorate 530(B1) 5 MatrixStride 16
+                              MemberDecorate 530(B1) 6 Offset 160
+                              MemberDecorate 530(B1) 7 Offset 192
+                              Decorate 530(B1) Block
+                              Decorate 532 DescriptorSet 0
+                              Decorate 532 Binding 0
+                              Decorate 533(sf16) SpecId 100
+                              Decorate 534(sf) SpecId 101
+                              Decorate 535(sd) SpecId 102
                2:             TypeVoid
                3:             TypeFunction 2
               26:             TypeFloat 32
@@ -197,25 +197,25 @@
              470:             TypePointer Input 153(fvec3)
       471(if32v):    470(ptr) Variable Input
              472:             TypePointer Input 26(float)
-             509:    192(int) Constant 1
-             514:   26(float) Constant 1056964608
-             515:   27(fvec2) ConstantComposite 514 514
-             517:     31(int) Constant 2
-             518:             TypeArray 26(float) 517
-             519:             TypeArray 412 517
-          520(S):             TypeStruct 26(float) 27(fvec2) 153(fvec3)
-             521:             TypeArray 520(S) 517
-         522(B1):             TypeStruct 26(float) 27(fvec2) 153(fvec3) 518 412 519 520(S) 521
-             523:             TypePointer Uniform 522(B1)
-             524:    523(ptr) Variable Uniform
-       525(sf16):172(float16_t) SpecConstant 12288
-         526(sf):   26(float) SpecConstant 1048576000
-         527(sd):149(float64_t) SpecConstant 0 1071644672
-   528(f16_to_f):   26(float) SpecConstantOp 115 525(sf16)
-             529:   26(float) SpecConstantOp 115 525(sf16)
-   530(f16_to_d):149(float64_t) SpecConstantOp 115 529
-   531(f_to_f16):172(float16_t) SpecConstantOp 115 526(sf)
-   532(d_to_f16):172(float16_t) SpecConstantOp 115 527(sd)
+             515:    192(int) Constant 1
+             522:   26(float) Constant 1056964608
+             523:   27(fvec2) ConstantComposite 522 522
+             525:     31(int) Constant 2
+             526:             TypeArray 26(float) 525
+             527:             TypeArray 412 525
+          528(S):             TypeStruct 26(float) 27(fvec2) 153(fvec3)
+             529:             TypeArray 528(S) 525
+         530(B1):             TypeStruct 26(float) 27(fvec2) 153(fvec3) 526 412 527 528(S) 529
+             531:             TypePointer Uniform 530(B1)
+             532:    531(ptr) Variable Uniform
+       533(sf16):172(float16_t) SpecConstant 12288
+         534(sf):   26(float) SpecConstant 1048576000
+         535(sd):149(float64_t) SpecConstant 0 1071644672
+   536(f16_to_f):   26(float) SpecConstantOp 115 533(sf16)
+             537:   26(float) SpecConstantOp 115 533(sf16)
+   538(f16_to_d):149(float64_t) SpecConstantOp 115 537
+   539(f_to_f16):172(float16_t) SpecConstantOp 115 534(sf)
+   540(d_to_f16):172(float16_t) SpecConstantOp 115 535(sd)
          4(main):           2 Function None 3
                5:             Label
                               Return
@@ -765,45 +765,57 @@
              481:  153(fvec3) Load 471(if32v)
              482:   27(fvec2) VectorShuffle 481 481 0 1
              483:   27(fvec2) DPdxFine 482
-             484:  153(fvec3) Load 469(f32v)
-             485:  153(fvec3) VectorShuffle 484 483 3 4 2
-                              Store 469(f32v) 485
-             486:  153(fvec3) Load 471(if32v)
-             487:   27(fvec2) VectorShuffle 486 486 0 1
-             488:   27(fvec2) DPdyFine 487
-             489:  153(fvec3) Load 469(f32v)
-             490:  153(fvec3) VectorShuffle 489 488 3 4 2
-                              Store 469(f32v) 490
-             491:  153(fvec3) Load 471(if32v)
-             492:  153(fvec3) DPdxCoarse 491
-                              Store 469(f32v) 492
-             493:  153(fvec3) Load 471(if32v)
-             494:  153(fvec3) DPdxCoarse 493
-                              Store 469(f32v) 494
-             495:    472(ptr) AccessChain 471(if32v) 32
-             496:   26(float) Load 495
-             497:   26(float) Fwidth 496
-             498:     33(ptr) AccessChain 469(f32v) 32
-                              Store 498 497
-             499:  153(fvec3) Load 471(if32v)
-             500:   27(fvec2) VectorShuffle 499 499 0 1
-             501:   27(fvec2) FwidthFine 500
-             502:  153(fvec3) Load 469(f32v)
-             503:  153(fvec3) VectorShuffle 502 501 3 4 2
-                              Store 469(f32v) 503
-             504:  153(fvec3) Load 471(if32v)
-             505:  153(fvec3) FwidthCoarse 504
-                              Store 469(f32v) 505
-             506:    472(ptr) AccessChain 471(if32v) 32
-             507:   26(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 506
-             508:     33(ptr) AccessChain 469(f32v) 32
-                              Store 508 507
-             510:  153(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 471(if32v) 509
-             511:   27(fvec2) VectorShuffle 510 510 0 1
-             512:  153(fvec3) Load 469(f32v)
-             513:  153(fvec3) VectorShuffle 512 511 3 4 2
-                              Store 469(f32v) 513
-             516:  153(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 471(if32v) 515
-                              Store 469(f32v) 516
+             484:     33(ptr) AccessChain 469(f32v) 32
+             485:   26(float) CompositeExtract 483 0
+                              Store 484 485
+             486:     33(ptr) AccessChain 469(f32v) 88
+             487:   26(float) CompositeExtract 483 1
+                              Store 486 487
+             488:  153(fvec3) Load 471(if32v)
+             489:   27(fvec2) VectorShuffle 488 488 0 1
+             490:   27(fvec2) DPdyFine 489
+             491:     33(ptr) AccessChain 469(f32v) 32
+             492:   26(float) CompositeExtract 490 0
+                              Store 491 492
+             493:     33(ptr) AccessChain 469(f32v) 88
+             494:   26(float) CompositeExtract 490 1
+                              Store 493 494
+             495:  153(fvec3) Load 471(if32v)
+             496:  153(fvec3) DPdxCoarse 495
+                              Store 469(f32v) 496
+             497:  153(fvec3) Load 471(if32v)
+             498:  153(fvec3) DPdxCoarse 497
+                              Store 469(f32v) 498
+             499:    472(ptr) AccessChain 471(if32v) 32
+             500:   26(float) Load 499
+             501:   26(float) Fwidth 500
+             502:     33(ptr) AccessChain 469(f32v) 32
+                              Store 502 501
+             503:  153(fvec3) Load 471(if32v)
+             504:   27(fvec2) VectorShuffle 503 503 0 1
+             505:   27(fvec2) FwidthFine 504
+             506:     33(ptr) AccessChain 469(f32v) 32
+             507:   26(float) CompositeExtract 505 0
+                              Store 506 507
+             508:     33(ptr) AccessChain 469(f32v) 88
+             509:   26(float) CompositeExtract 505 1
+                              Store 508 509
+             510:  153(fvec3) Load 471(if32v)
+             511:  153(fvec3) FwidthCoarse 510
+                              Store 469(f32v) 511
+             512:    472(ptr) AccessChain 471(if32v) 32
+             513:   26(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 512
+             514:     33(ptr) AccessChain 469(f32v) 32
+                              Store 514 513
+             516:  153(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 471(if32v) 515
+             517:   27(fvec2) VectorShuffle 516 516 0 1
+             518:     33(ptr) AccessChain 469(f32v) 32
+             519:   26(float) CompositeExtract 517 0
+                              Store 518 519
+             520:     33(ptr) AccessChain 469(f32v) 88
+             521:   26(float) CompositeExtract 517 1
+                              Store 520 521
+             524:  153(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 471(if32v) 523
+                              Store 469(f32v) 524
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.float64.frag.out b/Test/baseResults/spv.float64.frag.out
index 8a69367..dfcfc2d 100644
--- a/Test/baseResults/spv.float64.frag.out
+++ b/Test/baseResults/spv.float64.frag.out
@@ -2,7 +2,7 @@
 Validation failed
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 524
+// Id's are bound by 532
 
                               Capability Shader
                               Capability Float16
@@ -83,53 +83,53 @@
                               Name 441  "f64v2"
                               Name 459  "f64v"
                               Name 461  "if64v"
-                              Name 510  "S"
-                              MemberName 510(S) 0  "x"
-                              MemberName 510(S) 1  "y"
-                              MemberName 510(S) 2  "z"
-                              Name 512  "B1"
-                              MemberName 512(B1) 0  "a"
-                              MemberName 512(B1) 1  "b"
-                              MemberName 512(B1) 2  "c"
-                              MemberName 512(B1) 3  "d"
-                              MemberName 512(B1) 4  "e"
-                              MemberName 512(B1) 5  "f"
-                              MemberName 512(B1) 6  "g"
-                              MemberName 512(B1) 7  "h"
-                              Name 514  ""
-                              Name 515  "sf16"
-                              Name 517  "sf"
-                              Name 518  "sd"
-                              Name 519  "f16_to_f"
-                              Name 521  "f16_to_d"
-                              Name 522  "f_to_f16"
-                              Name 523  "d_to_f16"
+                              Name 518  "S"
+                              MemberName 518(S) 0  "x"
+                              MemberName 518(S) 1  "y"
+                              MemberName 518(S) 2  "z"
+                              Name 520  "B1"
+                              MemberName 520(B1) 0  "a"
+                              MemberName 520(B1) 1  "b"
+                              MemberName 520(B1) 2  "c"
+                              MemberName 520(B1) 3  "d"
+                              MemberName 520(B1) 4  "e"
+                              MemberName 520(B1) 5  "f"
+                              MemberName 520(B1) 6  "g"
+                              MemberName 520(B1) 7  "h"
+                              Name 522  ""
+                              Name 523  "sf16"
+                              Name 525  "sf"
+                              Name 526  "sd"
+                              Name 527  "f16_to_f"
+                              Name 529  "f16_to_d"
+                              Name 530  "f_to_f16"
+                              Name 531  "d_to_f16"
                               Decorate 461(if64v) Flat
                               Decorate 461(if64v) Location 0
-                              Decorate 508 ArrayStride 16
-                              Decorate 509 ArrayStride 64
-                              MemberDecorate 510(S) 0 Offset 0
-                              MemberDecorate 510(S) 1 Offset 16
-                              MemberDecorate 510(S) 2 Offset 32
-                              Decorate 511 ArrayStride 64
-                              MemberDecorate 512(B1) 0 Offset 0
-                              MemberDecorate 512(B1) 1 Offset 16
-                              MemberDecorate 512(B1) 2 Offset 32
-                              MemberDecorate 512(B1) 3 Offset 64
-                              MemberDecorate 512(B1) 4 ColMajor
-                              MemberDecorate 512(B1) 4 Offset 96
-                              MemberDecorate 512(B1) 4 MatrixStride 32
-                              MemberDecorate 512(B1) 5 ColMajor
-                              MemberDecorate 512(B1) 5 Offset 160
-                              MemberDecorate 512(B1) 5 MatrixStride 32
-                              MemberDecorate 512(B1) 6 Offset 288
-                              MemberDecorate 512(B1) 7 Offset 352
-                              Decorate 512(B1) Block
-                              Decorate 514 DescriptorSet 0
-                              Decorate 514 Binding 0
-                              Decorate 515(sf16) SpecId 100
-                              Decorate 517(sf) SpecId 101
-                              Decorate 518(sd) SpecId 102
+                              Decorate 516 ArrayStride 16
+                              Decorate 517 ArrayStride 64
+                              MemberDecorate 518(S) 0 Offset 0
+                              MemberDecorate 518(S) 1 Offset 16
+                              MemberDecorate 518(S) 2 Offset 32
+                              Decorate 519 ArrayStride 64
+                              MemberDecorate 520(B1) 0 Offset 0
+                              MemberDecorate 520(B1) 1 Offset 16
+                              MemberDecorate 520(B1) 2 Offset 32
+                              MemberDecorate 520(B1) 3 Offset 64
+                              MemberDecorate 520(B1) 4 ColMajor
+                              MemberDecorate 520(B1) 4 Offset 96
+                              MemberDecorate 520(B1) 4 MatrixStride 32
+                              MemberDecorate 520(B1) 5 ColMajor
+                              MemberDecorate 520(B1) 5 Offset 160
+                              MemberDecorate 520(B1) 5 MatrixStride 32
+                              MemberDecorate 520(B1) 6 Offset 288
+                              MemberDecorate 520(B1) 7 Offset 352
+                              Decorate 520(B1) Block
+                              Decorate 522 DescriptorSet 0
+                              Decorate 522 Binding 0
+                              Decorate 523(sf16) SpecId 100
+                              Decorate 525(sf) SpecId 101
+                              Decorate 526(sd) SpecId 102
                2:             TypeVoid
                3:             TypeFunction 2
               26:             TypeFloat 64
@@ -195,26 +195,26 @@
              460:             TypePointer Input 149(f64vec3)
       461(if64v):    460(ptr) Variable Input
              462:             TypePointer Input 26(float64_t)
-             499:    182(int) Constant 1
-             504:26(float64_t) Constant 0 1071644672
-             505: 27(f64vec2) ConstantComposite 504 504
-             507:     31(int) Constant 2
-             508:             TypeArray 26(float64_t) 507
-             509:             TypeArray 402 507
-          510(S):             TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3)
-             511:             TypeArray 510(S) 507
-         512(B1):             TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) 508 402 509 510(S) 511
-             513:             TypePointer Uniform 512(B1)
-             514:    513(ptr) Variable Uniform
-       515(sf16):162(float16_t) SpecConstant 12288
-             516:             TypeFloat 32
-         517(sf):  516(float) SpecConstant 1048576000
-         518(sd):26(float64_t) SpecConstant 0 1071644672
-   519(f16_to_f):  516(float) SpecConstantOp 115 515(sf16)
-             520:  516(float) SpecConstantOp 115 515(sf16)
-   521(f16_to_d):26(float64_t) SpecConstantOp 115 520
-   522(f_to_f16):162(float16_t) SpecConstantOp 115 517(sf)
-   523(d_to_f16):162(float16_t) SpecConstantOp 115 518(sd)
+             505:    182(int) Constant 1
+             512:26(float64_t) Constant 0 1071644672
+             513: 27(f64vec2) ConstantComposite 512 512
+             515:     31(int) Constant 2
+             516:             TypeArray 26(float64_t) 515
+             517:             TypeArray 402 515
+          518(S):             TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3)
+             519:             TypeArray 518(S) 515
+         520(B1):             TypeStruct 26(float64_t) 27(f64vec2) 149(f64vec3) 516 402 517 518(S) 519
+             521:             TypePointer Uniform 520(B1)
+             522:    521(ptr) Variable Uniform
+       523(sf16):162(float16_t) SpecConstant 12288
+             524:             TypeFloat 32
+         525(sf):  524(float) SpecConstant 1048576000
+         526(sd):26(float64_t) SpecConstant 0 1071644672
+   527(f16_to_f):  524(float) SpecConstantOp 115 523(sf16)
+             528:  524(float) SpecConstantOp 115 523(sf16)
+   529(f16_to_d):26(float64_t) SpecConstantOp 115 528
+   530(f_to_f16):162(float16_t) SpecConstantOp 115 525(sf)
+   531(d_to_f16):162(float16_t) SpecConstantOp 115 526(sd)
          4(main):           2 Function None 3
                5:             Label
                               Return
@@ -754,45 +754,57 @@
              471:149(f64vec3) Load 461(if64v)
              472: 27(f64vec2) VectorShuffle 471 471 0 1
              473: 27(f64vec2) DPdxFine 472
-             474:149(f64vec3) Load 459(f64v)
-             475:149(f64vec3) VectorShuffle 474 473 3 4 2
-                              Store 459(f64v) 475
-             476:149(f64vec3) Load 461(if64v)
-             477: 27(f64vec2) VectorShuffle 476 476 0 1
-             478: 27(f64vec2) DPdyFine 477
-             479:149(f64vec3) Load 459(f64v)
-             480:149(f64vec3) VectorShuffle 479 478 3 4 2
-                              Store 459(f64v) 480
-             481:149(f64vec3) Load 461(if64v)
-             482:149(f64vec3) DPdxCoarse 481
-                              Store 459(f64v) 482
-             483:149(f64vec3) Load 461(if64v)
-             484:149(f64vec3) DPdxCoarse 483
-                              Store 459(f64v) 484
-             485:    462(ptr) AccessChain 461(if64v) 32
-             486:26(float64_t) Load 485
-             487:26(float64_t) Fwidth 486
-             488:     33(ptr) AccessChain 459(f64v) 32
-                              Store 488 487
-             489:149(f64vec3) Load 461(if64v)
-             490: 27(f64vec2) VectorShuffle 489 489 0 1
-             491: 27(f64vec2) FwidthFine 490
-             492:149(f64vec3) Load 459(f64v)
-             493:149(f64vec3) VectorShuffle 492 491 3 4 2
-                              Store 459(f64v) 493
-             494:149(f64vec3) Load 461(if64v)
-             495:149(f64vec3) FwidthCoarse 494
-                              Store 459(f64v) 495
-             496:    462(ptr) AccessChain 461(if64v) 32
-             497:26(float64_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 496
-             498:     33(ptr) AccessChain 459(f64v) 32
-                              Store 498 497
-             500:149(f64vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 461(if64v) 499
-             501: 27(f64vec2) VectorShuffle 500 500 0 1
-             502:149(f64vec3) Load 459(f64v)
-             503:149(f64vec3) VectorShuffle 502 501 3 4 2
-                              Store 459(f64v) 503
-             506:149(f64vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 461(if64v) 505
-                              Store 459(f64v) 506
+             474:     33(ptr) AccessChain 459(f64v) 32
+             475:26(float64_t) CompositeExtract 473 0
+                              Store 474 475
+             476:     33(ptr) AccessChain 459(f64v) 88
+             477:26(float64_t) CompositeExtract 473 1
+                              Store 476 477
+             478:149(f64vec3) Load 461(if64v)
+             479: 27(f64vec2) VectorShuffle 478 478 0 1
+             480: 27(f64vec2) DPdyFine 479
+             481:     33(ptr) AccessChain 459(f64v) 32
+             482:26(float64_t) CompositeExtract 480 0
+                              Store 481 482
+             483:     33(ptr) AccessChain 459(f64v) 88
+             484:26(float64_t) CompositeExtract 480 1
+                              Store 483 484
+             485:149(f64vec3) Load 461(if64v)
+             486:149(f64vec3) DPdxCoarse 485
+                              Store 459(f64v) 486
+             487:149(f64vec3) Load 461(if64v)
+             488:149(f64vec3) DPdxCoarse 487
+                              Store 459(f64v) 488
+             489:    462(ptr) AccessChain 461(if64v) 32
+             490:26(float64_t) Load 489
+             491:26(float64_t) Fwidth 490
+             492:     33(ptr) AccessChain 459(f64v) 32
+                              Store 492 491
+             493:149(f64vec3) Load 461(if64v)
+             494: 27(f64vec2) VectorShuffle 493 493 0 1
+             495: 27(f64vec2) FwidthFine 494
+             496:     33(ptr) AccessChain 459(f64v) 32
+             497:26(float64_t) CompositeExtract 495 0
+                              Store 496 497
+             498:     33(ptr) AccessChain 459(f64v) 88
+             499:26(float64_t) CompositeExtract 495 1
+                              Store 498 499
+             500:149(f64vec3) Load 461(if64v)
+             501:149(f64vec3) FwidthCoarse 500
+                              Store 459(f64v) 501
+             502:    462(ptr) AccessChain 461(if64v) 32
+             503:26(float64_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 502
+             504:     33(ptr) AccessChain 459(f64v) 32
+                              Store 504 503
+             506:149(f64vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 461(if64v) 505
+             507: 27(f64vec2) VectorShuffle 506 506 0 1
+             508:     33(ptr) AccessChain 459(f64v) 32
+             509:26(float64_t) CompositeExtract 507 0
+                              Store 508 509
+             510:     33(ptr) AccessChain 459(f64v) 88
+             511:26(float64_t) CompositeExtract 507 1
+                              Store 510 511
+             514:149(f64vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 461(if64v) 513
+                              Store 459(f64v) 514
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.forLoop.frag.out b/Test/baseResults/spv.forLoop.frag.out
index 1aac9a6..3a36667 100644
--- a/Test/baseResults/spv.forLoop.frag.out
+++ b/Test/baseResults/spv.forLoop.frag.out
@@ -1,12 +1,12 @@
 spv.forLoop.frag
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 131
+// Id's are bound by 143
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 11 24 28 36 53 104
+                              EntryPoint Fragment 4  "main" 11 24 28 36 53 111
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 140
                               Name 4  "main"
@@ -22,9 +22,9 @@
                               Name 63  "i"
                               Name 71  "tv4"
                               Name 88  "r"
-                              Name 94  "i"
-                              Name 104  "f"
-                              Name 117  "i"
+                              Name 101  "i"
+                              Name 111  "f"
+                              Name 129  "i"
                               Decorate 11(BaseColor) Location 1
                               Decorate 24(Count) Flat
                               Decorate 24(Count) Location 3
@@ -32,7 +32,7 @@
                               Decorate 36(gl_FragColor) Location 0
                               Decorate 53(v4) Flat
                               Decorate 53(v4) Location 4
-                              Decorate 104(f) Location 2
+                              Decorate 111(f) Location 2
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -60,10 +60,14 @@
               55:             TypePointer Input 50(int)
               76:     50(int) Constant 4
               89:             TypeVector 6(float) 3
-             103:             TypePointer Input 6(float)
-          104(f):    103(ptr) Variable Input
-             106:     50(int) Constant 3
-             124:     13(int) Constant 16
+              92:     50(int) Constant 0
+              95:     50(int) Constant 1
+              98:     50(int) Constant 2
+             110:             TypePointer Input 6(float)
+          111(f):    110(ptr) Variable Input
+             113:     50(int) Constant 3
+             122:             TypePointer Output 6(float)
+             136:     13(int) Constant 16
          4(main):           2 Function None 3
                5:             Label
         9(color):      8(ptr) Variable Function
@@ -73,8 +77,8 @@
            63(i):     14(ptr) Variable Function
          71(tv4):      8(ptr) Variable Function
            88(r):      8(ptr) Variable Function
-           94(i):     14(ptr) Variable Function
-          117(i):     14(ptr) Variable Function
+          101(i):     14(ptr) Variable Function
+          129(i):     14(ptr) Variable Function
               12:    7(fvec4) Load 11(BaseColor)
                               Store 9(color) 12
                               Store 15(i) 16
@@ -160,58 +164,70 @@
                               Store 36(gl_FragColor) 87
               90:    7(fvec4) Load 11(BaseColor)
               91:   89(fvec3) VectorShuffle 90 90 0 1 2
-              92:    7(fvec4) Load 88(r)
-              93:    7(fvec4) VectorShuffle 92 91 4 5 6 3
-                              Store 88(r) 93
-                              Store 94(i) 16
-                              Branch 95
-              95:             Label
-                              LoopMerge 97 98 None
-                              Branch 99
-              99:             Label
-             100:     13(int) Load 94(i)
-             101:     13(int) Load 24(Count)
-             102:    26(bool) SLessThan 100 101
-                              BranchConditional 102 96 97
-              96:               Label
-             105:    6(float)   Load 104(f)
-             107:     38(ptr)   AccessChain 88(r) 106
-                                Store 107 105
-                                Branch 98
-              98:               Label
-             108:     13(int)   Load 94(i)
-             109:     13(int)   IAdd 108 33
-                                Store 94(i) 109
-                                Branch 95
-              97:             Label
-             110:    7(fvec4) Load 88(r)
-             111:   89(fvec3) VectorShuffle 110 110 0 1 2
-             112:    7(fvec4) Load 36(gl_FragColor)
-             113:   89(fvec3) VectorShuffle 112 112 0 1 2
-             114:   89(fvec3) FAdd 113 111
-             115:    7(fvec4) Load 36(gl_FragColor)
-             116:    7(fvec4) VectorShuffle 115 114 4 5 6 3
-                              Store 36(gl_FragColor) 116
-                              Store 117(i) 16
-                              Branch 118
-             118:             Label
-                              LoopMerge 120 121 None
-                              Branch 122
-             122:             Label
-             123:     13(int) Load 117(i)
-             125:    26(bool) SLessThan 123 124
-                              BranchConditional 125 119 120
-             119:               Label
-             126:    6(float)   Load 104(f)
-             127:    7(fvec4)   Load 36(gl_FragColor)
-             128:    7(fvec4)   VectorTimesScalar 127 126
-                                Store 36(gl_FragColor) 128
-                                Branch 121
-             121:               Label
-             129:     13(int)   Load 117(i)
-             130:     13(int)   IAdd 129 48
-                                Store 117(i) 130
-                                Branch 118
-             120:             Label
+              93:     38(ptr) AccessChain 88(r) 92
+              94:    6(float) CompositeExtract 91 0
+                              Store 93 94
+              96:     38(ptr) AccessChain 88(r) 95
+              97:    6(float) CompositeExtract 91 1
+                              Store 96 97
+              99:     38(ptr) AccessChain 88(r) 98
+             100:    6(float) CompositeExtract 91 2
+                              Store 99 100
+                              Store 101(i) 16
+                              Branch 102
+             102:             Label
+                              LoopMerge 104 105 None
+                              Branch 106
+             106:             Label
+             107:     13(int) Load 101(i)
+             108:     13(int) Load 24(Count)
+             109:    26(bool) SLessThan 107 108
+                              BranchConditional 109 103 104
+             103:               Label
+             112:    6(float)   Load 111(f)
+             114:     38(ptr)   AccessChain 88(r) 113
+                                Store 114 112
+                                Branch 105
+             105:               Label
+             115:     13(int)   Load 101(i)
+             116:     13(int)   IAdd 115 33
+                                Store 101(i) 116
+                                Branch 102
+             104:             Label
+             117:    7(fvec4) Load 88(r)
+             118:   89(fvec3) VectorShuffle 117 117 0 1 2
+             119:    7(fvec4) Load 36(gl_FragColor)
+             120:   89(fvec3) VectorShuffle 119 119 0 1 2
+             121:   89(fvec3) FAdd 120 118
+             123:    122(ptr) AccessChain 36(gl_FragColor) 92
+             124:    6(float) CompositeExtract 121 0
+                              Store 123 124
+             125:    122(ptr) AccessChain 36(gl_FragColor) 95
+             126:    6(float) CompositeExtract 121 1
+                              Store 125 126
+             127:    122(ptr) AccessChain 36(gl_FragColor) 98
+             128:    6(float) CompositeExtract 121 2
+                              Store 127 128
+                              Store 129(i) 16
+                              Branch 130
+             130:             Label
+                              LoopMerge 132 133 None
+                              Branch 134
+             134:             Label
+             135:     13(int) Load 129(i)
+             137:    26(bool) SLessThan 135 136
+                              BranchConditional 137 131 132
+             131:               Label
+             138:    6(float)   Load 111(f)
+             139:    7(fvec4)   Load 36(gl_FragColor)
+             140:    7(fvec4)   VectorTimesScalar 139 138
+                                Store 36(gl_FragColor) 140
+                                Branch 133
+             133:               Label
+             141:     13(int)   Load 129(i)
+             142:     13(int)   IAdd 141 48
+                                Store 129(i) 142
+                                Branch 130
+             132:             Label
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.image.frag.out b/Test/baseResults/spv.image.frag.out
index 3e2096d..5fbb922 100644
--- a/Test/baseResults/spv.image.frag.out
+++ b/Test/baseResults/spv.image.frag.out
@@ -2,7 +2,7 @@
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 395
+// Id's are bound by 405
 
                               Capability Shader
                               Capability StorageImageMultisample
@@ -16,79 +16,79 @@
                               Capability StorageImageWriteWithoutFormat
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 132 142 152 248 381 394
+                              EntryPoint Fragment 4  "main" 143 153 163 258 391 404
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 450
                               Name 4  "main"
                               Name 9  "iv"
                               Name 15  "i1D"
                               Name 27  "i2D"
-                              Name 38  "i3D"
-                              Name 45  "iCube"
-                              Name 55  "iCubeArray"
-                              Name 62  "i2DRect"
-                              Name 72  "i1DArray"
-                              Name 82  "i2DArray"
-                              Name 89  "iBuffer"
-                              Name 98  "i2DMS"
-                              Name 108  "i2DMSArray"
-                              Name 127  "v"
-                              Name 132  "ic1D"
-                              Name 142  "ic2D"
-                              Name 152  "ic3D"
-                              Name 229  "ui"
-                              Name 232  "ii1D"
-                              Name 245  "ui2D"
-                              Name 248  "value"
-                              Name 357  "ii2DMS"
-                              Name 367  "ui2DMSArray"
-                              Name 376  "wo2D"
-                              Name 381  "fragData"
-                              Name 394  "ic4D"
+                              Name 41  "i3D"
+                              Name 48  "iCube"
+                              Name 60  "iCubeArray"
+                              Name 67  "i2DRect"
+                              Name 79  "i1DArray"
+                              Name 91  "i2DArray"
+                              Name 98  "iBuffer"
+                              Name 107  "i2DMS"
+                              Name 119  "i2DMSArray"
+                              Name 138  "v"
+                              Name 143  "ic1D"
+                              Name 153  "ic2D"
+                              Name 163  "ic3D"
+                              Name 240  "ui"
+                              Name 243  "ii1D"
+                              Name 255  "ui2D"
+                              Name 258  "value"
+                              Name 367  "ii2DMS"
+                              Name 377  "ui2DMSArray"
+                              Name 386  "wo2D"
+                              Name 391  "fragData"
+                              Name 404  "ic4D"
                               Decorate 15(i1D) DescriptorSet 0
                               Decorate 15(i1D) Binding 0
                               Decorate 27(i2D) DescriptorSet 0
                               Decorate 27(i2D) Binding 1
-                              Decorate 38(i3D) DescriptorSet 0
-                              Decorate 38(i3D) Binding 2
-                              Decorate 45(iCube) DescriptorSet 0
-                              Decorate 45(iCube) Binding 3
-                              Decorate 55(iCubeArray) DescriptorSet 0
-                              Decorate 55(iCubeArray) Binding 4
-                              Decorate 62(i2DRect) DescriptorSet 0
-                              Decorate 62(i2DRect) Binding 5
-                              Decorate 72(i1DArray) DescriptorSet 0
-                              Decorate 72(i1DArray) Binding 6
-                              Decorate 82(i2DArray) DescriptorSet 0
-                              Decorate 82(i2DArray) Binding 7
-                              Decorate 89(iBuffer) DescriptorSet 0
-                              Decorate 89(iBuffer) Binding 8
-                              Decorate 98(i2DMS) DescriptorSet 0
-                              Decorate 98(i2DMS) Binding 9
-                              Decorate 108(i2DMSArray) DescriptorSet 0
-                              Decorate 108(i2DMSArray) Binding 10
-                              Decorate 132(ic1D) Flat
-                              Decorate 132(ic1D) Location 0
-                              Decorate 142(ic2D) Flat
-                              Decorate 142(ic2D) Location 1
-                              Decorate 152(ic3D) Flat
-                              Decorate 152(ic3D) Location 2
-                              Decorate 232(ii1D) DescriptorSet 0
-                              Decorate 232(ii1D) Binding 11
-                              Decorate 245(ui2D) DescriptorSet 0
-                              Decorate 245(ui2D) Binding 12
-                              Decorate 248(value) Flat
-                              Decorate 248(value) Location 4
-                              Decorate 357(ii2DMS) DescriptorSet 0
-                              Decorate 357(ii2DMS) Binding 13
-                              Decorate 367(ui2DMSArray) DescriptorSet 0
-                              Decorate 367(ui2DMSArray) Binding 14
-                              Decorate 376(wo2D) DescriptorSet 0
-                              Decorate 376(wo2D) Binding 1
-                              Decorate 376(wo2D) NonReadable
-                              Decorate 381(fragData) Location 0
-                              Decorate 394(ic4D) Flat
-                              Decorate 394(ic4D) Location 3
+                              Decorate 41(i3D) DescriptorSet 0
+                              Decorate 41(i3D) Binding 2
+                              Decorate 48(iCube) DescriptorSet 0
+                              Decorate 48(iCube) Binding 3
+                              Decorate 60(iCubeArray) DescriptorSet 0
+                              Decorate 60(iCubeArray) Binding 4
+                              Decorate 67(i2DRect) DescriptorSet 0
+                              Decorate 67(i2DRect) Binding 5
+                              Decorate 79(i1DArray) DescriptorSet 0
+                              Decorate 79(i1DArray) Binding 6
+                              Decorate 91(i2DArray) DescriptorSet 0
+                              Decorate 91(i2DArray) Binding 7
+                              Decorate 98(iBuffer) DescriptorSet 0
+                              Decorate 98(iBuffer) Binding 8
+                              Decorate 107(i2DMS) DescriptorSet 0
+                              Decorate 107(i2DMS) Binding 9
+                              Decorate 119(i2DMSArray) DescriptorSet 0
+                              Decorate 119(i2DMSArray) Binding 10
+                              Decorate 143(ic1D) Flat
+                              Decorate 143(ic1D) Location 0
+                              Decorate 153(ic2D) Flat
+                              Decorate 153(ic2D) Location 1
+                              Decorate 163(ic3D) Flat
+                              Decorate 163(ic3D) Location 2
+                              Decorate 243(ii1D) DescriptorSet 0
+                              Decorate 243(ii1D) Binding 11
+                              Decorate 255(ui2D) DescriptorSet 0
+                              Decorate 255(ui2D) Binding 12
+                              Decorate 258(value) Flat
+                              Decorate 258(value) Location 4
+                              Decorate 367(ii2DMS) DescriptorSet 0
+                              Decorate 367(ii2DMS) Binding 13
+                              Decorate 377(ui2DMSArray) DescriptorSet 0
+                              Decorate 377(ui2DMSArray) Binding 14
+                              Decorate 386(wo2D) DescriptorSet 0
+                              Decorate 386(wo2D) Binding 1
+                              Decorate 386(wo2D) NonReadable
+                              Decorate 391(fragData) Location 0
+                              Decorate 404(ic4D) Flat
+                              Decorate 404(ic4D) Location 3
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
@@ -107,90 +107,90 @@
               26:             TypePointer UniformConstant 25
          27(i2D):     26(ptr) Variable UniformConstant
               29:             TypeVector 6(int) 2
-              36:             TypeImage 12(float) 3D nonsampled format:Rgba32f
-              37:             TypePointer UniformConstant 36
-         38(i3D):     37(ptr) Variable UniformConstant
-              43:             TypeImage 12(float) Cube nonsampled format:Rgba32f
-              44:             TypePointer UniformConstant 43
-       45(iCube):     44(ptr) Variable UniformConstant
-              53:             TypeImage 12(float) Cube array nonsampled format:Rgba32f
-              54:             TypePointer UniformConstant 53
-  55(iCubeArray):     54(ptr) Variable UniformConstant
-              60:             TypeImage 12(float) Rect nonsampled format:Rgba32f
-              61:             TypePointer UniformConstant 60
-     62(i2DRect):     61(ptr) Variable UniformConstant
-              70:             TypeImage 12(float) 1D array nonsampled format:Rgba32f
-              71:             TypePointer UniformConstant 70
-    72(i1DArray):     71(ptr) Variable UniformConstant
-              80:             TypeImage 12(float) 2D array nonsampled format:Rg16
-              81:             TypePointer UniformConstant 80
-    82(i2DArray):     81(ptr) Variable UniformConstant
-              87:             TypeImage 12(float) Buffer nonsampled format:Rgba32f
-              88:             TypePointer UniformConstant 87
-     89(iBuffer):     88(ptr) Variable UniformConstant
-              96:             TypeImage 12(float) 2D multi-sampled nonsampled format:Rgba32f
+              36:     18(int) Constant 1
+              39:             TypeImage 12(float) 3D nonsampled format:Rgba32f
+              40:             TypePointer UniformConstant 39
+         41(i3D):     40(ptr) Variable UniformConstant
+              46:             TypeImage 12(float) Cube nonsampled format:Rgba32f
+              47:             TypePointer UniformConstant 46
+       48(iCube):     47(ptr) Variable UniformConstant
+              58:             TypeImage 12(float) Cube array nonsampled format:Rgba32f
+              59:             TypePointer UniformConstant 58
+  60(iCubeArray):     59(ptr) Variable UniformConstant
+              65:             TypeImage 12(float) Rect nonsampled format:Rgba32f
+              66:             TypePointer UniformConstant 65
+     67(i2DRect):     66(ptr) Variable UniformConstant
+              77:             TypeImage 12(float) 1D array nonsampled format:Rgba32f
+              78:             TypePointer UniformConstant 77
+    79(i1DArray):     78(ptr) Variable UniformConstant
+              89:             TypeImage 12(float) 2D array nonsampled format:Rg16
+              90:             TypePointer UniformConstant 89
+    91(i2DArray):     90(ptr) Variable UniformConstant
+              96:             TypeImage 12(float) Buffer nonsampled format:Rgba32f
               97:             TypePointer UniformConstant 96
-       98(i2DMS):     97(ptr) Variable UniformConstant
-             106:             TypeImage 12(float) 2D array multi-sampled nonsampled format:Rgba32f
-             107:             TypePointer UniformConstant 106
- 108(i2DMSArray):    107(ptr) Variable UniformConstant
-             125:             TypeVector 12(float) 4
-             126:             TypePointer Function 125(fvec4)
-             128:   12(float) Constant 0
-             129:  125(fvec4) ConstantComposite 128 128 128 128
-             131:             TypePointer Input 6(int)
-       132(ic1D):    131(ptr) Variable Input
-             141:             TypePointer Input 29(ivec2)
-       142(ic2D):    141(ptr) Variable Input
-             151:             TypePointer Input 7(ivec3)
-       152(ic3D):    151(ptr) Variable Input
-             210:      6(int) Constant 1
-             216:      6(int) Constant 2
-             220:      6(int) Constant 3
-             226:      6(int) Constant 4
-             228:             TypePointer Function 18(int)
-             230:             TypeImage 6(int) 1D nonsampled format:R32i
-             231:             TypePointer UniformConstant 230
-       232(ii1D):    231(ptr) Variable UniformConstant
-             234:      6(int) Constant 10
-             235:             TypePointer Image 6(int)
-             237:     18(int) Constant 1
-             243:             TypeImage 18(int) 2D nonsampled format:R32ui
-             244:             TypePointer UniformConstant 243
-       245(ui2D):    244(ptr) Variable UniformConstant
-             247:             TypePointer Input 18(int)
-      248(value):    247(ptr) Variable Input
-             250:             TypePointer Image 18(int)
-             256:      6(int) Constant 11
-             270:      6(int) Constant 12
-             284:      6(int) Constant 13
-             298:      6(int) Constant 14
-             312:      6(int) Constant 15
-             326:      6(int) Constant 16
-             340:      6(int) Constant 18
-             341:      6(int) Constant 17
-             349:     18(int) Constant 19
-             355:             TypeImage 6(int) 2D multi-sampled nonsampled format:R32i
-             356:             TypePointer UniformConstant 355
-     357(ii2DMS):    356(ptr) Variable UniformConstant
-             365:             TypeImage 18(int) 2D array multi-sampled nonsampled format:R32ui
+     98(iBuffer):     97(ptr) Variable UniformConstant
+             105:             TypeImage 12(float) 2D multi-sampled nonsampled format:Rgba32f
+             106:             TypePointer UniformConstant 105
+      107(i2DMS):    106(ptr) Variable UniformConstant
+             117:             TypeImage 12(float) 2D array multi-sampled nonsampled format:Rgba32f
+             118:             TypePointer UniformConstant 117
+ 119(i2DMSArray):    118(ptr) Variable UniformConstant
+             136:             TypeVector 12(float) 4
+             137:             TypePointer Function 136(fvec4)
+             139:   12(float) Constant 0
+             140:  136(fvec4) ConstantComposite 139 139 139 139
+             142:             TypePointer Input 6(int)
+       143(ic1D):    142(ptr) Variable Input
+             152:             TypePointer Input 29(ivec2)
+       153(ic2D):    152(ptr) Variable Input
+             162:             TypePointer Input 7(ivec3)
+       163(ic3D):    162(ptr) Variable Input
+             221:      6(int) Constant 1
+             227:      6(int) Constant 2
+             231:      6(int) Constant 3
+             237:      6(int) Constant 4
+             239:             TypePointer Function 18(int)
+             241:             TypeImage 6(int) 1D nonsampled format:R32i
+             242:             TypePointer UniformConstant 241
+       243(ii1D):    242(ptr) Variable UniformConstant
+             245:      6(int) Constant 10
+             246:             TypePointer Image 6(int)
+             253:             TypeImage 18(int) 2D nonsampled format:R32ui
+             254:             TypePointer UniformConstant 253
+       255(ui2D):    254(ptr) Variable UniformConstant
+             257:             TypePointer Input 18(int)
+      258(value):    257(ptr) Variable Input
+             260:             TypePointer Image 18(int)
+             266:      6(int) Constant 11
+             280:      6(int) Constant 12
+             294:      6(int) Constant 13
+             308:      6(int) Constant 14
+             322:      6(int) Constant 15
+             336:      6(int) Constant 16
+             350:      6(int) Constant 18
+             351:      6(int) Constant 17
+             359:     18(int) Constant 19
+             365:             TypeImage 6(int) 2D multi-sampled nonsampled format:R32i
              366:             TypePointer UniformConstant 365
-367(ui2DMSArray):    366(ptr) Variable UniformConstant
-             374:             TypeImage 12(float) 2D nonsampled format:Unknown
-             375:             TypePointer UniformConstant 374
-       376(wo2D):    375(ptr) Variable UniformConstant
-             380:             TypePointer Output 125(fvec4)
-   381(fragData):    380(ptr) Variable Output
-             386:             TypeBool
-             389:             TypeVector 386(bool) 4
-             392:             TypeVector 6(int) 4
-             393:             TypePointer Input 392(ivec4)
-       394(ic4D):    393(ptr) Variable Input
+     367(ii2DMS):    366(ptr) Variable UniformConstant
+             375:             TypeImage 18(int) 2D array multi-sampled nonsampled format:R32ui
+             376:             TypePointer UniformConstant 375
+377(ui2DMSArray):    376(ptr) Variable UniformConstant
+             384:             TypeImage 12(float) 2D nonsampled format:Unknown
+             385:             TypePointer UniformConstant 384
+       386(wo2D):    385(ptr) Variable UniformConstant
+             390:             TypePointer Output 136(fvec4)
+   391(fragData):    390(ptr) Variable Output
+             396:             TypeBool
+             399:             TypeVector 396(bool) 4
+             402:             TypeVector 6(int) 4
+             403:             TypePointer Input 402(ivec4)
+       404(ic4D):    403(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
            9(iv):      8(ptr) Variable Function
-          127(v):    126(ptr) Variable Function
-         229(ui):    228(ptr) Variable Function
+          138(v):    137(ptr) Variable Function
+         240(ui):    239(ptr) Variable Function
                               Store 9(iv) 11
               16:          13 Load 15(i1D)
               17:      6(int) ImageQuerySize 16
@@ -204,341 +204,356 @@
               31:    7(ivec3) Load 9(iv)
               32:   29(ivec2) VectorShuffle 31 31 0 1
               33:   29(ivec2) IAdd 32 30
-              34:    7(ivec3) Load 9(iv)
-              35:    7(ivec3) VectorShuffle 34 33 3 4 2
-                              Store 9(iv) 35
-              39:          36 Load 38(i3D)
-              40:    7(ivec3) ImageQuerySize 39
-              41:    7(ivec3) Load 9(iv)
-              42:    7(ivec3) IAdd 41 40
-                              Store 9(iv) 42
-              46:          43 Load 45(iCube)
-              47:   29(ivec2) ImageQuerySize 46
-              48:    7(ivec3) Load 9(iv)
-              49:   29(ivec2) VectorShuffle 48 48 0 1
-              50:   29(ivec2) IAdd 49 47
+              34:     20(ptr) AccessChain 9(iv) 19
+              35:      6(int) CompositeExtract 33 0
+                              Store 34 35
+              37:     20(ptr) AccessChain 9(iv) 36
+              38:      6(int) CompositeExtract 33 1
+                              Store 37 38
+              42:          39 Load 41(i3D)
+              43:    7(ivec3) ImageQuerySize 42
+              44:    7(ivec3) Load 9(iv)
+              45:    7(ivec3) IAdd 44 43
+                              Store 9(iv) 45
+              49:          46 Load 48(iCube)
+              50:   29(ivec2) ImageQuerySize 49
               51:    7(ivec3) Load 9(iv)
-              52:    7(ivec3) VectorShuffle 51 50 3 4 2
-                              Store 9(iv) 52
-              56:          53 Load 55(iCubeArray)
-              57:    7(ivec3) ImageQuerySize 56
-              58:    7(ivec3) Load 9(iv)
-              59:    7(ivec3) IAdd 58 57
-                              Store 9(iv) 59
-              63:          60 Load 62(i2DRect)
-              64:   29(ivec2) ImageQuerySize 63
-              65:    7(ivec3) Load 9(iv)
-              66:   29(ivec2) VectorShuffle 65 65 0 1
-              67:   29(ivec2) IAdd 66 64
-              68:    7(ivec3) Load 9(iv)
-              69:    7(ivec3) VectorShuffle 68 67 3 4 2
-                              Store 9(iv) 69
-              73:          70 Load 72(i1DArray)
-              74:   29(ivec2) ImageQuerySize 73
-              75:    7(ivec3) Load 9(iv)
-              76:   29(ivec2) VectorShuffle 75 75 0 1
-              77:   29(ivec2) IAdd 76 74
-              78:    7(ivec3) Load 9(iv)
-              79:    7(ivec3) VectorShuffle 78 77 3 4 2
-                              Store 9(iv) 79
-              83:          80 Load 82(i2DArray)
-              84:    7(ivec3) ImageQuerySize 83
-              85:    7(ivec3) Load 9(iv)
-              86:    7(ivec3) IAdd 85 84
-                              Store 9(iv) 86
-              90:          87 Load 89(iBuffer)
-              91:      6(int) ImageQuerySize 90
-              92:     20(ptr) AccessChain 9(iv) 19
-              93:      6(int) Load 92
-              94:      6(int) IAdd 93 91
-              95:     20(ptr) AccessChain 9(iv) 19
-                              Store 95 94
-              99:          96 Load 98(i2DMS)
-             100:   29(ivec2) ImageQuerySize 99
-             101:    7(ivec3) Load 9(iv)
-             102:   29(ivec2) VectorShuffle 101 101 0 1
-             103:   29(ivec2) IAdd 102 100
-             104:    7(ivec3) Load 9(iv)
-             105:    7(ivec3) VectorShuffle 104 103 3 4 2
-                              Store 9(iv) 105
-             109:         106 Load 108(i2DMSArray)
-             110:    7(ivec3) ImageQuerySize 109
-             111:    7(ivec3) Load 9(iv)
-             112:    7(ivec3) IAdd 111 110
-                              Store 9(iv) 112
-             113:          96 Load 98(i2DMS)
-             114:      6(int) ImageQuerySamples 113
-             115:     20(ptr) AccessChain 9(iv) 19
-             116:      6(int) Load 115
-             117:      6(int) IAdd 116 114
-             118:     20(ptr) AccessChain 9(iv) 19
-                              Store 118 117
-             119:         106 Load 108(i2DMSArray)
-             120:      6(int) ImageQuerySamples 119
-             121:     20(ptr) AccessChain 9(iv) 19
-             122:      6(int) Load 121
-             123:      6(int) IAdd 122 120
-             124:     20(ptr) AccessChain 9(iv) 19
-                              Store 124 123
-                              Store 127(v) 129
-             130:          13 Load 15(i1D)
-             133:      6(int) Load 132(ic1D)
-             134:  125(fvec4) ImageRead 130 133
-             135:  125(fvec4) Load 127(v)
-             136:  125(fvec4) FAdd 135 134
-                              Store 127(v) 136
-             137:          13 Load 15(i1D)
-             138:      6(int) Load 132(ic1D)
-             139:  125(fvec4) Load 127(v)
-                              ImageWrite 137 138 139
-             140:          25 Load 27(i2D)
-             143:   29(ivec2) Load 142(ic2D)
-             144:  125(fvec4) ImageRead 140 143
-             145:  125(fvec4) Load 127(v)
-             146:  125(fvec4) FAdd 145 144
-                              Store 127(v) 146
-             147:          25 Load 27(i2D)
-             148:   29(ivec2) Load 142(ic2D)
-             149:  125(fvec4) Load 127(v)
-                              ImageWrite 147 148 149
-             150:          36 Load 38(i3D)
-             153:    7(ivec3) Load 152(ic3D)
-             154:  125(fvec4) ImageRead 150 153
-             155:  125(fvec4) Load 127(v)
-             156:  125(fvec4) FAdd 155 154
-                              Store 127(v) 156
-             157:          36 Load 38(i3D)
-             158:    7(ivec3) Load 152(ic3D)
-             159:  125(fvec4) Load 127(v)
-                              ImageWrite 157 158 159
-             160:          43 Load 45(iCube)
-             161:    7(ivec3) Load 152(ic3D)
-             162:  125(fvec4) ImageRead 160 161
-             163:  125(fvec4) Load 127(v)
-             164:  125(fvec4) FAdd 163 162
-                              Store 127(v) 164
-             165:          43 Load 45(iCube)
-             166:    7(ivec3) Load 152(ic3D)
-             167:  125(fvec4) Load 127(v)
-                              ImageWrite 165 166 167
-             168:          53 Load 55(iCubeArray)
-             169:    7(ivec3) Load 152(ic3D)
-             170:  125(fvec4) ImageRead 168 169
-             171:  125(fvec4) Load 127(v)
-             172:  125(fvec4) FAdd 171 170
-                              Store 127(v) 172
-             173:          53 Load 55(iCubeArray)
-             174:    7(ivec3) Load 152(ic3D)
-             175:  125(fvec4) Load 127(v)
-                              ImageWrite 173 174 175
-             176:          60 Load 62(i2DRect)
-             177:   29(ivec2) Load 142(ic2D)
-             178:  125(fvec4) ImageRead 176 177
-             179:  125(fvec4) Load 127(v)
-             180:  125(fvec4) FAdd 179 178
-                              Store 127(v) 180
-             181:          60 Load 62(i2DRect)
-             182:   29(ivec2) Load 142(ic2D)
-             183:  125(fvec4) Load 127(v)
-                              ImageWrite 181 182 183
-             184:          70 Load 72(i1DArray)
-             185:   29(ivec2) Load 142(ic2D)
-             186:  125(fvec4) ImageRead 184 185
-             187:  125(fvec4) Load 127(v)
-             188:  125(fvec4) FAdd 187 186
-                              Store 127(v) 188
-             189:          70 Load 72(i1DArray)
-             190:   29(ivec2) Load 142(ic2D)
-             191:  125(fvec4) Load 127(v)
-                              ImageWrite 189 190 191
-             192:          80 Load 82(i2DArray)
-             193:    7(ivec3) Load 152(ic3D)
-             194:  125(fvec4) ImageRead 192 193
-             195:  125(fvec4) Load 127(v)
-             196:  125(fvec4) FAdd 195 194
-                              Store 127(v) 196
-             197:          80 Load 82(i2DArray)
-             198:    7(ivec3) Load 152(ic3D)
-             199:  125(fvec4) Load 127(v)
-                              ImageWrite 197 198 199
-             200:          87 Load 89(iBuffer)
-             201:      6(int) Load 132(ic1D)
-             202:  125(fvec4) ImageRead 200 201
-             203:  125(fvec4) Load 127(v)
-             204:  125(fvec4) FAdd 203 202
-                              Store 127(v) 204
-             205:          87 Load 89(iBuffer)
-             206:      6(int) Load 132(ic1D)
-             207:  125(fvec4) Load 127(v)
-                              ImageWrite 205 206 207
-             208:          96 Load 98(i2DMS)
-             209:   29(ivec2) Load 142(ic2D)
-             211:  125(fvec4) ImageRead 208 209 Sample 210
-             212:  125(fvec4) Load 127(v)
-             213:  125(fvec4) FAdd 212 211
-                              Store 127(v) 213
-             214:          96 Load 98(i2DMS)
-             215:   29(ivec2) Load 142(ic2D)
-             217:  125(fvec4) Load 127(v)
-                              ImageWrite 214 215 217 Sample 216
-             218:         106 Load 108(i2DMSArray)
-             219:    7(ivec3) Load 152(ic3D)
-             221:  125(fvec4) ImageRead 218 219 Sample 220
-             222:  125(fvec4) Load 127(v)
-             223:  125(fvec4) FAdd 222 221
-                              Store 127(v) 223
-             224:         106 Load 108(i2DMSArray)
-             225:    7(ivec3) Load 152(ic3D)
-             227:  125(fvec4) Load 127(v)
-                              ImageWrite 224 225 227 Sample 226
-                              Store 229(ui) 19
-             233:      6(int) Load 132(ic1D)
-             236:    235(ptr) ImageTexelPointer 232(ii1D) 233 19
-             238:      6(int) AtomicIAdd 236 237 19 234
-             239:     20(ptr) AccessChain 9(iv) 19
-             240:      6(int) Load 239
-             241:      6(int) IAdd 240 238
-             242:     20(ptr) AccessChain 9(iv) 19
-                              Store 242 241
-             246:   29(ivec2) Load 142(ic2D)
-             249:     18(int) Load 248(value)
-             251:    250(ptr) ImageTexelPointer 245(ui2D) 246 19
-             252:     18(int) AtomicIAdd 251 237 19 249
-             253:     18(int) Load 229(ui)
-             254:     18(int) IAdd 253 252
-                              Store 229(ui) 254
-             255:      6(int) Load 132(ic1D)
-             257:    235(ptr) ImageTexelPointer 232(ii1D) 255 19
-             258:      6(int) AtomicSMin 257 237 19 256
-             259:     20(ptr) AccessChain 9(iv) 19
-             260:      6(int) Load 259
-             261:      6(int) IAdd 260 258
-             262:     20(ptr) AccessChain 9(iv) 19
-                              Store 262 261
-             263:   29(ivec2) Load 142(ic2D)
-             264:     18(int) Load 248(value)
-             265:    250(ptr) ImageTexelPointer 245(ui2D) 263 19
-             266:     18(int) AtomicUMin 265 237 19 264
-             267:     18(int) Load 229(ui)
-             268:     18(int) IAdd 267 266
-                              Store 229(ui) 268
-             269:      6(int) Load 132(ic1D)
-             271:    235(ptr) ImageTexelPointer 232(ii1D) 269 19
-             272:      6(int) AtomicSMax 271 237 19 270
-             273:     20(ptr) AccessChain 9(iv) 19
-             274:      6(int) Load 273
-             275:      6(int) IAdd 274 272
-             276:     20(ptr) AccessChain 9(iv) 19
-                              Store 276 275
-             277:   29(ivec2) Load 142(ic2D)
-             278:     18(int) Load 248(value)
-             279:    250(ptr) ImageTexelPointer 245(ui2D) 277 19
-             280:     18(int) AtomicUMax 279 237 19 278
-             281:     18(int) Load 229(ui)
-             282:     18(int) IAdd 281 280
-                              Store 229(ui) 282
-             283:      6(int) Load 132(ic1D)
-             285:    235(ptr) ImageTexelPointer 232(ii1D) 283 19
-             286:      6(int) AtomicAnd 285 237 19 284
-             287:     20(ptr) AccessChain 9(iv) 19
-             288:      6(int) Load 287
-             289:      6(int) IAdd 288 286
-             290:     20(ptr) AccessChain 9(iv) 19
-                              Store 290 289
-             291:   29(ivec2) Load 142(ic2D)
-             292:     18(int) Load 248(value)
-             293:    250(ptr) ImageTexelPointer 245(ui2D) 291 19
-             294:     18(int) AtomicAnd 293 237 19 292
-             295:     18(int) Load 229(ui)
-             296:     18(int) IAdd 295 294
-                              Store 229(ui) 296
-             297:      6(int) Load 132(ic1D)
-             299:    235(ptr) ImageTexelPointer 232(ii1D) 297 19
-             300:      6(int) AtomicOr 299 237 19 298
-             301:     20(ptr) AccessChain 9(iv) 19
-             302:      6(int) Load 301
-             303:      6(int) IAdd 302 300
-             304:     20(ptr) AccessChain 9(iv) 19
-                              Store 304 303
-             305:   29(ivec2) Load 142(ic2D)
-             306:     18(int) Load 248(value)
-             307:    250(ptr) ImageTexelPointer 245(ui2D) 305 19
-             308:     18(int) AtomicOr 307 237 19 306
-             309:     18(int) Load 229(ui)
-             310:     18(int) IAdd 309 308
-                              Store 229(ui) 310
-             311:      6(int) Load 132(ic1D)
-             313:    235(ptr) ImageTexelPointer 232(ii1D) 311 19
-             314:      6(int) AtomicXor 313 237 19 312
-             315:     20(ptr) AccessChain 9(iv) 19
-             316:      6(int) Load 315
-             317:      6(int) IAdd 316 314
-             318:     20(ptr) AccessChain 9(iv) 19
-                              Store 318 317
-             319:   29(ivec2) Load 142(ic2D)
-             320:     18(int) Load 248(value)
-             321:    250(ptr) ImageTexelPointer 245(ui2D) 319 19
-             322:     18(int) AtomicXor 321 237 19 320
-             323:     18(int) Load 229(ui)
-             324:     18(int) IAdd 323 322
-                              Store 229(ui) 324
-             325:      6(int) Load 132(ic1D)
-             327:    235(ptr) ImageTexelPointer 232(ii1D) 325 19
-             328:      6(int) AtomicExchange 327 237 19 326
-             329:     20(ptr) AccessChain 9(iv) 19
-             330:      6(int) Load 329
-             331:      6(int) IAdd 330 328
-             332:     20(ptr) AccessChain 9(iv) 19
-                              Store 332 331
-             333:   29(ivec2) Load 142(ic2D)
-             334:     18(int) Load 248(value)
-             335:    250(ptr) ImageTexelPointer 245(ui2D) 333 19
-             336:     18(int) AtomicExchange 335 237 19 334
-             337:     18(int) Load 229(ui)
-             338:     18(int) IAdd 337 336
-                              Store 229(ui) 338
-             339:      6(int) Load 132(ic1D)
-             342:    235(ptr) ImageTexelPointer 232(ii1D) 339 19
-             343:      6(int) AtomicCompareExchange 342 237 19 19 341 340
-             344:     20(ptr) AccessChain 9(iv) 19
-             345:      6(int) Load 344
-             346:      6(int) IAdd 345 343
-             347:     20(ptr) AccessChain 9(iv) 19
-                              Store 347 346
-             348:   29(ivec2) Load 142(ic2D)
-             350:     18(int) Load 248(value)
-             351:    250(ptr) ImageTexelPointer 245(ui2D) 348 19
-             352:     18(int) AtomicCompareExchange 351 237 19 19 350 349
-             353:     18(int) Load 229(ui)
-             354:     18(int) IAdd 353 352
-                              Store 229(ui) 354
-             358:   29(ivec2) Load 142(ic2D)
-             359:    235(ptr) ImageTexelPointer 357(ii2DMS) 358 216
-             360:      6(int) AtomicCompareExchange 359 237 19 19 341 340
-             361:     20(ptr) AccessChain 9(iv) 19
-             362:      6(int) Load 361
-             363:      6(int) IAdd 362 360
-             364:     20(ptr) AccessChain 9(iv) 19
-                              Store 364 363
-             368:    7(ivec3) Load 152(ic3D)
-             369:     18(int) Load 248(value)
-             370:    250(ptr) ImageTexelPointer 367(ui2DMSArray) 368 220
-             371:     18(int) AtomicCompareExchange 370 237 19 19 369 349
-             372:     18(int) Load 229(ui)
-             373:     18(int) IAdd 372 371
-                              Store 229(ui) 373
-             377:         374 Load 376(wo2D)
-             378:   29(ivec2) Load 142(ic2D)
-             379:  125(fvec4) Load 127(v)
-                              ImageWrite 377 378 379
-             382:     18(int) Load 229(ui)
-             383:     20(ptr) AccessChain 9(iv) 237
-             384:      6(int) Load 383
-             385:     18(int) Bitcast 384
-             387:   386(bool) INotEqual 382 385
-             388:  125(fvec4) Load 127(v)
-             390:  389(bvec4) CompositeConstruct 387 387 387 387
-             391:  125(fvec4) Select 390 388 129
-                              Store 381(fragData) 391
+              52:   29(ivec2) VectorShuffle 51 51 0 1
+              53:   29(ivec2) IAdd 52 50
+              54:     20(ptr) AccessChain 9(iv) 19
+              55:      6(int) CompositeExtract 53 0
+                              Store 54 55
+              56:     20(ptr) AccessChain 9(iv) 36
+              57:      6(int) CompositeExtract 53 1
+                              Store 56 57
+              61:          58 Load 60(iCubeArray)
+              62:    7(ivec3) ImageQuerySize 61
+              63:    7(ivec3) Load 9(iv)
+              64:    7(ivec3) IAdd 63 62
+                              Store 9(iv) 64
+              68:          65 Load 67(i2DRect)
+              69:   29(ivec2) ImageQuerySize 68
+              70:    7(ivec3) Load 9(iv)
+              71:   29(ivec2) VectorShuffle 70 70 0 1
+              72:   29(ivec2) IAdd 71 69
+              73:     20(ptr) AccessChain 9(iv) 19
+              74:      6(int) CompositeExtract 72 0
+                              Store 73 74
+              75:     20(ptr) AccessChain 9(iv) 36
+              76:      6(int) CompositeExtract 72 1
+                              Store 75 76
+              80:          77 Load 79(i1DArray)
+              81:   29(ivec2) ImageQuerySize 80
+              82:    7(ivec3) Load 9(iv)
+              83:   29(ivec2) VectorShuffle 82 82 0 1
+              84:   29(ivec2) IAdd 83 81
+              85:     20(ptr) AccessChain 9(iv) 19
+              86:      6(int) CompositeExtract 84 0
+                              Store 85 86
+              87:     20(ptr) AccessChain 9(iv) 36
+              88:      6(int) CompositeExtract 84 1
+                              Store 87 88
+              92:          89 Load 91(i2DArray)
+              93:    7(ivec3) ImageQuerySize 92
+              94:    7(ivec3) Load 9(iv)
+              95:    7(ivec3) IAdd 94 93
+                              Store 9(iv) 95
+              99:          96 Load 98(iBuffer)
+             100:      6(int) ImageQuerySize 99
+             101:     20(ptr) AccessChain 9(iv) 19
+             102:      6(int) Load 101
+             103:      6(int) IAdd 102 100
+             104:     20(ptr) AccessChain 9(iv) 19
+                              Store 104 103
+             108:         105 Load 107(i2DMS)
+             109:   29(ivec2) ImageQuerySize 108
+             110:    7(ivec3) Load 9(iv)
+             111:   29(ivec2) VectorShuffle 110 110 0 1
+             112:   29(ivec2) IAdd 111 109
+             113:     20(ptr) AccessChain 9(iv) 19
+             114:      6(int) CompositeExtract 112 0
+                              Store 113 114
+             115:     20(ptr) AccessChain 9(iv) 36
+             116:      6(int) CompositeExtract 112 1
+                              Store 115 116
+             120:         117 Load 119(i2DMSArray)
+             121:    7(ivec3) ImageQuerySize 120
+             122:    7(ivec3) Load 9(iv)
+             123:    7(ivec3) IAdd 122 121
+                              Store 9(iv) 123
+             124:         105 Load 107(i2DMS)
+             125:      6(int) ImageQuerySamples 124
+             126:     20(ptr) AccessChain 9(iv) 19
+             127:      6(int) Load 126
+             128:      6(int) IAdd 127 125
+             129:     20(ptr) AccessChain 9(iv) 19
+                              Store 129 128
+             130:         117 Load 119(i2DMSArray)
+             131:      6(int) ImageQuerySamples 130
+             132:     20(ptr) AccessChain 9(iv) 19
+             133:      6(int) Load 132
+             134:      6(int) IAdd 133 131
+             135:     20(ptr) AccessChain 9(iv) 19
+                              Store 135 134
+                              Store 138(v) 140
+             141:          13 Load 15(i1D)
+             144:      6(int) Load 143(ic1D)
+             145:  136(fvec4) ImageRead 141 144
+             146:  136(fvec4) Load 138(v)
+             147:  136(fvec4) FAdd 146 145
+                              Store 138(v) 147
+             148:          13 Load 15(i1D)
+             149:      6(int) Load 143(ic1D)
+             150:  136(fvec4) Load 138(v)
+                              ImageWrite 148 149 150
+             151:          25 Load 27(i2D)
+             154:   29(ivec2) Load 153(ic2D)
+             155:  136(fvec4) ImageRead 151 154
+             156:  136(fvec4) Load 138(v)
+             157:  136(fvec4) FAdd 156 155
+                              Store 138(v) 157
+             158:          25 Load 27(i2D)
+             159:   29(ivec2) Load 153(ic2D)
+             160:  136(fvec4) Load 138(v)
+                              ImageWrite 158 159 160
+             161:          39 Load 41(i3D)
+             164:    7(ivec3) Load 163(ic3D)
+             165:  136(fvec4) ImageRead 161 164
+             166:  136(fvec4) Load 138(v)
+             167:  136(fvec4) FAdd 166 165
+                              Store 138(v) 167
+             168:          39 Load 41(i3D)
+             169:    7(ivec3) Load 163(ic3D)
+             170:  136(fvec4) Load 138(v)
+                              ImageWrite 168 169 170
+             171:          46 Load 48(iCube)
+             172:    7(ivec3) Load 163(ic3D)
+             173:  136(fvec4) ImageRead 171 172
+             174:  136(fvec4) Load 138(v)
+             175:  136(fvec4) FAdd 174 173
+                              Store 138(v) 175
+             176:          46 Load 48(iCube)
+             177:    7(ivec3) Load 163(ic3D)
+             178:  136(fvec4) Load 138(v)
+                              ImageWrite 176 177 178
+             179:          58 Load 60(iCubeArray)
+             180:    7(ivec3) Load 163(ic3D)
+             181:  136(fvec4) ImageRead 179 180
+             182:  136(fvec4) Load 138(v)
+             183:  136(fvec4) FAdd 182 181
+                              Store 138(v) 183
+             184:          58 Load 60(iCubeArray)
+             185:    7(ivec3) Load 163(ic3D)
+             186:  136(fvec4) Load 138(v)
+                              ImageWrite 184 185 186
+             187:          65 Load 67(i2DRect)
+             188:   29(ivec2) Load 153(ic2D)
+             189:  136(fvec4) ImageRead 187 188
+             190:  136(fvec4) Load 138(v)
+             191:  136(fvec4) FAdd 190 189
+                              Store 138(v) 191
+             192:          65 Load 67(i2DRect)
+             193:   29(ivec2) Load 153(ic2D)
+             194:  136(fvec4) Load 138(v)
+                              ImageWrite 192 193 194
+             195:          77 Load 79(i1DArray)
+             196:   29(ivec2) Load 153(ic2D)
+             197:  136(fvec4) ImageRead 195 196
+             198:  136(fvec4) Load 138(v)
+             199:  136(fvec4) FAdd 198 197
+                              Store 138(v) 199
+             200:          77 Load 79(i1DArray)
+             201:   29(ivec2) Load 153(ic2D)
+             202:  136(fvec4) Load 138(v)
+                              ImageWrite 200 201 202
+             203:          89 Load 91(i2DArray)
+             204:    7(ivec3) Load 163(ic3D)
+             205:  136(fvec4) ImageRead 203 204
+             206:  136(fvec4) Load 138(v)
+             207:  136(fvec4) FAdd 206 205
+                              Store 138(v) 207
+             208:          89 Load 91(i2DArray)
+             209:    7(ivec3) Load 163(ic3D)
+             210:  136(fvec4) Load 138(v)
+                              ImageWrite 208 209 210
+             211:          96 Load 98(iBuffer)
+             212:      6(int) Load 143(ic1D)
+             213:  136(fvec4) ImageRead 211 212
+             214:  136(fvec4) Load 138(v)
+             215:  136(fvec4) FAdd 214 213
+                              Store 138(v) 215
+             216:          96 Load 98(iBuffer)
+             217:      6(int) Load 143(ic1D)
+             218:  136(fvec4) Load 138(v)
+                              ImageWrite 216 217 218
+             219:         105 Load 107(i2DMS)
+             220:   29(ivec2) Load 153(ic2D)
+             222:  136(fvec4) ImageRead 219 220 Sample 221
+             223:  136(fvec4) Load 138(v)
+             224:  136(fvec4) FAdd 223 222
+                              Store 138(v) 224
+             225:         105 Load 107(i2DMS)
+             226:   29(ivec2) Load 153(ic2D)
+             228:  136(fvec4) Load 138(v)
+                              ImageWrite 225 226 228 Sample 227
+             229:         117 Load 119(i2DMSArray)
+             230:    7(ivec3) Load 163(ic3D)
+             232:  136(fvec4) ImageRead 229 230 Sample 231
+             233:  136(fvec4) Load 138(v)
+             234:  136(fvec4) FAdd 233 232
+                              Store 138(v) 234
+             235:         117 Load 119(i2DMSArray)
+             236:    7(ivec3) Load 163(ic3D)
+             238:  136(fvec4) Load 138(v)
+                              ImageWrite 235 236 238 Sample 237
+                              Store 240(ui) 19
+             244:      6(int) Load 143(ic1D)
+             247:    246(ptr) ImageTexelPointer 243(ii1D) 244 19
+             248:      6(int) AtomicIAdd 247 36 19 245
+             249:     20(ptr) AccessChain 9(iv) 19
+             250:      6(int) Load 249
+             251:      6(int) IAdd 250 248
+             252:     20(ptr) AccessChain 9(iv) 19
+                              Store 252 251
+             256:   29(ivec2) Load 153(ic2D)
+             259:     18(int) Load 258(value)
+             261:    260(ptr) ImageTexelPointer 255(ui2D) 256 19
+             262:     18(int) AtomicIAdd 261 36 19 259
+             263:     18(int) Load 240(ui)
+             264:     18(int) IAdd 263 262
+                              Store 240(ui) 264
+             265:      6(int) Load 143(ic1D)
+             267:    246(ptr) ImageTexelPointer 243(ii1D) 265 19
+             268:      6(int) AtomicSMin 267 36 19 266
+             269:     20(ptr) AccessChain 9(iv) 19
+             270:      6(int) Load 269
+             271:      6(int) IAdd 270 268
+             272:     20(ptr) AccessChain 9(iv) 19
+                              Store 272 271
+             273:   29(ivec2) Load 153(ic2D)
+             274:     18(int) Load 258(value)
+             275:    260(ptr) ImageTexelPointer 255(ui2D) 273 19
+             276:     18(int) AtomicUMin 275 36 19 274
+             277:     18(int) Load 240(ui)
+             278:     18(int) IAdd 277 276
+                              Store 240(ui) 278
+             279:      6(int) Load 143(ic1D)
+             281:    246(ptr) ImageTexelPointer 243(ii1D) 279 19
+             282:      6(int) AtomicSMax 281 36 19 280
+             283:     20(ptr) AccessChain 9(iv) 19
+             284:      6(int) Load 283
+             285:      6(int) IAdd 284 282
+             286:     20(ptr) AccessChain 9(iv) 19
+                              Store 286 285
+             287:   29(ivec2) Load 153(ic2D)
+             288:     18(int) Load 258(value)
+             289:    260(ptr) ImageTexelPointer 255(ui2D) 287 19
+             290:     18(int) AtomicUMax 289 36 19 288
+             291:     18(int) Load 240(ui)
+             292:     18(int) IAdd 291 290
+                              Store 240(ui) 292
+             293:      6(int) Load 143(ic1D)
+             295:    246(ptr) ImageTexelPointer 243(ii1D) 293 19
+             296:      6(int) AtomicAnd 295 36 19 294
+             297:     20(ptr) AccessChain 9(iv) 19
+             298:      6(int) Load 297
+             299:      6(int) IAdd 298 296
+             300:     20(ptr) AccessChain 9(iv) 19
+                              Store 300 299
+             301:   29(ivec2) Load 153(ic2D)
+             302:     18(int) Load 258(value)
+             303:    260(ptr) ImageTexelPointer 255(ui2D) 301 19
+             304:     18(int) AtomicAnd 303 36 19 302
+             305:     18(int) Load 240(ui)
+             306:     18(int) IAdd 305 304
+                              Store 240(ui) 306
+             307:      6(int) Load 143(ic1D)
+             309:    246(ptr) ImageTexelPointer 243(ii1D) 307 19
+             310:      6(int) AtomicOr 309 36 19 308
+             311:     20(ptr) AccessChain 9(iv) 19
+             312:      6(int) Load 311
+             313:      6(int) IAdd 312 310
+             314:     20(ptr) AccessChain 9(iv) 19
+                              Store 314 313
+             315:   29(ivec2) Load 153(ic2D)
+             316:     18(int) Load 258(value)
+             317:    260(ptr) ImageTexelPointer 255(ui2D) 315 19
+             318:     18(int) AtomicOr 317 36 19 316
+             319:     18(int) Load 240(ui)
+             320:     18(int) IAdd 319 318
+                              Store 240(ui) 320
+             321:      6(int) Load 143(ic1D)
+             323:    246(ptr) ImageTexelPointer 243(ii1D) 321 19
+             324:      6(int) AtomicXor 323 36 19 322
+             325:     20(ptr) AccessChain 9(iv) 19
+             326:      6(int) Load 325
+             327:      6(int) IAdd 326 324
+             328:     20(ptr) AccessChain 9(iv) 19
+                              Store 328 327
+             329:   29(ivec2) Load 153(ic2D)
+             330:     18(int) Load 258(value)
+             331:    260(ptr) ImageTexelPointer 255(ui2D) 329 19
+             332:     18(int) AtomicXor 331 36 19 330
+             333:     18(int) Load 240(ui)
+             334:     18(int) IAdd 333 332
+                              Store 240(ui) 334
+             335:      6(int) Load 143(ic1D)
+             337:    246(ptr) ImageTexelPointer 243(ii1D) 335 19
+             338:      6(int) AtomicExchange 337 36 19 336
+             339:     20(ptr) AccessChain 9(iv) 19
+             340:      6(int) Load 339
+             341:      6(int) IAdd 340 338
+             342:     20(ptr) AccessChain 9(iv) 19
+                              Store 342 341
+             343:   29(ivec2) Load 153(ic2D)
+             344:     18(int) Load 258(value)
+             345:    260(ptr) ImageTexelPointer 255(ui2D) 343 19
+             346:     18(int) AtomicExchange 345 36 19 344
+             347:     18(int) Load 240(ui)
+             348:     18(int) IAdd 347 346
+                              Store 240(ui) 348
+             349:      6(int) Load 143(ic1D)
+             352:    246(ptr) ImageTexelPointer 243(ii1D) 349 19
+             353:      6(int) AtomicCompareExchange 352 36 19 19 351 350
+             354:     20(ptr) AccessChain 9(iv) 19
+             355:      6(int) Load 354
+             356:      6(int) IAdd 355 353
+             357:     20(ptr) AccessChain 9(iv) 19
+                              Store 357 356
+             358:   29(ivec2) Load 153(ic2D)
+             360:     18(int) Load 258(value)
+             361:    260(ptr) ImageTexelPointer 255(ui2D) 358 19
+             362:     18(int) AtomicCompareExchange 361 36 19 19 360 359
+             363:     18(int) Load 240(ui)
+             364:     18(int) IAdd 363 362
+                              Store 240(ui) 364
+             368:   29(ivec2) Load 153(ic2D)
+             369:    246(ptr) ImageTexelPointer 367(ii2DMS) 368 227
+             370:      6(int) AtomicCompareExchange 369 36 19 19 351 350
+             371:     20(ptr) AccessChain 9(iv) 19
+             372:      6(int) Load 371
+             373:      6(int) IAdd 372 370
+             374:     20(ptr) AccessChain 9(iv) 19
+                              Store 374 373
+             378:    7(ivec3) Load 163(ic3D)
+             379:     18(int) Load 258(value)
+             380:    260(ptr) ImageTexelPointer 377(ui2DMSArray) 378 231
+             381:     18(int) AtomicCompareExchange 380 36 19 19 379 359
+             382:     18(int) Load 240(ui)
+             383:     18(int) IAdd 382 381
+                              Store 240(ui) 383
+             387:         384 Load 386(wo2D)
+             388:   29(ivec2) Load 153(ic2D)
+             389:  136(fvec4) Load 138(v)
+                              ImageWrite 387 388 389
+             392:     18(int) Load 240(ui)
+             393:     20(ptr) AccessChain 9(iv) 36
+             394:      6(int) Load 393
+             395:     18(int) Bitcast 394
+             397:   396(bool) INotEqual 392 395
+             398:  136(fvec4) Load 138(v)
+             400:  399(bvec4) CompositeConstruct 397 397 397 397
+             401:  136(fvec4) Select 400 398 140
+                              Store 391(fragData) 401
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.int16.amd.frag.out b/Test/baseResults/spv.int16.amd.frag.out
index 50dbe6c..676d99c 100644
--- a/Test/baseResults/spv.int16.amd.frag.out
+++ b/Test/baseResults/spv.int16.amd.frag.out
@@ -1,7 +1,7 @@
 spv.int16.amd.frag
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 560
+// Id's are bound by 576
 
                               Capability Shader
                               Capability Float16
@@ -14,7 +14,7 @@
                               Extension  "SPV_KHR_16bit_storage"
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 519 521
+                              EntryPoint Fragment 4  "main" 535 537
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 450
                               SourceExtension  "GL_AMD_gpu_shader_half_float"
@@ -54,66 +54,66 @@
                               Name 393  "f16v"
                               Name 396  "exp"
                               Name 397  "ResType"
-                              Name 418  "packi"
-                              Name 423  "packu"
-                              Name 432  "packi64"
-                              Name 441  "packu64"
-                              Name 450  "bv"
-                              Name 515  "Block"
-                              MemberName 515(Block) 0  "i16v"
-                              MemberName 515(Block) 1  "u16"
-                              Name 517  "block"
-                              Name 519  "iu16v"
-                              Name 521  "ii16"
-                              Name 522  "si64"
-                              Name 523  "su64"
-                              Name 524  "si"
-                              Name 525  "su"
-                              Name 526  "sb"
-                              Name 527  "si16"
-                              Name 528  "su16"
-                              Name 529  "i16_to_b"
-                              Name 530  "u16_to_b"
-                              Name 531  "b_to_i16"
-                              Name 532  "b_to_u16"
-                              Name 533  "i16_to_i"
-                              Name 535  "u16_to_i"
-                              Name 536  "i_to_i16"
-                              Name 538  "i_to_u16"
-                              Name 540  "i16_to_u"
-                              Name 541  "u16_to_u"
-                              Name 543  "u_to_i16"
-                              Name 544  "u_to_u16"
-                              Name 545  "i16_to_i64"
-                              Name 548  "u16_to_i64"
-                              Name 549  "i64_to_i16"
-                              Name 551  "i64_to_u16"
-                              Name 553  "i16_to_u64"
-                              Name 554  "u16_to_u64"
-                              Name 556  "u64_to_i16"
-                              Name 557  "u64_to_u16"
-                              Name 558  "i16_to_u16"
-                              Name 559  "u16_to_i16"
+                              Name 420  "packi"
+                              Name 425  "packu"
+                              Name 436  "packi64"
+                              Name 445  "packu64"
+                              Name 454  "bv"
+                              Name 531  "Block"
+                              MemberName 531(Block) 0  "i16v"
+                              MemberName 531(Block) 1  "u16"
+                              Name 533  "block"
+                              Name 535  "iu16v"
+                              Name 537  "ii16"
+                              Name 538  "si64"
+                              Name 539  "su64"
+                              Name 540  "si"
+                              Name 541  "su"
+                              Name 542  "sb"
+                              Name 543  "si16"
+                              Name 544  "su16"
+                              Name 545  "i16_to_b"
+                              Name 546  "u16_to_b"
+                              Name 547  "b_to_i16"
+                              Name 548  "b_to_u16"
+                              Name 549  "i16_to_i"
+                              Name 551  "u16_to_i"
+                              Name 552  "i_to_i16"
+                              Name 554  "i_to_u16"
+                              Name 556  "i16_to_u"
+                              Name 557  "u16_to_u"
+                              Name 559  "u_to_i16"
+                              Name 560  "u_to_u16"
+                              Name 561  "i16_to_i64"
+                              Name 564  "u16_to_i64"
+                              Name 565  "i64_to_i16"
+                              Name 567  "i64_to_u16"
+                              Name 569  "i16_to_u64"
+                              Name 570  "u16_to_u64"
+                              Name 572  "u64_to_i16"
+                              Name 573  "u64_to_u16"
+                              Name 574  "i16_to_u16"
+                              Name 575  "u16_to_i16"
                               MemberDecorate 25(Uniforms) 0 Offset 0
                               Decorate 25(Uniforms) Block
                               Decorate 27 DescriptorSet 0
                               Decorate 27 Binding 0
-                              MemberDecorate 515(Block) 0 Offset 0
-                              MemberDecorate 515(Block) 1 Offset 6
-                              Decorate 515(Block) Block
-                              Decorate 517(block) DescriptorSet 0
-                              Decorate 517(block) Binding 1
-                              Decorate 519(iu16v) Flat
-                              Decorate 519(iu16v) Location 0
-                              Decorate 521(ii16) Flat
-                              Decorate 521(ii16) Location 1
-                              Decorate 522(si64) SpecId 100
-                              Decorate 523(su64) SpecId 101
-                              Decorate 524(si) SpecId 102
-                              Decorate 525(su) SpecId 103
-                              Decorate 526(sb) SpecId 104
-                              Decorate 527(si16) SpecId 105
-                              Decorate 528(su16) SpecId 106
+                              MemberDecorate 531(Block) 0 Offset 0
+                              MemberDecorate 531(Block) 1 Offset 6
+                              Decorate 531(Block) Block
+                              Decorate 533(block) DescriptorSet 0
+                              Decorate 533(block) Binding 1
+                              Decorate 535(iu16v) Flat
+                              Decorate 535(iu16v) Location 0
+                              Decorate 537(ii16) Flat
+                              Decorate 537(ii16) Location 1
+                              Decorate 538(si64) SpecId 100
+                              Decorate 539(su64) SpecId 101
+                              Decorate 540(si) SpecId 102
+                              Decorate 541(su) SpecId 103
+                              Decorate 542(sb) SpecId 104
+                              Decorate 543(si16) SpecId 105
+                              Decorate 544(su16) SpecId 106
                2:             TypeVoid
                3:             TypeFunction 2
               14:             TypeInt 16 0
@@ -194,62 +194,62 @@
              395:             TypePointer Function 54(i16vec3)
     397(ResType):             TypeStruct 391(f16vec3) 54(i16vec3)
              407:             TypePointer Function 261(float16_t)
-             431:             TypePointer Function 273(int64_t)
-             434:             TypeVector 17(int16_t) 4
-             440:             TypePointer Function 285(int64_t)
-             443:             TypeVector 14(int16_t) 4
-             449:             TypePointer Function 388(bvec3)
-      515(Block):             TypeStruct 54(i16vec3) 14(int16_t)
-             516:             TypePointer Uniform 515(Block)
-      517(block):    516(ptr) Variable Uniform
-             518:             TypePointer Input 49(i16vec3)
-      519(iu16v):    518(ptr) Variable Input
-             520:             TypePointer Input 17(int16_t)
-       521(ii16):    520(ptr) Variable Input
-       522(si64):273(int64_t) SpecConstant 4294967286 4294967295
-       523(su64):285(int64_t) SpecConstant 20 0
-         524(si):     28(int) SpecConstant 4294967291
-         525(su):     18(int) SpecConstant 4
-         526(sb):   125(bool) SpecConstantTrue
-       527(si16): 17(int16_t) SpecConstant 4294967291
-       528(su16): 14(int16_t) SpecConstant 4
-   529(i16_to_b):   125(bool) SpecConstantOp 171 527(si16) 202
-   530(u16_to_b):   125(bool) SpecConstantOp 171 528(su16) 202
-   531(b_to_i16): 17(int16_t) SpecConstantOp 169 526(sb) 53 194
-   532(b_to_u16): 14(int16_t) SpecConstantOp 169 526(sb) 203 202
-   533(i16_to_i):     28(int) SpecConstantOp 114 527(si16)
-             534:     18(int) SpecConstantOp 113 528(su16)
-   535(u16_to_i):     28(int) SpecConstantOp 128 534 128
-   536(i_to_i16): 17(int16_t) SpecConstantOp 114 524(si)
-             537: 17(int16_t) SpecConstantOp 114 524(si)
-   538(i_to_u16): 14(int16_t) SpecConstantOp 128 537 202
-             539:     28(int) SpecConstantOp 114 527(si16)
-   540(i16_to_u):     18(int) SpecConstantOp 128 539 128
-   541(u16_to_u):     18(int) SpecConstantOp 113 528(su16)
-             542: 14(int16_t) SpecConstantOp 113 525(su)
-   543(u_to_i16): 17(int16_t) SpecConstantOp 128 542 202
-   544(u_to_u16): 14(int16_t) SpecConstantOp 113 525(su)
- 545(i16_to_i64):273(int64_t) SpecConstantOp 114 527(si16)
-             546:285(int64_t) SpecConstantOp 113 528(su16)
-             547:285(int64_t) Constant 0 0
- 548(u16_to_i64):273(int64_t) SpecConstantOp 128 546 547
- 549(i64_to_i16): 17(int16_t) SpecConstantOp 114 522(si64)
-             550: 17(int16_t) SpecConstantOp 114 522(si64)
- 551(i64_to_u16): 14(int16_t) SpecConstantOp 128 550 202
-             552:273(int64_t) SpecConstantOp 114 527(si16)
- 553(i16_to_u64):285(int64_t) SpecConstantOp 128 552 547
- 554(u16_to_u64):285(int64_t) SpecConstantOp 113 528(su16)
-             555: 14(int16_t) SpecConstantOp 113 523(su64)
- 556(u64_to_i16): 17(int16_t) SpecConstantOp 128 555 202
- 557(u64_to_u16): 14(int16_t) SpecConstantOp 113 523(su64)
- 558(i16_to_u16): 14(int16_t) SpecConstantOp 128 527(si16) 202
- 559(u16_to_i16): 17(int16_t) SpecConstantOp 128 528(su16) 202
+             435:             TypePointer Function 273(int64_t)
+             438:             TypeVector 17(int16_t) 4
+             444:             TypePointer Function 285(int64_t)
+             447:             TypeVector 14(int16_t) 4
+             453:             TypePointer Function 388(bvec3)
+      531(Block):             TypeStruct 54(i16vec3) 14(int16_t)
+             532:             TypePointer Uniform 531(Block)
+      533(block):    532(ptr) Variable Uniform
+             534:             TypePointer Input 49(i16vec3)
+      535(iu16v):    534(ptr) Variable Input
+             536:             TypePointer Input 17(int16_t)
+       537(ii16):    536(ptr) Variable Input
+       538(si64):273(int64_t) SpecConstant 4294967286 4294967295
+       539(su64):285(int64_t) SpecConstant 20 0
+         540(si):     28(int) SpecConstant 4294967291
+         541(su):     18(int) SpecConstant 4
+         542(sb):   125(bool) SpecConstantTrue
+       543(si16): 17(int16_t) SpecConstant 4294967291
+       544(su16): 14(int16_t) SpecConstant 4
+   545(i16_to_b):   125(bool) SpecConstantOp 171 543(si16) 202
+   546(u16_to_b):   125(bool) SpecConstantOp 171 544(su16) 202
+   547(b_to_i16): 17(int16_t) SpecConstantOp 169 542(sb) 53 194
+   548(b_to_u16): 14(int16_t) SpecConstantOp 169 542(sb) 203 202
+   549(i16_to_i):     28(int) SpecConstantOp 114 543(si16)
+             550:     18(int) SpecConstantOp 113 544(su16)
+   551(u16_to_i):     28(int) SpecConstantOp 128 550 128
+   552(i_to_i16): 17(int16_t) SpecConstantOp 114 540(si)
+             553: 17(int16_t) SpecConstantOp 114 540(si)
+   554(i_to_u16): 14(int16_t) SpecConstantOp 128 553 202
+             555:     28(int) SpecConstantOp 114 543(si16)
+   556(i16_to_u):     18(int) SpecConstantOp 128 555 128
+   557(u16_to_u):     18(int) SpecConstantOp 113 544(su16)
+             558: 14(int16_t) SpecConstantOp 113 541(su)
+   559(u_to_i16): 17(int16_t) SpecConstantOp 128 558 202
+   560(u_to_u16): 14(int16_t) SpecConstantOp 113 541(su)
+ 561(i16_to_i64):273(int64_t) SpecConstantOp 114 543(si16)
+             562:285(int64_t) SpecConstantOp 113 544(su16)
+             563:285(int64_t) Constant 0 0
+ 564(u16_to_i64):273(int64_t) SpecConstantOp 128 562 563
+ 565(i64_to_i16): 17(int16_t) SpecConstantOp 114 538(si64)
+             566: 17(int16_t) SpecConstantOp 114 538(si64)
+ 567(i64_to_u16): 14(int16_t) SpecConstantOp 128 566 202
+             568:273(int64_t) SpecConstantOp 114 543(si16)
+ 569(i16_to_u64):285(int64_t) SpecConstantOp 128 568 563
+ 570(u16_to_u64):285(int64_t) SpecConstantOp 113 544(su16)
+             571: 14(int16_t) SpecConstantOp 113 539(su64)
+ 572(u64_to_i16): 17(int16_t) SpecConstantOp 128 571 202
+ 573(u64_to_u16): 14(int16_t) SpecConstantOp 113 539(su64)
+ 574(i16_to_u16): 14(int16_t) SpecConstantOp 128 543(si16) 202
+ 575(u16_to_i16): 17(int16_t) SpecConstantOp 128 544(su16) 202
          4(main):           2 Function None 3
                5:             Label
-             511:           2 FunctionCall 6(literal()
-             512:           2 FunctionCall 8(operators()
-             513:           2 FunctionCall 10(typeCast()
-             514:           2 FunctionCall 12(builtinFuncs()
+             527:           2 FunctionCall 6(literal()
+             528:           2 FunctionCall 8(operators()
+             529:           2 FunctionCall 10(typeCast()
+             530:           2 FunctionCall 12(builtinFuncs()
                               Return
                               FunctionEnd
      6(literal():           2 Function None 3
@@ -568,11 +568,11 @@
         321(u16):     15(ptr) Variable Function
        393(f16v):    392(ptr) Variable Function
         396(exp):    395(ptr) Variable Function
-      418(packi):    158(ptr) Variable Function
-      423(packu):    147(ptr) Variable Function
-    432(packi64):    431(ptr) Variable Function
-    441(packu64):    440(ptr) Variable Function
-         450(bv):    449(ptr) Variable Function
+      420(packi):    158(ptr) Variable Function
+      425(packu):    147(ptr) Variable Function
+    436(packi64):    435(ptr) Variable Function
+    445(packu64):    444(ptr) Variable Function
+         454(bv):    453(ptr) Variable Function
              306:187(i16vec2) Load 305(i16v)
              307:187(i16vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 306
                               Store 305(i16v) 307
@@ -686,114 +686,138 @@
                               Store 411 410
              412:187(i16vec2) Load 305(i16v)
              413:262(f16vec2) Bitcast 412
-             414:391(f16vec3) Load 393(f16v)
-             415:391(f16vec3) VectorShuffle 414 413 3 4 2
-                              Store 393(f16v) 415
-             416: 49(i16vec3) Load 319(u16v)
-             417:391(f16vec3) Bitcast 416
-                              Store 393(f16v) 417
-             419:187(i16vec2) Load 305(i16v)
-             420:     28(int) Bitcast 419
-                              Store 418(packi) 420
-             421:     28(int) Load 418(packi)
-             422:187(i16vec2) Bitcast 421
-                              Store 305(i16v) 422
-             424: 49(i16vec3) Load 319(u16v)
-             425:198(i16vec2) VectorShuffle 424 424 0 1
-             426:     18(int) Bitcast 425
-                              Store 423(packu) 426
-             427:     18(int) Load 423(packu)
-             428:198(i16vec2) Bitcast 427
-             429: 49(i16vec3) Load 319(u16v)
-             430: 49(i16vec3) VectorShuffle 429 428 3 4 2
-                              Store 319(u16v) 430
-             433: 17(int16_t) Load 311(i16)
-             435:434(i16vec4) CompositeConstruct 433 433 433 433
-             436:273(int64_t) Bitcast 435
-                              Store 432(packi64) 436
-             437:273(int64_t) Load 432(packi64)
-             438:434(i16vec4) Bitcast 437
-             439:187(i16vec2) VectorShuffle 438 438 0 1
-                              Store 305(i16v) 439
-             442: 14(int16_t) Load 321(u16)
-             444:443(i16vec4) CompositeConstruct 442 442 442 442
-             445:285(int64_t) Bitcast 444
-                              Store 441(packu64) 445
-             446:285(int64_t) Load 441(packu64)
-             447:443(i16vec4) Bitcast 446
-             448: 49(i16vec3) VectorShuffle 447 447 0 1 2
-                              Store 319(u16v) 448
-             451: 49(i16vec3) Load 319(u16v)
-             452: 14(int16_t) Load 321(u16)
-             453: 49(i16vec3) CompositeConstruct 452 452 452
-             454:  388(bvec3) ULessThan 451 453
-                              Store 450(bv) 454
-             455:187(i16vec2) Load 305(i16v)
-             456: 17(int16_t) Load 311(i16)
-             457:187(i16vec2) CompositeConstruct 456 456
-             458:  190(bvec2) SLessThan 455 457
-             459:  388(bvec3) Load 450(bv)
-             460:  388(bvec3) VectorShuffle 459 458 3 4 2
-                              Store 450(bv) 460
-             461: 49(i16vec3) Load 319(u16v)
-             462: 14(int16_t) Load 321(u16)
-             463: 49(i16vec3) CompositeConstruct 462 462 462
-             464:  388(bvec3) ULessThanEqual 461 463
-                              Store 450(bv) 464
-             465:187(i16vec2) Load 305(i16v)
-             466: 17(int16_t) Load 311(i16)
-             467:187(i16vec2) CompositeConstruct 466 466
-             468:  190(bvec2) SLessThanEqual 465 467
-             469:  388(bvec3) Load 450(bv)
-             470:  388(bvec3) VectorShuffle 469 468 3 4 2
-                              Store 450(bv) 470
-             471: 49(i16vec3) Load 319(u16v)
-             472: 14(int16_t) Load 321(u16)
-             473: 49(i16vec3) CompositeConstruct 472 472 472
-             474:  388(bvec3) UGreaterThan 471 473
-                              Store 450(bv) 474
-             475:187(i16vec2) Load 305(i16v)
-             476: 17(int16_t) Load 311(i16)
-             477:187(i16vec2) CompositeConstruct 476 476
-             478:  190(bvec2) SGreaterThan 475 477
-             479:  388(bvec3) Load 450(bv)
-             480:  388(bvec3) VectorShuffle 479 478 3 4 2
-                              Store 450(bv) 480
-             481: 49(i16vec3) Load 319(u16v)
-             482: 14(int16_t) Load 321(u16)
-             483: 49(i16vec3) CompositeConstruct 482 482 482
-             484:  388(bvec3) UGreaterThanEqual 481 483
-                              Store 450(bv) 484
-             485:187(i16vec2) Load 305(i16v)
-             486: 17(int16_t) Load 311(i16)
-             487:187(i16vec2) CompositeConstruct 486 486
-             488:  190(bvec2) SGreaterThanEqual 485 487
-             489:  388(bvec3) Load 450(bv)
-             490:  388(bvec3) VectorShuffle 489 488 3 4 2
-                              Store 450(bv) 490
+             414:    407(ptr) AccessChain 393(f16v) 128
+             415:261(float16_t) CompositeExtract 413 0
+                              Store 414 415
+             416:    407(ptr) AccessChain 393(f16v) 111
+             417:261(float16_t) CompositeExtract 413 1
+                              Store 416 417
+             418: 49(i16vec3) Load 319(u16v)
+             419:391(f16vec3) Bitcast 418
+                              Store 393(f16v) 419
+             421:187(i16vec2) Load 305(i16v)
+             422:     28(int) Bitcast 421
+                              Store 420(packi) 422
+             423:     28(int) Load 420(packi)
+             424:187(i16vec2) Bitcast 423
+                              Store 305(i16v) 424
+             426: 49(i16vec3) Load 319(u16v)
+             427:198(i16vec2) VectorShuffle 426 426 0 1
+             428:     18(int) Bitcast 427
+                              Store 425(packu) 428
+             429:     18(int) Load 425(packu)
+             430:198(i16vec2) Bitcast 429
+             431:     15(ptr) AccessChain 319(u16v) 128
+             432: 14(int16_t) CompositeExtract 430 0
+                              Store 431 432
+             433:     15(ptr) AccessChain 319(u16v) 111
+             434: 14(int16_t) CompositeExtract 430 1
+                              Store 433 434
+             437: 17(int16_t) Load 311(i16)
+             439:438(i16vec4) CompositeConstruct 437 437 437 437
+             440:273(int64_t) Bitcast 439
+                              Store 436(packi64) 440
+             441:273(int64_t) Load 436(packi64)
+             442:438(i16vec4) Bitcast 441
+             443:187(i16vec2) VectorShuffle 442 442 0 1
+                              Store 305(i16v) 443
+             446: 14(int16_t) Load 321(u16)
+             448:447(i16vec4) CompositeConstruct 446 446 446 446
+             449:285(int64_t) Bitcast 448
+                              Store 445(packu64) 449
+             450:285(int64_t) Load 445(packu64)
+             451:447(i16vec4) Bitcast 450
+             452: 49(i16vec3) VectorShuffle 451 451 0 1 2
+                              Store 319(u16v) 452
+             455: 49(i16vec3) Load 319(u16v)
+             456: 14(int16_t) Load 321(u16)
+             457: 49(i16vec3) CompositeConstruct 456 456 456
+             458:  388(bvec3) ULessThan 455 457
+                              Store 454(bv) 458
+             459:187(i16vec2) Load 305(i16v)
+             460: 17(int16_t) Load 311(i16)
+             461:187(i16vec2) CompositeConstruct 460 460
+             462:  190(bvec2) SLessThan 459 461
+             463:    126(ptr) AccessChain 454(bv) 128
+             464:   125(bool) CompositeExtract 462 0
+                              Store 463 464
+             465:    126(ptr) AccessChain 454(bv) 111
+             466:   125(bool) CompositeExtract 462 1
+                              Store 465 466
+             467: 49(i16vec3) Load 319(u16v)
+             468: 14(int16_t) Load 321(u16)
+             469: 49(i16vec3) CompositeConstruct 468 468 468
+             470:  388(bvec3) ULessThanEqual 467 469
+                              Store 454(bv) 470
+             471:187(i16vec2) Load 305(i16v)
+             472: 17(int16_t) Load 311(i16)
+             473:187(i16vec2) CompositeConstruct 472 472
+             474:  190(bvec2) SLessThanEqual 471 473
+             475:    126(ptr) AccessChain 454(bv) 128
+             476:   125(bool) CompositeExtract 474 0
+                              Store 475 476
+             477:    126(ptr) AccessChain 454(bv) 111
+             478:   125(bool) CompositeExtract 474 1
+                              Store 477 478
+             479: 49(i16vec3) Load 319(u16v)
+             480: 14(int16_t) Load 321(u16)
+             481: 49(i16vec3) CompositeConstruct 480 480 480
+             482:  388(bvec3) UGreaterThan 479 481
+                              Store 454(bv) 482
+             483:187(i16vec2) Load 305(i16v)
+             484: 17(int16_t) Load 311(i16)
+             485:187(i16vec2) CompositeConstruct 484 484
+             486:  190(bvec2) SGreaterThan 483 485
+             487:    126(ptr) AccessChain 454(bv) 128
+             488:   125(bool) CompositeExtract 486 0
+                              Store 487 488
+             489:    126(ptr) AccessChain 454(bv) 111
+             490:   125(bool) CompositeExtract 486 1
+                              Store 489 490
              491: 49(i16vec3) Load 319(u16v)
              492: 14(int16_t) Load 321(u16)
              493: 49(i16vec3) CompositeConstruct 492 492 492
-             494:  388(bvec3) IEqual 491 493
-                              Store 450(bv) 494
+             494:  388(bvec3) UGreaterThanEqual 491 493
+                              Store 454(bv) 494
              495:187(i16vec2) Load 305(i16v)
              496: 17(int16_t) Load 311(i16)
              497:187(i16vec2) CompositeConstruct 496 496
-             498:  190(bvec2) IEqual 495 497
-             499:  388(bvec3) Load 450(bv)
-             500:  388(bvec3) VectorShuffle 499 498 3 4 2
-                              Store 450(bv) 500
-             501: 49(i16vec3) Load 319(u16v)
-             502: 14(int16_t) Load 321(u16)
-             503: 49(i16vec3) CompositeConstruct 502 502 502
-             504:  388(bvec3) INotEqual 501 503
-                              Store 450(bv) 504
-             505:187(i16vec2) Load 305(i16v)
-             506: 17(int16_t) Load 311(i16)
-             507:187(i16vec2) CompositeConstruct 506 506
-             508:  190(bvec2) INotEqual 505 507
-             509:  388(bvec3) Load 450(bv)
-             510:  388(bvec3) VectorShuffle 509 508 3 4 2
-                              Store 450(bv) 510
+             498:  190(bvec2) SGreaterThanEqual 495 497
+             499:    126(ptr) AccessChain 454(bv) 128
+             500:   125(bool) CompositeExtract 498 0
+                              Store 499 500
+             501:    126(ptr) AccessChain 454(bv) 111
+             502:   125(bool) CompositeExtract 498 1
+                              Store 501 502
+             503: 49(i16vec3) Load 319(u16v)
+             504: 14(int16_t) Load 321(u16)
+             505: 49(i16vec3) CompositeConstruct 504 504 504
+             506:  388(bvec3) IEqual 503 505
+                              Store 454(bv) 506
+             507:187(i16vec2) Load 305(i16v)
+             508: 17(int16_t) Load 311(i16)
+             509:187(i16vec2) CompositeConstruct 508 508
+             510:  190(bvec2) IEqual 507 509
+             511:    126(ptr) AccessChain 454(bv) 128
+             512:   125(bool) CompositeExtract 510 0
+                              Store 511 512
+             513:    126(ptr) AccessChain 454(bv) 111
+             514:   125(bool) CompositeExtract 510 1
+                              Store 513 514
+             515: 49(i16vec3) Load 319(u16v)
+             516: 14(int16_t) Load 321(u16)
+             517: 49(i16vec3) CompositeConstruct 516 516 516
+             518:  388(bvec3) INotEqual 515 517
+                              Store 454(bv) 518
+             519:187(i16vec2) Load 305(i16v)
+             520: 17(int16_t) Load 311(i16)
+             521:187(i16vec2) CompositeConstruct 520 520
+             522:  190(bvec2) INotEqual 519 521
+             523:    126(ptr) AccessChain 454(bv) 128
+             524:   125(bool) CompositeExtract 522 0
+                              Store 523 524
+             525:    126(ptr) AccessChain 454(bv) 111
+             526:   125(bool) CompositeExtract 522 1
+                              Store 525 526
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.int16.frag.out b/Test/baseResults/spv.int16.frag.out
index b58e718..43cb09f 100644
--- a/Test/baseResults/spv.int16.frag.out
+++ b/Test/baseResults/spv.int16.frag.out
@@ -1,7 +1,7 @@
 spv.int16.frag
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 523
+// Id's are bound by 535
 
                               Capability Shader
                               Capability Float16
@@ -66,35 +66,35 @@
                               Name 442  "u64"
                               Name 445  "u16v4"
                               Name 457  "bv"
-                              Name 518  "Block"
-                              MemberName 518(Block) 0  "i16"
-                              MemberName 518(Block) 1  "i16v2"
-                              MemberName 518(Block) 2  "i16v3"
-                              MemberName 518(Block) 3  "i16v4"
-                              MemberName 518(Block) 4  "u16"
-                              MemberName 518(Block) 5  "u16v2"
-                              MemberName 518(Block) 6  "u16v3"
-                              MemberName 518(Block) 7  "u16v4"
-                              Name 520  "block"
-                              Name 521  "si16"
-                              Name 522  "su16"
+                              Name 530  "Block"
+                              MemberName 530(Block) 0  "i16"
+                              MemberName 530(Block) 1  "i16v2"
+                              MemberName 530(Block) 2  "i16v3"
+                              MemberName 530(Block) 3  "i16v4"
+                              MemberName 530(Block) 4  "u16"
+                              MemberName 530(Block) 5  "u16v2"
+                              MemberName 530(Block) 6  "u16v3"
+                              MemberName 530(Block) 7  "u16v4"
+                              Name 532  "block"
+                              Name 533  "si16"
+                              Name 534  "su16"
                               MemberDecorate 24(Uniforms) 0 Offset 0
                               Decorate 24(Uniforms) Block
                               Decorate 26 DescriptorSet 0
                               Decorate 26 Binding 0
-                              MemberDecorate 518(Block) 0 Offset 0
-                              MemberDecorate 518(Block) 1 Offset 4
-                              MemberDecorate 518(Block) 2 Offset 8
-                              MemberDecorate 518(Block) 3 Offset 16
-                              MemberDecorate 518(Block) 4 Offset 24
-                              MemberDecorate 518(Block) 5 Offset 28
-                              MemberDecorate 518(Block) 6 Offset 32
-                              MemberDecorate 518(Block) 7 Offset 40
-                              Decorate 518(Block) Block
-                              Decorate 520(block) DescriptorSet 0
-                              Decorate 520(block) Binding 1
-                              Decorate 521(si16) SpecId 100
-                              Decorate 522(su16) SpecId 101
+                              MemberDecorate 530(Block) 0 Offset 0
+                              MemberDecorate 530(Block) 1 Offset 4
+                              MemberDecorate 530(Block) 2 Offset 8
+                              MemberDecorate 530(Block) 3 Offset 16
+                              MemberDecorate 530(Block) 4 Offset 24
+                              MemberDecorate 530(Block) 5 Offset 28
+                              MemberDecorate 530(Block) 6 Offset 32
+                              MemberDecorate 530(Block) 7 Offset 40
+                              Decorate 530(Block) Block
+                              Decorate 532(block) DescriptorSet 0
+                              Decorate 532(block) Binding 1
+                              Decorate 533(si16) SpecId 100
+                              Decorate 534(su16) SpecId 101
                2:             TypeVoid
                3:             TypeFunction 2
               14:             TypeInt 16 1
@@ -186,11 +186,11 @@
              443:             TypeVector 36(int16_t) 4
              444:             TypePointer Function 443(i16vec4)
              456:             TypePointer Function 425(bvec3)
-      518(Block):             TypeStruct 14(int16_t) 52(i16vec2) 197(i16vec3) 432(i16vec4) 36(int16_t) 57(i16vec2) 193(i16vec3) 443(i16vec4)
-             519:             TypePointer Uniform 518(Block)
-      520(block):    519(ptr) Variable Uniform
-       521(si16): 14(int16_t) SpecConstant 4294967286
-       522(su16): 36(int16_t) SpecConstant 20
+      530(Block):             TypeStruct 14(int16_t) 52(i16vec2) 197(i16vec3) 432(i16vec4) 36(int16_t) 57(i16vec2) 193(i16vec3) 443(i16vec4)
+             531:             TypePointer Uniform 530(Block)
+      532(block):    531(ptr) Variable Uniform
+       533(si16): 14(int16_t) SpecConstant 4294967286
+       534(su16): 36(int16_t) SpecConstant 20
          4(main):           2 Function None 3
                5:             Label
                               Return
@@ -675,68 +675,86 @@
              463: 14(int16_t) Load 346(i16)
              464: 52(i16vec2) CompositeConstruct 463 463
              465:  174(bvec2) SLessThan 462 464
-             466:  425(bvec3) Load 457(bv)
-             467:  425(bvec3) VectorShuffle 466 465 3 4 2
-                              Store 457(bv) 467
-             468:193(i16vec3) Load 356(u16v)
-             469: 36(int16_t) Load 358(u16)
-             470:193(i16vec3) CompositeConstruct 469 469 469
-             471:  425(bvec3) ULessThanEqual 468 470
-                              Store 457(bv) 471
-             472: 52(i16vec2) Load 343(i16v)
-             473: 14(int16_t) Load 346(i16)
-             474: 52(i16vec2) CompositeConstruct 473 473
-             475:  174(bvec2) SLessThanEqual 472 474
-             476:  425(bvec3) Load 457(bv)
-             477:  425(bvec3) VectorShuffle 476 475 3 4 2
-                              Store 457(bv) 477
-             478:193(i16vec3) Load 356(u16v)
-             479: 36(int16_t) Load 358(u16)
-             480:193(i16vec3) CompositeConstruct 479 479 479
-             481:  425(bvec3) UGreaterThan 478 480
-                              Store 457(bv) 481
-             482: 52(i16vec2) Load 343(i16v)
-             483: 14(int16_t) Load 346(i16)
-             484: 52(i16vec2) CompositeConstruct 483 483
-             485:  174(bvec2) SGreaterThan 482 484
-             486:  425(bvec3) Load 457(bv)
-             487:  425(bvec3) VectorShuffle 486 485 3 4 2
-                              Store 457(bv) 487
-             488:193(i16vec3) Load 356(u16v)
-             489: 36(int16_t) Load 358(u16)
-             490:193(i16vec3) CompositeConstruct 489 489 489
-             491:  425(bvec3) UGreaterThanEqual 488 490
-                              Store 457(bv) 491
-             492: 52(i16vec2) Load 343(i16v)
-             493: 14(int16_t) Load 346(i16)
-             494: 52(i16vec2) CompositeConstruct 493 493
-             495:  174(bvec2) SGreaterThanEqual 492 494
-             496:  425(bvec3) Load 457(bv)
-             497:  425(bvec3) VectorShuffle 496 495 3 4 2
+             466:    280(ptr) AccessChain 457(bv) 282
+             467:   173(bool) CompositeExtract 465 0
+                              Store 466 467
+             468:    280(ptr) AccessChain 457(bv) 264
+             469:   173(bool) CompositeExtract 465 1
+                              Store 468 469
+             470:193(i16vec3) Load 356(u16v)
+             471: 36(int16_t) Load 358(u16)
+             472:193(i16vec3) CompositeConstruct 471 471 471
+             473:  425(bvec3) ULessThanEqual 470 472
+                              Store 457(bv) 473
+             474: 52(i16vec2) Load 343(i16v)
+             475: 14(int16_t) Load 346(i16)
+             476: 52(i16vec2) CompositeConstruct 475 475
+             477:  174(bvec2) SLessThanEqual 474 476
+             478:    280(ptr) AccessChain 457(bv) 282
+             479:   173(bool) CompositeExtract 477 0
+                              Store 478 479
+             480:    280(ptr) AccessChain 457(bv) 264
+             481:   173(bool) CompositeExtract 477 1
+                              Store 480 481
+             482:193(i16vec3) Load 356(u16v)
+             483: 36(int16_t) Load 358(u16)
+             484:193(i16vec3) CompositeConstruct 483 483 483
+             485:  425(bvec3) UGreaterThan 482 484
+                              Store 457(bv) 485
+             486: 52(i16vec2) Load 343(i16v)
+             487: 14(int16_t) Load 346(i16)
+             488: 52(i16vec2) CompositeConstruct 487 487
+             489:  174(bvec2) SGreaterThan 486 488
+             490:    280(ptr) AccessChain 457(bv) 282
+             491:   173(bool) CompositeExtract 489 0
+                              Store 490 491
+             492:    280(ptr) AccessChain 457(bv) 264
+             493:   173(bool) CompositeExtract 489 1
+                              Store 492 493
+             494:193(i16vec3) Load 356(u16v)
+             495: 36(int16_t) Load 358(u16)
+             496:193(i16vec3) CompositeConstruct 495 495 495
+             497:  425(bvec3) UGreaterThanEqual 494 496
                               Store 457(bv) 497
-             498:193(i16vec3) Load 356(u16v)
-             499: 36(int16_t) Load 358(u16)
-             500:193(i16vec3) CompositeConstruct 499 499 499
-             501:  425(bvec3) IEqual 498 500
-                              Store 457(bv) 501
-             502: 52(i16vec2) Load 343(i16v)
-             503: 14(int16_t) Load 346(i16)
-             504: 52(i16vec2) CompositeConstruct 503 503
-             505:  174(bvec2) IEqual 502 504
-             506:  425(bvec3) Load 457(bv)
-             507:  425(bvec3) VectorShuffle 506 505 3 4 2
-                              Store 457(bv) 507
-             508:193(i16vec3) Load 356(u16v)
-             509: 36(int16_t) Load 358(u16)
-             510:193(i16vec3) CompositeConstruct 509 509 509
-             511:  425(bvec3) INotEqual 508 510
-                              Store 457(bv) 511
-             512: 52(i16vec2) Load 343(i16v)
-             513: 14(int16_t) Load 346(i16)
-             514: 52(i16vec2) CompositeConstruct 513 513
-             515:  174(bvec2) INotEqual 512 514
-             516:  425(bvec3) Load 457(bv)
-             517:  425(bvec3) VectorShuffle 516 515 3 4 2
-                              Store 457(bv) 517
+             498: 52(i16vec2) Load 343(i16v)
+             499: 14(int16_t) Load 346(i16)
+             500: 52(i16vec2) CompositeConstruct 499 499
+             501:  174(bvec2) SGreaterThanEqual 498 500
+             502:    280(ptr) AccessChain 457(bv) 282
+             503:   173(bool) CompositeExtract 501 0
+                              Store 502 503
+             504:    280(ptr) AccessChain 457(bv) 264
+             505:   173(bool) CompositeExtract 501 1
+                              Store 504 505
+             506:193(i16vec3) Load 356(u16v)
+             507: 36(int16_t) Load 358(u16)
+             508:193(i16vec3) CompositeConstruct 507 507 507
+             509:  425(bvec3) IEqual 506 508
+                              Store 457(bv) 509
+             510: 52(i16vec2) Load 343(i16v)
+             511: 14(int16_t) Load 346(i16)
+             512: 52(i16vec2) CompositeConstruct 511 511
+             513:  174(bvec2) IEqual 510 512
+             514:    280(ptr) AccessChain 457(bv) 282
+             515:   173(bool) CompositeExtract 513 0
+                              Store 514 515
+             516:    280(ptr) AccessChain 457(bv) 264
+             517:   173(bool) CompositeExtract 513 1
+                              Store 516 517
+             518:193(i16vec3) Load 356(u16v)
+             519: 36(int16_t) Load 358(u16)
+             520:193(i16vec3) CompositeConstruct 519 519 519
+             521:  425(bvec3) INotEqual 518 520
+                              Store 457(bv) 521
+             522: 52(i16vec2) Load 343(i16v)
+             523: 14(int16_t) Load 346(i16)
+             524: 52(i16vec2) CompositeConstruct 523 523
+             525:  174(bvec2) INotEqual 522 524
+             526:    280(ptr) AccessChain 457(bv) 282
+             527:   173(bool) CompositeExtract 525 0
+                              Store 526 527
+             528:    280(ptr) AccessChain 457(bv) 264
+             529:   173(bool) CompositeExtract 525 1
+                              Store 528 529
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.int32.frag.out b/Test/baseResults/spv.int32.frag.out
index 0ef51e8..af232ec 100644
--- a/Test/baseResults/spv.int32.frag.out
+++ b/Test/baseResults/spv.int32.frag.out
@@ -1,7 +1,7 @@
 spv.int32.frag
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 493
+// Id's are bound by 505
 
                               Capability Shader
                               Capability Float16
@@ -65,41 +65,41 @@
                               Name 416  "u32v2"
                               Name 418  "u64"
                               Name 422  "bv"
-                              Name 485  "Block"
-                              MemberName 485(Block) 0  "i32"
-                              MemberName 485(Block) 1  "i32v2"
-                              MemberName 485(Block) 2  "i32v3"
-                              MemberName 485(Block) 3  "i32v4"
-                              MemberName 485(Block) 4  "u32"
-                              MemberName 485(Block) 5  "u32v2"
-                              MemberName 485(Block) 6  "u32v3"
-                              MemberName 485(Block) 7  "u32v4"
-                              Name 487  "block"
-                              Name 488  "si32"
-                              Name 489  "su32"
-                              Name 490  "si"
-                              Name 491  "su"
-                              Name 492  "sb"
+                              Name 497  "Block"
+                              MemberName 497(Block) 0  "i32"
+                              MemberName 497(Block) 1  "i32v2"
+                              MemberName 497(Block) 2  "i32v3"
+                              MemberName 497(Block) 3  "i32v4"
+                              MemberName 497(Block) 4  "u32"
+                              MemberName 497(Block) 5  "u32v2"
+                              MemberName 497(Block) 6  "u32v3"
+                              MemberName 497(Block) 7  "u32v4"
+                              Name 499  "block"
+                              Name 500  "si32"
+                              Name 501  "su32"
+                              Name 502  "si"
+                              Name 503  "su"
+                              Name 504  "sb"
                               MemberDecorate 27(Uniforms) 0 Offset 0
                               Decorate 27(Uniforms) Block
                               Decorate 29 DescriptorSet 0
                               Decorate 29 Binding 0
-                              MemberDecorate 485(Block) 0 Offset 0
-                              MemberDecorate 485(Block) 1 Offset 8
-                              MemberDecorate 485(Block) 2 Offset 16
-                              MemberDecorate 485(Block) 3 Offset 32
-                              MemberDecorate 485(Block) 4 Offset 48
-                              MemberDecorate 485(Block) 5 Offset 56
-                              MemberDecorate 485(Block) 6 Offset 64
-                              MemberDecorate 485(Block) 7 Offset 80
-                              Decorate 485(Block) Block
-                              Decorate 487(block) DescriptorSet 0
-                              Decorate 487(block) Binding 1
-                              Decorate 488(si32) SpecId 100
-                              Decorate 489(su32) SpecId 101
-                              Decorate 490(si) SpecId 102
-                              Decorate 491(su) SpecId 103
-                              Decorate 492(sb) SpecId 104
+                              MemberDecorate 497(Block) 0 Offset 0
+                              MemberDecorate 497(Block) 1 Offset 8
+                              MemberDecorate 497(Block) 2 Offset 16
+                              MemberDecorate 497(Block) 3 Offset 32
+                              MemberDecorate 497(Block) 4 Offset 48
+                              MemberDecorate 497(Block) 5 Offset 56
+                              MemberDecorate 497(Block) 6 Offset 64
+                              MemberDecorate 497(Block) 7 Offset 80
+                              Decorate 497(Block) Block
+                              Decorate 499(block) DescriptorSet 0
+                              Decorate 499(block) Binding 1
+                              Decorate 500(si32) SpecId 100
+                              Decorate 501(su32) SpecId 101
+                              Decorate 502(si) SpecId 102
+                              Decorate 503(su) SpecId 103
+                              Decorate 504(sb) SpecId 104
                2:             TypeVoid
                3:             TypeFunction 2
               14:             TypeInt 32 0
@@ -185,16 +185,16 @@
              406:             TypePointer Function 405(i8vec4)
              417:             TypePointer Function 63(int64_t)
              421:             TypePointer Function 394(bvec3)
-             483:             TypeVector 18(int) 4
-             484:             TypeVector 14(int) 4
-      485(Block):             TypeStruct 18(int) 52(ivec2) 188(ivec3) 483(ivec4) 14(int) 49(ivec2) 184(ivec3) 484(ivec4)
-             486:             TypePointer Uniform 485(Block)
-      487(block):    486(ptr) Variable Uniform
-       488(si32):     18(int) SpecConstant 4294967286
-       489(su32):     14(int) SpecConstant 20
-         490(si):     18(int) SpecConstant 4294967291
-         491(su):     14(int) SpecConstant 4
-         492(sb):   165(bool) SpecConstantTrue
+             495:             TypeVector 18(int) 4
+             496:             TypeVector 14(int) 4
+      497(Block):             TypeStruct 18(int) 52(ivec2) 188(ivec3) 495(ivec4) 14(int) 49(ivec2) 184(ivec3) 496(ivec4)
+             498:             TypePointer Uniform 497(Block)
+      499(block):    498(ptr) Variable Uniform
+       500(si32):     18(int) SpecConstant 4294967286
+       501(su32):     14(int) SpecConstant 20
+         502(si):     18(int) SpecConstant 4294967291
+         503(su):     14(int) SpecConstant 4
+         504(sb):   165(bool) SpecConstantTrue
          4(main):           2 Function None 3
                5:             Label
                               Store 16(u32Max) 17
@@ -645,68 +645,86 @@
              428:     18(int) Load 315(i32)
              429:   52(ivec2) CompositeConstruct 428 428
              430:  166(bvec2) SLessThan 427 429
-             431:  394(bvec3) Load 422(bv)
-             432:  394(bvec3) VectorShuffle 431 430 3 4 2
-                              Store 422(bv) 432
-             433:  184(ivec3) Load 325(u32v)
-             434:     14(int) Load 327(u32)
-             435:  184(ivec3) CompositeConstruct 434 434 434
-             436:  394(bvec3) ULessThanEqual 433 435
-                              Store 422(bv) 436
-             437:   52(ivec2) Load 312(i32v)
-             438:     18(int) Load 315(i32)
-             439:   52(ivec2) CompositeConstruct 438 438
-             440:  166(bvec2) SLessThanEqual 437 439
-             441:  394(bvec3) Load 422(bv)
-             442:  394(bvec3) VectorShuffle 441 440 3 4 2
-                              Store 422(bv) 442
-             443:  184(ivec3) Load 325(u32v)
-             444:     14(int) Load 327(u32)
-             445:  184(ivec3) CompositeConstruct 444 444 444
-             446:  394(bvec3) UGreaterThan 443 445
-                              Store 422(bv) 446
-             447:   52(ivec2) Load 312(i32v)
-             448:     18(int) Load 315(i32)
-             449:   52(ivec2) CompositeConstruct 448 448
-             450:  166(bvec2) SGreaterThan 447 449
-             451:  394(bvec3) Load 422(bv)
-             452:  394(bvec3) VectorShuffle 451 450 3 4 2
-                              Store 422(bv) 452
-             453:  184(ivec3) Load 325(u32v)
-             454:     14(int) Load 327(u32)
-             455:  184(ivec3) CompositeConstruct 454 454 454
-             456:  394(bvec3) UGreaterThanEqual 453 455
-                              Store 422(bv) 456
-             457:   52(ivec2) Load 312(i32v)
-             458:     18(int) Load 315(i32)
-             459:   52(ivec2) CompositeConstruct 458 458
-             460:  166(bvec2) SGreaterThanEqual 457 459
-             461:  394(bvec3) Load 422(bv)
-             462:  394(bvec3) VectorShuffle 461 460 3 4 2
+             431:    259(ptr) AccessChain 422(bv) 175
+             432:   165(bool) CompositeExtract 430 0
+                              Store 431 432
+             433:    259(ptr) AccessChain 422(bv) 176
+             434:   165(bool) CompositeExtract 430 1
+                              Store 433 434
+             435:  184(ivec3) Load 325(u32v)
+             436:     14(int) Load 327(u32)
+             437:  184(ivec3) CompositeConstruct 436 436 436
+             438:  394(bvec3) ULessThanEqual 435 437
+                              Store 422(bv) 438
+             439:   52(ivec2) Load 312(i32v)
+             440:     18(int) Load 315(i32)
+             441:   52(ivec2) CompositeConstruct 440 440
+             442:  166(bvec2) SLessThanEqual 439 441
+             443:    259(ptr) AccessChain 422(bv) 175
+             444:   165(bool) CompositeExtract 442 0
+                              Store 443 444
+             445:    259(ptr) AccessChain 422(bv) 176
+             446:   165(bool) CompositeExtract 442 1
+                              Store 445 446
+             447:  184(ivec3) Load 325(u32v)
+             448:     14(int) Load 327(u32)
+             449:  184(ivec3) CompositeConstruct 448 448 448
+             450:  394(bvec3) UGreaterThan 447 449
+                              Store 422(bv) 450
+             451:   52(ivec2) Load 312(i32v)
+             452:     18(int) Load 315(i32)
+             453:   52(ivec2) CompositeConstruct 452 452
+             454:  166(bvec2) SGreaterThan 451 453
+             455:    259(ptr) AccessChain 422(bv) 175
+             456:   165(bool) CompositeExtract 454 0
+                              Store 455 456
+             457:    259(ptr) AccessChain 422(bv) 176
+             458:   165(bool) CompositeExtract 454 1
+                              Store 457 458
+             459:  184(ivec3) Load 325(u32v)
+             460:     14(int) Load 327(u32)
+             461:  184(ivec3) CompositeConstruct 460 460 460
+             462:  394(bvec3) UGreaterThanEqual 459 461
                               Store 422(bv) 462
-             463:  184(ivec3) Load 325(u32v)
-             464:     14(int) Load 327(u32)
-             465:  184(ivec3) CompositeConstruct 464 464 464
-             466:  394(bvec3) IEqual 463 465
-                              Store 422(bv) 466
-             467:   52(ivec2) Load 312(i32v)
-             468:     18(int) Load 315(i32)
-             469:   52(ivec2) CompositeConstruct 468 468
-             470:  166(bvec2) IEqual 467 469
-             471:  394(bvec3) Load 422(bv)
-             472:  394(bvec3) VectorShuffle 471 470 3 4 2
-                              Store 422(bv) 472
-             473:  184(ivec3) Load 325(u32v)
-             474:     14(int) Load 327(u32)
-             475:  184(ivec3) CompositeConstruct 474 474 474
-             476:  394(bvec3) INotEqual 473 475
-                              Store 422(bv) 476
-             477:   52(ivec2) Load 312(i32v)
-             478:     18(int) Load 315(i32)
-             479:   52(ivec2) CompositeConstruct 478 478
-             480:  166(bvec2) INotEqual 477 479
-             481:  394(bvec3) Load 422(bv)
-             482:  394(bvec3) VectorShuffle 481 480 3 4 2
-                              Store 422(bv) 482
+             463:   52(ivec2) Load 312(i32v)
+             464:     18(int) Load 315(i32)
+             465:   52(ivec2) CompositeConstruct 464 464
+             466:  166(bvec2) SGreaterThanEqual 463 465
+             467:    259(ptr) AccessChain 422(bv) 175
+             468:   165(bool) CompositeExtract 466 0
+                              Store 467 468
+             469:    259(ptr) AccessChain 422(bv) 176
+             470:   165(bool) CompositeExtract 466 1
+                              Store 469 470
+             471:  184(ivec3) Load 325(u32v)
+             472:     14(int) Load 327(u32)
+             473:  184(ivec3) CompositeConstruct 472 472 472
+             474:  394(bvec3) IEqual 471 473
+                              Store 422(bv) 474
+             475:   52(ivec2) Load 312(i32v)
+             476:     18(int) Load 315(i32)
+             477:   52(ivec2) CompositeConstruct 476 476
+             478:  166(bvec2) IEqual 475 477
+             479:    259(ptr) AccessChain 422(bv) 175
+             480:   165(bool) CompositeExtract 478 0
+                              Store 479 480
+             481:    259(ptr) AccessChain 422(bv) 176
+             482:   165(bool) CompositeExtract 478 1
+                              Store 481 482
+             483:  184(ivec3) Load 325(u32v)
+             484:     14(int) Load 327(u32)
+             485:  184(ivec3) CompositeConstruct 484 484 484
+             486:  394(bvec3) INotEqual 483 485
+                              Store 422(bv) 486
+             487:   52(ivec2) Load 312(i32v)
+             488:     18(int) Load 315(i32)
+             489:   52(ivec2) CompositeConstruct 488 488
+             490:  166(bvec2) INotEqual 487 489
+             491:    259(ptr) AccessChain 422(bv) 175
+             492:   165(bool) CompositeExtract 490 0
+                              Store 491 492
+             493:    259(ptr) AccessChain 422(bv) 176
+             494:   165(bool) CompositeExtract 490 1
+                              Store 493 494
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.int64.frag.out b/Test/baseResults/spv.int64.frag.out
index b7a93a5..f2fd600 100644
--- a/Test/baseResults/spv.int64.frag.out
+++ b/Test/baseResults/spv.int64.frag.out
@@ -2,7 +2,7 @@
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 499
+// Id's are bound by 513
 
                               Capability Shader
                               Capability Float64
@@ -44,48 +44,48 @@
                               Name 299  "u64v"
                               Name 301  "u64"
                               Name 373  "dv"
-                              Name 392  "iv"
-                              Name 397  "uv"
-                              Name 401  "bv"
-                              Name 472  "Block"
-                              MemberName 472(Block) 0  "i64v"
-                              MemberName 472(Block) 1  "u64"
-                              Name 474  "block"
-                              Name 475  "si64"
-                              Name 476  "su64"
-                              Name 477  "si"
-                              Name 478  "su"
-                              Name 479  "sb"
-                              Name 480  "su64inc"
-                              Name 481  "i64_to_b"
-                              Name 482  "u64_to_b"
-                              Name 483  "b_to_i64"
-                              Name 484  "b_to_u64"
-                              Name 485  "i64_to_i"
-                              Name 486  "i_to_i64"
-                              Name 487  "u64_to_u"
-                              Name 488  "u_to_u64"
-                              Name 489  "u64_to_i64"
-                              Name 490  "i64_to_u64"
-                              Name 492  "u64_to_i"
-                              Name 494  "i_to_u64"
-                              Name 496  "i64_to_u"
-                              Name 498  "u_to_i64"
+                              Name 394  "iv"
+                              Name 399  "uv"
+                              Name 403  "bv"
+                              Name 486  "Block"
+                              MemberName 486(Block) 0  "i64v"
+                              MemberName 486(Block) 1  "u64"
+                              Name 488  "block"
+                              Name 489  "si64"
+                              Name 490  "su64"
+                              Name 491  "si"
+                              Name 492  "su"
+                              Name 493  "sb"
+                              Name 494  "su64inc"
+                              Name 495  "i64_to_b"
+                              Name 496  "u64_to_b"
+                              Name 497  "b_to_i64"
+                              Name 498  "b_to_u64"
+                              Name 499  "i64_to_i"
+                              Name 500  "i_to_i64"
+                              Name 501  "u64_to_u"
+                              Name 502  "u_to_u64"
+                              Name 503  "u64_to_i64"
+                              Name 504  "i64_to_u64"
+                              Name 506  "u64_to_i"
+                              Name 508  "i_to_u64"
+                              Name 510  "i64_to_u"
+                              Name 512  "u_to_i64"
                               MemberDecorate 28(Uniforms) 0 Offset 0
                               Decorate 28(Uniforms) Block
                               Decorate 30 DescriptorSet 0
                               Decorate 30 Binding 0
-                              MemberDecorate 472(Block) 0 Offset 0
-                              MemberDecorate 472(Block) 1 Offset 24
-                              Decorate 472(Block) Block
-                              Decorate 474(block) DescriptorSet 0
-                              Decorate 474(block) Binding 1
-                              Decorate 475(si64) SpecId 100
-                              Decorate 476(su64) SpecId 101
-                              Decorate 477(si) SpecId 102
-                              Decorate 478(su) SpecId 103
-                              Decorate 479(sb) SpecId 104
-                              Decorate 480(su64inc) SpecId 105
+                              MemberDecorate 486(Block) 0 Offset 0
+                              MemberDecorate 486(Block) 1 Offset 24
+                              Decorate 486(Block) Block
+                              Decorate 488(block) DescriptorSet 0
+                              Decorate 488(block) Binding 1
+                              Decorate 489(si64) SpecId 100
+                              Decorate 490(su64) SpecId 101
+                              Decorate 491(si) SpecId 102
+                              Decorate 492(su) SpecId 103
+                              Decorate 493(sb) SpecId 104
+                              Decorate 494(su64inc) SpecId 105
                2:             TypeVoid
                3:             TypeFunction 2
               14:             TypeInt 64 0
@@ -161,38 +161,38 @@
              371:             TypeVector 94(float64_t) 3
              372:             TypePointer Function 371(f64vec3)
              377:             TypePointer Function 94(float64_t)
-             388:     31(int) Constant 1
-             389:     31(int) Constant 2
-             390:   74(ivec2) ConstantComposite 388 389
-             395:   81(ivec2) ConstantComposite 217 22
-             400:             TypePointer Function 368(bvec3)
-      472(Block):             TypeStruct 136(i64vec3) 14(int64_t)
-             473:             TypePointer Uniform 472(Block)
-      474(block):    473(ptr) Variable Uniform
-       475(si64): 18(int64_t) SpecConstant 4294967286 4294967295
-       476(su64): 14(int64_t) SpecConstant 20 0
-         477(si):     31(int) SpecConstant 4294967291
-         478(su):     21(int) SpecConstant 4
-         479(sb):    55(bool) SpecConstantTrue
-    480(su64inc): 14(int64_t) SpecConstantOp 128 476(su64) 70
-   481(i64_to_b):    55(bool) SpecConstantOp 171 475(si64) 69
-   482(u64_to_b):    55(bool) SpecConstantOp 171 476(su64) 69
-   483(b_to_i64): 18(int64_t) SpecConstantOp 169 479(sb) 61 60
-   484(b_to_u64): 14(int64_t) SpecConstantOp 169 479(sb) 70 69
-   485(i64_to_i):     31(int) SpecConstantOp 114 475(si64)
-   486(i_to_i64): 18(int64_t) SpecConstantOp 114 477(si)
-   487(u64_to_u):     21(int) SpecConstantOp 113 476(su64)
-   488(u_to_u64): 14(int64_t) SpecConstantOp 113 478(su)
- 489(u64_to_i64): 18(int64_t) SpecConstantOp 128 476(su64) 69
- 490(i64_to_u64): 14(int64_t) SpecConstantOp 128 475(si64) 69
-             491:     21(int) SpecConstantOp 113 476(su64)
-   492(u64_to_i):     31(int) SpecConstantOp 128 491 227
-             493: 18(int64_t) SpecConstantOp 114 477(si)
-   494(i_to_u64): 14(int64_t) SpecConstantOp 128 493 69
-             495:     31(int) SpecConstantOp 114 475(si64)
-   496(i64_to_u):     21(int) SpecConstantOp 128 495 227
-             497: 14(int64_t) SpecConstantOp 113 478(su)
-   498(u_to_i64): 18(int64_t) SpecConstantOp 128 497 69
+             390:     31(int) Constant 1
+             391:     31(int) Constant 2
+             392:   74(ivec2) ConstantComposite 390 391
+             397:   81(ivec2) ConstantComposite 217 22
+             402:             TypePointer Function 368(bvec3)
+      486(Block):             TypeStruct 136(i64vec3) 14(int64_t)
+             487:             TypePointer Uniform 486(Block)
+      488(block):    487(ptr) Variable Uniform
+       489(si64): 18(int64_t) SpecConstant 4294967286 4294967295
+       490(su64): 14(int64_t) SpecConstant 20 0
+         491(si):     31(int) SpecConstant 4294967291
+         492(su):     21(int) SpecConstant 4
+         493(sb):    55(bool) SpecConstantTrue
+    494(su64inc): 14(int64_t) SpecConstantOp 128 490(su64) 70
+   495(i64_to_b):    55(bool) SpecConstantOp 171 489(si64) 69
+   496(u64_to_b):    55(bool) SpecConstantOp 171 490(su64) 69
+   497(b_to_i64): 18(int64_t) SpecConstantOp 169 493(sb) 61 60
+   498(b_to_u64): 14(int64_t) SpecConstantOp 169 493(sb) 70 69
+   499(i64_to_i):     31(int) SpecConstantOp 114 489(si64)
+   500(i_to_i64): 18(int64_t) SpecConstantOp 114 491(si)
+   501(u64_to_u):     21(int) SpecConstantOp 113 490(su64)
+   502(u_to_u64): 14(int64_t) SpecConstantOp 113 492(su)
+ 503(u64_to_i64): 18(int64_t) SpecConstantOp 128 490(su64) 69
+ 504(i64_to_u64): 14(int64_t) SpecConstantOp 128 489(si64) 69
+             505:     21(int) SpecConstantOp 113 490(su64)
+   506(u64_to_i):     31(int) SpecConstantOp 128 505 227
+             507: 18(int64_t) SpecConstantOp 114 491(si)
+   508(i_to_u64): 14(int64_t) SpecConstantOp 128 507 69
+             509:     31(int) SpecConstantOp 114 489(si64)
+   510(i64_to_u):     21(int) SpecConstantOp 128 509 227
+             511: 14(int64_t) SpecConstantOp 113 492(su)
+   512(u_to_i64): 18(int64_t) SpecConstantOp 128 511 69
          4(main):           2 Function None 3
                5:             Label
                               Store 16(u64Max) 17
@@ -487,9 +487,9 @@
        299(u64v):    133(ptr) Variable Function
         301(u64):     40(ptr) Variable Function
          373(dv):    372(ptr) Variable Function
-         392(iv):     75(ptr) Variable Function
-         397(uv):     82(ptr) Variable Function
-         401(bv):    400(ptr) Variable Function
+         394(iv):     75(ptr) Variable Function
+         399(uv):     82(ptr) Variable Function
+         403(bv):    402(ptr) Variable Function
              287: 52(i64vec2) Load 286(i64v)
              288: 52(i64vec2) ExtInst 1(GLSL.std.450) 5(SAbs) 287
                               Store 286(i64v) 288
@@ -593,107 +593,128 @@
                               Store 381 380
              382: 52(i64vec2) Load 286(i64v)
              383: 95(f64vec2) Bitcast 382
-             384:371(f64vec3) Load 373(dv)
-             385:371(f64vec3) VectorShuffle 384 383 3 4 2
-                              Store 373(dv) 385
-             386:132(i64vec3) Load 299(u64v)
-             387:371(f64vec3) Bitcast 386
-                              Store 373(dv) 387
-             391: 18(int64_t) Bitcast 390
-                              Store 289(i64) 391
-             393: 18(int64_t) Load 289(i64)
-             394:   74(ivec2) Bitcast 393
-                              Store 392(iv) 394
-             396: 14(int64_t) Bitcast 395
-                              Store 301(u64) 396
-             398: 14(int64_t) Load 301(u64)
-             399:   81(ivec2) Bitcast 398
-                              Store 397(uv) 399
-             402:132(i64vec3) Load 299(u64v)
-             403: 14(int64_t) Load 301(u64)
-             404:132(i64vec3) CompositeConstruct 403 403 403
-             405:  368(bvec3) ULessThan 402 404
-                              Store 401(bv) 405
-             406: 52(i64vec2) Load 286(i64v)
-             407: 18(int64_t) Load 289(i64)
-             408: 52(i64vec2) CompositeConstruct 407 407
-             409:   56(bvec2) SLessThan 406 408
-             410:  368(bvec3) Load 401(bv)
-             411:  368(bvec3) VectorShuffle 410 409 3 4 2
-                              Store 401(bv) 411
-             412:132(i64vec3) Load 299(u64v)
-             413: 14(int64_t) Load 301(u64)
-             414:132(i64vec3) CompositeConstruct 413 413 413
-             415:  368(bvec3) ULessThanEqual 412 414
-                              Store 401(bv) 415
-             416: 52(i64vec2) Load 286(i64v)
-             417: 18(int64_t) Load 289(i64)
-             418: 52(i64vec2) CompositeConstruct 417 417
-             419:   56(bvec2) SLessThanEqual 416 418
-             420:  368(bvec3) Load 401(bv)
-             421:  368(bvec3) VectorShuffle 420 419 3 4 2
-                              Store 401(bv) 421
-             422:132(i64vec3) Load 299(u64v)
-             423: 14(int64_t) Load 301(u64)
-             424:132(i64vec3) CompositeConstruct 423 423 423
-             425:  368(bvec3) UGreaterThan 422 424
-                              Store 401(bv) 425
-             426: 52(i64vec2) Load 286(i64v)
-             427: 18(int64_t) Load 289(i64)
-             428: 52(i64vec2) CompositeConstruct 427 427
-             429:   56(bvec2) SGreaterThan 426 428
-             430:  368(bvec3) Load 401(bv)
-             431:  368(bvec3) VectorShuffle 430 429 3 4 2
-                              Store 401(bv) 431
-             432:132(i64vec3) Load 299(u64v)
-             433: 14(int64_t) Load 301(u64)
-             434:132(i64vec3) CompositeConstruct 433 433 433
-             435:  368(bvec3) UGreaterThanEqual 432 434
-                              Store 401(bv) 435
-             436: 52(i64vec2) Load 286(i64v)
-             437: 18(int64_t) Load 289(i64)
-             438: 52(i64vec2) CompositeConstruct 437 437
-             439:   56(bvec2) SGreaterThanEqual 436 438
-             440:  368(bvec3) Load 401(bv)
-             441:  368(bvec3) VectorShuffle 440 439 3 4 2
-                              Store 401(bv) 441
-             442:132(i64vec3) Load 299(u64v)
-             443: 14(int64_t) Load 301(u64)
-             444:132(i64vec3) CompositeConstruct 443 443 443
-             445:  368(bvec3) IEqual 442 444
-                              Store 401(bv) 445
-             446: 52(i64vec2) Load 286(i64v)
-             447: 18(int64_t) Load 289(i64)
-             448: 52(i64vec2) CompositeConstruct 447 447
-             449:   56(bvec2) IEqual 446 448
-             450:  368(bvec3) Load 401(bv)
-             451:  368(bvec3) VectorShuffle 450 449 3 4 2
-                              Store 401(bv) 451
+             384:    377(ptr) AccessChain 373(dv) 227
+             385:94(float64_t) CompositeExtract 383 0
+                              Store 384 385
+             386:    377(ptr) AccessChain 373(dv) 203
+             387:94(float64_t) CompositeExtract 383 1
+                              Store 386 387
+             388:132(i64vec3) Load 299(u64v)
+             389:371(f64vec3) Bitcast 388
+                              Store 373(dv) 389
+             393: 18(int64_t) Bitcast 392
+                              Store 289(i64) 393
+             395: 18(int64_t) Load 289(i64)
+             396:   74(ivec2) Bitcast 395
+                              Store 394(iv) 396
+             398: 14(int64_t) Bitcast 397
+                              Store 301(u64) 398
+             400: 14(int64_t) Load 301(u64)
+             401:   81(ivec2) Bitcast 400
+                              Store 399(uv) 401
+             404:132(i64vec3) Load 299(u64v)
+             405: 14(int64_t) Load 301(u64)
+             406:132(i64vec3) CompositeConstruct 405 405 405
+             407:  368(bvec3) ULessThan 404 406
+                              Store 403(bv) 407
+             408: 52(i64vec2) Load 286(i64v)
+             409: 18(int64_t) Load 289(i64)
+             410: 52(i64vec2) CompositeConstruct 409 409
+             411:   56(bvec2) SLessThan 408 410
+             412:    225(ptr) AccessChain 403(bv) 227
+             413:    55(bool) CompositeExtract 411 0
+                              Store 412 413
+             414:    225(ptr) AccessChain 403(bv) 203
+             415:    55(bool) CompositeExtract 411 1
+                              Store 414 415
+             416:132(i64vec3) Load 299(u64v)
+             417: 14(int64_t) Load 301(u64)
+             418:132(i64vec3) CompositeConstruct 417 417 417
+             419:  368(bvec3) ULessThanEqual 416 418
+                              Store 403(bv) 419
+             420: 52(i64vec2) Load 286(i64v)
+             421: 18(int64_t) Load 289(i64)
+             422: 52(i64vec2) CompositeConstruct 421 421
+             423:   56(bvec2) SLessThanEqual 420 422
+             424:    225(ptr) AccessChain 403(bv) 227
+             425:    55(bool) CompositeExtract 423 0
+                              Store 424 425
+             426:    225(ptr) AccessChain 403(bv) 203
+             427:    55(bool) CompositeExtract 423 1
+                              Store 426 427
+             428:132(i64vec3) Load 299(u64v)
+             429: 14(int64_t) Load 301(u64)
+             430:132(i64vec3) CompositeConstruct 429 429 429
+             431:  368(bvec3) UGreaterThan 428 430
+                              Store 403(bv) 431
+             432: 52(i64vec2) Load 286(i64v)
+             433: 18(int64_t) Load 289(i64)
+             434: 52(i64vec2) CompositeConstruct 433 433
+             435:   56(bvec2) SGreaterThan 432 434
+             436:    225(ptr) AccessChain 403(bv) 227
+             437:    55(bool) CompositeExtract 435 0
+                              Store 436 437
+             438:    225(ptr) AccessChain 403(bv) 203
+             439:    55(bool) CompositeExtract 435 1
+                              Store 438 439
+             440:132(i64vec3) Load 299(u64v)
+             441: 14(int64_t) Load 301(u64)
+             442:132(i64vec3) CompositeConstruct 441 441 441
+             443:  368(bvec3) UGreaterThanEqual 440 442
+                              Store 403(bv) 443
+             444: 52(i64vec2) Load 286(i64v)
+             445: 18(int64_t) Load 289(i64)
+             446: 52(i64vec2) CompositeConstruct 445 445
+             447:   56(bvec2) SGreaterThanEqual 444 446
+             448:    225(ptr) AccessChain 403(bv) 227
+             449:    55(bool) CompositeExtract 447 0
+                              Store 448 449
+             450:    225(ptr) AccessChain 403(bv) 203
+             451:    55(bool) CompositeExtract 447 1
+                              Store 450 451
              452:132(i64vec3) Load 299(u64v)
              453: 14(int64_t) Load 301(u64)
              454:132(i64vec3) CompositeConstruct 453 453 453
-             455:  368(bvec3) INotEqual 452 454
-                              Store 401(bv) 455
+             455:  368(bvec3) IEqual 452 454
+                              Store 403(bv) 455
              456: 52(i64vec2) Load 286(i64v)
              457: 18(int64_t) Load 289(i64)
              458: 52(i64vec2) CompositeConstruct 457 457
-             459:   56(bvec2) INotEqual 456 458
-             460:  368(bvec3) Load 401(bv)
-             461:  368(bvec3) VectorShuffle 460 459 3 4 2
-                              Store 401(bv) 461
-             462: 14(int64_t) Load 301(u64)
-             463: 18(int64_t) ExtInst 1(GLSL.std.450) 73(FindILsb) 462
-                              Store 289(i64) 463
-             464: 14(int64_t) Load 301(u64)
-             465: 65(i64vec2) CompositeConstruct 464 464
-             466: 52(i64vec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 465
-                              Store 286(i64v) 466
-             467: 14(int64_t) Load 301(u64)
-             468: 18(int64_t) BitCount 467
-                              Store 289(i64) 468
-             469: 14(int64_t) Load 301(u64)
-             470: 65(i64vec2) CompositeConstruct 469 469
-             471: 52(i64vec2) BitCount 470
-                              Store 286(i64v) 471
+             459:   56(bvec2) IEqual 456 458
+             460:    225(ptr) AccessChain 403(bv) 227
+             461:    55(bool) CompositeExtract 459 0
+                              Store 460 461
+             462:    225(ptr) AccessChain 403(bv) 203
+             463:    55(bool) CompositeExtract 459 1
+                              Store 462 463
+             464:132(i64vec3) Load 299(u64v)
+             465: 14(int64_t) Load 301(u64)
+             466:132(i64vec3) CompositeConstruct 465 465 465
+             467:  368(bvec3) INotEqual 464 466
+                              Store 403(bv) 467
+             468: 52(i64vec2) Load 286(i64v)
+             469: 18(int64_t) Load 289(i64)
+             470: 52(i64vec2) CompositeConstruct 469 469
+             471:   56(bvec2) INotEqual 468 470
+             472:    225(ptr) AccessChain 403(bv) 227
+             473:    55(bool) CompositeExtract 471 0
+                              Store 472 473
+             474:    225(ptr) AccessChain 403(bv) 203
+             475:    55(bool) CompositeExtract 471 1
+                              Store 474 475
+             476: 14(int64_t) Load 301(u64)
+             477: 18(int64_t) ExtInst 1(GLSL.std.450) 73(FindILsb) 476
+                              Store 289(i64) 477
+             478: 14(int64_t) Load 301(u64)
+             479: 65(i64vec2) CompositeConstruct 478 478
+             480: 52(i64vec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 479
+                              Store 286(i64v) 480
+             481: 14(int64_t) Load 301(u64)
+             482: 18(int64_t) BitCount 481
+                              Store 289(i64) 482
+             483: 14(int64_t) Load 301(u64)
+             484: 65(i64vec2) CompositeConstruct 483 483
+             485: 52(i64vec2) BitCount 484
+                              Store 286(i64v) 485
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.int8.frag.out b/Test/baseResults/spv.int8.frag.out
index e88707d..a0da3e9 100644
--- a/Test/baseResults/spv.int8.frag.out
+++ b/Test/baseResults/spv.int8.frag.out
@@ -1,7 +1,7 @@
 spv.int8.frag
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 518
+// Id's are bound by 530
 
                               Capability Shader
                               Capability Float16
@@ -66,35 +66,35 @@
                               Name 437  "u32"
                               Name 440  "u8v4"
                               Name 452  "bv"
-                              Name 513  "Block"
-                              MemberName 513(Block) 0  "i8"
-                              MemberName 513(Block) 1  "i8v2"
-                              MemberName 513(Block) 2  "i8v3"
-                              MemberName 513(Block) 3  "i8v4"
-                              MemberName 513(Block) 4  "u8"
-                              MemberName 513(Block) 5  "u8v2"
-                              MemberName 513(Block) 6  "u8v3"
-                              MemberName 513(Block) 7  "u8v4"
-                              Name 515  "block"
-                              Name 516  "si8"
-                              Name 517  "su8"
+                              Name 525  "Block"
+                              MemberName 525(Block) 0  "i8"
+                              MemberName 525(Block) 1  "i8v2"
+                              MemberName 525(Block) 2  "i8v3"
+                              MemberName 525(Block) 3  "i8v4"
+                              MemberName 525(Block) 4  "u8"
+                              MemberName 525(Block) 5  "u8v2"
+                              MemberName 525(Block) 6  "u8v3"
+                              MemberName 525(Block) 7  "u8v4"
+                              Name 527  "block"
+                              Name 528  "si8"
+                              Name 529  "su8"
                               MemberDecorate 24(Uniforms) 0 Offset 0
                               Decorate 24(Uniforms) Block
                               Decorate 26 DescriptorSet 0
                               Decorate 26 Binding 0
-                              MemberDecorate 513(Block) 0 Offset 0
-                              MemberDecorate 513(Block) 1 Offset 2
-                              MemberDecorate 513(Block) 2 Offset 4
-                              MemberDecorate 513(Block) 3 Offset 8
-                              MemberDecorate 513(Block) 4 Offset 12
-                              MemberDecorate 513(Block) 5 Offset 14
-                              MemberDecorate 513(Block) 6 Offset 16
-                              MemberDecorate 513(Block) 7 Offset 20
-                              Decorate 513(Block) Block
-                              Decorate 515(block) DescriptorSet 0
-                              Decorate 515(block) Binding 1
-                              Decorate 516(si8) SpecId 100
-                              Decorate 517(su8) SpecId 101
+                              MemberDecorate 525(Block) 0 Offset 0
+                              MemberDecorate 525(Block) 1 Offset 2
+                              MemberDecorate 525(Block) 2 Offset 4
+                              MemberDecorate 525(Block) 3 Offset 8
+                              MemberDecorate 525(Block) 4 Offset 12
+                              MemberDecorate 525(Block) 5 Offset 14
+                              MemberDecorate 525(Block) 6 Offset 16
+                              MemberDecorate 525(Block) 7 Offset 20
+                              Decorate 525(Block) Block
+                              Decorate 527(block) DescriptorSet 0
+                              Decorate 527(block) Binding 1
+                              Decorate 528(si8) SpecId 100
+                              Decorate 529(su8) SpecId 101
                2:             TypeVoid
                3:             TypeFunction 2
               14:             TypeInt 8 1
@@ -184,11 +184,11 @@
              438:             TypeVector 36(int8_t) 4
              439:             TypePointer Function 438(i8vec4)
              451:             TypePointer Function 420(bvec3)
-      513(Block):             TypeStruct 14(int8_t) 52(i8vec2) 194(i8vec3) 427(i8vec4) 36(int8_t) 49(i8vec2) 190(i8vec3) 438(i8vec4)
-             514:             TypePointer Uniform 513(Block)
-      515(block):    514(ptr) Variable Uniform
-        516(si8):  14(int8_t) SpecConstant 4294967286
-        517(su8):  36(int8_t) SpecConstant 20
+      525(Block):             TypeStruct 14(int8_t) 52(i8vec2) 194(i8vec3) 427(i8vec4) 36(int8_t) 49(i8vec2) 190(i8vec3) 438(i8vec4)
+             526:             TypePointer Uniform 525(Block)
+      527(block):    526(ptr) Variable Uniform
+        528(si8):  14(int8_t) SpecConstant 4294967286
+        529(su8):  36(int8_t) SpecConstant 20
          4(main):           2 Function None 3
                5:             Label
                               Return
@@ -670,68 +670,86 @@
              458:  14(int8_t) Load 341(i8)
              459:  52(i8vec2) CompositeConstruct 458 458
              460:  172(bvec2) SLessThan 457 459
-             461:  420(bvec3) Load 452(bv)
-             462:  420(bvec3) VectorShuffle 461 460 3 4 2
-                              Store 452(bv) 462
-             463: 190(i8vec3) Load 351(u8v)
-             464:  36(int8_t) Load 353(u8)
-             465: 190(i8vec3) CompositeConstruct 464 464 464
-             466:  420(bvec3) ULessThanEqual 463 465
-                              Store 452(bv) 466
-             467:  52(i8vec2) Load 338(i8v)
-             468:  14(int8_t) Load 341(i8)
-             469:  52(i8vec2) CompositeConstruct 468 468
-             470:  172(bvec2) SLessThanEqual 467 469
-             471:  420(bvec3) Load 452(bv)
-             472:  420(bvec3) VectorShuffle 471 470 3 4 2
-                              Store 452(bv) 472
-             473: 190(i8vec3) Load 351(u8v)
-             474:  36(int8_t) Load 353(u8)
-             475: 190(i8vec3) CompositeConstruct 474 474 474
-             476:  420(bvec3) UGreaterThan 473 475
-                              Store 452(bv) 476
-             477:  52(i8vec2) Load 338(i8v)
-             478:  14(int8_t) Load 341(i8)
-             479:  52(i8vec2) CompositeConstruct 478 478
-             480:  172(bvec2) SGreaterThan 477 479
-             481:  420(bvec3) Load 452(bv)
-             482:  420(bvec3) VectorShuffle 481 480 3 4 2
-                              Store 452(bv) 482
-             483: 190(i8vec3) Load 351(u8v)
-             484:  36(int8_t) Load 353(u8)
-             485: 190(i8vec3) CompositeConstruct 484 484 484
-             486:  420(bvec3) UGreaterThanEqual 483 485
-                              Store 452(bv) 486
-             487:  52(i8vec2) Load 338(i8v)
-             488:  14(int8_t) Load 341(i8)
-             489:  52(i8vec2) CompositeConstruct 488 488
-             490:  172(bvec2) SGreaterThanEqual 487 489
-             491:  420(bvec3) Load 452(bv)
-             492:  420(bvec3) VectorShuffle 491 490 3 4 2
+             461:    275(ptr) AccessChain 452(bv) 277
+             462:   171(bool) CompositeExtract 460 0
+                              Store 461 462
+             463:    275(ptr) AccessChain 452(bv) 261
+             464:   171(bool) CompositeExtract 460 1
+                              Store 463 464
+             465: 190(i8vec3) Load 351(u8v)
+             466:  36(int8_t) Load 353(u8)
+             467: 190(i8vec3) CompositeConstruct 466 466 466
+             468:  420(bvec3) ULessThanEqual 465 467
+                              Store 452(bv) 468
+             469:  52(i8vec2) Load 338(i8v)
+             470:  14(int8_t) Load 341(i8)
+             471:  52(i8vec2) CompositeConstruct 470 470
+             472:  172(bvec2) SLessThanEqual 469 471
+             473:    275(ptr) AccessChain 452(bv) 277
+             474:   171(bool) CompositeExtract 472 0
+                              Store 473 474
+             475:    275(ptr) AccessChain 452(bv) 261
+             476:   171(bool) CompositeExtract 472 1
+                              Store 475 476
+             477: 190(i8vec3) Load 351(u8v)
+             478:  36(int8_t) Load 353(u8)
+             479: 190(i8vec3) CompositeConstruct 478 478 478
+             480:  420(bvec3) UGreaterThan 477 479
+                              Store 452(bv) 480
+             481:  52(i8vec2) Load 338(i8v)
+             482:  14(int8_t) Load 341(i8)
+             483:  52(i8vec2) CompositeConstruct 482 482
+             484:  172(bvec2) SGreaterThan 481 483
+             485:    275(ptr) AccessChain 452(bv) 277
+             486:   171(bool) CompositeExtract 484 0
+                              Store 485 486
+             487:    275(ptr) AccessChain 452(bv) 261
+             488:   171(bool) CompositeExtract 484 1
+                              Store 487 488
+             489: 190(i8vec3) Load 351(u8v)
+             490:  36(int8_t) Load 353(u8)
+             491: 190(i8vec3) CompositeConstruct 490 490 490
+             492:  420(bvec3) UGreaterThanEqual 489 491
                               Store 452(bv) 492
-             493: 190(i8vec3) Load 351(u8v)
-             494:  36(int8_t) Load 353(u8)
-             495: 190(i8vec3) CompositeConstruct 494 494 494
-             496:  420(bvec3) IEqual 493 495
-                              Store 452(bv) 496
-             497:  52(i8vec2) Load 338(i8v)
-             498:  14(int8_t) Load 341(i8)
-             499:  52(i8vec2) CompositeConstruct 498 498
-             500:  172(bvec2) IEqual 497 499
-             501:  420(bvec3) Load 452(bv)
-             502:  420(bvec3) VectorShuffle 501 500 3 4 2
-                              Store 452(bv) 502
-             503: 190(i8vec3) Load 351(u8v)
-             504:  36(int8_t) Load 353(u8)
-             505: 190(i8vec3) CompositeConstruct 504 504 504
-             506:  420(bvec3) INotEqual 503 505
-                              Store 452(bv) 506
-             507:  52(i8vec2) Load 338(i8v)
-             508:  14(int8_t) Load 341(i8)
-             509:  52(i8vec2) CompositeConstruct 508 508
-             510:  172(bvec2) INotEqual 507 509
-             511:  420(bvec3) Load 452(bv)
-             512:  420(bvec3) VectorShuffle 511 510 3 4 2
-                              Store 452(bv) 512
+             493:  52(i8vec2) Load 338(i8v)
+             494:  14(int8_t) Load 341(i8)
+             495:  52(i8vec2) CompositeConstruct 494 494
+             496:  172(bvec2) SGreaterThanEqual 493 495
+             497:    275(ptr) AccessChain 452(bv) 277
+             498:   171(bool) CompositeExtract 496 0
+                              Store 497 498
+             499:    275(ptr) AccessChain 452(bv) 261
+             500:   171(bool) CompositeExtract 496 1
+                              Store 499 500
+             501: 190(i8vec3) Load 351(u8v)
+             502:  36(int8_t) Load 353(u8)
+             503: 190(i8vec3) CompositeConstruct 502 502 502
+             504:  420(bvec3) IEqual 501 503
+                              Store 452(bv) 504
+             505:  52(i8vec2) Load 338(i8v)
+             506:  14(int8_t) Load 341(i8)
+             507:  52(i8vec2) CompositeConstruct 506 506
+             508:  172(bvec2) IEqual 505 507
+             509:    275(ptr) AccessChain 452(bv) 277
+             510:   171(bool) CompositeExtract 508 0
+                              Store 509 510
+             511:    275(ptr) AccessChain 452(bv) 261
+             512:   171(bool) CompositeExtract 508 1
+                              Store 511 512
+             513: 190(i8vec3) Load 351(u8v)
+             514:  36(int8_t) Load 353(u8)
+             515: 190(i8vec3) CompositeConstruct 514 514 514
+             516:  420(bvec3) INotEqual 513 515
+                              Store 452(bv) 516
+             517:  52(i8vec2) Load 338(i8v)
+             518:  14(int8_t) Load 341(i8)
+             519:  52(i8vec2) CompositeConstruct 518 518
+             520:  172(bvec2) INotEqual 517 519
+             521:    275(ptr) AccessChain 452(bv) 277
+             522:   171(bool) CompositeExtract 520 0
+                              Store 521 522
+             523:    275(ptr) AccessChain 452(bv) 261
+             524:   171(bool) CompositeExtract 520 1
+                              Store 523 524
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.intOps.vert.out b/Test/baseResults/spv.intOps.vert.out
index d57c306..b57eac2 100644
--- a/Test/baseResults/spv.intOps.vert.out
+++ b/Test/baseResults/spv.intOps.vert.out
@@ -1,12 +1,12 @@
 spv.intOps.vert
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 268
+// Id's are bound by 302
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Vertex 4  "main" 9 15 21 26 47 67 83 100 121 142 146 156 173 182 247
+                              EntryPoint Vertex 4  "main" 9 15 21 26 53 72 88 105 137 156 160 172 189 202 281
                               Source ESSL 310
                               Name 4  "main"
                               Name 9  "iout"
@@ -15,44 +15,44 @@
                               Name 26  "u2"
                               Name 30  "u2out"
                               Name 31  "ResType"
-                              Name 47  "u1"
-                              Name 51  "u1out"
-                              Name 52  "ResType"
-                              Name 67  "u4"
-                              Name 71  "u4outHi"
-                              Name 72  "u4outLow"
-                              Name 73  "ResType"
-                              Name 83  "i4"
-                              Name 87  "i4outHi"
-                              Name 88  "i4outLow"
-                              Name 89  "ResType"
-                              Name 100  "v3"
-                              Name 104  "i3out"
-                              Name 105  "ResType"
-                              Name 121  "v1"
-                              Name 124  "i1out"
-                              Name 125  "ResType"
-                              Name 142  "v2"
-                              Name 146  "i2"
-                              Name 156  "i1"
-                              Name 173  "u3"
-                              Name 182  "i3"
-                              Name 247  "v4"
+                              Name 53  "u1"
+                              Name 57  "u1out"
+                              Name 58  "ResType"
+                              Name 72  "u4"
+                              Name 76  "u4outHi"
+                              Name 77  "u4outLow"
+                              Name 78  "ResType"
+                              Name 88  "i4"
+                              Name 92  "i4outHi"
+                              Name 93  "i4outLow"
+                              Name 94  "ResType"
+                              Name 105  "v3"
+                              Name 109  "i3out"
+                              Name 110  "ResType"
+                              Name 137  "v1"
+                              Name 140  "i1out"
+                              Name 141  "ResType"
+                              Name 156  "v2"
+                              Name 160  "i2"
+                              Name 172  "i1"
+                              Name 189  "u3"
+                              Name 202  "i3"
+                              Name 281  "v4"
                               Decorate 9(iout) Location 1
                               Decorate 15(uout) Location 0
                               Decorate 21(fout) Location 2
                               Decorate 26(u2) Location 1
-                              Decorate 47(u1) Location 0
-                              Decorate 67(u4) Location 3
-                              Decorate 83(i4) Location 11
-                              Decorate 100(v3) Location 6
-                              Decorate 121(v1) Location 4
-                              Decorate 142(v2) Location 5
-                              Decorate 146(i2) Location 9
-                              Decorate 156(i1) Location 8
-                              Decorate 173(u3) Location 2
-                              Decorate 182(i3) Location 10
-                              Decorate 247(v4) Location 7
+                              Decorate 53(u1) Location 0
+                              Decorate 72(u4) Location 3
+                              Decorate 88(i4) Location 11
+                              Decorate 105(v3) Location 6
+                              Decorate 137(v1) Location 4
+                              Decorate 156(v2) Location 5
+                              Decorate 160(i2) Location 9
+                              Decorate 172(i1) Location 8
+                              Decorate 189(u3) Location 2
+                              Decorate 202(i3) Location 10
+                              Decorate 281(v4) Location 7
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
@@ -78,58 +78,60 @@
           26(u2):     25(ptr) Variable Input
               29:             TypePointer Function 24(ivec2)
      31(ResType):             TypeStruct 24(ivec2) 24(ivec2)
-              46:             TypePointer Input 12(int)
-          47(u1):     46(ptr) Variable Input
-              50:             TypePointer Function 12(int)
-     52(ResType):             TypeStruct 12(int) 12(int)
-              56:             TypePointer Output 12(int)
-              66:             TypePointer Input 13(ivec4)
-          67(u4):     66(ptr) Variable Input
-              70:             TypePointer Function 13(ivec4)
-     73(ResType):             TypeStruct 13(ivec4) 13(ivec4)
-              82:             TypePointer Input 7(ivec4)
-          83(i4):     82(ptr) Variable Input
-              86:             TypePointer Function 7(ivec4)
-     89(ResType):             TypeStruct 7(ivec4) 7(ivec4)
-              98:             TypeVector 18(float) 3
-              99:             TypePointer Input 98(fvec3)
-         100(v3):     99(ptr) Variable Input
-             102:             TypeVector 6(int) 3
-             103:             TypePointer Function 102(ivec3)
-    105(ResType):             TypeStruct 98(fvec3) 102(ivec3)
-             120:             TypePointer Input 18(float)
-         121(v1):    120(ptr) Variable Input
-             123:             TypePointer Function 6(int)
-    125(ResType):             TypeStruct 18(float) 6(int)
-             129:             TypePointer Output 18(float)
-             135:             TypePointer Output 6(int)
-             140:             TypeVector 18(float) 2
-             141:             TypePointer Input 140(fvec2)
-         142(v2):    141(ptr) Variable Input
-             144:             TypeVector 6(int) 2
-             145:             TypePointer Input 144(ivec2)
-         146(i2):    145(ptr) Variable Input
-             155:             TypePointer Input 6(int)
-         156(i1):    155(ptr) Variable Input
-             164:      6(int) Constant 4
-             165:      6(int) Constant 5
-             171:             TypeVector 12(int) 3
-             172:             TypePointer Input 171(ivec3)
-         173(u3):    172(ptr) Variable Input
-             181:             TypePointer Input 102(ivec3)
-         182(i3):    181(ptr) Variable Input
-             246:             TypePointer Input 19(fvec4)
-         247(v4):    246(ptr) Variable Input
+              38:             TypePointer Output 12(int)
+              41:     12(int) Constant 1
+              52:             TypePointer Input 12(int)
+          53(u1):     52(ptr) Variable Input
+              56:             TypePointer Function 12(int)
+     58(ResType):             TypeStruct 12(int) 12(int)
+              71:             TypePointer Input 13(ivec4)
+          72(u4):     71(ptr) Variable Input
+              75:             TypePointer Function 13(ivec4)
+     78(ResType):             TypeStruct 13(ivec4) 13(ivec4)
+              87:             TypePointer Input 7(ivec4)
+          88(i4):     87(ptr) Variable Input
+              91:             TypePointer Function 7(ivec4)
+     94(ResType):             TypeStruct 7(ivec4) 7(ivec4)
+             103:             TypeVector 18(float) 3
+             104:             TypePointer Input 103(fvec3)
+         105(v3):    104(ptr) Variable Input
+             107:             TypeVector 6(int) 3
+             108:             TypePointer Function 107(ivec3)
+    110(ResType):             TypeStruct 103(fvec3) 107(ivec3)
+             117:             TypePointer Output 18(float)
+             122:     12(int) Constant 2
+             129:             TypePointer Output 6(int)
+             136:             TypePointer Input 18(float)
+         137(v1):    136(ptr) Variable Input
+             139:             TypePointer Function 6(int)
+    141(ResType):             TypeStruct 18(float) 6(int)
+             154:             TypeVector 18(float) 2
+             155:             TypePointer Input 154(fvec2)
+         156(v2):    155(ptr) Variable Input
+             158:             TypeVector 6(int) 2
+             159:             TypePointer Input 158(ivec2)
+         160(i2):    159(ptr) Variable Input
+             171:             TypePointer Input 6(int)
+         172(i1):    171(ptr) Variable Input
+             180:      6(int) Constant 4
+             181:      6(int) Constant 5
+             187:             TypeVector 12(int) 3
+             188:             TypePointer Input 187(ivec3)
+         189(u3):    188(ptr) Variable Input
+             201:             TypePointer Input 107(ivec3)
+         202(i3):    201(ptr) Variable Input
+             280:             TypePointer Input 19(fvec4)
+         281(v4):    280(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
        30(u2out):     29(ptr) Variable Function
-       51(u1out):     50(ptr) Variable Function
-     71(u4outHi):     70(ptr) Variable Function
-    72(u4outLow):     70(ptr) Variable Function
-     87(i4outHi):     86(ptr) Variable Function
-    88(i4outLow):     86(ptr) Variable Function
-      104(i3out):    103(ptr) Variable Function
-      124(i1out):    123(ptr) Variable Function
+       57(u1out):     56(ptr) Variable Function
+     76(u4outHi):     75(ptr) Variable Function
+    77(u4outLow):     75(ptr) Variable Function
+     92(i4outHi):     91(ptr) Variable Function
+    93(i4outLow):     91(ptr) Variable Function
+      109(i3out):    108(ptr) Variable Function
+      140(i1out):    139(ptr) Variable Function
                               Store 9(iout) 11
                               Store 15(uout) 17
                               Store 21(fout) 23
@@ -142,221 +144,269 @@
               35:   13(ivec4) Load 15(uout)
               36:   24(ivec2) VectorShuffle 35 35 0 1
               37:   24(ivec2) IAdd 36 34
-              38:   13(ivec4) Load 15(uout)
-              39:   13(ivec4) VectorShuffle 38 37 4 5 2 3
-                              Store 15(uout) 39
-              40:   24(ivec2) Load 30(u2out)
-              41:   13(ivec4) Load 15(uout)
-              42:   24(ivec2) VectorShuffle 41 41 0 1
-              43:   24(ivec2) IAdd 42 40
-              44:   13(ivec4) Load 15(uout)
-              45:   13(ivec4) VectorShuffle 44 43 4 5 2 3
-                              Store 15(uout) 45
-              48:     12(int) Load 47(u1)
-              49:     12(int) Load 47(u1)
-              53: 52(ResType) ISubBorrow 48 49
-              54:     12(int) CompositeExtract 53 1
-                              Store 51(u1out) 54
-              55:     12(int) CompositeExtract 53 0
-              57:     56(ptr) AccessChain 15(uout) 16
-              58:     12(int) Load 57
-              59:     12(int) IAdd 58 55
-              60:     56(ptr) AccessChain 15(uout) 16
-                              Store 60 59
-              61:     12(int) Load 51(u1out)
-              62:     56(ptr) AccessChain 15(uout) 16
+              39:     38(ptr) AccessChain 15(uout) 16
+              40:     12(int) CompositeExtract 37 0
+                              Store 39 40
+              42:     38(ptr) AccessChain 15(uout) 41
+              43:     12(int) CompositeExtract 37 1
+                              Store 42 43
+              44:   24(ivec2) Load 30(u2out)
+              45:   13(ivec4) Load 15(uout)
+              46:   24(ivec2) VectorShuffle 45 45 0 1
+              47:   24(ivec2) IAdd 46 44
+              48:     38(ptr) AccessChain 15(uout) 16
+              49:     12(int) CompositeExtract 47 0
+                              Store 48 49
+              50:     38(ptr) AccessChain 15(uout) 41
+              51:     12(int) CompositeExtract 47 1
+                              Store 50 51
+              54:     12(int) Load 53(u1)
+              55:     12(int) Load 53(u1)
+              59: 58(ResType) ISubBorrow 54 55
+              60:     12(int) CompositeExtract 59 1
+                              Store 57(u1out) 60
+              61:     12(int) CompositeExtract 59 0
+              62:     38(ptr) AccessChain 15(uout) 16
               63:     12(int) Load 62
               64:     12(int) IAdd 63 61
-              65:     56(ptr) AccessChain 15(uout) 16
+              65:     38(ptr) AccessChain 15(uout) 16
                               Store 65 64
-              68:   13(ivec4) Load 67(u4)
-              69:   13(ivec4) Load 67(u4)
-              74: 73(ResType) UMulExtended 68 69
-              75:   13(ivec4) CompositeExtract 74 0
-                              Store 72(u4outLow) 75
-              76:   13(ivec4) CompositeExtract 74 1
-                              Store 71(u4outHi) 76
-              77:   13(ivec4) Load 71(u4outHi)
-              78:   13(ivec4) Load 72(u4outLow)
-              79:   13(ivec4) IAdd 77 78
-              80:   13(ivec4) Load 15(uout)
-              81:   13(ivec4) IAdd 80 79
-                              Store 15(uout) 81
-              84:    7(ivec4) Load 83(i4)
-              85:    7(ivec4) Load 83(i4)
-              90: 89(ResType) SMulExtended 84 85
-              91:    7(ivec4) CompositeExtract 90 0
-                              Store 88(i4outLow) 91
-              92:    7(ivec4) CompositeExtract 90 1
-                              Store 87(i4outHi) 92
-              93:    7(ivec4) Load 88(i4outLow)
-              94:    7(ivec4) Load 87(i4outHi)
-              95:    7(ivec4) IAdd 93 94
-              96:    7(ivec4) Load 9(iout)
-              97:    7(ivec4) IAdd 96 95
-                              Store 9(iout) 97
-             101:   98(fvec3) Load 100(v3)
-             106:105(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 101
-             107:  102(ivec3) CompositeExtract 106 1
-                              Store 104(i3out) 107
-             108:   98(fvec3) CompositeExtract 106 0
-             109:   19(fvec4) Load 21(fout)
-             110:   98(fvec3) VectorShuffle 109 109 0 1 2
-             111:   98(fvec3) FAdd 110 108
-             112:   19(fvec4) Load 21(fout)
-             113:   19(fvec4) VectorShuffle 112 111 4 5 6 3
-                              Store 21(fout) 113
-             114:  102(ivec3) Load 104(i3out)
-             115:    7(ivec4) Load 9(iout)
-             116:  102(ivec3) VectorShuffle 115 115 0 1 2
-             117:  102(ivec3) IAdd 116 114
-             118:    7(ivec4) Load 9(iout)
-             119:    7(ivec4) VectorShuffle 118 117 4 5 6 3
-                              Store 9(iout) 119
-             122:   18(float) Load 121(v1)
-             126:125(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 122
-             127:      6(int) CompositeExtract 126 1
-                              Store 124(i1out) 127
-             128:   18(float) CompositeExtract 126 0
-             130:    129(ptr) AccessChain 21(fout) 16
-             131:   18(float) Load 130
-             132:   18(float) FAdd 131 128
-             133:    129(ptr) AccessChain 21(fout) 16
-                              Store 133 132
-             134:      6(int) Load 124(i1out)
-             136:    135(ptr) AccessChain 9(iout) 16
-             137:      6(int) Load 136
-             138:      6(int) IAdd 137 134
-             139:    135(ptr) AccessChain 9(iout) 16
-                              Store 139 138
-             143:  140(fvec2) Load 142(v2)
-             147:  144(ivec2) Load 146(i2)
-             148:  140(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 143 147
-             149:   19(fvec4) Load 21(fout)
-             150:  140(fvec2) VectorShuffle 149 149 0 1
-             151:  140(fvec2) FAdd 150 148
-             152:   19(fvec4) Load 21(fout)
-             153:   19(fvec4) VectorShuffle 152 151 4 5 2 3
-                              Store 21(fout) 153
-             154:   18(float) Load 121(v1)
-             157:      6(int) Load 156(i1)
-             158:   18(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 154 157
-             159:    129(ptr) AccessChain 21(fout) 16
-             160:   18(float) Load 159
-             161:   18(float) FAdd 160 158
-             162:    129(ptr) AccessChain 21(fout) 16
-                              Store 162 161
-             163:      6(int) Load 156(i1)
-             166:      6(int) BitFieldSExtract 163 164 165
-             167:    135(ptr) AccessChain 9(iout) 16
-             168:      6(int) Load 167
-             169:      6(int) IAdd 168 166
-             170:    135(ptr) AccessChain 9(iout) 16
-                              Store 170 169
-             174:  171(ivec3) Load 173(u3)
-             175:  171(ivec3) BitFieldUExtract 174 164 165
-             176:   13(ivec4) Load 15(uout)
-             177:  171(ivec3) VectorShuffle 176 176 0 1 2
-             178:  171(ivec3) IAdd 177 175
-             179:   13(ivec4) Load 15(uout)
-             180:   13(ivec4) VectorShuffle 179 178 4 5 6 3
-                              Store 15(uout) 180
-             183:  102(ivec3) Load 182(i3)
-             184:  102(ivec3) Load 182(i3)
-             185:  102(ivec3) BitFieldInsert 183 184 164 165
-             186:    7(ivec4) Load 9(iout)
-             187:  102(ivec3) VectorShuffle 186 186 0 1 2
-             188:  102(ivec3) IAdd 187 185
-             189:    7(ivec4) Load 9(iout)
-             190:    7(ivec4) VectorShuffle 189 188 4 5 6 3
-                              Store 9(iout) 190
-             191:     12(int) Load 47(u1)
-             192:     12(int) Load 47(u1)
-             193:     12(int) BitFieldInsert 191 192 164 165
-             194:     56(ptr) AccessChain 15(uout) 16
-             195:     12(int) Load 194
-             196:     12(int) IAdd 195 193
-             197:     56(ptr) AccessChain 15(uout) 16
-                              Store 197 196
-             198:  144(ivec2) Load 146(i2)
-             199:  144(ivec2) BitReverse 198
-             200:    7(ivec4) Load 9(iout)
-             201:  144(ivec2) VectorShuffle 200 200 0 1
-             202:  144(ivec2) IAdd 201 199
-             203:    7(ivec4) Load 9(iout)
-             204:    7(ivec4) VectorShuffle 203 202 4 5 2 3
-                              Store 9(iout) 204
-             205:   13(ivec4) Load 67(u4)
-             206:   13(ivec4) BitReverse 205
-             207:   13(ivec4) Load 15(uout)
-             208:   13(ivec4) IAdd 207 206
-                              Store 15(uout) 208
-             209:      6(int) Load 156(i1)
-             210:      6(int) BitCount 209
-             211:    135(ptr) AccessChain 9(iout) 16
-             212:      6(int) Load 211
-             213:      6(int) IAdd 212 210
-             214:    135(ptr) AccessChain 9(iout) 16
-                              Store 214 213
-             215:  171(ivec3) Load 173(u3)
-             216:  102(ivec3) BitCount 215
-             217:    7(ivec4) Load 9(iout)
-             218:  102(ivec3) VectorShuffle 217 217 0 1 2
-             219:  102(ivec3) IAdd 218 216
-             220:    7(ivec4) Load 9(iout)
-             221:    7(ivec4) VectorShuffle 220 219 4 5 6 3
-                              Store 9(iout) 221
-             222:  144(ivec2) Load 146(i2)
-             223:  144(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 222
+              66:     12(int) Load 57(u1out)
+              67:     38(ptr) AccessChain 15(uout) 16
+              68:     12(int) Load 67
+              69:     12(int) IAdd 68 66
+              70:     38(ptr) AccessChain 15(uout) 16
+                              Store 70 69
+              73:   13(ivec4) Load 72(u4)
+              74:   13(ivec4) Load 72(u4)
+              79: 78(ResType) UMulExtended 73 74
+              80:   13(ivec4) CompositeExtract 79 0
+                              Store 77(u4outLow) 80
+              81:   13(ivec4) CompositeExtract 79 1
+                              Store 76(u4outHi) 81
+              82:   13(ivec4) Load 76(u4outHi)
+              83:   13(ivec4) Load 77(u4outLow)
+              84:   13(ivec4) IAdd 82 83
+              85:   13(ivec4) Load 15(uout)
+              86:   13(ivec4) IAdd 85 84
+                              Store 15(uout) 86
+              89:    7(ivec4) Load 88(i4)
+              90:    7(ivec4) Load 88(i4)
+              95: 94(ResType) SMulExtended 89 90
+              96:    7(ivec4) CompositeExtract 95 0
+                              Store 93(i4outLow) 96
+              97:    7(ivec4) CompositeExtract 95 1
+                              Store 92(i4outHi) 97
+              98:    7(ivec4) Load 93(i4outLow)
+              99:    7(ivec4) Load 92(i4outHi)
+             100:    7(ivec4) IAdd 98 99
+             101:    7(ivec4) Load 9(iout)
+             102:    7(ivec4) IAdd 101 100
+                              Store 9(iout) 102
+             106:  103(fvec3) Load 105(v3)
+             111:110(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 106
+             112:  107(ivec3) CompositeExtract 111 1
+                              Store 109(i3out) 112
+             113:  103(fvec3) CompositeExtract 111 0
+             114:   19(fvec4) Load 21(fout)
+             115:  103(fvec3) VectorShuffle 114 114 0 1 2
+             116:  103(fvec3) FAdd 115 113
+             118:    117(ptr) AccessChain 21(fout) 16
+             119:   18(float) CompositeExtract 116 0
+                              Store 118 119
+             120:    117(ptr) AccessChain 21(fout) 41
+             121:   18(float) CompositeExtract 116 1
+                              Store 120 121
+             123:    117(ptr) AccessChain 21(fout) 122
+             124:   18(float) CompositeExtract 116 2
+                              Store 123 124
+             125:  107(ivec3) Load 109(i3out)
+             126:    7(ivec4) Load 9(iout)
+             127:  107(ivec3) VectorShuffle 126 126 0 1 2
+             128:  107(ivec3) IAdd 127 125
+             130:    129(ptr) AccessChain 9(iout) 16
+             131:      6(int) CompositeExtract 128 0
+                              Store 130 131
+             132:    129(ptr) AccessChain 9(iout) 41
+             133:      6(int) CompositeExtract 128 1
+                              Store 132 133
+             134:    129(ptr) AccessChain 9(iout) 122
+             135:      6(int) CompositeExtract 128 2
+                              Store 134 135
+             138:   18(float) Load 137(v1)
+             142:141(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 138
+             143:      6(int) CompositeExtract 142 1
+                              Store 140(i1out) 143
+             144:   18(float) CompositeExtract 142 0
+             145:    117(ptr) AccessChain 21(fout) 16
+             146:   18(float) Load 145
+             147:   18(float) FAdd 146 144
+             148:    117(ptr) AccessChain 21(fout) 16
+                              Store 148 147
+             149:      6(int) Load 140(i1out)
+             150:    129(ptr) AccessChain 9(iout) 16
+             151:      6(int) Load 150
+             152:      6(int) IAdd 151 149
+             153:    129(ptr) AccessChain 9(iout) 16
+                              Store 153 152
+             157:  154(fvec2) Load 156(v2)
+             161:  158(ivec2) Load 160(i2)
+             162:  154(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 157 161
+             163:   19(fvec4) Load 21(fout)
+             164:  154(fvec2) VectorShuffle 163 163 0 1
+             165:  154(fvec2) FAdd 164 162
+             166:    117(ptr) AccessChain 21(fout) 16
+             167:   18(float) CompositeExtract 165 0
+                              Store 166 167
+             168:    117(ptr) AccessChain 21(fout) 41
+             169:   18(float) CompositeExtract 165 1
+                              Store 168 169
+             170:   18(float) Load 137(v1)
+             173:      6(int) Load 172(i1)
+             174:   18(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 170 173
+             175:    117(ptr) AccessChain 21(fout) 16
+             176:   18(float) Load 175
+             177:   18(float) FAdd 176 174
+             178:    117(ptr) AccessChain 21(fout) 16
+                              Store 178 177
+             179:      6(int) Load 172(i1)
+             182:      6(int) BitFieldSExtract 179 180 181
+             183:    129(ptr) AccessChain 9(iout) 16
+             184:      6(int) Load 183
+             185:      6(int) IAdd 184 182
+             186:    129(ptr) AccessChain 9(iout) 16
+                              Store 186 185
+             190:  187(ivec3) Load 189(u3)
+             191:  187(ivec3) BitFieldUExtract 190 180 181
+             192:   13(ivec4) Load 15(uout)
+             193:  187(ivec3) VectorShuffle 192 192 0 1 2
+             194:  187(ivec3) IAdd 193 191
+             195:     38(ptr) AccessChain 15(uout) 16
+             196:     12(int) CompositeExtract 194 0
+                              Store 195 196
+             197:     38(ptr) AccessChain 15(uout) 41
+             198:     12(int) CompositeExtract 194 1
+                              Store 197 198
+             199:     38(ptr) AccessChain 15(uout) 122
+             200:     12(int) CompositeExtract 194 2
+                              Store 199 200
+             203:  107(ivec3) Load 202(i3)
+             204:  107(ivec3) Load 202(i3)
+             205:  107(ivec3) BitFieldInsert 203 204 180 181
+             206:    7(ivec4) Load 9(iout)
+             207:  107(ivec3) VectorShuffle 206 206 0 1 2
+             208:  107(ivec3) IAdd 207 205
+             209:    129(ptr) AccessChain 9(iout) 16
+             210:      6(int) CompositeExtract 208 0
+                              Store 209 210
+             211:    129(ptr) AccessChain 9(iout) 41
+             212:      6(int) CompositeExtract 208 1
+                              Store 211 212
+             213:    129(ptr) AccessChain 9(iout) 122
+             214:      6(int) CompositeExtract 208 2
+                              Store 213 214
+             215:     12(int) Load 53(u1)
+             216:     12(int) Load 53(u1)
+             217:     12(int) BitFieldInsert 215 216 180 181
+             218:     38(ptr) AccessChain 15(uout) 16
+             219:     12(int) Load 218
+             220:     12(int) IAdd 219 217
+             221:     38(ptr) AccessChain 15(uout) 16
+                              Store 221 220
+             222:  158(ivec2) Load 160(i2)
+             223:  158(ivec2) BitReverse 222
              224:    7(ivec4) Load 9(iout)
-             225:  144(ivec2) VectorShuffle 224 224 0 1
-             226:  144(ivec2) IAdd 225 223
-             227:    7(ivec4) Load 9(iout)
-             228:    7(ivec4) VectorShuffle 227 226 4 5 2 3
-                              Store 9(iout) 228
-             229:   13(ivec4) Load 67(u4)
-             230:    7(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 229
-             231:    7(ivec4) Load 9(iout)
-             232:    7(ivec4) IAdd 231 230
-                              Store 9(iout) 232
-             233:      6(int) Load 156(i1)
-             234:      6(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 233
-             235:    135(ptr) AccessChain 9(iout) 16
-             236:      6(int) Load 235
-             237:      6(int) IAdd 236 234
-             238:    135(ptr) AccessChain 9(iout) 16
-                              Store 238 237
-             239:   24(ivec2) Load 26(u2)
-             240:  144(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 239
-             241:    7(ivec4) Load 9(iout)
-             242:  144(ivec2) VectorShuffle 241 241 0 1
-             243:  144(ivec2) IAdd 242 240
-             244:    7(ivec4) Load 9(iout)
-             245:    7(ivec4) VectorShuffle 244 243 4 5 2 3
-                              Store 9(iout) 245
-             248:   19(fvec4) Load 247(v4)
-             249:     12(int) ExtInst 1(GLSL.std.450) 55(PackUnorm4x8) 248
-             250:     56(ptr) AccessChain 15(uout) 16
-             251:     12(int) Load 250
-             252:     12(int) IAdd 251 249
-             253:     56(ptr) AccessChain 15(uout) 16
-                              Store 253 252
-             254:   19(fvec4) Load 247(v4)
-             255:     12(int) ExtInst 1(GLSL.std.450) 54(PackSnorm4x8) 254
-             256:     56(ptr) AccessChain 15(uout) 16
-             257:     12(int) Load 256
-             258:     12(int) IAdd 257 255
-             259:     56(ptr) AccessChain 15(uout) 16
-                              Store 259 258
-             260:     12(int) Load 47(u1)
-             261:   19(fvec4) ExtInst 1(GLSL.std.450) 64(UnpackUnorm4x8) 260
-             262:   19(fvec4) Load 21(fout)
-             263:   19(fvec4) FAdd 262 261
-                              Store 21(fout) 263
-             264:     12(int) Load 47(u1)
-             265:   19(fvec4) ExtInst 1(GLSL.std.450) 63(UnpackSnorm4x8) 264
-             266:   19(fvec4) Load 21(fout)
-             267:   19(fvec4) FAdd 266 265
-                              Store 21(fout) 267
+             225:  158(ivec2) VectorShuffle 224 224 0 1
+             226:  158(ivec2) IAdd 225 223
+             227:    129(ptr) AccessChain 9(iout) 16
+             228:      6(int) CompositeExtract 226 0
+                              Store 227 228
+             229:    129(ptr) AccessChain 9(iout) 41
+             230:      6(int) CompositeExtract 226 1
+                              Store 229 230
+             231:   13(ivec4) Load 72(u4)
+             232:   13(ivec4) BitReverse 231
+             233:   13(ivec4) Load 15(uout)
+             234:   13(ivec4) IAdd 233 232
+                              Store 15(uout) 234
+             235:      6(int) Load 172(i1)
+             236:      6(int) BitCount 235
+             237:    129(ptr) AccessChain 9(iout) 16
+             238:      6(int) Load 237
+             239:      6(int) IAdd 238 236
+             240:    129(ptr) AccessChain 9(iout) 16
+                              Store 240 239
+             241:  187(ivec3) Load 189(u3)
+             242:  107(ivec3) BitCount 241
+             243:    7(ivec4) Load 9(iout)
+             244:  107(ivec3) VectorShuffle 243 243 0 1 2
+             245:  107(ivec3) IAdd 244 242
+             246:    129(ptr) AccessChain 9(iout) 16
+             247:      6(int) CompositeExtract 245 0
+                              Store 246 247
+             248:    129(ptr) AccessChain 9(iout) 41
+             249:      6(int) CompositeExtract 245 1
+                              Store 248 249
+             250:    129(ptr) AccessChain 9(iout) 122
+             251:      6(int) CompositeExtract 245 2
+                              Store 250 251
+             252:  158(ivec2) Load 160(i2)
+             253:  158(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 252
+             254:    7(ivec4) Load 9(iout)
+             255:  158(ivec2) VectorShuffle 254 254 0 1
+             256:  158(ivec2) IAdd 255 253
+             257:    129(ptr) AccessChain 9(iout) 16
+             258:      6(int) CompositeExtract 256 0
+                              Store 257 258
+             259:    129(ptr) AccessChain 9(iout) 41
+             260:      6(int) CompositeExtract 256 1
+                              Store 259 260
+             261:   13(ivec4) Load 72(u4)
+             262:    7(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 261
+             263:    7(ivec4) Load 9(iout)
+             264:    7(ivec4) IAdd 263 262
+                              Store 9(iout) 264
+             265:      6(int) Load 172(i1)
+             266:      6(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 265
+             267:    129(ptr) AccessChain 9(iout) 16
+             268:      6(int) Load 267
+             269:      6(int) IAdd 268 266
+             270:    129(ptr) AccessChain 9(iout) 16
+                              Store 270 269
+             271:   24(ivec2) Load 26(u2)
+             272:  158(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 271
+             273:    7(ivec4) Load 9(iout)
+             274:  158(ivec2) VectorShuffle 273 273 0 1
+             275:  158(ivec2) IAdd 274 272
+             276:    129(ptr) AccessChain 9(iout) 16
+             277:      6(int) CompositeExtract 275 0
+                              Store 276 277
+             278:    129(ptr) AccessChain 9(iout) 41
+             279:      6(int) CompositeExtract 275 1
+                              Store 278 279
+             282:   19(fvec4) Load 281(v4)
+             283:     12(int) ExtInst 1(GLSL.std.450) 55(PackUnorm4x8) 282
+             284:     38(ptr) AccessChain 15(uout) 16
+             285:     12(int) Load 284
+             286:     12(int) IAdd 285 283
+             287:     38(ptr) AccessChain 15(uout) 16
+                              Store 287 286
+             288:   19(fvec4) Load 281(v4)
+             289:     12(int) ExtInst 1(GLSL.std.450) 54(PackSnorm4x8) 288
+             290:     38(ptr) AccessChain 15(uout) 16
+             291:     12(int) Load 290
+             292:     12(int) IAdd 291 289
+             293:     38(ptr) AccessChain 15(uout) 16
+                              Store 293 292
+             294:     12(int) Load 53(u1)
+             295:   19(fvec4) ExtInst 1(GLSL.std.450) 64(UnpackUnorm4x8) 294
+             296:   19(fvec4) Load 21(fout)
+             297:   19(fvec4) FAdd 296 295
+                              Store 21(fout) 297
+             298:     12(int) Load 53(u1)
+             299:   19(fvec4) ExtInst 1(GLSL.std.450) 63(UnpackSnorm4x8) 298
+             300:   19(fvec4) Load 21(fout)
+             301:   19(fvec4) FAdd 300 299
+                              Store 21(fout) 301
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.interpOps.frag.out b/Test/baseResults/spv.interpOps.frag.out
index 6c285e7..808c1cd 100644
--- a/Test/baseResults/spv.interpOps.frag.out
+++ b/Test/baseResults/spv.interpOps.frag.out
@@ -1,33 +1,33 @@
 spv.interpOps.frag
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 100
+// Id's are bound by 120
 
                               Capability Shader
                               Capability InterpolationFunction
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 13 24 33 41 47 72 98
+                              EntryPoint Fragment 4  "main" 13 24 36 49 55 86 118
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 450
                               Name 4  "main"
                               Name 9  "f4"
                               Name 13  "if1"
                               Name 24  "if2"
-                              Name 33  "if3"
-                              Name 41  "if4"
-                              Name 47  "samp"
-                              Name 72  "offset"
-                              Name 98  "fragColor"
+                              Name 36  "if3"
+                              Name 49  "if4"
+                              Name 55  "samp"
+                              Name 86  "offset"
+                              Name 118  "fragColor"
                               Decorate 13(if1) Location 0
                               Decorate 24(if2) Location 1
-                              Decorate 33(if3) Location 2
-                              Decorate 41(if4) Location 3
-                              Decorate 47(samp) Flat
-                              Decorate 47(samp) Location 4
-                              Decorate 72(offset) Flat
-                              Decorate 72(offset) Location 5
-                              Decorate 98(fragColor) Location 0
+                              Decorate 36(if3) Location 2
+                              Decorate 49(if4) Location 3
+                              Decorate 55(samp) Flat
+                              Decorate 55(samp) Location 4
+                              Decorate 86(offset) Flat
+                              Decorate 86(offset) Location 5
+                              Decorate 118(fragColor) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -43,17 +43,19 @@
               22:             TypeVector 6(float) 2
               23:             TypePointer Input 22(fvec2)
          24(if2):     23(ptr) Variable Input
-              31:             TypeVector 6(float) 3
-              32:             TypePointer Input 31(fvec3)
-         33(if3):     32(ptr) Variable Input
-              40:             TypePointer Input 7(fvec4)
-         41(if4):     40(ptr) Variable Input
-              45:             TypeInt 32 1
-              46:             TypePointer Input 45(int)
-        47(samp):     46(ptr) Variable Input
-      72(offset):     23(ptr) Variable Input
-              97:             TypePointer Output 7(fvec4)
-   98(fragColor):     97(ptr) Variable Output
+              31:     15(int) Constant 1
+              34:             TypeVector 6(float) 3
+              35:             TypePointer Input 34(fvec3)
+         36(if3):     35(ptr) Variable Input
+              45:     15(int) Constant 2
+              48:             TypePointer Input 7(fvec4)
+         49(if4):     48(ptr) Variable Input
+              53:             TypeInt 32 1
+              54:             TypePointer Input 53(int)
+        55(samp):     54(ptr) Variable Input
+      86(offset):     23(ptr) Variable Input
+             117:             TypePointer Output 7(fvec4)
+  118(fragColor):    117(ptr) Variable Output
          4(main):           2 Function None 3
                5:             Label
            9(f4):      8(ptr) Variable Function
@@ -68,77 +70,104 @@
               26:    7(fvec4) Load 9(f4)
               27:   22(fvec2) VectorShuffle 26 26 0 1
               28:   22(fvec2) FAdd 27 25
-              29:    7(fvec4) Load 9(f4)
-              30:    7(fvec4) VectorShuffle 29 28 4 5 2 3
-                              Store 9(f4) 30
-              34:   31(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 33(if3)
-              35:    7(fvec4) Load 9(f4)
-              36:   31(fvec3) VectorShuffle 35 35 0 1 2
-              37:   31(fvec3) FAdd 36 34
+              29:     17(ptr) AccessChain 9(f4) 16
+              30:    6(float) CompositeExtract 28 0
+                              Store 29 30
+              32:     17(ptr) AccessChain 9(f4) 31
+              33:    6(float) CompositeExtract 28 1
+                              Store 32 33
+              37:   34(fvec3) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 36(if3)
               38:    7(fvec4) Load 9(f4)
-              39:    7(fvec4) VectorShuffle 38 37 4 5 6 3
-                              Store 9(f4) 39
-              42:    7(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 41(if4)
-              43:    7(fvec4) Load 9(f4)
-              44:    7(fvec4) FAdd 43 42
-                              Store 9(f4) 44
-              48:     45(int) Load 47(samp)
-              49:    6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 13(if1) 48
-              50:     17(ptr) AccessChain 9(f4) 16
-              51:    6(float) Load 50
-              52:    6(float) FAdd 51 49
-              53:     17(ptr) AccessChain 9(f4) 16
-                              Store 53 52
-              54:     45(int) Load 47(samp)
-              55:   22(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 24(if2) 54
-              56:    7(fvec4) Load 9(f4)
-              57:   22(fvec2) VectorShuffle 56 56 0 1
-              58:   22(fvec2) FAdd 57 55
-              59:    7(fvec4) Load 9(f4)
-              60:    7(fvec4) VectorShuffle 59 58 4 5 2 3
-                              Store 9(f4) 60
-              61:     45(int) Load 47(samp)
-              62:   31(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 33(if3) 61
-              63:    7(fvec4) Load 9(f4)
-              64:   31(fvec3) VectorShuffle 63 63 0 1 2
-              65:   31(fvec3) FAdd 64 62
-              66:    7(fvec4) Load 9(f4)
-              67:    7(fvec4) VectorShuffle 66 65 4 5 6 3
-                              Store 9(f4) 67
-              68:     45(int) Load 47(samp)
-              69:    7(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 41(if4) 68
-              70:    7(fvec4) Load 9(f4)
-              71:    7(fvec4) FAdd 70 69
-                              Store 9(f4) 71
-              73:   22(fvec2) Load 72(offset)
-              74:    6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 73
-              75:     17(ptr) AccessChain 9(f4) 16
-              76:    6(float) Load 75
-              77:    6(float) FAdd 76 74
-              78:     17(ptr) AccessChain 9(f4) 16
-                              Store 78 77
-              79:   22(fvec2) Load 72(offset)
-              80:   22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 79
-              81:    7(fvec4) Load 9(f4)
-              82:   22(fvec2) VectorShuffle 81 81 0 1
-              83:   22(fvec2) FAdd 82 80
+              39:   34(fvec3) VectorShuffle 38 38 0 1 2
+              40:   34(fvec3) FAdd 39 37
+              41:     17(ptr) AccessChain 9(f4) 16
+              42:    6(float) CompositeExtract 40 0
+                              Store 41 42
+              43:     17(ptr) AccessChain 9(f4) 31
+              44:    6(float) CompositeExtract 40 1
+                              Store 43 44
+              46:     17(ptr) AccessChain 9(f4) 45
+              47:    6(float) CompositeExtract 40 2
+                              Store 46 47
+              50:    7(fvec4) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 49(if4)
+              51:    7(fvec4) Load 9(f4)
+              52:    7(fvec4) FAdd 51 50
+                              Store 9(f4) 52
+              56:     53(int) Load 55(samp)
+              57:    6(float) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 13(if1) 56
+              58:     17(ptr) AccessChain 9(f4) 16
+              59:    6(float) Load 58
+              60:    6(float) FAdd 59 57
+              61:     17(ptr) AccessChain 9(f4) 16
+                              Store 61 60
+              62:     53(int) Load 55(samp)
+              63:   22(fvec2) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 24(if2) 62
+              64:    7(fvec4) Load 9(f4)
+              65:   22(fvec2) VectorShuffle 64 64 0 1
+              66:   22(fvec2) FAdd 65 63
+              67:     17(ptr) AccessChain 9(f4) 16
+              68:    6(float) CompositeExtract 66 0
+                              Store 67 68
+              69:     17(ptr) AccessChain 9(f4) 31
+              70:    6(float) CompositeExtract 66 1
+                              Store 69 70
+              71:     53(int) Load 55(samp)
+              72:   34(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 36(if3) 71
+              73:    7(fvec4) Load 9(f4)
+              74:   34(fvec3) VectorShuffle 73 73 0 1 2
+              75:   34(fvec3) FAdd 74 72
+              76:     17(ptr) AccessChain 9(f4) 16
+              77:    6(float) CompositeExtract 75 0
+                              Store 76 77
+              78:     17(ptr) AccessChain 9(f4) 31
+              79:    6(float) CompositeExtract 75 1
+                              Store 78 79
+              80:     17(ptr) AccessChain 9(f4) 45
+              81:    6(float) CompositeExtract 75 2
+                              Store 80 81
+              82:     53(int) Load 55(samp)
+              83:    7(fvec4) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 49(if4) 82
               84:    7(fvec4) Load 9(f4)
-              85:    7(fvec4) VectorShuffle 84 83 4 5 2 3
+              85:    7(fvec4) FAdd 84 83
                               Store 9(f4) 85
-              86:   22(fvec2) Load 72(offset)
-              87:   31(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 33(if3) 86
-              88:    7(fvec4) Load 9(f4)
-              89:   31(fvec3) VectorShuffle 88 88 0 1 2
-              90:   31(fvec3) FAdd 89 87
-              91:    7(fvec4) Load 9(f4)
-              92:    7(fvec4) VectorShuffle 91 90 4 5 6 3
-                              Store 9(f4) 92
-              93:   22(fvec2) Load 72(offset)
-              94:    7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 41(if4) 93
+              87:   22(fvec2) Load 86(offset)
+              88:    6(float) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 13(if1) 87
+              89:     17(ptr) AccessChain 9(f4) 16
+              90:    6(float) Load 89
+              91:    6(float) FAdd 90 88
+              92:     17(ptr) AccessChain 9(f4) 16
+                              Store 92 91
+              93:   22(fvec2) Load 86(offset)
+              94:   22(fvec2) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 24(if2) 93
               95:    7(fvec4) Load 9(f4)
-              96:    7(fvec4) FAdd 95 94
-                              Store 9(f4) 96
-              99:    7(fvec4) Load 9(f4)
-                              Store 98(fragColor) 99
+              96:   22(fvec2) VectorShuffle 95 95 0 1
+              97:   22(fvec2) FAdd 96 94
+              98:     17(ptr) AccessChain 9(f4) 16
+              99:    6(float) CompositeExtract 97 0
+                              Store 98 99
+             100:     17(ptr) AccessChain 9(f4) 31
+             101:    6(float) CompositeExtract 97 1
+                              Store 100 101
+             102:   22(fvec2) Load 86(offset)
+             103:   34(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 36(if3) 102
+             104:    7(fvec4) Load 9(f4)
+             105:   34(fvec3) VectorShuffle 104 104 0 1 2
+             106:   34(fvec3) FAdd 105 103
+             107:     17(ptr) AccessChain 9(f4) 16
+             108:    6(float) CompositeExtract 106 0
+                              Store 107 108
+             109:     17(ptr) AccessChain 9(f4) 31
+             110:    6(float) CompositeExtract 106 1
+                              Store 109 110
+             111:     17(ptr) AccessChain 9(f4) 45
+             112:    6(float) CompositeExtract 106 2
+                              Store 111 112
+             113:   22(fvec2) Load 86(offset)
+             114:    7(fvec4) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 49(if4) 113
+             115:    7(fvec4) Load 9(f4)
+             116:    7(fvec4) FAdd 115 114
+                              Store 9(f4) 116
+             119:    7(fvec4) Load 9(f4)
+                              Store 118(fragColor) 119
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.invariantAll.vert.out b/Test/baseResults/spv.invariantAll.vert.out
new file mode 100644
index 0000000..ec5ad30
--- /dev/null
+++ b/Test/baseResults/spv.invariantAll.vert.out
@@ -0,0 +1,55 @@
+spv.invariantAll.vert
+// Module Version 10000
+// Generated by (magic number): 8000a
+// Id's are bound by 25
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main" 13 17
+                              Source GLSL 450
+                              Name 4  "main"
+                              Name 11  "gl_PerVertex"
+                              MemberName 11(gl_PerVertex) 0  "gl_Position"
+                              MemberName 11(gl_PerVertex) 1  "gl_PointSize"
+                              MemberName 11(gl_PerVertex) 2  "gl_ClipDistance"
+                              MemberName 11(gl_PerVertex) 3  "gl_CullDistance"
+                              Name 13  ""
+                              Name 17  "v"
+                              MemberDecorate 11(gl_PerVertex) 0 Invariant
+                              MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position
+                              MemberDecorate 11(gl_PerVertex) 1 Invariant
+                              MemberDecorate 11(gl_PerVertex) 1 BuiltIn PointSize
+                              MemberDecorate 11(gl_PerVertex) 2 Invariant
+                              MemberDecorate 11(gl_PerVertex) 2 BuiltIn ClipDistance
+                              MemberDecorate 11(gl_PerVertex) 3 Invariant
+                              MemberDecorate 11(gl_PerVertex) 3 BuiltIn CullDistance
+                              Decorate 11(gl_PerVertex) Block
+                              Decorate 17(v) Location 0
+                              Decorate 17(v) Invariant
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypeInt 32 0
+               9:      8(int) Constant 1
+              10:             TypeArray 6(float) 9
+11(gl_PerVertex):             TypeStruct 7(fvec4) 6(float) 10 10
+              12:             TypePointer Output 11(gl_PerVertex)
+              13:     12(ptr) Variable Output
+              14:             TypeInt 32 1
+              15:     14(int) Constant 0
+              16:             TypePointer Output 6(float)
+           17(v):     16(ptr) Variable Output
+              20:    6(float) Constant 0
+              21:    6(float) Constant 1065353216
+              23:             TypePointer Output 7(fvec4)
+         4(main):           2 Function None 3
+               5:             Label
+              18:    6(float) Load 17(v)
+              19:    6(float) Load 17(v)
+              22:    7(fvec4) CompositeConstruct 18 19 20 21
+              24:     23(ptr) AccessChain 13 15
+                              Store 24 22
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.load.bool.array.interface.block.frag.out b/Test/baseResults/spv.load.bool.array.interface.block.frag.out
new file mode 100644
index 0000000..f45736c
--- /dev/null
+++ b/Test/baseResults/spv.load.bool.array.interface.block.frag.out
@@ -0,0 +1,119 @@
+spv.load.bool.array.interface.block.frag
+// Module Version 10000
+// Generated by (magic number): 8000a
+// Id's are bound by 80
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 77
+                              ExecutionMode 4 OriginUpperLeft
+                              Source GLSL 450
+                              Name 4  "main"
+                              Name 11  "ssbo"
+                              MemberName 11(ssbo) 0  "bo"
+                              Name 13  ""
+                              Name 18  "ub"
+                              MemberName 18(ub) 0  "bi"
+                              Name 20  ""
+                              Name 77  "color"
+                              Decorate 8 ArrayStride 4
+                              Decorate 10 ArrayStride 12
+                              MemberDecorate 11(ssbo) 0 Offset 0
+                              Decorate 11(ssbo) BufferBlock
+                              Decorate 13 DescriptorSet 0
+                              Decorate 13 Binding 1
+                              Decorate 16 ArrayStride 16
+                              Decorate 17 ArrayStride 48
+                              MemberDecorate 18(ub) 0 Offset 0
+                              Decorate 18(ub) Block
+                              Decorate 20 DescriptorSet 0
+                              Decorate 20 Binding 0
+                              Decorate 77(color) Location 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 0
+               7:      6(int) Constant 3
+               8:             TypeArray 6(int) 7
+               9:      6(int) Constant 2
+              10:             TypeArray 8 9
+        11(ssbo):             TypeStruct 10
+              12:             TypePointer Uniform 11(ssbo)
+              13:     12(ptr) Variable Uniform
+              14:             TypeInt 32 1
+              15:     14(int) Constant 0
+              16:             TypeArray 6(int) 7
+              17:             TypeArray 16 9
+          18(ub):             TypeStruct 17
+              19:             TypePointer Uniform 18(ub)
+              20:     19(ptr) Variable Uniform
+              21:             TypePointer Uniform 17
+              24:             TypeBool
+              25:             TypeArray 24(bool) 7
+              26:             TypeArray 25 9
+              29:      6(int) Constant 0
+              45:             TypePointer Uniform 10
+              48:             TypePointer Uniform 8
+              51:      6(int) Constant 1
+              53:             TypePointer Uniform 6(int)
+              56:     14(int) Constant 1
+              60:     14(int) Constant 2
+              74:             TypeFloat 32
+              75:             TypeVector 74(float) 4
+              76:             TypePointer Output 75(fvec4)
+       77(color):     76(ptr) Variable Output
+              78:   74(float) Constant 0
+              79:   75(fvec4) ConstantComposite 78 78 78 78
+         4(main):           2 Function None 3
+               5:             Label
+              22:     21(ptr) AccessChain 20 15
+              23:          17 Load 22
+              27:          16 CompositeExtract 23 0
+              28:      6(int) CompositeExtract 27 0
+              30:    24(bool) INotEqual 28 29
+              31:      6(int) CompositeExtract 27 1
+              32:    24(bool) INotEqual 31 29
+              33:      6(int) CompositeExtract 27 2
+              34:    24(bool) INotEqual 33 29
+              35:          25 CompositeConstruct 30 32 34
+              36:          16 CompositeExtract 23 1
+              37:      6(int) CompositeExtract 36 0
+              38:    24(bool) INotEqual 37 29
+              39:      6(int) CompositeExtract 36 1
+              40:    24(bool) INotEqual 39 29
+              41:      6(int) CompositeExtract 36 2
+              42:    24(bool) INotEqual 41 29
+              43:          25 CompositeConstruct 38 40 42
+              44:          26 CompositeConstruct 35 43
+              46:     45(ptr) AccessChain 13 15
+              47:          25 CompositeExtract 44 0
+              49:     48(ptr) AccessChain 46 15
+              50:    24(bool) CompositeExtract 47 0
+              52:      6(int) Select 50 51 29
+              54:     53(ptr) AccessChain 49 15
+                              Store 54 52
+              55:    24(bool) CompositeExtract 47 1
+              57:      6(int) Select 55 51 29
+              58:     53(ptr) AccessChain 49 56
+                              Store 58 57
+              59:    24(bool) CompositeExtract 47 2
+              61:      6(int) Select 59 51 29
+              62:     53(ptr) AccessChain 49 60
+                              Store 62 61
+              63:          25 CompositeExtract 44 1
+              64:     48(ptr) AccessChain 46 56
+              65:    24(bool) CompositeExtract 63 0
+              66:      6(int) Select 65 51 29
+              67:     53(ptr) AccessChain 64 15
+                              Store 67 66
+              68:    24(bool) CompositeExtract 63 1
+              69:      6(int) Select 68 51 29
+              70:     53(ptr) AccessChain 64 56
+                              Store 70 69
+              71:    24(bool) CompositeExtract 63 2
+              72:      6(int) Select 71 51 29
+              73:     53(ptr) AccessChain 64 60
+                              Store 73 72
+                              Store 77(color) 79
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/spv.memoryQualifier.frag.out b/Test/baseResults/spv.memoryQualifier.frag.out
index 5f0647b..fce8c9c 100644
--- a/Test/baseResults/spv.memoryQualifier.frag.out
+++ b/Test/baseResults/spv.memoryQualifier.frag.out
@@ -2,7 +2,7 @@
 Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 97
+// Id's are bound by 105
 
                               Capability Shader
                               Capability ImageRect
@@ -106,14 +106,16 @@
               58:             TypePointer Uniform 6(float)
               61:             TypePointer Function 6(float)
               63:             TypePointer Uniform 47(fvec2)
-              71:     14(int) Constant 2
-              72:             TypePointer Uniform 48(fvec3)
-              80:     14(int) Constant 5
-              83:             TypeInt 32 0
-              84:     83(int) Constant 1
-              88:     83(int) Constant 3
-              93:     14(int) Constant 3
-              95:             TypePointer Uniform 7(fvec4)
+              69:             TypeInt 32 0
+              70:     69(int) Constant 0
+              73:     69(int) Constant 1
+              76:     14(int) Constant 2
+              77:             TypePointer Uniform 48(fvec3)
+              87:     69(int) Constant 2
+              90:     14(int) Constant 5
+              96:     69(int) Constant 3
+             101:     14(int) Constant 3
+             103:             TypePointer Uniform 7(fvec4)
          4(main):           2 Function None 3
                5:             Label
         9(texel):      8(ptr) Variable Function
@@ -149,29 +151,38 @@
               66:    7(fvec4) Load 9(texel)
               67:   47(fvec2) VectorShuffle 66 66 0 1
               68:   47(fvec2) FAdd 67 65
-              69:    7(fvec4) Load 9(texel)
-              70:    7(fvec4) VectorShuffle 69 68 4 5 2 3
-                              Store 9(texel) 70
-              73:     72(ptr) AccessChain 52 71
-              74:   48(fvec3) Load 73
-              75:    7(fvec4) Load 9(texel)
-              76:   48(fvec3) VectorShuffle 75 75 0 1 2
-              77:   48(fvec3) FSub 76 74
-              78:    7(fvec4) Load 9(texel)
-              79:    7(fvec4) VectorShuffle 78 77 4 5 6 3
-                              Store 9(texel) 79
-              81:     58(ptr) AccessChain 52 80 57
-              82:    6(float) Load 81
-              85:     58(ptr) AccessChain 52 80 15 84
-              86:    6(float) Load 85
-              87:    6(float) FAdd 82 86
-              89:     61(ptr) AccessChain 9(texel) 88
-              90:    6(float) Load 89
-              91:    6(float) FAdd 90 87
-              92:     61(ptr) AccessChain 9(texel) 88
-                              Store 92 91
-              94:    7(fvec4) Load 9(texel)
-              96:     95(ptr) AccessChain 52 93
-                              Store 96 94
+              71:     61(ptr) AccessChain 9(texel) 70
+              72:    6(float) CompositeExtract 68 0
+                              Store 71 72
+              74:     61(ptr) AccessChain 9(texel) 73
+              75:    6(float) CompositeExtract 68 1
+                              Store 74 75
+              78:     77(ptr) AccessChain 52 76
+              79:   48(fvec3) Load 78
+              80:    7(fvec4) Load 9(texel)
+              81:   48(fvec3) VectorShuffle 80 80 0 1 2
+              82:   48(fvec3) FSub 81 79
+              83:     61(ptr) AccessChain 9(texel) 70
+              84:    6(float) CompositeExtract 82 0
+                              Store 83 84
+              85:     61(ptr) AccessChain 9(texel) 73
+              86:    6(float) CompositeExtract 82 1
+                              Store 85 86
+              88:     61(ptr) AccessChain 9(texel) 87
+              89:    6(float) CompositeExtract 82 2
+                              Store 88 89
+              91:     58(ptr) AccessChain 52 90 57
+              92:    6(float) Load 91
+              93:     58(ptr) AccessChain 52 90 15 73
+              94:    6(float) Load 93
+              95:    6(float) FAdd 92 94
+              97:     61(ptr) AccessChain 9(texel) 96
+              98:    6(float) Load 97
+              99:    6(float) FAdd 98 95
+             100:     61(ptr) AccessChain 9(texel) 96
+                              Store 100 99
+             102:    7(fvec4) Load 9(texel)
+             104:    103(ptr) AccessChain 52 101
+                              Store 104 102
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.meshShaderUserDefined.mesh.out b/Test/baseResults/spv.meshShaderUserDefined.mesh.out
index fc2730c..01ee933 100644
--- a/Test/baseResults/spv.meshShaderUserDefined.mesh.out
+++ b/Test/baseResults/spv.meshShaderUserDefined.mesh.out
@@ -1,13 +1,13 @@
 spv.meshShaderUserDefined.mesh
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 138
+// Id's are bound by 141
 
                               Capability MeshShadingNV
                               Extension  "SPV_NV_mesh_shader"
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint MeshNV 4  "main" 11 17 34 101
+                              EntryPoint MeshNV 4  "main" 11 17 34 104
                               ExecutionMode 4 LocalSize 32 1 1
                               ExecutionMode 4 OutputVertices 81
                               ExecutionMode 4 OutputPrimitivesNV 32
@@ -27,11 +27,11 @@
                               MemberName 30(myblock) 4  "m"
                               MemberName 30(myblock) 5  "mArr"
                               Name 34  "blk"
-                              Name 97  "myblock2"
-                              MemberName 97(myblock2) 0  "f"
-                              MemberName 97(myblock2) 1  "pos"
-                              MemberName 97(myblock2) 2  "m"
-                              Name 101  "blk2"
+                              Name 100  "myblock2"
+                              MemberName 100(myblock2) 0  "f"
+                              MemberName 100(myblock2) 1  "pos"
+                              MemberName 100(myblock2) 2  "m"
+                              Name 104  "blk2"
                               Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
                               Decorate 17(gl_WorkGroupID) BuiltIn WorkgroupId
                               MemberDecorate 30(myblock) 0 PerPrimitiveNV
@@ -42,9 +42,9 @@
                               MemberDecorate 30(myblock) 5 PerPrimitiveNV
                               Decorate 30(myblock) Block
                               Decorate 34(blk) Location 0
-                              Decorate 97(myblock2) Block
-                              Decorate 101(blk2) Location 20
-                              Decorate 137 BuiltIn WorkgroupSize
+                              Decorate 100(myblock2) Block
+                              Decorate 104(blk2) Location 20
+                              Decorate 140 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -83,30 +83,30 @@
               56:   23(fvec3) ConstantComposite 53 54 55
               57:             TypePointer Output 23(fvec3)
               63:     36(int) Constant 3
-              68:             TypePointer Output 24(fvec4)
-              74:     36(int) Constant 4
-              75:   20(float) Constant 1098907648
-              76:   24(fvec4) ConstantComposite 55 53 54 75
-              81:     36(int) Constant 5
-              84:      6(int) Constant 3
-              91:   20(float) Constant 1099431936
-              92:   20(float) Constant 1099956224
-              93:   20(float) Constant 1100480512
-              94:   23(fvec3) ConstantComposite 91 92 93
-              96:      6(int) Constant 264
-    97(myblock2):             TypeStruct 20(float) 24(fvec4) 26
-              98:      6(int) Constant 81
-              99:             TypeArray 97(myblock2) 98
-             100:             TypePointer Output 99
-       101(blk2):    100(ptr) Variable Output
-             107:   20(float) Constant 1101004800
-             111:   20(float) Constant 1101529088
-             112:   20(float) Constant 1102053376
-             113:   20(float) Constant 1102577664
-             114:   20(float) Constant 1103101952
-             115:   24(fvec4) ConstantComposite 111 112 113 114
-             127:   20(float) Constant 1105723392
-             137:    9(ivec3) ConstantComposite 31 42 42
+              72:      6(int) Constant 3
+              77:     36(int) Constant 4
+              78:   20(float) Constant 1098907648
+              79:   24(fvec4) ConstantComposite 55 53 54 78
+              80:             TypePointer Output 24(fvec4)
+              85:     36(int) Constant 5
+              94:   20(float) Constant 1099431936
+              95:   20(float) Constant 1099956224
+              96:   20(float) Constant 1100480512
+              97:   23(fvec3) ConstantComposite 94 95 96
+              99:      6(int) Constant 264
+   100(myblock2):             TypeStruct 20(float) 24(fvec4) 26
+             101:      6(int) Constant 81
+             102:             TypeArray 100(myblock2) 101
+             103:             TypePointer Output 102
+       104(blk2):    103(ptr) Variable Output
+             110:   20(float) Constant 1101004800
+             114:   20(float) Constant 1101529088
+             115:   20(float) Constant 1102053376
+             116:   20(float) Constant 1102577664
+             117:   20(float) Constant 1103101952
+             118:   24(fvec4) ConstantComposite 114 115 116 117
+             130:   20(float) Constant 1105723392
+             140:    9(ivec3) ConstantComposite 31 42 42
          4(main):           2 Function None 3
                5:             Label
           8(iid):      7(ptr) Variable Function
@@ -140,64 +140,69 @@
               65:      6(int) UDiv 64 28
               66:     57(ptr) AccessChain 34(blk) 65 52
               67:   23(fvec3) Load 66
-              69:     68(ptr) AccessChain 34(blk) 62 63 44
-              70:   24(fvec4) Load 69
-              71:   24(fvec4) VectorShuffle 70 67 0 4 5 6
-                              Store 69 71
-              72:      6(int) Load 8(iid)
-              73:      6(int) UDiv 72 21
-              77:     68(ptr) AccessChain 34(blk) 73 74 52
-              78:   24(fvec4) Load 77
-              79:   24(fvec4) VectorShuffle 78 76 7 6 5 4
-                              Store 77 79
-              80:      6(int) Load 8(iid)
-              82:      6(int) Load 8(iid)
-              83:      6(int) UDiv 82 21
-              85:     39(ptr) AccessChain 34(blk) 83 74 52 84
-              86:   20(float) Load 85
-              87:     39(ptr) AccessChain 34(blk) 80 81 37 44 42
-                              Store 87 86
-              88:      6(int) Load 8(iid)
-              89:      6(int) IMul 88 21
-              90:      6(int) Load 16(gid)
-              95:     57(ptr) AccessChain 34(blk) 89 81 44 90
-                              Store 95 94
-                              MemoryBarrier 42 96
-                              ControlBarrier 28 28 96
-             102:      6(int) Load 8(iid)
-             103:      6(int) Load 8(iid)
-             104:      6(int) ISub 103 42
-             105:     39(ptr) AccessChain 101(blk2) 104 37
-             106:   20(float) Load 105
-             108:   20(float) FAdd 106 107
-             109:     39(ptr) AccessChain 101(blk2) 102 37
-                              Store 109 108
-             110:      6(int) Load 8(iid)
-             116:     68(ptr) AccessChain 101(blk2) 110 44
-                              Store 116 115
-             117:      6(int) Load 8(iid)
-             118:      6(int) IAdd 117 42
-             119:      6(int) Load 16(gid)
+              68:     39(ptr) AccessChain 34(blk) 62 63 44 42
+              69:   20(float) CompositeExtract 67 0
+                              Store 68 69
+              70:     39(ptr) AccessChain 34(blk) 62 63 44 28
+              71:   20(float) CompositeExtract 67 1
+                              Store 70 71
+              73:     39(ptr) AccessChain 34(blk) 62 63 44 72
+              74:   20(float) CompositeExtract 67 2
+                              Store 73 74
+              75:      6(int) Load 8(iid)
+              76:      6(int) UDiv 75 21
+              81:     80(ptr) AccessChain 34(blk) 76 77 52
+              82:   24(fvec4) Load 81
+              83:   24(fvec4) VectorShuffle 82 79 7 6 5 4
+                              Store 81 83
+              84:      6(int) Load 8(iid)
+              86:      6(int) Load 8(iid)
+              87:      6(int) UDiv 86 21
+              88:     39(ptr) AccessChain 34(blk) 87 77 52 72
+              89:   20(float) Load 88
+              90:     39(ptr) AccessChain 34(blk) 84 85 37 44 42
+                              Store 90 89
+              91:      6(int) Load 8(iid)
+              92:      6(int) IMul 91 21
+              93:      6(int) Load 16(gid)
+              98:     57(ptr) AccessChain 34(blk) 92 85 44 93
+                              Store 98 97
+                              MemoryBarrier 42 99
+                              ControlBarrier 28 28 99
+             105:      6(int) Load 8(iid)
+             106:      6(int) Load 8(iid)
+             107:      6(int) ISub 106 42
+             108:     39(ptr) AccessChain 104(blk2) 107 37
+             109:   20(float) Load 108
+             111:   20(float) FAdd 109 110
+             112:     39(ptr) AccessChain 104(blk2) 105 37
+                              Store 112 111
+             113:      6(int) Load 8(iid)
+             119:     80(ptr) AccessChain 104(blk2) 113 44
+                              Store 119 118
              120:      6(int) Load 8(iid)
-             121:     68(ptr) AccessChain 101(blk2) 120 44
-             122:   24(fvec4) Load 121
-             123:     68(ptr) AccessChain 101(blk2) 118 52 119
-                              Store 123 122
-             124:      6(int) Load 8(iid)
-             125:      6(int) IAdd 124 42
-             126:      6(int) Load 16(gid)
-             128:     39(ptr) AccessChain 101(blk2) 125 52 126 28
-                              Store 128 127
-             129:      6(int) Load 8(iid)
-             130:      6(int) IAdd 129 28
-             131:      6(int) Load 8(iid)
-             132:      6(int) IAdd 131 42
-             133:      6(int) Load 16(gid)
-             134:     68(ptr) AccessChain 101(blk2) 132 52 133
-             135:   24(fvec4) Load 134
-             136:     68(ptr) AccessChain 101(blk2) 130 52 63
-                              Store 136 135
-                              MemoryBarrier 42 96
-                              ControlBarrier 28 28 96
+             121:      6(int) IAdd 120 42
+             122:      6(int) Load 16(gid)
+             123:      6(int) Load 8(iid)
+             124:     80(ptr) AccessChain 104(blk2) 123 44
+             125:   24(fvec4) Load 124
+             126:     80(ptr) AccessChain 104(blk2) 121 52 122
+                              Store 126 125
+             127:      6(int) Load 8(iid)
+             128:      6(int) IAdd 127 42
+             129:      6(int) Load 16(gid)
+             131:     39(ptr) AccessChain 104(blk2) 128 52 129 28
+                              Store 131 130
+             132:      6(int) Load 8(iid)
+             133:      6(int) IAdd 132 28
+             134:      6(int) Load 8(iid)
+             135:      6(int) IAdd 134 42
+             136:      6(int) Load 16(gid)
+             137:     80(ptr) AccessChain 104(blk2) 135 52 136
+             138:   24(fvec4) Load 137
+             139:     80(ptr) AccessChain 104(blk2) 133 52 63
+                              Store 139 138
+                              MemoryBarrier 42 99
+                              ControlBarrier 28 28 99
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.rw.autoassign.frag.out b/Test/baseResults/spv.rw.autoassign.frag.out
index c696c52..27db336 100644
--- a/Test/baseResults/spv.rw.autoassign.frag.out
+++ b/Test/baseResults/spv.rw.autoassign.frag.out
@@ -1,15 +1,14 @@
 spv.rw.autoassign.frag
-Validation failed
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 42
+// Id's are bound by 45
 
                               Capability Shader
                               Capability Image1D
                               Capability ImageBuffer
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 39
+                              EntryPoint Fragment 4  "main" 42
                               ExecutionMode 4 OriginUpperLeft
                               Source HLSL 500
                               Name 4  "main"
@@ -18,15 +17,15 @@
                               Name 10  "@main("
                               Name 13  "r00"
                               Name 16  "g_tTex1df1"
-                              Name 23  "r01"
-                              Name 26  "g_tBuf1du1"
-                              Name 30  "psout"
-                              Name 39  "@entryPointOutput.Color"
+                              Name 24  "r01"
+                              Name 27  "g_tBuf1du1"
+                              Name 33  "psout"
+                              Name 42  "@entryPointOutput.Color"
                               Decorate 16(g_tTex1df1) DescriptorSet 0
                               Decorate 16(g_tTex1df1) Binding 20
-                              Decorate 26(g_tBuf1du1) DescriptorSet 0
-                              Decorate 26(g_tBuf1du1) Binding 21
-                              Decorate 39(@entryPointOutput.Color) Location 0
+                              Decorate 27(g_tBuf1du1) DescriptorSet 0
+                              Decorate 27(g_tBuf1du1) Binding 21
+                              Decorate 42(@entryPointOutput.Color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -39,37 +38,40 @@
   16(g_tTex1df1):     15(ptr) Variable UniformConstant
               18:             TypeInt 32 1
               19:     18(int) Constant 0
-              21:             TypeInt 32 0
-              22:             TypePointer Function 21(int)
-              24:             TypeImage 21(int) Buffer nonsampled format:R32ui
-              25:             TypePointer UniformConstant 24
-  26(g_tBuf1du1):     25(ptr) Variable UniformConstant
-              29:             TypePointer Function 8(PS_OUTPUT)
-              31:    6(float) Constant 0
-              32:    7(fvec4) ConstantComposite 31 31 31 31
-              33:             TypePointer Function 7(fvec4)
-              38:             TypePointer Output 7(fvec4)
-39(@entryPointOutput.Color):     38(ptr) Variable Output
+              22:             TypeInt 32 0
+              23:             TypePointer Function 22(int)
+              25:             TypeImage 22(int) Buffer nonsampled format:R32ui
+              26:             TypePointer UniformConstant 25
+  27(g_tBuf1du1):     26(ptr) Variable UniformConstant
+              29:             TypeVector 22(int) 4
+              32:             TypePointer Function 8(PS_OUTPUT)
+              34:    6(float) Constant 0
+              35:    7(fvec4) ConstantComposite 34 34 34 34
+              36:             TypePointer Function 7(fvec4)
+              41:             TypePointer Output 7(fvec4)
+42(@entryPointOutput.Color):     41(ptr) Variable Output
          4(main):           2 Function None 3
                5:             Label
-              40:8(PS_OUTPUT) FunctionCall 10(@main()
-              41:    7(fvec4) CompositeExtract 40 0
-                              Store 39(@entryPointOutput.Color) 41
+              43:8(PS_OUTPUT) FunctionCall 10(@main()
+              44:    7(fvec4) CompositeExtract 43 0
+                              Store 42(@entryPointOutput.Color) 44
                               Return
                               FunctionEnd
       10(@main():8(PS_OUTPUT) Function None 9
               11:             Label
          13(r00):     12(ptr) Variable Function
-         23(r01):     22(ptr) Variable Function
-       30(psout):     29(ptr) Variable Function
+         24(r01):     23(ptr) Variable Function
+       33(psout):     32(ptr) Variable Function
               17:          14 Load 16(g_tTex1df1)
-              20:    6(float) ImageRead 17 19
-                              Store 13(r00) 20
-              27:          24 Load 26(g_tBuf1du1)
-              28:     21(int) ImageRead 27 19
-                              Store 23(r01) 28
-              34:     33(ptr) AccessChain 30(psout) 19
-                              Store 34 32
-              35:8(PS_OUTPUT) Load 30(psout)
-                              ReturnValue 35
+              20:    7(fvec4) ImageRead 17 19
+              21:    6(float) CompositeExtract 20 0
+                              Store 13(r00) 21
+              28:          25 Load 27(g_tBuf1du1)
+              30:   29(ivec4) ImageRead 28 19
+              31:     22(int) CompositeExtract 30 0
+                              Store 24(r01) 31
+              37:     36(ptr) AccessChain 33(psout) 19
+                              Store 37 35
+              38:8(PS_OUTPUT) Load 33(psout)
+                              ReturnValue 38
                               FunctionEnd
diff --git a/Test/baseResults/spv.shaderBallot.comp.out b/Test/baseResults/spv.shaderBallot.comp.out
index bdbf10f..9338529 100644
--- a/Test/baseResults/spv.shaderBallot.comp.out
+++ b/Test/baseResults/spv.shaderBallot.comp.out
@@ -1,7 +1,7 @@
 spv.shaderBallot.comp
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 318
+// Id's are bound by 343
 
                               Capability Shader
                               Capability Int64
@@ -42,7 +42,7 @@
                               Decorate 72(Buffers) BufferBlock
                               Decorate 75(data) DescriptorSet 0
                               Decorate 75(data) Binding 0
-                              Decorate 317 BuiltIn WorkgroupSize
+                              Decorate 342 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -77,19 +77,20 @@
               86:     70(int) Constant 1
               87:             TypeVector 68(float) 2
               88:             TypePointer Uniform 69(fvec4)
-             102:     70(int) Constant 2
-             103:             TypeVector 68(float) 3
-             119:     70(int) Constant 3
-             134:             TypePointer Uniform 70(int)
-             141:             TypeVector 70(int) 2
-             142:             TypePointer Uniform 71(ivec4)
-             156:             TypeVector 70(int) 3
-             186:             TypePointer Uniform 6(int)
-             193:             TypePointer Uniform 20(ivec4)
-             207:             TypeVector 6(int) 3
-             315:      6(int) Constant 8
-             316:      6(int) Constant 1
-             317:  207(ivec3) ConstantComposite 315 315 316
+             100:      6(int) Constant 1
+             104:     70(int) Constant 2
+             105:             TypeVector 68(float) 3
+             121:      6(int) Constant 2
+             125:     70(int) Constant 3
+             140:             TypePointer Uniform 70(int)
+             147:             TypeVector 70(int) 2
+             148:             TypePointer Uniform 71(ivec4)
+             163:             TypeVector 70(int) 3
+             196:             TypePointer Uniform 6(int)
+             203:             TypePointer Uniform 20(ivec4)
+             218:             TypeVector 6(int) 3
+             341:      6(int) Constant 8
+             342:  218(ivec3) ConstantComposite 341 341 100
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -137,7 +138,7 @@
               64: 17(int64_t) Bitcast 63
               65:    58(bool) IEqual 57 64
                               SelectionMerge 67 None
-                              BranchConditional 65 66 236
+                              BranchConditional 65 66 250
               66:               Label
               76:      6(int)   Load 8(invocation)
               80:     79(ptr)   AccessChain 75(data) 77 77 78
@@ -156,237 +157,279 @@
               95:   68(float)   CompositeExtract 91 1
               96:   68(float)   SubgroupReadInvocationKHR 95 92
               97:   87(fvec2)   CompositeConstruct 94 96
-              98:     88(ptr)   AccessChain 75(data) 85 77
-              99:   69(fvec4)   Load 98
-             100:   69(fvec4)   VectorShuffle 99 97 4 5 2 3
-                                Store 98 100
-             101:      6(int)   Load 8(invocation)
-             104:     88(ptr)   AccessChain 75(data) 102 77
-             105:   69(fvec4)   Load 104
-             106:  103(fvec3)   VectorShuffle 105 105 0 1 2
-             107:      6(int)   Load 8(invocation)
-             108:   68(float)   CompositeExtract 106 0
-             109:   68(float)   SubgroupReadInvocationKHR 108 107
-             110:   68(float)   CompositeExtract 106 1
-             111:   68(float)   SubgroupReadInvocationKHR 110 107
-             112:   68(float)   CompositeExtract 106 2
-             113:   68(float)   SubgroupReadInvocationKHR 112 107
-             114:  103(fvec3)   CompositeConstruct 109 111 113
-             115:     88(ptr)   AccessChain 75(data) 101 77
-             116:   69(fvec4)   Load 115
-             117:   69(fvec4)   VectorShuffle 116 114 4 5 6 3
-                                Store 115 117
-             118:      6(int)   Load 8(invocation)
-             120:     88(ptr)   AccessChain 75(data) 119 77
-             121:   69(fvec4)   Load 120
-             122:      6(int)   Load 8(invocation)
-             123:   68(float)   CompositeExtract 121 0
-             124:   68(float)   SubgroupReadInvocationKHR 123 122
-             125:   68(float)   CompositeExtract 121 1
-             126:   68(float)   SubgroupReadInvocationKHR 125 122
-             127:   68(float)   CompositeExtract 121 2
-             128:   68(float)   SubgroupReadInvocationKHR 127 122
-             129:   68(float)   CompositeExtract 121 3
-             130:   68(float)   SubgroupReadInvocationKHR 129 122
-             131:   69(fvec4)   CompositeConstruct 124 126 128 130
-             132:     88(ptr)   AccessChain 75(data) 118 77
-                                Store 132 131
-             133:      6(int)   Load 8(invocation)
-             135:    134(ptr)   AccessChain 75(data) 77 86 78
-             136:     70(int)   Load 135
-             137:      6(int)   Load 8(invocation)
-             138:     70(int)   SubgroupReadInvocationKHR 136 137
-             139:    134(ptr)   AccessChain 75(data) 133 86 78
-                                Store 139 138
-             140:      6(int)   Load 8(invocation)
-             143:    142(ptr)   AccessChain 75(data) 86 86
-             144:   71(ivec4)   Load 143
-             145:  141(ivec2)   VectorShuffle 144 144 0 1
+              98:     79(ptr)   AccessChain 75(data) 85 77 78
+              99:   68(float)   CompositeExtract 97 0
+                                Store 98 99
+             101:     79(ptr)   AccessChain 75(data) 85 77 100
+             102:   68(float)   CompositeExtract 97 1
+                                Store 101 102
+             103:      6(int)   Load 8(invocation)
+             106:     88(ptr)   AccessChain 75(data) 104 77
+             107:   69(fvec4)   Load 106
+             108:  105(fvec3)   VectorShuffle 107 107 0 1 2
+             109:      6(int)   Load 8(invocation)
+             110:   68(float)   CompositeExtract 108 0
+             111:   68(float)   SubgroupReadInvocationKHR 110 109
+             112:   68(float)   CompositeExtract 108 1
+             113:   68(float)   SubgroupReadInvocationKHR 112 109
+             114:   68(float)   CompositeExtract 108 2
+             115:   68(float)   SubgroupReadInvocationKHR 114 109
+             116:  105(fvec3)   CompositeConstruct 111 113 115
+             117:     79(ptr)   AccessChain 75(data) 103 77 78
+             118:   68(float)   CompositeExtract 116 0
+                                Store 117 118
+             119:     79(ptr)   AccessChain 75(data) 103 77 100
+             120:   68(float)   CompositeExtract 116 1
+                                Store 119 120
+             122:     79(ptr)   AccessChain 75(data) 103 77 121
+             123:   68(float)   CompositeExtract 116 2
+                                Store 122 123
+             124:      6(int)   Load 8(invocation)
+             126:     88(ptr)   AccessChain 75(data) 125 77
+             127:   69(fvec4)   Load 126
+             128:      6(int)   Load 8(invocation)
+             129:   68(float)   CompositeExtract 127 0
+             130:   68(float)   SubgroupReadInvocationKHR 129 128
+             131:   68(float)   CompositeExtract 127 1
+             132:   68(float)   SubgroupReadInvocationKHR 131 128
+             133:   68(float)   CompositeExtract 127 2
+             134:   68(float)   SubgroupReadInvocationKHR 133 128
+             135:   68(float)   CompositeExtract 127 3
+             136:   68(float)   SubgroupReadInvocationKHR 135 128
+             137:   69(fvec4)   CompositeConstruct 130 132 134 136
+             138:     88(ptr)   AccessChain 75(data) 124 77
+                                Store 138 137
+             139:      6(int)   Load 8(invocation)
+             141:    140(ptr)   AccessChain 75(data) 77 86 78
+             142:     70(int)   Load 141
+             143:      6(int)   Load 8(invocation)
+             144:     70(int)   SubgroupReadInvocationKHR 142 143
+             145:    140(ptr)   AccessChain 75(data) 139 86 78
+                                Store 145 144
              146:      6(int)   Load 8(invocation)
-             147:     70(int)   CompositeExtract 145 0
-             148:     70(int)   SubgroupReadInvocationKHR 147 146
-             149:     70(int)   CompositeExtract 145 1
-             150:     70(int)   SubgroupReadInvocationKHR 149 146
-             151:  141(ivec2)   CompositeConstruct 148 150
-             152:    142(ptr)   AccessChain 75(data) 140 86
-             153:   71(ivec4)   Load 152
-             154:   71(ivec4)   VectorShuffle 153 151 4 5 2 3
-                                Store 152 154
-             155:      6(int)   Load 8(invocation)
-             157:    142(ptr)   AccessChain 75(data) 102 86
-             158:   71(ivec4)   Load 157
-             159:  156(ivec3)   VectorShuffle 158 158 0 1 2
-             160:      6(int)   Load 8(invocation)
-             161:     70(int)   CompositeExtract 159 0
-             162:     70(int)   SubgroupReadInvocationKHR 161 160
-             163:     70(int)   CompositeExtract 159 1
-             164:     70(int)   SubgroupReadInvocationKHR 163 160
-             165:     70(int)   CompositeExtract 159 2
-             166:     70(int)   SubgroupReadInvocationKHR 165 160
-             167:  156(ivec3)   CompositeConstruct 162 164 166
-             168:    142(ptr)   AccessChain 75(data) 155 86
-             169:   71(ivec4)   Load 168
-             170:   71(ivec4)   VectorShuffle 169 167 4 5 6 3
-                                Store 168 170
-             171:      6(int)   Load 8(invocation)
-             172:    142(ptr)   AccessChain 75(data) 119 86
-             173:   71(ivec4)   Load 172
-             174:      6(int)   Load 8(invocation)
-             175:     70(int)   CompositeExtract 173 0
-             176:     70(int)   SubgroupReadInvocationKHR 175 174
-             177:     70(int)   CompositeExtract 173 1
-             178:     70(int)   SubgroupReadInvocationKHR 177 174
-             179:     70(int)   CompositeExtract 173 2
-             180:     70(int)   SubgroupReadInvocationKHR 179 174
-             181:     70(int)   CompositeExtract 173 3
-             182:     70(int)   SubgroupReadInvocationKHR 181 174
-             183:   71(ivec4)   CompositeConstruct 176 178 180 182
-             184:    142(ptr)   AccessChain 75(data) 171 86
-                                Store 184 183
-             185:      6(int)   Load 8(invocation)
-             187:    186(ptr)   AccessChain 75(data) 77 102 78
-             188:      6(int)   Load 187
-             189:      6(int)   Load 8(invocation)
-             190:      6(int)   SubgroupReadInvocationKHR 188 189
-             191:    186(ptr)   AccessChain 75(data) 185 102 78
-                                Store 191 190
-             192:      6(int)   Load 8(invocation)
-             194:    193(ptr)   AccessChain 75(data) 86 102
-             195:   20(ivec4)   Load 194
-             196:   26(ivec2)   VectorShuffle 195 195 0 1
-             197:      6(int)   Load 8(invocation)
-             198:      6(int)   CompositeExtract 196 0
-             199:      6(int)   SubgroupReadInvocationKHR 198 197
-             200:      6(int)   CompositeExtract 196 1
-             201:      6(int)   SubgroupReadInvocationKHR 200 197
-             202:   26(ivec2)   CompositeConstruct 199 201
-             203:    193(ptr)   AccessChain 75(data) 192 102
-             204:   20(ivec4)   Load 203
-             205:   20(ivec4)   VectorShuffle 204 202 4 5 2 3
-                                Store 203 205
-             206:      6(int)   Load 8(invocation)
-             208:    193(ptr)   AccessChain 75(data) 102 102
-             209:   20(ivec4)   Load 208
-             210:  207(ivec3)   VectorShuffle 209 209 0 1 2
-             211:      6(int)   Load 8(invocation)
-             212:      6(int)   CompositeExtract 210 0
-             213:      6(int)   SubgroupReadInvocationKHR 212 211
-             214:      6(int)   CompositeExtract 210 1
-             215:      6(int)   SubgroupReadInvocationKHR 214 211
-             216:      6(int)   CompositeExtract 210 2
-             217:      6(int)   SubgroupReadInvocationKHR 216 211
-             218:  207(ivec3)   CompositeConstruct 213 215 217
-             219:    193(ptr)   AccessChain 75(data) 206 102
+             149:    148(ptr)   AccessChain 75(data) 86 86
+             150:   71(ivec4)   Load 149
+             151:  147(ivec2)   VectorShuffle 150 150 0 1
+             152:      6(int)   Load 8(invocation)
+             153:     70(int)   CompositeExtract 151 0
+             154:     70(int)   SubgroupReadInvocationKHR 153 152
+             155:     70(int)   CompositeExtract 151 1
+             156:     70(int)   SubgroupReadInvocationKHR 155 152
+             157:  147(ivec2)   CompositeConstruct 154 156
+             158:    140(ptr)   AccessChain 75(data) 146 86 78
+             159:     70(int)   CompositeExtract 157 0
+                                Store 158 159
+             160:    140(ptr)   AccessChain 75(data) 146 86 100
+             161:     70(int)   CompositeExtract 157 1
+                                Store 160 161
+             162:      6(int)   Load 8(invocation)
+             164:    148(ptr)   AccessChain 75(data) 104 86
+             165:   71(ivec4)   Load 164
+             166:  163(ivec3)   VectorShuffle 165 165 0 1 2
+             167:      6(int)   Load 8(invocation)
+             168:     70(int)   CompositeExtract 166 0
+             169:     70(int)   SubgroupReadInvocationKHR 168 167
+             170:     70(int)   CompositeExtract 166 1
+             171:     70(int)   SubgroupReadInvocationKHR 170 167
+             172:     70(int)   CompositeExtract 166 2
+             173:     70(int)   SubgroupReadInvocationKHR 172 167
+             174:  163(ivec3)   CompositeConstruct 169 171 173
+             175:    140(ptr)   AccessChain 75(data) 162 86 78
+             176:     70(int)   CompositeExtract 174 0
+                                Store 175 176
+             177:    140(ptr)   AccessChain 75(data) 162 86 100
+             178:     70(int)   CompositeExtract 174 1
+                                Store 177 178
+             179:    140(ptr)   AccessChain 75(data) 162 86 121
+             180:     70(int)   CompositeExtract 174 2
+                                Store 179 180
+             181:      6(int)   Load 8(invocation)
+             182:    148(ptr)   AccessChain 75(data) 125 86
+             183:   71(ivec4)   Load 182
+             184:      6(int)   Load 8(invocation)
+             185:     70(int)   CompositeExtract 183 0
+             186:     70(int)   SubgroupReadInvocationKHR 185 184
+             187:     70(int)   CompositeExtract 183 1
+             188:     70(int)   SubgroupReadInvocationKHR 187 184
+             189:     70(int)   CompositeExtract 183 2
+             190:     70(int)   SubgroupReadInvocationKHR 189 184
+             191:     70(int)   CompositeExtract 183 3
+             192:     70(int)   SubgroupReadInvocationKHR 191 184
+             193:   71(ivec4)   CompositeConstruct 186 188 190 192
+             194:    148(ptr)   AccessChain 75(data) 181 86
+                                Store 194 193
+             195:      6(int)   Load 8(invocation)
+             197:    196(ptr)   AccessChain 75(data) 77 104 78
+             198:      6(int)   Load 197
+             199:      6(int)   Load 8(invocation)
+             200:      6(int)   SubgroupReadInvocationKHR 198 199
+             201:    196(ptr)   AccessChain 75(data) 195 104 78
+                                Store 201 200
+             202:      6(int)   Load 8(invocation)
+             204:    203(ptr)   AccessChain 75(data) 86 104
+             205:   20(ivec4)   Load 204
+             206:   26(ivec2)   VectorShuffle 205 205 0 1
+             207:      6(int)   Load 8(invocation)
+             208:      6(int)   CompositeExtract 206 0
+             209:      6(int)   SubgroupReadInvocationKHR 208 207
+             210:      6(int)   CompositeExtract 206 1
+             211:      6(int)   SubgroupReadInvocationKHR 210 207
+             212:   26(ivec2)   CompositeConstruct 209 211
+             213:    196(ptr)   AccessChain 75(data) 202 104 78
+             214:      6(int)   CompositeExtract 212 0
+                                Store 213 214
+             215:    196(ptr)   AccessChain 75(data) 202 104 100
+             216:      6(int)   CompositeExtract 212 1
+                                Store 215 216
+             217:      6(int)   Load 8(invocation)
+             219:    203(ptr)   AccessChain 75(data) 104 104
              220:   20(ivec4)   Load 219
-             221:   20(ivec4)   VectorShuffle 220 218 4 5 6 3
-                                Store 219 221
+             221:  218(ivec3)   VectorShuffle 220 220 0 1 2
              222:      6(int)   Load 8(invocation)
-             223:    193(ptr)   AccessChain 75(data) 119 102
-             224:   20(ivec4)   Load 223
-             225:      6(int)   Load 8(invocation)
-             226:      6(int)   CompositeExtract 224 0
-             227:      6(int)   SubgroupReadInvocationKHR 226 225
-             228:      6(int)   CompositeExtract 224 1
-             229:      6(int)   SubgroupReadInvocationKHR 228 225
-             230:      6(int)   CompositeExtract 224 2
-             231:      6(int)   SubgroupReadInvocationKHR 230 225
-             232:      6(int)   CompositeExtract 224 3
-             233:      6(int)   SubgroupReadInvocationKHR 232 225
-             234:   20(ivec4)   CompositeConstruct 227 229 231 233
-             235:    193(ptr)   AccessChain 75(data) 222 102
-                                Store 235 234
+             223:      6(int)   CompositeExtract 221 0
+             224:      6(int)   SubgroupReadInvocationKHR 223 222
+             225:      6(int)   CompositeExtract 221 1
+             226:      6(int)   SubgroupReadInvocationKHR 225 222
+             227:      6(int)   CompositeExtract 221 2
+             228:      6(int)   SubgroupReadInvocationKHR 227 222
+             229:  218(ivec3)   CompositeConstruct 224 226 228
+             230:    196(ptr)   AccessChain 75(data) 217 104 78
+             231:      6(int)   CompositeExtract 229 0
+                                Store 230 231
+             232:    196(ptr)   AccessChain 75(data) 217 104 100
+             233:      6(int)   CompositeExtract 229 1
+                                Store 232 233
+             234:    196(ptr)   AccessChain 75(data) 217 104 121
+             235:      6(int)   CompositeExtract 229 2
+                                Store 234 235
+             236:      6(int)   Load 8(invocation)
+             237:    203(ptr)   AccessChain 75(data) 125 104
+             238:   20(ivec4)   Load 237
+             239:      6(int)   Load 8(invocation)
+             240:      6(int)   CompositeExtract 238 0
+             241:      6(int)   SubgroupReadInvocationKHR 240 239
+             242:      6(int)   CompositeExtract 238 1
+             243:      6(int)   SubgroupReadInvocationKHR 242 239
+             244:      6(int)   CompositeExtract 238 2
+             245:      6(int)   SubgroupReadInvocationKHR 244 239
+             246:      6(int)   CompositeExtract 238 3
+             247:      6(int)   SubgroupReadInvocationKHR 246 239
+             248:   20(ivec4)   CompositeConstruct 241 243 245 247
+             249:    203(ptr)   AccessChain 75(data) 236 104
+                                Store 249 248
                                 Branch 67
-             236:               Label
-             237:      6(int)   Load 8(invocation)
-             238:     79(ptr)   AccessChain 75(data) 77 77 78
-             239:   68(float)   Load 238
-             240:   68(float)   SubgroupFirstInvocationKHR 239
-             241:     79(ptr)   AccessChain 75(data) 237 77 78
-                                Store 241 240
-             242:      6(int)   Load 8(invocation)
-             243:     88(ptr)   AccessChain 75(data) 86 77
-             244:   69(fvec4)   Load 243
-             245:   87(fvec2)   VectorShuffle 244 244 0 1
-             246:   87(fvec2)   SubgroupFirstInvocationKHR 245
-             247:     88(ptr)   AccessChain 75(data) 242 77
-             248:   69(fvec4)   Load 247
-             249:   69(fvec4)   VectorShuffle 248 246 4 5 2 3
-                                Store 247 249
-             250:      6(int)   Load 8(invocation)
-             251:     88(ptr)   AccessChain 75(data) 102 77
-             252:   69(fvec4)   Load 251
-             253:  103(fvec3)   VectorShuffle 252 252 0 1 2
-             254:  103(fvec3)   SubgroupFirstInvocationKHR 253
-             255:     88(ptr)   AccessChain 75(data) 250 77
-             256:   69(fvec4)   Load 255
-             257:   69(fvec4)   VectorShuffle 256 254 4 5 6 3
-                                Store 255 257
-             258:      6(int)   Load 8(invocation)
-             259:     88(ptr)   AccessChain 75(data) 119 77
-             260:   69(fvec4)   Load 259
-             261:   69(fvec4)   SubgroupFirstInvocationKHR 260
-             262:     88(ptr)   AccessChain 75(data) 258 77
-                                Store 262 261
-             263:      6(int)   Load 8(invocation)
-             264:    134(ptr)   AccessChain 75(data) 77 86 78
-             265:     70(int)   Load 264
-             266:     70(int)   SubgroupFirstInvocationKHR 265
-             267:    134(ptr)   AccessChain 75(data) 263 86 78
-                                Store 267 266
-             268:      6(int)   Load 8(invocation)
-             269:    142(ptr)   AccessChain 75(data) 86 86
-             270:   71(ivec4)   Load 269
-             271:  141(ivec2)   VectorShuffle 270 270 0 1
-             272:  141(ivec2)   SubgroupFirstInvocationKHR 271
-             273:    142(ptr)   AccessChain 75(data) 268 86
-             274:   71(ivec4)   Load 273
-             275:   71(ivec4)   VectorShuffle 274 272 4 5 2 3
-                                Store 273 275
+             250:               Label
+             251:      6(int)   Load 8(invocation)
+             252:     79(ptr)   AccessChain 75(data) 77 77 78
+             253:   68(float)   Load 252
+             254:   68(float)   SubgroupFirstInvocationKHR 253
+             255:     79(ptr)   AccessChain 75(data) 251 77 78
+                                Store 255 254
+             256:      6(int)   Load 8(invocation)
+             257:     88(ptr)   AccessChain 75(data) 86 77
+             258:   69(fvec4)   Load 257
+             259:   87(fvec2)   VectorShuffle 258 258 0 1
+             260:   87(fvec2)   SubgroupFirstInvocationKHR 259
+             261:     79(ptr)   AccessChain 75(data) 256 77 78
+             262:   68(float)   CompositeExtract 260 0
+                                Store 261 262
+             263:     79(ptr)   AccessChain 75(data) 256 77 100
+             264:   68(float)   CompositeExtract 260 1
+                                Store 263 264
+             265:      6(int)   Load 8(invocation)
+             266:     88(ptr)   AccessChain 75(data) 104 77
+             267:   69(fvec4)   Load 266
+             268:  105(fvec3)   VectorShuffle 267 267 0 1 2
+             269:  105(fvec3)   SubgroupFirstInvocationKHR 268
+             270:     79(ptr)   AccessChain 75(data) 265 77 78
+             271:   68(float)   CompositeExtract 269 0
+                                Store 270 271
+             272:     79(ptr)   AccessChain 75(data) 265 77 100
+             273:   68(float)   CompositeExtract 269 1
+                                Store 272 273
+             274:     79(ptr)   AccessChain 75(data) 265 77 121
+             275:   68(float)   CompositeExtract 269 2
+                                Store 274 275
              276:      6(int)   Load 8(invocation)
-             277:    142(ptr)   AccessChain 75(data) 102 86
-             278:   71(ivec4)   Load 277
-             279:  156(ivec3)   VectorShuffle 278 278 0 1 2
-             280:  156(ivec3)   SubgroupFirstInvocationKHR 279
-             281:    142(ptr)   AccessChain 75(data) 276 86
-             282:   71(ivec4)   Load 281
-             283:   71(ivec4)   VectorShuffle 282 280 4 5 6 3
-                                Store 281 283
-             284:      6(int)   Load 8(invocation)
-             285:    142(ptr)   AccessChain 75(data) 119 86
-             286:   71(ivec4)   Load 285
-             287:   71(ivec4)   SubgroupFirstInvocationKHR 286
-             288:    142(ptr)   AccessChain 75(data) 284 86
-                                Store 288 287
-             289:      6(int)   Load 8(invocation)
-             290:    186(ptr)   AccessChain 75(data) 77 102 78
-             291:      6(int)   Load 290
-             292:      6(int)   SubgroupFirstInvocationKHR 291
-             293:    186(ptr)   AccessChain 75(data) 289 102 78
-                                Store 293 292
-             294:      6(int)   Load 8(invocation)
-             295:    193(ptr)   AccessChain 75(data) 86 102
-             296:   20(ivec4)   Load 295
-             297:   26(ivec2)   VectorShuffle 296 296 0 1
-             298:   26(ivec2)   SubgroupFirstInvocationKHR 297
-             299:    193(ptr)   AccessChain 75(data) 294 102
-             300:   20(ivec4)   Load 299
-             301:   20(ivec4)   VectorShuffle 300 298 4 5 2 3
-                                Store 299 301
-             302:      6(int)   Load 8(invocation)
-             303:    193(ptr)   AccessChain 75(data) 102 102
-             304:   20(ivec4)   Load 303
-             305:  207(ivec3)   VectorShuffle 304 304 0 1 2
-             306:  207(ivec3)   SubgroupFirstInvocationKHR 305
-             307:    193(ptr)   AccessChain 75(data) 302 102
-             308:   20(ivec4)   Load 307
-             309:   20(ivec4)   VectorShuffle 308 306 4 5 6 3
-                                Store 307 309
-             310:      6(int)   Load 8(invocation)
-             311:    193(ptr)   AccessChain 75(data) 119 102
-             312:   20(ivec4)   Load 311
-             313:   20(ivec4)   SubgroupFirstInvocationKHR 312
-             314:    193(ptr)   AccessChain 75(data) 310 102
-                                Store 314 313
+             277:     88(ptr)   AccessChain 75(data) 125 77
+             278:   69(fvec4)   Load 277
+             279:   69(fvec4)   SubgroupFirstInvocationKHR 278
+             280:     88(ptr)   AccessChain 75(data) 276 77
+                                Store 280 279
+             281:      6(int)   Load 8(invocation)
+             282:    140(ptr)   AccessChain 75(data) 77 86 78
+             283:     70(int)   Load 282
+             284:     70(int)   SubgroupFirstInvocationKHR 283
+             285:    140(ptr)   AccessChain 75(data) 281 86 78
+                                Store 285 284
+             286:      6(int)   Load 8(invocation)
+             287:    148(ptr)   AccessChain 75(data) 86 86
+             288:   71(ivec4)   Load 287
+             289:  147(ivec2)   VectorShuffle 288 288 0 1
+             290:  147(ivec2)   SubgroupFirstInvocationKHR 289
+             291:    140(ptr)   AccessChain 75(data) 286 86 78
+             292:     70(int)   CompositeExtract 290 0
+                                Store 291 292
+             293:    140(ptr)   AccessChain 75(data) 286 86 100
+             294:     70(int)   CompositeExtract 290 1
+                                Store 293 294
+             295:      6(int)   Load 8(invocation)
+             296:    148(ptr)   AccessChain 75(data) 104 86
+             297:   71(ivec4)   Load 296
+             298:  163(ivec3)   VectorShuffle 297 297 0 1 2
+             299:  163(ivec3)   SubgroupFirstInvocationKHR 298
+             300:    140(ptr)   AccessChain 75(data) 295 86 78
+             301:     70(int)   CompositeExtract 299 0
+                                Store 300 301
+             302:    140(ptr)   AccessChain 75(data) 295 86 100
+             303:     70(int)   CompositeExtract 299 1
+                                Store 302 303
+             304:    140(ptr)   AccessChain 75(data) 295 86 121
+             305:     70(int)   CompositeExtract 299 2
+                                Store 304 305
+             306:      6(int)   Load 8(invocation)
+             307:    148(ptr)   AccessChain 75(data) 125 86
+             308:   71(ivec4)   Load 307
+             309:   71(ivec4)   SubgroupFirstInvocationKHR 308
+             310:    148(ptr)   AccessChain 75(data) 306 86
+                                Store 310 309
+             311:      6(int)   Load 8(invocation)
+             312:    196(ptr)   AccessChain 75(data) 77 104 78
+             313:      6(int)   Load 312
+             314:      6(int)   SubgroupFirstInvocationKHR 313
+             315:    196(ptr)   AccessChain 75(data) 311 104 78
+                                Store 315 314
+             316:      6(int)   Load 8(invocation)
+             317:    203(ptr)   AccessChain 75(data) 86 104
+             318:   20(ivec4)   Load 317
+             319:   26(ivec2)   VectorShuffle 318 318 0 1
+             320:   26(ivec2)   SubgroupFirstInvocationKHR 319
+             321:    196(ptr)   AccessChain 75(data) 316 104 78
+             322:      6(int)   CompositeExtract 320 0
+                                Store 321 322
+             323:    196(ptr)   AccessChain 75(data) 316 104 100
+             324:      6(int)   CompositeExtract 320 1
+                                Store 323 324
+             325:      6(int)   Load 8(invocation)
+             326:    203(ptr)   AccessChain 75(data) 104 104
+             327:   20(ivec4)   Load 326
+             328:  218(ivec3)   VectorShuffle 327 327 0 1 2
+             329:  218(ivec3)   SubgroupFirstInvocationKHR 328
+             330:    196(ptr)   AccessChain 75(data) 325 104 78
+             331:      6(int)   CompositeExtract 329 0
+                                Store 330 331
+             332:    196(ptr)   AccessChain 75(data) 325 104 100
+             333:      6(int)   CompositeExtract 329 1
+                                Store 332 333
+             334:    196(ptr)   AccessChain 75(data) 325 104 121
+             335:      6(int)   CompositeExtract 329 2
+                                Store 334 335
+             336:      6(int)   Load 8(invocation)
+             337:    203(ptr)   AccessChain 75(data) 125 104
+             338:   20(ivec4)   Load 337
+             339:   20(ivec4)   SubgroupFirstInvocationKHR 338
+             340:    203(ptr)   AccessChain 75(data) 336 104
+                                Store 340 339
                                 Branch 67
               67:             Label
                               Return
diff --git a/Test/baseResults/spv.subgroupArithmetic.comp.out b/Test/baseResults/spv.subgroupArithmetic.comp.out
index e531f6f..87bfa31 100644
--- a/Test/baseResults/spv.subgroupArithmetic.comp.out
+++ b/Test/baseResults/spv.subgroupArithmetic.comp.out
@@ -1,7 +1,7 @@
 spv.subgroupArithmetic.comp
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 2085
+// Id's are bound by 2386
 
                               Capability Shader
                               Capability Float64
@@ -39,7 +39,7 @@
                               Decorate 24(Buffers) Block
                               Decorate 27(data) DescriptorSet 0
                               Decorate 27(data) Binding 0
-                              Decorate 2084 BuiltIn WorkgroupSize
+                              Decorate 2385 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -66,34 +66,35 @@
               38:     19(int) Constant 1
               39:             TypeVector 17(float) 2
               40:             TypePointer StorageBuffer 18(fvec4)
-              49:     19(int) Constant 2
-              50:             TypeVector 17(float) 3
-              59:     19(int) Constant 3
-              65:             TypePointer StorageBuffer 19(int)
-              71:             TypeVector 19(int) 2
-              72:             TypePointer StorageBuffer 20(ivec4)
-              81:             TypeVector 19(int) 3
-              95:             TypePointer StorageBuffer 6(int)
-             101:             TypeVector 6(int) 2
-             102:             TypePointer StorageBuffer 21(ivec4)
-             111:             TypeVector 6(int) 3
-             125:             TypePointer StorageBuffer 22(float64_t)
-             131:             TypeVector 22(float64_t) 2
-             132:             TypePointer StorageBuffer 23(f64vec4)
-             141:             TypeVector 22(float64_t) 3
-             521:             TypeBool
-             530:   71(ivec2) ConstantComposite 29 29
-             531:             TypeVector 521(bool) 2
-             534:   71(ivec2) ConstantComposite 38 38
-             543:   81(ivec3) ConstantComposite 29 29 29
-             544:             TypeVector 521(bool) 3
-             547:   81(ivec3) ConstantComposite 38 38 38
-             555:   20(ivec4) ConstantComposite 29 29 29 29
-             556:             TypeVector 521(bool) 4
-             559:   20(ivec4) ConstantComposite 38 38 38 38
-            2082:      6(int) Constant 8
-            2083:      6(int) Constant 1
-            2084:  111(ivec3) ConstantComposite 2082 2083 2083
+              47:      6(int) Constant 1
+              51:     19(int) Constant 2
+              52:             TypeVector 17(float) 3
+              61:      6(int) Constant 2
+              65:     19(int) Constant 3
+              71:             TypePointer StorageBuffer 19(int)
+              77:             TypeVector 19(int) 2
+              78:             TypePointer StorageBuffer 20(ivec4)
+              88:             TypeVector 19(int) 3
+             105:             TypePointer StorageBuffer 6(int)
+             111:             TypeVector 6(int) 2
+             112:             TypePointer StorageBuffer 21(ivec4)
+             122:             TypeVector 6(int) 3
+             139:             TypePointer StorageBuffer 22(float64_t)
+             145:             TypeVector 22(float64_t) 2
+             146:             TypePointer StorageBuffer 23(f64vec4)
+             156:             TypeVector 22(float64_t) 3
+             595:             TypeBool
+             604:   77(ivec2) ConstantComposite 29 29
+             605:             TypeVector 595(bool) 2
+             608:   77(ivec2) ConstantComposite 38 38
+             618:   88(ivec3) ConstantComposite 29 29 29
+             619:             TypeVector 595(bool) 3
+             622:   88(ivec3) ConstantComposite 38 38 38
+             633:   20(ivec4) ConstantComposite 29 29 29 29
+             634:             TypeVector 595(bool) 4
+             637:   20(ivec4) ConstantComposite 38 38 38 38
+            2384:      6(int) Constant 8
+            2385:  122(ivec3) ConstantComposite 2384 47 47
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -113,2316 +114,2841 @@
               42:   18(fvec4) Load 41
               43:   39(fvec2) VectorShuffle 42 42 0 1
               44:   39(fvec2) GroupNonUniformFAdd 34 Reduce 43
-              45:     40(ptr) AccessChain 27(data) 37 29
-              46:   18(fvec4) Load 45
-              47:   18(fvec4) VectorShuffle 46 44 4 5 2 3
-                              Store 45 47
-              48:      6(int) Load 8(invocation)
-              51:     40(ptr) AccessChain 27(data) 49 29
-              52:   18(fvec4) Load 51
-              53:   50(fvec3) VectorShuffle 52 52 0 1 2
-              54:   50(fvec3) GroupNonUniformFAdd 34 Reduce 53
-              55:     40(ptr) AccessChain 27(data) 48 29
-              56:   18(fvec4) Load 55
-              57:   18(fvec4) VectorShuffle 56 54 4 5 6 3
-                              Store 55 57
-              58:      6(int) Load 8(invocation)
-              60:     40(ptr) AccessChain 27(data) 59 29
-              61:   18(fvec4) Load 60
-              62:   18(fvec4) GroupNonUniformFAdd 34 Reduce 61
-              63:     40(ptr) AccessChain 27(data) 58 29
-                              Store 63 62
+              45:     31(ptr) AccessChain 27(data) 37 29 30
+              46:   17(float) CompositeExtract 44 0
+                              Store 45 46
+              48:     31(ptr) AccessChain 27(data) 37 29 47
+              49:   17(float) CompositeExtract 44 1
+                              Store 48 49
+              50:      6(int) Load 8(invocation)
+              53:     40(ptr) AccessChain 27(data) 51 29
+              54:   18(fvec4) Load 53
+              55:   52(fvec3) VectorShuffle 54 54 0 1 2
+              56:   52(fvec3) GroupNonUniformFAdd 34 Reduce 55
+              57:     31(ptr) AccessChain 27(data) 50 29 30
+              58:   17(float) CompositeExtract 56 0
+                              Store 57 58
+              59:     31(ptr) AccessChain 27(data) 50 29 47
+              60:   17(float) CompositeExtract 56 1
+                              Store 59 60
+              62:     31(ptr) AccessChain 27(data) 50 29 61
+              63:   17(float) CompositeExtract 56 2
+                              Store 62 63
               64:      6(int) Load 8(invocation)
-              66:     65(ptr) AccessChain 27(data) 29 38 30
-              67:     19(int) Load 66
-              68:     19(int) GroupNonUniformIAdd 34 Reduce 67
-              69:     65(ptr) AccessChain 27(data) 64 38 30
+              66:     40(ptr) AccessChain 27(data) 65 29
+              67:   18(fvec4) Load 66
+              68:   18(fvec4) GroupNonUniformFAdd 34 Reduce 67
+              69:     40(ptr) AccessChain 27(data) 64 29
                               Store 69 68
               70:      6(int) Load 8(invocation)
-              73:     72(ptr) AccessChain 27(data) 38 38
-              74:   20(ivec4) Load 73
-              75:   71(ivec2) VectorShuffle 74 74 0 1
-              76:   71(ivec2) GroupNonUniformIAdd 34 Reduce 75
-              77:     72(ptr) AccessChain 27(data) 70 38
-              78:   20(ivec4) Load 77
-              79:   20(ivec4) VectorShuffle 78 76 4 5 2 3
-                              Store 77 79
-              80:      6(int) Load 8(invocation)
-              82:     72(ptr) AccessChain 27(data) 49 38
-              83:   20(ivec4) Load 82
-              84:   81(ivec3) VectorShuffle 83 83 0 1 2
-              85:   81(ivec3) GroupNonUniformIAdd 34 Reduce 84
-              86:     72(ptr) AccessChain 27(data) 80 38
-              87:   20(ivec4) Load 86
-              88:   20(ivec4) VectorShuffle 87 85 4 5 6 3
-                              Store 86 88
-              89:      6(int) Load 8(invocation)
-              90:     72(ptr) AccessChain 27(data) 59 38
-              91:   20(ivec4) Load 90
-              92:   20(ivec4) GroupNonUniformIAdd 34 Reduce 91
-              93:     72(ptr) AccessChain 27(data) 89 38
-                              Store 93 92
-              94:      6(int) Load 8(invocation)
-              96:     95(ptr) AccessChain 27(data) 29 49 30
-              97:      6(int) Load 96
-              98:      6(int) GroupNonUniformIAdd 34 Reduce 97
-              99:     95(ptr) AccessChain 27(data) 94 49 30
-                              Store 99 98
-             100:      6(int) Load 8(invocation)
-             103:    102(ptr) AccessChain 27(data) 38 49
-             104:   21(ivec4) Load 103
-             105:  101(ivec2) VectorShuffle 104 104 0 1
-             106:  101(ivec2) GroupNonUniformIAdd 34 Reduce 105
-             107:    102(ptr) AccessChain 27(data) 100 49
-             108:   21(ivec4) Load 107
-             109:   21(ivec4) VectorShuffle 108 106 4 5 2 3
-                              Store 107 109
+              72:     71(ptr) AccessChain 27(data) 29 38 30
+              73:     19(int) Load 72
+              74:     19(int) GroupNonUniformIAdd 34 Reduce 73
+              75:     71(ptr) AccessChain 27(data) 70 38 30
+                              Store 75 74
+              76:      6(int) Load 8(invocation)
+              79:     78(ptr) AccessChain 27(data) 38 38
+              80:   20(ivec4) Load 79
+              81:   77(ivec2) VectorShuffle 80 80 0 1
+              82:   77(ivec2) GroupNonUniformIAdd 34 Reduce 81
+              83:     71(ptr) AccessChain 27(data) 76 38 30
+              84:     19(int) CompositeExtract 82 0
+                              Store 83 84
+              85:     71(ptr) AccessChain 27(data) 76 38 47
+              86:     19(int) CompositeExtract 82 1
+                              Store 85 86
+              87:      6(int) Load 8(invocation)
+              89:     78(ptr) AccessChain 27(data) 51 38
+              90:   20(ivec4) Load 89
+              91:   88(ivec3) VectorShuffle 90 90 0 1 2
+              92:   88(ivec3) GroupNonUniformIAdd 34 Reduce 91
+              93:     71(ptr) AccessChain 27(data) 87 38 30
+              94:     19(int) CompositeExtract 92 0
+                              Store 93 94
+              95:     71(ptr) AccessChain 27(data) 87 38 47
+              96:     19(int) CompositeExtract 92 1
+                              Store 95 96
+              97:     71(ptr) AccessChain 27(data) 87 38 61
+              98:     19(int) CompositeExtract 92 2
+                              Store 97 98
+              99:      6(int) Load 8(invocation)
+             100:     78(ptr) AccessChain 27(data) 65 38
+             101:   20(ivec4) Load 100
+             102:   20(ivec4) GroupNonUniformIAdd 34 Reduce 101
+             103:     78(ptr) AccessChain 27(data) 99 38
+                              Store 103 102
+             104:      6(int) Load 8(invocation)
+             106:    105(ptr) AccessChain 27(data) 29 51 30
+             107:      6(int) Load 106
+             108:      6(int) GroupNonUniformIAdd 34 Reduce 107
+             109:    105(ptr) AccessChain 27(data) 104 51 30
+                              Store 109 108
              110:      6(int) Load 8(invocation)
-             112:    102(ptr) AccessChain 27(data) 49 49
-             113:   21(ivec4) Load 112
-             114:  111(ivec3) VectorShuffle 113 113 0 1 2
-             115:  111(ivec3) GroupNonUniformIAdd 34 Reduce 114
-             116:    102(ptr) AccessChain 27(data) 110 49
-             117:   21(ivec4) Load 116
-             118:   21(ivec4) VectorShuffle 117 115 4 5 6 3
-                              Store 116 118
-             119:      6(int) Load 8(invocation)
-             120:    102(ptr) AccessChain 27(data) 59 49
-             121:   21(ivec4) Load 120
-             122:   21(ivec4) GroupNonUniformIAdd 34 Reduce 121
-             123:    102(ptr) AccessChain 27(data) 119 49
-                              Store 123 122
-             124:      6(int) Load 8(invocation)
-             126:    125(ptr) AccessChain 27(data) 29 59 30
-             127:22(float64_t) Load 126
-             128:22(float64_t) GroupNonUniformFAdd 34 Reduce 127
-             129:    125(ptr) AccessChain 27(data) 124 59 30
-                              Store 129 128
-             130:      6(int) Load 8(invocation)
-             133:    132(ptr) AccessChain 27(data) 38 59
-             134: 23(f64vec4) Load 133
-             135:131(f64vec2) VectorShuffle 134 134 0 1
-             136:131(f64vec2) GroupNonUniformFAdd 34 Reduce 135
-             137:    132(ptr) AccessChain 27(data) 130 59
-             138: 23(f64vec4) Load 137
-             139: 23(f64vec4) VectorShuffle 138 136 4 5 2 3
-                              Store 137 139
-             140:      6(int) Load 8(invocation)
-             142:    132(ptr) AccessChain 27(data) 49 59
-             143: 23(f64vec4) Load 142
-             144:141(f64vec3) VectorShuffle 143 143 0 1 2
-             145:141(f64vec3) GroupNonUniformFAdd 34 Reduce 144
-             146:    132(ptr) AccessChain 27(data) 140 59
-             147: 23(f64vec4) Load 146
-             148: 23(f64vec4) VectorShuffle 147 145 4 5 6 3
-                              Store 146 148
-             149:      6(int) Load 8(invocation)
-             150:    132(ptr) AccessChain 27(data) 59 59
-             151: 23(f64vec4) Load 150
-             152: 23(f64vec4) GroupNonUniformFAdd 34 Reduce 151
-             153:    132(ptr) AccessChain 27(data) 149 59
-                              Store 153 152
-             154:      6(int) Load 8(invocation)
-             155:     31(ptr) AccessChain 27(data) 29 29 30
-             156:   17(float) Load 155
-             157:   17(float) GroupNonUniformFMul 34 Reduce 156
-             158:     31(ptr) AccessChain 27(data) 154 29 30
-                              Store 158 157
-             159:      6(int) Load 8(invocation)
-             160:     40(ptr) AccessChain 27(data) 38 29
-             161:   18(fvec4) Load 160
-             162:   39(fvec2) VectorShuffle 161 161 0 1
-             163:   39(fvec2) GroupNonUniformFMul 34 Reduce 162
-             164:     40(ptr) AccessChain 27(data) 159 29
-             165:   18(fvec4) Load 164
-             166:   18(fvec4) VectorShuffle 165 163 4 5 2 3
-                              Store 164 166
+             113:    112(ptr) AccessChain 27(data) 38 51
+             114:   21(ivec4) Load 113
+             115:  111(ivec2) VectorShuffle 114 114 0 1
+             116:  111(ivec2) GroupNonUniformIAdd 34 Reduce 115
+             117:    105(ptr) AccessChain 27(data) 110 51 30
+             118:      6(int) CompositeExtract 116 0
+                              Store 117 118
+             119:    105(ptr) AccessChain 27(data) 110 51 47
+             120:      6(int) CompositeExtract 116 1
+                              Store 119 120
+             121:      6(int) Load 8(invocation)
+             123:    112(ptr) AccessChain 27(data) 51 51
+             124:   21(ivec4) Load 123
+             125:  122(ivec3) VectorShuffle 124 124 0 1 2
+             126:  122(ivec3) GroupNonUniformIAdd 34 Reduce 125
+             127:    105(ptr) AccessChain 27(data) 121 51 30
+             128:      6(int) CompositeExtract 126 0
+                              Store 127 128
+             129:    105(ptr) AccessChain 27(data) 121 51 47
+             130:      6(int) CompositeExtract 126 1
+                              Store 129 130
+             131:    105(ptr) AccessChain 27(data) 121 51 61
+             132:      6(int) CompositeExtract 126 2
+                              Store 131 132
+             133:      6(int) Load 8(invocation)
+             134:    112(ptr) AccessChain 27(data) 65 51
+             135:   21(ivec4) Load 134
+             136:   21(ivec4) GroupNonUniformIAdd 34 Reduce 135
+             137:    112(ptr) AccessChain 27(data) 133 51
+                              Store 137 136
+             138:      6(int) Load 8(invocation)
+             140:    139(ptr) AccessChain 27(data) 29 65 30
+             141:22(float64_t) Load 140
+             142:22(float64_t) GroupNonUniformFAdd 34 Reduce 141
+             143:    139(ptr) AccessChain 27(data) 138 65 30
+                              Store 143 142
+             144:      6(int) Load 8(invocation)
+             147:    146(ptr) AccessChain 27(data) 38 65
+             148: 23(f64vec4) Load 147
+             149:145(f64vec2) VectorShuffle 148 148 0 1
+             150:145(f64vec2) GroupNonUniformFAdd 34 Reduce 149
+             151:    139(ptr) AccessChain 27(data) 144 65 30
+             152:22(float64_t) CompositeExtract 150 0
+                              Store 151 152
+             153:    139(ptr) AccessChain 27(data) 144 65 47
+             154:22(float64_t) CompositeExtract 150 1
+                              Store 153 154
+             155:      6(int) Load 8(invocation)
+             157:    146(ptr) AccessChain 27(data) 51 65
+             158: 23(f64vec4) Load 157
+             159:156(f64vec3) VectorShuffle 158 158 0 1 2
+             160:156(f64vec3) GroupNonUniformFAdd 34 Reduce 159
+             161:    139(ptr) AccessChain 27(data) 155 65 30
+             162:22(float64_t) CompositeExtract 160 0
+                              Store 161 162
+             163:    139(ptr) AccessChain 27(data) 155 65 47
+             164:22(float64_t) CompositeExtract 160 1
+                              Store 163 164
+             165:    139(ptr) AccessChain 27(data) 155 65 61
+             166:22(float64_t) CompositeExtract 160 2
+                              Store 165 166
              167:      6(int) Load 8(invocation)
-             168:     40(ptr) AccessChain 27(data) 49 29
-             169:   18(fvec4) Load 168
-             170:   50(fvec3) VectorShuffle 169 169 0 1 2
-             171:   50(fvec3) GroupNonUniformFMul 34 Reduce 170
-             172:     40(ptr) AccessChain 27(data) 167 29
-             173:   18(fvec4) Load 172
-             174:   18(fvec4) VectorShuffle 173 171 4 5 6 3
-                              Store 172 174
-             175:      6(int) Load 8(invocation)
-             176:     40(ptr) AccessChain 27(data) 59 29
-             177:   18(fvec4) Load 176
-             178:   18(fvec4) GroupNonUniformFMul 34 Reduce 177
-             179:     40(ptr) AccessChain 27(data) 175 29
-                              Store 179 178
-             180:      6(int) Load 8(invocation)
-             181:     65(ptr) AccessChain 27(data) 29 38 30
-             182:     19(int) Load 181
-             183:     19(int) GroupNonUniformIMul 34 Reduce 182
-             184:     65(ptr) AccessChain 27(data) 180 38 30
-                              Store 184 183
-             185:      6(int) Load 8(invocation)
-             186:     72(ptr) AccessChain 27(data) 38 38
-             187:   20(ivec4) Load 186
-             188:   71(ivec2) VectorShuffle 187 187 0 1
-             189:   71(ivec2) GroupNonUniformIMul 34 Reduce 188
-             190:     72(ptr) AccessChain 27(data) 185 38
-             191:   20(ivec4) Load 190
-             192:   20(ivec4) VectorShuffle 191 189 4 5 2 3
-                              Store 190 192
-             193:      6(int) Load 8(invocation)
-             194:     72(ptr) AccessChain 27(data) 49 38
-             195:   20(ivec4) Load 194
-             196:   81(ivec3) VectorShuffle 195 195 0 1 2
-             197:   81(ivec3) GroupNonUniformIMul 34 Reduce 196
-             198:     72(ptr) AccessChain 27(data) 193 38
-             199:   20(ivec4) Load 198
-             200:   20(ivec4) VectorShuffle 199 197 4 5 6 3
-                              Store 198 200
-             201:      6(int) Load 8(invocation)
-             202:     72(ptr) AccessChain 27(data) 59 38
-             203:   20(ivec4) Load 202
-             204:   20(ivec4) GroupNonUniformIMul 34 Reduce 203
-             205:     72(ptr) AccessChain 27(data) 201 38
-                              Store 205 204
-             206:      6(int) Load 8(invocation)
-             207:     95(ptr) AccessChain 27(data) 29 49 30
-             208:      6(int) Load 207
-             209:      6(int) GroupNonUniformIMul 34 Reduce 208
-             210:     95(ptr) AccessChain 27(data) 206 49 30
-                              Store 210 209
-             211:      6(int) Load 8(invocation)
-             212:    102(ptr) AccessChain 27(data) 38 49
-             213:   21(ivec4) Load 212
-             214:  101(ivec2) VectorShuffle 213 213 0 1
-             215:  101(ivec2) GroupNonUniformIMul 34 Reduce 214
-             216:    102(ptr) AccessChain 27(data) 211 49
-             217:   21(ivec4) Load 216
-             218:   21(ivec4) VectorShuffle 217 215 4 5 2 3
-                              Store 216 218
-             219:      6(int) Load 8(invocation)
-             220:    102(ptr) AccessChain 27(data) 49 49
-             221:   21(ivec4) Load 220
-             222:  111(ivec3) VectorShuffle 221 221 0 1 2
-             223:  111(ivec3) GroupNonUniformIMul 34 Reduce 222
-             224:    102(ptr) AccessChain 27(data) 219 49
-             225:   21(ivec4) Load 224
-             226:   21(ivec4) VectorShuffle 225 223 4 5 6 3
-                              Store 224 226
+             168:    146(ptr) AccessChain 27(data) 65 65
+             169: 23(f64vec4) Load 168
+             170: 23(f64vec4) GroupNonUniformFAdd 34 Reduce 169
+             171:    146(ptr) AccessChain 27(data) 167 65
+                              Store 171 170
+             172:      6(int) Load 8(invocation)
+             173:     31(ptr) AccessChain 27(data) 29 29 30
+             174:   17(float) Load 173
+             175:   17(float) GroupNonUniformFMul 34 Reduce 174
+             176:     31(ptr) AccessChain 27(data) 172 29 30
+                              Store 176 175
+             177:      6(int) Load 8(invocation)
+             178:     40(ptr) AccessChain 27(data) 38 29
+             179:   18(fvec4) Load 178
+             180:   39(fvec2) VectorShuffle 179 179 0 1
+             181:   39(fvec2) GroupNonUniformFMul 34 Reduce 180
+             182:     31(ptr) AccessChain 27(data) 177 29 30
+             183:   17(float) CompositeExtract 181 0
+                              Store 182 183
+             184:     31(ptr) AccessChain 27(data) 177 29 47
+             185:   17(float) CompositeExtract 181 1
+                              Store 184 185
+             186:      6(int) Load 8(invocation)
+             187:     40(ptr) AccessChain 27(data) 51 29
+             188:   18(fvec4) Load 187
+             189:   52(fvec3) VectorShuffle 188 188 0 1 2
+             190:   52(fvec3) GroupNonUniformFMul 34 Reduce 189
+             191:     31(ptr) AccessChain 27(data) 186 29 30
+             192:   17(float) CompositeExtract 190 0
+                              Store 191 192
+             193:     31(ptr) AccessChain 27(data) 186 29 47
+             194:   17(float) CompositeExtract 190 1
+                              Store 193 194
+             195:     31(ptr) AccessChain 27(data) 186 29 61
+             196:   17(float) CompositeExtract 190 2
+                              Store 195 196
+             197:      6(int) Load 8(invocation)
+             198:     40(ptr) AccessChain 27(data) 65 29
+             199:   18(fvec4) Load 198
+             200:   18(fvec4) GroupNonUniformFMul 34 Reduce 199
+             201:     40(ptr) AccessChain 27(data) 197 29
+                              Store 201 200
+             202:      6(int) Load 8(invocation)
+             203:     71(ptr) AccessChain 27(data) 29 38 30
+             204:     19(int) Load 203
+             205:     19(int) GroupNonUniformIMul 34 Reduce 204
+             206:     71(ptr) AccessChain 27(data) 202 38 30
+                              Store 206 205
+             207:      6(int) Load 8(invocation)
+             208:     78(ptr) AccessChain 27(data) 38 38
+             209:   20(ivec4) Load 208
+             210:   77(ivec2) VectorShuffle 209 209 0 1
+             211:   77(ivec2) GroupNonUniformIMul 34 Reduce 210
+             212:     71(ptr) AccessChain 27(data) 207 38 30
+             213:     19(int) CompositeExtract 211 0
+                              Store 212 213
+             214:     71(ptr) AccessChain 27(data) 207 38 47
+             215:     19(int) CompositeExtract 211 1
+                              Store 214 215
+             216:      6(int) Load 8(invocation)
+             217:     78(ptr) AccessChain 27(data) 51 38
+             218:   20(ivec4) Load 217
+             219:   88(ivec3) VectorShuffle 218 218 0 1 2
+             220:   88(ivec3) GroupNonUniformIMul 34 Reduce 219
+             221:     71(ptr) AccessChain 27(data) 216 38 30
+             222:     19(int) CompositeExtract 220 0
+                              Store 221 222
+             223:     71(ptr) AccessChain 27(data) 216 38 47
+             224:     19(int) CompositeExtract 220 1
+                              Store 223 224
+             225:     71(ptr) AccessChain 27(data) 216 38 61
+             226:     19(int) CompositeExtract 220 2
+                              Store 225 226
              227:      6(int) Load 8(invocation)
-             228:    102(ptr) AccessChain 27(data) 59 49
-             229:   21(ivec4) Load 228
-             230:   21(ivec4) GroupNonUniformIMul 34 Reduce 229
-             231:    102(ptr) AccessChain 27(data) 227 49
+             228:     78(ptr) AccessChain 27(data) 65 38
+             229:   20(ivec4) Load 228
+             230:   20(ivec4) GroupNonUniformIMul 34 Reduce 229
+             231:     78(ptr) AccessChain 27(data) 227 38
                               Store 231 230
              232:      6(int) Load 8(invocation)
-             233:    125(ptr) AccessChain 27(data) 29 59 30
-             234:22(float64_t) Load 233
-             235:22(float64_t) GroupNonUniformFMul 34 Reduce 234
-             236:    125(ptr) AccessChain 27(data) 232 59 30
+             233:    105(ptr) AccessChain 27(data) 29 51 30
+             234:      6(int) Load 233
+             235:      6(int) GroupNonUniformIMul 34 Reduce 234
+             236:    105(ptr) AccessChain 27(data) 232 51 30
                               Store 236 235
              237:      6(int) Load 8(invocation)
-             238:    132(ptr) AccessChain 27(data) 38 59
-             239: 23(f64vec4) Load 238
-             240:131(f64vec2) VectorShuffle 239 239 0 1
-             241:131(f64vec2) GroupNonUniformFMul 34 Reduce 240
-             242:    132(ptr) AccessChain 27(data) 237 59
-             243: 23(f64vec4) Load 242
-             244: 23(f64vec4) VectorShuffle 243 241 4 5 2 3
-                              Store 242 244
-             245:      6(int) Load 8(invocation)
-             246:    132(ptr) AccessChain 27(data) 49 59
-             247: 23(f64vec4) Load 246
-             248:141(f64vec3) VectorShuffle 247 247 0 1 2
-             249:141(f64vec3) GroupNonUniformFMul 34 Reduce 248
-             250:    132(ptr) AccessChain 27(data) 245 59
-             251: 23(f64vec4) Load 250
-             252: 23(f64vec4) VectorShuffle 251 249 4 5 6 3
-                              Store 250 252
-             253:      6(int) Load 8(invocation)
-             254:    132(ptr) AccessChain 27(data) 59 59
-             255: 23(f64vec4) Load 254
-             256: 23(f64vec4) GroupNonUniformFMul 34 Reduce 255
-             257:    132(ptr) AccessChain 27(data) 253 59
-                              Store 257 256
-             258:      6(int) Load 8(invocation)
-             259:     31(ptr) AccessChain 27(data) 29 29 30
-             260:   17(float) Load 259
-             261:   17(float) GroupNonUniformFMin 34 Reduce 260
-             262:     31(ptr) AccessChain 27(data) 258 29 30
-                              Store 262 261
-             263:      6(int) Load 8(invocation)
-             264:     40(ptr) AccessChain 27(data) 38 29
-             265:   18(fvec4) Load 264
-             266:   39(fvec2) VectorShuffle 265 265 0 1
-             267:   39(fvec2) GroupNonUniformFMin 34 Reduce 266
-             268:     40(ptr) AccessChain 27(data) 263 29
-             269:   18(fvec4) Load 268
-             270:   18(fvec4) VectorShuffle 269 267 4 5 2 3
-                              Store 268 270
-             271:      6(int) Load 8(invocation)
-             272:     40(ptr) AccessChain 27(data) 49 29
-             273:   18(fvec4) Load 272
-             274:   50(fvec3) VectorShuffle 273 273 0 1 2
-             275:   50(fvec3) GroupNonUniformFMin 34 Reduce 274
-             276:     40(ptr) AccessChain 27(data) 271 29
-             277:   18(fvec4) Load 276
-             278:   18(fvec4) VectorShuffle 277 275 4 5 6 3
-                              Store 276 278
-             279:      6(int) Load 8(invocation)
-             280:     40(ptr) AccessChain 27(data) 59 29
-             281:   18(fvec4) Load 280
-             282:   18(fvec4) GroupNonUniformFMin 34 Reduce 281
-             283:     40(ptr) AccessChain 27(data) 279 29
-                              Store 283 282
-             284:      6(int) Load 8(invocation)
-             285:     65(ptr) AccessChain 27(data) 29 38 30
-             286:     19(int) Load 285
-             287:     19(int) GroupNonUniformSMin 34 Reduce 286
-             288:     65(ptr) AccessChain 27(data) 284 38 30
-                              Store 288 287
-             289:      6(int) Load 8(invocation)
-             290:     72(ptr) AccessChain 27(data) 38 38
-             291:   20(ivec4) Load 290
-             292:   71(ivec2) VectorShuffle 291 291 0 1
-             293:   71(ivec2) GroupNonUniformSMin 34 Reduce 292
-             294:     72(ptr) AccessChain 27(data) 289 38
-             295:   20(ivec4) Load 294
-             296:   20(ivec4) VectorShuffle 295 293 4 5 2 3
-                              Store 294 296
+             238:    112(ptr) AccessChain 27(data) 38 51
+             239:   21(ivec4) Load 238
+             240:  111(ivec2) VectorShuffle 239 239 0 1
+             241:  111(ivec2) GroupNonUniformIMul 34 Reduce 240
+             242:    105(ptr) AccessChain 27(data) 237 51 30
+             243:      6(int) CompositeExtract 241 0
+                              Store 242 243
+             244:    105(ptr) AccessChain 27(data) 237 51 47
+             245:      6(int) CompositeExtract 241 1
+                              Store 244 245
+             246:      6(int) Load 8(invocation)
+             247:    112(ptr) AccessChain 27(data) 51 51
+             248:   21(ivec4) Load 247
+             249:  122(ivec3) VectorShuffle 248 248 0 1 2
+             250:  122(ivec3) GroupNonUniformIMul 34 Reduce 249
+             251:    105(ptr) AccessChain 27(data) 246 51 30
+             252:      6(int) CompositeExtract 250 0
+                              Store 251 252
+             253:    105(ptr) AccessChain 27(data) 246 51 47
+             254:      6(int) CompositeExtract 250 1
+                              Store 253 254
+             255:    105(ptr) AccessChain 27(data) 246 51 61
+             256:      6(int) CompositeExtract 250 2
+                              Store 255 256
+             257:      6(int) Load 8(invocation)
+             258:    112(ptr) AccessChain 27(data) 65 51
+             259:   21(ivec4) Load 258
+             260:   21(ivec4) GroupNonUniformIMul 34 Reduce 259
+             261:    112(ptr) AccessChain 27(data) 257 51
+                              Store 261 260
+             262:      6(int) Load 8(invocation)
+             263:    139(ptr) AccessChain 27(data) 29 65 30
+             264:22(float64_t) Load 263
+             265:22(float64_t) GroupNonUniformFMul 34 Reduce 264
+             266:    139(ptr) AccessChain 27(data) 262 65 30
+                              Store 266 265
+             267:      6(int) Load 8(invocation)
+             268:    146(ptr) AccessChain 27(data) 38 65
+             269: 23(f64vec4) Load 268
+             270:145(f64vec2) VectorShuffle 269 269 0 1
+             271:145(f64vec2) GroupNonUniformFMul 34 Reduce 270
+             272:    139(ptr) AccessChain 27(data) 267 65 30
+             273:22(float64_t) CompositeExtract 271 0
+                              Store 272 273
+             274:    139(ptr) AccessChain 27(data) 267 65 47
+             275:22(float64_t) CompositeExtract 271 1
+                              Store 274 275
+             276:      6(int) Load 8(invocation)
+             277:    146(ptr) AccessChain 27(data) 51 65
+             278: 23(f64vec4) Load 277
+             279:156(f64vec3) VectorShuffle 278 278 0 1 2
+             280:156(f64vec3) GroupNonUniformFMul 34 Reduce 279
+             281:    139(ptr) AccessChain 27(data) 276 65 30
+             282:22(float64_t) CompositeExtract 280 0
+                              Store 281 282
+             283:    139(ptr) AccessChain 27(data) 276 65 47
+             284:22(float64_t) CompositeExtract 280 1
+                              Store 283 284
+             285:    139(ptr) AccessChain 27(data) 276 65 61
+             286:22(float64_t) CompositeExtract 280 2
+                              Store 285 286
+             287:      6(int) Load 8(invocation)
+             288:    146(ptr) AccessChain 27(data) 65 65
+             289: 23(f64vec4) Load 288
+             290: 23(f64vec4) GroupNonUniformFMul 34 Reduce 289
+             291:    146(ptr) AccessChain 27(data) 287 65
+                              Store 291 290
+             292:      6(int) Load 8(invocation)
+             293:     31(ptr) AccessChain 27(data) 29 29 30
+             294:   17(float) Load 293
+             295:   17(float) GroupNonUniformFMin 34 Reduce 294
+             296:     31(ptr) AccessChain 27(data) 292 29 30
+                              Store 296 295
              297:      6(int) Load 8(invocation)
-             298:     72(ptr) AccessChain 27(data) 49 38
-             299:   20(ivec4) Load 298
-             300:   81(ivec3) VectorShuffle 299 299 0 1 2
-             301:   81(ivec3) GroupNonUniformSMin 34 Reduce 300
-             302:     72(ptr) AccessChain 27(data) 297 38
-             303:   20(ivec4) Load 302
-             304:   20(ivec4) VectorShuffle 303 301 4 5 6 3
-                              Store 302 304
-             305:      6(int) Load 8(invocation)
-             306:     72(ptr) AccessChain 27(data) 59 38
-             307:   20(ivec4) Load 306
-             308:   20(ivec4) GroupNonUniformSMin 34 Reduce 307
-             309:     72(ptr) AccessChain 27(data) 305 38
-                              Store 309 308
-             310:      6(int) Load 8(invocation)
-             311:     95(ptr) AccessChain 27(data) 29 49 30
-             312:      6(int) Load 311
-             313:      6(int) GroupNonUniformUMin 34 Reduce 312
-             314:     95(ptr) AccessChain 27(data) 310 49 30
-                              Store 314 313
-             315:      6(int) Load 8(invocation)
-             316:    102(ptr) AccessChain 27(data) 38 49
-             317:   21(ivec4) Load 316
-             318:  101(ivec2) VectorShuffle 317 317 0 1
-             319:  101(ivec2) GroupNonUniformUMin 34 Reduce 318
-             320:    102(ptr) AccessChain 27(data) 315 49
-             321:   21(ivec4) Load 320
-             322:   21(ivec4) VectorShuffle 321 319 4 5 2 3
-                              Store 320 322
-             323:      6(int) Load 8(invocation)
-             324:    102(ptr) AccessChain 27(data) 49 49
-             325:   21(ivec4) Load 324
-             326:  111(ivec3) VectorShuffle 325 325 0 1 2
-             327:  111(ivec3) GroupNonUniformUMin 34 Reduce 326
-             328:    102(ptr) AccessChain 27(data) 323 49
-             329:   21(ivec4) Load 328
-             330:   21(ivec4) VectorShuffle 329 327 4 5 6 3
-                              Store 328 330
-             331:      6(int) Load 8(invocation)
-             332:    102(ptr) AccessChain 27(data) 59 49
-             333:   21(ivec4) Load 332
-             334:   21(ivec4) GroupNonUniformUMin 34 Reduce 333
-             335:    102(ptr) AccessChain 27(data) 331 49
-                              Store 335 334
+             298:     40(ptr) AccessChain 27(data) 38 29
+             299:   18(fvec4) Load 298
+             300:   39(fvec2) VectorShuffle 299 299 0 1
+             301:   39(fvec2) GroupNonUniformFMin 34 Reduce 300
+             302:     31(ptr) AccessChain 27(data) 297 29 30
+             303:   17(float) CompositeExtract 301 0
+                              Store 302 303
+             304:     31(ptr) AccessChain 27(data) 297 29 47
+             305:   17(float) CompositeExtract 301 1
+                              Store 304 305
+             306:      6(int) Load 8(invocation)
+             307:     40(ptr) AccessChain 27(data) 51 29
+             308:   18(fvec4) Load 307
+             309:   52(fvec3) VectorShuffle 308 308 0 1 2
+             310:   52(fvec3) GroupNonUniformFMin 34 Reduce 309
+             311:     31(ptr) AccessChain 27(data) 306 29 30
+             312:   17(float) CompositeExtract 310 0
+                              Store 311 312
+             313:     31(ptr) AccessChain 27(data) 306 29 47
+             314:   17(float) CompositeExtract 310 1
+                              Store 313 314
+             315:     31(ptr) AccessChain 27(data) 306 29 61
+             316:   17(float) CompositeExtract 310 2
+                              Store 315 316
+             317:      6(int) Load 8(invocation)
+             318:     40(ptr) AccessChain 27(data) 65 29
+             319:   18(fvec4) Load 318
+             320:   18(fvec4) GroupNonUniformFMin 34 Reduce 319
+             321:     40(ptr) AccessChain 27(data) 317 29
+                              Store 321 320
+             322:      6(int) Load 8(invocation)
+             323:     71(ptr) AccessChain 27(data) 29 38 30
+             324:     19(int) Load 323
+             325:     19(int) GroupNonUniformSMin 34 Reduce 324
+             326:     71(ptr) AccessChain 27(data) 322 38 30
+                              Store 326 325
+             327:      6(int) Load 8(invocation)
+             328:     78(ptr) AccessChain 27(data) 38 38
+             329:   20(ivec4) Load 328
+             330:   77(ivec2) VectorShuffle 329 329 0 1
+             331:   77(ivec2) GroupNonUniformSMin 34 Reduce 330
+             332:     71(ptr) AccessChain 27(data) 327 38 30
+             333:     19(int) CompositeExtract 331 0
+                              Store 332 333
+             334:     71(ptr) AccessChain 27(data) 327 38 47
+             335:     19(int) CompositeExtract 331 1
+                              Store 334 335
              336:      6(int) Load 8(invocation)
-             337:    125(ptr) AccessChain 27(data) 29 59 30
-             338:22(float64_t) Load 337
-             339:22(float64_t) GroupNonUniformFMin 34 Reduce 338
-             340:    125(ptr) AccessChain 27(data) 336 59 30
-                              Store 340 339
-             341:      6(int) Load 8(invocation)
-             342:    132(ptr) AccessChain 27(data) 38 59
-             343: 23(f64vec4) Load 342
-             344:131(f64vec2) VectorShuffle 343 343 0 1
-             345:131(f64vec2) GroupNonUniformFMin 34 Reduce 344
-             346:    132(ptr) AccessChain 27(data) 341 59
-             347: 23(f64vec4) Load 346
-             348: 23(f64vec4) VectorShuffle 347 345 4 5 2 3
-                              Store 346 348
-             349:      6(int) Load 8(invocation)
-             350:    132(ptr) AccessChain 27(data) 49 59
-             351: 23(f64vec4) Load 350
-             352:141(f64vec3) VectorShuffle 351 351 0 1 2
-             353:141(f64vec3) GroupNonUniformFMin 34 Reduce 352
-             354:    132(ptr) AccessChain 27(data) 349 59
-             355: 23(f64vec4) Load 354
-             356: 23(f64vec4) VectorShuffle 355 353 4 5 6 3
-                              Store 354 356
+             337:     78(ptr) AccessChain 27(data) 51 38
+             338:   20(ivec4) Load 337
+             339:   88(ivec3) VectorShuffle 338 338 0 1 2
+             340:   88(ivec3) GroupNonUniformSMin 34 Reduce 339
+             341:     71(ptr) AccessChain 27(data) 336 38 30
+             342:     19(int) CompositeExtract 340 0
+                              Store 341 342
+             343:     71(ptr) AccessChain 27(data) 336 38 47
+             344:     19(int) CompositeExtract 340 1
+                              Store 343 344
+             345:     71(ptr) AccessChain 27(data) 336 38 61
+             346:     19(int) CompositeExtract 340 2
+                              Store 345 346
+             347:      6(int) Load 8(invocation)
+             348:     78(ptr) AccessChain 27(data) 65 38
+             349:   20(ivec4) Load 348
+             350:   20(ivec4) GroupNonUniformSMin 34 Reduce 349
+             351:     78(ptr) AccessChain 27(data) 347 38
+                              Store 351 350
+             352:      6(int) Load 8(invocation)
+             353:    105(ptr) AccessChain 27(data) 29 51 30
+             354:      6(int) Load 353
+             355:      6(int) GroupNonUniformUMin 34 Reduce 354
+             356:    105(ptr) AccessChain 27(data) 352 51 30
+                              Store 356 355
              357:      6(int) Load 8(invocation)
-             358:    132(ptr) AccessChain 27(data) 59 59
-             359: 23(f64vec4) Load 358
-             360: 23(f64vec4) GroupNonUniformFMin 34 Reduce 359
-             361:    132(ptr) AccessChain 27(data) 357 59
-                              Store 361 360
-             362:      6(int) Load 8(invocation)
-             363:     31(ptr) AccessChain 27(data) 29 29 30
-             364:   17(float) Load 363
-             365:   17(float) GroupNonUniformFMax 34 Reduce 364
-             366:     31(ptr) AccessChain 27(data) 362 29 30
-                              Store 366 365
-             367:      6(int) Load 8(invocation)
-             368:     40(ptr) AccessChain 27(data) 38 29
-             369:   18(fvec4) Load 368
-             370:   39(fvec2) VectorShuffle 369 369 0 1
-             371:   39(fvec2) GroupNonUniformFMax 34 Reduce 370
-             372:     40(ptr) AccessChain 27(data) 367 29
-             373:   18(fvec4) Load 372
-             374:   18(fvec4) VectorShuffle 373 371 4 5 2 3
-                              Store 372 374
-             375:      6(int) Load 8(invocation)
-             376:     40(ptr) AccessChain 27(data) 49 29
-             377:   18(fvec4) Load 376
-             378:   50(fvec3) VectorShuffle 377 377 0 1 2
-             379:   50(fvec3) GroupNonUniformFMax 34 Reduce 378
-             380:     40(ptr) AccessChain 27(data) 375 29
-             381:   18(fvec4) Load 380
-             382:   18(fvec4) VectorShuffle 381 379 4 5 6 3
-                              Store 380 382
-             383:      6(int) Load 8(invocation)
-             384:     40(ptr) AccessChain 27(data) 59 29
-             385:   18(fvec4) Load 384
-             386:   18(fvec4) GroupNonUniformFMax 34 Reduce 385
-             387:     40(ptr) AccessChain 27(data) 383 29
-                              Store 387 386
-             388:      6(int) Load 8(invocation)
-             389:     65(ptr) AccessChain 27(data) 29 38 30
-             390:     19(int) Load 389
-             391:     19(int) GroupNonUniformSMax 34 Reduce 390
-             392:     65(ptr) AccessChain 27(data) 388 38 30
-                              Store 392 391
-             393:      6(int) Load 8(invocation)
-             394:     72(ptr) AccessChain 27(data) 38 38
-             395:   20(ivec4) Load 394
-             396:   71(ivec2) VectorShuffle 395 395 0 1
-             397:   71(ivec2) GroupNonUniformSMax 34 Reduce 396
-             398:     72(ptr) AccessChain 27(data) 393 38
-             399:   20(ivec4) Load 398
-             400:   20(ivec4) VectorShuffle 399 397 4 5 2 3
-                              Store 398 400
-             401:      6(int) Load 8(invocation)
-             402:     72(ptr) AccessChain 27(data) 49 38
-             403:   20(ivec4) Load 402
-             404:   81(ivec3) VectorShuffle 403 403 0 1 2
-             405:   81(ivec3) GroupNonUniformSMax 34 Reduce 404
-             406:     72(ptr) AccessChain 27(data) 401 38
-             407:   20(ivec4) Load 406
-             408:   20(ivec4) VectorShuffle 407 405 4 5 6 3
-                              Store 406 408
-             409:      6(int) Load 8(invocation)
-             410:     72(ptr) AccessChain 27(data) 59 38
-             411:   20(ivec4) Load 410
-             412:   20(ivec4) GroupNonUniformSMax 34 Reduce 411
-             413:     72(ptr) AccessChain 27(data) 409 38
-                              Store 413 412
-             414:      6(int) Load 8(invocation)
-             415:     95(ptr) AccessChain 27(data) 29 49 30
-             416:      6(int) Load 415
-             417:      6(int) GroupNonUniformUMax 34 Reduce 416
-             418:     95(ptr) AccessChain 27(data) 414 49 30
-                              Store 418 417
-             419:      6(int) Load 8(invocation)
-             420:    102(ptr) AccessChain 27(data) 38 49
-             421:   21(ivec4) Load 420
-             422:  101(ivec2) VectorShuffle 421 421 0 1
-             423:  101(ivec2) GroupNonUniformUMax 34 Reduce 422
-             424:    102(ptr) AccessChain 27(data) 419 49
-             425:   21(ivec4) Load 424
-             426:   21(ivec4) VectorShuffle 425 423 4 5 2 3
-                              Store 424 426
-             427:      6(int) Load 8(invocation)
-             428:    102(ptr) AccessChain 27(data) 49 49
-             429:   21(ivec4) Load 428
-             430:  111(ivec3) VectorShuffle 429 429 0 1 2
-             431:  111(ivec3) GroupNonUniformUMax 34 Reduce 430
-             432:    102(ptr) AccessChain 27(data) 427 49
-             433:   21(ivec4) Load 432
-             434:   21(ivec4) VectorShuffle 433 431 4 5 6 3
-                              Store 432 434
-             435:      6(int) Load 8(invocation)
-             436:    102(ptr) AccessChain 27(data) 59 49
-             437:   21(ivec4) Load 436
-             438:   21(ivec4) GroupNonUniformUMax 34 Reduce 437
-             439:    102(ptr) AccessChain 27(data) 435 49
-                              Store 439 438
-             440:      6(int) Load 8(invocation)
-             441:    125(ptr) AccessChain 27(data) 29 59 30
-             442:22(float64_t) Load 441
-             443:22(float64_t) GroupNonUniformFMax 34 Reduce 442
-             444:    125(ptr) AccessChain 27(data) 440 59 30
-                              Store 444 443
-             445:      6(int) Load 8(invocation)
-             446:    132(ptr) AccessChain 27(data) 38 59
-             447: 23(f64vec4) Load 446
-             448:131(f64vec2) VectorShuffle 447 447 0 1
-             449:131(f64vec2) GroupNonUniformFMax 34 Reduce 448
-             450:    132(ptr) AccessChain 27(data) 445 59
-             451: 23(f64vec4) Load 450
-             452: 23(f64vec4) VectorShuffle 451 449 4 5 2 3
-                              Store 450 452
-             453:      6(int) Load 8(invocation)
-             454:    132(ptr) AccessChain 27(data) 49 59
-             455: 23(f64vec4) Load 454
-             456:141(f64vec3) VectorShuffle 455 455 0 1 2
-             457:141(f64vec3) GroupNonUniformFMax 34 Reduce 456
-             458:    132(ptr) AccessChain 27(data) 453 59
-             459: 23(f64vec4) Load 458
-             460: 23(f64vec4) VectorShuffle 459 457 4 5 6 3
-                              Store 458 460
-             461:      6(int) Load 8(invocation)
-             462:    132(ptr) AccessChain 27(data) 59 59
-             463: 23(f64vec4) Load 462
-             464: 23(f64vec4) GroupNonUniformFMax 34 Reduce 463
-             465:    132(ptr) AccessChain 27(data) 461 59
-                              Store 465 464
-             466:      6(int) Load 8(invocation)
-             467:     65(ptr) AccessChain 27(data) 29 38 30
-             468:     19(int) Load 467
-             469:     19(int) GroupNonUniformBitwiseAnd 34 Reduce 468
-             470:     65(ptr) AccessChain 27(data) 466 38 30
-                              Store 470 469
-             471:      6(int) Load 8(invocation)
-             472:     72(ptr) AccessChain 27(data) 38 38
-             473:   20(ivec4) Load 472
-             474:   71(ivec2) VectorShuffle 473 473 0 1
-             475:   71(ivec2) GroupNonUniformBitwiseAnd 34 Reduce 474
-             476:     72(ptr) AccessChain 27(data) 471 38
-             477:   20(ivec4) Load 476
-             478:   20(ivec4) VectorShuffle 477 475 4 5 2 3
-                              Store 476 478
-             479:      6(int) Load 8(invocation)
-             480:     72(ptr) AccessChain 27(data) 49 38
-             481:   20(ivec4) Load 480
-             482:   81(ivec3) VectorShuffle 481 481 0 1 2
-             483:   81(ivec3) GroupNonUniformBitwiseAnd 34 Reduce 482
-             484:     72(ptr) AccessChain 27(data) 479 38
-             485:   20(ivec4) Load 484
-             486:   20(ivec4) VectorShuffle 485 483 4 5 6 3
-                              Store 484 486
-             487:      6(int) Load 8(invocation)
-             488:     72(ptr) AccessChain 27(data) 59 38
-             489:   20(ivec4) Load 488
-             490:   20(ivec4) GroupNonUniformBitwiseAnd 34 Reduce 489
-             491:     72(ptr) AccessChain 27(data) 487 38
-                              Store 491 490
-             492:      6(int) Load 8(invocation)
-             493:     95(ptr) AccessChain 27(data) 29 49 30
-             494:      6(int) Load 493
-             495:      6(int) GroupNonUniformBitwiseAnd 34 Reduce 494
-             496:     95(ptr) AccessChain 27(data) 492 49 30
-                              Store 496 495
+             358:    112(ptr) AccessChain 27(data) 38 51
+             359:   21(ivec4) Load 358
+             360:  111(ivec2) VectorShuffle 359 359 0 1
+             361:  111(ivec2) GroupNonUniformUMin 34 Reduce 360
+             362:    105(ptr) AccessChain 27(data) 357 51 30
+             363:      6(int) CompositeExtract 361 0
+                              Store 362 363
+             364:    105(ptr) AccessChain 27(data) 357 51 47
+             365:      6(int) CompositeExtract 361 1
+                              Store 364 365
+             366:      6(int) Load 8(invocation)
+             367:    112(ptr) AccessChain 27(data) 51 51
+             368:   21(ivec4) Load 367
+             369:  122(ivec3) VectorShuffle 368 368 0 1 2
+             370:  122(ivec3) GroupNonUniformUMin 34 Reduce 369
+             371:    105(ptr) AccessChain 27(data) 366 51 30
+             372:      6(int) CompositeExtract 370 0
+                              Store 371 372
+             373:    105(ptr) AccessChain 27(data) 366 51 47
+             374:      6(int) CompositeExtract 370 1
+                              Store 373 374
+             375:    105(ptr) AccessChain 27(data) 366 51 61
+             376:      6(int) CompositeExtract 370 2
+                              Store 375 376
+             377:      6(int) Load 8(invocation)
+             378:    112(ptr) AccessChain 27(data) 65 51
+             379:   21(ivec4) Load 378
+             380:   21(ivec4) GroupNonUniformUMin 34 Reduce 379
+             381:    112(ptr) AccessChain 27(data) 377 51
+                              Store 381 380
+             382:      6(int) Load 8(invocation)
+             383:    139(ptr) AccessChain 27(data) 29 65 30
+             384:22(float64_t) Load 383
+             385:22(float64_t) GroupNonUniformFMin 34 Reduce 384
+             386:    139(ptr) AccessChain 27(data) 382 65 30
+                              Store 386 385
+             387:      6(int) Load 8(invocation)
+             388:    146(ptr) AccessChain 27(data) 38 65
+             389: 23(f64vec4) Load 388
+             390:145(f64vec2) VectorShuffle 389 389 0 1
+             391:145(f64vec2) GroupNonUniformFMin 34 Reduce 390
+             392:    139(ptr) AccessChain 27(data) 387 65 30
+             393:22(float64_t) CompositeExtract 391 0
+                              Store 392 393
+             394:    139(ptr) AccessChain 27(data) 387 65 47
+             395:22(float64_t) CompositeExtract 391 1
+                              Store 394 395
+             396:      6(int) Load 8(invocation)
+             397:    146(ptr) AccessChain 27(data) 51 65
+             398: 23(f64vec4) Load 397
+             399:156(f64vec3) VectorShuffle 398 398 0 1 2
+             400:156(f64vec3) GroupNonUniformFMin 34 Reduce 399
+             401:    139(ptr) AccessChain 27(data) 396 65 30
+             402:22(float64_t) CompositeExtract 400 0
+                              Store 401 402
+             403:    139(ptr) AccessChain 27(data) 396 65 47
+             404:22(float64_t) CompositeExtract 400 1
+                              Store 403 404
+             405:    139(ptr) AccessChain 27(data) 396 65 61
+             406:22(float64_t) CompositeExtract 400 2
+                              Store 405 406
+             407:      6(int) Load 8(invocation)
+             408:    146(ptr) AccessChain 27(data) 65 65
+             409: 23(f64vec4) Load 408
+             410: 23(f64vec4) GroupNonUniformFMin 34 Reduce 409
+             411:    146(ptr) AccessChain 27(data) 407 65
+                              Store 411 410
+             412:      6(int) Load 8(invocation)
+             413:     31(ptr) AccessChain 27(data) 29 29 30
+             414:   17(float) Load 413
+             415:   17(float) GroupNonUniformFMax 34 Reduce 414
+             416:     31(ptr) AccessChain 27(data) 412 29 30
+                              Store 416 415
+             417:      6(int) Load 8(invocation)
+             418:     40(ptr) AccessChain 27(data) 38 29
+             419:   18(fvec4) Load 418
+             420:   39(fvec2) VectorShuffle 419 419 0 1
+             421:   39(fvec2) GroupNonUniformFMax 34 Reduce 420
+             422:     31(ptr) AccessChain 27(data) 417 29 30
+             423:   17(float) CompositeExtract 421 0
+                              Store 422 423
+             424:     31(ptr) AccessChain 27(data) 417 29 47
+             425:   17(float) CompositeExtract 421 1
+                              Store 424 425
+             426:      6(int) Load 8(invocation)
+             427:     40(ptr) AccessChain 27(data) 51 29
+             428:   18(fvec4) Load 427
+             429:   52(fvec3) VectorShuffle 428 428 0 1 2
+             430:   52(fvec3) GroupNonUniformFMax 34 Reduce 429
+             431:     31(ptr) AccessChain 27(data) 426 29 30
+             432:   17(float) CompositeExtract 430 0
+                              Store 431 432
+             433:     31(ptr) AccessChain 27(data) 426 29 47
+             434:   17(float) CompositeExtract 430 1
+                              Store 433 434
+             435:     31(ptr) AccessChain 27(data) 426 29 61
+             436:   17(float) CompositeExtract 430 2
+                              Store 435 436
+             437:      6(int) Load 8(invocation)
+             438:     40(ptr) AccessChain 27(data) 65 29
+             439:   18(fvec4) Load 438
+             440:   18(fvec4) GroupNonUniformFMax 34 Reduce 439
+             441:     40(ptr) AccessChain 27(data) 437 29
+                              Store 441 440
+             442:      6(int) Load 8(invocation)
+             443:     71(ptr) AccessChain 27(data) 29 38 30
+             444:     19(int) Load 443
+             445:     19(int) GroupNonUniformSMax 34 Reduce 444
+             446:     71(ptr) AccessChain 27(data) 442 38 30
+                              Store 446 445
+             447:      6(int) Load 8(invocation)
+             448:     78(ptr) AccessChain 27(data) 38 38
+             449:   20(ivec4) Load 448
+             450:   77(ivec2) VectorShuffle 449 449 0 1
+             451:   77(ivec2) GroupNonUniformSMax 34 Reduce 450
+             452:     71(ptr) AccessChain 27(data) 447 38 30
+             453:     19(int) CompositeExtract 451 0
+                              Store 452 453
+             454:     71(ptr) AccessChain 27(data) 447 38 47
+             455:     19(int) CompositeExtract 451 1
+                              Store 454 455
+             456:      6(int) Load 8(invocation)
+             457:     78(ptr) AccessChain 27(data) 51 38
+             458:   20(ivec4) Load 457
+             459:   88(ivec3) VectorShuffle 458 458 0 1 2
+             460:   88(ivec3) GroupNonUniformSMax 34 Reduce 459
+             461:     71(ptr) AccessChain 27(data) 456 38 30
+             462:     19(int) CompositeExtract 460 0
+                              Store 461 462
+             463:     71(ptr) AccessChain 27(data) 456 38 47
+             464:     19(int) CompositeExtract 460 1
+                              Store 463 464
+             465:     71(ptr) AccessChain 27(data) 456 38 61
+             466:     19(int) CompositeExtract 460 2
+                              Store 465 466
+             467:      6(int) Load 8(invocation)
+             468:     78(ptr) AccessChain 27(data) 65 38
+             469:   20(ivec4) Load 468
+             470:   20(ivec4) GroupNonUniformSMax 34 Reduce 469
+             471:     78(ptr) AccessChain 27(data) 467 38
+                              Store 471 470
+             472:      6(int) Load 8(invocation)
+             473:    105(ptr) AccessChain 27(data) 29 51 30
+             474:      6(int) Load 473
+             475:      6(int) GroupNonUniformUMax 34 Reduce 474
+             476:    105(ptr) AccessChain 27(data) 472 51 30
+                              Store 476 475
+             477:      6(int) Load 8(invocation)
+             478:    112(ptr) AccessChain 27(data) 38 51
+             479:   21(ivec4) Load 478
+             480:  111(ivec2) VectorShuffle 479 479 0 1
+             481:  111(ivec2) GroupNonUniformUMax 34 Reduce 480
+             482:    105(ptr) AccessChain 27(data) 477 51 30
+             483:      6(int) CompositeExtract 481 0
+                              Store 482 483
+             484:    105(ptr) AccessChain 27(data) 477 51 47
+             485:      6(int) CompositeExtract 481 1
+                              Store 484 485
+             486:      6(int) Load 8(invocation)
+             487:    112(ptr) AccessChain 27(data) 51 51
+             488:   21(ivec4) Load 487
+             489:  122(ivec3) VectorShuffle 488 488 0 1 2
+             490:  122(ivec3) GroupNonUniformUMax 34 Reduce 489
+             491:    105(ptr) AccessChain 27(data) 486 51 30
+             492:      6(int) CompositeExtract 490 0
+                              Store 491 492
+             493:    105(ptr) AccessChain 27(data) 486 51 47
+             494:      6(int) CompositeExtract 490 1
+                              Store 493 494
+             495:    105(ptr) AccessChain 27(data) 486 51 61
+             496:      6(int) CompositeExtract 490 2
+                              Store 495 496
              497:      6(int) Load 8(invocation)
-             498:    102(ptr) AccessChain 27(data) 38 49
+             498:    112(ptr) AccessChain 27(data) 65 51
              499:   21(ivec4) Load 498
-             500:  101(ivec2) VectorShuffle 499 499 0 1
-             501:  101(ivec2) GroupNonUniformBitwiseAnd 34 Reduce 500
-             502:    102(ptr) AccessChain 27(data) 497 49
-             503:   21(ivec4) Load 502
-             504:   21(ivec4) VectorShuffle 503 501 4 5 2 3
-                              Store 502 504
-             505:      6(int) Load 8(invocation)
-             506:    102(ptr) AccessChain 27(data) 49 49
-             507:   21(ivec4) Load 506
-             508:  111(ivec3) VectorShuffle 507 507 0 1 2
-             509:  111(ivec3) GroupNonUniformBitwiseAnd 34 Reduce 508
-             510:    102(ptr) AccessChain 27(data) 505 49
-             511:   21(ivec4) Load 510
-             512:   21(ivec4) VectorShuffle 511 509 4 5 6 3
-                              Store 510 512
-             513:      6(int) Load 8(invocation)
-             514:    102(ptr) AccessChain 27(data) 59 49
-             515:   21(ivec4) Load 514
-             516:   21(ivec4) GroupNonUniformBitwiseAnd 34 Reduce 515
-             517:    102(ptr) AccessChain 27(data) 513 49
-                              Store 517 516
-             518:      6(int) Load 8(invocation)
-             519:     65(ptr) AccessChain 27(data) 29 38 30
-             520:     19(int) Load 519
-             522:   521(bool) SLessThan 520 29
-             523:   521(bool) GroupNonUniformLogicalAnd 34 Reduce 522
-             524:     19(int) Select 523 38 29
-             525:     65(ptr) AccessChain 27(data) 518 38 30
-                              Store 525 524
-             526:      6(int) Load 8(invocation)
-             527:     72(ptr) AccessChain 27(data) 38 38
-             528:   20(ivec4) Load 527
-             529:   71(ivec2) VectorShuffle 528 528 0 1
-             532:  531(bvec2) SLessThan 529 530
-             533:  531(bvec2) GroupNonUniformLogicalAnd 34 Reduce 532
-             535:   71(ivec2) Select 533 534 530
-             536:     72(ptr) AccessChain 27(data) 526 38
-             537:   20(ivec4) Load 536
-             538:   20(ivec4) VectorShuffle 537 535 4 5 2 3
-                              Store 536 538
-             539:      6(int) Load 8(invocation)
-             540:     72(ptr) AccessChain 27(data) 38 38
-             541:   20(ivec4) Load 540
-             542:   81(ivec3) VectorShuffle 541 541 0 1 2
-             545:  544(bvec3) SLessThan 542 543
-             546:  544(bvec3) GroupNonUniformLogicalAnd 34 Reduce 545
-             548:   81(ivec3) Select 546 547 543
-             549:     72(ptr) AccessChain 27(data) 539 38
-             550:   20(ivec4) Load 549
-             551:   20(ivec4) VectorShuffle 550 548 4 5 6 3
-                              Store 549 551
-             552:      6(int) Load 8(invocation)
-             553:     72(ptr) AccessChain 27(data) 38 38
-             554:   20(ivec4) Load 553
-             557:  556(bvec4) SLessThan 554 555
-             558:  556(bvec4) GroupNonUniformLogicalAnd 34 Reduce 557
-             560:   20(ivec4) Select 558 559 555
-             561:     72(ptr) AccessChain 27(data) 552 38
+             500:   21(ivec4) GroupNonUniformUMax 34 Reduce 499
+             501:    112(ptr) AccessChain 27(data) 497 51
+                              Store 501 500
+             502:      6(int) Load 8(invocation)
+             503:    139(ptr) AccessChain 27(data) 29 65 30
+             504:22(float64_t) Load 503
+             505:22(float64_t) GroupNonUniformFMax 34 Reduce 504
+             506:    139(ptr) AccessChain 27(data) 502 65 30
+                              Store 506 505
+             507:      6(int) Load 8(invocation)
+             508:    146(ptr) AccessChain 27(data) 38 65
+             509: 23(f64vec4) Load 508
+             510:145(f64vec2) VectorShuffle 509 509 0 1
+             511:145(f64vec2) GroupNonUniformFMax 34 Reduce 510
+             512:    139(ptr) AccessChain 27(data) 507 65 30
+             513:22(float64_t) CompositeExtract 511 0
+                              Store 512 513
+             514:    139(ptr) AccessChain 27(data) 507 65 47
+             515:22(float64_t) CompositeExtract 511 1
+                              Store 514 515
+             516:      6(int) Load 8(invocation)
+             517:    146(ptr) AccessChain 27(data) 51 65
+             518: 23(f64vec4) Load 517
+             519:156(f64vec3) VectorShuffle 518 518 0 1 2
+             520:156(f64vec3) GroupNonUniformFMax 34 Reduce 519
+             521:    139(ptr) AccessChain 27(data) 516 65 30
+             522:22(float64_t) CompositeExtract 520 0
+                              Store 521 522
+             523:    139(ptr) AccessChain 27(data) 516 65 47
+             524:22(float64_t) CompositeExtract 520 1
+                              Store 523 524
+             525:    139(ptr) AccessChain 27(data) 516 65 61
+             526:22(float64_t) CompositeExtract 520 2
+                              Store 525 526
+             527:      6(int) Load 8(invocation)
+             528:    146(ptr) AccessChain 27(data) 65 65
+             529: 23(f64vec4) Load 528
+             530: 23(f64vec4) GroupNonUniformFMax 34 Reduce 529
+             531:    146(ptr) AccessChain 27(data) 527 65
+                              Store 531 530
+             532:      6(int) Load 8(invocation)
+             533:     71(ptr) AccessChain 27(data) 29 38 30
+             534:     19(int) Load 533
+             535:     19(int) GroupNonUniformBitwiseAnd 34 Reduce 534
+             536:     71(ptr) AccessChain 27(data) 532 38 30
+                              Store 536 535
+             537:      6(int) Load 8(invocation)
+             538:     78(ptr) AccessChain 27(data) 38 38
+             539:   20(ivec4) Load 538
+             540:   77(ivec2) VectorShuffle 539 539 0 1
+             541:   77(ivec2) GroupNonUniformBitwiseAnd 34 Reduce 540
+             542:     71(ptr) AccessChain 27(data) 537 38 30
+             543:     19(int) CompositeExtract 541 0
+                              Store 542 543
+             544:     71(ptr) AccessChain 27(data) 537 38 47
+             545:     19(int) CompositeExtract 541 1
+                              Store 544 545
+             546:      6(int) Load 8(invocation)
+             547:     78(ptr) AccessChain 27(data) 51 38
+             548:   20(ivec4) Load 547
+             549:   88(ivec3) VectorShuffle 548 548 0 1 2
+             550:   88(ivec3) GroupNonUniformBitwiseAnd 34 Reduce 549
+             551:     71(ptr) AccessChain 27(data) 546 38 30
+             552:     19(int) CompositeExtract 550 0
+                              Store 551 552
+             553:     71(ptr) AccessChain 27(data) 546 38 47
+             554:     19(int) CompositeExtract 550 1
+                              Store 553 554
+             555:     71(ptr) AccessChain 27(data) 546 38 61
+             556:     19(int) CompositeExtract 550 2
+                              Store 555 556
+             557:      6(int) Load 8(invocation)
+             558:     78(ptr) AccessChain 27(data) 65 38
+             559:   20(ivec4) Load 558
+             560:   20(ivec4) GroupNonUniformBitwiseAnd 34 Reduce 559
+             561:     78(ptr) AccessChain 27(data) 557 38
                               Store 561 560
              562:      6(int) Load 8(invocation)
-             563:     65(ptr) AccessChain 27(data) 29 38 30
-             564:     19(int) Load 563
-             565:     19(int) GroupNonUniformBitwiseOr 34 Reduce 564
-             566:     65(ptr) AccessChain 27(data) 562 38 30
+             563:    105(ptr) AccessChain 27(data) 29 51 30
+             564:      6(int) Load 563
+             565:      6(int) GroupNonUniformBitwiseAnd 34 Reduce 564
+             566:    105(ptr) AccessChain 27(data) 562 51 30
                               Store 566 565
              567:      6(int) Load 8(invocation)
-             568:     72(ptr) AccessChain 27(data) 38 38
-             569:   20(ivec4) Load 568
-             570:   71(ivec2) VectorShuffle 569 569 0 1
-             571:   71(ivec2) GroupNonUniformBitwiseOr 34 Reduce 570
-             572:     72(ptr) AccessChain 27(data) 567 38
-             573:   20(ivec4) Load 572
-             574:   20(ivec4) VectorShuffle 573 571 4 5 2 3
-                              Store 572 574
-             575:      6(int) Load 8(invocation)
-             576:     72(ptr) AccessChain 27(data) 49 38
-             577:   20(ivec4) Load 576
-             578:   81(ivec3) VectorShuffle 577 577 0 1 2
-             579:   81(ivec3) GroupNonUniformBitwiseOr 34 Reduce 578
-             580:     72(ptr) AccessChain 27(data) 575 38
-             581:   20(ivec4) Load 580
-             582:   20(ivec4) VectorShuffle 581 579 4 5 6 3
-                              Store 580 582
-             583:      6(int) Load 8(invocation)
-             584:     72(ptr) AccessChain 27(data) 59 38
-             585:   20(ivec4) Load 584
-             586:   20(ivec4) GroupNonUniformBitwiseOr 34 Reduce 585
-             587:     72(ptr) AccessChain 27(data) 583 38
-                              Store 587 586
-             588:      6(int) Load 8(invocation)
-             589:     95(ptr) AccessChain 27(data) 29 49 30
-             590:      6(int) Load 589
-             591:      6(int) GroupNonUniformBitwiseOr 34 Reduce 590
-             592:     95(ptr) AccessChain 27(data) 588 49 30
-                              Store 592 591
-             593:      6(int) Load 8(invocation)
-             594:    102(ptr) AccessChain 27(data) 38 49
-             595:   21(ivec4) Load 594
-             596:  101(ivec2) VectorShuffle 595 595 0 1
-             597:  101(ivec2) GroupNonUniformBitwiseOr 34 Reduce 596
-             598:    102(ptr) AccessChain 27(data) 593 49
-             599:   21(ivec4) Load 598
-             600:   21(ivec4) VectorShuffle 599 597 4 5 2 3
-                              Store 598 600
-             601:      6(int) Load 8(invocation)
-             602:    102(ptr) AccessChain 27(data) 49 49
-             603:   21(ivec4) Load 602
-             604:  111(ivec3) VectorShuffle 603 603 0 1 2
-             605:  111(ivec3) GroupNonUniformBitwiseOr 34 Reduce 604
-             606:    102(ptr) AccessChain 27(data) 601 49
-             607:   21(ivec4) Load 606
-             608:   21(ivec4) VectorShuffle 607 605 4 5 6 3
-                              Store 606 608
-             609:      6(int) Load 8(invocation)
-             610:    102(ptr) AccessChain 27(data) 59 49
-             611:   21(ivec4) Load 610
-             612:   21(ivec4) GroupNonUniformBitwiseOr 34 Reduce 611
-             613:    102(ptr) AccessChain 27(data) 609 49
-                              Store 613 612
+             568:    112(ptr) AccessChain 27(data) 38 51
+             569:   21(ivec4) Load 568
+             570:  111(ivec2) VectorShuffle 569 569 0 1
+             571:  111(ivec2) GroupNonUniformBitwiseAnd 34 Reduce 570
+             572:    105(ptr) AccessChain 27(data) 567 51 30
+             573:      6(int) CompositeExtract 571 0
+                              Store 572 573
+             574:    105(ptr) AccessChain 27(data) 567 51 47
+             575:      6(int) CompositeExtract 571 1
+                              Store 574 575
+             576:      6(int) Load 8(invocation)
+             577:    112(ptr) AccessChain 27(data) 51 51
+             578:   21(ivec4) Load 577
+             579:  122(ivec3) VectorShuffle 578 578 0 1 2
+             580:  122(ivec3) GroupNonUniformBitwiseAnd 34 Reduce 579
+             581:    105(ptr) AccessChain 27(data) 576 51 30
+             582:      6(int) CompositeExtract 580 0
+                              Store 581 582
+             583:    105(ptr) AccessChain 27(data) 576 51 47
+             584:      6(int) CompositeExtract 580 1
+                              Store 583 584
+             585:    105(ptr) AccessChain 27(data) 576 51 61
+             586:      6(int) CompositeExtract 580 2
+                              Store 585 586
+             587:      6(int) Load 8(invocation)
+             588:    112(ptr) AccessChain 27(data) 65 51
+             589:   21(ivec4) Load 588
+             590:   21(ivec4) GroupNonUniformBitwiseAnd 34 Reduce 589
+             591:    112(ptr) AccessChain 27(data) 587 51
+                              Store 591 590
+             592:      6(int) Load 8(invocation)
+             593:     71(ptr) AccessChain 27(data) 29 38 30
+             594:     19(int) Load 593
+             596:   595(bool) SLessThan 594 29
+             597:   595(bool) GroupNonUniformLogicalAnd 34 Reduce 596
+             598:     19(int) Select 597 38 29
+             599:     71(ptr) AccessChain 27(data) 592 38 30
+                              Store 599 598
+             600:      6(int) Load 8(invocation)
+             601:     78(ptr) AccessChain 27(data) 38 38
+             602:   20(ivec4) Load 601
+             603:   77(ivec2) VectorShuffle 602 602 0 1
+             606:  605(bvec2) SLessThan 603 604
+             607:  605(bvec2) GroupNonUniformLogicalAnd 34 Reduce 606
+             609:   77(ivec2) Select 607 608 604
+             610:     71(ptr) AccessChain 27(data) 600 38 30
+             611:     19(int) CompositeExtract 609 0
+                              Store 610 611
+             612:     71(ptr) AccessChain 27(data) 600 38 47
+             613:     19(int) CompositeExtract 609 1
+                              Store 612 613
              614:      6(int) Load 8(invocation)
-             615:     65(ptr) AccessChain 27(data) 29 38 30
-             616:     19(int) Load 615
-             617:   521(bool) SLessThan 616 29
-             618:   521(bool) GroupNonUniformLogicalOr 34 Reduce 617
-             619:     19(int) Select 618 38 29
-             620:     65(ptr) AccessChain 27(data) 614 38 30
-                              Store 620 619
-             621:      6(int) Load 8(invocation)
-             622:     72(ptr) AccessChain 27(data) 38 38
-             623:   20(ivec4) Load 622
-             624:   71(ivec2) VectorShuffle 623 623 0 1
-             625:  531(bvec2) SLessThan 624 530
-             626:  531(bvec2) GroupNonUniformLogicalOr 34 Reduce 625
-             627:   71(ivec2) Select 626 534 530
-             628:     72(ptr) AccessChain 27(data) 621 38
-             629:   20(ivec4) Load 628
-             630:   20(ivec4) VectorShuffle 629 627 4 5 2 3
-                              Store 628 630
-             631:      6(int) Load 8(invocation)
-             632:     72(ptr) AccessChain 27(data) 38 38
-             633:   20(ivec4) Load 632
-             634:   81(ivec3) VectorShuffle 633 633 0 1 2
-             635:  544(bvec3) SLessThan 634 543
-             636:  544(bvec3) GroupNonUniformLogicalOr 34 Reduce 635
-             637:   81(ivec3) Select 636 547 543
-             638:     72(ptr) AccessChain 27(data) 631 38
-             639:   20(ivec4) Load 638
-             640:   20(ivec4) VectorShuffle 639 637 4 5 6 3
-                              Store 638 640
-             641:      6(int) Load 8(invocation)
-             642:     72(ptr) AccessChain 27(data) 38 38
-             643:   20(ivec4) Load 642
-             644:  556(bvec4) SLessThan 643 555
-             645:  556(bvec4) GroupNonUniformLogicalOr 34 Reduce 644
-             646:   20(ivec4) Select 645 559 555
-             647:     72(ptr) AccessChain 27(data) 641 38
-                              Store 647 646
-             648:      6(int) Load 8(invocation)
-             649:     65(ptr) AccessChain 27(data) 29 38 30
-             650:     19(int) Load 649
-             651:     19(int) GroupNonUniformBitwiseXor 34 Reduce 650
-             652:     65(ptr) AccessChain 27(data) 648 38 30
-                              Store 652 651
-             653:      6(int) Load 8(invocation)
-             654:     72(ptr) AccessChain 27(data) 38 38
-             655:   20(ivec4) Load 654
-             656:   71(ivec2) VectorShuffle 655 655 0 1
-             657:   71(ivec2) GroupNonUniformBitwiseXor 34 Reduce 656
-             658:     72(ptr) AccessChain 27(data) 653 38
-             659:   20(ivec4) Load 658
-             660:   20(ivec4) VectorShuffle 659 657 4 5 2 3
-                              Store 658 660
-             661:      6(int) Load 8(invocation)
-             662:     72(ptr) AccessChain 27(data) 49 38
-             663:   20(ivec4) Load 662
-             664:   81(ivec3) VectorShuffle 663 663 0 1 2
-             665:   81(ivec3) GroupNonUniformBitwiseXor 34 Reduce 664
-             666:     72(ptr) AccessChain 27(data) 661 38
+             615:     78(ptr) AccessChain 27(data) 38 38
+             616:   20(ivec4) Load 615
+             617:   88(ivec3) VectorShuffle 616 616 0 1 2
+             620:  619(bvec3) SLessThan 617 618
+             621:  619(bvec3) GroupNonUniformLogicalAnd 34 Reduce 620
+             623:   88(ivec3) Select 621 622 618
+             624:     71(ptr) AccessChain 27(data) 614 38 30
+             625:     19(int) CompositeExtract 623 0
+                              Store 624 625
+             626:     71(ptr) AccessChain 27(data) 614 38 47
+             627:     19(int) CompositeExtract 623 1
+                              Store 626 627
+             628:     71(ptr) AccessChain 27(data) 614 38 61
+             629:     19(int) CompositeExtract 623 2
+                              Store 628 629
+             630:      6(int) Load 8(invocation)
+             631:     78(ptr) AccessChain 27(data) 38 38
+             632:   20(ivec4) Load 631
+             635:  634(bvec4) SLessThan 632 633
+             636:  634(bvec4) GroupNonUniformLogicalAnd 34 Reduce 635
+             638:   20(ivec4) Select 636 637 633
+             639:     78(ptr) AccessChain 27(data) 630 38
+                              Store 639 638
+             640:      6(int) Load 8(invocation)
+             641:     71(ptr) AccessChain 27(data) 29 38 30
+             642:     19(int) Load 641
+             643:     19(int) GroupNonUniformBitwiseOr 34 Reduce 642
+             644:     71(ptr) AccessChain 27(data) 640 38 30
+                              Store 644 643
+             645:      6(int) Load 8(invocation)
+             646:     78(ptr) AccessChain 27(data) 38 38
+             647:   20(ivec4) Load 646
+             648:   77(ivec2) VectorShuffle 647 647 0 1
+             649:   77(ivec2) GroupNonUniformBitwiseOr 34 Reduce 648
+             650:     71(ptr) AccessChain 27(data) 645 38 30
+             651:     19(int) CompositeExtract 649 0
+                              Store 650 651
+             652:     71(ptr) AccessChain 27(data) 645 38 47
+             653:     19(int) CompositeExtract 649 1
+                              Store 652 653
+             654:      6(int) Load 8(invocation)
+             655:     78(ptr) AccessChain 27(data) 51 38
+             656:   20(ivec4) Load 655
+             657:   88(ivec3) VectorShuffle 656 656 0 1 2
+             658:   88(ivec3) GroupNonUniformBitwiseOr 34 Reduce 657
+             659:     71(ptr) AccessChain 27(data) 654 38 30
+             660:     19(int) CompositeExtract 658 0
+                              Store 659 660
+             661:     71(ptr) AccessChain 27(data) 654 38 47
+             662:     19(int) CompositeExtract 658 1
+                              Store 661 662
+             663:     71(ptr) AccessChain 27(data) 654 38 61
+             664:     19(int) CompositeExtract 658 2
+                              Store 663 664
+             665:      6(int) Load 8(invocation)
+             666:     78(ptr) AccessChain 27(data) 65 38
              667:   20(ivec4) Load 666
-             668:   20(ivec4) VectorShuffle 667 665 4 5 6 3
-                              Store 666 668
-             669:      6(int) Load 8(invocation)
-             670:     72(ptr) AccessChain 27(data) 59 38
-             671:   20(ivec4) Load 670
-             672:   20(ivec4) GroupNonUniformBitwiseXor 34 Reduce 671
-             673:     72(ptr) AccessChain 27(data) 669 38
-                              Store 673 672
-             674:      6(int) Load 8(invocation)
-             675:     95(ptr) AccessChain 27(data) 29 49 30
-             676:      6(int) Load 675
-             677:      6(int) GroupNonUniformBitwiseXor 34 Reduce 676
-             678:     95(ptr) AccessChain 27(data) 674 49 30
-                              Store 678 677
-             679:      6(int) Load 8(invocation)
-             680:    102(ptr) AccessChain 27(data) 38 49
-             681:   21(ivec4) Load 680
-             682:  101(ivec2) VectorShuffle 681 681 0 1
-             683:  101(ivec2) GroupNonUniformBitwiseXor 34 Reduce 682
-             684:    102(ptr) AccessChain 27(data) 679 49
-             685:   21(ivec4) Load 684
-             686:   21(ivec4) VectorShuffle 685 683 4 5 2 3
-                              Store 684 686
-             687:      6(int) Load 8(invocation)
-             688:    102(ptr) AccessChain 27(data) 49 49
-             689:   21(ivec4) Load 688
-             690:  111(ivec3) VectorShuffle 689 689 0 1 2
-             691:  111(ivec3) GroupNonUniformBitwiseXor 34 Reduce 690
-             692:    102(ptr) AccessChain 27(data) 687 49
-             693:   21(ivec4) Load 692
-             694:   21(ivec4) VectorShuffle 693 691 4 5 6 3
-                              Store 692 694
+             668:   20(ivec4) GroupNonUniformBitwiseOr 34 Reduce 667
+             669:     78(ptr) AccessChain 27(data) 665 38
+                              Store 669 668
+             670:      6(int) Load 8(invocation)
+             671:    105(ptr) AccessChain 27(data) 29 51 30
+             672:      6(int) Load 671
+             673:      6(int) GroupNonUniformBitwiseOr 34 Reduce 672
+             674:    105(ptr) AccessChain 27(data) 670 51 30
+                              Store 674 673
+             675:      6(int) Load 8(invocation)
+             676:    112(ptr) AccessChain 27(data) 38 51
+             677:   21(ivec4) Load 676
+             678:  111(ivec2) VectorShuffle 677 677 0 1
+             679:  111(ivec2) GroupNonUniformBitwiseOr 34 Reduce 678
+             680:    105(ptr) AccessChain 27(data) 675 51 30
+             681:      6(int) CompositeExtract 679 0
+                              Store 680 681
+             682:    105(ptr) AccessChain 27(data) 675 51 47
+             683:      6(int) CompositeExtract 679 1
+                              Store 682 683
+             684:      6(int) Load 8(invocation)
+             685:    112(ptr) AccessChain 27(data) 51 51
+             686:   21(ivec4) Load 685
+             687:  122(ivec3) VectorShuffle 686 686 0 1 2
+             688:  122(ivec3) GroupNonUniformBitwiseOr 34 Reduce 687
+             689:    105(ptr) AccessChain 27(data) 684 51 30
+             690:      6(int) CompositeExtract 688 0
+                              Store 689 690
+             691:    105(ptr) AccessChain 27(data) 684 51 47
+             692:      6(int) CompositeExtract 688 1
+                              Store 691 692
+             693:    105(ptr) AccessChain 27(data) 684 51 61
+             694:      6(int) CompositeExtract 688 2
+                              Store 693 694
              695:      6(int) Load 8(invocation)
-             696:    102(ptr) AccessChain 27(data) 59 49
+             696:    112(ptr) AccessChain 27(data) 65 51
              697:   21(ivec4) Load 696
-             698:   21(ivec4) GroupNonUniformBitwiseXor 34 Reduce 697
-             699:    102(ptr) AccessChain 27(data) 695 49
+             698:   21(ivec4) GroupNonUniformBitwiseOr 34 Reduce 697
+             699:    112(ptr) AccessChain 27(data) 695 51
                               Store 699 698
              700:      6(int) Load 8(invocation)
-             701:     65(ptr) AccessChain 27(data) 29 38 30
+             701:     71(ptr) AccessChain 27(data) 29 38 30
              702:     19(int) Load 701
-             703:   521(bool) SLessThan 702 29
-             704:   521(bool) GroupNonUniformLogicalXor 34 Reduce 703
+             703:   595(bool) SLessThan 702 29
+             704:   595(bool) GroupNonUniformLogicalOr 34 Reduce 703
              705:     19(int) Select 704 38 29
-             706:     65(ptr) AccessChain 27(data) 700 38 30
+             706:     71(ptr) AccessChain 27(data) 700 38 30
                               Store 706 705
              707:      6(int) Load 8(invocation)
-             708:     72(ptr) AccessChain 27(data) 38 38
+             708:     78(ptr) AccessChain 27(data) 38 38
              709:   20(ivec4) Load 708
-             710:   71(ivec2) VectorShuffle 709 709 0 1
-             711:  531(bvec2) SLessThan 710 530
-             712:  531(bvec2) GroupNonUniformLogicalXor 34 Reduce 711
-             713:   71(ivec2) Select 712 534 530
-             714:     72(ptr) AccessChain 27(data) 707 38
-             715:   20(ivec4) Load 714
-             716:   20(ivec4) VectorShuffle 715 713 4 5 2 3
-                              Store 714 716
-             717:      6(int) Load 8(invocation)
-             718:     72(ptr) AccessChain 27(data) 38 38
-             719:   20(ivec4) Load 718
-             720:   81(ivec3) VectorShuffle 719 719 0 1 2
-             721:  544(bvec3) SLessThan 720 543
-             722:  544(bvec3) GroupNonUniformLogicalXor 34 Reduce 721
-             723:   81(ivec3) Select 722 547 543
-             724:     72(ptr) AccessChain 27(data) 717 38
-             725:   20(ivec4) Load 724
-             726:   20(ivec4) VectorShuffle 725 723 4 5 6 3
-                              Store 724 726
-             727:      6(int) Load 8(invocation)
-             728:     72(ptr) AccessChain 27(data) 38 38
-             729:   20(ivec4) Load 728
-             730:  556(bvec4) SLessThan 729 555
-             731:  556(bvec4) GroupNonUniformLogicalXor 34 Reduce 730
-             732:   20(ivec4) Select 731 559 555
-             733:     72(ptr) AccessChain 27(data) 727 38
-                              Store 733 732
-             734:      6(int) Load 8(invocation)
-             735:     31(ptr) AccessChain 27(data) 29 29 30
-             736:   17(float) Load 735
-             737:   17(float) GroupNonUniformFAdd 34 InclusiveScan 736
-             738:     31(ptr) AccessChain 27(data) 734 29 30
-                              Store 738 737
-             739:      6(int) Load 8(invocation)
-             740:     40(ptr) AccessChain 27(data) 38 29
-             741:   18(fvec4) Load 740
-             742:   39(fvec2) VectorShuffle 741 741 0 1
-             743:   39(fvec2) GroupNonUniformFAdd 34 InclusiveScan 742
-             744:     40(ptr) AccessChain 27(data) 739 29
-             745:   18(fvec4) Load 744
-             746:   18(fvec4) VectorShuffle 745 743 4 5 2 3
-                              Store 744 746
-             747:      6(int) Load 8(invocation)
-             748:     40(ptr) AccessChain 27(data) 49 29
-             749:   18(fvec4) Load 748
-             750:   50(fvec3) VectorShuffle 749 749 0 1 2
-             751:   50(fvec3) GroupNonUniformFAdd 34 InclusiveScan 750
-             752:     40(ptr) AccessChain 27(data) 747 29
-             753:   18(fvec4) Load 752
-             754:   18(fvec4) VectorShuffle 753 751 4 5 6 3
-                              Store 752 754
-             755:      6(int) Load 8(invocation)
-             756:     40(ptr) AccessChain 27(data) 59 29
-             757:   18(fvec4) Load 756
-             758:   18(fvec4) GroupNonUniformFAdd 34 InclusiveScan 757
-             759:     40(ptr) AccessChain 27(data) 755 29
-                              Store 759 758
-             760:      6(int) Load 8(invocation)
-             761:     65(ptr) AccessChain 27(data) 29 38 30
-             762:     19(int) Load 761
-             763:     19(int) GroupNonUniformIAdd 34 InclusiveScan 762
-             764:     65(ptr) AccessChain 27(data) 760 38 30
-                              Store 764 763
-             765:      6(int) Load 8(invocation)
-             766:     72(ptr) AccessChain 27(data) 38 38
-             767:   20(ivec4) Load 766
-             768:   71(ivec2) VectorShuffle 767 767 0 1
-             769:   71(ivec2) GroupNonUniformIAdd 34 InclusiveScan 768
-             770:     72(ptr) AccessChain 27(data) 765 38
-             771:   20(ivec4) Load 770
-             772:   20(ivec4) VectorShuffle 771 769 4 5 2 3
-                              Store 770 772
+             710:   77(ivec2) VectorShuffle 709 709 0 1
+             711:  605(bvec2) SLessThan 710 604
+             712:  605(bvec2) GroupNonUniformLogicalOr 34 Reduce 711
+             713:   77(ivec2) Select 712 608 604
+             714:     71(ptr) AccessChain 27(data) 707 38 30
+             715:     19(int) CompositeExtract 713 0
+                              Store 714 715
+             716:     71(ptr) AccessChain 27(data) 707 38 47
+             717:     19(int) CompositeExtract 713 1
+                              Store 716 717
+             718:      6(int) Load 8(invocation)
+             719:     78(ptr) AccessChain 27(data) 38 38
+             720:   20(ivec4) Load 719
+             721:   88(ivec3) VectorShuffle 720 720 0 1 2
+             722:  619(bvec3) SLessThan 721 618
+             723:  619(bvec3) GroupNonUniformLogicalOr 34 Reduce 722
+             724:   88(ivec3) Select 723 622 618
+             725:     71(ptr) AccessChain 27(data) 718 38 30
+             726:     19(int) CompositeExtract 724 0
+                              Store 725 726
+             727:     71(ptr) AccessChain 27(data) 718 38 47
+             728:     19(int) CompositeExtract 724 1
+                              Store 727 728
+             729:     71(ptr) AccessChain 27(data) 718 38 61
+             730:     19(int) CompositeExtract 724 2
+                              Store 729 730
+             731:      6(int) Load 8(invocation)
+             732:     78(ptr) AccessChain 27(data) 38 38
+             733:   20(ivec4) Load 732
+             734:  634(bvec4) SLessThan 733 633
+             735:  634(bvec4) GroupNonUniformLogicalOr 34 Reduce 734
+             736:   20(ivec4) Select 735 637 633
+             737:     78(ptr) AccessChain 27(data) 731 38
+                              Store 737 736
+             738:      6(int) Load 8(invocation)
+             739:     71(ptr) AccessChain 27(data) 29 38 30
+             740:     19(int) Load 739
+             741:     19(int) GroupNonUniformBitwiseXor 34 Reduce 740
+             742:     71(ptr) AccessChain 27(data) 738 38 30
+                              Store 742 741
+             743:      6(int) Load 8(invocation)
+             744:     78(ptr) AccessChain 27(data) 38 38
+             745:   20(ivec4) Load 744
+             746:   77(ivec2) VectorShuffle 745 745 0 1
+             747:   77(ivec2) GroupNonUniformBitwiseXor 34 Reduce 746
+             748:     71(ptr) AccessChain 27(data) 743 38 30
+             749:     19(int) CompositeExtract 747 0
+                              Store 748 749
+             750:     71(ptr) AccessChain 27(data) 743 38 47
+             751:     19(int) CompositeExtract 747 1
+                              Store 750 751
+             752:      6(int) Load 8(invocation)
+             753:     78(ptr) AccessChain 27(data) 51 38
+             754:   20(ivec4) Load 753
+             755:   88(ivec3) VectorShuffle 754 754 0 1 2
+             756:   88(ivec3) GroupNonUniformBitwiseXor 34 Reduce 755
+             757:     71(ptr) AccessChain 27(data) 752 38 30
+             758:     19(int) CompositeExtract 756 0
+                              Store 757 758
+             759:     71(ptr) AccessChain 27(data) 752 38 47
+             760:     19(int) CompositeExtract 756 1
+                              Store 759 760
+             761:     71(ptr) AccessChain 27(data) 752 38 61
+             762:     19(int) CompositeExtract 756 2
+                              Store 761 762
+             763:      6(int) Load 8(invocation)
+             764:     78(ptr) AccessChain 27(data) 65 38
+             765:   20(ivec4) Load 764
+             766:   20(ivec4) GroupNonUniformBitwiseXor 34 Reduce 765
+             767:     78(ptr) AccessChain 27(data) 763 38
+                              Store 767 766
+             768:      6(int) Load 8(invocation)
+             769:    105(ptr) AccessChain 27(data) 29 51 30
+             770:      6(int) Load 769
+             771:      6(int) GroupNonUniformBitwiseXor 34 Reduce 770
+             772:    105(ptr) AccessChain 27(data) 768 51 30
+                              Store 772 771
              773:      6(int) Load 8(invocation)
-             774:     72(ptr) AccessChain 27(data) 49 38
-             775:   20(ivec4) Load 774
-             776:   81(ivec3) VectorShuffle 775 775 0 1 2
-             777:   81(ivec3) GroupNonUniformIAdd 34 InclusiveScan 776
-             778:     72(ptr) AccessChain 27(data) 773 38
-             779:   20(ivec4) Load 778
-             780:   20(ivec4) VectorShuffle 779 777 4 5 6 3
-                              Store 778 780
-             781:      6(int) Load 8(invocation)
-             782:     72(ptr) AccessChain 27(data) 59 38
-             783:   20(ivec4) Load 782
-             784:   20(ivec4) GroupNonUniformIAdd 34 InclusiveScan 783
-             785:     72(ptr) AccessChain 27(data) 781 38
-                              Store 785 784
-             786:      6(int) Load 8(invocation)
-             787:     95(ptr) AccessChain 27(data) 29 49 30
-             788:      6(int) Load 787
-             789:      6(int) GroupNonUniformIAdd 34 InclusiveScan 788
-             790:     95(ptr) AccessChain 27(data) 786 49 30
-                              Store 790 789
-             791:      6(int) Load 8(invocation)
-             792:    102(ptr) AccessChain 27(data) 38 49
-             793:   21(ivec4) Load 792
-             794:  101(ivec2) VectorShuffle 793 793 0 1
-             795:  101(ivec2) GroupNonUniformIAdd 34 InclusiveScan 794
-             796:    102(ptr) AccessChain 27(data) 791 49
-             797:   21(ivec4) Load 796
-             798:   21(ivec4) VectorShuffle 797 795 4 5 2 3
-                              Store 796 798
-             799:      6(int) Load 8(invocation)
-             800:    102(ptr) AccessChain 27(data) 49 49
-             801:   21(ivec4) Load 800
-             802:  111(ivec3) VectorShuffle 801 801 0 1 2
-             803:  111(ivec3) GroupNonUniformIAdd 34 InclusiveScan 802
-             804:    102(ptr) AccessChain 27(data) 799 49
-             805:   21(ivec4) Load 804
-             806:   21(ivec4) VectorShuffle 805 803 4 5 6 3
-                              Store 804 806
-             807:      6(int) Load 8(invocation)
-             808:    102(ptr) AccessChain 27(data) 59 49
-             809:   21(ivec4) Load 808
-             810:   21(ivec4) GroupNonUniformIAdd 34 InclusiveScan 809
-             811:    102(ptr) AccessChain 27(data) 807 49
-                              Store 811 810
-             812:      6(int) Load 8(invocation)
-             813:    125(ptr) AccessChain 27(data) 29 59 30
-             814:22(float64_t) Load 813
-             815:22(float64_t) GroupNonUniformFAdd 34 InclusiveScan 814
-             816:    125(ptr) AccessChain 27(data) 812 59 30
-                              Store 816 815
-             817:      6(int) Load 8(invocation)
-             818:    132(ptr) AccessChain 27(data) 38 59
-             819: 23(f64vec4) Load 818
-             820:131(f64vec2) VectorShuffle 819 819 0 1
-             821:131(f64vec2) GroupNonUniformFAdd 34 InclusiveScan 820
-             822:    132(ptr) AccessChain 27(data) 817 59
-             823: 23(f64vec4) Load 822
-             824: 23(f64vec4) VectorShuffle 823 821 4 5 2 3
-                              Store 822 824
-             825:      6(int) Load 8(invocation)
-             826:    132(ptr) AccessChain 27(data) 49 59
-             827: 23(f64vec4) Load 826
-             828:141(f64vec3) VectorShuffle 827 827 0 1 2
-             829:141(f64vec3) GroupNonUniformFAdd 34 InclusiveScan 828
-             830:    132(ptr) AccessChain 27(data) 825 59
-             831: 23(f64vec4) Load 830
-             832: 23(f64vec4) VectorShuffle 831 829 4 5 6 3
-                              Store 830 832
-             833:      6(int) Load 8(invocation)
-             834:    132(ptr) AccessChain 27(data) 59 59
-             835: 23(f64vec4) Load 834
-             836: 23(f64vec4) GroupNonUniformFAdd 34 InclusiveScan 835
-             837:    132(ptr) AccessChain 27(data) 833 59
-                              Store 837 836
-             838:      6(int) Load 8(invocation)
-             839:     31(ptr) AccessChain 27(data) 29 29 30
-             840:   17(float) Load 839
-             841:   17(float) GroupNonUniformFMul 34 InclusiveScan 840
-             842:     31(ptr) AccessChain 27(data) 838 29 30
-                              Store 842 841
-             843:      6(int) Load 8(invocation)
-             844:     40(ptr) AccessChain 27(data) 38 29
-             845:   18(fvec4) Load 844
-             846:   39(fvec2) VectorShuffle 845 845 0 1
-             847:   39(fvec2) GroupNonUniformFMul 34 InclusiveScan 846
-             848:     40(ptr) AccessChain 27(data) 843 29
-             849:   18(fvec4) Load 848
-             850:   18(fvec4) VectorShuffle 849 847 4 5 2 3
-                              Store 848 850
-             851:      6(int) Load 8(invocation)
-             852:     40(ptr) AccessChain 27(data) 49 29
-             853:   18(fvec4) Load 852
-             854:   50(fvec3) VectorShuffle 853 853 0 1 2
-             855:   50(fvec3) GroupNonUniformFMul 34 InclusiveScan 854
-             856:     40(ptr) AccessChain 27(data) 851 29
-             857:   18(fvec4) Load 856
-             858:   18(fvec4) VectorShuffle 857 855 4 5 6 3
-                              Store 856 858
-             859:      6(int) Load 8(invocation)
-             860:     40(ptr) AccessChain 27(data) 59 29
-             861:   18(fvec4) Load 860
-             862:   18(fvec4) GroupNonUniformFMul 34 InclusiveScan 861
-             863:     40(ptr) AccessChain 27(data) 859 29
-                              Store 863 862
-             864:      6(int) Load 8(invocation)
-             865:     65(ptr) AccessChain 27(data) 29 38 30
-             866:     19(int) Load 865
-             867:     19(int) GroupNonUniformIMul 34 InclusiveScan 866
-             868:     65(ptr) AccessChain 27(data) 864 38 30
-                              Store 868 867
-             869:      6(int) Load 8(invocation)
-             870:     72(ptr) AccessChain 27(data) 38 38
-             871:   20(ivec4) Load 870
-             872:   71(ivec2) VectorShuffle 871 871 0 1
-             873:   71(ivec2) GroupNonUniformIMul 34 InclusiveScan 872
-             874:     72(ptr) AccessChain 27(data) 869 38
-             875:   20(ivec4) Load 874
-             876:   20(ivec4) VectorShuffle 875 873 4 5 2 3
-                              Store 874 876
-             877:      6(int) Load 8(invocation)
-             878:     72(ptr) AccessChain 27(data) 49 38
-             879:   20(ivec4) Load 878
-             880:   81(ivec3) VectorShuffle 879 879 0 1 2
-             881:   81(ivec3) GroupNonUniformIMul 34 InclusiveScan 880
-             882:     72(ptr) AccessChain 27(data) 877 38
-             883:   20(ivec4) Load 882
-             884:   20(ivec4) VectorShuffle 883 881 4 5 6 3
-                              Store 882 884
-             885:      6(int) Load 8(invocation)
-             886:     72(ptr) AccessChain 27(data) 59 38
-             887:   20(ivec4) Load 886
-             888:   20(ivec4) GroupNonUniformIMul 34 InclusiveScan 887
-             889:     72(ptr) AccessChain 27(data) 885 38
-                              Store 889 888
-             890:      6(int) Load 8(invocation)
-             891:     95(ptr) AccessChain 27(data) 29 49 30
-             892:      6(int) Load 891
-             893:      6(int) GroupNonUniformIMul 34 InclusiveScan 892
-             894:     95(ptr) AccessChain 27(data) 890 49 30
-                              Store 894 893
-             895:      6(int) Load 8(invocation)
-             896:    102(ptr) AccessChain 27(data) 38 49
-             897:   21(ivec4) Load 896
-             898:  101(ivec2) VectorShuffle 897 897 0 1
-             899:  101(ivec2) GroupNonUniformIMul 34 InclusiveScan 898
-             900:    102(ptr) AccessChain 27(data) 895 49
-             901:   21(ivec4) Load 900
-             902:   21(ivec4) VectorShuffle 901 899 4 5 2 3
-                              Store 900 902
-             903:      6(int) Load 8(invocation)
-             904:    102(ptr) AccessChain 27(data) 49 49
-             905:   21(ivec4) Load 904
-             906:  111(ivec3) VectorShuffle 905 905 0 1 2
-             907:  111(ivec3) GroupNonUniformIMul 34 InclusiveScan 906
-             908:    102(ptr) AccessChain 27(data) 903 49
-             909:   21(ivec4) Load 908
-             910:   21(ivec4) VectorShuffle 909 907 4 5 6 3
-                              Store 908 910
-             911:      6(int) Load 8(invocation)
-             912:    102(ptr) AccessChain 27(data) 59 49
-             913:   21(ivec4) Load 912
-             914:   21(ivec4) GroupNonUniformIMul 34 InclusiveScan 913
-             915:    102(ptr) AccessChain 27(data) 911 49
-                              Store 915 914
-             916:      6(int) Load 8(invocation)
-             917:    125(ptr) AccessChain 27(data) 29 59 30
-             918:22(float64_t) Load 917
-             919:22(float64_t) GroupNonUniformFMul 34 InclusiveScan 918
-             920:    125(ptr) AccessChain 27(data) 916 59 30
-                              Store 920 919
+             774:    112(ptr) AccessChain 27(data) 38 51
+             775:   21(ivec4) Load 774
+             776:  111(ivec2) VectorShuffle 775 775 0 1
+             777:  111(ivec2) GroupNonUniformBitwiseXor 34 Reduce 776
+             778:    105(ptr) AccessChain 27(data) 773 51 30
+             779:      6(int) CompositeExtract 777 0
+                              Store 778 779
+             780:    105(ptr) AccessChain 27(data) 773 51 47
+             781:      6(int) CompositeExtract 777 1
+                              Store 780 781
+             782:      6(int) Load 8(invocation)
+             783:    112(ptr) AccessChain 27(data) 51 51
+             784:   21(ivec4) Load 783
+             785:  122(ivec3) VectorShuffle 784 784 0 1 2
+             786:  122(ivec3) GroupNonUniformBitwiseXor 34 Reduce 785
+             787:    105(ptr) AccessChain 27(data) 782 51 30
+             788:      6(int) CompositeExtract 786 0
+                              Store 787 788
+             789:    105(ptr) AccessChain 27(data) 782 51 47
+             790:      6(int) CompositeExtract 786 1
+                              Store 789 790
+             791:    105(ptr) AccessChain 27(data) 782 51 61
+             792:      6(int) CompositeExtract 786 2
+                              Store 791 792
+             793:      6(int) Load 8(invocation)
+             794:    112(ptr) AccessChain 27(data) 65 51
+             795:   21(ivec4) Load 794
+             796:   21(ivec4) GroupNonUniformBitwiseXor 34 Reduce 795
+             797:    112(ptr) AccessChain 27(data) 793 51
+                              Store 797 796
+             798:      6(int) Load 8(invocation)
+             799:     71(ptr) AccessChain 27(data) 29 38 30
+             800:     19(int) Load 799
+             801:   595(bool) SLessThan 800 29
+             802:   595(bool) GroupNonUniformLogicalXor 34 Reduce 801
+             803:     19(int) Select 802 38 29
+             804:     71(ptr) AccessChain 27(data) 798 38 30
+                              Store 804 803
+             805:      6(int) Load 8(invocation)
+             806:     78(ptr) AccessChain 27(data) 38 38
+             807:   20(ivec4) Load 806
+             808:   77(ivec2) VectorShuffle 807 807 0 1
+             809:  605(bvec2) SLessThan 808 604
+             810:  605(bvec2) GroupNonUniformLogicalXor 34 Reduce 809
+             811:   77(ivec2) Select 810 608 604
+             812:     71(ptr) AccessChain 27(data) 805 38 30
+             813:     19(int) CompositeExtract 811 0
+                              Store 812 813
+             814:     71(ptr) AccessChain 27(data) 805 38 47
+             815:     19(int) CompositeExtract 811 1
+                              Store 814 815
+             816:      6(int) Load 8(invocation)
+             817:     78(ptr) AccessChain 27(data) 38 38
+             818:   20(ivec4) Load 817
+             819:   88(ivec3) VectorShuffle 818 818 0 1 2
+             820:  619(bvec3) SLessThan 819 618
+             821:  619(bvec3) GroupNonUniformLogicalXor 34 Reduce 820
+             822:   88(ivec3) Select 821 622 618
+             823:     71(ptr) AccessChain 27(data) 816 38 30
+             824:     19(int) CompositeExtract 822 0
+                              Store 823 824
+             825:     71(ptr) AccessChain 27(data) 816 38 47
+             826:     19(int) CompositeExtract 822 1
+                              Store 825 826
+             827:     71(ptr) AccessChain 27(data) 816 38 61
+             828:     19(int) CompositeExtract 822 2
+                              Store 827 828
+             829:      6(int) Load 8(invocation)
+             830:     78(ptr) AccessChain 27(data) 38 38
+             831:   20(ivec4) Load 830
+             832:  634(bvec4) SLessThan 831 633
+             833:  634(bvec4) GroupNonUniformLogicalXor 34 Reduce 832
+             834:   20(ivec4) Select 833 637 633
+             835:     78(ptr) AccessChain 27(data) 829 38
+                              Store 835 834
+             836:      6(int) Load 8(invocation)
+             837:     31(ptr) AccessChain 27(data) 29 29 30
+             838:   17(float) Load 837
+             839:   17(float) GroupNonUniformFAdd 34 InclusiveScan 838
+             840:     31(ptr) AccessChain 27(data) 836 29 30
+                              Store 840 839
+             841:      6(int) Load 8(invocation)
+             842:     40(ptr) AccessChain 27(data) 38 29
+             843:   18(fvec4) Load 842
+             844:   39(fvec2) VectorShuffle 843 843 0 1
+             845:   39(fvec2) GroupNonUniformFAdd 34 InclusiveScan 844
+             846:     31(ptr) AccessChain 27(data) 841 29 30
+             847:   17(float) CompositeExtract 845 0
+                              Store 846 847
+             848:     31(ptr) AccessChain 27(data) 841 29 47
+             849:   17(float) CompositeExtract 845 1
+                              Store 848 849
+             850:      6(int) Load 8(invocation)
+             851:     40(ptr) AccessChain 27(data) 51 29
+             852:   18(fvec4) Load 851
+             853:   52(fvec3) VectorShuffle 852 852 0 1 2
+             854:   52(fvec3) GroupNonUniformFAdd 34 InclusiveScan 853
+             855:     31(ptr) AccessChain 27(data) 850 29 30
+             856:   17(float) CompositeExtract 854 0
+                              Store 855 856
+             857:     31(ptr) AccessChain 27(data) 850 29 47
+             858:   17(float) CompositeExtract 854 1
+                              Store 857 858
+             859:     31(ptr) AccessChain 27(data) 850 29 61
+             860:   17(float) CompositeExtract 854 2
+                              Store 859 860
+             861:      6(int) Load 8(invocation)
+             862:     40(ptr) AccessChain 27(data) 65 29
+             863:   18(fvec4) Load 862
+             864:   18(fvec4) GroupNonUniformFAdd 34 InclusiveScan 863
+             865:     40(ptr) AccessChain 27(data) 861 29
+                              Store 865 864
+             866:      6(int) Load 8(invocation)
+             867:     71(ptr) AccessChain 27(data) 29 38 30
+             868:     19(int) Load 867
+             869:     19(int) GroupNonUniformIAdd 34 InclusiveScan 868
+             870:     71(ptr) AccessChain 27(data) 866 38 30
+                              Store 870 869
+             871:      6(int) Load 8(invocation)
+             872:     78(ptr) AccessChain 27(data) 38 38
+             873:   20(ivec4) Load 872
+             874:   77(ivec2) VectorShuffle 873 873 0 1
+             875:   77(ivec2) GroupNonUniformIAdd 34 InclusiveScan 874
+             876:     71(ptr) AccessChain 27(data) 871 38 30
+             877:     19(int) CompositeExtract 875 0
+                              Store 876 877
+             878:     71(ptr) AccessChain 27(data) 871 38 47
+             879:     19(int) CompositeExtract 875 1
+                              Store 878 879
+             880:      6(int) Load 8(invocation)
+             881:     78(ptr) AccessChain 27(data) 51 38
+             882:   20(ivec4) Load 881
+             883:   88(ivec3) VectorShuffle 882 882 0 1 2
+             884:   88(ivec3) GroupNonUniformIAdd 34 InclusiveScan 883
+             885:     71(ptr) AccessChain 27(data) 880 38 30
+             886:     19(int) CompositeExtract 884 0
+                              Store 885 886
+             887:     71(ptr) AccessChain 27(data) 880 38 47
+             888:     19(int) CompositeExtract 884 1
+                              Store 887 888
+             889:     71(ptr) AccessChain 27(data) 880 38 61
+             890:     19(int) CompositeExtract 884 2
+                              Store 889 890
+             891:      6(int) Load 8(invocation)
+             892:     78(ptr) AccessChain 27(data) 65 38
+             893:   20(ivec4) Load 892
+             894:   20(ivec4) GroupNonUniformIAdd 34 InclusiveScan 893
+             895:     78(ptr) AccessChain 27(data) 891 38
+                              Store 895 894
+             896:      6(int) Load 8(invocation)
+             897:    105(ptr) AccessChain 27(data) 29 51 30
+             898:      6(int) Load 897
+             899:      6(int) GroupNonUniformIAdd 34 InclusiveScan 898
+             900:    105(ptr) AccessChain 27(data) 896 51 30
+                              Store 900 899
+             901:      6(int) Load 8(invocation)
+             902:    112(ptr) AccessChain 27(data) 38 51
+             903:   21(ivec4) Load 902
+             904:  111(ivec2) VectorShuffle 903 903 0 1
+             905:  111(ivec2) GroupNonUniformIAdd 34 InclusiveScan 904
+             906:    105(ptr) AccessChain 27(data) 901 51 30
+             907:      6(int) CompositeExtract 905 0
+                              Store 906 907
+             908:    105(ptr) AccessChain 27(data) 901 51 47
+             909:      6(int) CompositeExtract 905 1
+                              Store 908 909
+             910:      6(int) Load 8(invocation)
+             911:    112(ptr) AccessChain 27(data) 51 51
+             912:   21(ivec4) Load 911
+             913:  122(ivec3) VectorShuffle 912 912 0 1 2
+             914:  122(ivec3) GroupNonUniformIAdd 34 InclusiveScan 913
+             915:    105(ptr) AccessChain 27(data) 910 51 30
+             916:      6(int) CompositeExtract 914 0
+                              Store 915 916
+             917:    105(ptr) AccessChain 27(data) 910 51 47
+             918:      6(int) CompositeExtract 914 1
+                              Store 917 918
+             919:    105(ptr) AccessChain 27(data) 910 51 61
+             920:      6(int) CompositeExtract 914 2
+                              Store 919 920
              921:      6(int) Load 8(invocation)
-             922:    132(ptr) AccessChain 27(data) 38 59
-             923: 23(f64vec4) Load 922
-             924:131(f64vec2) VectorShuffle 923 923 0 1
-             925:131(f64vec2) GroupNonUniformFMul 34 InclusiveScan 924
-             926:    132(ptr) AccessChain 27(data) 921 59
-             927: 23(f64vec4) Load 926
-             928: 23(f64vec4) VectorShuffle 927 925 4 5 2 3
-                              Store 926 928
-             929:      6(int) Load 8(invocation)
-             930:    132(ptr) AccessChain 27(data) 49 59
-             931: 23(f64vec4) Load 930
-             932:141(f64vec3) VectorShuffle 931 931 0 1 2
-             933:141(f64vec3) GroupNonUniformFMul 34 InclusiveScan 932
-             934:    132(ptr) AccessChain 27(data) 929 59
-             935: 23(f64vec4) Load 934
-             936: 23(f64vec4) VectorShuffle 935 933 4 5 6 3
-                              Store 934 936
-             937:      6(int) Load 8(invocation)
-             938:    132(ptr) AccessChain 27(data) 59 59
-             939: 23(f64vec4) Load 938
-             940: 23(f64vec4) GroupNonUniformFMul 34 InclusiveScan 939
-             941:    132(ptr) AccessChain 27(data) 937 59
-                              Store 941 940
-             942:      6(int) Load 8(invocation)
-             943:     31(ptr) AccessChain 27(data) 29 29 30
-             944:   17(float) Load 943
-             945:   17(float) GroupNonUniformFMin 34 InclusiveScan 944
-             946:     31(ptr) AccessChain 27(data) 942 29 30
-                              Store 946 945
-             947:      6(int) Load 8(invocation)
-             948:     40(ptr) AccessChain 27(data) 38 29
-             949:   18(fvec4) Load 948
-             950:   39(fvec2) VectorShuffle 949 949 0 1
-             951:   39(fvec2) GroupNonUniformFMin 34 InclusiveScan 950
-             952:     40(ptr) AccessChain 27(data) 947 29
-             953:   18(fvec4) Load 952
-             954:   18(fvec4) VectorShuffle 953 951 4 5 2 3
-                              Store 952 954
-             955:      6(int) Load 8(invocation)
-             956:     40(ptr) AccessChain 27(data) 49 29
-             957:   18(fvec4) Load 956
-             958:   50(fvec3) VectorShuffle 957 957 0 1 2
-             959:   50(fvec3) GroupNonUniformFMin 34 InclusiveScan 958
-             960:     40(ptr) AccessChain 27(data) 955 29
-             961:   18(fvec4) Load 960
-             962:   18(fvec4) VectorShuffle 961 959 4 5 6 3
-                              Store 960 962
-             963:      6(int) Load 8(invocation)
-             964:     40(ptr) AccessChain 27(data) 59 29
-             965:   18(fvec4) Load 964
-             966:   18(fvec4) GroupNonUniformFMin 34 InclusiveScan 965
-             967:     40(ptr) AccessChain 27(data) 963 29
-                              Store 967 966
-             968:      6(int) Load 8(invocation)
-             969:     65(ptr) AccessChain 27(data) 29 38 30
-             970:     19(int) Load 969
-             971:     19(int) GroupNonUniformSMin 34 InclusiveScan 970
-             972:     65(ptr) AccessChain 27(data) 968 38 30
-                              Store 972 971
-             973:      6(int) Load 8(invocation)
-             974:     72(ptr) AccessChain 27(data) 38 38
-             975:   20(ivec4) Load 974
-             976:   71(ivec2) VectorShuffle 975 975 0 1
-             977:   71(ivec2) GroupNonUniformSMin 34 InclusiveScan 976
-             978:     72(ptr) AccessChain 27(data) 973 38
-             979:   20(ivec4) Load 978
-             980:   20(ivec4) VectorShuffle 979 977 4 5 2 3
-                              Store 978 980
+             922:    112(ptr) AccessChain 27(data) 65 51
+             923:   21(ivec4) Load 922
+             924:   21(ivec4) GroupNonUniformIAdd 34 InclusiveScan 923
+             925:    112(ptr) AccessChain 27(data) 921 51
+                              Store 925 924
+             926:      6(int) Load 8(invocation)
+             927:    139(ptr) AccessChain 27(data) 29 65 30
+             928:22(float64_t) Load 927
+             929:22(float64_t) GroupNonUniformFAdd 34 InclusiveScan 928
+             930:    139(ptr) AccessChain 27(data) 926 65 30
+                              Store 930 929
+             931:      6(int) Load 8(invocation)
+             932:    146(ptr) AccessChain 27(data) 38 65
+             933: 23(f64vec4) Load 932
+             934:145(f64vec2) VectorShuffle 933 933 0 1
+             935:145(f64vec2) GroupNonUniformFAdd 34 InclusiveScan 934
+             936:    139(ptr) AccessChain 27(data) 931 65 30
+             937:22(float64_t) CompositeExtract 935 0
+                              Store 936 937
+             938:    139(ptr) AccessChain 27(data) 931 65 47
+             939:22(float64_t) CompositeExtract 935 1
+                              Store 938 939
+             940:      6(int) Load 8(invocation)
+             941:    146(ptr) AccessChain 27(data) 51 65
+             942: 23(f64vec4) Load 941
+             943:156(f64vec3) VectorShuffle 942 942 0 1 2
+             944:156(f64vec3) GroupNonUniformFAdd 34 InclusiveScan 943
+             945:    139(ptr) AccessChain 27(data) 940 65 30
+             946:22(float64_t) CompositeExtract 944 0
+                              Store 945 946
+             947:    139(ptr) AccessChain 27(data) 940 65 47
+             948:22(float64_t) CompositeExtract 944 1
+                              Store 947 948
+             949:    139(ptr) AccessChain 27(data) 940 65 61
+             950:22(float64_t) CompositeExtract 944 2
+                              Store 949 950
+             951:      6(int) Load 8(invocation)
+             952:    146(ptr) AccessChain 27(data) 65 65
+             953: 23(f64vec4) Load 952
+             954: 23(f64vec4) GroupNonUniformFAdd 34 InclusiveScan 953
+             955:    146(ptr) AccessChain 27(data) 951 65
+                              Store 955 954
+             956:      6(int) Load 8(invocation)
+             957:     31(ptr) AccessChain 27(data) 29 29 30
+             958:   17(float) Load 957
+             959:   17(float) GroupNonUniformFMul 34 InclusiveScan 958
+             960:     31(ptr) AccessChain 27(data) 956 29 30
+                              Store 960 959
+             961:      6(int) Load 8(invocation)
+             962:     40(ptr) AccessChain 27(data) 38 29
+             963:   18(fvec4) Load 962
+             964:   39(fvec2) VectorShuffle 963 963 0 1
+             965:   39(fvec2) GroupNonUniformFMul 34 InclusiveScan 964
+             966:     31(ptr) AccessChain 27(data) 961 29 30
+             967:   17(float) CompositeExtract 965 0
+                              Store 966 967
+             968:     31(ptr) AccessChain 27(data) 961 29 47
+             969:   17(float) CompositeExtract 965 1
+                              Store 968 969
+             970:      6(int) Load 8(invocation)
+             971:     40(ptr) AccessChain 27(data) 51 29
+             972:   18(fvec4) Load 971
+             973:   52(fvec3) VectorShuffle 972 972 0 1 2
+             974:   52(fvec3) GroupNonUniformFMul 34 InclusiveScan 973
+             975:     31(ptr) AccessChain 27(data) 970 29 30
+             976:   17(float) CompositeExtract 974 0
+                              Store 975 976
+             977:     31(ptr) AccessChain 27(data) 970 29 47
+             978:   17(float) CompositeExtract 974 1
+                              Store 977 978
+             979:     31(ptr) AccessChain 27(data) 970 29 61
+             980:   17(float) CompositeExtract 974 2
+                              Store 979 980
              981:      6(int) Load 8(invocation)
-             982:     72(ptr) AccessChain 27(data) 49 38
-             983:   20(ivec4) Load 982
-             984:   81(ivec3) VectorShuffle 983 983 0 1 2
-             985:   81(ivec3) GroupNonUniformSMin 34 InclusiveScan 984
-             986:     72(ptr) AccessChain 27(data) 981 38
-             987:   20(ivec4) Load 986
-             988:   20(ivec4) VectorShuffle 987 985 4 5 6 3
-                              Store 986 988
-             989:      6(int) Load 8(invocation)
-             990:     72(ptr) AccessChain 27(data) 59 38
-             991:   20(ivec4) Load 990
-             992:   20(ivec4) GroupNonUniformSMin 34 InclusiveScan 991
-             993:     72(ptr) AccessChain 27(data) 989 38
-                              Store 993 992
-             994:      6(int) Load 8(invocation)
-             995:     95(ptr) AccessChain 27(data) 29 49 30
-             996:      6(int) Load 995
-             997:      6(int) GroupNonUniformUMin 34 InclusiveScan 996
-             998:     95(ptr) AccessChain 27(data) 994 49 30
-                              Store 998 997
-             999:      6(int) Load 8(invocation)
-            1000:    102(ptr) AccessChain 27(data) 38 49
-            1001:   21(ivec4) Load 1000
-            1002:  101(ivec2) VectorShuffle 1001 1001 0 1
-            1003:  101(ivec2) GroupNonUniformUMin 34 InclusiveScan 1002
-            1004:    102(ptr) AccessChain 27(data) 999 49
-            1005:   21(ivec4) Load 1004
-            1006:   21(ivec4) VectorShuffle 1005 1003 4 5 2 3
-                              Store 1004 1006
-            1007:      6(int) Load 8(invocation)
-            1008:    102(ptr) AccessChain 27(data) 49 49
-            1009:   21(ivec4) Load 1008
-            1010:  111(ivec3) VectorShuffle 1009 1009 0 1 2
-            1011:  111(ivec3) GroupNonUniformUMin 34 InclusiveScan 1010
-            1012:    102(ptr) AccessChain 27(data) 1007 49
-            1013:   21(ivec4) Load 1012
-            1014:   21(ivec4) VectorShuffle 1013 1011 4 5 6 3
-                              Store 1012 1014
-            1015:      6(int) Load 8(invocation)
-            1016:    102(ptr) AccessChain 27(data) 59 49
-            1017:   21(ivec4) Load 1016
-            1018:   21(ivec4) GroupNonUniformUMin 34 InclusiveScan 1017
-            1019:    102(ptr) AccessChain 27(data) 1015 49
-                              Store 1019 1018
-            1020:      6(int) Load 8(invocation)
-            1021:    125(ptr) AccessChain 27(data) 29 59 30
-            1022:22(float64_t) Load 1021
-            1023:22(float64_t) GroupNonUniformFMin 34 InclusiveScan 1022
-            1024:    125(ptr) AccessChain 27(data) 1020 59 30
-                              Store 1024 1023
-            1025:      6(int) Load 8(invocation)
-            1026:    132(ptr) AccessChain 27(data) 38 59
-            1027: 23(f64vec4) Load 1026
-            1028:131(f64vec2) VectorShuffle 1027 1027 0 1
-            1029:131(f64vec2) GroupNonUniformFMin 34 InclusiveScan 1028
-            1030:    132(ptr) AccessChain 27(data) 1025 59
-            1031: 23(f64vec4) Load 1030
-            1032: 23(f64vec4) VectorShuffle 1031 1029 4 5 2 3
-                              Store 1030 1032
-            1033:      6(int) Load 8(invocation)
-            1034:    132(ptr) AccessChain 27(data) 49 59
-            1035: 23(f64vec4) Load 1034
-            1036:141(f64vec3) VectorShuffle 1035 1035 0 1 2
-            1037:141(f64vec3) GroupNonUniformFMin 34 InclusiveScan 1036
-            1038:    132(ptr) AccessChain 27(data) 1033 59
-            1039: 23(f64vec4) Load 1038
-            1040: 23(f64vec4) VectorShuffle 1039 1037 4 5 6 3
-                              Store 1038 1040
+             982:     40(ptr) AccessChain 27(data) 65 29
+             983:   18(fvec4) Load 982
+             984:   18(fvec4) GroupNonUniformFMul 34 InclusiveScan 983
+             985:     40(ptr) AccessChain 27(data) 981 29
+                              Store 985 984
+             986:      6(int) Load 8(invocation)
+             987:     71(ptr) AccessChain 27(data) 29 38 30
+             988:     19(int) Load 987
+             989:     19(int) GroupNonUniformIMul 34 InclusiveScan 988
+             990:     71(ptr) AccessChain 27(data) 986 38 30
+                              Store 990 989
+             991:      6(int) Load 8(invocation)
+             992:     78(ptr) AccessChain 27(data) 38 38
+             993:   20(ivec4) Load 992
+             994:   77(ivec2) VectorShuffle 993 993 0 1
+             995:   77(ivec2) GroupNonUniformIMul 34 InclusiveScan 994
+             996:     71(ptr) AccessChain 27(data) 991 38 30
+             997:     19(int) CompositeExtract 995 0
+                              Store 996 997
+             998:     71(ptr) AccessChain 27(data) 991 38 47
+             999:     19(int) CompositeExtract 995 1
+                              Store 998 999
+            1000:      6(int) Load 8(invocation)
+            1001:     78(ptr) AccessChain 27(data) 51 38
+            1002:   20(ivec4) Load 1001
+            1003:   88(ivec3) VectorShuffle 1002 1002 0 1 2
+            1004:   88(ivec3) GroupNonUniformIMul 34 InclusiveScan 1003
+            1005:     71(ptr) AccessChain 27(data) 1000 38 30
+            1006:     19(int) CompositeExtract 1004 0
+                              Store 1005 1006
+            1007:     71(ptr) AccessChain 27(data) 1000 38 47
+            1008:     19(int) CompositeExtract 1004 1
+                              Store 1007 1008
+            1009:     71(ptr) AccessChain 27(data) 1000 38 61
+            1010:     19(int) CompositeExtract 1004 2
+                              Store 1009 1010
+            1011:      6(int) Load 8(invocation)
+            1012:     78(ptr) AccessChain 27(data) 65 38
+            1013:   20(ivec4) Load 1012
+            1014:   20(ivec4) GroupNonUniformIMul 34 InclusiveScan 1013
+            1015:     78(ptr) AccessChain 27(data) 1011 38
+                              Store 1015 1014
+            1016:      6(int) Load 8(invocation)
+            1017:    105(ptr) AccessChain 27(data) 29 51 30
+            1018:      6(int) Load 1017
+            1019:      6(int) GroupNonUniformIMul 34 InclusiveScan 1018
+            1020:    105(ptr) AccessChain 27(data) 1016 51 30
+                              Store 1020 1019
+            1021:      6(int) Load 8(invocation)
+            1022:    112(ptr) AccessChain 27(data) 38 51
+            1023:   21(ivec4) Load 1022
+            1024:  111(ivec2) VectorShuffle 1023 1023 0 1
+            1025:  111(ivec2) GroupNonUniformIMul 34 InclusiveScan 1024
+            1026:    105(ptr) AccessChain 27(data) 1021 51 30
+            1027:      6(int) CompositeExtract 1025 0
+                              Store 1026 1027
+            1028:    105(ptr) AccessChain 27(data) 1021 51 47
+            1029:      6(int) CompositeExtract 1025 1
+                              Store 1028 1029
+            1030:      6(int) Load 8(invocation)
+            1031:    112(ptr) AccessChain 27(data) 51 51
+            1032:   21(ivec4) Load 1031
+            1033:  122(ivec3) VectorShuffle 1032 1032 0 1 2
+            1034:  122(ivec3) GroupNonUniformIMul 34 InclusiveScan 1033
+            1035:    105(ptr) AccessChain 27(data) 1030 51 30
+            1036:      6(int) CompositeExtract 1034 0
+                              Store 1035 1036
+            1037:    105(ptr) AccessChain 27(data) 1030 51 47
+            1038:      6(int) CompositeExtract 1034 1
+                              Store 1037 1038
+            1039:    105(ptr) AccessChain 27(data) 1030 51 61
+            1040:      6(int) CompositeExtract 1034 2
+                              Store 1039 1040
             1041:      6(int) Load 8(invocation)
-            1042:    132(ptr) AccessChain 27(data) 59 59
-            1043: 23(f64vec4) Load 1042
-            1044: 23(f64vec4) GroupNonUniformFMin 34 InclusiveScan 1043
-            1045:    132(ptr) AccessChain 27(data) 1041 59
+            1042:    112(ptr) AccessChain 27(data) 65 51
+            1043:   21(ivec4) Load 1042
+            1044:   21(ivec4) GroupNonUniformIMul 34 InclusiveScan 1043
+            1045:    112(ptr) AccessChain 27(data) 1041 51
                               Store 1045 1044
             1046:      6(int) Load 8(invocation)
-            1047:     31(ptr) AccessChain 27(data) 29 29 30
-            1048:   17(float) Load 1047
-            1049:   17(float) GroupNonUniformFMax 34 InclusiveScan 1048
-            1050:     31(ptr) AccessChain 27(data) 1046 29 30
+            1047:    139(ptr) AccessChain 27(data) 29 65 30
+            1048:22(float64_t) Load 1047
+            1049:22(float64_t) GroupNonUniformFMul 34 InclusiveScan 1048
+            1050:    139(ptr) AccessChain 27(data) 1046 65 30
                               Store 1050 1049
             1051:      6(int) Load 8(invocation)
-            1052:     40(ptr) AccessChain 27(data) 38 29
-            1053:   18(fvec4) Load 1052
-            1054:   39(fvec2) VectorShuffle 1053 1053 0 1
-            1055:   39(fvec2) GroupNonUniformFMax 34 InclusiveScan 1054
-            1056:     40(ptr) AccessChain 27(data) 1051 29
-            1057:   18(fvec4) Load 1056
-            1058:   18(fvec4) VectorShuffle 1057 1055 4 5 2 3
-                              Store 1056 1058
-            1059:      6(int) Load 8(invocation)
-            1060:     40(ptr) AccessChain 27(data) 49 29
-            1061:   18(fvec4) Load 1060
-            1062:   50(fvec3) VectorShuffle 1061 1061 0 1 2
-            1063:   50(fvec3) GroupNonUniformFMax 34 InclusiveScan 1062
-            1064:     40(ptr) AccessChain 27(data) 1059 29
-            1065:   18(fvec4) Load 1064
-            1066:   18(fvec4) VectorShuffle 1065 1063 4 5 6 3
-                              Store 1064 1066
-            1067:      6(int) Load 8(invocation)
-            1068:     40(ptr) AccessChain 27(data) 59 29
-            1069:   18(fvec4) Load 1068
-            1070:   18(fvec4) GroupNonUniformFMax 34 InclusiveScan 1069
-            1071:     40(ptr) AccessChain 27(data) 1067 29
-                              Store 1071 1070
-            1072:      6(int) Load 8(invocation)
-            1073:     65(ptr) AccessChain 27(data) 29 38 30
-            1074:     19(int) Load 1073
-            1075:     19(int) GroupNonUniformSMax 34 InclusiveScan 1074
-            1076:     65(ptr) AccessChain 27(data) 1072 38 30
-                              Store 1076 1075
-            1077:      6(int) Load 8(invocation)
-            1078:     72(ptr) AccessChain 27(data) 38 38
-            1079:   20(ivec4) Load 1078
-            1080:   71(ivec2) VectorShuffle 1079 1079 0 1
-            1081:   71(ivec2) GroupNonUniformSMax 34 InclusiveScan 1080
-            1082:     72(ptr) AccessChain 27(data) 1077 38
-            1083:   20(ivec4) Load 1082
-            1084:   20(ivec4) VectorShuffle 1083 1081 4 5 2 3
-                              Store 1082 1084
-            1085:      6(int) Load 8(invocation)
-            1086:     72(ptr) AccessChain 27(data) 49 38
-            1087:   20(ivec4) Load 1086
-            1088:   81(ivec3) VectorShuffle 1087 1087 0 1 2
-            1089:   81(ivec3) GroupNonUniformSMax 34 InclusiveScan 1088
-            1090:     72(ptr) AccessChain 27(data) 1085 38
-            1091:   20(ivec4) Load 1090
-            1092:   20(ivec4) VectorShuffle 1091 1089 4 5 6 3
-                              Store 1090 1092
-            1093:      6(int) Load 8(invocation)
-            1094:     72(ptr) AccessChain 27(data) 59 38
-            1095:   20(ivec4) Load 1094
-            1096:   20(ivec4) GroupNonUniformSMax 34 InclusiveScan 1095
-            1097:     72(ptr) AccessChain 27(data) 1093 38
-                              Store 1097 1096
-            1098:      6(int) Load 8(invocation)
-            1099:     95(ptr) AccessChain 27(data) 29 49 30
-            1100:      6(int) Load 1099
-            1101:      6(int) GroupNonUniformUMax 34 InclusiveScan 1100
-            1102:     95(ptr) AccessChain 27(data) 1098 49 30
-                              Store 1102 1101
-            1103:      6(int) Load 8(invocation)
-            1104:    102(ptr) AccessChain 27(data) 38 49
-            1105:   21(ivec4) Load 1104
-            1106:  101(ivec2) VectorShuffle 1105 1105 0 1
-            1107:  101(ivec2) GroupNonUniformUMax 34 InclusiveScan 1106
-            1108:    102(ptr) AccessChain 27(data) 1103 49
-            1109:   21(ivec4) Load 1108
-            1110:   21(ivec4) VectorShuffle 1109 1107 4 5 2 3
-                              Store 1108 1110
+            1052:    146(ptr) AccessChain 27(data) 38 65
+            1053: 23(f64vec4) Load 1052
+            1054:145(f64vec2) VectorShuffle 1053 1053 0 1
+            1055:145(f64vec2) GroupNonUniformFMul 34 InclusiveScan 1054
+            1056:    139(ptr) AccessChain 27(data) 1051 65 30
+            1057:22(float64_t) CompositeExtract 1055 0
+                              Store 1056 1057
+            1058:    139(ptr) AccessChain 27(data) 1051 65 47
+            1059:22(float64_t) CompositeExtract 1055 1
+                              Store 1058 1059
+            1060:      6(int) Load 8(invocation)
+            1061:    146(ptr) AccessChain 27(data) 51 65
+            1062: 23(f64vec4) Load 1061
+            1063:156(f64vec3) VectorShuffle 1062 1062 0 1 2
+            1064:156(f64vec3) GroupNonUniformFMul 34 InclusiveScan 1063
+            1065:    139(ptr) AccessChain 27(data) 1060 65 30
+            1066:22(float64_t) CompositeExtract 1064 0
+                              Store 1065 1066
+            1067:    139(ptr) AccessChain 27(data) 1060 65 47
+            1068:22(float64_t) CompositeExtract 1064 1
+                              Store 1067 1068
+            1069:    139(ptr) AccessChain 27(data) 1060 65 61
+            1070:22(float64_t) CompositeExtract 1064 2
+                              Store 1069 1070
+            1071:      6(int) Load 8(invocation)
+            1072:    146(ptr) AccessChain 27(data) 65 65
+            1073: 23(f64vec4) Load 1072
+            1074: 23(f64vec4) GroupNonUniformFMul 34 InclusiveScan 1073
+            1075:    146(ptr) AccessChain 27(data) 1071 65
+                              Store 1075 1074
+            1076:      6(int) Load 8(invocation)
+            1077:     31(ptr) AccessChain 27(data) 29 29 30
+            1078:   17(float) Load 1077
+            1079:   17(float) GroupNonUniformFMin 34 InclusiveScan 1078
+            1080:     31(ptr) AccessChain 27(data) 1076 29 30
+                              Store 1080 1079
+            1081:      6(int) Load 8(invocation)
+            1082:     40(ptr) AccessChain 27(data) 38 29
+            1083:   18(fvec4) Load 1082
+            1084:   39(fvec2) VectorShuffle 1083 1083 0 1
+            1085:   39(fvec2) GroupNonUniformFMin 34 InclusiveScan 1084
+            1086:     31(ptr) AccessChain 27(data) 1081 29 30
+            1087:   17(float) CompositeExtract 1085 0
+                              Store 1086 1087
+            1088:     31(ptr) AccessChain 27(data) 1081 29 47
+            1089:   17(float) CompositeExtract 1085 1
+                              Store 1088 1089
+            1090:      6(int) Load 8(invocation)
+            1091:     40(ptr) AccessChain 27(data) 51 29
+            1092:   18(fvec4) Load 1091
+            1093:   52(fvec3) VectorShuffle 1092 1092 0 1 2
+            1094:   52(fvec3) GroupNonUniformFMin 34 InclusiveScan 1093
+            1095:     31(ptr) AccessChain 27(data) 1090 29 30
+            1096:   17(float) CompositeExtract 1094 0
+                              Store 1095 1096
+            1097:     31(ptr) AccessChain 27(data) 1090 29 47
+            1098:   17(float) CompositeExtract 1094 1
+                              Store 1097 1098
+            1099:     31(ptr) AccessChain 27(data) 1090 29 61
+            1100:   17(float) CompositeExtract 1094 2
+                              Store 1099 1100
+            1101:      6(int) Load 8(invocation)
+            1102:     40(ptr) AccessChain 27(data) 65 29
+            1103:   18(fvec4) Load 1102
+            1104:   18(fvec4) GroupNonUniformFMin 34 InclusiveScan 1103
+            1105:     40(ptr) AccessChain 27(data) 1101 29
+                              Store 1105 1104
+            1106:      6(int) Load 8(invocation)
+            1107:     71(ptr) AccessChain 27(data) 29 38 30
+            1108:     19(int) Load 1107
+            1109:     19(int) GroupNonUniformSMin 34 InclusiveScan 1108
+            1110:     71(ptr) AccessChain 27(data) 1106 38 30
+                              Store 1110 1109
             1111:      6(int) Load 8(invocation)
-            1112:    102(ptr) AccessChain 27(data) 49 49
-            1113:   21(ivec4) Load 1112
-            1114:  111(ivec3) VectorShuffle 1113 1113 0 1 2
-            1115:  111(ivec3) GroupNonUniformUMax 34 InclusiveScan 1114
-            1116:    102(ptr) AccessChain 27(data) 1111 49
-            1117:   21(ivec4) Load 1116
-            1118:   21(ivec4) VectorShuffle 1117 1115 4 5 6 3
-                              Store 1116 1118
-            1119:      6(int) Load 8(invocation)
-            1120:    102(ptr) AccessChain 27(data) 59 49
-            1121:   21(ivec4) Load 1120
-            1122:   21(ivec4) GroupNonUniformUMax 34 InclusiveScan 1121
-            1123:    102(ptr) AccessChain 27(data) 1119 49
-                              Store 1123 1122
-            1124:      6(int) Load 8(invocation)
-            1125:    125(ptr) AccessChain 27(data) 29 59 30
-            1126:22(float64_t) Load 1125
-            1127:22(float64_t) GroupNonUniformFMax 34 InclusiveScan 1126
-            1128:    125(ptr) AccessChain 27(data) 1124 59 30
-                              Store 1128 1127
-            1129:      6(int) Load 8(invocation)
-            1130:    132(ptr) AccessChain 27(data) 38 59
-            1131: 23(f64vec4) Load 1130
-            1132:131(f64vec2) VectorShuffle 1131 1131 0 1
-            1133:131(f64vec2) GroupNonUniformFMax 34 InclusiveScan 1132
-            1134:    132(ptr) AccessChain 27(data) 1129 59
-            1135: 23(f64vec4) Load 1134
-            1136: 23(f64vec4) VectorShuffle 1135 1133 4 5 2 3
-                              Store 1134 1136
-            1137:      6(int) Load 8(invocation)
-            1138:    132(ptr) AccessChain 27(data) 49 59
-            1139: 23(f64vec4) Load 1138
-            1140:141(f64vec3) VectorShuffle 1139 1139 0 1 2
-            1141:141(f64vec3) GroupNonUniformFMax 34 InclusiveScan 1140
-            1142:    132(ptr) AccessChain 27(data) 1137 59
-            1143: 23(f64vec4) Load 1142
-            1144: 23(f64vec4) VectorShuffle 1143 1141 4 5 6 3
-                              Store 1142 1144
-            1145:      6(int) Load 8(invocation)
-            1146:    132(ptr) AccessChain 27(data) 59 59
-            1147: 23(f64vec4) Load 1146
-            1148: 23(f64vec4) GroupNonUniformFMax 34 InclusiveScan 1147
-            1149:    132(ptr) AccessChain 27(data) 1145 59
-                              Store 1149 1148
+            1112:     78(ptr) AccessChain 27(data) 38 38
+            1113:   20(ivec4) Load 1112
+            1114:   77(ivec2) VectorShuffle 1113 1113 0 1
+            1115:   77(ivec2) GroupNonUniformSMin 34 InclusiveScan 1114
+            1116:     71(ptr) AccessChain 27(data) 1111 38 30
+            1117:     19(int) CompositeExtract 1115 0
+                              Store 1116 1117
+            1118:     71(ptr) AccessChain 27(data) 1111 38 47
+            1119:     19(int) CompositeExtract 1115 1
+                              Store 1118 1119
+            1120:      6(int) Load 8(invocation)
+            1121:     78(ptr) AccessChain 27(data) 51 38
+            1122:   20(ivec4) Load 1121
+            1123:   88(ivec3) VectorShuffle 1122 1122 0 1 2
+            1124:   88(ivec3) GroupNonUniformSMin 34 InclusiveScan 1123
+            1125:     71(ptr) AccessChain 27(data) 1120 38 30
+            1126:     19(int) CompositeExtract 1124 0
+                              Store 1125 1126
+            1127:     71(ptr) AccessChain 27(data) 1120 38 47
+            1128:     19(int) CompositeExtract 1124 1
+                              Store 1127 1128
+            1129:     71(ptr) AccessChain 27(data) 1120 38 61
+            1130:     19(int) CompositeExtract 1124 2
+                              Store 1129 1130
+            1131:      6(int) Load 8(invocation)
+            1132:     78(ptr) AccessChain 27(data) 65 38
+            1133:   20(ivec4) Load 1132
+            1134:   20(ivec4) GroupNonUniformSMin 34 InclusiveScan 1133
+            1135:     78(ptr) AccessChain 27(data) 1131 38
+                              Store 1135 1134
+            1136:      6(int) Load 8(invocation)
+            1137:    105(ptr) AccessChain 27(data) 29 51 30
+            1138:      6(int) Load 1137
+            1139:      6(int) GroupNonUniformUMin 34 InclusiveScan 1138
+            1140:    105(ptr) AccessChain 27(data) 1136 51 30
+                              Store 1140 1139
+            1141:      6(int) Load 8(invocation)
+            1142:    112(ptr) AccessChain 27(data) 38 51
+            1143:   21(ivec4) Load 1142
+            1144:  111(ivec2) VectorShuffle 1143 1143 0 1
+            1145:  111(ivec2) GroupNonUniformUMin 34 InclusiveScan 1144
+            1146:    105(ptr) AccessChain 27(data) 1141 51 30
+            1147:      6(int) CompositeExtract 1145 0
+                              Store 1146 1147
+            1148:    105(ptr) AccessChain 27(data) 1141 51 47
+            1149:      6(int) CompositeExtract 1145 1
+                              Store 1148 1149
             1150:      6(int) Load 8(invocation)
-            1151:     65(ptr) AccessChain 27(data) 29 38 30
-            1152:     19(int) Load 1151
-            1153:     19(int) GroupNonUniformBitwiseAnd 34 InclusiveScan 1152
-            1154:     65(ptr) AccessChain 27(data) 1150 38 30
-                              Store 1154 1153
-            1155:      6(int) Load 8(invocation)
-            1156:     72(ptr) AccessChain 27(data) 38 38
-            1157:   20(ivec4) Load 1156
-            1158:   71(ivec2) VectorShuffle 1157 1157 0 1
-            1159:   71(ivec2) GroupNonUniformBitwiseAnd 34 InclusiveScan 1158
-            1160:     72(ptr) AccessChain 27(data) 1155 38
-            1161:   20(ivec4) Load 1160
-            1162:   20(ivec4) VectorShuffle 1161 1159 4 5 2 3
-                              Store 1160 1162
-            1163:      6(int) Load 8(invocation)
-            1164:     72(ptr) AccessChain 27(data) 49 38
-            1165:   20(ivec4) Load 1164
-            1166:   81(ivec3) VectorShuffle 1165 1165 0 1 2
-            1167:   81(ivec3) GroupNonUniformBitwiseAnd 34 InclusiveScan 1166
-            1168:     72(ptr) AccessChain 27(data) 1163 38
-            1169:   20(ivec4) Load 1168
-            1170:   20(ivec4) VectorShuffle 1169 1167 4 5 6 3
-                              Store 1168 1170
+            1151:    112(ptr) AccessChain 27(data) 51 51
+            1152:   21(ivec4) Load 1151
+            1153:  122(ivec3) VectorShuffle 1152 1152 0 1 2
+            1154:  122(ivec3) GroupNonUniformUMin 34 InclusiveScan 1153
+            1155:    105(ptr) AccessChain 27(data) 1150 51 30
+            1156:      6(int) CompositeExtract 1154 0
+                              Store 1155 1156
+            1157:    105(ptr) AccessChain 27(data) 1150 51 47
+            1158:      6(int) CompositeExtract 1154 1
+                              Store 1157 1158
+            1159:    105(ptr) AccessChain 27(data) 1150 51 61
+            1160:      6(int) CompositeExtract 1154 2
+                              Store 1159 1160
+            1161:      6(int) Load 8(invocation)
+            1162:    112(ptr) AccessChain 27(data) 65 51
+            1163:   21(ivec4) Load 1162
+            1164:   21(ivec4) GroupNonUniformUMin 34 InclusiveScan 1163
+            1165:    112(ptr) AccessChain 27(data) 1161 51
+                              Store 1165 1164
+            1166:      6(int) Load 8(invocation)
+            1167:    139(ptr) AccessChain 27(data) 29 65 30
+            1168:22(float64_t) Load 1167
+            1169:22(float64_t) GroupNonUniformFMin 34 InclusiveScan 1168
+            1170:    139(ptr) AccessChain 27(data) 1166 65 30
+                              Store 1170 1169
             1171:      6(int) Load 8(invocation)
-            1172:     72(ptr) AccessChain 27(data) 59 38
-            1173:   20(ivec4) Load 1172
-            1174:   20(ivec4) GroupNonUniformBitwiseAnd 34 InclusiveScan 1173
-            1175:     72(ptr) AccessChain 27(data) 1171 38
-                              Store 1175 1174
-            1176:      6(int) Load 8(invocation)
-            1177:     95(ptr) AccessChain 27(data) 29 49 30
-            1178:      6(int) Load 1177
-            1179:      6(int) GroupNonUniformBitwiseAnd 34 InclusiveScan 1178
-            1180:     95(ptr) AccessChain 27(data) 1176 49 30
-                              Store 1180 1179
-            1181:      6(int) Load 8(invocation)
-            1182:    102(ptr) AccessChain 27(data) 38 49
-            1183:   21(ivec4) Load 1182
-            1184:  101(ivec2) VectorShuffle 1183 1183 0 1
-            1185:  101(ivec2) GroupNonUniformBitwiseAnd 34 InclusiveScan 1184
-            1186:    102(ptr) AccessChain 27(data) 1181 49
-            1187:   21(ivec4) Load 1186
-            1188:   21(ivec4) VectorShuffle 1187 1185 4 5 2 3
-                              Store 1186 1188
-            1189:      6(int) Load 8(invocation)
-            1190:    102(ptr) AccessChain 27(data) 49 49
-            1191:   21(ivec4) Load 1190
-            1192:  111(ivec3) VectorShuffle 1191 1191 0 1 2
-            1193:  111(ivec3) GroupNonUniformBitwiseAnd 34 InclusiveScan 1192
-            1194:    102(ptr) AccessChain 27(data) 1189 49
-            1195:   21(ivec4) Load 1194
-            1196:   21(ivec4) VectorShuffle 1195 1193 4 5 6 3
-                              Store 1194 1196
-            1197:      6(int) Load 8(invocation)
-            1198:    102(ptr) AccessChain 27(data) 59 49
-            1199:   21(ivec4) Load 1198
-            1200:   21(ivec4) GroupNonUniformBitwiseAnd 34 InclusiveScan 1199
-            1201:    102(ptr) AccessChain 27(data) 1197 49
-                              Store 1201 1200
-            1202:      6(int) Load 8(invocation)
-            1203:     65(ptr) AccessChain 27(data) 29 38 30
-            1204:     19(int) Load 1203
-            1205:   521(bool) SLessThan 1204 29
-            1206:   521(bool) GroupNonUniformLogicalAnd 34 InclusiveScan 1205
-            1207:     19(int) Select 1206 38 29
-            1208:     65(ptr) AccessChain 27(data) 1202 38 30
-                              Store 1208 1207
-            1209:      6(int) Load 8(invocation)
-            1210:     72(ptr) AccessChain 27(data) 38 38
-            1211:   20(ivec4) Load 1210
-            1212:   71(ivec2) VectorShuffle 1211 1211 0 1
-            1213:  531(bvec2) SLessThan 1212 530
-            1214:  531(bvec2) GroupNonUniformLogicalAnd 34 InclusiveScan 1213
-            1215:   71(ivec2) Select 1214 534 530
-            1216:     72(ptr) AccessChain 27(data) 1209 38
-            1217:   20(ivec4) Load 1216
-            1218:   20(ivec4) VectorShuffle 1217 1215 4 5 2 3
-                              Store 1216 1218
-            1219:      6(int) Load 8(invocation)
-            1220:     72(ptr) AccessChain 27(data) 38 38
-            1221:   20(ivec4) Load 1220
-            1222:   81(ivec3) VectorShuffle 1221 1221 0 1 2
-            1223:  544(bvec3) SLessThan 1222 543
-            1224:  544(bvec3) GroupNonUniformLogicalAnd 34 InclusiveScan 1223
-            1225:   81(ivec3) Select 1224 547 543
-            1226:     72(ptr) AccessChain 27(data) 1219 38
-            1227:   20(ivec4) Load 1226
-            1228:   20(ivec4) VectorShuffle 1227 1225 4 5 6 3
-                              Store 1226 1228
-            1229:      6(int) Load 8(invocation)
-            1230:     72(ptr) AccessChain 27(data) 38 38
-            1231:   20(ivec4) Load 1230
-            1232:  556(bvec4) SLessThan 1231 555
-            1233:  556(bvec4) GroupNonUniformLogicalAnd 34 InclusiveScan 1232
-            1234:   20(ivec4) Select 1233 559 555
-            1235:     72(ptr) AccessChain 27(data) 1229 38
-                              Store 1235 1234
-            1236:      6(int) Load 8(invocation)
-            1237:     65(ptr) AccessChain 27(data) 29 38 30
-            1238:     19(int) Load 1237
-            1239:     19(int) GroupNonUniformBitwiseOr 34 InclusiveScan 1238
-            1240:     65(ptr) AccessChain 27(data) 1236 38 30
-                              Store 1240 1239
-            1241:      6(int) Load 8(invocation)
-            1242:     72(ptr) AccessChain 27(data) 38 38
-            1243:   20(ivec4) Load 1242
-            1244:   71(ivec2) VectorShuffle 1243 1243 0 1
-            1245:   71(ivec2) GroupNonUniformBitwiseOr 34 InclusiveScan 1244
-            1246:     72(ptr) AccessChain 27(data) 1241 38
-            1247:   20(ivec4) Load 1246
-            1248:   20(ivec4) VectorShuffle 1247 1245 4 5 2 3
-                              Store 1246 1248
-            1249:      6(int) Load 8(invocation)
-            1250:     72(ptr) AccessChain 27(data) 49 38
-            1251:   20(ivec4) Load 1250
-            1252:   81(ivec3) VectorShuffle 1251 1251 0 1 2
-            1253:   81(ivec3) GroupNonUniformBitwiseOr 34 InclusiveScan 1252
-            1254:     72(ptr) AccessChain 27(data) 1249 38
-            1255:   20(ivec4) Load 1254
-            1256:   20(ivec4) VectorShuffle 1255 1253 4 5 6 3
-                              Store 1254 1256
-            1257:      6(int) Load 8(invocation)
-            1258:     72(ptr) AccessChain 27(data) 59 38
-            1259:   20(ivec4) Load 1258
-            1260:   20(ivec4) GroupNonUniformBitwiseOr 34 InclusiveScan 1259
-            1261:     72(ptr) AccessChain 27(data) 1257 38
-                              Store 1261 1260
-            1262:      6(int) Load 8(invocation)
-            1263:     95(ptr) AccessChain 27(data) 29 49 30
-            1264:      6(int) Load 1263
-            1265:      6(int) GroupNonUniformBitwiseOr 34 InclusiveScan 1264
-            1266:     95(ptr) AccessChain 27(data) 1262 49 30
-                              Store 1266 1265
-            1267:      6(int) Load 8(invocation)
-            1268:    102(ptr) AccessChain 27(data) 38 49
-            1269:   21(ivec4) Load 1268
-            1270:  101(ivec2) VectorShuffle 1269 1269 0 1
-            1271:  101(ivec2) GroupNonUniformBitwiseOr 34 InclusiveScan 1270
-            1272:    102(ptr) AccessChain 27(data) 1267 49
-            1273:   21(ivec4) Load 1272
-            1274:   21(ivec4) VectorShuffle 1273 1271 4 5 2 3
-                              Store 1272 1274
-            1275:      6(int) Load 8(invocation)
-            1276:    102(ptr) AccessChain 27(data) 49 49
-            1277:   21(ivec4) Load 1276
-            1278:  111(ivec3) VectorShuffle 1277 1277 0 1 2
-            1279:  111(ivec3) GroupNonUniformBitwiseOr 34 InclusiveScan 1278
-            1280:    102(ptr) AccessChain 27(data) 1275 49
-            1281:   21(ivec4) Load 1280
-            1282:   21(ivec4) VectorShuffle 1281 1279 4 5 6 3
-                              Store 1280 1282
-            1283:      6(int) Load 8(invocation)
-            1284:    102(ptr) AccessChain 27(data) 59 49
-            1285:   21(ivec4) Load 1284
-            1286:   21(ivec4) GroupNonUniformBitwiseOr 34 InclusiveScan 1285
-            1287:    102(ptr) AccessChain 27(data) 1283 49
-                              Store 1287 1286
-            1288:      6(int) Load 8(invocation)
-            1289:     65(ptr) AccessChain 27(data) 29 38 30
-            1290:     19(int) Load 1289
-            1291:   521(bool) SLessThan 1290 29
-            1292:   521(bool) GroupNonUniformLogicalOr 34 InclusiveScan 1291
-            1293:     19(int) Select 1292 38 29
-            1294:     65(ptr) AccessChain 27(data) 1288 38 30
-                              Store 1294 1293
-            1295:      6(int) Load 8(invocation)
-            1296:     72(ptr) AccessChain 27(data) 38 38
-            1297:   20(ivec4) Load 1296
-            1298:   71(ivec2) VectorShuffle 1297 1297 0 1
-            1299:  531(bvec2) SLessThan 1298 530
-            1300:  531(bvec2) GroupNonUniformLogicalOr 34 InclusiveScan 1299
-            1301:   71(ivec2) Select 1300 534 530
-            1302:     72(ptr) AccessChain 27(data) 1295 38
-            1303:   20(ivec4) Load 1302
-            1304:   20(ivec4) VectorShuffle 1303 1301 4 5 2 3
-                              Store 1302 1304
-            1305:      6(int) Load 8(invocation)
-            1306:     72(ptr) AccessChain 27(data) 38 38
-            1307:   20(ivec4) Load 1306
-            1308:   81(ivec3) VectorShuffle 1307 1307 0 1 2
-            1309:  544(bvec3) SLessThan 1308 543
-            1310:  544(bvec3) GroupNonUniformLogicalOr 34 InclusiveScan 1309
-            1311:   81(ivec3) Select 1310 547 543
-            1312:     72(ptr) AccessChain 27(data) 1305 38
-            1313:   20(ivec4) Load 1312
-            1314:   20(ivec4) VectorShuffle 1313 1311 4 5 6 3
-                              Store 1312 1314
-            1315:      6(int) Load 8(invocation)
-            1316:     72(ptr) AccessChain 27(data) 38 38
-            1317:   20(ivec4) Load 1316
-            1318:  556(bvec4) SLessThan 1317 555
-            1319:  556(bvec4) GroupNonUniformLogicalOr 34 InclusiveScan 1318
-            1320:   20(ivec4) Select 1319 559 555
-            1321:     72(ptr) AccessChain 27(data) 1315 38
-                              Store 1321 1320
-            1322:      6(int) Load 8(invocation)
-            1323:     65(ptr) AccessChain 27(data) 29 38 30
-            1324:     19(int) Load 1323
-            1325:     19(int) GroupNonUniformBitwiseXor 34 InclusiveScan 1324
-            1326:     65(ptr) AccessChain 27(data) 1322 38 30
-                              Store 1326 1325
-            1327:      6(int) Load 8(invocation)
-            1328:     72(ptr) AccessChain 27(data) 38 38
-            1329:   20(ivec4) Load 1328
-            1330:   71(ivec2) VectorShuffle 1329 1329 0 1
-            1331:   71(ivec2) GroupNonUniformBitwiseXor 34 InclusiveScan 1330
-            1332:     72(ptr) AccessChain 27(data) 1327 38
-            1333:   20(ivec4) Load 1332
-            1334:   20(ivec4) VectorShuffle 1333 1331 4 5 2 3
-                              Store 1332 1334
-            1335:      6(int) Load 8(invocation)
-            1336:     72(ptr) AccessChain 27(data) 49 38
-            1337:   20(ivec4) Load 1336
-            1338:   81(ivec3) VectorShuffle 1337 1337 0 1 2
-            1339:   81(ivec3) GroupNonUniformBitwiseXor 34 InclusiveScan 1338
-            1340:     72(ptr) AccessChain 27(data) 1335 38
-            1341:   20(ivec4) Load 1340
-            1342:   20(ivec4) VectorShuffle 1341 1339 4 5 6 3
-                              Store 1340 1342
-            1343:      6(int) Load 8(invocation)
-            1344:     72(ptr) AccessChain 27(data) 59 38
-            1345:   20(ivec4) Load 1344
-            1346:   20(ivec4) GroupNonUniformBitwiseXor 34 InclusiveScan 1345
-            1347:     72(ptr) AccessChain 27(data) 1343 38
-                              Store 1347 1346
-            1348:      6(int) Load 8(invocation)
-            1349:     95(ptr) AccessChain 27(data) 29 49 30
-            1350:      6(int) Load 1349
-            1351:      6(int) GroupNonUniformBitwiseXor 34 InclusiveScan 1350
-            1352:     95(ptr) AccessChain 27(data) 1348 49 30
-                              Store 1352 1351
-            1353:      6(int) Load 8(invocation)
-            1354:    102(ptr) AccessChain 27(data) 38 49
-            1355:   21(ivec4) Load 1354
-            1356:  101(ivec2) VectorShuffle 1355 1355 0 1
-            1357:  101(ivec2) GroupNonUniformBitwiseXor 34 InclusiveScan 1356
-            1358:    102(ptr) AccessChain 27(data) 1353 49
-            1359:   21(ivec4) Load 1358
-            1360:   21(ivec4) VectorShuffle 1359 1357 4 5 2 3
-                              Store 1358 1360
-            1361:      6(int) Load 8(invocation)
-            1362:    102(ptr) AccessChain 27(data) 49 49
-            1363:   21(ivec4) Load 1362
-            1364:  111(ivec3) VectorShuffle 1363 1363 0 1 2
-            1365:  111(ivec3) GroupNonUniformBitwiseXor 34 InclusiveScan 1364
-            1366:    102(ptr) AccessChain 27(data) 1361 49
-            1367:   21(ivec4) Load 1366
-            1368:   21(ivec4) VectorShuffle 1367 1365 4 5 6 3
-                              Store 1366 1368
-            1369:      6(int) Load 8(invocation)
-            1370:    102(ptr) AccessChain 27(data) 59 49
-            1371:   21(ivec4) Load 1370
-            1372:   21(ivec4) GroupNonUniformBitwiseXor 34 InclusiveScan 1371
-            1373:    102(ptr) AccessChain 27(data) 1369 49
-                              Store 1373 1372
-            1374:      6(int) Load 8(invocation)
-            1375:     65(ptr) AccessChain 27(data) 29 38 30
-            1376:     19(int) Load 1375
-            1377:   521(bool) SLessThan 1376 29
-            1378:   521(bool) GroupNonUniformLogicalXor 34 InclusiveScan 1377
-            1379:     19(int) Select 1378 38 29
-            1380:     65(ptr) AccessChain 27(data) 1374 38 30
-                              Store 1380 1379
-            1381:      6(int) Load 8(invocation)
-            1382:     72(ptr) AccessChain 27(data) 38 38
-            1383:   20(ivec4) Load 1382
-            1384:   71(ivec2) VectorShuffle 1383 1383 0 1
-            1385:  531(bvec2) SLessThan 1384 530
-            1386:  531(bvec2) GroupNonUniformLogicalXor 34 InclusiveScan 1385
-            1387:   71(ivec2) Select 1386 534 530
-            1388:     72(ptr) AccessChain 27(data) 1381 38
-            1389:   20(ivec4) Load 1388
-            1390:   20(ivec4) VectorShuffle 1389 1387 4 5 2 3
-                              Store 1388 1390
-            1391:      6(int) Load 8(invocation)
-            1392:     72(ptr) AccessChain 27(data) 38 38
-            1393:   20(ivec4) Load 1392
-            1394:   81(ivec3) VectorShuffle 1393 1393 0 1 2
-            1395:  544(bvec3) SLessThan 1394 543
-            1396:  544(bvec3) GroupNonUniformLogicalXor 34 InclusiveScan 1395
-            1397:   81(ivec3) Select 1396 547 543
-            1398:     72(ptr) AccessChain 27(data) 1391 38
-            1399:   20(ivec4) Load 1398
-            1400:   20(ivec4) VectorShuffle 1399 1397 4 5 6 3
-                              Store 1398 1400
-            1401:      6(int) Load 8(invocation)
-            1402:     72(ptr) AccessChain 27(data) 38 38
-            1403:   20(ivec4) Load 1402
-            1404:  556(bvec4) SLessThan 1403 555
-            1405:  556(bvec4) GroupNonUniformLogicalXor 34 InclusiveScan 1404
-            1406:   20(ivec4) Select 1405 559 555
-            1407:     72(ptr) AccessChain 27(data) 1401 38
-                              Store 1407 1406
-            1408:      6(int) Load 8(invocation)
-            1409:     31(ptr) AccessChain 27(data) 29 29 30
-            1410:   17(float) Load 1409
-            1411:   17(float) GroupNonUniformFAdd 34 ExclusiveScan 1410
-            1412:     31(ptr) AccessChain 27(data) 1408 29 30
-                              Store 1412 1411
-            1413:      6(int) Load 8(invocation)
-            1414:     40(ptr) AccessChain 27(data) 38 29
-            1415:   18(fvec4) Load 1414
-            1416:   39(fvec2) VectorShuffle 1415 1415 0 1
-            1417:   39(fvec2) GroupNonUniformFAdd 34 ExclusiveScan 1416
-            1418:     40(ptr) AccessChain 27(data) 1413 29
-            1419:   18(fvec4) Load 1418
-            1420:   18(fvec4) VectorShuffle 1419 1417 4 5 2 3
-                              Store 1418 1420
-            1421:      6(int) Load 8(invocation)
-            1422:     40(ptr) AccessChain 27(data) 49 29
-            1423:   18(fvec4) Load 1422
-            1424:   50(fvec3) VectorShuffle 1423 1423 0 1 2
-            1425:   50(fvec3) GroupNonUniformFAdd 34 ExclusiveScan 1424
-            1426:     40(ptr) AccessChain 27(data) 1421 29
-            1427:   18(fvec4) Load 1426
-            1428:   18(fvec4) VectorShuffle 1427 1425 4 5 6 3
-                              Store 1426 1428
-            1429:      6(int) Load 8(invocation)
-            1430:     40(ptr) AccessChain 27(data) 59 29
-            1431:   18(fvec4) Load 1430
-            1432:   18(fvec4) GroupNonUniformFAdd 34 ExclusiveScan 1431
-            1433:     40(ptr) AccessChain 27(data) 1429 29
-                              Store 1433 1432
-            1434:      6(int) Load 8(invocation)
-            1435:     65(ptr) AccessChain 27(data) 29 38 30
-            1436:     19(int) Load 1435
-            1437:     19(int) GroupNonUniformIAdd 34 ExclusiveScan 1436
-            1438:     65(ptr) AccessChain 27(data) 1434 38 30
-                              Store 1438 1437
+            1172:    146(ptr) AccessChain 27(data) 38 65
+            1173: 23(f64vec4) Load 1172
+            1174:145(f64vec2) VectorShuffle 1173 1173 0 1
+            1175:145(f64vec2) GroupNonUniformFMin 34 InclusiveScan 1174
+            1176:    139(ptr) AccessChain 27(data) 1171 65 30
+            1177:22(float64_t) CompositeExtract 1175 0
+                              Store 1176 1177
+            1178:    139(ptr) AccessChain 27(data) 1171 65 47
+            1179:22(float64_t) CompositeExtract 1175 1
+                              Store 1178 1179
+            1180:      6(int) Load 8(invocation)
+            1181:    146(ptr) AccessChain 27(data) 51 65
+            1182: 23(f64vec4) Load 1181
+            1183:156(f64vec3) VectorShuffle 1182 1182 0 1 2
+            1184:156(f64vec3) GroupNonUniformFMin 34 InclusiveScan 1183
+            1185:    139(ptr) AccessChain 27(data) 1180 65 30
+            1186:22(float64_t) CompositeExtract 1184 0
+                              Store 1185 1186
+            1187:    139(ptr) AccessChain 27(data) 1180 65 47
+            1188:22(float64_t) CompositeExtract 1184 1
+                              Store 1187 1188
+            1189:    139(ptr) AccessChain 27(data) 1180 65 61
+            1190:22(float64_t) CompositeExtract 1184 2
+                              Store 1189 1190
+            1191:      6(int) Load 8(invocation)
+            1192:    146(ptr) AccessChain 27(data) 65 65
+            1193: 23(f64vec4) Load 1192
+            1194: 23(f64vec4) GroupNonUniformFMin 34 InclusiveScan 1193
+            1195:    146(ptr) AccessChain 27(data) 1191 65
+                              Store 1195 1194
+            1196:      6(int) Load 8(invocation)
+            1197:     31(ptr) AccessChain 27(data) 29 29 30
+            1198:   17(float) Load 1197
+            1199:   17(float) GroupNonUniformFMax 34 InclusiveScan 1198
+            1200:     31(ptr) AccessChain 27(data) 1196 29 30
+                              Store 1200 1199
+            1201:      6(int) Load 8(invocation)
+            1202:     40(ptr) AccessChain 27(data) 38 29
+            1203:   18(fvec4) Load 1202
+            1204:   39(fvec2) VectorShuffle 1203 1203 0 1
+            1205:   39(fvec2) GroupNonUniformFMax 34 InclusiveScan 1204
+            1206:     31(ptr) AccessChain 27(data) 1201 29 30
+            1207:   17(float) CompositeExtract 1205 0
+                              Store 1206 1207
+            1208:     31(ptr) AccessChain 27(data) 1201 29 47
+            1209:   17(float) CompositeExtract 1205 1
+                              Store 1208 1209
+            1210:      6(int) Load 8(invocation)
+            1211:     40(ptr) AccessChain 27(data) 51 29
+            1212:   18(fvec4) Load 1211
+            1213:   52(fvec3) VectorShuffle 1212 1212 0 1 2
+            1214:   52(fvec3) GroupNonUniformFMax 34 InclusiveScan 1213
+            1215:     31(ptr) AccessChain 27(data) 1210 29 30
+            1216:   17(float) CompositeExtract 1214 0
+                              Store 1215 1216
+            1217:     31(ptr) AccessChain 27(data) 1210 29 47
+            1218:   17(float) CompositeExtract 1214 1
+                              Store 1217 1218
+            1219:     31(ptr) AccessChain 27(data) 1210 29 61
+            1220:   17(float) CompositeExtract 1214 2
+                              Store 1219 1220
+            1221:      6(int) Load 8(invocation)
+            1222:     40(ptr) AccessChain 27(data) 65 29
+            1223:   18(fvec4) Load 1222
+            1224:   18(fvec4) GroupNonUniformFMax 34 InclusiveScan 1223
+            1225:     40(ptr) AccessChain 27(data) 1221 29
+                              Store 1225 1224
+            1226:      6(int) Load 8(invocation)
+            1227:     71(ptr) AccessChain 27(data) 29 38 30
+            1228:     19(int) Load 1227
+            1229:     19(int) GroupNonUniformSMax 34 InclusiveScan 1228
+            1230:     71(ptr) AccessChain 27(data) 1226 38 30
+                              Store 1230 1229
+            1231:      6(int) Load 8(invocation)
+            1232:     78(ptr) AccessChain 27(data) 38 38
+            1233:   20(ivec4) Load 1232
+            1234:   77(ivec2) VectorShuffle 1233 1233 0 1
+            1235:   77(ivec2) GroupNonUniformSMax 34 InclusiveScan 1234
+            1236:     71(ptr) AccessChain 27(data) 1231 38 30
+            1237:     19(int) CompositeExtract 1235 0
+                              Store 1236 1237
+            1238:     71(ptr) AccessChain 27(data) 1231 38 47
+            1239:     19(int) CompositeExtract 1235 1
+                              Store 1238 1239
+            1240:      6(int) Load 8(invocation)
+            1241:     78(ptr) AccessChain 27(data) 51 38
+            1242:   20(ivec4) Load 1241
+            1243:   88(ivec3) VectorShuffle 1242 1242 0 1 2
+            1244:   88(ivec3) GroupNonUniformSMax 34 InclusiveScan 1243
+            1245:     71(ptr) AccessChain 27(data) 1240 38 30
+            1246:     19(int) CompositeExtract 1244 0
+                              Store 1245 1246
+            1247:     71(ptr) AccessChain 27(data) 1240 38 47
+            1248:     19(int) CompositeExtract 1244 1
+                              Store 1247 1248
+            1249:     71(ptr) AccessChain 27(data) 1240 38 61
+            1250:     19(int) CompositeExtract 1244 2
+                              Store 1249 1250
+            1251:      6(int) Load 8(invocation)
+            1252:     78(ptr) AccessChain 27(data) 65 38
+            1253:   20(ivec4) Load 1252
+            1254:   20(ivec4) GroupNonUniformSMax 34 InclusiveScan 1253
+            1255:     78(ptr) AccessChain 27(data) 1251 38
+                              Store 1255 1254
+            1256:      6(int) Load 8(invocation)
+            1257:    105(ptr) AccessChain 27(data) 29 51 30
+            1258:      6(int) Load 1257
+            1259:      6(int) GroupNonUniformUMax 34 InclusiveScan 1258
+            1260:    105(ptr) AccessChain 27(data) 1256 51 30
+                              Store 1260 1259
+            1261:      6(int) Load 8(invocation)
+            1262:    112(ptr) AccessChain 27(data) 38 51
+            1263:   21(ivec4) Load 1262
+            1264:  111(ivec2) VectorShuffle 1263 1263 0 1
+            1265:  111(ivec2) GroupNonUniformUMax 34 InclusiveScan 1264
+            1266:    105(ptr) AccessChain 27(data) 1261 51 30
+            1267:      6(int) CompositeExtract 1265 0
+                              Store 1266 1267
+            1268:    105(ptr) AccessChain 27(data) 1261 51 47
+            1269:      6(int) CompositeExtract 1265 1
+                              Store 1268 1269
+            1270:      6(int) Load 8(invocation)
+            1271:    112(ptr) AccessChain 27(data) 51 51
+            1272:   21(ivec4) Load 1271
+            1273:  122(ivec3) VectorShuffle 1272 1272 0 1 2
+            1274:  122(ivec3) GroupNonUniformUMax 34 InclusiveScan 1273
+            1275:    105(ptr) AccessChain 27(data) 1270 51 30
+            1276:      6(int) CompositeExtract 1274 0
+                              Store 1275 1276
+            1277:    105(ptr) AccessChain 27(data) 1270 51 47
+            1278:      6(int) CompositeExtract 1274 1
+                              Store 1277 1278
+            1279:    105(ptr) AccessChain 27(data) 1270 51 61
+            1280:      6(int) CompositeExtract 1274 2
+                              Store 1279 1280
+            1281:      6(int) Load 8(invocation)
+            1282:    112(ptr) AccessChain 27(data) 65 51
+            1283:   21(ivec4) Load 1282
+            1284:   21(ivec4) GroupNonUniformUMax 34 InclusiveScan 1283
+            1285:    112(ptr) AccessChain 27(data) 1281 51
+                              Store 1285 1284
+            1286:      6(int) Load 8(invocation)
+            1287:    139(ptr) AccessChain 27(data) 29 65 30
+            1288:22(float64_t) Load 1287
+            1289:22(float64_t) GroupNonUniformFMax 34 InclusiveScan 1288
+            1290:    139(ptr) AccessChain 27(data) 1286 65 30
+                              Store 1290 1289
+            1291:      6(int) Load 8(invocation)
+            1292:    146(ptr) AccessChain 27(data) 38 65
+            1293: 23(f64vec4) Load 1292
+            1294:145(f64vec2) VectorShuffle 1293 1293 0 1
+            1295:145(f64vec2) GroupNonUniformFMax 34 InclusiveScan 1294
+            1296:    139(ptr) AccessChain 27(data) 1291 65 30
+            1297:22(float64_t) CompositeExtract 1295 0
+                              Store 1296 1297
+            1298:    139(ptr) AccessChain 27(data) 1291 65 47
+            1299:22(float64_t) CompositeExtract 1295 1
+                              Store 1298 1299
+            1300:      6(int) Load 8(invocation)
+            1301:    146(ptr) AccessChain 27(data) 51 65
+            1302: 23(f64vec4) Load 1301
+            1303:156(f64vec3) VectorShuffle 1302 1302 0 1 2
+            1304:156(f64vec3) GroupNonUniformFMax 34 InclusiveScan 1303
+            1305:    139(ptr) AccessChain 27(data) 1300 65 30
+            1306:22(float64_t) CompositeExtract 1304 0
+                              Store 1305 1306
+            1307:    139(ptr) AccessChain 27(data) 1300 65 47
+            1308:22(float64_t) CompositeExtract 1304 1
+                              Store 1307 1308
+            1309:    139(ptr) AccessChain 27(data) 1300 65 61
+            1310:22(float64_t) CompositeExtract 1304 2
+                              Store 1309 1310
+            1311:      6(int) Load 8(invocation)
+            1312:    146(ptr) AccessChain 27(data) 65 65
+            1313: 23(f64vec4) Load 1312
+            1314: 23(f64vec4) GroupNonUniformFMax 34 InclusiveScan 1313
+            1315:    146(ptr) AccessChain 27(data) 1311 65
+                              Store 1315 1314
+            1316:      6(int) Load 8(invocation)
+            1317:     71(ptr) AccessChain 27(data) 29 38 30
+            1318:     19(int) Load 1317
+            1319:     19(int) GroupNonUniformBitwiseAnd 34 InclusiveScan 1318
+            1320:     71(ptr) AccessChain 27(data) 1316 38 30
+                              Store 1320 1319
+            1321:      6(int) Load 8(invocation)
+            1322:     78(ptr) AccessChain 27(data) 38 38
+            1323:   20(ivec4) Load 1322
+            1324:   77(ivec2) VectorShuffle 1323 1323 0 1
+            1325:   77(ivec2) GroupNonUniformBitwiseAnd 34 InclusiveScan 1324
+            1326:     71(ptr) AccessChain 27(data) 1321 38 30
+            1327:     19(int) CompositeExtract 1325 0
+                              Store 1326 1327
+            1328:     71(ptr) AccessChain 27(data) 1321 38 47
+            1329:     19(int) CompositeExtract 1325 1
+                              Store 1328 1329
+            1330:      6(int) Load 8(invocation)
+            1331:     78(ptr) AccessChain 27(data) 51 38
+            1332:   20(ivec4) Load 1331
+            1333:   88(ivec3) VectorShuffle 1332 1332 0 1 2
+            1334:   88(ivec3) GroupNonUniformBitwiseAnd 34 InclusiveScan 1333
+            1335:     71(ptr) AccessChain 27(data) 1330 38 30
+            1336:     19(int) CompositeExtract 1334 0
+                              Store 1335 1336
+            1337:     71(ptr) AccessChain 27(data) 1330 38 47
+            1338:     19(int) CompositeExtract 1334 1
+                              Store 1337 1338
+            1339:     71(ptr) AccessChain 27(data) 1330 38 61
+            1340:     19(int) CompositeExtract 1334 2
+                              Store 1339 1340
+            1341:      6(int) Load 8(invocation)
+            1342:     78(ptr) AccessChain 27(data) 65 38
+            1343:   20(ivec4) Load 1342
+            1344:   20(ivec4) GroupNonUniformBitwiseAnd 34 InclusiveScan 1343
+            1345:     78(ptr) AccessChain 27(data) 1341 38
+                              Store 1345 1344
+            1346:      6(int) Load 8(invocation)
+            1347:    105(ptr) AccessChain 27(data) 29 51 30
+            1348:      6(int) Load 1347
+            1349:      6(int) GroupNonUniformBitwiseAnd 34 InclusiveScan 1348
+            1350:    105(ptr) AccessChain 27(data) 1346 51 30
+                              Store 1350 1349
+            1351:      6(int) Load 8(invocation)
+            1352:    112(ptr) AccessChain 27(data) 38 51
+            1353:   21(ivec4) Load 1352
+            1354:  111(ivec2) VectorShuffle 1353 1353 0 1
+            1355:  111(ivec2) GroupNonUniformBitwiseAnd 34 InclusiveScan 1354
+            1356:    105(ptr) AccessChain 27(data) 1351 51 30
+            1357:      6(int) CompositeExtract 1355 0
+                              Store 1356 1357
+            1358:    105(ptr) AccessChain 27(data) 1351 51 47
+            1359:      6(int) CompositeExtract 1355 1
+                              Store 1358 1359
+            1360:      6(int) Load 8(invocation)
+            1361:    112(ptr) AccessChain 27(data) 51 51
+            1362:   21(ivec4) Load 1361
+            1363:  122(ivec3) VectorShuffle 1362 1362 0 1 2
+            1364:  122(ivec3) GroupNonUniformBitwiseAnd 34 InclusiveScan 1363
+            1365:    105(ptr) AccessChain 27(data) 1360 51 30
+            1366:      6(int) CompositeExtract 1364 0
+                              Store 1365 1366
+            1367:    105(ptr) AccessChain 27(data) 1360 51 47
+            1368:      6(int) CompositeExtract 1364 1
+                              Store 1367 1368
+            1369:    105(ptr) AccessChain 27(data) 1360 51 61
+            1370:      6(int) CompositeExtract 1364 2
+                              Store 1369 1370
+            1371:      6(int) Load 8(invocation)
+            1372:    112(ptr) AccessChain 27(data) 65 51
+            1373:   21(ivec4) Load 1372
+            1374:   21(ivec4) GroupNonUniformBitwiseAnd 34 InclusiveScan 1373
+            1375:    112(ptr) AccessChain 27(data) 1371 51
+                              Store 1375 1374
+            1376:      6(int) Load 8(invocation)
+            1377:     71(ptr) AccessChain 27(data) 29 38 30
+            1378:     19(int) Load 1377
+            1379:   595(bool) SLessThan 1378 29
+            1380:   595(bool) GroupNonUniformLogicalAnd 34 InclusiveScan 1379
+            1381:     19(int) Select 1380 38 29
+            1382:     71(ptr) AccessChain 27(data) 1376 38 30
+                              Store 1382 1381
+            1383:      6(int) Load 8(invocation)
+            1384:     78(ptr) AccessChain 27(data) 38 38
+            1385:   20(ivec4) Load 1384
+            1386:   77(ivec2) VectorShuffle 1385 1385 0 1
+            1387:  605(bvec2) SLessThan 1386 604
+            1388:  605(bvec2) GroupNonUniformLogicalAnd 34 InclusiveScan 1387
+            1389:   77(ivec2) Select 1388 608 604
+            1390:     71(ptr) AccessChain 27(data) 1383 38 30
+            1391:     19(int) CompositeExtract 1389 0
+                              Store 1390 1391
+            1392:     71(ptr) AccessChain 27(data) 1383 38 47
+            1393:     19(int) CompositeExtract 1389 1
+                              Store 1392 1393
+            1394:      6(int) Load 8(invocation)
+            1395:     78(ptr) AccessChain 27(data) 38 38
+            1396:   20(ivec4) Load 1395
+            1397:   88(ivec3) VectorShuffle 1396 1396 0 1 2
+            1398:  619(bvec3) SLessThan 1397 618
+            1399:  619(bvec3) GroupNonUniformLogicalAnd 34 InclusiveScan 1398
+            1400:   88(ivec3) Select 1399 622 618
+            1401:     71(ptr) AccessChain 27(data) 1394 38 30
+            1402:     19(int) CompositeExtract 1400 0
+                              Store 1401 1402
+            1403:     71(ptr) AccessChain 27(data) 1394 38 47
+            1404:     19(int) CompositeExtract 1400 1
+                              Store 1403 1404
+            1405:     71(ptr) AccessChain 27(data) 1394 38 61
+            1406:     19(int) CompositeExtract 1400 2
+                              Store 1405 1406
+            1407:      6(int) Load 8(invocation)
+            1408:     78(ptr) AccessChain 27(data) 38 38
+            1409:   20(ivec4) Load 1408
+            1410:  634(bvec4) SLessThan 1409 633
+            1411:  634(bvec4) GroupNonUniformLogicalAnd 34 InclusiveScan 1410
+            1412:   20(ivec4) Select 1411 637 633
+            1413:     78(ptr) AccessChain 27(data) 1407 38
+                              Store 1413 1412
+            1414:      6(int) Load 8(invocation)
+            1415:     71(ptr) AccessChain 27(data) 29 38 30
+            1416:     19(int) Load 1415
+            1417:     19(int) GroupNonUniformBitwiseOr 34 InclusiveScan 1416
+            1418:     71(ptr) AccessChain 27(data) 1414 38 30
+                              Store 1418 1417
+            1419:      6(int) Load 8(invocation)
+            1420:     78(ptr) AccessChain 27(data) 38 38
+            1421:   20(ivec4) Load 1420
+            1422:   77(ivec2) VectorShuffle 1421 1421 0 1
+            1423:   77(ivec2) GroupNonUniformBitwiseOr 34 InclusiveScan 1422
+            1424:     71(ptr) AccessChain 27(data) 1419 38 30
+            1425:     19(int) CompositeExtract 1423 0
+                              Store 1424 1425
+            1426:     71(ptr) AccessChain 27(data) 1419 38 47
+            1427:     19(int) CompositeExtract 1423 1
+                              Store 1426 1427
+            1428:      6(int) Load 8(invocation)
+            1429:     78(ptr) AccessChain 27(data) 51 38
+            1430:   20(ivec4) Load 1429
+            1431:   88(ivec3) VectorShuffle 1430 1430 0 1 2
+            1432:   88(ivec3) GroupNonUniformBitwiseOr 34 InclusiveScan 1431
+            1433:     71(ptr) AccessChain 27(data) 1428 38 30
+            1434:     19(int) CompositeExtract 1432 0
+                              Store 1433 1434
+            1435:     71(ptr) AccessChain 27(data) 1428 38 47
+            1436:     19(int) CompositeExtract 1432 1
+                              Store 1435 1436
+            1437:     71(ptr) AccessChain 27(data) 1428 38 61
+            1438:     19(int) CompositeExtract 1432 2
+                              Store 1437 1438
             1439:      6(int) Load 8(invocation)
-            1440:     72(ptr) AccessChain 27(data) 38 38
+            1440:     78(ptr) AccessChain 27(data) 65 38
             1441:   20(ivec4) Load 1440
-            1442:   71(ivec2) VectorShuffle 1441 1441 0 1
-            1443:   71(ivec2) GroupNonUniformIAdd 34 ExclusiveScan 1442
-            1444:     72(ptr) AccessChain 27(data) 1439 38
-            1445:   20(ivec4) Load 1444
-            1446:   20(ivec4) VectorShuffle 1445 1443 4 5 2 3
-                              Store 1444 1446
-            1447:      6(int) Load 8(invocation)
-            1448:     72(ptr) AccessChain 27(data) 49 38
-            1449:   20(ivec4) Load 1448
-            1450:   81(ivec3) VectorShuffle 1449 1449 0 1 2
-            1451:   81(ivec3) GroupNonUniformIAdd 34 ExclusiveScan 1450
-            1452:     72(ptr) AccessChain 27(data) 1447 38
-            1453:   20(ivec4) Load 1452
-            1454:   20(ivec4) VectorShuffle 1453 1451 4 5 6 3
-                              Store 1452 1454
-            1455:      6(int) Load 8(invocation)
-            1456:     72(ptr) AccessChain 27(data) 59 38
-            1457:   20(ivec4) Load 1456
-            1458:   20(ivec4) GroupNonUniformIAdd 34 ExclusiveScan 1457
-            1459:     72(ptr) AccessChain 27(data) 1455 38
-                              Store 1459 1458
-            1460:      6(int) Load 8(invocation)
-            1461:     95(ptr) AccessChain 27(data) 29 49 30
-            1462:      6(int) Load 1461
-            1463:      6(int) GroupNonUniformIAdd 34 ExclusiveScan 1462
-            1464:     95(ptr) AccessChain 27(data) 1460 49 30
-                              Store 1464 1463
-            1465:      6(int) Load 8(invocation)
-            1466:    102(ptr) AccessChain 27(data) 38 49
-            1467:   21(ivec4) Load 1466
-            1468:  101(ivec2) VectorShuffle 1467 1467 0 1
-            1469:  101(ivec2) GroupNonUniformIAdd 34 ExclusiveScan 1468
-            1470:    102(ptr) AccessChain 27(data) 1465 49
+            1442:   20(ivec4) GroupNonUniformBitwiseOr 34 InclusiveScan 1441
+            1443:     78(ptr) AccessChain 27(data) 1439 38
+                              Store 1443 1442
+            1444:      6(int) Load 8(invocation)
+            1445:    105(ptr) AccessChain 27(data) 29 51 30
+            1446:      6(int) Load 1445
+            1447:      6(int) GroupNonUniformBitwiseOr 34 InclusiveScan 1446
+            1448:    105(ptr) AccessChain 27(data) 1444 51 30
+                              Store 1448 1447
+            1449:      6(int) Load 8(invocation)
+            1450:    112(ptr) AccessChain 27(data) 38 51
+            1451:   21(ivec4) Load 1450
+            1452:  111(ivec2) VectorShuffle 1451 1451 0 1
+            1453:  111(ivec2) GroupNonUniformBitwiseOr 34 InclusiveScan 1452
+            1454:    105(ptr) AccessChain 27(data) 1449 51 30
+            1455:      6(int) CompositeExtract 1453 0
+                              Store 1454 1455
+            1456:    105(ptr) AccessChain 27(data) 1449 51 47
+            1457:      6(int) CompositeExtract 1453 1
+                              Store 1456 1457
+            1458:      6(int) Load 8(invocation)
+            1459:    112(ptr) AccessChain 27(data) 51 51
+            1460:   21(ivec4) Load 1459
+            1461:  122(ivec3) VectorShuffle 1460 1460 0 1 2
+            1462:  122(ivec3) GroupNonUniformBitwiseOr 34 InclusiveScan 1461
+            1463:    105(ptr) AccessChain 27(data) 1458 51 30
+            1464:      6(int) CompositeExtract 1462 0
+                              Store 1463 1464
+            1465:    105(ptr) AccessChain 27(data) 1458 51 47
+            1466:      6(int) CompositeExtract 1462 1
+                              Store 1465 1466
+            1467:    105(ptr) AccessChain 27(data) 1458 51 61
+            1468:      6(int) CompositeExtract 1462 2
+                              Store 1467 1468
+            1469:      6(int) Load 8(invocation)
+            1470:    112(ptr) AccessChain 27(data) 65 51
             1471:   21(ivec4) Load 1470
-            1472:   21(ivec4) VectorShuffle 1471 1469 4 5 2 3
-                              Store 1470 1472
-            1473:      6(int) Load 8(invocation)
-            1474:    102(ptr) AccessChain 27(data) 49 49
-            1475:   21(ivec4) Load 1474
-            1476:  111(ivec3) VectorShuffle 1475 1475 0 1 2
-            1477:  111(ivec3) GroupNonUniformIAdd 34 ExclusiveScan 1476
-            1478:    102(ptr) AccessChain 27(data) 1473 49
-            1479:   21(ivec4) Load 1478
-            1480:   21(ivec4) VectorShuffle 1479 1477 4 5 6 3
-                              Store 1478 1480
+            1472:   21(ivec4) GroupNonUniformBitwiseOr 34 InclusiveScan 1471
+            1473:    112(ptr) AccessChain 27(data) 1469 51
+                              Store 1473 1472
+            1474:      6(int) Load 8(invocation)
+            1475:     71(ptr) AccessChain 27(data) 29 38 30
+            1476:     19(int) Load 1475
+            1477:   595(bool) SLessThan 1476 29
+            1478:   595(bool) GroupNonUniformLogicalOr 34 InclusiveScan 1477
+            1479:     19(int) Select 1478 38 29
+            1480:     71(ptr) AccessChain 27(data) 1474 38 30
+                              Store 1480 1479
             1481:      6(int) Load 8(invocation)
-            1482:    102(ptr) AccessChain 27(data) 59 49
-            1483:   21(ivec4) Load 1482
-            1484:   21(ivec4) GroupNonUniformIAdd 34 ExclusiveScan 1483
-            1485:    102(ptr) AccessChain 27(data) 1481 49
-                              Store 1485 1484
-            1486:      6(int) Load 8(invocation)
-            1487:    125(ptr) AccessChain 27(data) 29 59 30
-            1488:22(float64_t) Load 1487
-            1489:22(float64_t) GroupNonUniformFAdd 34 ExclusiveScan 1488
-            1490:    125(ptr) AccessChain 27(data) 1486 59 30
-                              Store 1490 1489
-            1491:      6(int) Load 8(invocation)
-            1492:    132(ptr) AccessChain 27(data) 38 59
-            1493: 23(f64vec4) Load 1492
-            1494:131(f64vec2) VectorShuffle 1493 1493 0 1
-            1495:131(f64vec2) GroupNonUniformFAdd 34 ExclusiveScan 1494
-            1496:    132(ptr) AccessChain 27(data) 1491 59
-            1497: 23(f64vec4) Load 1496
-            1498: 23(f64vec4) VectorShuffle 1497 1495 4 5 2 3
-                              Store 1496 1498
-            1499:      6(int) Load 8(invocation)
-            1500:    132(ptr) AccessChain 27(data) 49 59
-            1501: 23(f64vec4) Load 1500
-            1502:141(f64vec3) VectorShuffle 1501 1501 0 1 2
-            1503:141(f64vec3) GroupNonUniformFAdd 34 ExclusiveScan 1502
-            1504:    132(ptr) AccessChain 27(data) 1499 59
-            1505: 23(f64vec4) Load 1504
-            1506: 23(f64vec4) VectorShuffle 1505 1503 4 5 6 3
-                              Store 1504 1506
-            1507:      6(int) Load 8(invocation)
-            1508:    132(ptr) AccessChain 27(data) 59 59
-            1509: 23(f64vec4) Load 1508
-            1510: 23(f64vec4) GroupNonUniformFAdd 34 ExclusiveScan 1509
-            1511:    132(ptr) AccessChain 27(data) 1507 59
+            1482:     78(ptr) AccessChain 27(data) 38 38
+            1483:   20(ivec4) Load 1482
+            1484:   77(ivec2) VectorShuffle 1483 1483 0 1
+            1485:  605(bvec2) SLessThan 1484 604
+            1486:  605(bvec2) GroupNonUniformLogicalOr 34 InclusiveScan 1485
+            1487:   77(ivec2) Select 1486 608 604
+            1488:     71(ptr) AccessChain 27(data) 1481 38 30
+            1489:     19(int) CompositeExtract 1487 0
+                              Store 1488 1489
+            1490:     71(ptr) AccessChain 27(data) 1481 38 47
+            1491:     19(int) CompositeExtract 1487 1
+                              Store 1490 1491
+            1492:      6(int) Load 8(invocation)
+            1493:     78(ptr) AccessChain 27(data) 38 38
+            1494:   20(ivec4) Load 1493
+            1495:   88(ivec3) VectorShuffle 1494 1494 0 1 2
+            1496:  619(bvec3) SLessThan 1495 618
+            1497:  619(bvec3) GroupNonUniformLogicalOr 34 InclusiveScan 1496
+            1498:   88(ivec3) Select 1497 622 618
+            1499:     71(ptr) AccessChain 27(data) 1492 38 30
+            1500:     19(int) CompositeExtract 1498 0
+                              Store 1499 1500
+            1501:     71(ptr) AccessChain 27(data) 1492 38 47
+            1502:     19(int) CompositeExtract 1498 1
+                              Store 1501 1502
+            1503:     71(ptr) AccessChain 27(data) 1492 38 61
+            1504:     19(int) CompositeExtract 1498 2
+                              Store 1503 1504
+            1505:      6(int) Load 8(invocation)
+            1506:     78(ptr) AccessChain 27(data) 38 38
+            1507:   20(ivec4) Load 1506
+            1508:  634(bvec4) SLessThan 1507 633
+            1509:  634(bvec4) GroupNonUniformLogicalOr 34 InclusiveScan 1508
+            1510:   20(ivec4) Select 1509 637 633
+            1511:     78(ptr) AccessChain 27(data) 1505 38
                               Store 1511 1510
             1512:      6(int) Load 8(invocation)
-            1513:     31(ptr) AccessChain 27(data) 29 29 30
-            1514:   17(float) Load 1513
-            1515:   17(float) GroupNonUniformFMul 34 ExclusiveScan 1514
-            1516:     31(ptr) AccessChain 27(data) 1512 29 30
+            1513:     71(ptr) AccessChain 27(data) 29 38 30
+            1514:     19(int) Load 1513
+            1515:     19(int) GroupNonUniformBitwiseXor 34 InclusiveScan 1514
+            1516:     71(ptr) AccessChain 27(data) 1512 38 30
                               Store 1516 1515
             1517:      6(int) Load 8(invocation)
-            1518:     40(ptr) AccessChain 27(data) 38 29
-            1519:   18(fvec4) Load 1518
-            1520:   39(fvec2) VectorShuffle 1519 1519 0 1
-            1521:   39(fvec2) GroupNonUniformFMul 34 ExclusiveScan 1520
-            1522:     40(ptr) AccessChain 27(data) 1517 29
-            1523:   18(fvec4) Load 1522
-            1524:   18(fvec4) VectorShuffle 1523 1521 4 5 2 3
-                              Store 1522 1524
-            1525:      6(int) Load 8(invocation)
-            1526:     40(ptr) AccessChain 27(data) 49 29
-            1527:   18(fvec4) Load 1526
-            1528:   50(fvec3) VectorShuffle 1527 1527 0 1 2
-            1529:   50(fvec3) GroupNonUniformFMul 34 ExclusiveScan 1528
-            1530:     40(ptr) AccessChain 27(data) 1525 29
-            1531:   18(fvec4) Load 1530
-            1532:   18(fvec4) VectorShuffle 1531 1529 4 5 6 3
-                              Store 1530 1532
-            1533:      6(int) Load 8(invocation)
-            1534:     40(ptr) AccessChain 27(data) 59 29
-            1535:   18(fvec4) Load 1534
-            1536:   18(fvec4) GroupNonUniformFMul 34 ExclusiveScan 1535
-            1537:     40(ptr) AccessChain 27(data) 1533 29
-                              Store 1537 1536
-            1538:      6(int) Load 8(invocation)
-            1539:     65(ptr) AccessChain 27(data) 29 38 30
-            1540:     19(int) Load 1539
-            1541:     19(int) GroupNonUniformIMul 34 ExclusiveScan 1540
-            1542:     65(ptr) AccessChain 27(data) 1538 38 30
-                              Store 1542 1541
-            1543:      6(int) Load 8(invocation)
-            1544:     72(ptr) AccessChain 27(data) 38 38
-            1545:   20(ivec4) Load 1544
-            1546:   71(ivec2) VectorShuffle 1545 1545 0 1
-            1547:   71(ivec2) GroupNonUniformIMul 34 ExclusiveScan 1546
-            1548:     72(ptr) AccessChain 27(data) 1543 38
-            1549:   20(ivec4) Load 1548
-            1550:   20(ivec4) VectorShuffle 1549 1547 4 5 2 3
-                              Store 1548 1550
-            1551:      6(int) Load 8(invocation)
-            1552:     72(ptr) AccessChain 27(data) 49 38
-            1553:   20(ivec4) Load 1552
-            1554:   81(ivec3) VectorShuffle 1553 1553 0 1 2
-            1555:   81(ivec3) GroupNonUniformIMul 34 ExclusiveScan 1554
-            1556:     72(ptr) AccessChain 27(data) 1551 38
-            1557:   20(ivec4) Load 1556
-            1558:   20(ivec4) VectorShuffle 1557 1555 4 5 6 3
-                              Store 1556 1558
-            1559:      6(int) Load 8(invocation)
-            1560:     72(ptr) AccessChain 27(data) 59 38
-            1561:   20(ivec4) Load 1560
-            1562:   20(ivec4) GroupNonUniformIMul 34 ExclusiveScan 1561
-            1563:     72(ptr) AccessChain 27(data) 1559 38
-                              Store 1563 1562
-            1564:      6(int) Load 8(invocation)
-            1565:     95(ptr) AccessChain 27(data) 29 49 30
-            1566:      6(int) Load 1565
-            1567:      6(int) GroupNonUniformIMul 34 ExclusiveScan 1566
-            1568:     95(ptr) AccessChain 27(data) 1564 49 30
-                              Store 1568 1567
-            1569:      6(int) Load 8(invocation)
-            1570:    102(ptr) AccessChain 27(data) 38 49
-            1571:   21(ivec4) Load 1570
-            1572:  101(ivec2) VectorShuffle 1571 1571 0 1
-            1573:  101(ivec2) GroupNonUniformIMul 34 ExclusiveScan 1572
-            1574:    102(ptr) AccessChain 27(data) 1569 49
-            1575:   21(ivec4) Load 1574
-            1576:   21(ivec4) VectorShuffle 1575 1573 4 5 2 3
-                              Store 1574 1576
-            1577:      6(int) Load 8(invocation)
-            1578:    102(ptr) AccessChain 27(data) 49 49
-            1579:   21(ivec4) Load 1578
-            1580:  111(ivec3) VectorShuffle 1579 1579 0 1 2
-            1581:  111(ivec3) GroupNonUniformIMul 34 ExclusiveScan 1580
-            1582:    102(ptr) AccessChain 27(data) 1577 49
-            1583:   21(ivec4) Load 1582
-            1584:   21(ivec4) VectorShuffle 1583 1581 4 5 6 3
-                              Store 1582 1584
-            1585:      6(int) Load 8(invocation)
-            1586:    102(ptr) AccessChain 27(data) 59 49
-            1587:   21(ivec4) Load 1586
-            1588:   21(ivec4) GroupNonUniformIMul 34 ExclusiveScan 1587
-            1589:    102(ptr) AccessChain 27(data) 1585 49
-                              Store 1589 1588
+            1518:     78(ptr) AccessChain 27(data) 38 38
+            1519:   20(ivec4) Load 1518
+            1520:   77(ivec2) VectorShuffle 1519 1519 0 1
+            1521:   77(ivec2) GroupNonUniformBitwiseXor 34 InclusiveScan 1520
+            1522:     71(ptr) AccessChain 27(data) 1517 38 30
+            1523:     19(int) CompositeExtract 1521 0
+                              Store 1522 1523
+            1524:     71(ptr) AccessChain 27(data) 1517 38 47
+            1525:     19(int) CompositeExtract 1521 1
+                              Store 1524 1525
+            1526:      6(int) Load 8(invocation)
+            1527:     78(ptr) AccessChain 27(data) 51 38
+            1528:   20(ivec4) Load 1527
+            1529:   88(ivec3) VectorShuffle 1528 1528 0 1 2
+            1530:   88(ivec3) GroupNonUniformBitwiseXor 34 InclusiveScan 1529
+            1531:     71(ptr) AccessChain 27(data) 1526 38 30
+            1532:     19(int) CompositeExtract 1530 0
+                              Store 1531 1532
+            1533:     71(ptr) AccessChain 27(data) 1526 38 47
+            1534:     19(int) CompositeExtract 1530 1
+                              Store 1533 1534
+            1535:     71(ptr) AccessChain 27(data) 1526 38 61
+            1536:     19(int) CompositeExtract 1530 2
+                              Store 1535 1536
+            1537:      6(int) Load 8(invocation)
+            1538:     78(ptr) AccessChain 27(data) 65 38
+            1539:   20(ivec4) Load 1538
+            1540:   20(ivec4) GroupNonUniformBitwiseXor 34 InclusiveScan 1539
+            1541:     78(ptr) AccessChain 27(data) 1537 38
+                              Store 1541 1540
+            1542:      6(int) Load 8(invocation)
+            1543:    105(ptr) AccessChain 27(data) 29 51 30
+            1544:      6(int) Load 1543
+            1545:      6(int) GroupNonUniformBitwiseXor 34 InclusiveScan 1544
+            1546:    105(ptr) AccessChain 27(data) 1542 51 30
+                              Store 1546 1545
+            1547:      6(int) Load 8(invocation)
+            1548:    112(ptr) AccessChain 27(data) 38 51
+            1549:   21(ivec4) Load 1548
+            1550:  111(ivec2) VectorShuffle 1549 1549 0 1
+            1551:  111(ivec2) GroupNonUniformBitwiseXor 34 InclusiveScan 1550
+            1552:    105(ptr) AccessChain 27(data) 1547 51 30
+            1553:      6(int) CompositeExtract 1551 0
+                              Store 1552 1553
+            1554:    105(ptr) AccessChain 27(data) 1547 51 47
+            1555:      6(int) CompositeExtract 1551 1
+                              Store 1554 1555
+            1556:      6(int) Load 8(invocation)
+            1557:    112(ptr) AccessChain 27(data) 51 51
+            1558:   21(ivec4) Load 1557
+            1559:  122(ivec3) VectorShuffle 1558 1558 0 1 2
+            1560:  122(ivec3) GroupNonUniformBitwiseXor 34 InclusiveScan 1559
+            1561:    105(ptr) AccessChain 27(data) 1556 51 30
+            1562:      6(int) CompositeExtract 1560 0
+                              Store 1561 1562
+            1563:    105(ptr) AccessChain 27(data) 1556 51 47
+            1564:      6(int) CompositeExtract 1560 1
+                              Store 1563 1564
+            1565:    105(ptr) AccessChain 27(data) 1556 51 61
+            1566:      6(int) CompositeExtract 1560 2
+                              Store 1565 1566
+            1567:      6(int) Load 8(invocation)
+            1568:    112(ptr) AccessChain 27(data) 65 51
+            1569:   21(ivec4) Load 1568
+            1570:   21(ivec4) GroupNonUniformBitwiseXor 34 InclusiveScan 1569
+            1571:    112(ptr) AccessChain 27(data) 1567 51
+                              Store 1571 1570
+            1572:      6(int) Load 8(invocation)
+            1573:     71(ptr) AccessChain 27(data) 29 38 30
+            1574:     19(int) Load 1573
+            1575:   595(bool) SLessThan 1574 29
+            1576:   595(bool) GroupNonUniformLogicalXor 34 InclusiveScan 1575
+            1577:     19(int) Select 1576 38 29
+            1578:     71(ptr) AccessChain 27(data) 1572 38 30
+                              Store 1578 1577
+            1579:      6(int) Load 8(invocation)
+            1580:     78(ptr) AccessChain 27(data) 38 38
+            1581:   20(ivec4) Load 1580
+            1582:   77(ivec2) VectorShuffle 1581 1581 0 1
+            1583:  605(bvec2) SLessThan 1582 604
+            1584:  605(bvec2) GroupNonUniformLogicalXor 34 InclusiveScan 1583
+            1585:   77(ivec2) Select 1584 608 604
+            1586:     71(ptr) AccessChain 27(data) 1579 38 30
+            1587:     19(int) CompositeExtract 1585 0
+                              Store 1586 1587
+            1588:     71(ptr) AccessChain 27(data) 1579 38 47
+            1589:     19(int) CompositeExtract 1585 1
+                              Store 1588 1589
             1590:      6(int) Load 8(invocation)
-            1591:    125(ptr) AccessChain 27(data) 29 59 30
-            1592:22(float64_t) Load 1591
-            1593:22(float64_t) GroupNonUniformFMul 34 ExclusiveScan 1592
-            1594:    125(ptr) AccessChain 27(data) 1590 59 30
-                              Store 1594 1593
-            1595:      6(int) Load 8(invocation)
-            1596:    132(ptr) AccessChain 27(data) 38 59
-            1597: 23(f64vec4) Load 1596
-            1598:131(f64vec2) VectorShuffle 1597 1597 0 1
-            1599:131(f64vec2) GroupNonUniformFMul 34 ExclusiveScan 1598
-            1600:    132(ptr) AccessChain 27(data) 1595 59
-            1601: 23(f64vec4) Load 1600
-            1602: 23(f64vec4) VectorShuffle 1601 1599 4 5 2 3
-                              Store 1600 1602
+            1591:     78(ptr) AccessChain 27(data) 38 38
+            1592:   20(ivec4) Load 1591
+            1593:   88(ivec3) VectorShuffle 1592 1592 0 1 2
+            1594:  619(bvec3) SLessThan 1593 618
+            1595:  619(bvec3) GroupNonUniformLogicalXor 34 InclusiveScan 1594
+            1596:   88(ivec3) Select 1595 622 618
+            1597:     71(ptr) AccessChain 27(data) 1590 38 30
+            1598:     19(int) CompositeExtract 1596 0
+                              Store 1597 1598
+            1599:     71(ptr) AccessChain 27(data) 1590 38 47
+            1600:     19(int) CompositeExtract 1596 1
+                              Store 1599 1600
+            1601:     71(ptr) AccessChain 27(data) 1590 38 61
+            1602:     19(int) CompositeExtract 1596 2
+                              Store 1601 1602
             1603:      6(int) Load 8(invocation)
-            1604:    132(ptr) AccessChain 27(data) 49 59
-            1605: 23(f64vec4) Load 1604
-            1606:141(f64vec3) VectorShuffle 1605 1605 0 1 2
-            1607:141(f64vec3) GroupNonUniformFMul 34 ExclusiveScan 1606
-            1608:    132(ptr) AccessChain 27(data) 1603 59
-            1609: 23(f64vec4) Load 1608
-            1610: 23(f64vec4) VectorShuffle 1609 1607 4 5 6 3
-                              Store 1608 1610
-            1611:      6(int) Load 8(invocation)
-            1612:    132(ptr) AccessChain 27(data) 59 59
-            1613: 23(f64vec4) Load 1612
-            1614: 23(f64vec4) GroupNonUniformFMul 34 ExclusiveScan 1613
-            1615:    132(ptr) AccessChain 27(data) 1611 59
-                              Store 1615 1614
-            1616:      6(int) Load 8(invocation)
-            1617:     31(ptr) AccessChain 27(data) 29 29 30
-            1618:   17(float) Load 1617
-            1619:   17(float) GroupNonUniformFMin 34 ExclusiveScan 1618
-            1620:     31(ptr) AccessChain 27(data) 1616 29 30
-                              Store 1620 1619
-            1621:      6(int) Load 8(invocation)
-            1622:     40(ptr) AccessChain 27(data) 38 29
-            1623:   18(fvec4) Load 1622
-            1624:   39(fvec2) VectorShuffle 1623 1623 0 1
-            1625:   39(fvec2) GroupNonUniformFMin 34 ExclusiveScan 1624
-            1626:     40(ptr) AccessChain 27(data) 1621 29
-            1627:   18(fvec4) Load 1626
-            1628:   18(fvec4) VectorShuffle 1627 1625 4 5 2 3
-                              Store 1626 1628
-            1629:      6(int) Load 8(invocation)
-            1630:     40(ptr) AccessChain 27(data) 49 29
-            1631:   18(fvec4) Load 1630
-            1632:   50(fvec3) VectorShuffle 1631 1631 0 1 2
-            1633:   50(fvec3) GroupNonUniformFMin 34 ExclusiveScan 1632
-            1634:     40(ptr) AccessChain 27(data) 1629 29
-            1635:   18(fvec4) Load 1634
-            1636:   18(fvec4) VectorShuffle 1635 1633 4 5 6 3
-                              Store 1634 1636
-            1637:      6(int) Load 8(invocation)
-            1638:     40(ptr) AccessChain 27(data) 59 29
-            1639:   18(fvec4) Load 1638
-            1640:   18(fvec4) GroupNonUniformFMin 34 ExclusiveScan 1639
-            1641:     40(ptr) AccessChain 27(data) 1637 29
-                              Store 1641 1640
-            1642:      6(int) Load 8(invocation)
-            1643:     65(ptr) AccessChain 27(data) 29 38 30
-            1644:     19(int) Load 1643
-            1645:     19(int) GroupNonUniformSMin 34 ExclusiveScan 1644
-            1646:     65(ptr) AccessChain 27(data) 1642 38 30
-                              Store 1646 1645
-            1647:      6(int) Load 8(invocation)
-            1648:     72(ptr) AccessChain 27(data) 38 38
-            1649:   20(ivec4) Load 1648
-            1650:   71(ivec2) VectorShuffle 1649 1649 0 1
-            1651:   71(ivec2) GroupNonUniformSMin 34 ExclusiveScan 1650
-            1652:     72(ptr) AccessChain 27(data) 1647 38
-            1653:   20(ivec4) Load 1652
-            1654:   20(ivec4) VectorShuffle 1653 1651 4 5 2 3
-                              Store 1652 1654
-            1655:      6(int) Load 8(invocation)
-            1656:     72(ptr) AccessChain 27(data) 49 38
-            1657:   20(ivec4) Load 1656
-            1658:   81(ivec3) VectorShuffle 1657 1657 0 1 2
-            1659:   81(ivec3) GroupNonUniformSMin 34 ExclusiveScan 1658
-            1660:     72(ptr) AccessChain 27(data) 1655 38
-            1661:   20(ivec4) Load 1660
-            1662:   20(ivec4) VectorShuffle 1661 1659 4 5 6 3
-                              Store 1660 1662
-            1663:      6(int) Load 8(invocation)
-            1664:     72(ptr) AccessChain 27(data) 59 38
-            1665:   20(ivec4) Load 1664
-            1666:   20(ivec4) GroupNonUniformSMin 34 ExclusiveScan 1665
-            1667:     72(ptr) AccessChain 27(data) 1663 38
-                              Store 1667 1666
-            1668:      6(int) Load 8(invocation)
-            1669:     95(ptr) AccessChain 27(data) 29 49 30
-            1670:      6(int) Load 1669
-            1671:      6(int) GroupNonUniformUMin 34 ExclusiveScan 1670
-            1672:     95(ptr) AccessChain 27(data) 1668 49 30
-                              Store 1672 1671
-            1673:      6(int) Load 8(invocation)
-            1674:    102(ptr) AccessChain 27(data) 38 49
-            1675:   21(ivec4) Load 1674
-            1676:  101(ivec2) VectorShuffle 1675 1675 0 1
-            1677:  101(ivec2) GroupNonUniformUMin 34 ExclusiveScan 1676
-            1678:    102(ptr) AccessChain 27(data) 1673 49
-            1679:   21(ivec4) Load 1678
-            1680:   21(ivec4) VectorShuffle 1679 1677 4 5 2 3
-                              Store 1678 1680
-            1681:      6(int) Load 8(invocation)
-            1682:    102(ptr) AccessChain 27(data) 49 49
-            1683:   21(ivec4) Load 1682
-            1684:  111(ivec3) VectorShuffle 1683 1683 0 1 2
-            1685:  111(ivec3) GroupNonUniformUMin 34 ExclusiveScan 1684
-            1686:    102(ptr) AccessChain 27(data) 1681 49
-            1687:   21(ivec4) Load 1686
-            1688:   21(ivec4) VectorShuffle 1687 1685 4 5 6 3
-                              Store 1686 1688
-            1689:      6(int) Load 8(invocation)
-            1690:    102(ptr) AccessChain 27(data) 59 49
-            1691:   21(ivec4) Load 1690
-            1692:   21(ivec4) GroupNonUniformUMin 34 ExclusiveScan 1691
-            1693:    102(ptr) AccessChain 27(data) 1689 49
-                              Store 1693 1692
-            1694:      6(int) Load 8(invocation)
-            1695:    125(ptr) AccessChain 27(data) 29 59 30
-            1696:22(float64_t) Load 1695
-            1697:22(float64_t) GroupNonUniformFMin 34 ExclusiveScan 1696
-            1698:    125(ptr) AccessChain 27(data) 1694 59 30
-                              Store 1698 1697
-            1699:      6(int) Load 8(invocation)
-            1700:    132(ptr) AccessChain 27(data) 38 59
-            1701: 23(f64vec4) Load 1700
-            1702:131(f64vec2) VectorShuffle 1701 1701 0 1
-            1703:131(f64vec2) GroupNonUniformFMin 34 ExclusiveScan 1702
-            1704:    132(ptr) AccessChain 27(data) 1699 59
-            1705: 23(f64vec4) Load 1704
-            1706: 23(f64vec4) VectorShuffle 1705 1703 4 5 2 3
-                              Store 1704 1706
-            1707:      6(int) Load 8(invocation)
-            1708:    132(ptr) AccessChain 27(data) 49 59
-            1709: 23(f64vec4) Load 1708
-            1710:141(f64vec3) VectorShuffle 1709 1709 0 1 2
-            1711:141(f64vec3) GroupNonUniformFMin 34 ExclusiveScan 1710
-            1712:    132(ptr) AccessChain 27(data) 1707 59
-            1713: 23(f64vec4) Load 1712
-            1714: 23(f64vec4) VectorShuffle 1713 1711 4 5 6 3
-                              Store 1712 1714
-            1715:      6(int) Load 8(invocation)
-            1716:    132(ptr) AccessChain 27(data) 59 59
-            1717: 23(f64vec4) Load 1716
-            1718: 23(f64vec4) GroupNonUniformFMin 34 ExclusiveScan 1717
-            1719:    132(ptr) AccessChain 27(data) 1715 59
-                              Store 1719 1718
-            1720:      6(int) Load 8(invocation)
-            1721:     31(ptr) AccessChain 27(data) 29 29 30
-            1722:   17(float) Load 1721
-            1723:   17(float) GroupNonUniformFMax 34 ExclusiveScan 1722
-            1724:     31(ptr) AccessChain 27(data) 1720 29 30
-                              Store 1724 1723
+            1604:     78(ptr) AccessChain 27(data) 38 38
+            1605:   20(ivec4) Load 1604
+            1606:  634(bvec4) SLessThan 1605 633
+            1607:  634(bvec4) GroupNonUniformLogicalXor 34 InclusiveScan 1606
+            1608:   20(ivec4) Select 1607 637 633
+            1609:     78(ptr) AccessChain 27(data) 1603 38
+                              Store 1609 1608
+            1610:      6(int) Load 8(invocation)
+            1611:     31(ptr) AccessChain 27(data) 29 29 30
+            1612:   17(float) Load 1611
+            1613:   17(float) GroupNonUniformFAdd 34 ExclusiveScan 1612
+            1614:     31(ptr) AccessChain 27(data) 1610 29 30
+                              Store 1614 1613
+            1615:      6(int) Load 8(invocation)
+            1616:     40(ptr) AccessChain 27(data) 38 29
+            1617:   18(fvec4) Load 1616
+            1618:   39(fvec2) VectorShuffle 1617 1617 0 1
+            1619:   39(fvec2) GroupNonUniformFAdd 34 ExclusiveScan 1618
+            1620:     31(ptr) AccessChain 27(data) 1615 29 30
+            1621:   17(float) CompositeExtract 1619 0
+                              Store 1620 1621
+            1622:     31(ptr) AccessChain 27(data) 1615 29 47
+            1623:   17(float) CompositeExtract 1619 1
+                              Store 1622 1623
+            1624:      6(int) Load 8(invocation)
+            1625:     40(ptr) AccessChain 27(data) 51 29
+            1626:   18(fvec4) Load 1625
+            1627:   52(fvec3) VectorShuffle 1626 1626 0 1 2
+            1628:   52(fvec3) GroupNonUniformFAdd 34 ExclusiveScan 1627
+            1629:     31(ptr) AccessChain 27(data) 1624 29 30
+            1630:   17(float) CompositeExtract 1628 0
+                              Store 1629 1630
+            1631:     31(ptr) AccessChain 27(data) 1624 29 47
+            1632:   17(float) CompositeExtract 1628 1
+                              Store 1631 1632
+            1633:     31(ptr) AccessChain 27(data) 1624 29 61
+            1634:   17(float) CompositeExtract 1628 2
+                              Store 1633 1634
+            1635:      6(int) Load 8(invocation)
+            1636:     40(ptr) AccessChain 27(data) 65 29
+            1637:   18(fvec4) Load 1636
+            1638:   18(fvec4) GroupNonUniformFAdd 34 ExclusiveScan 1637
+            1639:     40(ptr) AccessChain 27(data) 1635 29
+                              Store 1639 1638
+            1640:      6(int) Load 8(invocation)
+            1641:     71(ptr) AccessChain 27(data) 29 38 30
+            1642:     19(int) Load 1641
+            1643:     19(int) GroupNonUniformIAdd 34 ExclusiveScan 1642
+            1644:     71(ptr) AccessChain 27(data) 1640 38 30
+                              Store 1644 1643
+            1645:      6(int) Load 8(invocation)
+            1646:     78(ptr) AccessChain 27(data) 38 38
+            1647:   20(ivec4) Load 1646
+            1648:   77(ivec2) VectorShuffle 1647 1647 0 1
+            1649:   77(ivec2) GroupNonUniformIAdd 34 ExclusiveScan 1648
+            1650:     71(ptr) AccessChain 27(data) 1645 38 30
+            1651:     19(int) CompositeExtract 1649 0
+                              Store 1650 1651
+            1652:     71(ptr) AccessChain 27(data) 1645 38 47
+            1653:     19(int) CompositeExtract 1649 1
+                              Store 1652 1653
+            1654:      6(int) Load 8(invocation)
+            1655:     78(ptr) AccessChain 27(data) 51 38
+            1656:   20(ivec4) Load 1655
+            1657:   88(ivec3) VectorShuffle 1656 1656 0 1 2
+            1658:   88(ivec3) GroupNonUniformIAdd 34 ExclusiveScan 1657
+            1659:     71(ptr) AccessChain 27(data) 1654 38 30
+            1660:     19(int) CompositeExtract 1658 0
+                              Store 1659 1660
+            1661:     71(ptr) AccessChain 27(data) 1654 38 47
+            1662:     19(int) CompositeExtract 1658 1
+                              Store 1661 1662
+            1663:     71(ptr) AccessChain 27(data) 1654 38 61
+            1664:     19(int) CompositeExtract 1658 2
+                              Store 1663 1664
+            1665:      6(int) Load 8(invocation)
+            1666:     78(ptr) AccessChain 27(data) 65 38
+            1667:   20(ivec4) Load 1666
+            1668:   20(ivec4) GroupNonUniformIAdd 34 ExclusiveScan 1667
+            1669:     78(ptr) AccessChain 27(data) 1665 38
+                              Store 1669 1668
+            1670:      6(int) Load 8(invocation)
+            1671:    105(ptr) AccessChain 27(data) 29 51 30
+            1672:      6(int) Load 1671
+            1673:      6(int) GroupNonUniformIAdd 34 ExclusiveScan 1672
+            1674:    105(ptr) AccessChain 27(data) 1670 51 30
+                              Store 1674 1673
+            1675:      6(int) Load 8(invocation)
+            1676:    112(ptr) AccessChain 27(data) 38 51
+            1677:   21(ivec4) Load 1676
+            1678:  111(ivec2) VectorShuffle 1677 1677 0 1
+            1679:  111(ivec2) GroupNonUniformIAdd 34 ExclusiveScan 1678
+            1680:    105(ptr) AccessChain 27(data) 1675 51 30
+            1681:      6(int) CompositeExtract 1679 0
+                              Store 1680 1681
+            1682:    105(ptr) AccessChain 27(data) 1675 51 47
+            1683:      6(int) CompositeExtract 1679 1
+                              Store 1682 1683
+            1684:      6(int) Load 8(invocation)
+            1685:    112(ptr) AccessChain 27(data) 51 51
+            1686:   21(ivec4) Load 1685
+            1687:  122(ivec3) VectorShuffle 1686 1686 0 1 2
+            1688:  122(ivec3) GroupNonUniformIAdd 34 ExclusiveScan 1687
+            1689:    105(ptr) AccessChain 27(data) 1684 51 30
+            1690:      6(int) CompositeExtract 1688 0
+                              Store 1689 1690
+            1691:    105(ptr) AccessChain 27(data) 1684 51 47
+            1692:      6(int) CompositeExtract 1688 1
+                              Store 1691 1692
+            1693:    105(ptr) AccessChain 27(data) 1684 51 61
+            1694:      6(int) CompositeExtract 1688 2
+                              Store 1693 1694
+            1695:      6(int) Load 8(invocation)
+            1696:    112(ptr) AccessChain 27(data) 65 51
+            1697:   21(ivec4) Load 1696
+            1698:   21(ivec4) GroupNonUniformIAdd 34 ExclusiveScan 1697
+            1699:    112(ptr) AccessChain 27(data) 1695 51
+                              Store 1699 1698
+            1700:      6(int) Load 8(invocation)
+            1701:    139(ptr) AccessChain 27(data) 29 65 30
+            1702:22(float64_t) Load 1701
+            1703:22(float64_t) GroupNonUniformFAdd 34 ExclusiveScan 1702
+            1704:    139(ptr) AccessChain 27(data) 1700 65 30
+                              Store 1704 1703
+            1705:      6(int) Load 8(invocation)
+            1706:    146(ptr) AccessChain 27(data) 38 65
+            1707: 23(f64vec4) Load 1706
+            1708:145(f64vec2) VectorShuffle 1707 1707 0 1
+            1709:145(f64vec2) GroupNonUniformFAdd 34 ExclusiveScan 1708
+            1710:    139(ptr) AccessChain 27(data) 1705 65 30
+            1711:22(float64_t) CompositeExtract 1709 0
+                              Store 1710 1711
+            1712:    139(ptr) AccessChain 27(data) 1705 65 47
+            1713:22(float64_t) CompositeExtract 1709 1
+                              Store 1712 1713
+            1714:      6(int) Load 8(invocation)
+            1715:    146(ptr) AccessChain 27(data) 51 65
+            1716: 23(f64vec4) Load 1715
+            1717:156(f64vec3) VectorShuffle 1716 1716 0 1 2
+            1718:156(f64vec3) GroupNonUniformFAdd 34 ExclusiveScan 1717
+            1719:    139(ptr) AccessChain 27(data) 1714 65 30
+            1720:22(float64_t) CompositeExtract 1718 0
+                              Store 1719 1720
+            1721:    139(ptr) AccessChain 27(data) 1714 65 47
+            1722:22(float64_t) CompositeExtract 1718 1
+                              Store 1721 1722
+            1723:    139(ptr) AccessChain 27(data) 1714 65 61
+            1724:22(float64_t) CompositeExtract 1718 2
+                              Store 1723 1724
             1725:      6(int) Load 8(invocation)
-            1726:     40(ptr) AccessChain 27(data) 38 29
-            1727:   18(fvec4) Load 1726
-            1728:   39(fvec2) VectorShuffle 1727 1727 0 1
-            1729:   39(fvec2) GroupNonUniformFMax 34 ExclusiveScan 1728
-            1730:     40(ptr) AccessChain 27(data) 1725 29
-            1731:   18(fvec4) Load 1730
-            1732:   18(fvec4) VectorShuffle 1731 1729 4 5 2 3
-                              Store 1730 1732
-            1733:      6(int) Load 8(invocation)
-            1734:     40(ptr) AccessChain 27(data) 49 29
-            1735:   18(fvec4) Load 1734
-            1736:   50(fvec3) VectorShuffle 1735 1735 0 1 2
-            1737:   50(fvec3) GroupNonUniformFMax 34 ExclusiveScan 1736
-            1738:     40(ptr) AccessChain 27(data) 1733 29
-            1739:   18(fvec4) Load 1738
-            1740:   18(fvec4) VectorShuffle 1739 1737 4 5 6 3
-                              Store 1738 1740
-            1741:      6(int) Load 8(invocation)
-            1742:     40(ptr) AccessChain 27(data) 59 29
-            1743:   18(fvec4) Load 1742
-            1744:   18(fvec4) GroupNonUniformFMax 34 ExclusiveScan 1743
-            1745:     40(ptr) AccessChain 27(data) 1741 29
-                              Store 1745 1744
-            1746:      6(int) Load 8(invocation)
-            1747:     65(ptr) AccessChain 27(data) 29 38 30
-            1748:     19(int) Load 1747
-            1749:     19(int) GroupNonUniformSMax 34 ExclusiveScan 1748
-            1750:     65(ptr) AccessChain 27(data) 1746 38 30
-                              Store 1750 1749
-            1751:      6(int) Load 8(invocation)
-            1752:     72(ptr) AccessChain 27(data) 38 38
-            1753:   20(ivec4) Load 1752
-            1754:   71(ivec2) VectorShuffle 1753 1753 0 1
-            1755:   71(ivec2) GroupNonUniformSMax 34 ExclusiveScan 1754
-            1756:     72(ptr) AccessChain 27(data) 1751 38
-            1757:   20(ivec4) Load 1756
-            1758:   20(ivec4) VectorShuffle 1757 1755 4 5 2 3
-                              Store 1756 1758
-            1759:      6(int) Load 8(invocation)
-            1760:     72(ptr) AccessChain 27(data) 49 38
-            1761:   20(ivec4) Load 1760
-            1762:   81(ivec3) VectorShuffle 1761 1761 0 1 2
-            1763:   81(ivec3) GroupNonUniformSMax 34 ExclusiveScan 1762
-            1764:     72(ptr) AccessChain 27(data) 1759 38
-            1765:   20(ivec4) Load 1764
-            1766:   20(ivec4) VectorShuffle 1765 1763 4 5 6 3
-                              Store 1764 1766
-            1767:      6(int) Load 8(invocation)
-            1768:     72(ptr) AccessChain 27(data) 59 38
-            1769:   20(ivec4) Load 1768
-            1770:   20(ivec4) GroupNonUniformSMax 34 ExclusiveScan 1769
-            1771:     72(ptr) AccessChain 27(data) 1767 38
-                              Store 1771 1770
-            1772:      6(int) Load 8(invocation)
-            1773:     95(ptr) AccessChain 27(data) 29 49 30
-            1774:      6(int) Load 1773
-            1775:      6(int) GroupNonUniformUMax 34 ExclusiveScan 1774
-            1776:     95(ptr) AccessChain 27(data) 1772 49 30
-                              Store 1776 1775
-            1777:      6(int) Load 8(invocation)
-            1778:    102(ptr) AccessChain 27(data) 38 49
-            1779:   21(ivec4) Load 1778
-            1780:  101(ivec2) VectorShuffle 1779 1779 0 1
-            1781:  101(ivec2) GroupNonUniformUMax 34 ExclusiveScan 1780
-            1782:    102(ptr) AccessChain 27(data) 1777 49
-            1783:   21(ivec4) Load 1782
-            1784:   21(ivec4) VectorShuffle 1783 1781 4 5 2 3
-                              Store 1782 1784
+            1726:    146(ptr) AccessChain 27(data) 65 65
+            1727: 23(f64vec4) Load 1726
+            1728: 23(f64vec4) GroupNonUniformFAdd 34 ExclusiveScan 1727
+            1729:    146(ptr) AccessChain 27(data) 1725 65
+                              Store 1729 1728
+            1730:      6(int) Load 8(invocation)
+            1731:     31(ptr) AccessChain 27(data) 29 29 30
+            1732:   17(float) Load 1731
+            1733:   17(float) GroupNonUniformFMul 34 ExclusiveScan 1732
+            1734:     31(ptr) AccessChain 27(data) 1730 29 30
+                              Store 1734 1733
+            1735:      6(int) Load 8(invocation)
+            1736:     40(ptr) AccessChain 27(data) 38 29
+            1737:   18(fvec4) Load 1736
+            1738:   39(fvec2) VectorShuffle 1737 1737 0 1
+            1739:   39(fvec2) GroupNonUniformFMul 34 ExclusiveScan 1738
+            1740:     31(ptr) AccessChain 27(data) 1735 29 30
+            1741:   17(float) CompositeExtract 1739 0
+                              Store 1740 1741
+            1742:     31(ptr) AccessChain 27(data) 1735 29 47
+            1743:   17(float) CompositeExtract 1739 1
+                              Store 1742 1743
+            1744:      6(int) Load 8(invocation)
+            1745:     40(ptr) AccessChain 27(data) 51 29
+            1746:   18(fvec4) Load 1745
+            1747:   52(fvec3) VectorShuffle 1746 1746 0 1 2
+            1748:   52(fvec3) GroupNonUniformFMul 34 ExclusiveScan 1747
+            1749:     31(ptr) AccessChain 27(data) 1744 29 30
+            1750:   17(float) CompositeExtract 1748 0
+                              Store 1749 1750
+            1751:     31(ptr) AccessChain 27(data) 1744 29 47
+            1752:   17(float) CompositeExtract 1748 1
+                              Store 1751 1752
+            1753:     31(ptr) AccessChain 27(data) 1744 29 61
+            1754:   17(float) CompositeExtract 1748 2
+                              Store 1753 1754
+            1755:      6(int) Load 8(invocation)
+            1756:     40(ptr) AccessChain 27(data) 65 29
+            1757:   18(fvec4) Load 1756
+            1758:   18(fvec4) GroupNonUniformFMul 34 ExclusiveScan 1757
+            1759:     40(ptr) AccessChain 27(data) 1755 29
+                              Store 1759 1758
+            1760:      6(int) Load 8(invocation)
+            1761:     71(ptr) AccessChain 27(data) 29 38 30
+            1762:     19(int) Load 1761
+            1763:     19(int) GroupNonUniformIMul 34 ExclusiveScan 1762
+            1764:     71(ptr) AccessChain 27(data) 1760 38 30
+                              Store 1764 1763
+            1765:      6(int) Load 8(invocation)
+            1766:     78(ptr) AccessChain 27(data) 38 38
+            1767:   20(ivec4) Load 1766
+            1768:   77(ivec2) VectorShuffle 1767 1767 0 1
+            1769:   77(ivec2) GroupNonUniformIMul 34 ExclusiveScan 1768
+            1770:     71(ptr) AccessChain 27(data) 1765 38 30
+            1771:     19(int) CompositeExtract 1769 0
+                              Store 1770 1771
+            1772:     71(ptr) AccessChain 27(data) 1765 38 47
+            1773:     19(int) CompositeExtract 1769 1
+                              Store 1772 1773
+            1774:      6(int) Load 8(invocation)
+            1775:     78(ptr) AccessChain 27(data) 51 38
+            1776:   20(ivec4) Load 1775
+            1777:   88(ivec3) VectorShuffle 1776 1776 0 1 2
+            1778:   88(ivec3) GroupNonUniformIMul 34 ExclusiveScan 1777
+            1779:     71(ptr) AccessChain 27(data) 1774 38 30
+            1780:     19(int) CompositeExtract 1778 0
+                              Store 1779 1780
+            1781:     71(ptr) AccessChain 27(data) 1774 38 47
+            1782:     19(int) CompositeExtract 1778 1
+                              Store 1781 1782
+            1783:     71(ptr) AccessChain 27(data) 1774 38 61
+            1784:     19(int) CompositeExtract 1778 2
+                              Store 1783 1784
             1785:      6(int) Load 8(invocation)
-            1786:    102(ptr) AccessChain 27(data) 49 49
-            1787:   21(ivec4) Load 1786
-            1788:  111(ivec3) VectorShuffle 1787 1787 0 1 2
-            1789:  111(ivec3) GroupNonUniformUMax 34 ExclusiveScan 1788
-            1790:    102(ptr) AccessChain 27(data) 1785 49
-            1791:   21(ivec4) Load 1790
-            1792:   21(ivec4) VectorShuffle 1791 1789 4 5 6 3
-                              Store 1790 1792
-            1793:      6(int) Load 8(invocation)
-            1794:    102(ptr) AccessChain 27(data) 59 49
-            1795:   21(ivec4) Load 1794
-            1796:   21(ivec4) GroupNonUniformUMax 34 ExclusiveScan 1795
-            1797:    102(ptr) AccessChain 27(data) 1793 49
-                              Store 1797 1796
-            1798:      6(int) Load 8(invocation)
-            1799:    125(ptr) AccessChain 27(data) 29 59 30
-            1800:22(float64_t) Load 1799
-            1801:22(float64_t) GroupNonUniformFMax 34 ExclusiveScan 1800
-            1802:    125(ptr) AccessChain 27(data) 1798 59 30
-                              Store 1802 1801
-            1803:      6(int) Load 8(invocation)
-            1804:    132(ptr) AccessChain 27(data) 38 59
-            1805: 23(f64vec4) Load 1804
-            1806:131(f64vec2) VectorShuffle 1805 1805 0 1
-            1807:131(f64vec2) GroupNonUniformFMax 34 ExclusiveScan 1806
-            1808:    132(ptr) AccessChain 27(data) 1803 59
-            1809: 23(f64vec4) Load 1808
-            1810: 23(f64vec4) VectorShuffle 1809 1807 4 5 2 3
-                              Store 1808 1810
-            1811:      6(int) Load 8(invocation)
-            1812:    132(ptr) AccessChain 27(data) 49 59
-            1813: 23(f64vec4) Load 1812
-            1814:141(f64vec3) VectorShuffle 1813 1813 0 1 2
-            1815:141(f64vec3) GroupNonUniformFMax 34 ExclusiveScan 1814
-            1816:    132(ptr) AccessChain 27(data) 1811 59
-            1817: 23(f64vec4) Load 1816
-            1818: 23(f64vec4) VectorShuffle 1817 1815 4 5 6 3
-                              Store 1816 1818
-            1819:      6(int) Load 8(invocation)
-            1820:    132(ptr) AccessChain 27(data) 59 59
-            1821: 23(f64vec4) Load 1820
-            1822: 23(f64vec4) GroupNonUniformFMax 34 ExclusiveScan 1821
-            1823:    132(ptr) AccessChain 27(data) 1819 59
-                              Store 1823 1822
-            1824:      6(int) Load 8(invocation)
-            1825:     65(ptr) AccessChain 27(data) 29 38 30
-            1826:     19(int) Load 1825
-            1827:     19(int) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1826
-            1828:     65(ptr) AccessChain 27(data) 1824 38 30
-                              Store 1828 1827
-            1829:      6(int) Load 8(invocation)
-            1830:     72(ptr) AccessChain 27(data) 38 38
-            1831:   20(ivec4) Load 1830
-            1832:   71(ivec2) VectorShuffle 1831 1831 0 1
-            1833:   71(ivec2) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1832
-            1834:     72(ptr) AccessChain 27(data) 1829 38
-            1835:   20(ivec4) Load 1834
-            1836:   20(ivec4) VectorShuffle 1835 1833 4 5 2 3
-                              Store 1834 1836
-            1837:      6(int) Load 8(invocation)
-            1838:     72(ptr) AccessChain 27(data) 49 38
-            1839:   20(ivec4) Load 1838
-            1840:   81(ivec3) VectorShuffle 1839 1839 0 1 2
-            1841:   81(ivec3) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1840
-            1842:     72(ptr) AccessChain 27(data) 1837 38
-            1843:   20(ivec4) Load 1842
-            1844:   20(ivec4) VectorShuffle 1843 1841 4 5 6 3
-                              Store 1842 1844
+            1786:     78(ptr) AccessChain 27(data) 65 38
+            1787:   20(ivec4) Load 1786
+            1788:   20(ivec4) GroupNonUniformIMul 34 ExclusiveScan 1787
+            1789:     78(ptr) AccessChain 27(data) 1785 38
+                              Store 1789 1788
+            1790:      6(int) Load 8(invocation)
+            1791:    105(ptr) AccessChain 27(data) 29 51 30
+            1792:      6(int) Load 1791
+            1793:      6(int) GroupNonUniformIMul 34 ExclusiveScan 1792
+            1794:    105(ptr) AccessChain 27(data) 1790 51 30
+                              Store 1794 1793
+            1795:      6(int) Load 8(invocation)
+            1796:    112(ptr) AccessChain 27(data) 38 51
+            1797:   21(ivec4) Load 1796
+            1798:  111(ivec2) VectorShuffle 1797 1797 0 1
+            1799:  111(ivec2) GroupNonUniformIMul 34 ExclusiveScan 1798
+            1800:    105(ptr) AccessChain 27(data) 1795 51 30
+            1801:      6(int) CompositeExtract 1799 0
+                              Store 1800 1801
+            1802:    105(ptr) AccessChain 27(data) 1795 51 47
+            1803:      6(int) CompositeExtract 1799 1
+                              Store 1802 1803
+            1804:      6(int) Load 8(invocation)
+            1805:    112(ptr) AccessChain 27(data) 51 51
+            1806:   21(ivec4) Load 1805
+            1807:  122(ivec3) VectorShuffle 1806 1806 0 1 2
+            1808:  122(ivec3) GroupNonUniformIMul 34 ExclusiveScan 1807
+            1809:    105(ptr) AccessChain 27(data) 1804 51 30
+            1810:      6(int) CompositeExtract 1808 0
+                              Store 1809 1810
+            1811:    105(ptr) AccessChain 27(data) 1804 51 47
+            1812:      6(int) CompositeExtract 1808 1
+                              Store 1811 1812
+            1813:    105(ptr) AccessChain 27(data) 1804 51 61
+            1814:      6(int) CompositeExtract 1808 2
+                              Store 1813 1814
+            1815:      6(int) Load 8(invocation)
+            1816:    112(ptr) AccessChain 27(data) 65 51
+            1817:   21(ivec4) Load 1816
+            1818:   21(ivec4) GroupNonUniformIMul 34 ExclusiveScan 1817
+            1819:    112(ptr) AccessChain 27(data) 1815 51
+                              Store 1819 1818
+            1820:      6(int) Load 8(invocation)
+            1821:    139(ptr) AccessChain 27(data) 29 65 30
+            1822:22(float64_t) Load 1821
+            1823:22(float64_t) GroupNonUniformFMul 34 ExclusiveScan 1822
+            1824:    139(ptr) AccessChain 27(data) 1820 65 30
+                              Store 1824 1823
+            1825:      6(int) Load 8(invocation)
+            1826:    146(ptr) AccessChain 27(data) 38 65
+            1827: 23(f64vec4) Load 1826
+            1828:145(f64vec2) VectorShuffle 1827 1827 0 1
+            1829:145(f64vec2) GroupNonUniformFMul 34 ExclusiveScan 1828
+            1830:    139(ptr) AccessChain 27(data) 1825 65 30
+            1831:22(float64_t) CompositeExtract 1829 0
+                              Store 1830 1831
+            1832:    139(ptr) AccessChain 27(data) 1825 65 47
+            1833:22(float64_t) CompositeExtract 1829 1
+                              Store 1832 1833
+            1834:      6(int) Load 8(invocation)
+            1835:    146(ptr) AccessChain 27(data) 51 65
+            1836: 23(f64vec4) Load 1835
+            1837:156(f64vec3) VectorShuffle 1836 1836 0 1 2
+            1838:156(f64vec3) GroupNonUniformFMul 34 ExclusiveScan 1837
+            1839:    139(ptr) AccessChain 27(data) 1834 65 30
+            1840:22(float64_t) CompositeExtract 1838 0
+                              Store 1839 1840
+            1841:    139(ptr) AccessChain 27(data) 1834 65 47
+            1842:22(float64_t) CompositeExtract 1838 1
+                              Store 1841 1842
+            1843:    139(ptr) AccessChain 27(data) 1834 65 61
+            1844:22(float64_t) CompositeExtract 1838 2
+                              Store 1843 1844
             1845:      6(int) Load 8(invocation)
-            1846:     72(ptr) AccessChain 27(data) 59 38
-            1847:   20(ivec4) Load 1846
-            1848:   20(ivec4) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1847
-            1849:     72(ptr) AccessChain 27(data) 1845 38
+            1846:    146(ptr) AccessChain 27(data) 65 65
+            1847: 23(f64vec4) Load 1846
+            1848: 23(f64vec4) GroupNonUniformFMul 34 ExclusiveScan 1847
+            1849:    146(ptr) AccessChain 27(data) 1845 65
                               Store 1849 1848
             1850:      6(int) Load 8(invocation)
-            1851:     95(ptr) AccessChain 27(data) 29 49 30
-            1852:      6(int) Load 1851
-            1853:      6(int) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1852
-            1854:     95(ptr) AccessChain 27(data) 1850 49 30
+            1851:     31(ptr) AccessChain 27(data) 29 29 30
+            1852:   17(float) Load 1851
+            1853:   17(float) GroupNonUniformFMin 34 ExclusiveScan 1852
+            1854:     31(ptr) AccessChain 27(data) 1850 29 30
                               Store 1854 1853
             1855:      6(int) Load 8(invocation)
-            1856:    102(ptr) AccessChain 27(data) 38 49
-            1857:   21(ivec4) Load 1856
-            1858:  101(ivec2) VectorShuffle 1857 1857 0 1
-            1859:  101(ivec2) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1858
-            1860:    102(ptr) AccessChain 27(data) 1855 49
-            1861:   21(ivec4) Load 1860
-            1862:   21(ivec4) VectorShuffle 1861 1859 4 5 2 3
-                              Store 1860 1862
-            1863:      6(int) Load 8(invocation)
-            1864:    102(ptr) AccessChain 27(data) 49 49
-            1865:   21(ivec4) Load 1864
-            1866:  111(ivec3) VectorShuffle 1865 1865 0 1 2
-            1867:  111(ivec3) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1866
-            1868:    102(ptr) AccessChain 27(data) 1863 49
-            1869:   21(ivec4) Load 1868
-            1870:   21(ivec4) VectorShuffle 1869 1867 4 5 6 3
-                              Store 1868 1870
-            1871:      6(int) Load 8(invocation)
-            1872:    102(ptr) AccessChain 27(data) 59 49
-            1873:   21(ivec4) Load 1872
-            1874:   21(ivec4) GroupNonUniformBitwiseAnd 34 ExclusiveScan 1873
-            1875:    102(ptr) AccessChain 27(data) 1871 49
-                              Store 1875 1874
-            1876:      6(int) Load 8(invocation)
-            1877:     65(ptr) AccessChain 27(data) 29 38 30
-            1878:     19(int) Load 1877
-            1879:   521(bool) SLessThan 1878 29
-            1880:   521(bool) GroupNonUniformLogicalAnd 34 ExclusiveScan 1879
-            1881:     19(int) Select 1880 38 29
-            1882:     65(ptr) AccessChain 27(data) 1876 38 30
-                              Store 1882 1881
-            1883:      6(int) Load 8(invocation)
-            1884:     72(ptr) AccessChain 27(data) 38 38
-            1885:   20(ivec4) Load 1884
-            1886:   71(ivec2) VectorShuffle 1885 1885 0 1
-            1887:  531(bvec2) SLessThan 1886 530
-            1888:  531(bvec2) GroupNonUniformLogicalAnd 34 ExclusiveScan 1887
-            1889:   71(ivec2) Select 1888 534 530
-            1890:     72(ptr) AccessChain 27(data) 1883 38
-            1891:   20(ivec4) Load 1890
-            1892:   20(ivec4) VectorShuffle 1891 1889 4 5 2 3
-                              Store 1890 1892
-            1893:      6(int) Load 8(invocation)
-            1894:     72(ptr) AccessChain 27(data) 38 38
-            1895:   20(ivec4) Load 1894
-            1896:   81(ivec3) VectorShuffle 1895 1895 0 1 2
-            1897:  544(bvec3) SLessThan 1896 543
-            1898:  544(bvec3) GroupNonUniformLogicalAnd 34 ExclusiveScan 1897
-            1899:   81(ivec3) Select 1898 547 543
-            1900:     72(ptr) AccessChain 27(data) 1893 38
-            1901:   20(ivec4) Load 1900
-            1902:   20(ivec4) VectorShuffle 1901 1899 4 5 6 3
-                              Store 1900 1902
-            1903:      6(int) Load 8(invocation)
-            1904:     72(ptr) AccessChain 27(data) 38 38
-            1905:   20(ivec4) Load 1904
-            1906:  556(bvec4) SLessThan 1905 555
-            1907:  556(bvec4) GroupNonUniformLogicalAnd 34 ExclusiveScan 1906
-            1908:   20(ivec4) Select 1907 559 555
-            1909:     72(ptr) AccessChain 27(data) 1903 38
+            1856:     40(ptr) AccessChain 27(data) 38 29
+            1857:   18(fvec4) Load 1856
+            1858:   39(fvec2) VectorShuffle 1857 1857 0 1
+            1859:   39(fvec2) GroupNonUniformFMin 34 ExclusiveScan 1858
+            1860:     31(ptr) AccessChain 27(data) 1855 29 30
+            1861:   17(float) CompositeExtract 1859 0
+                              Store 1860 1861
+            1862:     31(ptr) AccessChain 27(data) 1855 29 47
+            1863:   17(float) CompositeExtract 1859 1
+                              Store 1862 1863
+            1864:      6(int) Load 8(invocation)
+            1865:     40(ptr) AccessChain 27(data) 51 29
+            1866:   18(fvec4) Load 1865
+            1867:   52(fvec3) VectorShuffle 1866 1866 0 1 2
+            1868:   52(fvec3) GroupNonUniformFMin 34 ExclusiveScan 1867
+            1869:     31(ptr) AccessChain 27(data) 1864 29 30
+            1870:   17(float) CompositeExtract 1868 0
+                              Store 1869 1870
+            1871:     31(ptr) AccessChain 27(data) 1864 29 47
+            1872:   17(float) CompositeExtract 1868 1
+                              Store 1871 1872
+            1873:     31(ptr) AccessChain 27(data) 1864 29 61
+            1874:   17(float) CompositeExtract 1868 2
+                              Store 1873 1874
+            1875:      6(int) Load 8(invocation)
+            1876:     40(ptr) AccessChain 27(data) 65 29
+            1877:   18(fvec4) Load 1876
+            1878:   18(fvec4) GroupNonUniformFMin 34 ExclusiveScan 1877
+            1879:     40(ptr) AccessChain 27(data) 1875 29
+                              Store 1879 1878
+            1880:      6(int) Load 8(invocation)
+            1881:     71(ptr) AccessChain 27(data) 29 38 30
+            1882:     19(int) Load 1881
+            1883:     19(int) GroupNonUniformSMin 34 ExclusiveScan 1882
+            1884:     71(ptr) AccessChain 27(data) 1880 38 30
+                              Store 1884 1883
+            1885:      6(int) Load 8(invocation)
+            1886:     78(ptr) AccessChain 27(data) 38 38
+            1887:   20(ivec4) Load 1886
+            1888:   77(ivec2) VectorShuffle 1887 1887 0 1
+            1889:   77(ivec2) GroupNonUniformSMin 34 ExclusiveScan 1888
+            1890:     71(ptr) AccessChain 27(data) 1885 38 30
+            1891:     19(int) CompositeExtract 1889 0
+                              Store 1890 1891
+            1892:     71(ptr) AccessChain 27(data) 1885 38 47
+            1893:     19(int) CompositeExtract 1889 1
+                              Store 1892 1893
+            1894:      6(int) Load 8(invocation)
+            1895:     78(ptr) AccessChain 27(data) 51 38
+            1896:   20(ivec4) Load 1895
+            1897:   88(ivec3) VectorShuffle 1896 1896 0 1 2
+            1898:   88(ivec3) GroupNonUniformSMin 34 ExclusiveScan 1897
+            1899:     71(ptr) AccessChain 27(data) 1894 38 30
+            1900:     19(int) CompositeExtract 1898 0
+                              Store 1899 1900
+            1901:     71(ptr) AccessChain 27(data) 1894 38 47
+            1902:     19(int) CompositeExtract 1898 1
+                              Store 1901 1902
+            1903:     71(ptr) AccessChain 27(data) 1894 38 61
+            1904:     19(int) CompositeExtract 1898 2
+                              Store 1903 1904
+            1905:      6(int) Load 8(invocation)
+            1906:     78(ptr) AccessChain 27(data) 65 38
+            1907:   20(ivec4) Load 1906
+            1908:   20(ivec4) GroupNonUniformSMin 34 ExclusiveScan 1907
+            1909:     78(ptr) AccessChain 27(data) 1905 38
                               Store 1909 1908
             1910:      6(int) Load 8(invocation)
-            1911:     65(ptr) AccessChain 27(data) 29 38 30
-            1912:     19(int) Load 1911
-            1913:     19(int) GroupNonUniformBitwiseOr 34 ExclusiveScan 1912
-            1914:     65(ptr) AccessChain 27(data) 1910 38 30
+            1911:    105(ptr) AccessChain 27(data) 29 51 30
+            1912:      6(int) Load 1911
+            1913:      6(int) GroupNonUniformUMin 34 ExclusiveScan 1912
+            1914:    105(ptr) AccessChain 27(data) 1910 51 30
                               Store 1914 1913
             1915:      6(int) Load 8(invocation)
-            1916:     72(ptr) AccessChain 27(data) 38 38
-            1917:   20(ivec4) Load 1916
-            1918:   71(ivec2) VectorShuffle 1917 1917 0 1
-            1919:   71(ivec2) GroupNonUniformBitwiseOr 34 ExclusiveScan 1918
-            1920:     72(ptr) AccessChain 27(data) 1915 38
-            1921:   20(ivec4) Load 1920
-            1922:   20(ivec4) VectorShuffle 1921 1919 4 5 2 3
-                              Store 1920 1922
-            1923:      6(int) Load 8(invocation)
-            1924:     72(ptr) AccessChain 27(data) 49 38
-            1925:   20(ivec4) Load 1924
-            1926:   81(ivec3) VectorShuffle 1925 1925 0 1 2
-            1927:   81(ivec3) GroupNonUniformBitwiseOr 34 ExclusiveScan 1926
-            1928:     72(ptr) AccessChain 27(data) 1923 38
-            1929:   20(ivec4) Load 1928
-            1930:   20(ivec4) VectorShuffle 1929 1927 4 5 6 3
-                              Store 1928 1930
-            1931:      6(int) Load 8(invocation)
-            1932:     72(ptr) AccessChain 27(data) 59 38
-            1933:   20(ivec4) Load 1932
-            1934:   20(ivec4) GroupNonUniformBitwiseOr 34 ExclusiveScan 1933
-            1935:     72(ptr) AccessChain 27(data) 1931 38
-                              Store 1935 1934
-            1936:      6(int) Load 8(invocation)
-            1937:     95(ptr) AccessChain 27(data) 29 49 30
-            1938:      6(int) Load 1937
-            1939:      6(int) GroupNonUniformBitwiseOr 34 ExclusiveScan 1938
-            1940:     95(ptr) AccessChain 27(data) 1936 49 30
-                              Store 1940 1939
-            1941:      6(int) Load 8(invocation)
-            1942:    102(ptr) AccessChain 27(data) 38 49
-            1943:   21(ivec4) Load 1942
-            1944:  101(ivec2) VectorShuffle 1943 1943 0 1
-            1945:  101(ivec2) GroupNonUniformBitwiseOr 34 ExclusiveScan 1944
-            1946:    102(ptr) AccessChain 27(data) 1941 49
-            1947:   21(ivec4) Load 1946
-            1948:   21(ivec4) VectorShuffle 1947 1945 4 5 2 3
-                              Store 1946 1948
-            1949:      6(int) Load 8(invocation)
-            1950:    102(ptr) AccessChain 27(data) 49 49
-            1951:   21(ivec4) Load 1950
-            1952:  111(ivec3) VectorShuffle 1951 1951 0 1 2
-            1953:  111(ivec3) GroupNonUniformBitwiseOr 34 ExclusiveScan 1952
-            1954:    102(ptr) AccessChain 27(data) 1949 49
-            1955:   21(ivec4) Load 1954
-            1956:   21(ivec4) VectorShuffle 1955 1953 4 5 6 3
-                              Store 1954 1956
-            1957:      6(int) Load 8(invocation)
-            1958:    102(ptr) AccessChain 27(data) 59 49
-            1959:   21(ivec4) Load 1958
-            1960:   21(ivec4) GroupNonUniformBitwiseOr 34 ExclusiveScan 1959
-            1961:    102(ptr) AccessChain 27(data) 1957 49
-                              Store 1961 1960
-            1962:      6(int) Load 8(invocation)
-            1963:     65(ptr) AccessChain 27(data) 29 38 30
-            1964:     19(int) Load 1963
-            1965:   521(bool) SLessThan 1964 29
-            1966:   521(bool) GroupNonUniformLogicalOr 34 ExclusiveScan 1965
-            1967:     19(int) Select 1966 38 29
-            1968:     65(ptr) AccessChain 27(data) 1962 38 30
-                              Store 1968 1967
-            1969:      6(int) Load 8(invocation)
-            1970:     72(ptr) AccessChain 27(data) 38 38
-            1971:   20(ivec4) Load 1970
-            1972:   71(ivec2) VectorShuffle 1971 1971 0 1
-            1973:  531(bvec2) SLessThan 1972 530
-            1974:  531(bvec2) GroupNonUniformLogicalOr 34 ExclusiveScan 1973
-            1975:   71(ivec2) Select 1974 534 530
-            1976:     72(ptr) AccessChain 27(data) 1969 38
-            1977:   20(ivec4) Load 1976
-            1978:   20(ivec4) VectorShuffle 1977 1975 4 5 2 3
-                              Store 1976 1978
-            1979:      6(int) Load 8(invocation)
-            1980:     72(ptr) AccessChain 27(data) 38 38
-            1981:   20(ivec4) Load 1980
-            1982:   81(ivec3) VectorShuffle 1981 1981 0 1 2
-            1983:  544(bvec3) SLessThan 1982 543
-            1984:  544(bvec3) GroupNonUniformLogicalOr 34 ExclusiveScan 1983
-            1985:   81(ivec3) Select 1984 547 543
-            1986:     72(ptr) AccessChain 27(data) 1979 38
-            1987:   20(ivec4) Load 1986
-            1988:   20(ivec4) VectorShuffle 1987 1985 4 5 6 3
-                              Store 1986 1988
-            1989:      6(int) Load 8(invocation)
-            1990:     72(ptr) AccessChain 27(data) 38 38
-            1991:   20(ivec4) Load 1990
-            1992:  556(bvec4) SLessThan 1991 555
-            1993:  556(bvec4) GroupNonUniformLogicalOr 34 ExclusiveScan 1992
-            1994:   20(ivec4) Select 1993 559 555
-            1995:     72(ptr) AccessChain 27(data) 1989 38
-                              Store 1995 1994
-            1996:      6(int) Load 8(invocation)
-            1997:     65(ptr) AccessChain 27(data) 29 38 30
-            1998:     19(int) Load 1997
-            1999:     19(int) GroupNonUniformBitwiseXor 34 ExclusiveScan 1998
-            2000:     65(ptr) AccessChain 27(data) 1996 38 30
-                              Store 2000 1999
-            2001:      6(int) Load 8(invocation)
-            2002:     72(ptr) AccessChain 27(data) 38 38
-            2003:   20(ivec4) Load 2002
-            2004:   71(ivec2) VectorShuffle 2003 2003 0 1
-            2005:   71(ivec2) GroupNonUniformBitwiseXor 34 ExclusiveScan 2004
-            2006:     72(ptr) AccessChain 27(data) 2001 38
+            1916:    112(ptr) AccessChain 27(data) 38 51
+            1917:   21(ivec4) Load 1916
+            1918:  111(ivec2) VectorShuffle 1917 1917 0 1
+            1919:  111(ivec2) GroupNonUniformUMin 34 ExclusiveScan 1918
+            1920:    105(ptr) AccessChain 27(data) 1915 51 30
+            1921:      6(int) CompositeExtract 1919 0
+                              Store 1920 1921
+            1922:    105(ptr) AccessChain 27(data) 1915 51 47
+            1923:      6(int) CompositeExtract 1919 1
+                              Store 1922 1923
+            1924:      6(int) Load 8(invocation)
+            1925:    112(ptr) AccessChain 27(data) 51 51
+            1926:   21(ivec4) Load 1925
+            1927:  122(ivec3) VectorShuffle 1926 1926 0 1 2
+            1928:  122(ivec3) GroupNonUniformUMin 34 ExclusiveScan 1927
+            1929:    105(ptr) AccessChain 27(data) 1924 51 30
+            1930:      6(int) CompositeExtract 1928 0
+                              Store 1929 1930
+            1931:    105(ptr) AccessChain 27(data) 1924 51 47
+            1932:      6(int) CompositeExtract 1928 1
+                              Store 1931 1932
+            1933:    105(ptr) AccessChain 27(data) 1924 51 61
+            1934:      6(int) CompositeExtract 1928 2
+                              Store 1933 1934
+            1935:      6(int) Load 8(invocation)
+            1936:    112(ptr) AccessChain 27(data) 65 51
+            1937:   21(ivec4) Load 1936
+            1938:   21(ivec4) GroupNonUniformUMin 34 ExclusiveScan 1937
+            1939:    112(ptr) AccessChain 27(data) 1935 51
+                              Store 1939 1938
+            1940:      6(int) Load 8(invocation)
+            1941:    139(ptr) AccessChain 27(data) 29 65 30
+            1942:22(float64_t) Load 1941
+            1943:22(float64_t) GroupNonUniformFMin 34 ExclusiveScan 1942
+            1944:    139(ptr) AccessChain 27(data) 1940 65 30
+                              Store 1944 1943
+            1945:      6(int) Load 8(invocation)
+            1946:    146(ptr) AccessChain 27(data) 38 65
+            1947: 23(f64vec4) Load 1946
+            1948:145(f64vec2) VectorShuffle 1947 1947 0 1
+            1949:145(f64vec2) GroupNonUniformFMin 34 ExclusiveScan 1948
+            1950:    139(ptr) AccessChain 27(data) 1945 65 30
+            1951:22(float64_t) CompositeExtract 1949 0
+                              Store 1950 1951
+            1952:    139(ptr) AccessChain 27(data) 1945 65 47
+            1953:22(float64_t) CompositeExtract 1949 1
+                              Store 1952 1953
+            1954:      6(int) Load 8(invocation)
+            1955:    146(ptr) AccessChain 27(data) 51 65
+            1956: 23(f64vec4) Load 1955
+            1957:156(f64vec3) VectorShuffle 1956 1956 0 1 2
+            1958:156(f64vec3) GroupNonUniformFMin 34 ExclusiveScan 1957
+            1959:    139(ptr) AccessChain 27(data) 1954 65 30
+            1960:22(float64_t) CompositeExtract 1958 0
+                              Store 1959 1960
+            1961:    139(ptr) AccessChain 27(data) 1954 65 47
+            1962:22(float64_t) CompositeExtract 1958 1
+                              Store 1961 1962
+            1963:    139(ptr) AccessChain 27(data) 1954 65 61
+            1964:22(float64_t) CompositeExtract 1958 2
+                              Store 1963 1964
+            1965:      6(int) Load 8(invocation)
+            1966:    146(ptr) AccessChain 27(data) 65 65
+            1967: 23(f64vec4) Load 1966
+            1968: 23(f64vec4) GroupNonUniformFMin 34 ExclusiveScan 1967
+            1969:    146(ptr) AccessChain 27(data) 1965 65
+                              Store 1969 1968
+            1970:      6(int) Load 8(invocation)
+            1971:     31(ptr) AccessChain 27(data) 29 29 30
+            1972:   17(float) Load 1971
+            1973:   17(float) GroupNonUniformFMax 34 ExclusiveScan 1972
+            1974:     31(ptr) AccessChain 27(data) 1970 29 30
+                              Store 1974 1973
+            1975:      6(int) Load 8(invocation)
+            1976:     40(ptr) AccessChain 27(data) 38 29
+            1977:   18(fvec4) Load 1976
+            1978:   39(fvec2) VectorShuffle 1977 1977 0 1
+            1979:   39(fvec2) GroupNonUniformFMax 34 ExclusiveScan 1978
+            1980:     31(ptr) AccessChain 27(data) 1975 29 30
+            1981:   17(float) CompositeExtract 1979 0
+                              Store 1980 1981
+            1982:     31(ptr) AccessChain 27(data) 1975 29 47
+            1983:   17(float) CompositeExtract 1979 1
+                              Store 1982 1983
+            1984:      6(int) Load 8(invocation)
+            1985:     40(ptr) AccessChain 27(data) 51 29
+            1986:   18(fvec4) Load 1985
+            1987:   52(fvec3) VectorShuffle 1986 1986 0 1 2
+            1988:   52(fvec3) GroupNonUniformFMax 34 ExclusiveScan 1987
+            1989:     31(ptr) AccessChain 27(data) 1984 29 30
+            1990:   17(float) CompositeExtract 1988 0
+                              Store 1989 1990
+            1991:     31(ptr) AccessChain 27(data) 1984 29 47
+            1992:   17(float) CompositeExtract 1988 1
+                              Store 1991 1992
+            1993:     31(ptr) AccessChain 27(data) 1984 29 61
+            1994:   17(float) CompositeExtract 1988 2
+                              Store 1993 1994
+            1995:      6(int) Load 8(invocation)
+            1996:     40(ptr) AccessChain 27(data) 65 29
+            1997:   18(fvec4) Load 1996
+            1998:   18(fvec4) GroupNonUniformFMax 34 ExclusiveScan 1997
+            1999:     40(ptr) AccessChain 27(data) 1995 29
+                              Store 1999 1998
+            2000:      6(int) Load 8(invocation)
+            2001:     71(ptr) AccessChain 27(data) 29 38 30
+            2002:     19(int) Load 2001
+            2003:     19(int) GroupNonUniformSMax 34 ExclusiveScan 2002
+            2004:     71(ptr) AccessChain 27(data) 2000 38 30
+                              Store 2004 2003
+            2005:      6(int) Load 8(invocation)
+            2006:     78(ptr) AccessChain 27(data) 38 38
             2007:   20(ivec4) Load 2006
-            2008:   20(ivec4) VectorShuffle 2007 2005 4 5 2 3
-                              Store 2006 2008
-            2009:      6(int) Load 8(invocation)
-            2010:     72(ptr) AccessChain 27(data) 49 38
-            2011:   20(ivec4) Load 2010
-            2012:   81(ivec3) VectorShuffle 2011 2011 0 1 2
-            2013:   81(ivec3) GroupNonUniformBitwiseXor 34 ExclusiveScan 2012
-            2014:     72(ptr) AccessChain 27(data) 2009 38
-            2015:   20(ivec4) Load 2014
-            2016:   20(ivec4) VectorShuffle 2015 2013 4 5 6 3
-                              Store 2014 2016
-            2017:      6(int) Load 8(invocation)
-            2018:     72(ptr) AccessChain 27(data) 59 38
-            2019:   20(ivec4) Load 2018
-            2020:   20(ivec4) GroupNonUniformBitwiseXor 34 ExclusiveScan 2019
-            2021:     72(ptr) AccessChain 27(data) 2017 38
-                              Store 2021 2020
-            2022:      6(int) Load 8(invocation)
-            2023:     95(ptr) AccessChain 27(data) 29 49 30
-            2024:      6(int) Load 2023
-            2025:      6(int) GroupNonUniformBitwiseXor 34 ExclusiveScan 2024
-            2026:     95(ptr) AccessChain 27(data) 2022 49 30
-                              Store 2026 2025
-            2027:      6(int) Load 8(invocation)
-            2028:    102(ptr) AccessChain 27(data) 38 49
-            2029:   21(ivec4) Load 2028
-            2030:  101(ivec2) VectorShuffle 2029 2029 0 1
-            2031:  101(ivec2) GroupNonUniformBitwiseXor 34 ExclusiveScan 2030
-            2032:    102(ptr) AccessChain 27(data) 2027 49
-            2033:   21(ivec4) Load 2032
-            2034:   21(ivec4) VectorShuffle 2033 2031 4 5 2 3
-                              Store 2032 2034
+            2008:   77(ivec2) VectorShuffle 2007 2007 0 1
+            2009:   77(ivec2) GroupNonUniformSMax 34 ExclusiveScan 2008
+            2010:     71(ptr) AccessChain 27(data) 2005 38 30
+            2011:     19(int) CompositeExtract 2009 0
+                              Store 2010 2011
+            2012:     71(ptr) AccessChain 27(data) 2005 38 47
+            2013:     19(int) CompositeExtract 2009 1
+                              Store 2012 2013
+            2014:      6(int) Load 8(invocation)
+            2015:     78(ptr) AccessChain 27(data) 51 38
+            2016:   20(ivec4) Load 2015
+            2017:   88(ivec3) VectorShuffle 2016 2016 0 1 2
+            2018:   88(ivec3) GroupNonUniformSMax 34 ExclusiveScan 2017
+            2019:     71(ptr) AccessChain 27(data) 2014 38 30
+            2020:     19(int) CompositeExtract 2018 0
+                              Store 2019 2020
+            2021:     71(ptr) AccessChain 27(data) 2014 38 47
+            2022:     19(int) CompositeExtract 2018 1
+                              Store 2021 2022
+            2023:     71(ptr) AccessChain 27(data) 2014 38 61
+            2024:     19(int) CompositeExtract 2018 2
+                              Store 2023 2024
+            2025:      6(int) Load 8(invocation)
+            2026:     78(ptr) AccessChain 27(data) 65 38
+            2027:   20(ivec4) Load 2026
+            2028:   20(ivec4) GroupNonUniformSMax 34 ExclusiveScan 2027
+            2029:     78(ptr) AccessChain 27(data) 2025 38
+                              Store 2029 2028
+            2030:      6(int) Load 8(invocation)
+            2031:    105(ptr) AccessChain 27(data) 29 51 30
+            2032:      6(int) Load 2031
+            2033:      6(int) GroupNonUniformUMax 34 ExclusiveScan 2032
+            2034:    105(ptr) AccessChain 27(data) 2030 51 30
+                              Store 2034 2033
             2035:      6(int) Load 8(invocation)
-            2036:    102(ptr) AccessChain 27(data) 49 49
+            2036:    112(ptr) AccessChain 27(data) 38 51
             2037:   21(ivec4) Load 2036
-            2038:  111(ivec3) VectorShuffle 2037 2037 0 1 2
-            2039:  111(ivec3) GroupNonUniformBitwiseXor 34 ExclusiveScan 2038
-            2040:    102(ptr) AccessChain 27(data) 2035 49
-            2041:   21(ivec4) Load 2040
-            2042:   21(ivec4) VectorShuffle 2041 2039 4 5 6 3
-                              Store 2040 2042
-            2043:      6(int) Load 8(invocation)
-            2044:    102(ptr) AccessChain 27(data) 59 49
-            2045:   21(ivec4) Load 2044
-            2046:   21(ivec4) GroupNonUniformBitwiseXor 34 ExclusiveScan 2045
-            2047:    102(ptr) AccessChain 27(data) 2043 49
-                              Store 2047 2046
-            2048:      6(int) Load 8(invocation)
-            2049:     65(ptr) AccessChain 27(data) 29 38 30
-            2050:     19(int) Load 2049
-            2051:   521(bool) SLessThan 2050 29
-            2052:   521(bool) GroupNonUniformLogicalXor 34 ExclusiveScan 2051
-            2053:     19(int) Select 2052 38 29
-            2054:     65(ptr) AccessChain 27(data) 2048 38 30
-                              Store 2054 2053
+            2038:  111(ivec2) VectorShuffle 2037 2037 0 1
+            2039:  111(ivec2) GroupNonUniformUMax 34 ExclusiveScan 2038
+            2040:    105(ptr) AccessChain 27(data) 2035 51 30
+            2041:      6(int) CompositeExtract 2039 0
+                              Store 2040 2041
+            2042:    105(ptr) AccessChain 27(data) 2035 51 47
+            2043:      6(int) CompositeExtract 2039 1
+                              Store 2042 2043
+            2044:      6(int) Load 8(invocation)
+            2045:    112(ptr) AccessChain 27(data) 51 51
+            2046:   21(ivec4) Load 2045
+            2047:  122(ivec3) VectorShuffle 2046 2046 0 1 2
+            2048:  122(ivec3) GroupNonUniformUMax 34 ExclusiveScan 2047
+            2049:    105(ptr) AccessChain 27(data) 2044 51 30
+            2050:      6(int) CompositeExtract 2048 0
+                              Store 2049 2050
+            2051:    105(ptr) AccessChain 27(data) 2044 51 47
+            2052:      6(int) CompositeExtract 2048 1
+                              Store 2051 2052
+            2053:    105(ptr) AccessChain 27(data) 2044 51 61
+            2054:      6(int) CompositeExtract 2048 2
+                              Store 2053 2054
             2055:      6(int) Load 8(invocation)
-            2056:     72(ptr) AccessChain 27(data) 38 38
-            2057:   20(ivec4) Load 2056
-            2058:   71(ivec2) VectorShuffle 2057 2057 0 1
-            2059:  531(bvec2) SLessThan 2058 530
-            2060:  531(bvec2) GroupNonUniformLogicalXor 34 ExclusiveScan 2059
-            2061:   71(ivec2) Select 2060 534 530
-            2062:     72(ptr) AccessChain 27(data) 2055 38
-            2063:   20(ivec4) Load 2062
-            2064:   20(ivec4) VectorShuffle 2063 2061 4 5 2 3
-                              Store 2062 2064
+            2056:    112(ptr) AccessChain 27(data) 65 51
+            2057:   21(ivec4) Load 2056
+            2058:   21(ivec4) GroupNonUniformUMax 34 ExclusiveScan 2057
+            2059:    112(ptr) AccessChain 27(data) 2055 51
+                              Store 2059 2058
+            2060:      6(int) Load 8(invocation)
+            2061:    139(ptr) AccessChain 27(data) 29 65 30
+            2062:22(float64_t) Load 2061
+            2063:22(float64_t) GroupNonUniformFMax 34 ExclusiveScan 2062
+            2064:    139(ptr) AccessChain 27(data) 2060 65 30
+                              Store 2064 2063
             2065:      6(int) Load 8(invocation)
-            2066:     72(ptr) AccessChain 27(data) 38 38
-            2067:   20(ivec4) Load 2066
-            2068:   81(ivec3) VectorShuffle 2067 2067 0 1 2
-            2069:  544(bvec3) SLessThan 2068 543
-            2070:  544(bvec3) GroupNonUniformLogicalXor 34 ExclusiveScan 2069
-            2071:   81(ivec3) Select 2070 547 543
-            2072:     72(ptr) AccessChain 27(data) 2065 38
-            2073:   20(ivec4) Load 2072
-            2074:   20(ivec4) VectorShuffle 2073 2071 4 5 6 3
-                              Store 2072 2074
-            2075:      6(int) Load 8(invocation)
-            2076:     72(ptr) AccessChain 27(data) 38 38
-            2077:   20(ivec4) Load 2076
-            2078:  556(bvec4) SLessThan 2077 555
-            2079:  556(bvec4) GroupNonUniformLogicalXor 34 ExclusiveScan 2078
-            2080:   20(ivec4) Select 2079 559 555
-            2081:     72(ptr) AccessChain 27(data) 2075 38
-                              Store 2081 2080
+            2066:    146(ptr) AccessChain 27(data) 38 65
+            2067: 23(f64vec4) Load 2066
+            2068:145(f64vec2) VectorShuffle 2067 2067 0 1
+            2069:145(f64vec2) GroupNonUniformFMax 34 ExclusiveScan 2068
+            2070:    139(ptr) AccessChain 27(data) 2065 65 30
+            2071:22(float64_t) CompositeExtract 2069 0
+                              Store 2070 2071
+            2072:    139(ptr) AccessChain 27(data) 2065 65 47
+            2073:22(float64_t) CompositeExtract 2069 1
+                              Store 2072 2073
+            2074:      6(int) Load 8(invocation)
+            2075:    146(ptr) AccessChain 27(data) 51 65
+            2076: 23(f64vec4) Load 2075
+            2077:156(f64vec3) VectorShuffle 2076 2076 0 1 2
+            2078:156(f64vec3) GroupNonUniformFMax 34 ExclusiveScan 2077
+            2079:    139(ptr) AccessChain 27(data) 2074 65 30
+            2080:22(float64_t) CompositeExtract 2078 0
+                              Store 2079 2080
+            2081:    139(ptr) AccessChain 27(data) 2074 65 47
+            2082:22(float64_t) CompositeExtract 2078 1
+                              Store 2081 2082
+            2083:    139(ptr) AccessChain 27(data) 2074 65 61
+            2084:22(float64_t) CompositeExtract 2078 2
+                              Store 2083 2084
+            2085:      6(int) Load 8(invocation)
+            2086:    146(ptr) AccessChain 27(data) 65 65
+            2087: 23(f64vec4) Load 2086
+            2088: 23(f64vec4) GroupNonUniformFMax 34 ExclusiveScan 2087
+            2089:    146(ptr) AccessChain 27(data) 2085 65
+                              Store 2089 2088
+            2090:      6(int) Load 8(invocation)
+            2091:     71(ptr) AccessChain 27(data) 29 38 30
+            2092:     19(int) Load 2091
+            2093:     19(int) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2092
+            2094:     71(ptr) AccessChain 27(data) 2090 38 30
+                              Store 2094 2093
+            2095:      6(int) Load 8(invocation)
+            2096:     78(ptr) AccessChain 27(data) 38 38
+            2097:   20(ivec4) Load 2096
+            2098:   77(ivec2) VectorShuffle 2097 2097 0 1
+            2099:   77(ivec2) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2098
+            2100:     71(ptr) AccessChain 27(data) 2095 38 30
+            2101:     19(int) CompositeExtract 2099 0
+                              Store 2100 2101
+            2102:     71(ptr) AccessChain 27(data) 2095 38 47
+            2103:     19(int) CompositeExtract 2099 1
+                              Store 2102 2103
+            2104:      6(int) Load 8(invocation)
+            2105:     78(ptr) AccessChain 27(data) 51 38
+            2106:   20(ivec4) Load 2105
+            2107:   88(ivec3) VectorShuffle 2106 2106 0 1 2
+            2108:   88(ivec3) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2107
+            2109:     71(ptr) AccessChain 27(data) 2104 38 30
+            2110:     19(int) CompositeExtract 2108 0
+                              Store 2109 2110
+            2111:     71(ptr) AccessChain 27(data) 2104 38 47
+            2112:     19(int) CompositeExtract 2108 1
+                              Store 2111 2112
+            2113:     71(ptr) AccessChain 27(data) 2104 38 61
+            2114:     19(int) CompositeExtract 2108 2
+                              Store 2113 2114
+            2115:      6(int) Load 8(invocation)
+            2116:     78(ptr) AccessChain 27(data) 65 38
+            2117:   20(ivec4) Load 2116
+            2118:   20(ivec4) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2117
+            2119:     78(ptr) AccessChain 27(data) 2115 38
+                              Store 2119 2118
+            2120:      6(int) Load 8(invocation)
+            2121:    105(ptr) AccessChain 27(data) 29 51 30
+            2122:      6(int) Load 2121
+            2123:      6(int) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2122
+            2124:    105(ptr) AccessChain 27(data) 2120 51 30
+                              Store 2124 2123
+            2125:      6(int) Load 8(invocation)
+            2126:    112(ptr) AccessChain 27(data) 38 51
+            2127:   21(ivec4) Load 2126
+            2128:  111(ivec2) VectorShuffle 2127 2127 0 1
+            2129:  111(ivec2) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2128
+            2130:    105(ptr) AccessChain 27(data) 2125 51 30
+            2131:      6(int) CompositeExtract 2129 0
+                              Store 2130 2131
+            2132:    105(ptr) AccessChain 27(data) 2125 51 47
+            2133:      6(int) CompositeExtract 2129 1
+                              Store 2132 2133
+            2134:      6(int) Load 8(invocation)
+            2135:    112(ptr) AccessChain 27(data) 51 51
+            2136:   21(ivec4) Load 2135
+            2137:  122(ivec3) VectorShuffle 2136 2136 0 1 2
+            2138:  122(ivec3) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2137
+            2139:    105(ptr) AccessChain 27(data) 2134 51 30
+            2140:      6(int) CompositeExtract 2138 0
+                              Store 2139 2140
+            2141:    105(ptr) AccessChain 27(data) 2134 51 47
+            2142:      6(int) CompositeExtract 2138 1
+                              Store 2141 2142
+            2143:    105(ptr) AccessChain 27(data) 2134 51 61
+            2144:      6(int) CompositeExtract 2138 2
+                              Store 2143 2144
+            2145:      6(int) Load 8(invocation)
+            2146:    112(ptr) AccessChain 27(data) 65 51
+            2147:   21(ivec4) Load 2146
+            2148:   21(ivec4) GroupNonUniformBitwiseAnd 34 ExclusiveScan 2147
+            2149:    112(ptr) AccessChain 27(data) 2145 51
+                              Store 2149 2148
+            2150:      6(int) Load 8(invocation)
+            2151:     71(ptr) AccessChain 27(data) 29 38 30
+            2152:     19(int) Load 2151
+            2153:   595(bool) SLessThan 2152 29
+            2154:   595(bool) GroupNonUniformLogicalAnd 34 ExclusiveScan 2153
+            2155:     19(int) Select 2154 38 29
+            2156:     71(ptr) AccessChain 27(data) 2150 38 30
+                              Store 2156 2155
+            2157:      6(int) Load 8(invocation)
+            2158:     78(ptr) AccessChain 27(data) 38 38
+            2159:   20(ivec4) Load 2158
+            2160:   77(ivec2) VectorShuffle 2159 2159 0 1
+            2161:  605(bvec2) SLessThan 2160 604
+            2162:  605(bvec2) GroupNonUniformLogicalAnd 34 ExclusiveScan 2161
+            2163:   77(ivec2) Select 2162 608 604
+            2164:     71(ptr) AccessChain 27(data) 2157 38 30
+            2165:     19(int) CompositeExtract 2163 0
+                              Store 2164 2165
+            2166:     71(ptr) AccessChain 27(data) 2157 38 47
+            2167:     19(int) CompositeExtract 2163 1
+                              Store 2166 2167
+            2168:      6(int) Load 8(invocation)
+            2169:     78(ptr) AccessChain 27(data) 38 38
+            2170:   20(ivec4) Load 2169
+            2171:   88(ivec3) VectorShuffle 2170 2170 0 1 2
+            2172:  619(bvec3) SLessThan 2171 618
+            2173:  619(bvec3) GroupNonUniformLogicalAnd 34 ExclusiveScan 2172
+            2174:   88(ivec3) Select 2173 622 618
+            2175:     71(ptr) AccessChain 27(data) 2168 38 30
+            2176:     19(int) CompositeExtract 2174 0
+                              Store 2175 2176
+            2177:     71(ptr) AccessChain 27(data) 2168 38 47
+            2178:     19(int) CompositeExtract 2174 1
+                              Store 2177 2178
+            2179:     71(ptr) AccessChain 27(data) 2168 38 61
+            2180:     19(int) CompositeExtract 2174 2
+                              Store 2179 2180
+            2181:      6(int) Load 8(invocation)
+            2182:     78(ptr) AccessChain 27(data) 38 38
+            2183:   20(ivec4) Load 2182
+            2184:  634(bvec4) SLessThan 2183 633
+            2185:  634(bvec4) GroupNonUniformLogicalAnd 34 ExclusiveScan 2184
+            2186:   20(ivec4) Select 2185 637 633
+            2187:     78(ptr) AccessChain 27(data) 2181 38
+                              Store 2187 2186
+            2188:      6(int) Load 8(invocation)
+            2189:     71(ptr) AccessChain 27(data) 29 38 30
+            2190:     19(int) Load 2189
+            2191:     19(int) GroupNonUniformBitwiseOr 34 ExclusiveScan 2190
+            2192:     71(ptr) AccessChain 27(data) 2188 38 30
+                              Store 2192 2191
+            2193:      6(int) Load 8(invocation)
+            2194:     78(ptr) AccessChain 27(data) 38 38
+            2195:   20(ivec4) Load 2194
+            2196:   77(ivec2) VectorShuffle 2195 2195 0 1
+            2197:   77(ivec2) GroupNonUniformBitwiseOr 34 ExclusiveScan 2196
+            2198:     71(ptr) AccessChain 27(data) 2193 38 30
+            2199:     19(int) CompositeExtract 2197 0
+                              Store 2198 2199
+            2200:     71(ptr) AccessChain 27(data) 2193 38 47
+            2201:     19(int) CompositeExtract 2197 1
+                              Store 2200 2201
+            2202:      6(int) Load 8(invocation)
+            2203:     78(ptr) AccessChain 27(data) 51 38
+            2204:   20(ivec4) Load 2203
+            2205:   88(ivec3) VectorShuffle 2204 2204 0 1 2
+            2206:   88(ivec3) GroupNonUniformBitwiseOr 34 ExclusiveScan 2205
+            2207:     71(ptr) AccessChain 27(data) 2202 38 30
+            2208:     19(int) CompositeExtract 2206 0
+                              Store 2207 2208
+            2209:     71(ptr) AccessChain 27(data) 2202 38 47
+            2210:     19(int) CompositeExtract 2206 1
+                              Store 2209 2210
+            2211:     71(ptr) AccessChain 27(data) 2202 38 61
+            2212:     19(int) CompositeExtract 2206 2
+                              Store 2211 2212
+            2213:      6(int) Load 8(invocation)
+            2214:     78(ptr) AccessChain 27(data) 65 38
+            2215:   20(ivec4) Load 2214
+            2216:   20(ivec4) GroupNonUniformBitwiseOr 34 ExclusiveScan 2215
+            2217:     78(ptr) AccessChain 27(data) 2213 38
+                              Store 2217 2216
+            2218:      6(int) Load 8(invocation)
+            2219:    105(ptr) AccessChain 27(data) 29 51 30
+            2220:      6(int) Load 2219
+            2221:      6(int) GroupNonUniformBitwiseOr 34 ExclusiveScan 2220
+            2222:    105(ptr) AccessChain 27(data) 2218 51 30
+                              Store 2222 2221
+            2223:      6(int) Load 8(invocation)
+            2224:    112(ptr) AccessChain 27(data) 38 51
+            2225:   21(ivec4) Load 2224
+            2226:  111(ivec2) VectorShuffle 2225 2225 0 1
+            2227:  111(ivec2) GroupNonUniformBitwiseOr 34 ExclusiveScan 2226
+            2228:    105(ptr) AccessChain 27(data) 2223 51 30
+            2229:      6(int) CompositeExtract 2227 0
+                              Store 2228 2229
+            2230:    105(ptr) AccessChain 27(data) 2223 51 47
+            2231:      6(int) CompositeExtract 2227 1
+                              Store 2230 2231
+            2232:      6(int) Load 8(invocation)
+            2233:    112(ptr) AccessChain 27(data) 51 51
+            2234:   21(ivec4) Load 2233
+            2235:  122(ivec3) VectorShuffle 2234 2234 0 1 2
+            2236:  122(ivec3) GroupNonUniformBitwiseOr 34 ExclusiveScan 2235
+            2237:    105(ptr) AccessChain 27(data) 2232 51 30
+            2238:      6(int) CompositeExtract 2236 0
+                              Store 2237 2238
+            2239:    105(ptr) AccessChain 27(data) 2232 51 47
+            2240:      6(int) CompositeExtract 2236 1
+                              Store 2239 2240
+            2241:    105(ptr) AccessChain 27(data) 2232 51 61
+            2242:      6(int) CompositeExtract 2236 2
+                              Store 2241 2242
+            2243:      6(int) Load 8(invocation)
+            2244:    112(ptr) AccessChain 27(data) 65 51
+            2245:   21(ivec4) Load 2244
+            2246:   21(ivec4) GroupNonUniformBitwiseOr 34 ExclusiveScan 2245
+            2247:    112(ptr) AccessChain 27(data) 2243 51
+                              Store 2247 2246
+            2248:      6(int) Load 8(invocation)
+            2249:     71(ptr) AccessChain 27(data) 29 38 30
+            2250:     19(int) Load 2249
+            2251:   595(bool) SLessThan 2250 29
+            2252:   595(bool) GroupNonUniformLogicalOr 34 ExclusiveScan 2251
+            2253:     19(int) Select 2252 38 29
+            2254:     71(ptr) AccessChain 27(data) 2248 38 30
+                              Store 2254 2253
+            2255:      6(int) Load 8(invocation)
+            2256:     78(ptr) AccessChain 27(data) 38 38
+            2257:   20(ivec4) Load 2256
+            2258:   77(ivec2) VectorShuffle 2257 2257 0 1
+            2259:  605(bvec2) SLessThan 2258 604
+            2260:  605(bvec2) GroupNonUniformLogicalOr 34 ExclusiveScan 2259
+            2261:   77(ivec2) Select 2260 608 604
+            2262:     71(ptr) AccessChain 27(data) 2255 38 30
+            2263:     19(int) CompositeExtract 2261 0
+                              Store 2262 2263
+            2264:     71(ptr) AccessChain 27(data) 2255 38 47
+            2265:     19(int) CompositeExtract 2261 1
+                              Store 2264 2265
+            2266:      6(int) Load 8(invocation)
+            2267:     78(ptr) AccessChain 27(data) 38 38
+            2268:   20(ivec4) Load 2267
+            2269:   88(ivec3) VectorShuffle 2268 2268 0 1 2
+            2270:  619(bvec3) SLessThan 2269 618
+            2271:  619(bvec3) GroupNonUniformLogicalOr 34 ExclusiveScan 2270
+            2272:   88(ivec3) Select 2271 622 618
+            2273:     71(ptr) AccessChain 27(data) 2266 38 30
+            2274:     19(int) CompositeExtract 2272 0
+                              Store 2273 2274
+            2275:     71(ptr) AccessChain 27(data) 2266 38 47
+            2276:     19(int) CompositeExtract 2272 1
+                              Store 2275 2276
+            2277:     71(ptr) AccessChain 27(data) 2266 38 61
+            2278:     19(int) CompositeExtract 2272 2
+                              Store 2277 2278
+            2279:      6(int) Load 8(invocation)
+            2280:     78(ptr) AccessChain 27(data) 38 38
+            2281:   20(ivec4) Load 2280
+            2282:  634(bvec4) SLessThan 2281 633
+            2283:  634(bvec4) GroupNonUniformLogicalOr 34 ExclusiveScan 2282
+            2284:   20(ivec4) Select 2283 637 633
+            2285:     78(ptr) AccessChain 27(data) 2279 38
+                              Store 2285 2284
+            2286:      6(int) Load 8(invocation)
+            2287:     71(ptr) AccessChain 27(data) 29 38 30
+            2288:     19(int) Load 2287
+            2289:     19(int) GroupNonUniformBitwiseXor 34 ExclusiveScan 2288
+            2290:     71(ptr) AccessChain 27(data) 2286 38 30
+                              Store 2290 2289
+            2291:      6(int) Load 8(invocation)
+            2292:     78(ptr) AccessChain 27(data) 38 38
+            2293:   20(ivec4) Load 2292
+            2294:   77(ivec2) VectorShuffle 2293 2293 0 1
+            2295:   77(ivec2) GroupNonUniformBitwiseXor 34 ExclusiveScan 2294
+            2296:     71(ptr) AccessChain 27(data) 2291 38 30
+            2297:     19(int) CompositeExtract 2295 0
+                              Store 2296 2297
+            2298:     71(ptr) AccessChain 27(data) 2291 38 47
+            2299:     19(int) CompositeExtract 2295 1
+                              Store 2298 2299
+            2300:      6(int) Load 8(invocation)
+            2301:     78(ptr) AccessChain 27(data) 51 38
+            2302:   20(ivec4) Load 2301
+            2303:   88(ivec3) VectorShuffle 2302 2302 0 1 2
+            2304:   88(ivec3) GroupNonUniformBitwiseXor 34 ExclusiveScan 2303
+            2305:     71(ptr) AccessChain 27(data) 2300 38 30
+            2306:     19(int) CompositeExtract 2304 0
+                              Store 2305 2306
+            2307:     71(ptr) AccessChain 27(data) 2300 38 47
+            2308:     19(int) CompositeExtract 2304 1
+                              Store 2307 2308
+            2309:     71(ptr) AccessChain 27(data) 2300 38 61
+            2310:     19(int) CompositeExtract 2304 2
+                              Store 2309 2310
+            2311:      6(int) Load 8(invocation)
+            2312:     78(ptr) AccessChain 27(data) 65 38
+            2313:   20(ivec4) Load 2312
+            2314:   20(ivec4) GroupNonUniformBitwiseXor 34 ExclusiveScan 2313
+            2315:     78(ptr) AccessChain 27(data) 2311 38
+                              Store 2315 2314
+            2316:      6(int) Load 8(invocation)
+            2317:    105(ptr) AccessChain 27(data) 29 51 30
+            2318:      6(int) Load 2317
+            2319:      6(int) GroupNonUniformBitwiseXor 34 ExclusiveScan 2318
+            2320:    105(ptr) AccessChain 27(data) 2316 51 30
+                              Store 2320 2319
+            2321:      6(int) Load 8(invocation)
+            2322:    112(ptr) AccessChain 27(data) 38 51
+            2323:   21(ivec4) Load 2322
+            2324:  111(ivec2) VectorShuffle 2323 2323 0 1
+            2325:  111(ivec2) GroupNonUniformBitwiseXor 34 ExclusiveScan 2324
+            2326:    105(ptr) AccessChain 27(data) 2321 51 30
+            2327:      6(int) CompositeExtract 2325 0
+                              Store 2326 2327
+            2328:    105(ptr) AccessChain 27(data) 2321 51 47
+            2329:      6(int) CompositeExtract 2325 1
+                              Store 2328 2329
+            2330:      6(int) Load 8(invocation)
+            2331:    112(ptr) AccessChain 27(data) 51 51
+            2332:   21(ivec4) Load 2331
+            2333:  122(ivec3) VectorShuffle 2332 2332 0 1 2
+            2334:  122(ivec3) GroupNonUniformBitwiseXor 34 ExclusiveScan 2333
+            2335:    105(ptr) AccessChain 27(data) 2330 51 30
+            2336:      6(int) CompositeExtract 2334 0
+                              Store 2335 2336
+            2337:    105(ptr) AccessChain 27(data) 2330 51 47
+            2338:      6(int) CompositeExtract 2334 1
+                              Store 2337 2338
+            2339:    105(ptr) AccessChain 27(data) 2330 51 61
+            2340:      6(int) CompositeExtract 2334 2
+                              Store 2339 2340
+            2341:      6(int) Load 8(invocation)
+            2342:    112(ptr) AccessChain 27(data) 65 51
+            2343:   21(ivec4) Load 2342
+            2344:   21(ivec4) GroupNonUniformBitwiseXor 34 ExclusiveScan 2343
+            2345:    112(ptr) AccessChain 27(data) 2341 51
+                              Store 2345 2344
+            2346:      6(int) Load 8(invocation)
+            2347:     71(ptr) AccessChain 27(data) 29 38 30
+            2348:     19(int) Load 2347
+            2349:   595(bool) SLessThan 2348 29
+            2350:   595(bool) GroupNonUniformLogicalXor 34 ExclusiveScan 2349
+            2351:     19(int) Select 2350 38 29
+            2352:     71(ptr) AccessChain 27(data) 2346 38 30
+                              Store 2352 2351
+            2353:      6(int) Load 8(invocation)
+            2354:     78(ptr) AccessChain 27(data) 38 38
+            2355:   20(ivec4) Load 2354
+            2356:   77(ivec2) VectorShuffle 2355 2355 0 1
+            2357:  605(bvec2) SLessThan 2356 604
+            2358:  605(bvec2) GroupNonUniformLogicalXor 34 ExclusiveScan 2357
+            2359:   77(ivec2) Select 2358 608 604
+            2360:     71(ptr) AccessChain 27(data) 2353 38 30
+            2361:     19(int) CompositeExtract 2359 0
+                              Store 2360 2361
+            2362:     71(ptr) AccessChain 27(data) 2353 38 47
+            2363:     19(int) CompositeExtract 2359 1
+                              Store 2362 2363
+            2364:      6(int) Load 8(invocation)
+            2365:     78(ptr) AccessChain 27(data) 38 38
+            2366:   20(ivec4) Load 2365
+            2367:   88(ivec3) VectorShuffle 2366 2366 0 1 2
+            2368:  619(bvec3) SLessThan 2367 618
+            2369:  619(bvec3) GroupNonUniformLogicalXor 34 ExclusiveScan 2368
+            2370:   88(ivec3) Select 2369 622 618
+            2371:     71(ptr) AccessChain 27(data) 2364 38 30
+            2372:     19(int) CompositeExtract 2370 0
+                              Store 2371 2372
+            2373:     71(ptr) AccessChain 27(data) 2364 38 47
+            2374:     19(int) CompositeExtract 2370 1
+                              Store 2373 2374
+            2375:     71(ptr) AccessChain 27(data) 2364 38 61
+            2376:     19(int) CompositeExtract 2370 2
+                              Store 2375 2376
+            2377:      6(int) Load 8(invocation)
+            2378:     78(ptr) AccessChain 27(data) 38 38
+            2379:   20(ivec4) Load 2378
+            2380:  634(bvec4) SLessThan 2379 633
+            2381:  634(bvec4) GroupNonUniformLogicalXor 34 ExclusiveScan 2380
+            2382:   20(ivec4) Select 2381 637 633
+            2383:     78(ptr) AccessChain 27(data) 2377 38
+                              Store 2383 2382
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.subgroupBallot.comp.out b/Test/baseResults/spv.subgroupBallot.comp.out
index 0e83773..65cfa7a 100644
--- a/Test/baseResults/spv.subgroupBallot.comp.out
+++ b/Test/baseResults/spv.subgroupBallot.comp.out
@@ -1,7 +1,7 @@
 spv.subgroupBallot.comp
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 397
+// Id's are bound by 437
 
                               Capability Shader
                               Capability Float64
@@ -51,7 +51,7 @@
                               Decorate 46(Buffers) Block
                               Decorate 49(data) DescriptorSet 0
                               Decorate 49(data) Binding 0
-                              Decorate 396 BuiltIn WorkgroupSize
+                              Decorate 436 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -93,28 +93,28 @@
               96:             TypePointer StorageBuffer 40(float)
              102:             TypeVector 40(float) 2
              103:             TypePointer StorageBuffer 41(fvec4)
-             112:             TypeVector 40(float) 3
-             121:     42(int) Constant 3
-             127:             TypePointer StorageBuffer 42(int)
-             133:             TypeVector 42(int) 2
-             134:             TypePointer StorageBuffer 43(ivec4)
-             143:             TypeVector 42(int) 3
-             162:             TypeVector 6(int) 2
-             171:             TypeVector 6(int) 3
-             185:             TypePointer StorageBuffer 44(float64_t)
-             191:             TypeVector 44(float64_t) 2
-             192:             TypePointer StorageBuffer 45(f64vec4)
-             201:             TypeVector 44(float64_t) 3
-             225:  133(ivec2) ConstantComposite 61 61
-             226:             TypeVector 36(bool) 2
-             229:  133(ivec2) ConstantComposite 60 60
-             238:  143(ivec3) ConstantComposite 61 61 61
-             239:             TypeVector 36(bool) 3
-             242:  143(ivec3) ConstantComposite 60 60 60
-             250:   43(ivec4) ConstantComposite 61 61 61 61
-             253:   43(ivec4) ConstantComposite 60 60 60 60
-             395:      6(int) Constant 8
-             396:  171(ivec3) ConstantComposite 395 395 64
+             113:             TypeVector 40(float) 3
+             125:     42(int) Constant 3
+             131:             TypePointer StorageBuffer 42(int)
+             137:             TypeVector 42(int) 2
+             138:             TypePointer StorageBuffer 43(ivec4)
+             148:             TypeVector 42(int) 3
+             170:             TypeVector 6(int) 2
+             180:             TypeVector 6(int) 3
+             197:             TypePointer StorageBuffer 44(float64_t)
+             203:             TypeVector 44(float64_t) 2
+             204:             TypePointer StorageBuffer 45(f64vec4)
+             214:             TypeVector 44(float64_t) 3
+             241:  137(ivec2) ConstantComposite 61 61
+             242:             TypeVector 36(bool) 2
+             245:  137(ivec2) ConstantComposite 60 60
+             255:  148(ivec3) ConstantComposite 61 61 61
+             256:             TypeVector 36(bool) 3
+             259:  148(ivec3) ConstantComposite 60 60 60
+             270:   43(ivec4) ConstantComposite 61 61 61 61
+             273:   43(ivec4) ConstantComposite 60 60 60 60
+             435:      6(int) Constant 8
+             436:  180(ivec3) ConstantComposite 435 435 64
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -179,7 +179,7 @@
               87:             Label
               92:    36(bool) Phi 85 5 91 86
                               SelectionMerge 94 None
-                              BranchConditional 92 93 256
+                              BranchConditional 92 93 276
               93:               Label
               95:      6(int)   Load 8(invocation)
               97:     96(ptr)   AccessChain 49(data) 61 61 54
@@ -192,313 +192,383 @@
              105:   41(fvec4)   Load 104
              106:  102(fvec2)   VectorShuffle 105 105 0 1
              107:  102(fvec2)   GroupNonUniformBroadcast 38 106 38
-             108:    103(ptr)   AccessChain 49(data) 101 61
-             109:   41(fvec4)   Load 108
-             110:   41(fvec4)   VectorShuffle 109 107 4 5 2 3
-                                Store 108 110
-             111:      6(int)   Load 8(invocation)
-             113:    103(ptr)   AccessChain 49(data) 51 61
-             114:   41(fvec4)   Load 113
-             115:  112(fvec3)   VectorShuffle 114 114 0 1 2
-             116:  112(fvec3)   GroupNonUniformBroadcast 38 115 38
-             117:    103(ptr)   AccessChain 49(data) 111 61
-             118:   41(fvec4)   Load 117
-             119:   41(fvec4)   VectorShuffle 118 116 4 5 6 3
-                                Store 117 119
-             120:      6(int)   Load 8(invocation)
-             122:    103(ptr)   AccessChain 49(data) 121 61
-             123:   41(fvec4)   Load 122
-             124:   41(fvec4)   GroupNonUniformBroadcast 38 123 38
-             125:    103(ptr)   AccessChain 49(data) 120 61
-                                Store 125 124
-             126:      6(int)   Load 8(invocation)
-             128:    127(ptr)   AccessChain 49(data) 61 60 54
-             129:     42(int)   Load 128
-             130:     42(int)   GroupNonUniformBroadcast 38 129 72
-             131:    127(ptr)   AccessChain 49(data) 126 60 54
-                                Store 131 130
-             132:      6(int)   Load 8(invocation)
-             135:    134(ptr)   AccessChain 49(data) 60 60
-             136:   43(ivec4)   Load 135
-             137:  133(ivec2)   VectorShuffle 136 136 0 1
-             138:  133(ivec2)   GroupNonUniformBroadcast 38 137 72
-             139:    134(ptr)   AccessChain 49(data) 132 60
+             108:     96(ptr)   AccessChain 49(data) 101 61 54
+             109:   40(float)   CompositeExtract 107 0
+                                Store 108 109
+             110:     96(ptr)   AccessChain 49(data) 101 61 64
+             111:   40(float)   CompositeExtract 107 1
+                                Store 110 111
+             112:      6(int)   Load 8(invocation)
+             114:    103(ptr)   AccessChain 49(data) 51 61
+             115:   41(fvec4)   Load 114
+             116:  113(fvec3)   VectorShuffle 115 115 0 1 2
+             117:  113(fvec3)   GroupNonUniformBroadcast 38 116 38
+             118:     96(ptr)   AccessChain 49(data) 112 61 54
+             119:   40(float)   CompositeExtract 117 0
+                                Store 118 119
+             120:     96(ptr)   AccessChain 49(data) 112 61 64
+             121:   40(float)   CompositeExtract 117 1
+                                Store 120 121
+             122:     96(ptr)   AccessChain 49(data) 112 61 72
+             123:   40(float)   CompositeExtract 117 2
+                                Store 122 123
+             124:      6(int)   Load 8(invocation)
+             126:    103(ptr)   AccessChain 49(data) 125 61
+             127:   41(fvec4)   Load 126
+             128:   41(fvec4)   GroupNonUniformBroadcast 38 127 38
+             129:    103(ptr)   AccessChain 49(data) 124 61
+                                Store 129 128
+             130:      6(int)   Load 8(invocation)
+             132:    131(ptr)   AccessChain 49(data) 61 60 54
+             133:     42(int)   Load 132
+             134:     42(int)   GroupNonUniformBroadcast 38 133 72
+             135:    131(ptr)   AccessChain 49(data) 130 60 54
+                                Store 135 134
+             136:      6(int)   Load 8(invocation)
+             139:    138(ptr)   AccessChain 49(data) 60 60
              140:   43(ivec4)   Load 139
-             141:   43(ivec4)   VectorShuffle 140 138 4 5 2 3
-                                Store 139 141
-             142:      6(int)   Load 8(invocation)
-             144:    134(ptr)   AccessChain 49(data) 51 60
-             145:   43(ivec4)   Load 144
-             146:  143(ivec3)   VectorShuffle 145 145 0 1 2
-             147:  143(ivec3)   GroupNonUniformBroadcast 38 146 72
-             148:    134(ptr)   AccessChain 49(data) 142 60
-             149:   43(ivec4)   Load 148
-             150:   43(ivec4)   VectorShuffle 149 147 4 5 6 3
-                                Store 148 150
-             151:      6(int)   Load 8(invocation)
-             152:    134(ptr)   AccessChain 49(data) 121 60
-             153:   43(ivec4)   Load 152
-             154:   43(ivec4)   GroupNonUniformBroadcast 38 153 72
-             155:    134(ptr)   AccessChain 49(data) 151 60
-                                Store 155 154
-             156:      6(int)   Load 8(invocation)
-             157:     55(ptr)   AccessChain 49(data) 61 51 54
-             158:      6(int)   Load 157
-             159:      6(int)   GroupNonUniformBroadcast 38 158 64
-             160:     55(ptr)   AccessChain 49(data) 156 51 54
-                                Store 160 159
-             161:      6(int)   Load 8(invocation)
-             163:     88(ptr)   AccessChain 49(data) 60 51
-             164:   17(ivec4)   Load 163
-             165:  162(ivec2)   VectorShuffle 164 164 0 1
-             166:  162(ivec2)   GroupNonUniformBroadcast 38 165 64
-             167:     88(ptr)   AccessChain 49(data) 161 51
-             168:   17(ivec4)   Load 167
-             169:   17(ivec4)   VectorShuffle 168 166 4 5 2 3
-                                Store 167 169
-             170:      6(int)   Load 8(invocation)
-             172:     88(ptr)   AccessChain 49(data) 51 51
-             173:   17(ivec4)   Load 172
-             174:  171(ivec3)   VectorShuffle 173 173 0 1 2
-             175:  171(ivec3)   GroupNonUniformBroadcast 38 174 64
-             176:     88(ptr)   AccessChain 49(data) 170 51
-             177:   17(ivec4)   Load 176
-             178:   17(ivec4)   VectorShuffle 177 175 4 5 6 3
-                                Store 176 178
+             141:  137(ivec2)   VectorShuffle 140 140 0 1
+             142:  137(ivec2)   GroupNonUniformBroadcast 38 141 72
+             143:    131(ptr)   AccessChain 49(data) 136 60 54
+             144:     42(int)   CompositeExtract 142 0
+                                Store 143 144
+             145:    131(ptr)   AccessChain 49(data) 136 60 64
+             146:     42(int)   CompositeExtract 142 1
+                                Store 145 146
+             147:      6(int)   Load 8(invocation)
+             149:    138(ptr)   AccessChain 49(data) 51 60
+             150:   43(ivec4)   Load 149
+             151:  148(ivec3)   VectorShuffle 150 150 0 1 2
+             152:  148(ivec3)   GroupNonUniformBroadcast 38 151 72
+             153:    131(ptr)   AccessChain 49(data) 147 60 54
+             154:     42(int)   CompositeExtract 152 0
+                                Store 153 154
+             155:    131(ptr)   AccessChain 49(data) 147 60 64
+             156:     42(int)   CompositeExtract 152 1
+                                Store 155 156
+             157:    131(ptr)   AccessChain 49(data) 147 60 72
+             158:     42(int)   CompositeExtract 152 2
+                                Store 157 158
+             159:      6(int)   Load 8(invocation)
+             160:    138(ptr)   AccessChain 49(data) 125 60
+             161:   43(ivec4)   Load 160
+             162:   43(ivec4)   GroupNonUniformBroadcast 38 161 72
+             163:    138(ptr)   AccessChain 49(data) 159 60
+                                Store 163 162
+             164:      6(int)   Load 8(invocation)
+             165:     55(ptr)   AccessChain 49(data) 61 51 54
+             166:      6(int)   Load 165
+             167:      6(int)   GroupNonUniformBroadcast 38 166 64
+             168:     55(ptr)   AccessChain 49(data) 164 51 54
+                                Store 168 167
+             169:      6(int)   Load 8(invocation)
+             171:     88(ptr)   AccessChain 49(data) 60 51
+             172:   17(ivec4)   Load 171
+             173:  170(ivec2)   VectorShuffle 172 172 0 1
+             174:  170(ivec2)   GroupNonUniformBroadcast 38 173 64
+             175:     55(ptr)   AccessChain 49(data) 169 51 54
+             176:      6(int)   CompositeExtract 174 0
+                                Store 175 176
+             177:     55(ptr)   AccessChain 49(data) 169 51 64
+             178:      6(int)   CompositeExtract 174 1
+                                Store 177 178
              179:      6(int)   Load 8(invocation)
-             180:     88(ptr)   AccessChain 49(data) 121 51
-             181:   17(ivec4)   Load 180
-             182:   17(ivec4)   GroupNonUniformBroadcast 38 181 64
-             183:     88(ptr)   AccessChain 49(data) 179 51
-                                Store 183 182
-             184:      6(int)   Load 8(invocation)
-             186:    185(ptr)   AccessChain 49(data) 61 121 54
-             187:44(float64_t)   Load 186
-             188:44(float64_t)   GroupNonUniformBroadcast 38 187 54
-             189:    185(ptr)   AccessChain 49(data) 184 121 54
-                                Store 189 188
-             190:      6(int)   Load 8(invocation)
-             193:    192(ptr)   AccessChain 49(data) 60 121
-             194: 45(f64vec4)   Load 193
-             195:191(f64vec2)   VectorShuffle 194 194 0 1
-             196:191(f64vec2)   GroupNonUniformBroadcast 38 195 54
-             197:    192(ptr)   AccessChain 49(data) 190 121
-             198: 45(f64vec4)   Load 197
-             199: 45(f64vec4)   VectorShuffle 198 196 4 5 2 3
-                                Store 197 199
-             200:      6(int)   Load 8(invocation)
-             202:    192(ptr)   AccessChain 49(data) 51 121
-             203: 45(f64vec4)   Load 202
-             204:201(f64vec3)   VectorShuffle 203 203 0 1 2
-             205:201(f64vec3)   GroupNonUniformBroadcast 38 204 54
-             206:    192(ptr)   AccessChain 49(data) 200 121
-             207: 45(f64vec4)   Load 206
-             208: 45(f64vec4)   VectorShuffle 207 205 4 5 6 3
-                                Store 206 208
-             209:      6(int)   Load 8(invocation)
-             210:    192(ptr)   AccessChain 49(data) 121 121
-             211: 45(f64vec4)   Load 210
-             212: 45(f64vec4)   GroupNonUniformBroadcast 38 211 54
-             213:    192(ptr)   AccessChain 49(data) 209 121
-                                Store 213 212
-             214:      6(int)   Load 8(invocation)
-             215:    127(ptr)   AccessChain 49(data) 61 60 54
-             216:     42(int)   Load 215
-             217:    36(bool)   SLessThan 216 61
-             218:    36(bool)   GroupNonUniformBroadcast 38 217 64
-             219:     42(int)   Select 218 60 61
-             220:    127(ptr)   AccessChain 49(data) 214 60 54
-                                Store 220 219
-             221:      6(int)   Load 8(invocation)
-             222:    134(ptr)   AccessChain 49(data) 60 60
-             223:   43(ivec4)   Load 222
-             224:  133(ivec2)   VectorShuffle 223 223 0 1
-             227:  226(bvec2)   SLessThan 224 225
-             228:  226(bvec2)   GroupNonUniformBroadcast 38 227 64
-             230:  133(ivec2)   Select 228 229 225
-             231:    134(ptr)   AccessChain 49(data) 221 60
-             232:   43(ivec4)   Load 231
-             233:   43(ivec4)   VectorShuffle 232 230 4 5 2 3
-                                Store 231 233
-             234:      6(int)   Load 8(invocation)
-             235:    134(ptr)   AccessChain 49(data) 60 60
-             236:   43(ivec4)   Load 235
-             237:  143(ivec3)   VectorShuffle 236 236 0 1 2
-             240:  239(bvec3)   SLessThan 237 238
-             241:  239(bvec3)   GroupNonUniformBroadcast 38 240 64
-             243:  143(ivec3)   Select 241 242 238
-             244:    134(ptr)   AccessChain 49(data) 234 60
-             245:   43(ivec4)   Load 244
-             246:   43(ivec4)   VectorShuffle 245 243 4 5 6 3
-                                Store 244 246
-             247:      6(int)   Load 8(invocation)
-             248:    134(ptr)   AccessChain 49(data) 60 60
-             249:   43(ivec4)   Load 248
-             251:   83(bvec4)   SLessThan 249 250
-             252:   83(bvec4)   GroupNonUniformBroadcast 38 251 64
-             254:   43(ivec4)   Select 252 253 250
-             255:    134(ptr)   AccessChain 49(data) 247 60
-                                Store 255 254
+             181:     88(ptr)   AccessChain 49(data) 51 51
+             182:   17(ivec4)   Load 181
+             183:  180(ivec3)   VectorShuffle 182 182 0 1 2
+             184:  180(ivec3)   GroupNonUniformBroadcast 38 183 64
+             185:     55(ptr)   AccessChain 49(data) 179 51 54
+             186:      6(int)   CompositeExtract 184 0
+                                Store 185 186
+             187:     55(ptr)   AccessChain 49(data) 179 51 64
+             188:      6(int)   CompositeExtract 184 1
+                                Store 187 188
+             189:     55(ptr)   AccessChain 49(data) 179 51 72
+             190:      6(int)   CompositeExtract 184 2
+                                Store 189 190
+             191:      6(int)   Load 8(invocation)
+             192:     88(ptr)   AccessChain 49(data) 125 51
+             193:   17(ivec4)   Load 192
+             194:   17(ivec4)   GroupNonUniformBroadcast 38 193 64
+             195:     88(ptr)   AccessChain 49(data) 191 51
+                                Store 195 194
+             196:      6(int)   Load 8(invocation)
+             198:    197(ptr)   AccessChain 49(data) 61 125 54
+             199:44(float64_t)   Load 198
+             200:44(float64_t)   GroupNonUniformBroadcast 38 199 54
+             201:    197(ptr)   AccessChain 49(data) 196 125 54
+                                Store 201 200
+             202:      6(int)   Load 8(invocation)
+             205:    204(ptr)   AccessChain 49(data) 60 125
+             206: 45(f64vec4)   Load 205
+             207:203(f64vec2)   VectorShuffle 206 206 0 1
+             208:203(f64vec2)   GroupNonUniformBroadcast 38 207 54
+             209:    197(ptr)   AccessChain 49(data) 202 125 54
+             210:44(float64_t)   CompositeExtract 208 0
+                                Store 209 210
+             211:    197(ptr)   AccessChain 49(data) 202 125 64
+             212:44(float64_t)   CompositeExtract 208 1
+                                Store 211 212
+             213:      6(int)   Load 8(invocation)
+             215:    204(ptr)   AccessChain 49(data) 51 125
+             216: 45(f64vec4)   Load 215
+             217:214(f64vec3)   VectorShuffle 216 216 0 1 2
+             218:214(f64vec3)   GroupNonUniformBroadcast 38 217 54
+             219:    197(ptr)   AccessChain 49(data) 213 125 54
+             220:44(float64_t)   CompositeExtract 218 0
+                                Store 219 220
+             221:    197(ptr)   AccessChain 49(data) 213 125 64
+             222:44(float64_t)   CompositeExtract 218 1
+                                Store 221 222
+             223:    197(ptr)   AccessChain 49(data) 213 125 72
+             224:44(float64_t)   CompositeExtract 218 2
+                                Store 223 224
+             225:      6(int)   Load 8(invocation)
+             226:    204(ptr)   AccessChain 49(data) 125 125
+             227: 45(f64vec4)   Load 226
+             228: 45(f64vec4)   GroupNonUniformBroadcast 38 227 54
+             229:    204(ptr)   AccessChain 49(data) 225 125
+                                Store 229 228
+             230:      6(int)   Load 8(invocation)
+             231:    131(ptr)   AccessChain 49(data) 61 60 54
+             232:     42(int)   Load 231
+             233:    36(bool)   SLessThan 232 61
+             234:    36(bool)   GroupNonUniformBroadcast 38 233 64
+             235:     42(int)   Select 234 60 61
+             236:    131(ptr)   AccessChain 49(data) 230 60 54
+                                Store 236 235
+             237:      6(int)   Load 8(invocation)
+             238:    138(ptr)   AccessChain 49(data) 60 60
+             239:   43(ivec4)   Load 238
+             240:  137(ivec2)   VectorShuffle 239 239 0 1
+             243:  242(bvec2)   SLessThan 240 241
+             244:  242(bvec2)   GroupNonUniformBroadcast 38 243 64
+             246:  137(ivec2)   Select 244 245 241
+             247:    131(ptr)   AccessChain 49(data) 237 60 54
+             248:     42(int)   CompositeExtract 246 0
+                                Store 247 248
+             249:    131(ptr)   AccessChain 49(data) 237 60 64
+             250:     42(int)   CompositeExtract 246 1
+                                Store 249 250
+             251:      6(int)   Load 8(invocation)
+             252:    138(ptr)   AccessChain 49(data) 60 60
+             253:   43(ivec4)   Load 252
+             254:  148(ivec3)   VectorShuffle 253 253 0 1 2
+             257:  256(bvec3)   SLessThan 254 255
+             258:  256(bvec3)   GroupNonUniformBroadcast 38 257 64
+             260:  148(ivec3)   Select 258 259 255
+             261:    131(ptr)   AccessChain 49(data) 251 60 54
+             262:     42(int)   CompositeExtract 260 0
+                                Store 261 262
+             263:    131(ptr)   AccessChain 49(data) 251 60 64
+             264:     42(int)   CompositeExtract 260 1
+                                Store 263 264
+             265:    131(ptr)   AccessChain 49(data) 251 60 72
+             266:     42(int)   CompositeExtract 260 2
+                                Store 265 266
+             267:      6(int)   Load 8(invocation)
+             268:    138(ptr)   AccessChain 49(data) 60 60
+             269:   43(ivec4)   Load 268
+             271:   83(bvec4)   SLessThan 269 270
+             272:   83(bvec4)   GroupNonUniformBroadcast 38 271 64
+             274:   43(ivec4)   Select 272 273 270
+             275:    138(ptr)   AccessChain 49(data) 267 60
+                                Store 275 274
                                 Branch 94
-             256:               Label
-             257:      6(int)   Load 8(invocation)
-             258:     96(ptr)   AccessChain 49(data) 61 61 54
-             259:   40(float)   Load 258
-             260:   40(float)   GroupNonUniformBroadcastFirst 38 259
-             261:     96(ptr)   AccessChain 49(data) 257 61 54
-                                Store 261 260
-             262:      6(int)   Load 8(invocation)
-             263:    103(ptr)   AccessChain 49(data) 60 61
-             264:   41(fvec4)   Load 263
-             265:  102(fvec2)   VectorShuffle 264 264 0 1
-             266:  102(fvec2)   GroupNonUniformBroadcastFirst 38 265
-             267:    103(ptr)   AccessChain 49(data) 262 61
-             268:   41(fvec4)   Load 267
-             269:   41(fvec4)   VectorShuffle 268 266 4 5 2 3
-                                Store 267 269
-             270:      6(int)   Load 8(invocation)
-             271:    103(ptr)   AccessChain 49(data) 51 61
-             272:   41(fvec4)   Load 271
-             273:  112(fvec3)   VectorShuffle 272 272 0 1 2
-             274:  112(fvec3)   GroupNonUniformBroadcastFirst 38 273
-             275:    103(ptr)   AccessChain 49(data) 270 61
-             276:   41(fvec4)   Load 275
-             277:   41(fvec4)   VectorShuffle 276 274 4 5 6 3
-                                Store 275 277
-             278:      6(int)   Load 8(invocation)
-             279:    103(ptr)   AccessChain 49(data) 121 61
-             280:   41(fvec4)   Load 279
-             281:   41(fvec4)   GroupNonUniformBroadcastFirst 38 280
-             282:    103(ptr)   AccessChain 49(data) 278 61
-                                Store 282 281
-             283:      6(int)   Load 8(invocation)
-             284:    127(ptr)   AccessChain 49(data) 61 60 54
-             285:     42(int)   Load 284
-             286:     42(int)   GroupNonUniformBroadcastFirst 38 285
-             287:    127(ptr)   AccessChain 49(data) 283 60 54
-                                Store 287 286
-             288:      6(int)   Load 8(invocation)
-             289:    134(ptr)   AccessChain 49(data) 60 60
-             290:   43(ivec4)   Load 289
-             291:  133(ivec2)   VectorShuffle 290 290 0 1
-             292:  133(ivec2)   GroupNonUniformBroadcastFirst 38 291
-             293:    134(ptr)   AccessChain 49(data) 288 60
-             294:   43(ivec4)   Load 293
-             295:   43(ivec4)   VectorShuffle 294 292 4 5 2 3
-                                Store 293 295
-             296:      6(int)   Load 8(invocation)
-             297:    134(ptr)   AccessChain 49(data) 51 60
-             298:   43(ivec4)   Load 297
-             299:  143(ivec3)   VectorShuffle 298 298 0 1 2
-             300:  143(ivec3)   GroupNonUniformBroadcastFirst 38 299
-             301:    134(ptr)   AccessChain 49(data) 296 60
-             302:   43(ivec4)   Load 301
-             303:   43(ivec4)   VectorShuffle 302 300 4 5 6 3
-                                Store 301 303
-             304:      6(int)   Load 8(invocation)
-             305:    134(ptr)   AccessChain 49(data) 121 60
-             306:   43(ivec4)   Load 305
-             307:   43(ivec4)   GroupNonUniformBroadcastFirst 38 306
-             308:    134(ptr)   AccessChain 49(data) 304 60
-                                Store 308 307
-             309:      6(int)   Load 8(invocation)
-             310:     55(ptr)   AccessChain 49(data) 61 51 54
-             311:      6(int)   Load 310
-             312:      6(int)   GroupNonUniformBroadcastFirst 38 311
-             313:     55(ptr)   AccessChain 49(data) 309 51 54
-                                Store 313 312
-             314:      6(int)   Load 8(invocation)
-             315:     88(ptr)   AccessChain 49(data) 60 51
-             316:   17(ivec4)   Load 315
-             317:  162(ivec2)   VectorShuffle 316 316 0 1
-             318:  162(ivec2)   GroupNonUniformBroadcastFirst 38 317
-             319:     88(ptr)   AccessChain 49(data) 314 51
-             320:   17(ivec4)   Load 319
-             321:   17(ivec4)   VectorShuffle 320 318 4 5 2 3
-                                Store 319 321
-             322:      6(int)   Load 8(invocation)
-             323:     88(ptr)   AccessChain 49(data) 51 51
-             324:   17(ivec4)   Load 323
-             325:  171(ivec3)   VectorShuffle 324 324 0 1 2
-             326:  171(ivec3)   GroupNonUniformBroadcastFirst 38 325
-             327:     88(ptr)   AccessChain 49(data) 322 51
-             328:   17(ivec4)   Load 327
-             329:   17(ivec4)   VectorShuffle 328 326 4 5 6 3
-                                Store 327 329
-             330:      6(int)   Load 8(invocation)
-             331:     88(ptr)   AccessChain 49(data) 121 51
-             332:   17(ivec4)   Load 331
-             333:   17(ivec4)   GroupNonUniformBroadcastFirst 38 332
-             334:     88(ptr)   AccessChain 49(data) 330 51
-                                Store 334 333
-             335:      6(int)   Load 8(invocation)
-             336:    185(ptr)   AccessChain 49(data) 61 121 54
-             337:44(float64_t)   Load 336
-             338:44(float64_t)   GroupNonUniformBroadcastFirst 38 337
-             339:    185(ptr)   AccessChain 49(data) 335 121 54
-                                Store 339 338
-             340:      6(int)   Load 8(invocation)
-             341:    192(ptr)   AccessChain 49(data) 60 121
-             342: 45(f64vec4)   Load 341
-             343:191(f64vec2)   VectorShuffle 342 342 0 1
-             344:191(f64vec2)   GroupNonUniformBroadcastFirst 38 343
-             345:    192(ptr)   AccessChain 49(data) 340 121
-             346: 45(f64vec4)   Load 345
-             347: 45(f64vec4)   VectorShuffle 346 344 4 5 2 3
-                                Store 345 347
-             348:      6(int)   Load 8(invocation)
-             349:    192(ptr)   AccessChain 49(data) 51 121
-             350: 45(f64vec4)   Load 349
-             351:201(f64vec3)   VectorShuffle 350 350 0 1 2
-             352:201(f64vec3)   GroupNonUniformBroadcastFirst 38 351
-             353:    192(ptr)   AccessChain 49(data) 348 121
-             354: 45(f64vec4)   Load 353
-             355: 45(f64vec4)   VectorShuffle 354 352 4 5 6 3
-                                Store 353 355
-             356:      6(int)   Load 8(invocation)
-             357:    192(ptr)   AccessChain 49(data) 121 121
-             358: 45(f64vec4)   Load 357
-             359: 45(f64vec4)   GroupNonUniformBroadcastFirst 38 358
-             360:    192(ptr)   AccessChain 49(data) 356 121
-                                Store 360 359
-             361:      6(int)   Load 8(invocation)
-             362:    127(ptr)   AccessChain 49(data) 61 60 54
-             363:     42(int)   Load 362
-             364:    36(bool)   SLessThan 363 61
-             365:    36(bool)   GroupNonUniformBroadcastFirst 38 364
-             366:     42(int)   Select 365 60 61
-             367:    127(ptr)   AccessChain 49(data) 361 60 54
-                                Store 367 366
-             368:      6(int)   Load 8(invocation)
-             369:    134(ptr)   AccessChain 49(data) 60 60
-             370:   43(ivec4)   Load 369
-             371:  133(ivec2)   VectorShuffle 370 370 0 1
-             372:  226(bvec2)   SLessThan 371 225
-             373:  226(bvec2)   GroupNonUniformBroadcastFirst 38 372
-             374:  133(ivec2)   Select 373 229 225
-             375:    134(ptr)   AccessChain 49(data) 368 60
-             376:   43(ivec4)   Load 375
-             377:   43(ivec4)   VectorShuffle 376 374 4 5 2 3
-                                Store 375 377
-             378:      6(int)   Load 8(invocation)
-             379:    134(ptr)   AccessChain 49(data) 60 60
-             380:   43(ivec4)   Load 379
-             381:  143(ivec3)   VectorShuffle 380 380 0 1 2
-             382:  239(bvec3)   SLessThan 381 238
-             383:  239(bvec3)   GroupNonUniformBroadcastFirst 38 382
-             384:  143(ivec3)   Select 383 242 238
-             385:    134(ptr)   AccessChain 49(data) 378 60
-             386:   43(ivec4)   Load 385
-             387:   43(ivec4)   VectorShuffle 386 384 4 5 6 3
-                                Store 385 387
-             388:      6(int)   Load 8(invocation)
-             389:    134(ptr)   AccessChain 49(data) 60 60
-             390:   43(ivec4)   Load 389
-             391:   83(bvec4)   SLessThan 390 250
-             392:   83(bvec4)   GroupNonUniformBroadcastFirst 38 391
-             393:   43(ivec4)   Select 392 253 250
-             394:    134(ptr)   AccessChain 49(data) 388 60
-                                Store 394 393
+             276:               Label
+             277:      6(int)   Load 8(invocation)
+             278:     96(ptr)   AccessChain 49(data) 61 61 54
+             279:   40(float)   Load 278
+             280:   40(float)   GroupNonUniformBroadcastFirst 38 279
+             281:     96(ptr)   AccessChain 49(data) 277 61 54
+                                Store 281 280
+             282:      6(int)   Load 8(invocation)
+             283:    103(ptr)   AccessChain 49(data) 60 61
+             284:   41(fvec4)   Load 283
+             285:  102(fvec2)   VectorShuffle 284 284 0 1
+             286:  102(fvec2)   GroupNonUniformBroadcastFirst 38 285
+             287:     96(ptr)   AccessChain 49(data) 282 61 54
+             288:   40(float)   CompositeExtract 286 0
+                                Store 287 288
+             289:     96(ptr)   AccessChain 49(data) 282 61 64
+             290:   40(float)   CompositeExtract 286 1
+                                Store 289 290
+             291:      6(int)   Load 8(invocation)
+             292:    103(ptr)   AccessChain 49(data) 51 61
+             293:   41(fvec4)   Load 292
+             294:  113(fvec3)   VectorShuffle 293 293 0 1 2
+             295:  113(fvec3)   GroupNonUniformBroadcastFirst 38 294
+             296:     96(ptr)   AccessChain 49(data) 291 61 54
+             297:   40(float)   CompositeExtract 295 0
+                                Store 296 297
+             298:     96(ptr)   AccessChain 49(data) 291 61 64
+             299:   40(float)   CompositeExtract 295 1
+                                Store 298 299
+             300:     96(ptr)   AccessChain 49(data) 291 61 72
+             301:   40(float)   CompositeExtract 295 2
+                                Store 300 301
+             302:      6(int)   Load 8(invocation)
+             303:    103(ptr)   AccessChain 49(data) 125 61
+             304:   41(fvec4)   Load 303
+             305:   41(fvec4)   GroupNonUniformBroadcastFirst 38 304
+             306:    103(ptr)   AccessChain 49(data) 302 61
+                                Store 306 305
+             307:      6(int)   Load 8(invocation)
+             308:    131(ptr)   AccessChain 49(data) 61 60 54
+             309:     42(int)   Load 308
+             310:     42(int)   GroupNonUniformBroadcastFirst 38 309
+             311:    131(ptr)   AccessChain 49(data) 307 60 54
+                                Store 311 310
+             312:      6(int)   Load 8(invocation)
+             313:    138(ptr)   AccessChain 49(data) 60 60
+             314:   43(ivec4)   Load 313
+             315:  137(ivec2)   VectorShuffle 314 314 0 1
+             316:  137(ivec2)   GroupNonUniformBroadcastFirst 38 315
+             317:    131(ptr)   AccessChain 49(data) 312 60 54
+             318:     42(int)   CompositeExtract 316 0
+                                Store 317 318
+             319:    131(ptr)   AccessChain 49(data) 312 60 64
+             320:     42(int)   CompositeExtract 316 1
+                                Store 319 320
+             321:      6(int)   Load 8(invocation)
+             322:    138(ptr)   AccessChain 49(data) 51 60
+             323:   43(ivec4)   Load 322
+             324:  148(ivec3)   VectorShuffle 323 323 0 1 2
+             325:  148(ivec3)   GroupNonUniformBroadcastFirst 38 324
+             326:    131(ptr)   AccessChain 49(data) 321 60 54
+             327:     42(int)   CompositeExtract 325 0
+                                Store 326 327
+             328:    131(ptr)   AccessChain 49(data) 321 60 64
+             329:     42(int)   CompositeExtract 325 1
+                                Store 328 329
+             330:    131(ptr)   AccessChain 49(data) 321 60 72
+             331:     42(int)   CompositeExtract 325 2
+                                Store 330 331
+             332:      6(int)   Load 8(invocation)
+             333:    138(ptr)   AccessChain 49(data) 125 60
+             334:   43(ivec4)   Load 333
+             335:   43(ivec4)   GroupNonUniformBroadcastFirst 38 334
+             336:    138(ptr)   AccessChain 49(data) 332 60
+                                Store 336 335
+             337:      6(int)   Load 8(invocation)
+             338:     55(ptr)   AccessChain 49(data) 61 51 54
+             339:      6(int)   Load 338
+             340:      6(int)   GroupNonUniformBroadcastFirst 38 339
+             341:     55(ptr)   AccessChain 49(data) 337 51 54
+                                Store 341 340
+             342:      6(int)   Load 8(invocation)
+             343:     88(ptr)   AccessChain 49(data) 60 51
+             344:   17(ivec4)   Load 343
+             345:  170(ivec2)   VectorShuffle 344 344 0 1
+             346:  170(ivec2)   GroupNonUniformBroadcastFirst 38 345
+             347:     55(ptr)   AccessChain 49(data) 342 51 54
+             348:      6(int)   CompositeExtract 346 0
+                                Store 347 348
+             349:     55(ptr)   AccessChain 49(data) 342 51 64
+             350:      6(int)   CompositeExtract 346 1
+                                Store 349 350
+             351:      6(int)   Load 8(invocation)
+             352:     88(ptr)   AccessChain 49(data) 51 51
+             353:   17(ivec4)   Load 352
+             354:  180(ivec3)   VectorShuffle 353 353 0 1 2
+             355:  180(ivec3)   GroupNonUniformBroadcastFirst 38 354
+             356:     55(ptr)   AccessChain 49(data) 351 51 54
+             357:      6(int)   CompositeExtract 355 0
+                                Store 356 357
+             358:     55(ptr)   AccessChain 49(data) 351 51 64
+             359:      6(int)   CompositeExtract 355 1
+                                Store 358 359
+             360:     55(ptr)   AccessChain 49(data) 351 51 72
+             361:      6(int)   CompositeExtract 355 2
+                                Store 360 361
+             362:      6(int)   Load 8(invocation)
+             363:     88(ptr)   AccessChain 49(data) 125 51
+             364:   17(ivec4)   Load 363
+             365:   17(ivec4)   GroupNonUniformBroadcastFirst 38 364
+             366:     88(ptr)   AccessChain 49(data) 362 51
+                                Store 366 365
+             367:      6(int)   Load 8(invocation)
+             368:    197(ptr)   AccessChain 49(data) 61 125 54
+             369:44(float64_t)   Load 368
+             370:44(float64_t)   GroupNonUniformBroadcastFirst 38 369
+             371:    197(ptr)   AccessChain 49(data) 367 125 54
+                                Store 371 370
+             372:      6(int)   Load 8(invocation)
+             373:    204(ptr)   AccessChain 49(data) 60 125
+             374: 45(f64vec4)   Load 373
+             375:203(f64vec2)   VectorShuffle 374 374 0 1
+             376:203(f64vec2)   GroupNonUniformBroadcastFirst 38 375
+             377:    197(ptr)   AccessChain 49(data) 372 125 54
+             378:44(float64_t)   CompositeExtract 376 0
+                                Store 377 378
+             379:    197(ptr)   AccessChain 49(data) 372 125 64
+             380:44(float64_t)   CompositeExtract 376 1
+                                Store 379 380
+             381:      6(int)   Load 8(invocation)
+             382:    204(ptr)   AccessChain 49(data) 51 125
+             383: 45(f64vec4)   Load 382
+             384:214(f64vec3)   VectorShuffle 383 383 0 1 2
+             385:214(f64vec3)   GroupNonUniformBroadcastFirst 38 384
+             386:    197(ptr)   AccessChain 49(data) 381 125 54
+             387:44(float64_t)   CompositeExtract 385 0
+                                Store 386 387
+             388:    197(ptr)   AccessChain 49(data) 381 125 64
+             389:44(float64_t)   CompositeExtract 385 1
+                                Store 388 389
+             390:    197(ptr)   AccessChain 49(data) 381 125 72
+             391:44(float64_t)   CompositeExtract 385 2
+                                Store 390 391
+             392:      6(int)   Load 8(invocation)
+             393:    204(ptr)   AccessChain 49(data) 125 125
+             394: 45(f64vec4)   Load 393
+             395: 45(f64vec4)   GroupNonUniformBroadcastFirst 38 394
+             396:    204(ptr)   AccessChain 49(data) 392 125
+                                Store 396 395
+             397:      6(int)   Load 8(invocation)
+             398:    131(ptr)   AccessChain 49(data) 61 60 54
+             399:     42(int)   Load 398
+             400:    36(bool)   SLessThan 399 61
+             401:    36(bool)   GroupNonUniformBroadcastFirst 38 400
+             402:     42(int)   Select 401 60 61
+             403:    131(ptr)   AccessChain 49(data) 397 60 54
+                                Store 403 402
+             404:      6(int)   Load 8(invocation)
+             405:    138(ptr)   AccessChain 49(data) 60 60
+             406:   43(ivec4)   Load 405
+             407:  137(ivec2)   VectorShuffle 406 406 0 1
+             408:  242(bvec2)   SLessThan 407 241
+             409:  242(bvec2)   GroupNonUniformBroadcastFirst 38 408
+             410:  137(ivec2)   Select 409 245 241
+             411:    131(ptr)   AccessChain 49(data) 404 60 54
+             412:     42(int)   CompositeExtract 410 0
+                                Store 411 412
+             413:    131(ptr)   AccessChain 49(data) 404 60 64
+             414:     42(int)   CompositeExtract 410 1
+                                Store 413 414
+             415:      6(int)   Load 8(invocation)
+             416:    138(ptr)   AccessChain 49(data) 60 60
+             417:   43(ivec4)   Load 416
+             418:  148(ivec3)   VectorShuffle 417 417 0 1 2
+             419:  256(bvec3)   SLessThan 418 255
+             420:  256(bvec3)   GroupNonUniformBroadcastFirst 38 419
+             421:  148(ivec3)   Select 420 259 255
+             422:    131(ptr)   AccessChain 49(data) 415 60 54
+             423:     42(int)   CompositeExtract 421 0
+                                Store 422 423
+             424:    131(ptr)   AccessChain 49(data) 415 60 64
+             425:     42(int)   CompositeExtract 421 1
+                                Store 424 425
+             426:    131(ptr)   AccessChain 49(data) 415 60 72
+             427:     42(int)   CompositeExtract 421 2
+                                Store 426 427
+             428:      6(int)   Load 8(invocation)
+             429:    138(ptr)   AccessChain 49(data) 60 60
+             430:   43(ivec4)   Load 429
+             431:   83(bvec4)   SLessThan 430 270
+             432:   83(bvec4)   GroupNonUniformBroadcastFirst 38 431
+             433:   43(ivec4)   Select 432 273 270
+             434:    138(ptr)   AccessChain 49(data) 428 60
+                                Store 434 433
                                 Branch 94
               94:             Label
                               Return
diff --git a/Test/baseResults/spv.subgroupClustered.comp.out b/Test/baseResults/spv.subgroupClustered.comp.out
index 297fcec..a2e486d 100644
--- a/Test/baseResults/spv.subgroupClustered.comp.out
+++ b/Test/baseResults/spv.subgroupClustered.comp.out
@@ -1,7 +1,7 @@
 spv.subgroupClustered.comp
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 737
+// Id's are bound by 838
 
                               Capability Shader
                               Capability Float64
@@ -39,7 +39,7 @@
                               Decorate 24(Buffers) Block
                               Decorate 27(data) DescriptorSet 0
                               Decorate 27(data) Binding 0
-                              Decorate 736 BuiltIn WorkgroupSize
+                              Decorate 837 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -67,33 +67,34 @@
               39:     19(int) Constant 1
               40:             TypeVector 17(float) 2
               41:             TypePointer StorageBuffer 18(fvec4)
-              50:     19(int) Constant 2
-              51:             TypeVector 17(float) 3
-              60:     19(int) Constant 3
-              66:             TypePointer StorageBuffer 19(int)
-              72:             TypeVector 19(int) 2
-              73:             TypePointer StorageBuffer 20(ivec4)
-              82:             TypeVector 19(int) 3
-              96:             TypePointer StorageBuffer 6(int)
-             102:             TypeVector 6(int) 2
-             103:             TypePointer StorageBuffer 21(ivec4)
-             112:             TypeVector 6(int) 3
-             126:             TypePointer StorageBuffer 22(float64_t)
-             132:             TypeVector 22(float64_t) 2
-             133:             TypePointer StorageBuffer 23(f64vec4)
-             142:             TypeVector 22(float64_t) 3
-             522:             TypeBool
-             531:   72(ivec2) ConstantComposite 29 29
-             532:             TypeVector 522(bool) 2
-             535:   72(ivec2) ConstantComposite 39 39
-             544:   82(ivec3) ConstantComposite 29 29 29
-             545:             TypeVector 522(bool) 3
-             548:   82(ivec3) ConstantComposite 39 39 39
-             556:   20(ivec4) ConstantComposite 29 29 29 29
-             557:             TypeVector 522(bool) 4
-             560:   20(ivec4) ConstantComposite 39 39 39 39
-             735:      6(int) Constant 8
-             736:  112(ivec3) ConstantComposite 735 34 34
+              51:     19(int) Constant 2
+              52:             TypeVector 17(float) 3
+              61:      6(int) Constant 2
+              65:     19(int) Constant 3
+              71:             TypePointer StorageBuffer 19(int)
+              77:             TypeVector 19(int) 2
+              78:             TypePointer StorageBuffer 20(ivec4)
+              88:             TypeVector 19(int) 3
+             105:             TypePointer StorageBuffer 6(int)
+             111:             TypeVector 6(int) 2
+             112:             TypePointer StorageBuffer 21(ivec4)
+             122:             TypeVector 6(int) 3
+             139:             TypePointer StorageBuffer 22(float64_t)
+             145:             TypeVector 22(float64_t) 2
+             146:             TypePointer StorageBuffer 23(f64vec4)
+             156:             TypeVector 22(float64_t) 3
+             595:             TypeBool
+             604:   77(ivec2) ConstantComposite 29 29
+             605:             TypeVector 595(bool) 2
+             608:   77(ivec2) ConstantComposite 39 39
+             618:   88(ivec3) ConstantComposite 29 29 29
+             619:             TypeVector 595(bool) 3
+             622:   88(ivec3) ConstantComposite 39 39 39
+             633:   20(ivec4) ConstantComposite 29 29 29 29
+             634:             TypeVector 595(bool) 4
+             637:   20(ivec4) ConstantComposite 39 39 39 39
+             836:      6(int) Constant 8
+             837:  122(ivec3) ConstantComposite 836 34 34
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -113,768 +114,943 @@
               43:   18(fvec4) Load 42
               44:   40(fvec2) VectorShuffle 43 43 0 1
               45:   40(fvec2) GroupNonUniformFAdd 35 ClusteredReduce 44 34
-              46:     41(ptr) AccessChain 27(data) 38 29
-              47:   18(fvec4) Load 46
-              48:   18(fvec4) VectorShuffle 47 45 4 5 2 3
-                              Store 46 48
-              49:      6(int) Load 8(invocation)
-              52:     41(ptr) AccessChain 27(data) 50 29
-              53:   18(fvec4) Load 52
-              54:   51(fvec3) VectorShuffle 53 53 0 1 2
-              55:   51(fvec3) GroupNonUniformFAdd 35 ClusteredReduce 54 34
-              56:     41(ptr) AccessChain 27(data) 49 29
-              57:   18(fvec4) Load 56
-              58:   18(fvec4) VectorShuffle 57 55 4 5 6 3
-                              Store 56 58
-              59:      6(int) Load 8(invocation)
-              61:     41(ptr) AccessChain 27(data) 60 29
-              62:   18(fvec4) Load 61
-              63:   18(fvec4) GroupNonUniformFAdd 35 ClusteredReduce 62 34
-              64:     41(ptr) AccessChain 27(data) 59 29
-                              Store 64 63
-              65:      6(int) Load 8(invocation)
-              67:     66(ptr) AccessChain 27(data) 29 39 30
-              68:     19(int) Load 67
-              69:     19(int) GroupNonUniformIAdd 35 ClusteredReduce 68 34
-              70:     66(ptr) AccessChain 27(data) 65 39 30
-                              Store 70 69
-              71:      6(int) Load 8(invocation)
-              74:     73(ptr) AccessChain 27(data) 39 39
-              75:   20(ivec4) Load 74
-              76:   72(ivec2) VectorShuffle 75 75 0 1
-              77:   72(ivec2) GroupNonUniformIAdd 35 ClusteredReduce 76 34
-              78:     73(ptr) AccessChain 27(data) 71 39
-              79:   20(ivec4) Load 78
-              80:   20(ivec4) VectorShuffle 79 77 4 5 2 3
-                              Store 78 80
-              81:      6(int) Load 8(invocation)
-              83:     73(ptr) AccessChain 27(data) 50 39
-              84:   20(ivec4) Load 83
-              85:   82(ivec3) VectorShuffle 84 84 0 1 2
-              86:   82(ivec3) GroupNonUniformIAdd 35 ClusteredReduce 85 34
-              87:     73(ptr) AccessChain 27(data) 81 39
-              88:   20(ivec4) Load 87
-              89:   20(ivec4) VectorShuffle 88 86 4 5 6 3
-                              Store 87 89
-              90:      6(int) Load 8(invocation)
-              91:     73(ptr) AccessChain 27(data) 60 39
-              92:   20(ivec4) Load 91
-              93:   20(ivec4) GroupNonUniformIAdd 35 ClusteredReduce 92 34
-              94:     73(ptr) AccessChain 27(data) 90 39
-                              Store 94 93
-              95:      6(int) Load 8(invocation)
-              97:     96(ptr) AccessChain 27(data) 29 50 30
-              98:      6(int) Load 97
-              99:      6(int) GroupNonUniformIAdd 35 ClusteredReduce 98 34
-             100:     96(ptr) AccessChain 27(data) 95 50 30
-                              Store 100 99
-             101:      6(int) Load 8(invocation)
-             104:    103(ptr) AccessChain 27(data) 39 50
-             105:   21(ivec4) Load 104
-             106:  102(ivec2) VectorShuffle 105 105 0 1
-             107:  102(ivec2) GroupNonUniformIAdd 35 ClusteredReduce 106 34
-             108:    103(ptr) AccessChain 27(data) 101 50
-             109:   21(ivec4) Load 108
-             110:   21(ivec4) VectorShuffle 109 107 4 5 2 3
-                              Store 108 110
-             111:      6(int) Load 8(invocation)
-             113:    103(ptr) AccessChain 27(data) 50 50
+              46:     31(ptr) AccessChain 27(data) 38 29 30
+              47:   17(float) CompositeExtract 45 0
+                              Store 46 47
+              48:     31(ptr) AccessChain 27(data) 38 29 34
+              49:   17(float) CompositeExtract 45 1
+                              Store 48 49
+              50:      6(int) Load 8(invocation)
+              53:     41(ptr) AccessChain 27(data) 51 29
+              54:   18(fvec4) Load 53
+              55:   52(fvec3) VectorShuffle 54 54 0 1 2
+              56:   52(fvec3) GroupNonUniformFAdd 35 ClusteredReduce 55 34
+              57:     31(ptr) AccessChain 27(data) 50 29 30
+              58:   17(float) CompositeExtract 56 0
+                              Store 57 58
+              59:     31(ptr) AccessChain 27(data) 50 29 34
+              60:   17(float) CompositeExtract 56 1
+                              Store 59 60
+              62:     31(ptr) AccessChain 27(data) 50 29 61
+              63:   17(float) CompositeExtract 56 2
+                              Store 62 63
+              64:      6(int) Load 8(invocation)
+              66:     41(ptr) AccessChain 27(data) 65 29
+              67:   18(fvec4) Load 66
+              68:   18(fvec4) GroupNonUniformFAdd 35 ClusteredReduce 67 34
+              69:     41(ptr) AccessChain 27(data) 64 29
+                              Store 69 68
+              70:      6(int) Load 8(invocation)
+              72:     71(ptr) AccessChain 27(data) 29 39 30
+              73:     19(int) Load 72
+              74:     19(int) GroupNonUniformIAdd 35 ClusteredReduce 73 34
+              75:     71(ptr) AccessChain 27(data) 70 39 30
+                              Store 75 74
+              76:      6(int) Load 8(invocation)
+              79:     78(ptr) AccessChain 27(data) 39 39
+              80:   20(ivec4) Load 79
+              81:   77(ivec2) VectorShuffle 80 80 0 1
+              82:   77(ivec2) GroupNonUniformIAdd 35 ClusteredReduce 81 34
+              83:     71(ptr) AccessChain 27(data) 76 39 30
+              84:     19(int) CompositeExtract 82 0
+                              Store 83 84
+              85:     71(ptr) AccessChain 27(data) 76 39 34
+              86:     19(int) CompositeExtract 82 1
+                              Store 85 86
+              87:      6(int) Load 8(invocation)
+              89:     78(ptr) AccessChain 27(data) 51 39
+              90:   20(ivec4) Load 89
+              91:   88(ivec3) VectorShuffle 90 90 0 1 2
+              92:   88(ivec3) GroupNonUniformIAdd 35 ClusteredReduce 91 34
+              93:     71(ptr) AccessChain 27(data) 87 39 30
+              94:     19(int) CompositeExtract 92 0
+                              Store 93 94
+              95:     71(ptr) AccessChain 27(data) 87 39 34
+              96:     19(int) CompositeExtract 92 1
+                              Store 95 96
+              97:     71(ptr) AccessChain 27(data) 87 39 61
+              98:     19(int) CompositeExtract 92 2
+                              Store 97 98
+              99:      6(int) Load 8(invocation)
+             100:     78(ptr) AccessChain 27(data) 65 39
+             101:   20(ivec4) Load 100
+             102:   20(ivec4) GroupNonUniformIAdd 35 ClusteredReduce 101 34
+             103:     78(ptr) AccessChain 27(data) 99 39
+                              Store 103 102
+             104:      6(int) Load 8(invocation)
+             106:    105(ptr) AccessChain 27(data) 29 51 30
+             107:      6(int) Load 106
+             108:      6(int) GroupNonUniformIAdd 35 ClusteredReduce 107 34
+             109:    105(ptr) AccessChain 27(data) 104 51 30
+                              Store 109 108
+             110:      6(int) Load 8(invocation)
+             113:    112(ptr) AccessChain 27(data) 39 51
              114:   21(ivec4) Load 113
-             115:  112(ivec3) VectorShuffle 114 114 0 1 2
-             116:  112(ivec3) GroupNonUniformIAdd 35 ClusteredReduce 115 34
-             117:    103(ptr) AccessChain 27(data) 111 50
-             118:   21(ivec4) Load 117
-             119:   21(ivec4) VectorShuffle 118 116 4 5 6 3
-                              Store 117 119
-             120:      6(int) Load 8(invocation)
-             121:    103(ptr) AccessChain 27(data) 60 50
-             122:   21(ivec4) Load 121
-             123:   21(ivec4) GroupNonUniformIAdd 35 ClusteredReduce 122 34
-             124:    103(ptr) AccessChain 27(data) 120 50
-                              Store 124 123
-             125:      6(int) Load 8(invocation)
-             127:    126(ptr) AccessChain 27(data) 29 60 30
-             128:22(float64_t) Load 127
-             129:22(float64_t) GroupNonUniformFAdd 35 ClusteredReduce 128 34
-             130:    126(ptr) AccessChain 27(data) 125 60 30
-                              Store 130 129
-             131:      6(int) Load 8(invocation)
-             134:    133(ptr) AccessChain 27(data) 39 60
-             135: 23(f64vec4) Load 134
-             136:132(f64vec2) VectorShuffle 135 135 0 1
-             137:132(f64vec2) GroupNonUniformFAdd 35 ClusteredReduce 136 34
-             138:    133(ptr) AccessChain 27(data) 131 60
-             139: 23(f64vec4) Load 138
-             140: 23(f64vec4) VectorShuffle 139 137 4 5 2 3
-                              Store 138 140
-             141:      6(int) Load 8(invocation)
-             143:    133(ptr) AccessChain 27(data) 50 60
-             144: 23(f64vec4) Load 143
-             145:142(f64vec3) VectorShuffle 144 144 0 1 2
-             146:142(f64vec3) GroupNonUniformFAdd 35 ClusteredReduce 145 34
-             147:    133(ptr) AccessChain 27(data) 141 60
+             115:  111(ivec2) VectorShuffle 114 114 0 1
+             116:  111(ivec2) GroupNonUniformIAdd 35 ClusteredReduce 115 34
+             117:    105(ptr) AccessChain 27(data) 110 51 30
+             118:      6(int) CompositeExtract 116 0
+                              Store 117 118
+             119:    105(ptr) AccessChain 27(data) 110 51 34
+             120:      6(int) CompositeExtract 116 1
+                              Store 119 120
+             121:      6(int) Load 8(invocation)
+             123:    112(ptr) AccessChain 27(data) 51 51
+             124:   21(ivec4) Load 123
+             125:  122(ivec3) VectorShuffle 124 124 0 1 2
+             126:  122(ivec3) GroupNonUniformIAdd 35 ClusteredReduce 125 34
+             127:    105(ptr) AccessChain 27(data) 121 51 30
+             128:      6(int) CompositeExtract 126 0
+                              Store 127 128
+             129:    105(ptr) AccessChain 27(data) 121 51 34
+             130:      6(int) CompositeExtract 126 1
+                              Store 129 130
+             131:    105(ptr) AccessChain 27(data) 121 51 61
+             132:      6(int) CompositeExtract 126 2
+                              Store 131 132
+             133:      6(int) Load 8(invocation)
+             134:    112(ptr) AccessChain 27(data) 65 51
+             135:   21(ivec4) Load 134
+             136:   21(ivec4) GroupNonUniformIAdd 35 ClusteredReduce 135 34
+             137:    112(ptr) AccessChain 27(data) 133 51
+                              Store 137 136
+             138:      6(int) Load 8(invocation)
+             140:    139(ptr) AccessChain 27(data) 29 65 30
+             141:22(float64_t) Load 140
+             142:22(float64_t) GroupNonUniformFAdd 35 ClusteredReduce 141 34
+             143:    139(ptr) AccessChain 27(data) 138 65 30
+                              Store 143 142
+             144:      6(int) Load 8(invocation)
+             147:    146(ptr) AccessChain 27(data) 39 65
              148: 23(f64vec4) Load 147
-             149: 23(f64vec4) VectorShuffle 148 146 4 5 6 3
-                              Store 147 149
-             150:      6(int) Load 8(invocation)
-             151:    133(ptr) AccessChain 27(data) 60 60
-             152: 23(f64vec4) Load 151
-             153: 23(f64vec4) GroupNonUniformFAdd 35 ClusteredReduce 152 34
-             154:    133(ptr) AccessChain 27(data) 150 60
-                              Store 154 153
+             149:145(f64vec2) VectorShuffle 148 148 0 1
+             150:145(f64vec2) GroupNonUniformFAdd 35 ClusteredReduce 149 34
+             151:    139(ptr) AccessChain 27(data) 144 65 30
+             152:22(float64_t) CompositeExtract 150 0
+                              Store 151 152
+             153:    139(ptr) AccessChain 27(data) 144 65 34
+             154:22(float64_t) CompositeExtract 150 1
+                              Store 153 154
              155:      6(int) Load 8(invocation)
-             156:     31(ptr) AccessChain 27(data) 29 29 30
-             157:   17(float) Load 156
-             158:   17(float) GroupNonUniformFMul 35 ClusteredReduce 157 34
-             159:     31(ptr) AccessChain 27(data) 155 29 30
-                              Store 159 158
-             160:      6(int) Load 8(invocation)
-             161:     41(ptr) AccessChain 27(data) 39 29
-             162:   18(fvec4) Load 161
-             163:   40(fvec2) VectorShuffle 162 162 0 1
-             164:   40(fvec2) GroupNonUniformFMul 35 ClusteredReduce 163 34
-             165:     41(ptr) AccessChain 27(data) 160 29
-             166:   18(fvec4) Load 165
-             167:   18(fvec4) VectorShuffle 166 164 4 5 2 3
-                              Store 165 167
-             168:      6(int) Load 8(invocation)
-             169:     41(ptr) AccessChain 27(data) 50 29
-             170:   18(fvec4) Load 169
-             171:   51(fvec3) VectorShuffle 170 170 0 1 2
-             172:   51(fvec3) GroupNonUniformFMul 35 ClusteredReduce 171 34
-             173:     41(ptr) AccessChain 27(data) 168 29
-             174:   18(fvec4) Load 173
-             175:   18(fvec4) VectorShuffle 174 172 4 5 6 3
-                              Store 173 175
-             176:      6(int) Load 8(invocation)
-             177:     41(ptr) AccessChain 27(data) 60 29
-             178:   18(fvec4) Load 177
-             179:   18(fvec4) GroupNonUniformFMul 35 ClusteredReduce 178 34
-             180:     41(ptr) AccessChain 27(data) 176 29
-                              Store 180 179
-             181:      6(int) Load 8(invocation)
-             182:     66(ptr) AccessChain 27(data) 29 39 30
-             183:     19(int) Load 182
-             184:     19(int) GroupNonUniformIMul 35 ClusteredReduce 183 34
-             185:     66(ptr) AccessChain 27(data) 181 39 30
-                              Store 185 184
+             157:    146(ptr) AccessChain 27(data) 51 65
+             158: 23(f64vec4) Load 157
+             159:156(f64vec3) VectorShuffle 158 158 0 1 2
+             160:156(f64vec3) GroupNonUniformFAdd 35 ClusteredReduce 159 34
+             161:    139(ptr) AccessChain 27(data) 155 65 30
+             162:22(float64_t) CompositeExtract 160 0
+                              Store 161 162
+             163:    139(ptr) AccessChain 27(data) 155 65 34
+             164:22(float64_t) CompositeExtract 160 1
+                              Store 163 164
+             165:    139(ptr) AccessChain 27(data) 155 65 61
+             166:22(float64_t) CompositeExtract 160 2
+                              Store 165 166
+             167:      6(int) Load 8(invocation)
+             168:    146(ptr) AccessChain 27(data) 65 65
+             169: 23(f64vec4) Load 168
+             170: 23(f64vec4) GroupNonUniformFAdd 35 ClusteredReduce 169 34
+             171:    146(ptr) AccessChain 27(data) 167 65
+                              Store 171 170
+             172:      6(int) Load 8(invocation)
+             173:     31(ptr) AccessChain 27(data) 29 29 30
+             174:   17(float) Load 173
+             175:   17(float) GroupNonUniformFMul 35 ClusteredReduce 174 34
+             176:     31(ptr) AccessChain 27(data) 172 29 30
+                              Store 176 175
+             177:      6(int) Load 8(invocation)
+             178:     41(ptr) AccessChain 27(data) 39 29
+             179:   18(fvec4) Load 178
+             180:   40(fvec2) VectorShuffle 179 179 0 1
+             181:   40(fvec2) GroupNonUniformFMul 35 ClusteredReduce 180 34
+             182:     31(ptr) AccessChain 27(data) 177 29 30
+             183:   17(float) CompositeExtract 181 0
+                              Store 182 183
+             184:     31(ptr) AccessChain 27(data) 177 29 34
+             185:   17(float) CompositeExtract 181 1
+                              Store 184 185
              186:      6(int) Load 8(invocation)
-             187:     73(ptr) AccessChain 27(data) 39 39
-             188:   20(ivec4) Load 187
-             189:   72(ivec2) VectorShuffle 188 188 0 1
-             190:   72(ivec2) GroupNonUniformIMul 35 ClusteredReduce 189 34
-             191:     73(ptr) AccessChain 27(data) 186 39
-             192:   20(ivec4) Load 191
-             193:   20(ivec4) VectorShuffle 192 190 4 5 2 3
-                              Store 191 193
-             194:      6(int) Load 8(invocation)
-             195:     73(ptr) AccessChain 27(data) 50 39
-             196:   20(ivec4) Load 195
-             197:   82(ivec3) VectorShuffle 196 196 0 1 2
-             198:   82(ivec3) GroupNonUniformIMul 35 ClusteredReduce 197 34
-             199:     73(ptr) AccessChain 27(data) 194 39
-             200:   20(ivec4) Load 199
-             201:   20(ivec4) VectorShuffle 200 198 4 5 6 3
-                              Store 199 201
+             187:     41(ptr) AccessChain 27(data) 51 29
+             188:   18(fvec4) Load 187
+             189:   52(fvec3) VectorShuffle 188 188 0 1 2
+             190:   52(fvec3) GroupNonUniformFMul 35 ClusteredReduce 189 34
+             191:     31(ptr) AccessChain 27(data) 186 29 30
+             192:   17(float) CompositeExtract 190 0
+                              Store 191 192
+             193:     31(ptr) AccessChain 27(data) 186 29 34
+             194:   17(float) CompositeExtract 190 1
+                              Store 193 194
+             195:     31(ptr) AccessChain 27(data) 186 29 61
+             196:   17(float) CompositeExtract 190 2
+                              Store 195 196
+             197:      6(int) Load 8(invocation)
+             198:     41(ptr) AccessChain 27(data) 65 29
+             199:   18(fvec4) Load 198
+             200:   18(fvec4) GroupNonUniformFMul 35 ClusteredReduce 199 34
+             201:     41(ptr) AccessChain 27(data) 197 29
+                              Store 201 200
              202:      6(int) Load 8(invocation)
-             203:     73(ptr) AccessChain 27(data) 60 39
-             204:   20(ivec4) Load 203
-             205:   20(ivec4) GroupNonUniformIMul 35 ClusteredReduce 204 34
-             206:     73(ptr) AccessChain 27(data) 202 39
+             203:     71(ptr) AccessChain 27(data) 29 39 30
+             204:     19(int) Load 203
+             205:     19(int) GroupNonUniformIMul 35 ClusteredReduce 204 34
+             206:     71(ptr) AccessChain 27(data) 202 39 30
                               Store 206 205
              207:      6(int) Load 8(invocation)
-             208:     96(ptr) AccessChain 27(data) 29 50 30
-             209:      6(int) Load 208
-             210:      6(int) GroupNonUniformIMul 35 ClusteredReduce 209 34
-             211:     96(ptr) AccessChain 27(data) 207 50 30
-                              Store 211 210
-             212:      6(int) Load 8(invocation)
-             213:    103(ptr) AccessChain 27(data) 39 50
-             214:   21(ivec4) Load 213
-             215:  102(ivec2) VectorShuffle 214 214 0 1
-             216:  102(ivec2) GroupNonUniformIMul 35 ClusteredReduce 215 34
-             217:    103(ptr) AccessChain 27(data) 212 50
-             218:   21(ivec4) Load 217
-             219:   21(ivec4) VectorShuffle 218 216 4 5 2 3
-                              Store 217 219
-             220:      6(int) Load 8(invocation)
-             221:    103(ptr) AccessChain 27(data) 50 50
-             222:   21(ivec4) Load 221
-             223:  112(ivec3) VectorShuffle 222 222 0 1 2
-             224:  112(ivec3) GroupNonUniformIMul 35 ClusteredReduce 223 34
-             225:    103(ptr) AccessChain 27(data) 220 50
-             226:   21(ivec4) Load 225
-             227:   21(ivec4) VectorShuffle 226 224 4 5 6 3
-                              Store 225 227
-             228:      6(int) Load 8(invocation)
-             229:    103(ptr) AccessChain 27(data) 60 50
-             230:   21(ivec4) Load 229
-             231:   21(ivec4) GroupNonUniformIMul 35 ClusteredReduce 230 34
-             232:    103(ptr) AccessChain 27(data) 228 50
-                              Store 232 231
-             233:      6(int) Load 8(invocation)
-             234:    126(ptr) AccessChain 27(data) 29 60 30
-             235:22(float64_t) Load 234
-             236:22(float64_t) GroupNonUniformFMul 35 ClusteredReduce 235 34
-             237:    126(ptr) AccessChain 27(data) 233 60 30
-                              Store 237 236
-             238:      6(int) Load 8(invocation)
-             239:    133(ptr) AccessChain 27(data) 39 60
-             240: 23(f64vec4) Load 239
-             241:132(f64vec2) VectorShuffle 240 240 0 1
-             242:132(f64vec2) GroupNonUniformFMul 35 ClusteredReduce 241 34
-             243:    133(ptr) AccessChain 27(data) 238 60
-             244: 23(f64vec4) Load 243
-             245: 23(f64vec4) VectorShuffle 244 242 4 5 2 3
-                              Store 243 245
+             208:     78(ptr) AccessChain 27(data) 39 39
+             209:   20(ivec4) Load 208
+             210:   77(ivec2) VectorShuffle 209 209 0 1
+             211:   77(ivec2) GroupNonUniformIMul 35 ClusteredReduce 210 34
+             212:     71(ptr) AccessChain 27(data) 207 39 30
+             213:     19(int) CompositeExtract 211 0
+                              Store 212 213
+             214:     71(ptr) AccessChain 27(data) 207 39 34
+             215:     19(int) CompositeExtract 211 1
+                              Store 214 215
+             216:      6(int) Load 8(invocation)
+             217:     78(ptr) AccessChain 27(data) 51 39
+             218:   20(ivec4) Load 217
+             219:   88(ivec3) VectorShuffle 218 218 0 1 2
+             220:   88(ivec3) GroupNonUniformIMul 35 ClusteredReduce 219 34
+             221:     71(ptr) AccessChain 27(data) 216 39 30
+             222:     19(int) CompositeExtract 220 0
+                              Store 221 222
+             223:     71(ptr) AccessChain 27(data) 216 39 34
+             224:     19(int) CompositeExtract 220 1
+                              Store 223 224
+             225:     71(ptr) AccessChain 27(data) 216 39 61
+             226:     19(int) CompositeExtract 220 2
+                              Store 225 226
+             227:      6(int) Load 8(invocation)
+             228:     78(ptr) AccessChain 27(data) 65 39
+             229:   20(ivec4) Load 228
+             230:   20(ivec4) GroupNonUniformIMul 35 ClusteredReduce 229 34
+             231:     78(ptr) AccessChain 27(data) 227 39
+                              Store 231 230
+             232:      6(int) Load 8(invocation)
+             233:    105(ptr) AccessChain 27(data) 29 51 30
+             234:      6(int) Load 233
+             235:      6(int) GroupNonUniformIMul 35 ClusteredReduce 234 34
+             236:    105(ptr) AccessChain 27(data) 232 51 30
+                              Store 236 235
+             237:      6(int) Load 8(invocation)
+             238:    112(ptr) AccessChain 27(data) 39 51
+             239:   21(ivec4) Load 238
+             240:  111(ivec2) VectorShuffle 239 239 0 1
+             241:  111(ivec2) GroupNonUniformIMul 35 ClusteredReduce 240 34
+             242:    105(ptr) AccessChain 27(data) 237 51 30
+             243:      6(int) CompositeExtract 241 0
+                              Store 242 243
+             244:    105(ptr) AccessChain 27(data) 237 51 34
+             245:      6(int) CompositeExtract 241 1
+                              Store 244 245
              246:      6(int) Load 8(invocation)
-             247:    133(ptr) AccessChain 27(data) 50 60
-             248: 23(f64vec4) Load 247
-             249:142(f64vec3) VectorShuffle 248 248 0 1 2
-             250:142(f64vec3) GroupNonUniformFMul 35 ClusteredReduce 249 34
-             251:    133(ptr) AccessChain 27(data) 246 60
-             252: 23(f64vec4) Load 251
-             253: 23(f64vec4) VectorShuffle 252 250 4 5 6 3
-                              Store 251 253
-             254:      6(int) Load 8(invocation)
-             255:    133(ptr) AccessChain 27(data) 60 60
-             256: 23(f64vec4) Load 255
-             257: 23(f64vec4) GroupNonUniformFMul 35 ClusteredReduce 256 34
-             258:    133(ptr) AccessChain 27(data) 254 60
-                              Store 258 257
-             259:      6(int) Load 8(invocation)
-             260:     31(ptr) AccessChain 27(data) 29 29 30
-             261:   17(float) Load 260
-             262:   17(float) GroupNonUniformFMin 35 ClusteredReduce 261 34
-             263:     31(ptr) AccessChain 27(data) 259 29 30
-                              Store 263 262
-             264:      6(int) Load 8(invocation)
-             265:     41(ptr) AccessChain 27(data) 39 29
-             266:   18(fvec4) Load 265
-             267:   40(fvec2) VectorShuffle 266 266 0 1
-             268:   40(fvec2) GroupNonUniformFMin 35 ClusteredReduce 267 34
-             269:     41(ptr) AccessChain 27(data) 264 29
-             270:   18(fvec4) Load 269
-             271:   18(fvec4) VectorShuffle 270 268 4 5 2 3
-                              Store 269 271
-             272:      6(int) Load 8(invocation)
-             273:     41(ptr) AccessChain 27(data) 50 29
-             274:   18(fvec4) Load 273
-             275:   51(fvec3) VectorShuffle 274 274 0 1 2
-             276:   51(fvec3) GroupNonUniformFMin 35 ClusteredReduce 275 34
-             277:     41(ptr) AccessChain 27(data) 272 29
-             278:   18(fvec4) Load 277
-             279:   18(fvec4) VectorShuffle 278 276 4 5 6 3
-                              Store 277 279
-             280:      6(int) Load 8(invocation)
-             281:     41(ptr) AccessChain 27(data) 60 29
-             282:   18(fvec4) Load 281
-             283:   18(fvec4) GroupNonUniformFMin 35 ClusteredReduce 282 34
-             284:     41(ptr) AccessChain 27(data) 280 29
-                              Store 284 283
-             285:      6(int) Load 8(invocation)
-             286:     66(ptr) AccessChain 27(data) 29 39 30
-             287:     19(int) Load 286
-             288:     19(int) GroupNonUniformSMin 35 ClusteredReduce 287 34
-             289:     66(ptr) AccessChain 27(data) 285 39 30
-                              Store 289 288
-             290:      6(int) Load 8(invocation)
-             291:     73(ptr) AccessChain 27(data) 39 39
-             292:   20(ivec4) Load 291
-             293:   72(ivec2) VectorShuffle 292 292 0 1
-             294:   72(ivec2) GroupNonUniformSMin 35 ClusteredReduce 293 34
-             295:     73(ptr) AccessChain 27(data) 290 39
-             296:   20(ivec4) Load 295
-             297:   20(ivec4) VectorShuffle 296 294 4 5 2 3
-                              Store 295 297
-             298:      6(int) Load 8(invocation)
-             299:     73(ptr) AccessChain 27(data) 50 39
-             300:   20(ivec4) Load 299
-             301:   82(ivec3) VectorShuffle 300 300 0 1 2
-             302:   82(ivec3) GroupNonUniformSMin 35 ClusteredReduce 301 34
-             303:     73(ptr) AccessChain 27(data) 298 39
-             304:   20(ivec4) Load 303
-             305:   20(ivec4) VectorShuffle 304 302 4 5 6 3
-                              Store 303 305
+             247:    112(ptr) AccessChain 27(data) 51 51
+             248:   21(ivec4) Load 247
+             249:  122(ivec3) VectorShuffle 248 248 0 1 2
+             250:  122(ivec3) GroupNonUniformIMul 35 ClusteredReduce 249 34
+             251:    105(ptr) AccessChain 27(data) 246 51 30
+             252:      6(int) CompositeExtract 250 0
+                              Store 251 252
+             253:    105(ptr) AccessChain 27(data) 246 51 34
+             254:      6(int) CompositeExtract 250 1
+                              Store 253 254
+             255:    105(ptr) AccessChain 27(data) 246 51 61
+             256:      6(int) CompositeExtract 250 2
+                              Store 255 256
+             257:      6(int) Load 8(invocation)
+             258:    112(ptr) AccessChain 27(data) 65 51
+             259:   21(ivec4) Load 258
+             260:   21(ivec4) GroupNonUniformIMul 35 ClusteredReduce 259 34
+             261:    112(ptr) AccessChain 27(data) 257 51
+                              Store 261 260
+             262:      6(int) Load 8(invocation)
+             263:    139(ptr) AccessChain 27(data) 29 65 30
+             264:22(float64_t) Load 263
+             265:22(float64_t) GroupNonUniformFMul 35 ClusteredReduce 264 34
+             266:    139(ptr) AccessChain 27(data) 262 65 30
+                              Store 266 265
+             267:      6(int) Load 8(invocation)
+             268:    146(ptr) AccessChain 27(data) 39 65
+             269: 23(f64vec4) Load 268
+             270:145(f64vec2) VectorShuffle 269 269 0 1
+             271:145(f64vec2) GroupNonUniformFMul 35 ClusteredReduce 270 34
+             272:    139(ptr) AccessChain 27(data) 267 65 30
+             273:22(float64_t) CompositeExtract 271 0
+                              Store 272 273
+             274:    139(ptr) AccessChain 27(data) 267 65 34
+             275:22(float64_t) CompositeExtract 271 1
+                              Store 274 275
+             276:      6(int) Load 8(invocation)
+             277:    146(ptr) AccessChain 27(data) 51 65
+             278: 23(f64vec4) Load 277
+             279:156(f64vec3) VectorShuffle 278 278 0 1 2
+             280:156(f64vec3) GroupNonUniformFMul 35 ClusteredReduce 279 34
+             281:    139(ptr) AccessChain 27(data) 276 65 30
+             282:22(float64_t) CompositeExtract 280 0
+                              Store 281 282
+             283:    139(ptr) AccessChain 27(data) 276 65 34
+             284:22(float64_t) CompositeExtract 280 1
+                              Store 283 284
+             285:    139(ptr) AccessChain 27(data) 276 65 61
+             286:22(float64_t) CompositeExtract 280 2
+                              Store 285 286
+             287:      6(int) Load 8(invocation)
+             288:    146(ptr) AccessChain 27(data) 65 65
+             289: 23(f64vec4) Load 288
+             290: 23(f64vec4) GroupNonUniformFMul 35 ClusteredReduce 289 34
+             291:    146(ptr) AccessChain 27(data) 287 65
+                              Store 291 290
+             292:      6(int) Load 8(invocation)
+             293:     31(ptr) AccessChain 27(data) 29 29 30
+             294:   17(float) Load 293
+             295:   17(float) GroupNonUniformFMin 35 ClusteredReduce 294 34
+             296:     31(ptr) AccessChain 27(data) 292 29 30
+                              Store 296 295
+             297:      6(int) Load 8(invocation)
+             298:     41(ptr) AccessChain 27(data) 39 29
+             299:   18(fvec4) Load 298
+             300:   40(fvec2) VectorShuffle 299 299 0 1
+             301:   40(fvec2) GroupNonUniformFMin 35 ClusteredReduce 300 34
+             302:     31(ptr) AccessChain 27(data) 297 29 30
+             303:   17(float) CompositeExtract 301 0
+                              Store 302 303
+             304:     31(ptr) AccessChain 27(data) 297 29 34
+             305:   17(float) CompositeExtract 301 1
+                              Store 304 305
              306:      6(int) Load 8(invocation)
-             307:     73(ptr) AccessChain 27(data) 60 39
-             308:   20(ivec4) Load 307
-             309:   20(ivec4) GroupNonUniformSMin 35 ClusteredReduce 308 34
-             310:     73(ptr) AccessChain 27(data) 306 39
-                              Store 310 309
-             311:      6(int) Load 8(invocation)
-             312:     96(ptr) AccessChain 27(data) 29 50 30
-             313:      6(int) Load 312
-             314:      6(int) GroupNonUniformUMin 35 ClusteredReduce 313 34
-             315:     96(ptr) AccessChain 27(data) 311 50 30
-                              Store 315 314
-             316:      6(int) Load 8(invocation)
-             317:    103(ptr) AccessChain 27(data) 39 50
-             318:   21(ivec4) Load 317
-             319:  102(ivec2) VectorShuffle 318 318 0 1
-             320:  102(ivec2) GroupNonUniformUMin 35 ClusteredReduce 319 34
-             321:    103(ptr) AccessChain 27(data) 316 50
-             322:   21(ivec4) Load 321
-             323:   21(ivec4) VectorShuffle 322 320 4 5 2 3
-                              Store 321 323
-             324:      6(int) Load 8(invocation)
-             325:    103(ptr) AccessChain 27(data) 50 50
-             326:   21(ivec4) Load 325
-             327:  112(ivec3) VectorShuffle 326 326 0 1 2
-             328:  112(ivec3) GroupNonUniformUMin 35 ClusteredReduce 327 34
-             329:    103(ptr) AccessChain 27(data) 324 50
-             330:   21(ivec4) Load 329
-             331:   21(ivec4) VectorShuffle 330 328 4 5 6 3
-                              Store 329 331
-             332:      6(int) Load 8(invocation)
-             333:    103(ptr) AccessChain 27(data) 60 50
-             334:   21(ivec4) Load 333
-             335:   21(ivec4) GroupNonUniformUMin 35 ClusteredReduce 334 34
-             336:    103(ptr) AccessChain 27(data) 332 50
-                              Store 336 335
-             337:      6(int) Load 8(invocation)
-             338:    126(ptr) AccessChain 27(data) 29 60 30
-             339:22(float64_t) Load 338
-             340:22(float64_t) GroupNonUniformFMin 35 ClusteredReduce 339 34
-             341:    126(ptr) AccessChain 27(data) 337 60 30
-                              Store 341 340
-             342:      6(int) Load 8(invocation)
-             343:    133(ptr) AccessChain 27(data) 39 60
-             344: 23(f64vec4) Load 343
-             345:132(f64vec2) VectorShuffle 344 344 0 1
-             346:132(f64vec2) GroupNonUniformFMin 35 ClusteredReduce 345 34
-             347:    133(ptr) AccessChain 27(data) 342 60
-             348: 23(f64vec4) Load 347
-             349: 23(f64vec4) VectorShuffle 348 346 4 5 2 3
-                              Store 347 349
-             350:      6(int) Load 8(invocation)
-             351:    133(ptr) AccessChain 27(data) 50 60
-             352: 23(f64vec4) Load 351
-             353:142(f64vec3) VectorShuffle 352 352 0 1 2
-             354:142(f64vec3) GroupNonUniformFMin 35 ClusteredReduce 353 34
-             355:    133(ptr) AccessChain 27(data) 350 60
-             356: 23(f64vec4) Load 355
-             357: 23(f64vec4) VectorShuffle 356 354 4 5 6 3
-                              Store 355 357
-             358:      6(int) Load 8(invocation)
-             359:    133(ptr) AccessChain 27(data) 60 60
-             360: 23(f64vec4) Load 359
-             361: 23(f64vec4) GroupNonUniformFMin 35 ClusteredReduce 360 34
-             362:    133(ptr) AccessChain 27(data) 358 60
-                              Store 362 361
-             363:      6(int) Load 8(invocation)
-             364:     31(ptr) AccessChain 27(data) 29 29 30
-             365:   17(float) Load 364
-             366:   17(float) GroupNonUniformFMax 35 ClusteredReduce 365 34
-             367:     31(ptr) AccessChain 27(data) 363 29 30
-                              Store 367 366
-             368:      6(int) Load 8(invocation)
-             369:     41(ptr) AccessChain 27(data) 39 29
-             370:   18(fvec4) Load 369
-             371:   40(fvec2) VectorShuffle 370 370 0 1
-             372:   40(fvec2) GroupNonUniformFMax 35 ClusteredReduce 371 34
-             373:     41(ptr) AccessChain 27(data) 368 29
-             374:   18(fvec4) Load 373
-             375:   18(fvec4) VectorShuffle 374 372 4 5 2 3
-                              Store 373 375
-             376:      6(int) Load 8(invocation)
-             377:     41(ptr) AccessChain 27(data) 50 29
-             378:   18(fvec4) Load 377
-             379:   51(fvec3) VectorShuffle 378 378 0 1 2
-             380:   51(fvec3) GroupNonUniformFMax 35 ClusteredReduce 379 34
-             381:     41(ptr) AccessChain 27(data) 376 29
-             382:   18(fvec4) Load 381
-             383:   18(fvec4) VectorShuffle 382 380 4 5 6 3
-                              Store 381 383
-             384:      6(int) Load 8(invocation)
-             385:     41(ptr) AccessChain 27(data) 60 29
-             386:   18(fvec4) Load 385
-             387:   18(fvec4) GroupNonUniformFMax 35 ClusteredReduce 386 34
-             388:     41(ptr) AccessChain 27(data) 384 29
-                              Store 388 387
-             389:      6(int) Load 8(invocation)
-             390:     66(ptr) AccessChain 27(data) 29 39 30
-             391:     19(int) Load 390
-             392:     19(int) GroupNonUniformSMax 35 ClusteredReduce 391 34
-             393:     66(ptr) AccessChain 27(data) 389 39 30
-                              Store 393 392
-             394:      6(int) Load 8(invocation)
-             395:     73(ptr) AccessChain 27(data) 39 39
-             396:   20(ivec4) Load 395
-             397:   72(ivec2) VectorShuffle 396 396 0 1
-             398:   72(ivec2) GroupNonUniformSMax 35 ClusteredReduce 397 34
-             399:     73(ptr) AccessChain 27(data) 394 39
-             400:   20(ivec4) Load 399
-             401:   20(ivec4) VectorShuffle 400 398 4 5 2 3
-                              Store 399 401
-             402:      6(int) Load 8(invocation)
-             403:     73(ptr) AccessChain 27(data) 50 39
-             404:   20(ivec4) Load 403
-             405:   82(ivec3) VectorShuffle 404 404 0 1 2
-             406:   82(ivec3) GroupNonUniformSMax 35 ClusteredReduce 405 34
-             407:     73(ptr) AccessChain 27(data) 402 39
-             408:   20(ivec4) Load 407
-             409:   20(ivec4) VectorShuffle 408 406 4 5 6 3
-                              Store 407 409
-             410:      6(int) Load 8(invocation)
-             411:     73(ptr) AccessChain 27(data) 60 39
-             412:   20(ivec4) Load 411
-             413:   20(ivec4) GroupNonUniformSMax 35 ClusteredReduce 412 34
-             414:     73(ptr) AccessChain 27(data) 410 39
-                              Store 414 413
-             415:      6(int) Load 8(invocation)
-             416:     96(ptr) AccessChain 27(data) 29 50 30
-             417:      6(int) Load 416
-             418:      6(int) GroupNonUniformUMax 35 ClusteredReduce 417 34
-             419:     96(ptr) AccessChain 27(data) 415 50 30
-                              Store 419 418
-             420:      6(int) Load 8(invocation)
-             421:    103(ptr) AccessChain 27(data) 39 50
-             422:   21(ivec4) Load 421
-             423:  102(ivec2) VectorShuffle 422 422 0 1
-             424:  102(ivec2) GroupNonUniformUMax 35 ClusteredReduce 423 34
-             425:    103(ptr) AccessChain 27(data) 420 50
-             426:   21(ivec4) Load 425
-             427:   21(ivec4) VectorShuffle 426 424 4 5 2 3
-                              Store 425 427
-             428:      6(int) Load 8(invocation)
-             429:    103(ptr) AccessChain 27(data) 50 50
-             430:   21(ivec4) Load 429
-             431:  112(ivec3) VectorShuffle 430 430 0 1 2
-             432:  112(ivec3) GroupNonUniformUMax 35 ClusteredReduce 431 34
-             433:    103(ptr) AccessChain 27(data) 428 50
-             434:   21(ivec4) Load 433
-             435:   21(ivec4) VectorShuffle 434 432 4 5 6 3
-                              Store 433 435
-             436:      6(int) Load 8(invocation)
-             437:    103(ptr) AccessChain 27(data) 60 50
-             438:   21(ivec4) Load 437
-             439:   21(ivec4) GroupNonUniformUMax 35 ClusteredReduce 438 34
-             440:    103(ptr) AccessChain 27(data) 436 50
-                              Store 440 439
-             441:      6(int) Load 8(invocation)
-             442:    126(ptr) AccessChain 27(data) 29 60 30
-             443:22(float64_t) Load 442
-             444:22(float64_t) GroupNonUniformFMax 35 ClusteredReduce 443 34
-             445:    126(ptr) AccessChain 27(data) 441 60 30
-                              Store 445 444
-             446:      6(int) Load 8(invocation)
-             447:    133(ptr) AccessChain 27(data) 39 60
-             448: 23(f64vec4) Load 447
-             449:132(f64vec2) VectorShuffle 448 448 0 1
-             450:132(f64vec2) GroupNonUniformFMax 35 ClusteredReduce 449 34
-             451:    133(ptr) AccessChain 27(data) 446 60
-             452: 23(f64vec4) Load 451
-             453: 23(f64vec4) VectorShuffle 452 450 4 5 2 3
-                              Store 451 453
-             454:      6(int) Load 8(invocation)
-             455:    133(ptr) AccessChain 27(data) 50 60
-             456: 23(f64vec4) Load 455
-             457:142(f64vec3) VectorShuffle 456 456 0 1 2
-             458:142(f64vec3) GroupNonUniformFMax 35 ClusteredReduce 457 34
-             459:    133(ptr) AccessChain 27(data) 454 60
-             460: 23(f64vec4) Load 459
-             461: 23(f64vec4) VectorShuffle 460 458 4 5 6 3
-                              Store 459 461
-             462:      6(int) Load 8(invocation)
-             463:    133(ptr) AccessChain 27(data) 60 60
-             464: 23(f64vec4) Load 463
-             465: 23(f64vec4) GroupNonUniformFMax 35 ClusteredReduce 464 34
-             466:    133(ptr) AccessChain 27(data) 462 60
-                              Store 466 465
+             307:     41(ptr) AccessChain 27(data) 51 29
+             308:   18(fvec4) Load 307
+             309:   52(fvec3) VectorShuffle 308 308 0 1 2
+             310:   52(fvec3) GroupNonUniformFMin 35 ClusteredReduce 309 34
+             311:     31(ptr) AccessChain 27(data) 306 29 30
+             312:   17(float) CompositeExtract 310 0
+                              Store 311 312
+             313:     31(ptr) AccessChain 27(data) 306 29 34
+             314:   17(float) CompositeExtract 310 1
+                              Store 313 314
+             315:     31(ptr) AccessChain 27(data) 306 29 61
+             316:   17(float) CompositeExtract 310 2
+                              Store 315 316
+             317:      6(int) Load 8(invocation)
+             318:     41(ptr) AccessChain 27(data) 65 29
+             319:   18(fvec4) Load 318
+             320:   18(fvec4) GroupNonUniformFMin 35 ClusteredReduce 319 34
+             321:     41(ptr) AccessChain 27(data) 317 29
+                              Store 321 320
+             322:      6(int) Load 8(invocation)
+             323:     71(ptr) AccessChain 27(data) 29 39 30
+             324:     19(int) Load 323
+             325:     19(int) GroupNonUniformSMin 35 ClusteredReduce 324 34
+             326:     71(ptr) AccessChain 27(data) 322 39 30
+                              Store 326 325
+             327:      6(int) Load 8(invocation)
+             328:     78(ptr) AccessChain 27(data) 39 39
+             329:   20(ivec4) Load 328
+             330:   77(ivec2) VectorShuffle 329 329 0 1
+             331:   77(ivec2) GroupNonUniformSMin 35 ClusteredReduce 330 34
+             332:     71(ptr) AccessChain 27(data) 327 39 30
+             333:     19(int) CompositeExtract 331 0
+                              Store 332 333
+             334:     71(ptr) AccessChain 27(data) 327 39 34
+             335:     19(int) CompositeExtract 331 1
+                              Store 334 335
+             336:      6(int) Load 8(invocation)
+             337:     78(ptr) AccessChain 27(data) 51 39
+             338:   20(ivec4) Load 337
+             339:   88(ivec3) VectorShuffle 338 338 0 1 2
+             340:   88(ivec3) GroupNonUniformSMin 35 ClusteredReduce 339 34
+             341:     71(ptr) AccessChain 27(data) 336 39 30
+             342:     19(int) CompositeExtract 340 0
+                              Store 341 342
+             343:     71(ptr) AccessChain 27(data) 336 39 34
+             344:     19(int) CompositeExtract 340 1
+                              Store 343 344
+             345:     71(ptr) AccessChain 27(data) 336 39 61
+             346:     19(int) CompositeExtract 340 2
+                              Store 345 346
+             347:      6(int) Load 8(invocation)
+             348:     78(ptr) AccessChain 27(data) 65 39
+             349:   20(ivec4) Load 348
+             350:   20(ivec4) GroupNonUniformSMin 35 ClusteredReduce 349 34
+             351:     78(ptr) AccessChain 27(data) 347 39
+                              Store 351 350
+             352:      6(int) Load 8(invocation)
+             353:    105(ptr) AccessChain 27(data) 29 51 30
+             354:      6(int) Load 353
+             355:      6(int) GroupNonUniformUMin 35 ClusteredReduce 354 34
+             356:    105(ptr) AccessChain 27(data) 352 51 30
+                              Store 356 355
+             357:      6(int) Load 8(invocation)
+             358:    112(ptr) AccessChain 27(data) 39 51
+             359:   21(ivec4) Load 358
+             360:  111(ivec2) VectorShuffle 359 359 0 1
+             361:  111(ivec2) GroupNonUniformUMin 35 ClusteredReduce 360 34
+             362:    105(ptr) AccessChain 27(data) 357 51 30
+             363:      6(int) CompositeExtract 361 0
+                              Store 362 363
+             364:    105(ptr) AccessChain 27(data) 357 51 34
+             365:      6(int) CompositeExtract 361 1
+                              Store 364 365
+             366:      6(int) Load 8(invocation)
+             367:    112(ptr) AccessChain 27(data) 51 51
+             368:   21(ivec4) Load 367
+             369:  122(ivec3) VectorShuffle 368 368 0 1 2
+             370:  122(ivec3) GroupNonUniformUMin 35 ClusteredReduce 369 34
+             371:    105(ptr) AccessChain 27(data) 366 51 30
+             372:      6(int) CompositeExtract 370 0
+                              Store 371 372
+             373:    105(ptr) AccessChain 27(data) 366 51 34
+             374:      6(int) CompositeExtract 370 1
+                              Store 373 374
+             375:    105(ptr) AccessChain 27(data) 366 51 61
+             376:      6(int) CompositeExtract 370 2
+                              Store 375 376
+             377:      6(int) Load 8(invocation)
+             378:    112(ptr) AccessChain 27(data) 65 51
+             379:   21(ivec4) Load 378
+             380:   21(ivec4) GroupNonUniformUMin 35 ClusteredReduce 379 34
+             381:    112(ptr) AccessChain 27(data) 377 51
+                              Store 381 380
+             382:      6(int) Load 8(invocation)
+             383:    139(ptr) AccessChain 27(data) 29 65 30
+             384:22(float64_t) Load 383
+             385:22(float64_t) GroupNonUniformFMin 35 ClusteredReduce 384 34
+             386:    139(ptr) AccessChain 27(data) 382 65 30
+                              Store 386 385
+             387:      6(int) Load 8(invocation)
+             388:    146(ptr) AccessChain 27(data) 39 65
+             389: 23(f64vec4) Load 388
+             390:145(f64vec2) VectorShuffle 389 389 0 1
+             391:145(f64vec2) GroupNonUniformFMin 35 ClusteredReduce 390 34
+             392:    139(ptr) AccessChain 27(data) 387 65 30
+             393:22(float64_t) CompositeExtract 391 0
+                              Store 392 393
+             394:    139(ptr) AccessChain 27(data) 387 65 34
+             395:22(float64_t) CompositeExtract 391 1
+                              Store 394 395
+             396:      6(int) Load 8(invocation)
+             397:    146(ptr) AccessChain 27(data) 51 65
+             398: 23(f64vec4) Load 397
+             399:156(f64vec3) VectorShuffle 398 398 0 1 2
+             400:156(f64vec3) GroupNonUniformFMin 35 ClusteredReduce 399 34
+             401:    139(ptr) AccessChain 27(data) 396 65 30
+             402:22(float64_t) CompositeExtract 400 0
+                              Store 401 402
+             403:    139(ptr) AccessChain 27(data) 396 65 34
+             404:22(float64_t) CompositeExtract 400 1
+                              Store 403 404
+             405:    139(ptr) AccessChain 27(data) 396 65 61
+             406:22(float64_t) CompositeExtract 400 2
+                              Store 405 406
+             407:      6(int) Load 8(invocation)
+             408:    146(ptr) AccessChain 27(data) 65 65
+             409: 23(f64vec4) Load 408
+             410: 23(f64vec4) GroupNonUniformFMin 35 ClusteredReduce 409 34
+             411:    146(ptr) AccessChain 27(data) 407 65
+                              Store 411 410
+             412:      6(int) Load 8(invocation)
+             413:     31(ptr) AccessChain 27(data) 29 29 30
+             414:   17(float) Load 413
+             415:   17(float) GroupNonUniformFMax 35 ClusteredReduce 414 34
+             416:     31(ptr) AccessChain 27(data) 412 29 30
+                              Store 416 415
+             417:      6(int) Load 8(invocation)
+             418:     41(ptr) AccessChain 27(data) 39 29
+             419:   18(fvec4) Load 418
+             420:   40(fvec2) VectorShuffle 419 419 0 1
+             421:   40(fvec2) GroupNonUniformFMax 35 ClusteredReduce 420 34
+             422:     31(ptr) AccessChain 27(data) 417 29 30
+             423:   17(float) CompositeExtract 421 0
+                              Store 422 423
+             424:     31(ptr) AccessChain 27(data) 417 29 34
+             425:   17(float) CompositeExtract 421 1
+                              Store 424 425
+             426:      6(int) Load 8(invocation)
+             427:     41(ptr) AccessChain 27(data) 51 29
+             428:   18(fvec4) Load 427
+             429:   52(fvec3) VectorShuffle 428 428 0 1 2
+             430:   52(fvec3) GroupNonUniformFMax 35 ClusteredReduce 429 34
+             431:     31(ptr) AccessChain 27(data) 426 29 30
+             432:   17(float) CompositeExtract 430 0
+                              Store 431 432
+             433:     31(ptr) AccessChain 27(data) 426 29 34
+             434:   17(float) CompositeExtract 430 1
+                              Store 433 434
+             435:     31(ptr) AccessChain 27(data) 426 29 61
+             436:   17(float) CompositeExtract 430 2
+                              Store 435 436
+             437:      6(int) Load 8(invocation)
+             438:     41(ptr) AccessChain 27(data) 65 29
+             439:   18(fvec4) Load 438
+             440:   18(fvec4) GroupNonUniformFMax 35 ClusteredReduce 439 34
+             441:     41(ptr) AccessChain 27(data) 437 29
+                              Store 441 440
+             442:      6(int) Load 8(invocation)
+             443:     71(ptr) AccessChain 27(data) 29 39 30
+             444:     19(int) Load 443
+             445:     19(int) GroupNonUniformSMax 35 ClusteredReduce 444 34
+             446:     71(ptr) AccessChain 27(data) 442 39 30
+                              Store 446 445
+             447:      6(int) Load 8(invocation)
+             448:     78(ptr) AccessChain 27(data) 39 39
+             449:   20(ivec4) Load 448
+             450:   77(ivec2) VectorShuffle 449 449 0 1
+             451:   77(ivec2) GroupNonUniformSMax 35 ClusteredReduce 450 34
+             452:     71(ptr) AccessChain 27(data) 447 39 30
+             453:     19(int) CompositeExtract 451 0
+                              Store 452 453
+             454:     71(ptr) AccessChain 27(data) 447 39 34
+             455:     19(int) CompositeExtract 451 1
+                              Store 454 455
+             456:      6(int) Load 8(invocation)
+             457:     78(ptr) AccessChain 27(data) 51 39
+             458:   20(ivec4) Load 457
+             459:   88(ivec3) VectorShuffle 458 458 0 1 2
+             460:   88(ivec3) GroupNonUniformSMax 35 ClusteredReduce 459 34
+             461:     71(ptr) AccessChain 27(data) 456 39 30
+             462:     19(int) CompositeExtract 460 0
+                              Store 461 462
+             463:     71(ptr) AccessChain 27(data) 456 39 34
+             464:     19(int) CompositeExtract 460 1
+                              Store 463 464
+             465:     71(ptr) AccessChain 27(data) 456 39 61
+             466:     19(int) CompositeExtract 460 2
+                              Store 465 466
              467:      6(int) Load 8(invocation)
-             468:     66(ptr) AccessChain 27(data) 29 39 30
-             469:     19(int) Load 468
-             470:     19(int) GroupNonUniformBitwiseAnd 35 ClusteredReduce 469 34
-             471:     66(ptr) AccessChain 27(data) 467 39 30
+             468:     78(ptr) AccessChain 27(data) 65 39
+             469:   20(ivec4) Load 468
+             470:   20(ivec4) GroupNonUniformSMax 35 ClusteredReduce 469 34
+             471:     78(ptr) AccessChain 27(data) 467 39
                               Store 471 470
              472:      6(int) Load 8(invocation)
-             473:     73(ptr) AccessChain 27(data) 39 39
-             474:   20(ivec4) Load 473
-             475:   72(ivec2) VectorShuffle 474 474 0 1
-             476:   72(ivec2) GroupNonUniformBitwiseAnd 35 ClusteredReduce 475 34
-             477:     73(ptr) AccessChain 27(data) 472 39
-             478:   20(ivec4) Load 477
-             479:   20(ivec4) VectorShuffle 478 476 4 5 2 3
-                              Store 477 479
-             480:      6(int) Load 8(invocation)
-             481:     73(ptr) AccessChain 27(data) 50 39
-             482:   20(ivec4) Load 481
-             483:   82(ivec3) VectorShuffle 482 482 0 1 2
-             484:   82(ivec3) GroupNonUniformBitwiseAnd 35 ClusteredReduce 483 34
-             485:     73(ptr) AccessChain 27(data) 480 39
-             486:   20(ivec4) Load 485
-             487:   20(ivec4) VectorShuffle 486 484 4 5 6 3
-                              Store 485 487
-             488:      6(int) Load 8(invocation)
-             489:     73(ptr) AccessChain 27(data) 60 39
-             490:   20(ivec4) Load 489
-             491:   20(ivec4) GroupNonUniformBitwiseAnd 35 ClusteredReduce 490 34
-             492:     73(ptr) AccessChain 27(data) 488 39
-                              Store 492 491
-             493:      6(int) Load 8(invocation)
-             494:     96(ptr) AccessChain 27(data) 29 50 30
-             495:      6(int) Load 494
-             496:      6(int) GroupNonUniformBitwiseAnd 35 ClusteredReduce 495 34
-             497:     96(ptr) AccessChain 27(data) 493 50 30
-                              Store 497 496
-             498:      6(int) Load 8(invocation)
-             499:    103(ptr) AccessChain 27(data) 39 50
-             500:   21(ivec4) Load 499
-             501:  102(ivec2) VectorShuffle 500 500 0 1
-             502:  102(ivec2) GroupNonUniformBitwiseAnd 35 ClusteredReduce 501 34
-             503:    103(ptr) AccessChain 27(data) 498 50
-             504:   21(ivec4) Load 503
-             505:   21(ivec4) VectorShuffle 504 502 4 5 2 3
-                              Store 503 505
-             506:      6(int) Load 8(invocation)
-             507:    103(ptr) AccessChain 27(data) 50 50
-             508:   21(ivec4) Load 507
-             509:  112(ivec3) VectorShuffle 508 508 0 1 2
-             510:  112(ivec3) GroupNonUniformBitwiseAnd 35 ClusteredReduce 509 34
-             511:    103(ptr) AccessChain 27(data) 506 50
-             512:   21(ivec4) Load 511
-             513:   21(ivec4) VectorShuffle 512 510 4 5 6 3
-                              Store 511 513
-             514:      6(int) Load 8(invocation)
-             515:    103(ptr) AccessChain 27(data) 60 50
-             516:   21(ivec4) Load 515
-             517:   21(ivec4) GroupNonUniformBitwiseAnd 35 ClusteredReduce 516 34
-             518:    103(ptr) AccessChain 27(data) 514 50
-                              Store 518 517
-             519:      6(int) Load 8(invocation)
-             520:     66(ptr) AccessChain 27(data) 29 39 30
-             521:     19(int) Load 520
-             523:   522(bool) SLessThan 521 29
-             524:   522(bool) GroupNonUniformLogicalAnd 35 ClusteredReduce 523 34
-             525:     19(int) Select 524 39 29
-             526:     66(ptr) AccessChain 27(data) 519 39 30
-                              Store 526 525
+             473:    105(ptr) AccessChain 27(data) 29 51 30
+             474:      6(int) Load 473
+             475:      6(int) GroupNonUniformUMax 35 ClusteredReduce 474 34
+             476:    105(ptr) AccessChain 27(data) 472 51 30
+                              Store 476 475
+             477:      6(int) Load 8(invocation)
+             478:    112(ptr) AccessChain 27(data) 39 51
+             479:   21(ivec4) Load 478
+             480:  111(ivec2) VectorShuffle 479 479 0 1
+             481:  111(ivec2) GroupNonUniformUMax 35 ClusteredReduce 480 34
+             482:    105(ptr) AccessChain 27(data) 477 51 30
+             483:      6(int) CompositeExtract 481 0
+                              Store 482 483
+             484:    105(ptr) AccessChain 27(data) 477 51 34
+             485:      6(int) CompositeExtract 481 1
+                              Store 484 485
+             486:      6(int) Load 8(invocation)
+             487:    112(ptr) AccessChain 27(data) 51 51
+             488:   21(ivec4) Load 487
+             489:  122(ivec3) VectorShuffle 488 488 0 1 2
+             490:  122(ivec3) GroupNonUniformUMax 35 ClusteredReduce 489 34
+             491:    105(ptr) AccessChain 27(data) 486 51 30
+             492:      6(int) CompositeExtract 490 0
+                              Store 491 492
+             493:    105(ptr) AccessChain 27(data) 486 51 34
+             494:      6(int) CompositeExtract 490 1
+                              Store 493 494
+             495:    105(ptr) AccessChain 27(data) 486 51 61
+             496:      6(int) CompositeExtract 490 2
+                              Store 495 496
+             497:      6(int) Load 8(invocation)
+             498:    112(ptr) AccessChain 27(data) 65 51
+             499:   21(ivec4) Load 498
+             500:   21(ivec4) GroupNonUniformUMax 35 ClusteredReduce 499 34
+             501:    112(ptr) AccessChain 27(data) 497 51
+                              Store 501 500
+             502:      6(int) Load 8(invocation)
+             503:    139(ptr) AccessChain 27(data) 29 65 30
+             504:22(float64_t) Load 503
+             505:22(float64_t) GroupNonUniformFMax 35 ClusteredReduce 504 34
+             506:    139(ptr) AccessChain 27(data) 502 65 30
+                              Store 506 505
+             507:      6(int) Load 8(invocation)
+             508:    146(ptr) AccessChain 27(data) 39 65
+             509: 23(f64vec4) Load 508
+             510:145(f64vec2) VectorShuffle 509 509 0 1
+             511:145(f64vec2) GroupNonUniformFMax 35 ClusteredReduce 510 34
+             512:    139(ptr) AccessChain 27(data) 507 65 30
+             513:22(float64_t) CompositeExtract 511 0
+                              Store 512 513
+             514:    139(ptr) AccessChain 27(data) 507 65 34
+             515:22(float64_t) CompositeExtract 511 1
+                              Store 514 515
+             516:      6(int) Load 8(invocation)
+             517:    146(ptr) AccessChain 27(data) 51 65
+             518: 23(f64vec4) Load 517
+             519:156(f64vec3) VectorShuffle 518 518 0 1 2
+             520:156(f64vec3) GroupNonUniformFMax 35 ClusteredReduce 519 34
+             521:    139(ptr) AccessChain 27(data) 516 65 30
+             522:22(float64_t) CompositeExtract 520 0
+                              Store 521 522
+             523:    139(ptr) AccessChain 27(data) 516 65 34
+             524:22(float64_t) CompositeExtract 520 1
+                              Store 523 524
+             525:    139(ptr) AccessChain 27(data) 516 65 61
+             526:22(float64_t) CompositeExtract 520 2
+                              Store 525 526
              527:      6(int) Load 8(invocation)
-             528:     73(ptr) AccessChain 27(data) 39 39
-             529:   20(ivec4) Load 528
-             530:   72(ivec2) VectorShuffle 529 529 0 1
-             533:  532(bvec2) SLessThan 530 531
-             534:  532(bvec2) GroupNonUniformLogicalAnd 35 ClusteredReduce 533 34
-             536:   72(ivec2) Select 534 535 531
-             537:     73(ptr) AccessChain 27(data) 527 39
-             538:   20(ivec4) Load 537
-             539:   20(ivec4) VectorShuffle 538 536 4 5 2 3
-                              Store 537 539
-             540:      6(int) Load 8(invocation)
-             541:     73(ptr) AccessChain 27(data) 39 39
-             542:   20(ivec4) Load 541
-             543:   82(ivec3) VectorShuffle 542 542 0 1 2
-             546:  545(bvec3) SLessThan 543 544
-             547:  545(bvec3) GroupNonUniformLogicalAnd 35 ClusteredReduce 546 34
-             549:   82(ivec3) Select 547 548 544
-             550:     73(ptr) AccessChain 27(data) 540 39
-             551:   20(ivec4) Load 550
-             552:   20(ivec4) VectorShuffle 551 549 4 5 6 3
-                              Store 550 552
-             553:      6(int) Load 8(invocation)
-             554:     73(ptr) AccessChain 27(data) 39 39
-             555:   20(ivec4) Load 554
-             558:  557(bvec4) SLessThan 555 556
-             559:  557(bvec4) GroupNonUniformLogicalAnd 35 ClusteredReduce 558 34
-             561:   20(ivec4) Select 559 560 556
-             562:     73(ptr) AccessChain 27(data) 553 39
-                              Store 562 561
-             563:      6(int) Load 8(invocation)
-             564:     66(ptr) AccessChain 27(data) 29 39 30
-             565:     19(int) Load 564
-             566:     19(int) GroupNonUniformBitwiseOr 35 ClusteredReduce 565 34
-             567:     66(ptr) AccessChain 27(data) 563 39 30
-                              Store 567 566
-             568:      6(int) Load 8(invocation)
-             569:     73(ptr) AccessChain 27(data) 39 39
-             570:   20(ivec4) Load 569
-             571:   72(ivec2) VectorShuffle 570 570 0 1
-             572:   72(ivec2) GroupNonUniformBitwiseOr 35 ClusteredReduce 571 34
-             573:     73(ptr) AccessChain 27(data) 568 39
-             574:   20(ivec4) Load 573
-             575:   20(ivec4) VectorShuffle 574 572 4 5 2 3
-                              Store 573 575
+             528:    146(ptr) AccessChain 27(data) 65 65
+             529: 23(f64vec4) Load 528
+             530: 23(f64vec4) GroupNonUniformFMax 35 ClusteredReduce 529 34
+             531:    146(ptr) AccessChain 27(data) 527 65
+                              Store 531 530
+             532:      6(int) Load 8(invocation)
+             533:     71(ptr) AccessChain 27(data) 29 39 30
+             534:     19(int) Load 533
+             535:     19(int) GroupNonUniformBitwiseAnd 35 ClusteredReduce 534 34
+             536:     71(ptr) AccessChain 27(data) 532 39 30
+                              Store 536 535
+             537:      6(int) Load 8(invocation)
+             538:     78(ptr) AccessChain 27(data) 39 39
+             539:   20(ivec4) Load 538
+             540:   77(ivec2) VectorShuffle 539 539 0 1
+             541:   77(ivec2) GroupNonUniformBitwiseAnd 35 ClusteredReduce 540 34
+             542:     71(ptr) AccessChain 27(data) 537 39 30
+             543:     19(int) CompositeExtract 541 0
+                              Store 542 543
+             544:     71(ptr) AccessChain 27(data) 537 39 34
+             545:     19(int) CompositeExtract 541 1
+                              Store 544 545
+             546:      6(int) Load 8(invocation)
+             547:     78(ptr) AccessChain 27(data) 51 39
+             548:   20(ivec4) Load 547
+             549:   88(ivec3) VectorShuffle 548 548 0 1 2
+             550:   88(ivec3) GroupNonUniformBitwiseAnd 35 ClusteredReduce 549 34
+             551:     71(ptr) AccessChain 27(data) 546 39 30
+             552:     19(int) CompositeExtract 550 0
+                              Store 551 552
+             553:     71(ptr) AccessChain 27(data) 546 39 34
+             554:     19(int) CompositeExtract 550 1
+                              Store 553 554
+             555:     71(ptr) AccessChain 27(data) 546 39 61
+             556:     19(int) CompositeExtract 550 2
+                              Store 555 556
+             557:      6(int) Load 8(invocation)
+             558:     78(ptr) AccessChain 27(data) 65 39
+             559:   20(ivec4) Load 558
+             560:   20(ivec4) GroupNonUniformBitwiseAnd 35 ClusteredReduce 559 34
+             561:     78(ptr) AccessChain 27(data) 557 39
+                              Store 561 560
+             562:      6(int) Load 8(invocation)
+             563:    105(ptr) AccessChain 27(data) 29 51 30
+             564:      6(int) Load 563
+             565:      6(int) GroupNonUniformBitwiseAnd 35 ClusteredReduce 564 34
+             566:    105(ptr) AccessChain 27(data) 562 51 30
+                              Store 566 565
+             567:      6(int) Load 8(invocation)
+             568:    112(ptr) AccessChain 27(data) 39 51
+             569:   21(ivec4) Load 568
+             570:  111(ivec2) VectorShuffle 569 569 0 1
+             571:  111(ivec2) GroupNonUniformBitwiseAnd 35 ClusteredReduce 570 34
+             572:    105(ptr) AccessChain 27(data) 567 51 30
+             573:      6(int) CompositeExtract 571 0
+                              Store 572 573
+             574:    105(ptr) AccessChain 27(data) 567 51 34
+             575:      6(int) CompositeExtract 571 1
+                              Store 574 575
              576:      6(int) Load 8(invocation)
-             577:     73(ptr) AccessChain 27(data) 50 39
-             578:   20(ivec4) Load 577
-             579:   82(ivec3) VectorShuffle 578 578 0 1 2
-             580:   82(ivec3) GroupNonUniformBitwiseOr 35 ClusteredReduce 579 34
-             581:     73(ptr) AccessChain 27(data) 576 39
-             582:   20(ivec4) Load 581
-             583:   20(ivec4) VectorShuffle 582 580 4 5 6 3
-                              Store 581 583
-             584:      6(int) Load 8(invocation)
-             585:     73(ptr) AccessChain 27(data) 60 39
-             586:   20(ivec4) Load 585
-             587:   20(ivec4) GroupNonUniformBitwiseOr 35 ClusteredReduce 586 34
-             588:     73(ptr) AccessChain 27(data) 584 39
-                              Store 588 587
-             589:      6(int) Load 8(invocation)
-             590:     96(ptr) AccessChain 27(data) 29 50 30
-             591:      6(int) Load 590
-             592:      6(int) GroupNonUniformBitwiseOr 35 ClusteredReduce 591 34
-             593:     96(ptr) AccessChain 27(data) 589 50 30
-                              Store 593 592
-             594:      6(int) Load 8(invocation)
-             595:    103(ptr) AccessChain 27(data) 39 50
-             596:   21(ivec4) Load 595
-             597:  102(ivec2) VectorShuffle 596 596 0 1
-             598:  102(ivec2) GroupNonUniformBitwiseOr 35 ClusteredReduce 597 34
-             599:    103(ptr) AccessChain 27(data) 594 50
-             600:   21(ivec4) Load 599
-             601:   21(ivec4) VectorShuffle 600 598 4 5 2 3
-                              Store 599 601
-             602:      6(int) Load 8(invocation)
-             603:    103(ptr) AccessChain 27(data) 50 50
-             604:   21(ivec4) Load 603
-             605:  112(ivec3) VectorShuffle 604 604 0 1 2
-             606:  112(ivec3) GroupNonUniformBitwiseOr 35 ClusteredReduce 605 34
-             607:    103(ptr) AccessChain 27(data) 602 50
-             608:   21(ivec4) Load 607
-             609:   21(ivec4) VectorShuffle 608 606 4 5 6 3
-                              Store 607 609
-             610:      6(int) Load 8(invocation)
-             611:    103(ptr) AccessChain 27(data) 60 50
-             612:   21(ivec4) Load 611
-             613:   21(ivec4) GroupNonUniformBitwiseOr 35 ClusteredReduce 612 34
-             614:    103(ptr) AccessChain 27(data) 610 50
-                              Store 614 613
-             615:      6(int) Load 8(invocation)
-             616:     66(ptr) AccessChain 27(data) 29 39 30
-             617:     19(int) Load 616
-             618:   522(bool) SLessThan 617 29
-             619:   522(bool) GroupNonUniformLogicalOr 35 ClusteredReduce 618 34
-             620:     19(int) Select 619 39 29
-             621:     66(ptr) AccessChain 27(data) 615 39 30
-                              Store 621 620
-             622:      6(int) Load 8(invocation)
-             623:     73(ptr) AccessChain 27(data) 39 39
-             624:   20(ivec4) Load 623
-             625:   72(ivec2) VectorShuffle 624 624 0 1
-             626:  532(bvec2) SLessThan 625 531
-             627:  532(bvec2) GroupNonUniformLogicalOr 35 ClusteredReduce 626 34
-             628:   72(ivec2) Select 627 535 531
-             629:     73(ptr) AccessChain 27(data) 622 39
-             630:   20(ivec4) Load 629
-             631:   20(ivec4) VectorShuffle 630 628 4 5 2 3
-                              Store 629 631
-             632:      6(int) Load 8(invocation)
-             633:     73(ptr) AccessChain 27(data) 39 39
-             634:   20(ivec4) Load 633
-             635:   82(ivec3) VectorShuffle 634 634 0 1 2
-             636:  545(bvec3) SLessThan 635 544
-             637:  545(bvec3) GroupNonUniformLogicalOr 35 ClusteredReduce 636 34
-             638:   82(ivec3) Select 637 548 544
-             639:     73(ptr) AccessChain 27(data) 632 39
-             640:   20(ivec4) Load 639
-             641:   20(ivec4) VectorShuffle 640 638 4 5 6 3
-                              Store 639 641
-             642:      6(int) Load 8(invocation)
-             643:     73(ptr) AccessChain 27(data) 39 39
-             644:   20(ivec4) Load 643
-             645:  557(bvec4) SLessThan 644 556
-             646:  557(bvec4) GroupNonUniformLogicalOr 35 ClusteredReduce 645 34
-             647:   20(ivec4) Select 646 560 556
-             648:     73(ptr) AccessChain 27(data) 642 39
-                              Store 648 647
-             649:      6(int) Load 8(invocation)
-             650:     66(ptr) AccessChain 27(data) 29 39 30
-             651:     19(int) Load 650
-             652:     19(int) GroupNonUniformBitwiseXor 35 ClusteredReduce 651 34
-             653:     66(ptr) AccessChain 27(data) 649 39 30
-                              Store 653 652
+             577:    112(ptr) AccessChain 27(data) 51 51
+             578:   21(ivec4) Load 577
+             579:  122(ivec3) VectorShuffle 578 578 0 1 2
+             580:  122(ivec3) GroupNonUniformBitwiseAnd 35 ClusteredReduce 579 34
+             581:    105(ptr) AccessChain 27(data) 576 51 30
+             582:      6(int) CompositeExtract 580 0
+                              Store 581 582
+             583:    105(ptr) AccessChain 27(data) 576 51 34
+             584:      6(int) CompositeExtract 580 1
+                              Store 583 584
+             585:    105(ptr) AccessChain 27(data) 576 51 61
+             586:      6(int) CompositeExtract 580 2
+                              Store 585 586
+             587:      6(int) Load 8(invocation)
+             588:    112(ptr) AccessChain 27(data) 65 51
+             589:   21(ivec4) Load 588
+             590:   21(ivec4) GroupNonUniformBitwiseAnd 35 ClusteredReduce 589 34
+             591:    112(ptr) AccessChain 27(data) 587 51
+                              Store 591 590
+             592:      6(int) Load 8(invocation)
+             593:     71(ptr) AccessChain 27(data) 29 39 30
+             594:     19(int) Load 593
+             596:   595(bool) SLessThan 594 29
+             597:   595(bool) GroupNonUniformLogicalAnd 35 ClusteredReduce 596 34
+             598:     19(int) Select 597 39 29
+             599:     71(ptr) AccessChain 27(data) 592 39 30
+                              Store 599 598
+             600:      6(int) Load 8(invocation)
+             601:     78(ptr) AccessChain 27(data) 39 39
+             602:   20(ivec4) Load 601
+             603:   77(ivec2) VectorShuffle 602 602 0 1
+             606:  605(bvec2) SLessThan 603 604
+             607:  605(bvec2) GroupNonUniformLogicalAnd 35 ClusteredReduce 606 34
+             609:   77(ivec2) Select 607 608 604
+             610:     71(ptr) AccessChain 27(data) 600 39 30
+             611:     19(int) CompositeExtract 609 0
+                              Store 610 611
+             612:     71(ptr) AccessChain 27(data) 600 39 34
+             613:     19(int) CompositeExtract 609 1
+                              Store 612 613
+             614:      6(int) Load 8(invocation)
+             615:     78(ptr) AccessChain 27(data) 39 39
+             616:   20(ivec4) Load 615
+             617:   88(ivec3) VectorShuffle 616 616 0 1 2
+             620:  619(bvec3) SLessThan 617 618
+             621:  619(bvec3) GroupNonUniformLogicalAnd 35 ClusteredReduce 620 34
+             623:   88(ivec3) Select 621 622 618
+             624:     71(ptr) AccessChain 27(data) 614 39 30
+             625:     19(int) CompositeExtract 623 0
+                              Store 624 625
+             626:     71(ptr) AccessChain 27(data) 614 39 34
+             627:     19(int) CompositeExtract 623 1
+                              Store 626 627
+             628:     71(ptr) AccessChain 27(data) 614 39 61
+             629:     19(int) CompositeExtract 623 2
+                              Store 628 629
+             630:      6(int) Load 8(invocation)
+             631:     78(ptr) AccessChain 27(data) 39 39
+             632:   20(ivec4) Load 631
+             635:  634(bvec4) SLessThan 632 633
+             636:  634(bvec4) GroupNonUniformLogicalAnd 35 ClusteredReduce 635 34
+             638:   20(ivec4) Select 636 637 633
+             639:     78(ptr) AccessChain 27(data) 630 39
+                              Store 639 638
+             640:      6(int) Load 8(invocation)
+             641:     71(ptr) AccessChain 27(data) 29 39 30
+             642:     19(int) Load 641
+             643:     19(int) GroupNonUniformBitwiseOr 35 ClusteredReduce 642 34
+             644:     71(ptr) AccessChain 27(data) 640 39 30
+                              Store 644 643
+             645:      6(int) Load 8(invocation)
+             646:     78(ptr) AccessChain 27(data) 39 39
+             647:   20(ivec4) Load 646
+             648:   77(ivec2) VectorShuffle 647 647 0 1
+             649:   77(ivec2) GroupNonUniformBitwiseOr 35 ClusteredReduce 648 34
+             650:     71(ptr) AccessChain 27(data) 645 39 30
+             651:     19(int) CompositeExtract 649 0
+                              Store 650 651
+             652:     71(ptr) AccessChain 27(data) 645 39 34
+             653:     19(int) CompositeExtract 649 1
+                              Store 652 653
              654:      6(int) Load 8(invocation)
-             655:     73(ptr) AccessChain 27(data) 39 39
+             655:     78(ptr) AccessChain 27(data) 51 39
              656:   20(ivec4) Load 655
-             657:   72(ivec2) VectorShuffle 656 656 0 1
-             658:   72(ivec2) GroupNonUniformBitwiseXor 35 ClusteredReduce 657 34
-             659:     73(ptr) AccessChain 27(data) 654 39
-             660:   20(ivec4) Load 659
-             661:   20(ivec4) VectorShuffle 660 658 4 5 2 3
-                              Store 659 661
-             662:      6(int) Load 8(invocation)
-             663:     73(ptr) AccessChain 27(data) 50 39
-             664:   20(ivec4) Load 663
-             665:   82(ivec3) VectorShuffle 664 664 0 1 2
-             666:   82(ivec3) GroupNonUniformBitwiseXor 35 ClusteredReduce 665 34
-             667:     73(ptr) AccessChain 27(data) 662 39
-             668:   20(ivec4) Load 667
-             669:   20(ivec4) VectorShuffle 668 666 4 5 6 3
-                              Store 667 669
+             657:   88(ivec3) VectorShuffle 656 656 0 1 2
+             658:   88(ivec3) GroupNonUniformBitwiseOr 35 ClusteredReduce 657 34
+             659:     71(ptr) AccessChain 27(data) 654 39 30
+             660:     19(int) CompositeExtract 658 0
+                              Store 659 660
+             661:     71(ptr) AccessChain 27(data) 654 39 34
+             662:     19(int) CompositeExtract 658 1
+                              Store 661 662
+             663:     71(ptr) AccessChain 27(data) 654 39 61
+             664:     19(int) CompositeExtract 658 2
+                              Store 663 664
+             665:      6(int) Load 8(invocation)
+             666:     78(ptr) AccessChain 27(data) 65 39
+             667:   20(ivec4) Load 666
+             668:   20(ivec4) GroupNonUniformBitwiseOr 35 ClusteredReduce 667 34
+             669:     78(ptr) AccessChain 27(data) 665 39
+                              Store 669 668
              670:      6(int) Load 8(invocation)
-             671:     73(ptr) AccessChain 27(data) 60 39
-             672:   20(ivec4) Load 671
-             673:   20(ivec4) GroupNonUniformBitwiseXor 35 ClusteredReduce 672 34
-             674:     73(ptr) AccessChain 27(data) 670 39
+             671:    105(ptr) AccessChain 27(data) 29 51 30
+             672:      6(int) Load 671
+             673:      6(int) GroupNonUniformBitwiseOr 35 ClusteredReduce 672 34
+             674:    105(ptr) AccessChain 27(data) 670 51 30
                               Store 674 673
              675:      6(int) Load 8(invocation)
-             676:     96(ptr) AccessChain 27(data) 29 50 30
-             677:      6(int) Load 676
-             678:      6(int) GroupNonUniformBitwiseXor 35 ClusteredReduce 677 34
-             679:     96(ptr) AccessChain 27(data) 675 50 30
-                              Store 679 678
-             680:      6(int) Load 8(invocation)
-             681:    103(ptr) AccessChain 27(data) 39 50
-             682:   21(ivec4) Load 681
-             683:  102(ivec2) VectorShuffle 682 682 0 1
-             684:  102(ivec2) GroupNonUniformBitwiseXor 35 ClusteredReduce 683 34
-             685:    103(ptr) AccessChain 27(data) 680 50
+             676:    112(ptr) AccessChain 27(data) 39 51
+             677:   21(ivec4) Load 676
+             678:  111(ivec2) VectorShuffle 677 677 0 1
+             679:  111(ivec2) GroupNonUniformBitwiseOr 35 ClusteredReduce 678 34
+             680:    105(ptr) AccessChain 27(data) 675 51 30
+             681:      6(int) CompositeExtract 679 0
+                              Store 680 681
+             682:    105(ptr) AccessChain 27(data) 675 51 34
+             683:      6(int) CompositeExtract 679 1
+                              Store 682 683
+             684:      6(int) Load 8(invocation)
+             685:    112(ptr) AccessChain 27(data) 51 51
              686:   21(ivec4) Load 685
-             687:   21(ivec4) VectorShuffle 686 684 4 5 2 3
-                              Store 685 687
-             688:      6(int) Load 8(invocation)
-             689:    103(ptr) AccessChain 27(data) 50 50
-             690:   21(ivec4) Load 689
-             691:  112(ivec3) VectorShuffle 690 690 0 1 2
-             692:  112(ivec3) GroupNonUniformBitwiseXor 35 ClusteredReduce 691 34
-             693:    103(ptr) AccessChain 27(data) 688 50
-             694:   21(ivec4) Load 693
-             695:   21(ivec4) VectorShuffle 694 692 4 5 6 3
-                              Store 693 695
-             696:      6(int) Load 8(invocation)
-             697:    103(ptr) AccessChain 27(data) 60 50
-             698:   21(ivec4) Load 697
-             699:   21(ivec4) GroupNonUniformBitwiseXor 35 ClusteredReduce 698 34
-             700:    103(ptr) AccessChain 27(data) 696 50
-                              Store 700 699
-             701:      6(int) Load 8(invocation)
-             702:     66(ptr) AccessChain 27(data) 29 39 30
-             703:     19(int) Load 702
-             704:   522(bool) SLessThan 703 29
-             705:   522(bool) GroupNonUniformLogicalXor 35 ClusteredReduce 704 34
-             706:     19(int) Select 705 39 29
-             707:     66(ptr) AccessChain 27(data) 701 39 30
-                              Store 707 706
-             708:      6(int) Load 8(invocation)
-             709:     73(ptr) AccessChain 27(data) 39 39
-             710:   20(ivec4) Load 709
-             711:   72(ivec2) VectorShuffle 710 710 0 1
-             712:  532(bvec2) SLessThan 711 531
-             713:  532(bvec2) GroupNonUniformLogicalXor 35 ClusteredReduce 712 34
-             714:   72(ivec2) Select 713 535 531
-             715:     73(ptr) AccessChain 27(data) 708 39
-             716:   20(ivec4) Load 715
-             717:   20(ivec4) VectorShuffle 716 714 4 5 2 3
-                              Store 715 717
+             687:  122(ivec3) VectorShuffle 686 686 0 1 2
+             688:  122(ivec3) GroupNonUniformBitwiseOr 35 ClusteredReduce 687 34
+             689:    105(ptr) AccessChain 27(data) 684 51 30
+             690:      6(int) CompositeExtract 688 0
+                              Store 689 690
+             691:    105(ptr) AccessChain 27(data) 684 51 34
+             692:      6(int) CompositeExtract 688 1
+                              Store 691 692
+             693:    105(ptr) AccessChain 27(data) 684 51 61
+             694:      6(int) CompositeExtract 688 2
+                              Store 693 694
+             695:      6(int) Load 8(invocation)
+             696:    112(ptr) AccessChain 27(data) 65 51
+             697:   21(ivec4) Load 696
+             698:   21(ivec4) GroupNonUniformBitwiseOr 35 ClusteredReduce 697 34
+             699:    112(ptr) AccessChain 27(data) 695 51
+                              Store 699 698
+             700:      6(int) Load 8(invocation)
+             701:     71(ptr) AccessChain 27(data) 29 39 30
+             702:     19(int) Load 701
+             703:   595(bool) SLessThan 702 29
+             704:   595(bool) GroupNonUniformLogicalOr 35 ClusteredReduce 703 34
+             705:     19(int) Select 704 39 29
+             706:     71(ptr) AccessChain 27(data) 700 39 30
+                              Store 706 705
+             707:      6(int) Load 8(invocation)
+             708:     78(ptr) AccessChain 27(data) 39 39
+             709:   20(ivec4) Load 708
+             710:   77(ivec2) VectorShuffle 709 709 0 1
+             711:  605(bvec2) SLessThan 710 604
+             712:  605(bvec2) GroupNonUniformLogicalOr 35 ClusteredReduce 711 34
+             713:   77(ivec2) Select 712 608 604
+             714:     71(ptr) AccessChain 27(data) 707 39 30
+             715:     19(int) CompositeExtract 713 0
+                              Store 714 715
+             716:     71(ptr) AccessChain 27(data) 707 39 34
+             717:     19(int) CompositeExtract 713 1
+                              Store 716 717
              718:      6(int) Load 8(invocation)
-             719:     73(ptr) AccessChain 27(data) 39 39
+             719:     78(ptr) AccessChain 27(data) 39 39
              720:   20(ivec4) Load 719
-             721:   82(ivec3) VectorShuffle 720 720 0 1 2
-             722:  545(bvec3) SLessThan 721 544
-             723:  545(bvec3) GroupNonUniformLogicalXor 35 ClusteredReduce 722 34
-             724:   82(ivec3) Select 723 548 544
-             725:     73(ptr) AccessChain 27(data) 718 39
-             726:   20(ivec4) Load 725
-             727:   20(ivec4) VectorShuffle 726 724 4 5 6 3
-                              Store 725 727
-             728:      6(int) Load 8(invocation)
-             729:     73(ptr) AccessChain 27(data) 39 39
-             730:   20(ivec4) Load 729
-             731:  557(bvec4) SLessThan 730 556
-             732:  557(bvec4) GroupNonUniformLogicalXor 35 ClusteredReduce 731 34
-             733:   20(ivec4) Select 732 560 556
-             734:     73(ptr) AccessChain 27(data) 728 39
-                              Store 734 733
+             721:   88(ivec3) VectorShuffle 720 720 0 1 2
+             722:  619(bvec3) SLessThan 721 618
+             723:  619(bvec3) GroupNonUniformLogicalOr 35 ClusteredReduce 722 34
+             724:   88(ivec3) Select 723 622 618
+             725:     71(ptr) AccessChain 27(data) 718 39 30
+             726:     19(int) CompositeExtract 724 0
+                              Store 725 726
+             727:     71(ptr) AccessChain 27(data) 718 39 34
+             728:     19(int) CompositeExtract 724 1
+                              Store 727 728
+             729:     71(ptr) AccessChain 27(data) 718 39 61
+             730:     19(int) CompositeExtract 724 2
+                              Store 729 730
+             731:      6(int) Load 8(invocation)
+             732:     78(ptr) AccessChain 27(data) 39 39
+             733:   20(ivec4) Load 732
+             734:  634(bvec4) SLessThan 733 633
+             735:  634(bvec4) GroupNonUniformLogicalOr 35 ClusteredReduce 734 34
+             736:   20(ivec4) Select 735 637 633
+             737:     78(ptr) AccessChain 27(data) 731 39
+                              Store 737 736
+             738:      6(int) Load 8(invocation)
+             739:     71(ptr) AccessChain 27(data) 29 39 30
+             740:     19(int) Load 739
+             741:     19(int) GroupNonUniformBitwiseXor 35 ClusteredReduce 740 34
+             742:     71(ptr) AccessChain 27(data) 738 39 30
+                              Store 742 741
+             743:      6(int) Load 8(invocation)
+             744:     78(ptr) AccessChain 27(data) 39 39
+             745:   20(ivec4) Load 744
+             746:   77(ivec2) VectorShuffle 745 745 0 1
+             747:   77(ivec2) GroupNonUniformBitwiseXor 35 ClusteredReduce 746 34
+             748:     71(ptr) AccessChain 27(data) 743 39 30
+             749:     19(int) CompositeExtract 747 0
+                              Store 748 749
+             750:     71(ptr) AccessChain 27(data) 743 39 34
+             751:     19(int) CompositeExtract 747 1
+                              Store 750 751
+             752:      6(int) Load 8(invocation)
+             753:     78(ptr) AccessChain 27(data) 51 39
+             754:   20(ivec4) Load 753
+             755:   88(ivec3) VectorShuffle 754 754 0 1 2
+             756:   88(ivec3) GroupNonUniformBitwiseXor 35 ClusteredReduce 755 34
+             757:     71(ptr) AccessChain 27(data) 752 39 30
+             758:     19(int) CompositeExtract 756 0
+                              Store 757 758
+             759:     71(ptr) AccessChain 27(data) 752 39 34
+             760:     19(int) CompositeExtract 756 1
+                              Store 759 760
+             761:     71(ptr) AccessChain 27(data) 752 39 61
+             762:     19(int) CompositeExtract 756 2
+                              Store 761 762
+             763:      6(int) Load 8(invocation)
+             764:     78(ptr) AccessChain 27(data) 65 39
+             765:   20(ivec4) Load 764
+             766:   20(ivec4) GroupNonUniformBitwiseXor 35 ClusteredReduce 765 34
+             767:     78(ptr) AccessChain 27(data) 763 39
+                              Store 767 766
+             768:      6(int) Load 8(invocation)
+             769:    105(ptr) AccessChain 27(data) 29 51 30
+             770:      6(int) Load 769
+             771:      6(int) GroupNonUniformBitwiseXor 35 ClusteredReduce 770 34
+             772:    105(ptr) AccessChain 27(data) 768 51 30
+                              Store 772 771
+             773:      6(int) Load 8(invocation)
+             774:    112(ptr) AccessChain 27(data) 39 51
+             775:   21(ivec4) Load 774
+             776:  111(ivec2) VectorShuffle 775 775 0 1
+             777:  111(ivec2) GroupNonUniformBitwiseXor 35 ClusteredReduce 776 34
+             778:    105(ptr) AccessChain 27(data) 773 51 30
+             779:      6(int) CompositeExtract 777 0
+                              Store 778 779
+             780:    105(ptr) AccessChain 27(data) 773 51 34
+             781:      6(int) CompositeExtract 777 1
+                              Store 780 781
+             782:      6(int) Load 8(invocation)
+             783:    112(ptr) AccessChain 27(data) 51 51
+             784:   21(ivec4) Load 783
+             785:  122(ivec3) VectorShuffle 784 784 0 1 2
+             786:  122(ivec3) GroupNonUniformBitwiseXor 35 ClusteredReduce 785 34
+             787:    105(ptr) AccessChain 27(data) 782 51 30
+             788:      6(int) CompositeExtract 786 0
+                              Store 787 788
+             789:    105(ptr) AccessChain 27(data) 782 51 34
+             790:      6(int) CompositeExtract 786 1
+                              Store 789 790
+             791:    105(ptr) AccessChain 27(data) 782 51 61
+             792:      6(int) CompositeExtract 786 2
+                              Store 791 792
+             793:      6(int) Load 8(invocation)
+             794:    112(ptr) AccessChain 27(data) 65 51
+             795:   21(ivec4) Load 794
+             796:   21(ivec4) GroupNonUniformBitwiseXor 35 ClusteredReduce 795 34
+             797:    112(ptr) AccessChain 27(data) 793 51
+                              Store 797 796
+             798:      6(int) Load 8(invocation)
+             799:     71(ptr) AccessChain 27(data) 29 39 30
+             800:     19(int) Load 799
+             801:   595(bool) SLessThan 800 29
+             802:   595(bool) GroupNonUniformLogicalXor 35 ClusteredReduce 801 34
+             803:     19(int) Select 802 39 29
+             804:     71(ptr) AccessChain 27(data) 798 39 30
+                              Store 804 803
+             805:      6(int) Load 8(invocation)
+             806:     78(ptr) AccessChain 27(data) 39 39
+             807:   20(ivec4) Load 806
+             808:   77(ivec2) VectorShuffle 807 807 0 1
+             809:  605(bvec2) SLessThan 808 604
+             810:  605(bvec2) GroupNonUniformLogicalXor 35 ClusteredReduce 809 34
+             811:   77(ivec2) Select 810 608 604
+             812:     71(ptr) AccessChain 27(data) 805 39 30
+             813:     19(int) CompositeExtract 811 0
+                              Store 812 813
+             814:     71(ptr) AccessChain 27(data) 805 39 34
+             815:     19(int) CompositeExtract 811 1
+                              Store 814 815
+             816:      6(int) Load 8(invocation)
+             817:     78(ptr) AccessChain 27(data) 39 39
+             818:   20(ivec4) Load 817
+             819:   88(ivec3) VectorShuffle 818 818 0 1 2
+             820:  619(bvec3) SLessThan 819 618
+             821:  619(bvec3) GroupNonUniformLogicalXor 35 ClusteredReduce 820 34
+             822:   88(ivec3) Select 821 622 618
+             823:     71(ptr) AccessChain 27(data) 816 39 30
+             824:     19(int) CompositeExtract 822 0
+                              Store 823 824
+             825:     71(ptr) AccessChain 27(data) 816 39 34
+             826:     19(int) CompositeExtract 822 1
+                              Store 825 826
+             827:     71(ptr) AccessChain 27(data) 816 39 61
+             828:     19(int) CompositeExtract 822 2
+                              Store 827 828
+             829:      6(int) Load 8(invocation)
+             830:     78(ptr) AccessChain 27(data) 39 39
+             831:   20(ivec4) Load 830
+             832:  634(bvec4) SLessThan 831 633
+             833:  634(bvec4) GroupNonUniformLogicalXor 35 ClusteredReduce 832 34
+             834:   20(ivec4) Select 833 637 633
+             835:     78(ptr) AccessChain 27(data) 829 39
+                              Store 835 834
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out b/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out
index 1406bd1..828ce61 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesArithmetic.comp.out
@@ -1,7 +1,7 @@
 spv.subgroupExtendedTypesArithmetic.comp
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 3665
+// Id's are bound by 4218
 
                               Capability Shader
                               Capability Float16
@@ -59,7 +59,7 @@
                               Decorate 31(Buffers) Block
                               Decorate 34(data) DescriptorSet 0
                               Decorate 34(data) Binding 0
-                              Decorate 3664 BuiltIn WorkgroupSize
+                              Decorate 4217 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -94,40 +94,41 @@
               46:     36(int) Constant 1
               47:             TypeVector 17(int8_t) 2
               48:             TypePointer StorageBuffer 18(i8vec4)
-              57:     36(int) Constant 2
-              58:             TypeVector 17(int8_t) 3
-              67:     36(int) Constant 3
-             593:             TypePointer StorageBuffer 19(int8_t)
-             599:             TypeVector 19(int8_t) 2
-             600:             TypePointer StorageBuffer 20(i8vec4)
-             609:             TypeVector 19(int8_t) 3
-            1143:             TypePointer StorageBuffer 21(int16_t)
-            1149:             TypeVector 21(int16_t) 2
-            1150:             TypePointer StorageBuffer 22(i16vec4)
-            1159:             TypeVector 21(int16_t) 3
-            1693:             TypePointer StorageBuffer 23(int16_t)
-            1699:             TypeVector 23(int16_t) 2
-            1700:             TypePointer StorageBuffer 24(i16vec4)
-            1709:             TypeVector 23(int16_t) 3
-            2243:     36(int) Constant 4
-            2244:             TypePointer StorageBuffer 25(int64_t)
-            2250:             TypeVector 25(int64_t) 2
-            2251:             TypePointer StorageBuffer 26(i64vec4)
-            2260:             TypeVector 25(int64_t) 3
-            2794:     36(int) Constant 5
-            2795:             TypePointer StorageBuffer 27(int64_t)
-            2801:             TypeVector 27(int64_t) 2
-            2802:             TypePointer StorageBuffer 28(i64vec4)
-            2811:             TypeVector 27(int64_t) 3
-            3345:     36(int) Constant 6
-            3346:             TypePointer StorageBuffer 29(float16_t)
-            3352:             TypeVector 29(float16_t) 2
-            3353:             TypePointer StorageBuffer 30(f16vec4)
-            3362:             TypeVector 29(float16_t) 3
-            3661:             TypeVector 6(int) 3
-            3662:      6(int) Constant 8
-            3663:      6(int) Constant 1
-            3664: 3661(ivec3) ConstantComposite 3662 3663 3663
+              55:      6(int) Constant 1
+              59:     36(int) Constant 2
+              60:             TypeVector 17(int8_t) 3
+              69:      6(int) Constant 2
+              73:     36(int) Constant 3
+             679:             TypePointer StorageBuffer 19(int8_t)
+             685:             TypeVector 19(int8_t) 2
+             686:             TypePointer StorageBuffer 20(i8vec4)
+             696:             TypeVector 19(int8_t) 3
+            1313:             TypePointer StorageBuffer 21(int16_t)
+            1319:             TypeVector 21(int16_t) 2
+            1320:             TypePointer StorageBuffer 22(i16vec4)
+            1330:             TypeVector 21(int16_t) 3
+            1947:             TypePointer StorageBuffer 23(int16_t)
+            1953:             TypeVector 23(int16_t) 2
+            1954:             TypePointer StorageBuffer 24(i16vec4)
+            1964:             TypeVector 23(int16_t) 3
+            2581:     36(int) Constant 4
+            2582:             TypePointer StorageBuffer 25(int64_t)
+            2588:             TypeVector 25(int64_t) 2
+            2589:             TypePointer StorageBuffer 26(i64vec4)
+            2599:             TypeVector 25(int64_t) 3
+            3216:     36(int) Constant 5
+            3217:             TypePointer StorageBuffer 27(int64_t)
+            3223:             TypeVector 27(int64_t) 2
+            3224:             TypePointer StorageBuffer 28(i64vec4)
+            3234:             TypeVector 27(int64_t) 3
+            3851:     36(int) Constant 6
+            3852:             TypePointer StorageBuffer 29(float16_t)
+            3858:             TypeVector 29(float16_t) 2
+            3859:             TypePointer StorageBuffer 30(f16vec4)
+            3869:             TypeVector 29(float16_t) 3
+            4215:             TypeVector 6(int) 3
+            4216:      6(int) Constant 8
+            4217: 4215(ivec3) ConstantComposite 4216 55 55
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -147,4134 +148,5100 @@
               50:  18(i8vec4) Load 49
               51:  47(i8vec2) VectorShuffle 50 50 0 1
               52:  47(i8vec2) GroupNonUniformIAdd 42 Reduce 51
-              53:     48(ptr) AccessChain 34(data) 45 37
-              54:  18(i8vec4) Load 53
-              55:  18(i8vec4) VectorShuffle 54 52 4 5 2 3
-                              Store 53 55
-              56:      6(int) Load 8(invocation)
-              59:     48(ptr) AccessChain 34(data) 57 37
-              60:  18(i8vec4) Load 59
-              61:  58(i8vec3) VectorShuffle 60 60 0 1 2
-              62:  58(i8vec3) GroupNonUniformIAdd 42 Reduce 61
-              63:     48(ptr) AccessChain 34(data) 56 37
-              64:  18(i8vec4) Load 63
-              65:  18(i8vec4) VectorShuffle 64 62 4 5 6 3
-                              Store 63 65
-              66:      6(int) Load 8(invocation)
-              68:     48(ptr) AccessChain 34(data) 67 37
-              69:  18(i8vec4) Load 68
-              70:  18(i8vec4) GroupNonUniformIAdd 42 Reduce 69
-              71:     48(ptr) AccessChain 34(data) 66 37
-                              Store 71 70
+              53:     39(ptr) AccessChain 34(data) 45 37 38
+              54:  17(int8_t) CompositeExtract 52 0
+                              Store 53 54
+              56:     39(ptr) AccessChain 34(data) 45 37 55
+              57:  17(int8_t) CompositeExtract 52 1
+                              Store 56 57
+              58:      6(int) Load 8(invocation)
+              61:     48(ptr) AccessChain 34(data) 59 37
+              62:  18(i8vec4) Load 61
+              63:  60(i8vec3) VectorShuffle 62 62 0 1 2
+              64:  60(i8vec3) GroupNonUniformIAdd 42 Reduce 63
+              65:     39(ptr) AccessChain 34(data) 58 37 38
+              66:  17(int8_t) CompositeExtract 64 0
+                              Store 65 66
+              67:     39(ptr) AccessChain 34(data) 58 37 55
+              68:  17(int8_t) CompositeExtract 64 1
+                              Store 67 68
+              70:     39(ptr) AccessChain 34(data) 58 37 69
+              71:  17(int8_t) CompositeExtract 64 2
+                              Store 70 71
               72:      6(int) Load 8(invocation)
-              73:     39(ptr) AccessChain 34(data) 37 37 38
-              74:  17(int8_t) Load 73
-              75:  17(int8_t) GroupNonUniformIMul 42 Reduce 74
-              76:     39(ptr) AccessChain 34(data) 72 37 38
-                              Store 76 75
-              77:      6(int) Load 8(invocation)
-              78:     48(ptr) AccessChain 34(data) 46 37
-              79:  18(i8vec4) Load 78
-              80:  47(i8vec2) VectorShuffle 79 79 0 1
-              81:  47(i8vec2) GroupNonUniformIMul 42 Reduce 80
-              82:     48(ptr) AccessChain 34(data) 77 37
-              83:  18(i8vec4) Load 82
-              84:  18(i8vec4) VectorShuffle 83 81 4 5 2 3
-                              Store 82 84
-              85:      6(int) Load 8(invocation)
-              86:     48(ptr) AccessChain 34(data) 57 37
-              87:  18(i8vec4) Load 86
-              88:  58(i8vec3) VectorShuffle 87 87 0 1 2
-              89:  58(i8vec3) GroupNonUniformIMul 42 Reduce 88
-              90:     48(ptr) AccessChain 34(data) 85 37
-              91:  18(i8vec4) Load 90
-              92:  18(i8vec4) VectorShuffle 91 89 4 5 6 3
-                              Store 90 92
-              93:      6(int) Load 8(invocation)
-              94:     48(ptr) AccessChain 34(data) 67 37
-              95:  18(i8vec4) Load 94
-              96:  18(i8vec4) GroupNonUniformIMul 42 Reduce 95
-              97:     48(ptr) AccessChain 34(data) 93 37
-                              Store 97 96
-              98:      6(int) Load 8(invocation)
-              99:     39(ptr) AccessChain 34(data) 37 37 38
-             100:  17(int8_t) Load 99
-             101:  17(int8_t) GroupNonUniformSMin 42 Reduce 100
-             102:     39(ptr) AccessChain 34(data) 98 37 38
-                              Store 102 101
+              74:     48(ptr) AccessChain 34(data) 73 37
+              75:  18(i8vec4) Load 74
+              76:  18(i8vec4) GroupNonUniformIAdd 42 Reduce 75
+              77:     48(ptr) AccessChain 34(data) 72 37
+                              Store 77 76
+              78:      6(int) Load 8(invocation)
+              79:     39(ptr) AccessChain 34(data) 37 37 38
+              80:  17(int8_t) Load 79
+              81:  17(int8_t) GroupNonUniformIMul 42 Reduce 80
+              82:     39(ptr) AccessChain 34(data) 78 37 38
+                              Store 82 81
+              83:      6(int) Load 8(invocation)
+              84:     48(ptr) AccessChain 34(data) 46 37
+              85:  18(i8vec4) Load 84
+              86:  47(i8vec2) VectorShuffle 85 85 0 1
+              87:  47(i8vec2) GroupNonUniformIMul 42 Reduce 86
+              88:     39(ptr) AccessChain 34(data) 83 37 38
+              89:  17(int8_t) CompositeExtract 87 0
+                              Store 88 89
+              90:     39(ptr) AccessChain 34(data) 83 37 55
+              91:  17(int8_t) CompositeExtract 87 1
+                              Store 90 91
+              92:      6(int) Load 8(invocation)
+              93:     48(ptr) AccessChain 34(data) 59 37
+              94:  18(i8vec4) Load 93
+              95:  60(i8vec3) VectorShuffle 94 94 0 1 2
+              96:  60(i8vec3) GroupNonUniformIMul 42 Reduce 95
+              97:     39(ptr) AccessChain 34(data) 92 37 38
+              98:  17(int8_t) CompositeExtract 96 0
+                              Store 97 98
+              99:     39(ptr) AccessChain 34(data) 92 37 55
+             100:  17(int8_t) CompositeExtract 96 1
+                              Store 99 100
+             101:     39(ptr) AccessChain 34(data) 92 37 69
+             102:  17(int8_t) CompositeExtract 96 2
+                              Store 101 102
              103:      6(int) Load 8(invocation)
-             104:     48(ptr) AccessChain 34(data) 46 37
+             104:     48(ptr) AccessChain 34(data) 73 37
              105:  18(i8vec4) Load 104
-             106:  47(i8vec2) VectorShuffle 105 105 0 1
-             107:  47(i8vec2) GroupNonUniformSMin 42 Reduce 106
-             108:     48(ptr) AccessChain 34(data) 103 37
-             109:  18(i8vec4) Load 108
-             110:  18(i8vec4) VectorShuffle 109 107 4 5 2 3
-                              Store 108 110
-             111:      6(int) Load 8(invocation)
-             112:     48(ptr) AccessChain 34(data) 57 37
-             113:  18(i8vec4) Load 112
-             114:  58(i8vec3) VectorShuffle 113 113 0 1 2
-             115:  58(i8vec3) GroupNonUniformSMin 42 Reduce 114
-             116:     48(ptr) AccessChain 34(data) 111 37
-             117:  18(i8vec4) Load 116
-             118:  18(i8vec4) VectorShuffle 117 115 4 5 6 3
-                              Store 116 118
-             119:      6(int) Load 8(invocation)
-             120:     48(ptr) AccessChain 34(data) 67 37
-             121:  18(i8vec4) Load 120
-             122:  18(i8vec4) GroupNonUniformSMin 42 Reduce 121
-             123:     48(ptr) AccessChain 34(data) 119 37
-                              Store 123 122
-             124:      6(int) Load 8(invocation)
-             125:     39(ptr) AccessChain 34(data) 37 37 38
-             126:  17(int8_t) Load 125
-             127:  17(int8_t) GroupNonUniformSMax 42 Reduce 126
-             128:     39(ptr) AccessChain 34(data) 124 37 38
-                              Store 128 127
-             129:      6(int) Load 8(invocation)
-             130:     48(ptr) AccessChain 34(data) 46 37
-             131:  18(i8vec4) Load 130
-             132:  47(i8vec2) VectorShuffle 131 131 0 1
-             133:  47(i8vec2) GroupNonUniformSMax 42 Reduce 132
-             134:     48(ptr) AccessChain 34(data) 129 37
+             106:  18(i8vec4) GroupNonUniformIMul 42 Reduce 105
+             107:     48(ptr) AccessChain 34(data) 103 37
+                              Store 107 106
+             108:      6(int) Load 8(invocation)
+             109:     39(ptr) AccessChain 34(data) 37 37 38
+             110:  17(int8_t) Load 109
+             111:  17(int8_t) GroupNonUniformSMin 42 Reduce 110
+             112:     39(ptr) AccessChain 34(data) 108 37 38
+                              Store 112 111
+             113:      6(int) Load 8(invocation)
+             114:     48(ptr) AccessChain 34(data) 46 37
+             115:  18(i8vec4) Load 114
+             116:  47(i8vec2) VectorShuffle 115 115 0 1
+             117:  47(i8vec2) GroupNonUniformSMin 42 Reduce 116
+             118:     39(ptr) AccessChain 34(data) 113 37 38
+             119:  17(int8_t) CompositeExtract 117 0
+                              Store 118 119
+             120:     39(ptr) AccessChain 34(data) 113 37 55
+             121:  17(int8_t) CompositeExtract 117 1
+                              Store 120 121
+             122:      6(int) Load 8(invocation)
+             123:     48(ptr) AccessChain 34(data) 59 37
+             124:  18(i8vec4) Load 123
+             125:  60(i8vec3) VectorShuffle 124 124 0 1 2
+             126:  60(i8vec3) GroupNonUniformSMin 42 Reduce 125
+             127:     39(ptr) AccessChain 34(data) 122 37 38
+             128:  17(int8_t) CompositeExtract 126 0
+                              Store 127 128
+             129:     39(ptr) AccessChain 34(data) 122 37 55
+             130:  17(int8_t) CompositeExtract 126 1
+                              Store 129 130
+             131:     39(ptr) AccessChain 34(data) 122 37 69
+             132:  17(int8_t) CompositeExtract 126 2
+                              Store 131 132
+             133:      6(int) Load 8(invocation)
+             134:     48(ptr) AccessChain 34(data) 73 37
              135:  18(i8vec4) Load 134
-             136:  18(i8vec4) VectorShuffle 135 133 4 5 2 3
-                              Store 134 136
-             137:      6(int) Load 8(invocation)
-             138:     48(ptr) AccessChain 34(data) 57 37
-             139:  18(i8vec4) Load 138
-             140:  58(i8vec3) VectorShuffle 139 139 0 1 2
-             141:  58(i8vec3) GroupNonUniformSMax 42 Reduce 140
-             142:     48(ptr) AccessChain 34(data) 137 37
-             143:  18(i8vec4) Load 142
-             144:  18(i8vec4) VectorShuffle 143 141 4 5 6 3
-                              Store 142 144
-             145:      6(int) Load 8(invocation)
-             146:     48(ptr) AccessChain 34(data) 67 37
-             147:  18(i8vec4) Load 146
-             148:  18(i8vec4) GroupNonUniformSMax 42 Reduce 147
-             149:     48(ptr) AccessChain 34(data) 145 37
-                              Store 149 148
-             150:      6(int) Load 8(invocation)
-             151:     39(ptr) AccessChain 34(data) 37 37 38
-             152:  17(int8_t) Load 151
-             153:  17(int8_t) GroupNonUniformBitwiseAnd 42 Reduce 152
-             154:     39(ptr) AccessChain 34(data) 150 37 38
-                              Store 154 153
-             155:      6(int) Load 8(invocation)
-             156:     48(ptr) AccessChain 34(data) 46 37
-             157:  18(i8vec4) Load 156
-             158:  47(i8vec2) VectorShuffle 157 157 0 1
-             159:  47(i8vec2) GroupNonUniformBitwiseAnd 42 Reduce 158
-             160:     48(ptr) AccessChain 34(data) 155 37
-             161:  18(i8vec4) Load 160
-             162:  18(i8vec4) VectorShuffle 161 159 4 5 2 3
-                              Store 160 162
+             136:  18(i8vec4) GroupNonUniformSMin 42 Reduce 135
+             137:     48(ptr) AccessChain 34(data) 133 37
+                              Store 137 136
+             138:      6(int) Load 8(invocation)
+             139:     39(ptr) AccessChain 34(data) 37 37 38
+             140:  17(int8_t) Load 139
+             141:  17(int8_t) GroupNonUniformSMax 42 Reduce 140
+             142:     39(ptr) AccessChain 34(data) 138 37 38
+                              Store 142 141
+             143:      6(int) Load 8(invocation)
+             144:     48(ptr) AccessChain 34(data) 46 37
+             145:  18(i8vec4) Load 144
+             146:  47(i8vec2) VectorShuffle 145 145 0 1
+             147:  47(i8vec2) GroupNonUniformSMax 42 Reduce 146
+             148:     39(ptr) AccessChain 34(data) 143 37 38
+             149:  17(int8_t) CompositeExtract 147 0
+                              Store 148 149
+             150:     39(ptr) AccessChain 34(data) 143 37 55
+             151:  17(int8_t) CompositeExtract 147 1
+                              Store 150 151
+             152:      6(int) Load 8(invocation)
+             153:     48(ptr) AccessChain 34(data) 59 37
+             154:  18(i8vec4) Load 153
+             155:  60(i8vec3) VectorShuffle 154 154 0 1 2
+             156:  60(i8vec3) GroupNonUniformSMax 42 Reduce 155
+             157:     39(ptr) AccessChain 34(data) 152 37 38
+             158:  17(int8_t) CompositeExtract 156 0
+                              Store 157 158
+             159:     39(ptr) AccessChain 34(data) 152 37 55
+             160:  17(int8_t) CompositeExtract 156 1
+                              Store 159 160
+             161:     39(ptr) AccessChain 34(data) 152 37 69
+             162:  17(int8_t) CompositeExtract 156 2
+                              Store 161 162
              163:      6(int) Load 8(invocation)
-             164:     48(ptr) AccessChain 34(data) 57 37
+             164:     48(ptr) AccessChain 34(data) 73 37
              165:  18(i8vec4) Load 164
-             166:  58(i8vec3) VectorShuffle 165 165 0 1 2
-             167:  58(i8vec3) GroupNonUniformBitwiseAnd 42 Reduce 166
-             168:     48(ptr) AccessChain 34(data) 163 37
-             169:  18(i8vec4) Load 168
-             170:  18(i8vec4) VectorShuffle 169 167 4 5 6 3
-                              Store 168 170
-             171:      6(int) Load 8(invocation)
-             172:     48(ptr) AccessChain 34(data) 67 37
-             173:  18(i8vec4) Load 172
-             174:  18(i8vec4) GroupNonUniformBitwiseAnd 42 Reduce 173
-             175:     48(ptr) AccessChain 34(data) 171 37
-                              Store 175 174
-             176:      6(int) Load 8(invocation)
-             177:     39(ptr) AccessChain 34(data) 37 37 38
-             178:  17(int8_t) Load 177
-             179:  17(int8_t) GroupNonUniformBitwiseOr 42 Reduce 178
-             180:     39(ptr) AccessChain 34(data) 176 37 38
-                              Store 180 179
-             181:      6(int) Load 8(invocation)
-             182:     48(ptr) AccessChain 34(data) 46 37
-             183:  18(i8vec4) Load 182
-             184:  47(i8vec2) VectorShuffle 183 183 0 1
-             185:  47(i8vec2) GroupNonUniformBitwiseOr 42 Reduce 184
-             186:     48(ptr) AccessChain 34(data) 181 37
-             187:  18(i8vec4) Load 186
-             188:  18(i8vec4) VectorShuffle 187 185 4 5 2 3
-                              Store 186 188
-             189:      6(int) Load 8(invocation)
-             190:     48(ptr) AccessChain 34(data) 57 37
-             191:  18(i8vec4) Load 190
-             192:  58(i8vec3) VectorShuffle 191 191 0 1 2
-             193:  58(i8vec3) GroupNonUniformBitwiseOr 42 Reduce 192
-             194:     48(ptr) AccessChain 34(data) 189 37
+             166:  18(i8vec4) GroupNonUniformSMax 42 Reduce 165
+             167:     48(ptr) AccessChain 34(data) 163 37
+                              Store 167 166
+             168:      6(int) Load 8(invocation)
+             169:     39(ptr) AccessChain 34(data) 37 37 38
+             170:  17(int8_t) Load 169
+             171:  17(int8_t) GroupNonUniformBitwiseAnd 42 Reduce 170
+             172:     39(ptr) AccessChain 34(data) 168 37 38
+                              Store 172 171
+             173:      6(int) Load 8(invocation)
+             174:     48(ptr) AccessChain 34(data) 46 37
+             175:  18(i8vec4) Load 174
+             176:  47(i8vec2) VectorShuffle 175 175 0 1
+             177:  47(i8vec2) GroupNonUniformBitwiseAnd 42 Reduce 176
+             178:     39(ptr) AccessChain 34(data) 173 37 38
+             179:  17(int8_t) CompositeExtract 177 0
+                              Store 178 179
+             180:     39(ptr) AccessChain 34(data) 173 37 55
+             181:  17(int8_t) CompositeExtract 177 1
+                              Store 180 181
+             182:      6(int) Load 8(invocation)
+             183:     48(ptr) AccessChain 34(data) 59 37
+             184:  18(i8vec4) Load 183
+             185:  60(i8vec3) VectorShuffle 184 184 0 1 2
+             186:  60(i8vec3) GroupNonUniformBitwiseAnd 42 Reduce 185
+             187:     39(ptr) AccessChain 34(data) 182 37 38
+             188:  17(int8_t) CompositeExtract 186 0
+                              Store 187 188
+             189:     39(ptr) AccessChain 34(data) 182 37 55
+             190:  17(int8_t) CompositeExtract 186 1
+                              Store 189 190
+             191:     39(ptr) AccessChain 34(data) 182 37 69
+             192:  17(int8_t) CompositeExtract 186 2
+                              Store 191 192
+             193:      6(int) Load 8(invocation)
+             194:     48(ptr) AccessChain 34(data) 73 37
              195:  18(i8vec4) Load 194
-             196:  18(i8vec4) VectorShuffle 195 193 4 5 6 3
-                              Store 194 196
-             197:      6(int) Load 8(invocation)
-             198:     48(ptr) AccessChain 34(data) 67 37
-             199:  18(i8vec4) Load 198
-             200:  18(i8vec4) GroupNonUniformBitwiseOr 42 Reduce 199
-             201:     48(ptr) AccessChain 34(data) 197 37
-                              Store 201 200
-             202:      6(int) Load 8(invocation)
-             203:     39(ptr) AccessChain 34(data) 37 37 38
-             204:  17(int8_t) Load 203
-             205:  17(int8_t) GroupNonUniformBitwiseXor 42 Reduce 204
-             206:     39(ptr) AccessChain 34(data) 202 37 38
-                              Store 206 205
-             207:      6(int) Load 8(invocation)
-             208:     48(ptr) AccessChain 34(data) 46 37
-             209:  18(i8vec4) Load 208
-             210:  47(i8vec2) VectorShuffle 209 209 0 1
-             211:  47(i8vec2) GroupNonUniformBitwiseXor 42 Reduce 210
-             212:     48(ptr) AccessChain 34(data) 207 37
-             213:  18(i8vec4) Load 212
-             214:  18(i8vec4) VectorShuffle 213 211 4 5 2 3
-                              Store 212 214
-             215:      6(int) Load 8(invocation)
-             216:     48(ptr) AccessChain 34(data) 57 37
-             217:  18(i8vec4) Load 216
-             218:  58(i8vec3) VectorShuffle 217 217 0 1 2
-             219:  58(i8vec3) GroupNonUniformBitwiseXor 42 Reduce 218
-             220:     48(ptr) AccessChain 34(data) 215 37
-             221:  18(i8vec4) Load 220
-             222:  18(i8vec4) VectorShuffle 221 219 4 5 6 3
-                              Store 220 222
+             196:  18(i8vec4) GroupNonUniformBitwiseAnd 42 Reduce 195
+             197:     48(ptr) AccessChain 34(data) 193 37
+                              Store 197 196
+             198:      6(int) Load 8(invocation)
+             199:     39(ptr) AccessChain 34(data) 37 37 38
+             200:  17(int8_t) Load 199
+             201:  17(int8_t) GroupNonUniformBitwiseOr 42 Reduce 200
+             202:     39(ptr) AccessChain 34(data) 198 37 38
+                              Store 202 201
+             203:      6(int) Load 8(invocation)
+             204:     48(ptr) AccessChain 34(data) 46 37
+             205:  18(i8vec4) Load 204
+             206:  47(i8vec2) VectorShuffle 205 205 0 1
+             207:  47(i8vec2) GroupNonUniformBitwiseOr 42 Reduce 206
+             208:     39(ptr) AccessChain 34(data) 203 37 38
+             209:  17(int8_t) CompositeExtract 207 0
+                              Store 208 209
+             210:     39(ptr) AccessChain 34(data) 203 37 55
+             211:  17(int8_t) CompositeExtract 207 1
+                              Store 210 211
+             212:      6(int) Load 8(invocation)
+             213:     48(ptr) AccessChain 34(data) 59 37
+             214:  18(i8vec4) Load 213
+             215:  60(i8vec3) VectorShuffle 214 214 0 1 2
+             216:  60(i8vec3) GroupNonUniformBitwiseOr 42 Reduce 215
+             217:     39(ptr) AccessChain 34(data) 212 37 38
+             218:  17(int8_t) CompositeExtract 216 0
+                              Store 217 218
+             219:     39(ptr) AccessChain 34(data) 212 37 55
+             220:  17(int8_t) CompositeExtract 216 1
+                              Store 219 220
+             221:     39(ptr) AccessChain 34(data) 212 37 69
+             222:  17(int8_t) CompositeExtract 216 2
+                              Store 221 222
              223:      6(int) Load 8(invocation)
-             224:     48(ptr) AccessChain 34(data) 67 37
+             224:     48(ptr) AccessChain 34(data) 73 37
              225:  18(i8vec4) Load 224
-             226:  18(i8vec4) GroupNonUniformBitwiseXor 42 Reduce 225
+             226:  18(i8vec4) GroupNonUniformBitwiseOr 42 Reduce 225
              227:     48(ptr) AccessChain 34(data) 223 37
                               Store 227 226
              228:      6(int) Load 8(invocation)
              229:     39(ptr) AccessChain 34(data) 37 37 38
              230:  17(int8_t) Load 229
-             231:  17(int8_t) GroupNonUniformIAdd 42 InclusiveScan 230
+             231:  17(int8_t) GroupNonUniformBitwiseXor 42 Reduce 230
              232:     39(ptr) AccessChain 34(data) 228 37 38
                               Store 232 231
              233:      6(int) Load 8(invocation)
              234:     48(ptr) AccessChain 34(data) 46 37
              235:  18(i8vec4) Load 234
              236:  47(i8vec2) VectorShuffle 235 235 0 1
-             237:  47(i8vec2) GroupNonUniformIAdd 42 InclusiveScan 236
-             238:     48(ptr) AccessChain 34(data) 233 37
-             239:  18(i8vec4) Load 238
-             240:  18(i8vec4) VectorShuffle 239 237 4 5 2 3
-                              Store 238 240
-             241:      6(int) Load 8(invocation)
-             242:     48(ptr) AccessChain 34(data) 57 37
-             243:  18(i8vec4) Load 242
-             244:  58(i8vec3) VectorShuffle 243 243 0 1 2
-             245:  58(i8vec3) GroupNonUniformIAdd 42 InclusiveScan 244
-             246:     48(ptr) AccessChain 34(data) 241 37
-             247:  18(i8vec4) Load 246
-             248:  18(i8vec4) VectorShuffle 247 245 4 5 6 3
-                              Store 246 248
-             249:      6(int) Load 8(invocation)
-             250:     48(ptr) AccessChain 34(data) 67 37
-             251:  18(i8vec4) Load 250
-             252:  18(i8vec4) GroupNonUniformIAdd 42 InclusiveScan 251
-             253:     48(ptr) AccessChain 34(data) 249 37
-                              Store 253 252
-             254:      6(int) Load 8(invocation)
-             255:     39(ptr) AccessChain 34(data) 37 37 38
-             256:  17(int8_t) Load 255
-             257:  17(int8_t) GroupNonUniformIMul 42 InclusiveScan 256
-             258:     39(ptr) AccessChain 34(data) 254 37 38
-                              Store 258 257
-             259:      6(int) Load 8(invocation)
-             260:     48(ptr) AccessChain 34(data) 46 37
-             261:  18(i8vec4) Load 260
-             262:  47(i8vec2) VectorShuffle 261 261 0 1
-             263:  47(i8vec2) GroupNonUniformIMul 42 InclusiveScan 262
-             264:     48(ptr) AccessChain 34(data) 259 37
+             237:  47(i8vec2) GroupNonUniformBitwiseXor 42 Reduce 236
+             238:     39(ptr) AccessChain 34(data) 233 37 38
+             239:  17(int8_t) CompositeExtract 237 0
+                              Store 238 239
+             240:     39(ptr) AccessChain 34(data) 233 37 55
+             241:  17(int8_t) CompositeExtract 237 1
+                              Store 240 241
+             242:      6(int) Load 8(invocation)
+             243:     48(ptr) AccessChain 34(data) 59 37
+             244:  18(i8vec4) Load 243
+             245:  60(i8vec3) VectorShuffle 244 244 0 1 2
+             246:  60(i8vec3) GroupNonUniformBitwiseXor 42 Reduce 245
+             247:     39(ptr) AccessChain 34(data) 242 37 38
+             248:  17(int8_t) CompositeExtract 246 0
+                              Store 247 248
+             249:     39(ptr) AccessChain 34(data) 242 37 55
+             250:  17(int8_t) CompositeExtract 246 1
+                              Store 249 250
+             251:     39(ptr) AccessChain 34(data) 242 37 69
+             252:  17(int8_t) CompositeExtract 246 2
+                              Store 251 252
+             253:      6(int) Load 8(invocation)
+             254:     48(ptr) AccessChain 34(data) 73 37
+             255:  18(i8vec4) Load 254
+             256:  18(i8vec4) GroupNonUniformBitwiseXor 42 Reduce 255
+             257:     48(ptr) AccessChain 34(data) 253 37
+                              Store 257 256
+             258:      6(int) Load 8(invocation)
+             259:     39(ptr) AccessChain 34(data) 37 37 38
+             260:  17(int8_t) Load 259
+             261:  17(int8_t) GroupNonUniformIAdd 42 InclusiveScan 260
+             262:     39(ptr) AccessChain 34(data) 258 37 38
+                              Store 262 261
+             263:      6(int) Load 8(invocation)
+             264:     48(ptr) AccessChain 34(data) 46 37
              265:  18(i8vec4) Load 264
-             266:  18(i8vec4) VectorShuffle 265 263 4 5 2 3
-                              Store 264 266
-             267:      6(int) Load 8(invocation)
-             268:     48(ptr) AccessChain 34(data) 57 37
-             269:  18(i8vec4) Load 268
-             270:  58(i8vec3) VectorShuffle 269 269 0 1 2
-             271:  58(i8vec3) GroupNonUniformIMul 42 InclusiveScan 270
-             272:     48(ptr) AccessChain 34(data) 267 37
-             273:  18(i8vec4) Load 272
-             274:  18(i8vec4) VectorShuffle 273 271 4 5 6 3
-                              Store 272 274
-             275:      6(int) Load 8(invocation)
-             276:     48(ptr) AccessChain 34(data) 67 37
-             277:  18(i8vec4) Load 276
-             278:  18(i8vec4) GroupNonUniformIMul 42 InclusiveScan 277
-             279:     48(ptr) AccessChain 34(data) 275 37
-                              Store 279 278
-             280:      6(int) Load 8(invocation)
-             281:     39(ptr) AccessChain 34(data) 37 37 38
-             282:  17(int8_t) Load 281
-             283:  17(int8_t) GroupNonUniformSMin 42 InclusiveScan 282
-             284:     39(ptr) AccessChain 34(data) 280 37 38
-                              Store 284 283
-             285:      6(int) Load 8(invocation)
-             286:     48(ptr) AccessChain 34(data) 46 37
-             287:  18(i8vec4) Load 286
-             288:  47(i8vec2) VectorShuffle 287 287 0 1
-             289:  47(i8vec2) GroupNonUniformSMin 42 InclusiveScan 288
-             290:     48(ptr) AccessChain 34(data) 285 37
-             291:  18(i8vec4) Load 290
-             292:  18(i8vec4) VectorShuffle 291 289 4 5 2 3
-                              Store 290 292
+             266:  47(i8vec2) VectorShuffle 265 265 0 1
+             267:  47(i8vec2) GroupNonUniformIAdd 42 InclusiveScan 266
+             268:     39(ptr) AccessChain 34(data) 263 37 38
+             269:  17(int8_t) CompositeExtract 267 0
+                              Store 268 269
+             270:     39(ptr) AccessChain 34(data) 263 37 55
+             271:  17(int8_t) CompositeExtract 267 1
+                              Store 270 271
+             272:      6(int) Load 8(invocation)
+             273:     48(ptr) AccessChain 34(data) 59 37
+             274:  18(i8vec4) Load 273
+             275:  60(i8vec3) VectorShuffle 274 274 0 1 2
+             276:  60(i8vec3) GroupNonUniformIAdd 42 InclusiveScan 275
+             277:     39(ptr) AccessChain 34(data) 272 37 38
+             278:  17(int8_t) CompositeExtract 276 0
+                              Store 277 278
+             279:     39(ptr) AccessChain 34(data) 272 37 55
+             280:  17(int8_t) CompositeExtract 276 1
+                              Store 279 280
+             281:     39(ptr) AccessChain 34(data) 272 37 69
+             282:  17(int8_t) CompositeExtract 276 2
+                              Store 281 282
+             283:      6(int) Load 8(invocation)
+             284:     48(ptr) AccessChain 34(data) 73 37
+             285:  18(i8vec4) Load 284
+             286:  18(i8vec4) GroupNonUniformIAdd 42 InclusiveScan 285
+             287:     48(ptr) AccessChain 34(data) 283 37
+                              Store 287 286
+             288:      6(int) Load 8(invocation)
+             289:     39(ptr) AccessChain 34(data) 37 37 38
+             290:  17(int8_t) Load 289
+             291:  17(int8_t) GroupNonUniformIMul 42 InclusiveScan 290
+             292:     39(ptr) AccessChain 34(data) 288 37 38
+                              Store 292 291
              293:      6(int) Load 8(invocation)
-             294:     48(ptr) AccessChain 34(data) 57 37
+             294:     48(ptr) AccessChain 34(data) 46 37
              295:  18(i8vec4) Load 294
-             296:  58(i8vec3) VectorShuffle 295 295 0 1 2
-             297:  58(i8vec3) GroupNonUniformSMin 42 InclusiveScan 296
-             298:     48(ptr) AccessChain 34(data) 293 37
-             299:  18(i8vec4) Load 298
-             300:  18(i8vec4) VectorShuffle 299 297 4 5 6 3
-                              Store 298 300
-             301:      6(int) Load 8(invocation)
-             302:     48(ptr) AccessChain 34(data) 67 37
-             303:  18(i8vec4) Load 302
-             304:  18(i8vec4) GroupNonUniformSMin 42 InclusiveScan 303
-             305:     48(ptr) AccessChain 34(data) 301 37
-                              Store 305 304
-             306:      6(int) Load 8(invocation)
-             307:     39(ptr) AccessChain 34(data) 37 37 38
-             308:  17(int8_t) Load 307
-             309:  17(int8_t) GroupNonUniformSMax 42 InclusiveScan 308
-             310:     39(ptr) AccessChain 34(data) 306 37 38
-                              Store 310 309
-             311:      6(int) Load 8(invocation)
-             312:     48(ptr) AccessChain 34(data) 46 37
-             313:  18(i8vec4) Load 312
-             314:  47(i8vec2) VectorShuffle 313 313 0 1
-             315:  47(i8vec2) GroupNonUniformSMax 42 InclusiveScan 314
-             316:     48(ptr) AccessChain 34(data) 311 37
-             317:  18(i8vec4) Load 316
-             318:  18(i8vec4) VectorShuffle 317 315 4 5 2 3
-                              Store 316 318
-             319:      6(int) Load 8(invocation)
-             320:     48(ptr) AccessChain 34(data) 57 37
-             321:  18(i8vec4) Load 320
-             322:  58(i8vec3) VectorShuffle 321 321 0 1 2
-             323:  58(i8vec3) GroupNonUniformSMax 42 InclusiveScan 322
-             324:     48(ptr) AccessChain 34(data) 319 37
+             296:  47(i8vec2) VectorShuffle 295 295 0 1
+             297:  47(i8vec2) GroupNonUniformIMul 42 InclusiveScan 296
+             298:     39(ptr) AccessChain 34(data) 293 37 38
+             299:  17(int8_t) CompositeExtract 297 0
+                              Store 298 299
+             300:     39(ptr) AccessChain 34(data) 293 37 55
+             301:  17(int8_t) CompositeExtract 297 1
+                              Store 300 301
+             302:      6(int) Load 8(invocation)
+             303:     48(ptr) AccessChain 34(data) 59 37
+             304:  18(i8vec4) Load 303
+             305:  60(i8vec3) VectorShuffle 304 304 0 1 2
+             306:  60(i8vec3) GroupNonUniformIMul 42 InclusiveScan 305
+             307:     39(ptr) AccessChain 34(data) 302 37 38
+             308:  17(int8_t) CompositeExtract 306 0
+                              Store 307 308
+             309:     39(ptr) AccessChain 34(data) 302 37 55
+             310:  17(int8_t) CompositeExtract 306 1
+                              Store 309 310
+             311:     39(ptr) AccessChain 34(data) 302 37 69
+             312:  17(int8_t) CompositeExtract 306 2
+                              Store 311 312
+             313:      6(int) Load 8(invocation)
+             314:     48(ptr) AccessChain 34(data) 73 37
+             315:  18(i8vec4) Load 314
+             316:  18(i8vec4) GroupNonUniformIMul 42 InclusiveScan 315
+             317:     48(ptr) AccessChain 34(data) 313 37
+                              Store 317 316
+             318:      6(int) Load 8(invocation)
+             319:     39(ptr) AccessChain 34(data) 37 37 38
+             320:  17(int8_t) Load 319
+             321:  17(int8_t) GroupNonUniformSMin 42 InclusiveScan 320
+             322:     39(ptr) AccessChain 34(data) 318 37 38
+                              Store 322 321
+             323:      6(int) Load 8(invocation)
+             324:     48(ptr) AccessChain 34(data) 46 37
              325:  18(i8vec4) Load 324
-             326:  18(i8vec4) VectorShuffle 325 323 4 5 6 3
-                              Store 324 326
-             327:      6(int) Load 8(invocation)
-             328:     48(ptr) AccessChain 34(data) 67 37
-             329:  18(i8vec4) Load 328
-             330:  18(i8vec4) GroupNonUniformSMax 42 InclusiveScan 329
-             331:     48(ptr) AccessChain 34(data) 327 37
-                              Store 331 330
+             326:  47(i8vec2) VectorShuffle 325 325 0 1
+             327:  47(i8vec2) GroupNonUniformSMin 42 InclusiveScan 326
+             328:     39(ptr) AccessChain 34(data) 323 37 38
+             329:  17(int8_t) CompositeExtract 327 0
+                              Store 328 329
+             330:     39(ptr) AccessChain 34(data) 323 37 55
+             331:  17(int8_t) CompositeExtract 327 1
+                              Store 330 331
              332:      6(int) Load 8(invocation)
-             333:     39(ptr) AccessChain 34(data) 37 37 38
-             334:  17(int8_t) Load 333
-             335:  17(int8_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 334
-             336:     39(ptr) AccessChain 34(data) 332 37 38
-                              Store 336 335
-             337:      6(int) Load 8(invocation)
-             338:     48(ptr) AccessChain 34(data) 46 37
-             339:  18(i8vec4) Load 338
-             340:  47(i8vec2) VectorShuffle 339 339 0 1
-             341:  47(i8vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 340
-             342:     48(ptr) AccessChain 34(data) 337 37
-             343:  18(i8vec4) Load 342
-             344:  18(i8vec4) VectorShuffle 343 341 4 5 2 3
-                              Store 342 344
-             345:      6(int) Load 8(invocation)
-             346:     48(ptr) AccessChain 34(data) 57 37
-             347:  18(i8vec4) Load 346
-             348:  58(i8vec3) VectorShuffle 347 347 0 1 2
-             349:  58(i8vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 348
-             350:     48(ptr) AccessChain 34(data) 345 37
-             351:  18(i8vec4) Load 350
-             352:  18(i8vec4) VectorShuffle 351 349 4 5 6 3
-                              Store 350 352
+             333:     48(ptr) AccessChain 34(data) 59 37
+             334:  18(i8vec4) Load 333
+             335:  60(i8vec3) VectorShuffle 334 334 0 1 2
+             336:  60(i8vec3) GroupNonUniformSMin 42 InclusiveScan 335
+             337:     39(ptr) AccessChain 34(data) 332 37 38
+             338:  17(int8_t) CompositeExtract 336 0
+                              Store 337 338
+             339:     39(ptr) AccessChain 34(data) 332 37 55
+             340:  17(int8_t) CompositeExtract 336 1
+                              Store 339 340
+             341:     39(ptr) AccessChain 34(data) 332 37 69
+             342:  17(int8_t) CompositeExtract 336 2
+                              Store 341 342
+             343:      6(int) Load 8(invocation)
+             344:     48(ptr) AccessChain 34(data) 73 37
+             345:  18(i8vec4) Load 344
+             346:  18(i8vec4) GroupNonUniformSMin 42 InclusiveScan 345
+             347:     48(ptr) AccessChain 34(data) 343 37
+                              Store 347 346
+             348:      6(int) Load 8(invocation)
+             349:     39(ptr) AccessChain 34(data) 37 37 38
+             350:  17(int8_t) Load 349
+             351:  17(int8_t) GroupNonUniformSMax 42 InclusiveScan 350
+             352:     39(ptr) AccessChain 34(data) 348 37 38
+                              Store 352 351
              353:      6(int) Load 8(invocation)
-             354:     48(ptr) AccessChain 34(data) 67 37
+             354:     48(ptr) AccessChain 34(data) 46 37
              355:  18(i8vec4) Load 354
-             356:  18(i8vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 355
-             357:     48(ptr) AccessChain 34(data) 353 37
-                              Store 357 356
-             358:      6(int) Load 8(invocation)
-             359:     39(ptr) AccessChain 34(data) 37 37 38
-             360:  17(int8_t) Load 359
-             361:  17(int8_t) GroupNonUniformBitwiseOr 42 InclusiveScan 360
-             362:     39(ptr) AccessChain 34(data) 358 37 38
-                              Store 362 361
-             363:      6(int) Load 8(invocation)
-             364:     48(ptr) AccessChain 34(data) 46 37
-             365:  18(i8vec4) Load 364
-             366:  47(i8vec2) VectorShuffle 365 365 0 1
-             367:  47(i8vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 366
-             368:     48(ptr) AccessChain 34(data) 363 37
-             369:  18(i8vec4) Load 368
-             370:  18(i8vec4) VectorShuffle 369 367 4 5 2 3
-                              Store 368 370
-             371:      6(int) Load 8(invocation)
-             372:     48(ptr) AccessChain 34(data) 57 37
-             373:  18(i8vec4) Load 372
-             374:  58(i8vec3) VectorShuffle 373 373 0 1 2
-             375:  58(i8vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 374
-             376:     48(ptr) AccessChain 34(data) 371 37
-             377:  18(i8vec4) Load 376
-             378:  18(i8vec4) VectorShuffle 377 375 4 5 6 3
-                              Store 376 378
-             379:      6(int) Load 8(invocation)
-             380:     48(ptr) AccessChain 34(data) 67 37
-             381:  18(i8vec4) Load 380
-             382:  18(i8vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 381
-             383:     48(ptr) AccessChain 34(data) 379 37
-                              Store 383 382
-             384:      6(int) Load 8(invocation)
-             385:     39(ptr) AccessChain 34(data) 37 37 38
-             386:  17(int8_t) Load 385
-             387:  17(int8_t) GroupNonUniformBitwiseXor 42 InclusiveScan 386
-             388:     39(ptr) AccessChain 34(data) 384 37 38
-                              Store 388 387
-             389:      6(int) Load 8(invocation)
-             390:     48(ptr) AccessChain 34(data) 46 37
-             391:  18(i8vec4) Load 390
-             392:  47(i8vec2) VectorShuffle 391 391 0 1
-             393:  47(i8vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 392
-             394:     48(ptr) AccessChain 34(data) 389 37
-             395:  18(i8vec4) Load 394
-             396:  18(i8vec4) VectorShuffle 395 393 4 5 2 3
-                              Store 394 396
-             397:      6(int) Load 8(invocation)
-             398:     48(ptr) AccessChain 34(data) 57 37
-             399:  18(i8vec4) Load 398
-             400:  58(i8vec3) VectorShuffle 399 399 0 1 2
-             401:  58(i8vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 400
-             402:     48(ptr) AccessChain 34(data) 397 37
-             403:  18(i8vec4) Load 402
-             404:  18(i8vec4) VectorShuffle 403 401 4 5 6 3
-                              Store 402 404
-             405:      6(int) Load 8(invocation)
-             406:     48(ptr) AccessChain 34(data) 67 37
-             407:  18(i8vec4) Load 406
-             408:  18(i8vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 407
-             409:     48(ptr) AccessChain 34(data) 405 37
-                              Store 409 408
-             410:      6(int) Load 8(invocation)
-             411:     39(ptr) AccessChain 34(data) 37 37 38
-             412:  17(int8_t) Load 411
-             413:  17(int8_t) GroupNonUniformIAdd 42 ExclusiveScan 412
-             414:     39(ptr) AccessChain 34(data) 410 37 38
-                              Store 414 413
-             415:      6(int) Load 8(invocation)
-             416:     48(ptr) AccessChain 34(data) 46 37
-             417:  18(i8vec4) Load 416
-             418:  47(i8vec2) VectorShuffle 417 417 0 1
-             419:  47(i8vec2) GroupNonUniformIAdd 42 ExclusiveScan 418
-             420:     48(ptr) AccessChain 34(data) 415 37
-             421:  18(i8vec4) Load 420
-             422:  18(i8vec4) VectorShuffle 421 419 4 5 2 3
-                              Store 420 422
-             423:      6(int) Load 8(invocation)
-             424:     48(ptr) AccessChain 34(data) 57 37
-             425:  18(i8vec4) Load 424
-             426:  58(i8vec3) VectorShuffle 425 425 0 1 2
-             427:  58(i8vec3) GroupNonUniformIAdd 42 ExclusiveScan 426
-             428:     48(ptr) AccessChain 34(data) 423 37
-             429:  18(i8vec4) Load 428
-             430:  18(i8vec4) VectorShuffle 429 427 4 5 6 3
-                              Store 428 430
-             431:      6(int) Load 8(invocation)
-             432:     48(ptr) AccessChain 34(data) 67 37
-             433:  18(i8vec4) Load 432
-             434:  18(i8vec4) GroupNonUniformIAdd 42 ExclusiveScan 433
-             435:     48(ptr) AccessChain 34(data) 431 37
-                              Store 435 434
-             436:      6(int) Load 8(invocation)
-             437:     39(ptr) AccessChain 34(data) 37 37 38
-             438:  17(int8_t) Load 437
-             439:  17(int8_t) GroupNonUniformIMul 42 ExclusiveScan 438
-             440:     39(ptr) AccessChain 34(data) 436 37 38
-                              Store 440 439
-             441:      6(int) Load 8(invocation)
-             442:     48(ptr) AccessChain 34(data) 46 37
-             443:  18(i8vec4) Load 442
-             444:  47(i8vec2) VectorShuffle 443 443 0 1
-             445:  47(i8vec2) GroupNonUniformIMul 42 ExclusiveScan 444
-             446:     48(ptr) AccessChain 34(data) 441 37
-             447:  18(i8vec4) Load 446
-             448:  18(i8vec4) VectorShuffle 447 445 4 5 2 3
-                              Store 446 448
-             449:      6(int) Load 8(invocation)
-             450:     48(ptr) AccessChain 34(data) 57 37
-             451:  18(i8vec4) Load 450
-             452:  58(i8vec3) VectorShuffle 451 451 0 1 2
-             453:  58(i8vec3) GroupNonUniformIMul 42 ExclusiveScan 452
-             454:     48(ptr) AccessChain 34(data) 449 37
-             455:  18(i8vec4) Load 454
-             456:  18(i8vec4) VectorShuffle 455 453 4 5 6 3
-                              Store 454 456
-             457:      6(int) Load 8(invocation)
-             458:     48(ptr) AccessChain 34(data) 67 37
-             459:  18(i8vec4) Load 458
-             460:  18(i8vec4) GroupNonUniformIMul 42 ExclusiveScan 459
-             461:     48(ptr) AccessChain 34(data) 457 37
-                              Store 461 460
-             462:      6(int) Load 8(invocation)
-             463:     39(ptr) AccessChain 34(data) 37 37 38
-             464:  17(int8_t) Load 463
-             465:  17(int8_t) GroupNonUniformSMin 42 ExclusiveScan 464
-             466:     39(ptr) AccessChain 34(data) 462 37 38
-                              Store 466 465
-             467:      6(int) Load 8(invocation)
-             468:     48(ptr) AccessChain 34(data) 46 37
-             469:  18(i8vec4) Load 468
-             470:  47(i8vec2) VectorShuffle 469 469 0 1
-             471:  47(i8vec2) GroupNonUniformSMin 42 ExclusiveScan 470
-             472:     48(ptr) AccessChain 34(data) 467 37
-             473:  18(i8vec4) Load 472
-             474:  18(i8vec4) VectorShuffle 473 471 4 5 2 3
-                              Store 472 474
-             475:      6(int) Load 8(invocation)
-             476:     48(ptr) AccessChain 34(data) 57 37
-             477:  18(i8vec4) Load 476
-             478:  58(i8vec3) VectorShuffle 477 477 0 1 2
-             479:  58(i8vec3) GroupNonUniformSMin 42 ExclusiveScan 478
-             480:     48(ptr) AccessChain 34(data) 475 37
-             481:  18(i8vec4) Load 480
-             482:  18(i8vec4) VectorShuffle 481 479 4 5 6 3
-                              Store 480 482
-             483:      6(int) Load 8(invocation)
-             484:     48(ptr) AccessChain 34(data) 67 37
-             485:  18(i8vec4) Load 484
-             486:  18(i8vec4) GroupNonUniformSMin 42 ExclusiveScan 485
-             487:     48(ptr) AccessChain 34(data) 483 37
-                              Store 487 486
-             488:      6(int) Load 8(invocation)
-             489:     39(ptr) AccessChain 34(data) 37 37 38
-             490:  17(int8_t) Load 489
-             491:  17(int8_t) GroupNonUniformSMax 42 ExclusiveScan 490
-             492:     39(ptr) AccessChain 34(data) 488 37 38
-                              Store 492 491
+             356:  47(i8vec2) VectorShuffle 355 355 0 1
+             357:  47(i8vec2) GroupNonUniformSMax 42 InclusiveScan 356
+             358:     39(ptr) AccessChain 34(data) 353 37 38
+             359:  17(int8_t) CompositeExtract 357 0
+                              Store 358 359
+             360:     39(ptr) AccessChain 34(data) 353 37 55
+             361:  17(int8_t) CompositeExtract 357 1
+                              Store 360 361
+             362:      6(int) Load 8(invocation)
+             363:     48(ptr) AccessChain 34(data) 59 37
+             364:  18(i8vec4) Load 363
+             365:  60(i8vec3) VectorShuffle 364 364 0 1 2
+             366:  60(i8vec3) GroupNonUniformSMax 42 InclusiveScan 365
+             367:     39(ptr) AccessChain 34(data) 362 37 38
+             368:  17(int8_t) CompositeExtract 366 0
+                              Store 367 368
+             369:     39(ptr) AccessChain 34(data) 362 37 55
+             370:  17(int8_t) CompositeExtract 366 1
+                              Store 369 370
+             371:     39(ptr) AccessChain 34(data) 362 37 69
+             372:  17(int8_t) CompositeExtract 366 2
+                              Store 371 372
+             373:      6(int) Load 8(invocation)
+             374:     48(ptr) AccessChain 34(data) 73 37
+             375:  18(i8vec4) Load 374
+             376:  18(i8vec4) GroupNonUniformSMax 42 InclusiveScan 375
+             377:     48(ptr) AccessChain 34(data) 373 37
+                              Store 377 376
+             378:      6(int) Load 8(invocation)
+             379:     39(ptr) AccessChain 34(data) 37 37 38
+             380:  17(int8_t) Load 379
+             381:  17(int8_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 380
+             382:     39(ptr) AccessChain 34(data) 378 37 38
+                              Store 382 381
+             383:      6(int) Load 8(invocation)
+             384:     48(ptr) AccessChain 34(data) 46 37
+             385:  18(i8vec4) Load 384
+             386:  47(i8vec2) VectorShuffle 385 385 0 1
+             387:  47(i8vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 386
+             388:     39(ptr) AccessChain 34(data) 383 37 38
+             389:  17(int8_t) CompositeExtract 387 0
+                              Store 388 389
+             390:     39(ptr) AccessChain 34(data) 383 37 55
+             391:  17(int8_t) CompositeExtract 387 1
+                              Store 390 391
+             392:      6(int) Load 8(invocation)
+             393:     48(ptr) AccessChain 34(data) 59 37
+             394:  18(i8vec4) Load 393
+             395:  60(i8vec3) VectorShuffle 394 394 0 1 2
+             396:  60(i8vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 395
+             397:     39(ptr) AccessChain 34(data) 392 37 38
+             398:  17(int8_t) CompositeExtract 396 0
+                              Store 397 398
+             399:     39(ptr) AccessChain 34(data) 392 37 55
+             400:  17(int8_t) CompositeExtract 396 1
+                              Store 399 400
+             401:     39(ptr) AccessChain 34(data) 392 37 69
+             402:  17(int8_t) CompositeExtract 396 2
+                              Store 401 402
+             403:      6(int) Load 8(invocation)
+             404:     48(ptr) AccessChain 34(data) 73 37
+             405:  18(i8vec4) Load 404
+             406:  18(i8vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 405
+             407:     48(ptr) AccessChain 34(data) 403 37
+                              Store 407 406
+             408:      6(int) Load 8(invocation)
+             409:     39(ptr) AccessChain 34(data) 37 37 38
+             410:  17(int8_t) Load 409
+             411:  17(int8_t) GroupNonUniformBitwiseOr 42 InclusiveScan 410
+             412:     39(ptr) AccessChain 34(data) 408 37 38
+                              Store 412 411
+             413:      6(int) Load 8(invocation)
+             414:     48(ptr) AccessChain 34(data) 46 37
+             415:  18(i8vec4) Load 414
+             416:  47(i8vec2) VectorShuffle 415 415 0 1
+             417:  47(i8vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 416
+             418:     39(ptr) AccessChain 34(data) 413 37 38
+             419:  17(int8_t) CompositeExtract 417 0
+                              Store 418 419
+             420:     39(ptr) AccessChain 34(data) 413 37 55
+             421:  17(int8_t) CompositeExtract 417 1
+                              Store 420 421
+             422:      6(int) Load 8(invocation)
+             423:     48(ptr) AccessChain 34(data) 59 37
+             424:  18(i8vec4) Load 423
+             425:  60(i8vec3) VectorShuffle 424 424 0 1 2
+             426:  60(i8vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 425
+             427:     39(ptr) AccessChain 34(data) 422 37 38
+             428:  17(int8_t) CompositeExtract 426 0
+                              Store 427 428
+             429:     39(ptr) AccessChain 34(data) 422 37 55
+             430:  17(int8_t) CompositeExtract 426 1
+                              Store 429 430
+             431:     39(ptr) AccessChain 34(data) 422 37 69
+             432:  17(int8_t) CompositeExtract 426 2
+                              Store 431 432
+             433:      6(int) Load 8(invocation)
+             434:     48(ptr) AccessChain 34(data) 73 37
+             435:  18(i8vec4) Load 434
+             436:  18(i8vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 435
+             437:     48(ptr) AccessChain 34(data) 433 37
+                              Store 437 436
+             438:      6(int) Load 8(invocation)
+             439:     39(ptr) AccessChain 34(data) 37 37 38
+             440:  17(int8_t) Load 439
+             441:  17(int8_t) GroupNonUniformBitwiseXor 42 InclusiveScan 440
+             442:     39(ptr) AccessChain 34(data) 438 37 38
+                              Store 442 441
+             443:      6(int) Load 8(invocation)
+             444:     48(ptr) AccessChain 34(data) 46 37
+             445:  18(i8vec4) Load 444
+             446:  47(i8vec2) VectorShuffle 445 445 0 1
+             447:  47(i8vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 446
+             448:     39(ptr) AccessChain 34(data) 443 37 38
+             449:  17(int8_t) CompositeExtract 447 0
+                              Store 448 449
+             450:     39(ptr) AccessChain 34(data) 443 37 55
+             451:  17(int8_t) CompositeExtract 447 1
+                              Store 450 451
+             452:      6(int) Load 8(invocation)
+             453:     48(ptr) AccessChain 34(data) 59 37
+             454:  18(i8vec4) Load 453
+             455:  60(i8vec3) VectorShuffle 454 454 0 1 2
+             456:  60(i8vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 455
+             457:     39(ptr) AccessChain 34(data) 452 37 38
+             458:  17(int8_t) CompositeExtract 456 0
+                              Store 457 458
+             459:     39(ptr) AccessChain 34(data) 452 37 55
+             460:  17(int8_t) CompositeExtract 456 1
+                              Store 459 460
+             461:     39(ptr) AccessChain 34(data) 452 37 69
+             462:  17(int8_t) CompositeExtract 456 2
+                              Store 461 462
+             463:      6(int) Load 8(invocation)
+             464:     48(ptr) AccessChain 34(data) 73 37
+             465:  18(i8vec4) Load 464
+             466:  18(i8vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 465
+             467:     48(ptr) AccessChain 34(data) 463 37
+                              Store 467 466
+             468:      6(int) Load 8(invocation)
+             469:     39(ptr) AccessChain 34(data) 37 37 38
+             470:  17(int8_t) Load 469
+             471:  17(int8_t) GroupNonUniformIAdd 42 ExclusiveScan 470
+             472:     39(ptr) AccessChain 34(data) 468 37 38
+                              Store 472 471
+             473:      6(int) Load 8(invocation)
+             474:     48(ptr) AccessChain 34(data) 46 37
+             475:  18(i8vec4) Load 474
+             476:  47(i8vec2) VectorShuffle 475 475 0 1
+             477:  47(i8vec2) GroupNonUniformIAdd 42 ExclusiveScan 476
+             478:     39(ptr) AccessChain 34(data) 473 37 38
+             479:  17(int8_t) CompositeExtract 477 0
+                              Store 478 479
+             480:     39(ptr) AccessChain 34(data) 473 37 55
+             481:  17(int8_t) CompositeExtract 477 1
+                              Store 480 481
+             482:      6(int) Load 8(invocation)
+             483:     48(ptr) AccessChain 34(data) 59 37
+             484:  18(i8vec4) Load 483
+             485:  60(i8vec3) VectorShuffle 484 484 0 1 2
+             486:  60(i8vec3) GroupNonUniformIAdd 42 ExclusiveScan 485
+             487:     39(ptr) AccessChain 34(data) 482 37 38
+             488:  17(int8_t) CompositeExtract 486 0
+                              Store 487 488
+             489:     39(ptr) AccessChain 34(data) 482 37 55
+             490:  17(int8_t) CompositeExtract 486 1
+                              Store 489 490
+             491:     39(ptr) AccessChain 34(data) 482 37 69
+             492:  17(int8_t) CompositeExtract 486 2
+                              Store 491 492
              493:      6(int) Load 8(invocation)
-             494:     48(ptr) AccessChain 34(data) 46 37
+             494:     48(ptr) AccessChain 34(data) 73 37
              495:  18(i8vec4) Load 494
-             496:  47(i8vec2) VectorShuffle 495 495 0 1
-             497:  47(i8vec2) GroupNonUniformSMax 42 ExclusiveScan 496
-             498:     48(ptr) AccessChain 34(data) 493 37
-             499:  18(i8vec4) Load 498
-             500:  18(i8vec4) VectorShuffle 499 497 4 5 2 3
-                              Store 498 500
-             501:      6(int) Load 8(invocation)
-             502:     48(ptr) AccessChain 34(data) 57 37
-             503:  18(i8vec4) Load 502
-             504:  58(i8vec3) VectorShuffle 503 503 0 1 2
-             505:  58(i8vec3) GroupNonUniformSMax 42 ExclusiveScan 504
-             506:     48(ptr) AccessChain 34(data) 501 37
-             507:  18(i8vec4) Load 506
-             508:  18(i8vec4) VectorShuffle 507 505 4 5 6 3
-                              Store 506 508
-             509:      6(int) Load 8(invocation)
-             510:     48(ptr) AccessChain 34(data) 67 37
-             511:  18(i8vec4) Load 510
-             512:  18(i8vec4) GroupNonUniformSMax 42 ExclusiveScan 511
-             513:     48(ptr) AccessChain 34(data) 509 37
-                              Store 513 512
-             514:      6(int) Load 8(invocation)
-             515:     39(ptr) AccessChain 34(data) 37 37 38
-             516:  17(int8_t) Load 515
-             517:  17(int8_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 516
-             518:     39(ptr) AccessChain 34(data) 514 37 38
-                              Store 518 517
-             519:      6(int) Load 8(invocation)
-             520:     48(ptr) AccessChain 34(data) 46 37
-             521:  18(i8vec4) Load 520
-             522:  47(i8vec2) VectorShuffle 521 521 0 1
-             523:  47(i8vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 522
-             524:     48(ptr) AccessChain 34(data) 519 37
+             496:  18(i8vec4) GroupNonUniformIAdd 42 ExclusiveScan 495
+             497:     48(ptr) AccessChain 34(data) 493 37
+                              Store 497 496
+             498:      6(int) Load 8(invocation)
+             499:     39(ptr) AccessChain 34(data) 37 37 38
+             500:  17(int8_t) Load 499
+             501:  17(int8_t) GroupNonUniformIMul 42 ExclusiveScan 500
+             502:     39(ptr) AccessChain 34(data) 498 37 38
+                              Store 502 501
+             503:      6(int) Load 8(invocation)
+             504:     48(ptr) AccessChain 34(data) 46 37
+             505:  18(i8vec4) Load 504
+             506:  47(i8vec2) VectorShuffle 505 505 0 1
+             507:  47(i8vec2) GroupNonUniformIMul 42 ExclusiveScan 506
+             508:     39(ptr) AccessChain 34(data) 503 37 38
+             509:  17(int8_t) CompositeExtract 507 0
+                              Store 508 509
+             510:     39(ptr) AccessChain 34(data) 503 37 55
+             511:  17(int8_t) CompositeExtract 507 1
+                              Store 510 511
+             512:      6(int) Load 8(invocation)
+             513:     48(ptr) AccessChain 34(data) 59 37
+             514:  18(i8vec4) Load 513
+             515:  60(i8vec3) VectorShuffle 514 514 0 1 2
+             516:  60(i8vec3) GroupNonUniformIMul 42 ExclusiveScan 515
+             517:     39(ptr) AccessChain 34(data) 512 37 38
+             518:  17(int8_t) CompositeExtract 516 0
+                              Store 517 518
+             519:     39(ptr) AccessChain 34(data) 512 37 55
+             520:  17(int8_t) CompositeExtract 516 1
+                              Store 519 520
+             521:     39(ptr) AccessChain 34(data) 512 37 69
+             522:  17(int8_t) CompositeExtract 516 2
+                              Store 521 522
+             523:      6(int) Load 8(invocation)
+             524:     48(ptr) AccessChain 34(data) 73 37
              525:  18(i8vec4) Load 524
-             526:  18(i8vec4) VectorShuffle 525 523 4 5 2 3
-                              Store 524 526
-             527:      6(int) Load 8(invocation)
-             528:     48(ptr) AccessChain 34(data) 57 37
-             529:  18(i8vec4) Load 528
-             530:  58(i8vec3) VectorShuffle 529 529 0 1 2
-             531:  58(i8vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 530
-             532:     48(ptr) AccessChain 34(data) 527 37
-             533:  18(i8vec4) Load 532
-             534:  18(i8vec4) VectorShuffle 533 531 4 5 6 3
-                              Store 532 534
-             535:      6(int) Load 8(invocation)
-             536:     48(ptr) AccessChain 34(data) 67 37
-             537:  18(i8vec4) Load 536
-             538:  18(i8vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 537
-             539:     48(ptr) AccessChain 34(data) 535 37
-                              Store 539 538
-             540:      6(int) Load 8(invocation)
-             541:     39(ptr) AccessChain 34(data) 37 37 38
-             542:  17(int8_t) Load 541
-             543:  17(int8_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 542
-             544:     39(ptr) AccessChain 34(data) 540 37 38
-                              Store 544 543
-             545:      6(int) Load 8(invocation)
-             546:     48(ptr) AccessChain 34(data) 46 37
-             547:  18(i8vec4) Load 546
-             548:  47(i8vec2) VectorShuffle 547 547 0 1
-             549:  47(i8vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 548
-             550:     48(ptr) AccessChain 34(data) 545 37
-             551:  18(i8vec4) Load 550
-             552:  18(i8vec4) VectorShuffle 551 549 4 5 2 3
-                              Store 550 552
+             526:  18(i8vec4) GroupNonUniformIMul 42 ExclusiveScan 525
+             527:     48(ptr) AccessChain 34(data) 523 37
+                              Store 527 526
+             528:      6(int) Load 8(invocation)
+             529:     39(ptr) AccessChain 34(data) 37 37 38
+             530:  17(int8_t) Load 529
+             531:  17(int8_t) GroupNonUniformSMin 42 ExclusiveScan 530
+             532:     39(ptr) AccessChain 34(data) 528 37 38
+                              Store 532 531
+             533:      6(int) Load 8(invocation)
+             534:     48(ptr) AccessChain 34(data) 46 37
+             535:  18(i8vec4) Load 534
+             536:  47(i8vec2) VectorShuffle 535 535 0 1
+             537:  47(i8vec2) GroupNonUniformSMin 42 ExclusiveScan 536
+             538:     39(ptr) AccessChain 34(data) 533 37 38
+             539:  17(int8_t) CompositeExtract 537 0
+                              Store 538 539
+             540:     39(ptr) AccessChain 34(data) 533 37 55
+             541:  17(int8_t) CompositeExtract 537 1
+                              Store 540 541
+             542:      6(int) Load 8(invocation)
+             543:     48(ptr) AccessChain 34(data) 59 37
+             544:  18(i8vec4) Load 543
+             545:  60(i8vec3) VectorShuffle 544 544 0 1 2
+             546:  60(i8vec3) GroupNonUniformSMin 42 ExclusiveScan 545
+             547:     39(ptr) AccessChain 34(data) 542 37 38
+             548:  17(int8_t) CompositeExtract 546 0
+                              Store 547 548
+             549:     39(ptr) AccessChain 34(data) 542 37 55
+             550:  17(int8_t) CompositeExtract 546 1
+                              Store 549 550
+             551:     39(ptr) AccessChain 34(data) 542 37 69
+             552:  17(int8_t) CompositeExtract 546 2
+                              Store 551 552
              553:      6(int) Load 8(invocation)
-             554:     48(ptr) AccessChain 34(data) 57 37
+             554:     48(ptr) AccessChain 34(data) 73 37
              555:  18(i8vec4) Load 554
-             556:  58(i8vec3) VectorShuffle 555 555 0 1 2
-             557:  58(i8vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 556
-             558:     48(ptr) AccessChain 34(data) 553 37
-             559:  18(i8vec4) Load 558
-             560:  18(i8vec4) VectorShuffle 559 557 4 5 6 3
-                              Store 558 560
-             561:      6(int) Load 8(invocation)
-             562:     48(ptr) AccessChain 34(data) 67 37
-             563:  18(i8vec4) Load 562
-             564:  18(i8vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 563
-             565:     48(ptr) AccessChain 34(data) 561 37
-                              Store 565 564
-             566:      6(int) Load 8(invocation)
-             567:     39(ptr) AccessChain 34(data) 37 37 38
-             568:  17(int8_t) Load 567
-             569:  17(int8_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 568
-             570:     39(ptr) AccessChain 34(data) 566 37 38
-                              Store 570 569
-             571:      6(int) Load 8(invocation)
-             572:     48(ptr) AccessChain 34(data) 46 37
-             573:  18(i8vec4) Load 572
-             574:  47(i8vec2) VectorShuffle 573 573 0 1
-             575:  47(i8vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 574
-             576:     48(ptr) AccessChain 34(data) 571 37
-             577:  18(i8vec4) Load 576
-             578:  18(i8vec4) VectorShuffle 577 575 4 5 2 3
-                              Store 576 578
-             579:      6(int) Load 8(invocation)
-             580:     48(ptr) AccessChain 34(data) 57 37
-             581:  18(i8vec4) Load 580
-             582:  58(i8vec3) VectorShuffle 581 581 0 1 2
-             583:  58(i8vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 582
-             584:     48(ptr) AccessChain 34(data) 579 37
+             556:  18(i8vec4) GroupNonUniformSMin 42 ExclusiveScan 555
+             557:     48(ptr) AccessChain 34(data) 553 37
+                              Store 557 556
+             558:      6(int) Load 8(invocation)
+             559:     39(ptr) AccessChain 34(data) 37 37 38
+             560:  17(int8_t) Load 559
+             561:  17(int8_t) GroupNonUniformSMax 42 ExclusiveScan 560
+             562:     39(ptr) AccessChain 34(data) 558 37 38
+                              Store 562 561
+             563:      6(int) Load 8(invocation)
+             564:     48(ptr) AccessChain 34(data) 46 37
+             565:  18(i8vec4) Load 564
+             566:  47(i8vec2) VectorShuffle 565 565 0 1
+             567:  47(i8vec2) GroupNonUniformSMax 42 ExclusiveScan 566
+             568:     39(ptr) AccessChain 34(data) 563 37 38
+             569:  17(int8_t) CompositeExtract 567 0
+                              Store 568 569
+             570:     39(ptr) AccessChain 34(data) 563 37 55
+             571:  17(int8_t) CompositeExtract 567 1
+                              Store 570 571
+             572:      6(int) Load 8(invocation)
+             573:     48(ptr) AccessChain 34(data) 59 37
+             574:  18(i8vec4) Load 573
+             575:  60(i8vec3) VectorShuffle 574 574 0 1 2
+             576:  60(i8vec3) GroupNonUniformSMax 42 ExclusiveScan 575
+             577:     39(ptr) AccessChain 34(data) 572 37 38
+             578:  17(int8_t) CompositeExtract 576 0
+                              Store 577 578
+             579:     39(ptr) AccessChain 34(data) 572 37 55
+             580:  17(int8_t) CompositeExtract 576 1
+                              Store 579 580
+             581:     39(ptr) AccessChain 34(data) 572 37 69
+             582:  17(int8_t) CompositeExtract 576 2
+                              Store 581 582
+             583:      6(int) Load 8(invocation)
+             584:     48(ptr) AccessChain 34(data) 73 37
              585:  18(i8vec4) Load 584
-             586:  18(i8vec4) VectorShuffle 585 583 4 5 6 3
-                              Store 584 586
-             587:      6(int) Load 8(invocation)
-             588:     48(ptr) AccessChain 34(data) 67 37
-             589:  18(i8vec4) Load 588
-             590:  18(i8vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 589
-             591:     48(ptr) AccessChain 34(data) 587 37
-                              Store 591 590
-             592:      6(int) Load 8(invocation)
-             594:    593(ptr) AccessChain 34(data) 37 46 38
-             595:  19(int8_t) Load 594
-             596:  19(int8_t) GroupNonUniformIAdd 42 Reduce 595
-             597:    593(ptr) AccessChain 34(data) 592 46 38
-                              Store 597 596
-             598:      6(int) Load 8(invocation)
-             601:    600(ptr) AccessChain 34(data) 46 46
-             602:  20(i8vec4) Load 601
-             603: 599(i8vec2) VectorShuffle 602 602 0 1
-             604: 599(i8vec2) GroupNonUniformIAdd 42 Reduce 603
-             605:    600(ptr) AccessChain 34(data) 598 46
-             606:  20(i8vec4) Load 605
-             607:  20(i8vec4) VectorShuffle 606 604 4 5 2 3
-                              Store 605 607
-             608:      6(int) Load 8(invocation)
-             610:    600(ptr) AccessChain 34(data) 57 46
-             611:  20(i8vec4) Load 610
-             612: 609(i8vec3) VectorShuffle 611 611 0 1 2
-             613: 609(i8vec3) GroupNonUniformIAdd 42 Reduce 612
-             614:    600(ptr) AccessChain 34(data) 608 46
-             615:  20(i8vec4) Load 614
-             616:  20(i8vec4) VectorShuffle 615 613 4 5 6 3
-                              Store 614 616
-             617:      6(int) Load 8(invocation)
-             618:    600(ptr) AccessChain 34(data) 67 46
-             619:  20(i8vec4) Load 618
-             620:  20(i8vec4) GroupNonUniformIAdd 42 Reduce 619
-             621:    600(ptr) AccessChain 34(data) 617 46
-                              Store 621 620
-             622:      6(int) Load 8(invocation)
-             623:    593(ptr) AccessChain 34(data) 37 46 38
-             624:  19(int8_t) Load 623
-             625:  19(int8_t) GroupNonUniformIMul 42 Reduce 624
-             626:    593(ptr) AccessChain 34(data) 622 46 38
-                              Store 626 625
-             627:      6(int) Load 8(invocation)
-             628:    600(ptr) AccessChain 34(data) 46 46
-             629:  20(i8vec4) Load 628
-             630: 599(i8vec2) VectorShuffle 629 629 0 1
-             631: 599(i8vec2) GroupNonUniformIMul 42 Reduce 630
-             632:    600(ptr) AccessChain 34(data) 627 46
-             633:  20(i8vec4) Load 632
-             634:  20(i8vec4) VectorShuffle 633 631 4 5 2 3
-                              Store 632 634
-             635:      6(int) Load 8(invocation)
-             636:    600(ptr) AccessChain 34(data) 57 46
-             637:  20(i8vec4) Load 636
-             638: 609(i8vec3) VectorShuffle 637 637 0 1 2
-             639: 609(i8vec3) GroupNonUniformIMul 42 Reduce 638
-             640:    600(ptr) AccessChain 34(data) 635 46
-             641:  20(i8vec4) Load 640
-             642:  20(i8vec4) VectorShuffle 641 639 4 5 6 3
-                              Store 640 642
+             586:  18(i8vec4) GroupNonUniformSMax 42 ExclusiveScan 585
+             587:     48(ptr) AccessChain 34(data) 583 37
+                              Store 587 586
+             588:      6(int) Load 8(invocation)
+             589:     39(ptr) AccessChain 34(data) 37 37 38
+             590:  17(int8_t) Load 589
+             591:  17(int8_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 590
+             592:     39(ptr) AccessChain 34(data) 588 37 38
+                              Store 592 591
+             593:      6(int) Load 8(invocation)
+             594:     48(ptr) AccessChain 34(data) 46 37
+             595:  18(i8vec4) Load 594
+             596:  47(i8vec2) VectorShuffle 595 595 0 1
+             597:  47(i8vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 596
+             598:     39(ptr) AccessChain 34(data) 593 37 38
+             599:  17(int8_t) CompositeExtract 597 0
+                              Store 598 599
+             600:     39(ptr) AccessChain 34(data) 593 37 55
+             601:  17(int8_t) CompositeExtract 597 1
+                              Store 600 601
+             602:      6(int) Load 8(invocation)
+             603:     48(ptr) AccessChain 34(data) 59 37
+             604:  18(i8vec4) Load 603
+             605:  60(i8vec3) VectorShuffle 604 604 0 1 2
+             606:  60(i8vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 605
+             607:     39(ptr) AccessChain 34(data) 602 37 38
+             608:  17(int8_t) CompositeExtract 606 0
+                              Store 607 608
+             609:     39(ptr) AccessChain 34(data) 602 37 55
+             610:  17(int8_t) CompositeExtract 606 1
+                              Store 609 610
+             611:     39(ptr) AccessChain 34(data) 602 37 69
+             612:  17(int8_t) CompositeExtract 606 2
+                              Store 611 612
+             613:      6(int) Load 8(invocation)
+             614:     48(ptr) AccessChain 34(data) 73 37
+             615:  18(i8vec4) Load 614
+             616:  18(i8vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 615
+             617:     48(ptr) AccessChain 34(data) 613 37
+                              Store 617 616
+             618:      6(int) Load 8(invocation)
+             619:     39(ptr) AccessChain 34(data) 37 37 38
+             620:  17(int8_t) Load 619
+             621:  17(int8_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 620
+             622:     39(ptr) AccessChain 34(data) 618 37 38
+                              Store 622 621
+             623:      6(int) Load 8(invocation)
+             624:     48(ptr) AccessChain 34(data) 46 37
+             625:  18(i8vec4) Load 624
+             626:  47(i8vec2) VectorShuffle 625 625 0 1
+             627:  47(i8vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 626
+             628:     39(ptr) AccessChain 34(data) 623 37 38
+             629:  17(int8_t) CompositeExtract 627 0
+                              Store 628 629
+             630:     39(ptr) AccessChain 34(data) 623 37 55
+             631:  17(int8_t) CompositeExtract 627 1
+                              Store 630 631
+             632:      6(int) Load 8(invocation)
+             633:     48(ptr) AccessChain 34(data) 59 37
+             634:  18(i8vec4) Load 633
+             635:  60(i8vec3) VectorShuffle 634 634 0 1 2
+             636:  60(i8vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 635
+             637:     39(ptr) AccessChain 34(data) 632 37 38
+             638:  17(int8_t) CompositeExtract 636 0
+                              Store 637 638
+             639:     39(ptr) AccessChain 34(data) 632 37 55
+             640:  17(int8_t) CompositeExtract 636 1
+                              Store 639 640
+             641:     39(ptr) AccessChain 34(data) 632 37 69
+             642:  17(int8_t) CompositeExtract 636 2
+                              Store 641 642
              643:      6(int) Load 8(invocation)
-             644:    600(ptr) AccessChain 34(data) 67 46
-             645:  20(i8vec4) Load 644
-             646:  20(i8vec4) GroupNonUniformIMul 42 Reduce 645
-             647:    600(ptr) AccessChain 34(data) 643 46
+             644:     48(ptr) AccessChain 34(data) 73 37
+             645:  18(i8vec4) Load 644
+             646:  18(i8vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 645
+             647:     48(ptr) AccessChain 34(data) 643 37
                               Store 647 646
              648:      6(int) Load 8(invocation)
-             649:    593(ptr) AccessChain 34(data) 37 46 38
-             650:  19(int8_t) Load 649
-             651:  19(int8_t) GroupNonUniformUMin 42 Reduce 650
-             652:    593(ptr) AccessChain 34(data) 648 46 38
+             649:     39(ptr) AccessChain 34(data) 37 37 38
+             650:  17(int8_t) Load 649
+             651:  17(int8_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 650
+             652:     39(ptr) AccessChain 34(data) 648 37 38
                               Store 652 651
              653:      6(int) Load 8(invocation)
-             654:    600(ptr) AccessChain 34(data) 46 46
-             655:  20(i8vec4) Load 654
-             656: 599(i8vec2) VectorShuffle 655 655 0 1
-             657: 599(i8vec2) GroupNonUniformUMin 42 Reduce 656
-             658:    600(ptr) AccessChain 34(data) 653 46
-             659:  20(i8vec4) Load 658
-             660:  20(i8vec4) VectorShuffle 659 657 4 5 2 3
-                              Store 658 660
-             661:      6(int) Load 8(invocation)
-             662:    600(ptr) AccessChain 34(data) 57 46
-             663:  20(i8vec4) Load 662
-             664: 609(i8vec3) VectorShuffle 663 663 0 1 2
-             665: 609(i8vec3) GroupNonUniformUMin 42 Reduce 664
-             666:    600(ptr) AccessChain 34(data) 661 46
-             667:  20(i8vec4) Load 666
-             668:  20(i8vec4) VectorShuffle 667 665 4 5 6 3
-                              Store 666 668
-             669:      6(int) Load 8(invocation)
-             670:    600(ptr) AccessChain 34(data) 67 46
-             671:  20(i8vec4) Load 670
-             672:  20(i8vec4) GroupNonUniformUMin 42 Reduce 671
-             673:    600(ptr) AccessChain 34(data) 669 46
-                              Store 673 672
-             674:      6(int) Load 8(invocation)
-             675:    593(ptr) AccessChain 34(data) 37 46 38
-             676:  19(int8_t) Load 675
-             677:  19(int8_t) GroupNonUniformUMax 42 Reduce 676
-             678:    593(ptr) AccessChain 34(data) 674 46 38
-                              Store 678 677
-             679:      6(int) Load 8(invocation)
-             680:    600(ptr) AccessChain 34(data) 46 46
-             681:  20(i8vec4) Load 680
-             682: 599(i8vec2) VectorShuffle 681 681 0 1
-             683: 599(i8vec2) GroupNonUniformUMax 42 Reduce 682
-             684:    600(ptr) AccessChain 34(data) 679 46
-             685:  20(i8vec4) Load 684
-             686:  20(i8vec4) VectorShuffle 685 683 4 5 2 3
-                              Store 684 686
-             687:      6(int) Load 8(invocation)
-             688:    600(ptr) AccessChain 34(data) 57 46
-             689:  20(i8vec4) Load 688
-             690: 609(i8vec3) VectorShuffle 689 689 0 1 2
-             691: 609(i8vec3) GroupNonUniformUMax 42 Reduce 690
-             692:    600(ptr) AccessChain 34(data) 687 46
-             693:  20(i8vec4) Load 692
-             694:  20(i8vec4) VectorShuffle 693 691 4 5 6 3
-                              Store 692 694
+             654:     48(ptr) AccessChain 34(data) 46 37
+             655:  18(i8vec4) Load 654
+             656:  47(i8vec2) VectorShuffle 655 655 0 1
+             657:  47(i8vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 656
+             658:     39(ptr) AccessChain 34(data) 653 37 38
+             659:  17(int8_t) CompositeExtract 657 0
+                              Store 658 659
+             660:     39(ptr) AccessChain 34(data) 653 37 55
+             661:  17(int8_t) CompositeExtract 657 1
+                              Store 660 661
+             662:      6(int) Load 8(invocation)
+             663:     48(ptr) AccessChain 34(data) 59 37
+             664:  18(i8vec4) Load 663
+             665:  60(i8vec3) VectorShuffle 664 664 0 1 2
+             666:  60(i8vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 665
+             667:     39(ptr) AccessChain 34(data) 662 37 38
+             668:  17(int8_t) CompositeExtract 666 0
+                              Store 667 668
+             669:     39(ptr) AccessChain 34(data) 662 37 55
+             670:  17(int8_t) CompositeExtract 666 1
+                              Store 669 670
+             671:     39(ptr) AccessChain 34(data) 662 37 69
+             672:  17(int8_t) CompositeExtract 666 2
+                              Store 671 672
+             673:      6(int) Load 8(invocation)
+             674:     48(ptr) AccessChain 34(data) 73 37
+             675:  18(i8vec4) Load 674
+             676:  18(i8vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 675
+             677:     48(ptr) AccessChain 34(data) 673 37
+                              Store 677 676
+             678:      6(int) Load 8(invocation)
+             680:    679(ptr) AccessChain 34(data) 37 46 38
+             681:  19(int8_t) Load 680
+             682:  19(int8_t) GroupNonUniformIAdd 42 Reduce 681
+             683:    679(ptr) AccessChain 34(data) 678 46 38
+                              Store 683 682
+             684:      6(int) Load 8(invocation)
+             687:    686(ptr) AccessChain 34(data) 46 46
+             688:  20(i8vec4) Load 687
+             689: 685(i8vec2) VectorShuffle 688 688 0 1
+             690: 685(i8vec2) GroupNonUniformIAdd 42 Reduce 689
+             691:    679(ptr) AccessChain 34(data) 684 46 38
+             692:  19(int8_t) CompositeExtract 690 0
+                              Store 691 692
+             693:    679(ptr) AccessChain 34(data) 684 46 55
+             694:  19(int8_t) CompositeExtract 690 1
+                              Store 693 694
              695:      6(int) Load 8(invocation)
-             696:    600(ptr) AccessChain 34(data) 67 46
-             697:  20(i8vec4) Load 696
-             698:  20(i8vec4) GroupNonUniformUMax 42 Reduce 697
-             699:    600(ptr) AccessChain 34(data) 695 46
-                              Store 699 698
-             700:      6(int) Load 8(invocation)
-             701:    593(ptr) AccessChain 34(data) 37 46 38
-             702:  19(int8_t) Load 701
-             703:  19(int8_t) GroupNonUniformBitwiseAnd 42 Reduce 702
-             704:    593(ptr) AccessChain 34(data) 700 46 38
-                              Store 704 703
-             705:      6(int) Load 8(invocation)
-             706:    600(ptr) AccessChain 34(data) 46 46
-             707:  20(i8vec4) Load 706
-             708: 599(i8vec2) VectorShuffle 707 707 0 1
-             709: 599(i8vec2) GroupNonUniformBitwiseAnd 42 Reduce 708
-             710:    600(ptr) AccessChain 34(data) 705 46
-             711:  20(i8vec4) Load 710
-             712:  20(i8vec4) VectorShuffle 711 709 4 5 2 3
-                              Store 710 712
-             713:      6(int) Load 8(invocation)
-             714:    600(ptr) AccessChain 34(data) 57 46
-             715:  20(i8vec4) Load 714
-             716: 609(i8vec3) VectorShuffle 715 715 0 1 2
-             717: 609(i8vec3) GroupNonUniformBitwiseAnd 42 Reduce 716
-             718:    600(ptr) AccessChain 34(data) 713 46
+             697:    686(ptr) AccessChain 34(data) 59 46
+             698:  20(i8vec4) Load 697
+             699: 696(i8vec3) VectorShuffle 698 698 0 1 2
+             700: 696(i8vec3) GroupNonUniformIAdd 42 Reduce 699
+             701:    679(ptr) AccessChain 34(data) 695 46 38
+             702:  19(int8_t) CompositeExtract 700 0
+                              Store 701 702
+             703:    679(ptr) AccessChain 34(data) 695 46 55
+             704:  19(int8_t) CompositeExtract 700 1
+                              Store 703 704
+             705:    679(ptr) AccessChain 34(data) 695 46 69
+             706:  19(int8_t) CompositeExtract 700 2
+                              Store 705 706
+             707:      6(int) Load 8(invocation)
+             708:    686(ptr) AccessChain 34(data) 73 46
+             709:  20(i8vec4) Load 708
+             710:  20(i8vec4) GroupNonUniformIAdd 42 Reduce 709
+             711:    686(ptr) AccessChain 34(data) 707 46
+                              Store 711 710
+             712:      6(int) Load 8(invocation)
+             713:    679(ptr) AccessChain 34(data) 37 46 38
+             714:  19(int8_t) Load 713
+             715:  19(int8_t) GroupNonUniformIMul 42 Reduce 714
+             716:    679(ptr) AccessChain 34(data) 712 46 38
+                              Store 716 715
+             717:      6(int) Load 8(invocation)
+             718:    686(ptr) AccessChain 34(data) 46 46
              719:  20(i8vec4) Load 718
-             720:  20(i8vec4) VectorShuffle 719 717 4 5 6 3
-                              Store 718 720
-             721:      6(int) Load 8(invocation)
-             722:    600(ptr) AccessChain 34(data) 67 46
-             723:  20(i8vec4) Load 722
-             724:  20(i8vec4) GroupNonUniformBitwiseAnd 42 Reduce 723
-             725:    600(ptr) AccessChain 34(data) 721 46
-                              Store 725 724
+             720: 685(i8vec2) VectorShuffle 719 719 0 1
+             721: 685(i8vec2) GroupNonUniformIMul 42 Reduce 720
+             722:    679(ptr) AccessChain 34(data) 717 46 38
+             723:  19(int8_t) CompositeExtract 721 0
+                              Store 722 723
+             724:    679(ptr) AccessChain 34(data) 717 46 55
+             725:  19(int8_t) CompositeExtract 721 1
+                              Store 724 725
              726:      6(int) Load 8(invocation)
-             727:    593(ptr) AccessChain 34(data) 37 46 38
-             728:  19(int8_t) Load 727
-             729:  19(int8_t) GroupNonUniformBitwiseOr 42 Reduce 728
-             730:    593(ptr) AccessChain 34(data) 726 46 38
-                              Store 730 729
-             731:      6(int) Load 8(invocation)
-             732:    600(ptr) AccessChain 34(data) 46 46
-             733:  20(i8vec4) Load 732
-             734: 599(i8vec2) VectorShuffle 733 733 0 1
-             735: 599(i8vec2) GroupNonUniformBitwiseOr 42 Reduce 734
-             736:    600(ptr) AccessChain 34(data) 731 46
-             737:  20(i8vec4) Load 736
-             738:  20(i8vec4) VectorShuffle 737 735 4 5 2 3
-                              Store 736 738
-             739:      6(int) Load 8(invocation)
-             740:    600(ptr) AccessChain 34(data) 57 46
-             741:  20(i8vec4) Load 740
-             742: 609(i8vec3) VectorShuffle 741 741 0 1 2
-             743: 609(i8vec3) GroupNonUniformBitwiseOr 42 Reduce 742
-             744:    600(ptr) AccessChain 34(data) 739 46
-             745:  20(i8vec4) Load 744
-             746:  20(i8vec4) VectorShuffle 745 743 4 5 6 3
-                              Store 744 746
+             727:    686(ptr) AccessChain 34(data) 59 46
+             728:  20(i8vec4) Load 727
+             729: 696(i8vec3) VectorShuffle 728 728 0 1 2
+             730: 696(i8vec3) GroupNonUniformIMul 42 Reduce 729
+             731:    679(ptr) AccessChain 34(data) 726 46 38
+             732:  19(int8_t) CompositeExtract 730 0
+                              Store 731 732
+             733:    679(ptr) AccessChain 34(data) 726 46 55
+             734:  19(int8_t) CompositeExtract 730 1
+                              Store 733 734
+             735:    679(ptr) AccessChain 34(data) 726 46 69
+             736:  19(int8_t) CompositeExtract 730 2
+                              Store 735 736
+             737:      6(int) Load 8(invocation)
+             738:    686(ptr) AccessChain 34(data) 73 46
+             739:  20(i8vec4) Load 738
+             740:  20(i8vec4) GroupNonUniformIMul 42 Reduce 739
+             741:    686(ptr) AccessChain 34(data) 737 46
+                              Store 741 740
+             742:      6(int) Load 8(invocation)
+             743:    679(ptr) AccessChain 34(data) 37 46 38
+             744:  19(int8_t) Load 743
+             745:  19(int8_t) GroupNonUniformUMin 42 Reduce 744
+             746:    679(ptr) AccessChain 34(data) 742 46 38
+                              Store 746 745
              747:      6(int) Load 8(invocation)
-             748:    600(ptr) AccessChain 34(data) 67 46
+             748:    686(ptr) AccessChain 34(data) 46 46
              749:  20(i8vec4) Load 748
-             750:  20(i8vec4) GroupNonUniformBitwiseOr 42 Reduce 749
-             751:    600(ptr) AccessChain 34(data) 747 46
-                              Store 751 750
-             752:      6(int) Load 8(invocation)
-             753:    593(ptr) AccessChain 34(data) 37 46 38
-             754:  19(int8_t) Load 753
-             755:  19(int8_t) GroupNonUniformBitwiseXor 42 Reduce 754
-             756:    593(ptr) AccessChain 34(data) 752 46 38
-                              Store 756 755
-             757:      6(int) Load 8(invocation)
-             758:    600(ptr) AccessChain 34(data) 46 46
-             759:  20(i8vec4) Load 758
-             760: 599(i8vec2) VectorShuffle 759 759 0 1
-             761: 599(i8vec2) GroupNonUniformBitwiseXor 42 Reduce 760
-             762:    600(ptr) AccessChain 34(data) 757 46
-             763:  20(i8vec4) Load 762
-             764:  20(i8vec4) VectorShuffle 763 761 4 5 2 3
-                              Store 762 764
-             765:      6(int) Load 8(invocation)
-             766:    600(ptr) AccessChain 34(data) 57 46
-             767:  20(i8vec4) Load 766
-             768: 609(i8vec3) VectorShuffle 767 767 0 1 2
-             769: 609(i8vec3) GroupNonUniformBitwiseXor 42 Reduce 768
-             770:    600(ptr) AccessChain 34(data) 765 46
-             771:  20(i8vec4) Load 770
-             772:  20(i8vec4) VectorShuffle 771 769 4 5 6 3
-                              Store 770 772
-             773:      6(int) Load 8(invocation)
-             774:    600(ptr) AccessChain 34(data) 67 46
-             775:  20(i8vec4) Load 774
-             776:  20(i8vec4) GroupNonUniformBitwiseXor 42 Reduce 775
-             777:    600(ptr) AccessChain 34(data) 773 46
-                              Store 777 776
-             778:      6(int) Load 8(invocation)
-             779:    593(ptr) AccessChain 34(data) 37 46 38
-             780:  19(int8_t) Load 779
-             781:  19(int8_t) GroupNonUniformIAdd 42 InclusiveScan 780
-             782:    593(ptr) AccessChain 34(data) 778 46 38
-                              Store 782 781
-             783:      6(int) Load 8(invocation)
-             784:    600(ptr) AccessChain 34(data) 46 46
-             785:  20(i8vec4) Load 784
-             786: 599(i8vec2) VectorShuffle 785 785 0 1
-             787: 599(i8vec2) GroupNonUniformIAdd 42 InclusiveScan 786
-             788:    600(ptr) AccessChain 34(data) 783 46
-             789:  20(i8vec4) Load 788
-             790:  20(i8vec4) VectorShuffle 789 787 4 5 2 3
-                              Store 788 790
-             791:      6(int) Load 8(invocation)
-             792:    600(ptr) AccessChain 34(data) 57 46
-             793:  20(i8vec4) Load 792
-             794: 609(i8vec3) VectorShuffle 793 793 0 1 2
-             795: 609(i8vec3) GroupNonUniformIAdd 42 InclusiveScan 794
-             796:    600(ptr) AccessChain 34(data) 791 46
-             797:  20(i8vec4) Load 796
-             798:  20(i8vec4) VectorShuffle 797 795 4 5 6 3
-                              Store 796 798
-             799:      6(int) Load 8(invocation)
-             800:    600(ptr) AccessChain 34(data) 67 46
-             801:  20(i8vec4) Load 800
-             802:  20(i8vec4) GroupNonUniformIAdd 42 InclusiveScan 801
-             803:    600(ptr) AccessChain 34(data) 799 46
-                              Store 803 802
-             804:      6(int) Load 8(invocation)
-             805:    593(ptr) AccessChain 34(data) 37 46 38
-             806:  19(int8_t) Load 805
-             807:  19(int8_t) GroupNonUniformIMul 42 InclusiveScan 806
-             808:    593(ptr) AccessChain 34(data) 804 46 38
-                              Store 808 807
-             809:      6(int) Load 8(invocation)
-             810:    600(ptr) AccessChain 34(data) 46 46
-             811:  20(i8vec4) Load 810
-             812: 599(i8vec2) VectorShuffle 811 811 0 1
-             813: 599(i8vec2) GroupNonUniformIMul 42 InclusiveScan 812
-             814:    600(ptr) AccessChain 34(data) 809 46
-             815:  20(i8vec4) Load 814
-             816:  20(i8vec4) VectorShuffle 815 813 4 5 2 3
-                              Store 814 816
-             817:      6(int) Load 8(invocation)
-             818:    600(ptr) AccessChain 34(data) 57 46
-             819:  20(i8vec4) Load 818
-             820: 609(i8vec3) VectorShuffle 819 819 0 1 2
-             821: 609(i8vec3) GroupNonUniformIMul 42 InclusiveScan 820
-             822:    600(ptr) AccessChain 34(data) 817 46
-             823:  20(i8vec4) Load 822
-             824:  20(i8vec4) VectorShuffle 823 821 4 5 6 3
-                              Store 822 824
-             825:      6(int) Load 8(invocation)
-             826:    600(ptr) AccessChain 34(data) 67 46
-             827:  20(i8vec4) Load 826
-             828:  20(i8vec4) GroupNonUniformIMul 42 InclusiveScan 827
-             829:    600(ptr) AccessChain 34(data) 825 46
-                              Store 829 828
-             830:      6(int) Load 8(invocation)
-             831:    593(ptr) AccessChain 34(data) 37 46 38
-             832:  19(int8_t) Load 831
-             833:  19(int8_t) GroupNonUniformUMin 42 InclusiveScan 832
-             834:    593(ptr) AccessChain 34(data) 830 46 38
-                              Store 834 833
-             835:      6(int) Load 8(invocation)
-             836:    600(ptr) AccessChain 34(data) 46 46
-             837:  20(i8vec4) Load 836
-             838: 599(i8vec2) VectorShuffle 837 837 0 1
-             839: 599(i8vec2) GroupNonUniformUMin 42 InclusiveScan 838
-             840:    600(ptr) AccessChain 34(data) 835 46
-             841:  20(i8vec4) Load 840
-             842:  20(i8vec4) VectorShuffle 841 839 4 5 2 3
-                              Store 840 842
-             843:      6(int) Load 8(invocation)
-             844:    600(ptr) AccessChain 34(data) 57 46
-             845:  20(i8vec4) Load 844
-             846: 609(i8vec3) VectorShuffle 845 845 0 1 2
-             847: 609(i8vec3) GroupNonUniformUMin 42 InclusiveScan 846
-             848:    600(ptr) AccessChain 34(data) 843 46
-             849:  20(i8vec4) Load 848
-             850:  20(i8vec4) VectorShuffle 849 847 4 5 6 3
-                              Store 848 850
-             851:      6(int) Load 8(invocation)
-             852:    600(ptr) AccessChain 34(data) 67 46
-             853:  20(i8vec4) Load 852
-             854:  20(i8vec4) GroupNonUniformUMin 42 InclusiveScan 853
-             855:    600(ptr) AccessChain 34(data) 851 46
-                              Store 855 854
-             856:      6(int) Load 8(invocation)
-             857:    593(ptr) AccessChain 34(data) 37 46 38
-             858:  19(int8_t) Load 857
-             859:  19(int8_t) GroupNonUniformUMax 42 InclusiveScan 858
-             860:    593(ptr) AccessChain 34(data) 856 46 38
-                              Store 860 859
-             861:      6(int) Load 8(invocation)
-             862:    600(ptr) AccessChain 34(data) 46 46
-             863:  20(i8vec4) Load 862
-             864: 599(i8vec2) VectorShuffle 863 863 0 1
-             865: 599(i8vec2) GroupNonUniformUMax 42 InclusiveScan 864
-             866:    600(ptr) AccessChain 34(data) 861 46
-             867:  20(i8vec4) Load 866
-             868:  20(i8vec4) VectorShuffle 867 865 4 5 2 3
-                              Store 866 868
-             869:      6(int) Load 8(invocation)
-             870:    600(ptr) AccessChain 34(data) 57 46
-             871:  20(i8vec4) Load 870
-             872: 609(i8vec3) VectorShuffle 871 871 0 1 2
-             873: 609(i8vec3) GroupNonUniformUMax 42 InclusiveScan 872
-             874:    600(ptr) AccessChain 34(data) 869 46
-             875:  20(i8vec4) Load 874
-             876:  20(i8vec4) VectorShuffle 875 873 4 5 6 3
-                              Store 874 876
-             877:      6(int) Load 8(invocation)
-             878:    600(ptr) AccessChain 34(data) 67 46
-             879:  20(i8vec4) Load 878
-             880:  20(i8vec4) GroupNonUniformUMax 42 InclusiveScan 879
-             881:    600(ptr) AccessChain 34(data) 877 46
-                              Store 881 880
-             882:      6(int) Load 8(invocation)
-             883:    593(ptr) AccessChain 34(data) 37 46 38
-             884:  19(int8_t) Load 883
-             885:  19(int8_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 884
-             886:    593(ptr) AccessChain 34(data) 882 46 38
-                              Store 886 885
+             750: 685(i8vec2) VectorShuffle 749 749 0 1
+             751: 685(i8vec2) GroupNonUniformUMin 42 Reduce 750
+             752:    679(ptr) AccessChain 34(data) 747 46 38
+             753:  19(int8_t) CompositeExtract 751 0
+                              Store 752 753
+             754:    679(ptr) AccessChain 34(data) 747 46 55
+             755:  19(int8_t) CompositeExtract 751 1
+                              Store 754 755
+             756:      6(int) Load 8(invocation)
+             757:    686(ptr) AccessChain 34(data) 59 46
+             758:  20(i8vec4) Load 757
+             759: 696(i8vec3) VectorShuffle 758 758 0 1 2
+             760: 696(i8vec3) GroupNonUniformUMin 42 Reduce 759
+             761:    679(ptr) AccessChain 34(data) 756 46 38
+             762:  19(int8_t) CompositeExtract 760 0
+                              Store 761 762
+             763:    679(ptr) AccessChain 34(data) 756 46 55
+             764:  19(int8_t) CompositeExtract 760 1
+                              Store 763 764
+             765:    679(ptr) AccessChain 34(data) 756 46 69
+             766:  19(int8_t) CompositeExtract 760 2
+                              Store 765 766
+             767:      6(int) Load 8(invocation)
+             768:    686(ptr) AccessChain 34(data) 73 46
+             769:  20(i8vec4) Load 768
+             770:  20(i8vec4) GroupNonUniformUMin 42 Reduce 769
+             771:    686(ptr) AccessChain 34(data) 767 46
+                              Store 771 770
+             772:      6(int) Load 8(invocation)
+             773:    679(ptr) AccessChain 34(data) 37 46 38
+             774:  19(int8_t) Load 773
+             775:  19(int8_t) GroupNonUniformUMax 42 Reduce 774
+             776:    679(ptr) AccessChain 34(data) 772 46 38
+                              Store 776 775
+             777:      6(int) Load 8(invocation)
+             778:    686(ptr) AccessChain 34(data) 46 46
+             779:  20(i8vec4) Load 778
+             780: 685(i8vec2) VectorShuffle 779 779 0 1
+             781: 685(i8vec2) GroupNonUniformUMax 42 Reduce 780
+             782:    679(ptr) AccessChain 34(data) 777 46 38
+             783:  19(int8_t) CompositeExtract 781 0
+                              Store 782 783
+             784:    679(ptr) AccessChain 34(data) 777 46 55
+             785:  19(int8_t) CompositeExtract 781 1
+                              Store 784 785
+             786:      6(int) Load 8(invocation)
+             787:    686(ptr) AccessChain 34(data) 59 46
+             788:  20(i8vec4) Load 787
+             789: 696(i8vec3) VectorShuffle 788 788 0 1 2
+             790: 696(i8vec3) GroupNonUniformUMax 42 Reduce 789
+             791:    679(ptr) AccessChain 34(data) 786 46 38
+             792:  19(int8_t) CompositeExtract 790 0
+                              Store 791 792
+             793:    679(ptr) AccessChain 34(data) 786 46 55
+             794:  19(int8_t) CompositeExtract 790 1
+                              Store 793 794
+             795:    679(ptr) AccessChain 34(data) 786 46 69
+             796:  19(int8_t) CompositeExtract 790 2
+                              Store 795 796
+             797:      6(int) Load 8(invocation)
+             798:    686(ptr) AccessChain 34(data) 73 46
+             799:  20(i8vec4) Load 798
+             800:  20(i8vec4) GroupNonUniformUMax 42 Reduce 799
+             801:    686(ptr) AccessChain 34(data) 797 46
+                              Store 801 800
+             802:      6(int) Load 8(invocation)
+             803:    679(ptr) AccessChain 34(data) 37 46 38
+             804:  19(int8_t) Load 803
+             805:  19(int8_t) GroupNonUniformBitwiseAnd 42 Reduce 804
+             806:    679(ptr) AccessChain 34(data) 802 46 38
+                              Store 806 805
+             807:      6(int) Load 8(invocation)
+             808:    686(ptr) AccessChain 34(data) 46 46
+             809:  20(i8vec4) Load 808
+             810: 685(i8vec2) VectorShuffle 809 809 0 1
+             811: 685(i8vec2) GroupNonUniformBitwiseAnd 42 Reduce 810
+             812:    679(ptr) AccessChain 34(data) 807 46 38
+             813:  19(int8_t) CompositeExtract 811 0
+                              Store 812 813
+             814:    679(ptr) AccessChain 34(data) 807 46 55
+             815:  19(int8_t) CompositeExtract 811 1
+                              Store 814 815
+             816:      6(int) Load 8(invocation)
+             817:    686(ptr) AccessChain 34(data) 59 46
+             818:  20(i8vec4) Load 817
+             819: 696(i8vec3) VectorShuffle 818 818 0 1 2
+             820: 696(i8vec3) GroupNonUniformBitwiseAnd 42 Reduce 819
+             821:    679(ptr) AccessChain 34(data) 816 46 38
+             822:  19(int8_t) CompositeExtract 820 0
+                              Store 821 822
+             823:    679(ptr) AccessChain 34(data) 816 46 55
+             824:  19(int8_t) CompositeExtract 820 1
+                              Store 823 824
+             825:    679(ptr) AccessChain 34(data) 816 46 69
+             826:  19(int8_t) CompositeExtract 820 2
+                              Store 825 826
+             827:      6(int) Load 8(invocation)
+             828:    686(ptr) AccessChain 34(data) 73 46
+             829:  20(i8vec4) Load 828
+             830:  20(i8vec4) GroupNonUniformBitwiseAnd 42 Reduce 829
+             831:    686(ptr) AccessChain 34(data) 827 46
+                              Store 831 830
+             832:      6(int) Load 8(invocation)
+             833:    679(ptr) AccessChain 34(data) 37 46 38
+             834:  19(int8_t) Load 833
+             835:  19(int8_t) GroupNonUniformBitwiseOr 42 Reduce 834
+             836:    679(ptr) AccessChain 34(data) 832 46 38
+                              Store 836 835
+             837:      6(int) Load 8(invocation)
+             838:    686(ptr) AccessChain 34(data) 46 46
+             839:  20(i8vec4) Load 838
+             840: 685(i8vec2) VectorShuffle 839 839 0 1
+             841: 685(i8vec2) GroupNonUniformBitwiseOr 42 Reduce 840
+             842:    679(ptr) AccessChain 34(data) 837 46 38
+             843:  19(int8_t) CompositeExtract 841 0
+                              Store 842 843
+             844:    679(ptr) AccessChain 34(data) 837 46 55
+             845:  19(int8_t) CompositeExtract 841 1
+                              Store 844 845
+             846:      6(int) Load 8(invocation)
+             847:    686(ptr) AccessChain 34(data) 59 46
+             848:  20(i8vec4) Load 847
+             849: 696(i8vec3) VectorShuffle 848 848 0 1 2
+             850: 696(i8vec3) GroupNonUniformBitwiseOr 42 Reduce 849
+             851:    679(ptr) AccessChain 34(data) 846 46 38
+             852:  19(int8_t) CompositeExtract 850 0
+                              Store 851 852
+             853:    679(ptr) AccessChain 34(data) 846 46 55
+             854:  19(int8_t) CompositeExtract 850 1
+                              Store 853 854
+             855:    679(ptr) AccessChain 34(data) 846 46 69
+             856:  19(int8_t) CompositeExtract 850 2
+                              Store 855 856
+             857:      6(int) Load 8(invocation)
+             858:    686(ptr) AccessChain 34(data) 73 46
+             859:  20(i8vec4) Load 858
+             860:  20(i8vec4) GroupNonUniformBitwiseOr 42 Reduce 859
+             861:    686(ptr) AccessChain 34(data) 857 46
+                              Store 861 860
+             862:      6(int) Load 8(invocation)
+             863:    679(ptr) AccessChain 34(data) 37 46 38
+             864:  19(int8_t) Load 863
+             865:  19(int8_t) GroupNonUniformBitwiseXor 42 Reduce 864
+             866:    679(ptr) AccessChain 34(data) 862 46 38
+                              Store 866 865
+             867:      6(int) Load 8(invocation)
+             868:    686(ptr) AccessChain 34(data) 46 46
+             869:  20(i8vec4) Load 868
+             870: 685(i8vec2) VectorShuffle 869 869 0 1
+             871: 685(i8vec2) GroupNonUniformBitwiseXor 42 Reduce 870
+             872:    679(ptr) AccessChain 34(data) 867 46 38
+             873:  19(int8_t) CompositeExtract 871 0
+                              Store 872 873
+             874:    679(ptr) AccessChain 34(data) 867 46 55
+             875:  19(int8_t) CompositeExtract 871 1
+                              Store 874 875
+             876:      6(int) Load 8(invocation)
+             877:    686(ptr) AccessChain 34(data) 59 46
+             878:  20(i8vec4) Load 877
+             879: 696(i8vec3) VectorShuffle 878 878 0 1 2
+             880: 696(i8vec3) GroupNonUniformBitwiseXor 42 Reduce 879
+             881:    679(ptr) AccessChain 34(data) 876 46 38
+             882:  19(int8_t) CompositeExtract 880 0
+                              Store 881 882
+             883:    679(ptr) AccessChain 34(data) 876 46 55
+             884:  19(int8_t) CompositeExtract 880 1
+                              Store 883 884
+             885:    679(ptr) AccessChain 34(data) 876 46 69
+             886:  19(int8_t) CompositeExtract 880 2
+                              Store 885 886
              887:      6(int) Load 8(invocation)
-             888:    600(ptr) AccessChain 34(data) 46 46
+             888:    686(ptr) AccessChain 34(data) 73 46
              889:  20(i8vec4) Load 888
-             890: 599(i8vec2) VectorShuffle 889 889 0 1
-             891: 599(i8vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 890
-             892:    600(ptr) AccessChain 34(data) 887 46
-             893:  20(i8vec4) Load 892
-             894:  20(i8vec4) VectorShuffle 893 891 4 5 2 3
-                              Store 892 894
-             895:      6(int) Load 8(invocation)
-             896:    600(ptr) AccessChain 34(data) 57 46
-             897:  20(i8vec4) Load 896
-             898: 609(i8vec3) VectorShuffle 897 897 0 1 2
-             899: 609(i8vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 898
-             900:    600(ptr) AccessChain 34(data) 895 46
-             901:  20(i8vec4) Load 900
-             902:  20(i8vec4) VectorShuffle 901 899 4 5 6 3
-                              Store 900 902
-             903:      6(int) Load 8(invocation)
-             904:    600(ptr) AccessChain 34(data) 67 46
-             905:  20(i8vec4) Load 904
-             906:  20(i8vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 905
-             907:    600(ptr) AccessChain 34(data) 903 46
-                              Store 907 906
-             908:      6(int) Load 8(invocation)
-             909:    593(ptr) AccessChain 34(data) 37 46 38
-             910:  19(int8_t) Load 909
-             911:  19(int8_t) GroupNonUniformBitwiseOr 42 InclusiveScan 910
-             912:    593(ptr) AccessChain 34(data) 908 46 38
-                              Store 912 911
-             913:      6(int) Load 8(invocation)
-             914:    600(ptr) AccessChain 34(data) 46 46
-             915:  20(i8vec4) Load 914
-             916: 599(i8vec2) VectorShuffle 915 915 0 1
-             917: 599(i8vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 916
-             918:    600(ptr) AccessChain 34(data) 913 46
+             890:  20(i8vec4) GroupNonUniformBitwiseXor 42 Reduce 889
+             891:    686(ptr) AccessChain 34(data) 887 46
+                              Store 891 890
+             892:      6(int) Load 8(invocation)
+             893:    679(ptr) AccessChain 34(data) 37 46 38
+             894:  19(int8_t) Load 893
+             895:  19(int8_t) GroupNonUniformIAdd 42 InclusiveScan 894
+             896:    679(ptr) AccessChain 34(data) 892 46 38
+                              Store 896 895
+             897:      6(int) Load 8(invocation)
+             898:    686(ptr) AccessChain 34(data) 46 46
+             899:  20(i8vec4) Load 898
+             900: 685(i8vec2) VectorShuffle 899 899 0 1
+             901: 685(i8vec2) GroupNonUniformIAdd 42 InclusiveScan 900
+             902:    679(ptr) AccessChain 34(data) 897 46 38
+             903:  19(int8_t) CompositeExtract 901 0
+                              Store 902 903
+             904:    679(ptr) AccessChain 34(data) 897 46 55
+             905:  19(int8_t) CompositeExtract 901 1
+                              Store 904 905
+             906:      6(int) Load 8(invocation)
+             907:    686(ptr) AccessChain 34(data) 59 46
+             908:  20(i8vec4) Load 907
+             909: 696(i8vec3) VectorShuffle 908 908 0 1 2
+             910: 696(i8vec3) GroupNonUniformIAdd 42 InclusiveScan 909
+             911:    679(ptr) AccessChain 34(data) 906 46 38
+             912:  19(int8_t) CompositeExtract 910 0
+                              Store 911 912
+             913:    679(ptr) AccessChain 34(data) 906 46 55
+             914:  19(int8_t) CompositeExtract 910 1
+                              Store 913 914
+             915:    679(ptr) AccessChain 34(data) 906 46 69
+             916:  19(int8_t) CompositeExtract 910 2
+                              Store 915 916
+             917:      6(int) Load 8(invocation)
+             918:    686(ptr) AccessChain 34(data) 73 46
              919:  20(i8vec4) Load 918
-             920:  20(i8vec4) VectorShuffle 919 917 4 5 2 3
-                              Store 918 920
-             921:      6(int) Load 8(invocation)
-             922:    600(ptr) AccessChain 34(data) 57 46
-             923:  20(i8vec4) Load 922
-             924: 609(i8vec3) VectorShuffle 923 923 0 1 2
-             925: 609(i8vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 924
-             926:    600(ptr) AccessChain 34(data) 921 46
-             927:  20(i8vec4) Load 926
-             928:  20(i8vec4) VectorShuffle 927 925 4 5 6 3
-                              Store 926 928
-             929:      6(int) Load 8(invocation)
-             930:    600(ptr) AccessChain 34(data) 67 46
-             931:  20(i8vec4) Load 930
-             932:  20(i8vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 931
-             933:    600(ptr) AccessChain 34(data) 929 46
-                              Store 933 932
-             934:      6(int) Load 8(invocation)
-             935:    593(ptr) AccessChain 34(data) 37 46 38
-             936:  19(int8_t) Load 935
-             937:  19(int8_t) GroupNonUniformBitwiseXor 42 InclusiveScan 936
-             938:    593(ptr) AccessChain 34(data) 934 46 38
-                              Store 938 937
-             939:      6(int) Load 8(invocation)
-             940:    600(ptr) AccessChain 34(data) 46 46
-             941:  20(i8vec4) Load 940
-             942: 599(i8vec2) VectorShuffle 941 941 0 1
-             943: 599(i8vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 942
-             944:    600(ptr) AccessChain 34(data) 939 46
-             945:  20(i8vec4) Load 944
-             946:  20(i8vec4) VectorShuffle 945 943 4 5 2 3
-                              Store 944 946
+             920:  20(i8vec4) GroupNonUniformIAdd 42 InclusiveScan 919
+             921:    686(ptr) AccessChain 34(data) 917 46
+                              Store 921 920
+             922:      6(int) Load 8(invocation)
+             923:    679(ptr) AccessChain 34(data) 37 46 38
+             924:  19(int8_t) Load 923
+             925:  19(int8_t) GroupNonUniformIMul 42 InclusiveScan 924
+             926:    679(ptr) AccessChain 34(data) 922 46 38
+                              Store 926 925
+             927:      6(int) Load 8(invocation)
+             928:    686(ptr) AccessChain 34(data) 46 46
+             929:  20(i8vec4) Load 928
+             930: 685(i8vec2) VectorShuffle 929 929 0 1
+             931: 685(i8vec2) GroupNonUniformIMul 42 InclusiveScan 930
+             932:    679(ptr) AccessChain 34(data) 927 46 38
+             933:  19(int8_t) CompositeExtract 931 0
+                              Store 932 933
+             934:    679(ptr) AccessChain 34(data) 927 46 55
+             935:  19(int8_t) CompositeExtract 931 1
+                              Store 934 935
+             936:      6(int) Load 8(invocation)
+             937:    686(ptr) AccessChain 34(data) 59 46
+             938:  20(i8vec4) Load 937
+             939: 696(i8vec3) VectorShuffle 938 938 0 1 2
+             940: 696(i8vec3) GroupNonUniformIMul 42 InclusiveScan 939
+             941:    679(ptr) AccessChain 34(data) 936 46 38
+             942:  19(int8_t) CompositeExtract 940 0
+                              Store 941 942
+             943:    679(ptr) AccessChain 34(data) 936 46 55
+             944:  19(int8_t) CompositeExtract 940 1
+                              Store 943 944
+             945:    679(ptr) AccessChain 34(data) 936 46 69
+             946:  19(int8_t) CompositeExtract 940 2
+                              Store 945 946
              947:      6(int) Load 8(invocation)
-             948:    600(ptr) AccessChain 34(data) 57 46
+             948:    686(ptr) AccessChain 34(data) 73 46
              949:  20(i8vec4) Load 948
-             950: 609(i8vec3) VectorShuffle 949 949 0 1 2
-             951: 609(i8vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 950
-             952:    600(ptr) AccessChain 34(data) 947 46
-             953:  20(i8vec4) Load 952
-             954:  20(i8vec4) VectorShuffle 953 951 4 5 6 3
-                              Store 952 954
-             955:      6(int) Load 8(invocation)
-             956:    600(ptr) AccessChain 34(data) 67 46
-             957:  20(i8vec4) Load 956
-             958:  20(i8vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 957
-             959:    600(ptr) AccessChain 34(data) 955 46
-                              Store 959 958
-             960:      6(int) Load 8(invocation)
-             961:    593(ptr) AccessChain 34(data) 37 46 38
-             962:  19(int8_t) Load 961
-             963:  19(int8_t) GroupNonUniformIAdd 42 ExclusiveScan 962
-             964:    593(ptr) AccessChain 34(data) 960 46 38
-                              Store 964 963
-             965:      6(int) Load 8(invocation)
-             966:    600(ptr) AccessChain 34(data) 46 46
-             967:  20(i8vec4) Load 966
-             968: 599(i8vec2) VectorShuffle 967 967 0 1
-             969: 599(i8vec2) GroupNonUniformIAdd 42 ExclusiveScan 968
-             970:    600(ptr) AccessChain 34(data) 965 46
-             971:  20(i8vec4) Load 970
-             972:  20(i8vec4) VectorShuffle 971 969 4 5 2 3
-                              Store 970 972
-             973:      6(int) Load 8(invocation)
-             974:    600(ptr) AccessChain 34(data) 57 46
-             975:  20(i8vec4) Load 974
-             976: 609(i8vec3) VectorShuffle 975 975 0 1 2
-             977: 609(i8vec3) GroupNonUniformIAdd 42 ExclusiveScan 976
-             978:    600(ptr) AccessChain 34(data) 973 46
+             950:  20(i8vec4) GroupNonUniformIMul 42 InclusiveScan 949
+             951:    686(ptr) AccessChain 34(data) 947 46
+                              Store 951 950
+             952:      6(int) Load 8(invocation)
+             953:    679(ptr) AccessChain 34(data) 37 46 38
+             954:  19(int8_t) Load 953
+             955:  19(int8_t) GroupNonUniformUMin 42 InclusiveScan 954
+             956:    679(ptr) AccessChain 34(data) 952 46 38
+                              Store 956 955
+             957:      6(int) Load 8(invocation)
+             958:    686(ptr) AccessChain 34(data) 46 46
+             959:  20(i8vec4) Load 958
+             960: 685(i8vec2) VectorShuffle 959 959 0 1
+             961: 685(i8vec2) GroupNonUniformUMin 42 InclusiveScan 960
+             962:    679(ptr) AccessChain 34(data) 957 46 38
+             963:  19(int8_t) CompositeExtract 961 0
+                              Store 962 963
+             964:    679(ptr) AccessChain 34(data) 957 46 55
+             965:  19(int8_t) CompositeExtract 961 1
+                              Store 964 965
+             966:      6(int) Load 8(invocation)
+             967:    686(ptr) AccessChain 34(data) 59 46
+             968:  20(i8vec4) Load 967
+             969: 696(i8vec3) VectorShuffle 968 968 0 1 2
+             970: 696(i8vec3) GroupNonUniformUMin 42 InclusiveScan 969
+             971:    679(ptr) AccessChain 34(data) 966 46 38
+             972:  19(int8_t) CompositeExtract 970 0
+                              Store 971 972
+             973:    679(ptr) AccessChain 34(data) 966 46 55
+             974:  19(int8_t) CompositeExtract 970 1
+                              Store 973 974
+             975:    679(ptr) AccessChain 34(data) 966 46 69
+             976:  19(int8_t) CompositeExtract 970 2
+                              Store 975 976
+             977:      6(int) Load 8(invocation)
+             978:    686(ptr) AccessChain 34(data) 73 46
              979:  20(i8vec4) Load 978
-             980:  20(i8vec4) VectorShuffle 979 977 4 5 6 3
-                              Store 978 980
-             981:      6(int) Load 8(invocation)
-             982:    600(ptr) AccessChain 34(data) 67 46
-             983:  20(i8vec4) Load 982
-             984:  20(i8vec4) GroupNonUniformIAdd 42 ExclusiveScan 983
-             985:    600(ptr) AccessChain 34(data) 981 46
-                              Store 985 984
-             986:      6(int) Load 8(invocation)
-             987:    593(ptr) AccessChain 34(data) 37 46 38
-             988:  19(int8_t) Load 987
-             989:  19(int8_t) GroupNonUniformIMul 42 ExclusiveScan 988
-             990:    593(ptr) AccessChain 34(data) 986 46 38
-                              Store 990 989
-             991:      6(int) Load 8(invocation)
-             992:    600(ptr) AccessChain 34(data) 46 46
-             993:  20(i8vec4) Load 992
-             994: 599(i8vec2) VectorShuffle 993 993 0 1
-             995: 599(i8vec2) GroupNonUniformIMul 42 ExclusiveScan 994
-             996:    600(ptr) AccessChain 34(data) 991 46
-             997:  20(i8vec4) Load 996
-             998:  20(i8vec4) VectorShuffle 997 995 4 5 2 3
-                              Store 996 998
-             999:      6(int) Load 8(invocation)
-            1000:    600(ptr) AccessChain 34(data) 57 46
-            1001:  20(i8vec4) Load 1000
-            1002: 609(i8vec3) VectorShuffle 1001 1001 0 1 2
-            1003: 609(i8vec3) GroupNonUniformIMul 42 ExclusiveScan 1002
-            1004:    600(ptr) AccessChain 34(data) 999 46
-            1005:  20(i8vec4) Load 1004
-            1006:  20(i8vec4) VectorShuffle 1005 1003 4 5 6 3
-                              Store 1004 1006
+             980:  20(i8vec4) GroupNonUniformUMin 42 InclusiveScan 979
+             981:    686(ptr) AccessChain 34(data) 977 46
+                              Store 981 980
+             982:      6(int) Load 8(invocation)
+             983:    679(ptr) AccessChain 34(data) 37 46 38
+             984:  19(int8_t) Load 983
+             985:  19(int8_t) GroupNonUniformUMax 42 InclusiveScan 984
+             986:    679(ptr) AccessChain 34(data) 982 46 38
+                              Store 986 985
+             987:      6(int) Load 8(invocation)
+             988:    686(ptr) AccessChain 34(data) 46 46
+             989:  20(i8vec4) Load 988
+             990: 685(i8vec2) VectorShuffle 989 989 0 1
+             991: 685(i8vec2) GroupNonUniformUMax 42 InclusiveScan 990
+             992:    679(ptr) AccessChain 34(data) 987 46 38
+             993:  19(int8_t) CompositeExtract 991 0
+                              Store 992 993
+             994:    679(ptr) AccessChain 34(data) 987 46 55
+             995:  19(int8_t) CompositeExtract 991 1
+                              Store 994 995
+             996:      6(int) Load 8(invocation)
+             997:    686(ptr) AccessChain 34(data) 59 46
+             998:  20(i8vec4) Load 997
+             999: 696(i8vec3) VectorShuffle 998 998 0 1 2
+            1000: 696(i8vec3) GroupNonUniformUMax 42 InclusiveScan 999
+            1001:    679(ptr) AccessChain 34(data) 996 46 38
+            1002:  19(int8_t) CompositeExtract 1000 0
+                              Store 1001 1002
+            1003:    679(ptr) AccessChain 34(data) 996 46 55
+            1004:  19(int8_t) CompositeExtract 1000 1
+                              Store 1003 1004
+            1005:    679(ptr) AccessChain 34(data) 996 46 69
+            1006:  19(int8_t) CompositeExtract 1000 2
+                              Store 1005 1006
             1007:      6(int) Load 8(invocation)
-            1008:    600(ptr) AccessChain 34(data) 67 46
+            1008:    686(ptr) AccessChain 34(data) 73 46
             1009:  20(i8vec4) Load 1008
-            1010:  20(i8vec4) GroupNonUniformIMul 42 ExclusiveScan 1009
-            1011:    600(ptr) AccessChain 34(data) 1007 46
+            1010:  20(i8vec4) GroupNonUniformUMax 42 InclusiveScan 1009
+            1011:    686(ptr) AccessChain 34(data) 1007 46
                               Store 1011 1010
             1012:      6(int) Load 8(invocation)
-            1013:    593(ptr) AccessChain 34(data) 37 46 38
+            1013:    679(ptr) AccessChain 34(data) 37 46 38
             1014:  19(int8_t) Load 1013
-            1015:  19(int8_t) GroupNonUniformUMin 42 ExclusiveScan 1014
-            1016:    593(ptr) AccessChain 34(data) 1012 46 38
+            1015:  19(int8_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 1014
+            1016:    679(ptr) AccessChain 34(data) 1012 46 38
                               Store 1016 1015
             1017:      6(int) Load 8(invocation)
-            1018:    600(ptr) AccessChain 34(data) 46 46
+            1018:    686(ptr) AccessChain 34(data) 46 46
             1019:  20(i8vec4) Load 1018
-            1020: 599(i8vec2) VectorShuffle 1019 1019 0 1
-            1021: 599(i8vec2) GroupNonUniformUMin 42 ExclusiveScan 1020
-            1022:    600(ptr) AccessChain 34(data) 1017 46
-            1023:  20(i8vec4) Load 1022
-            1024:  20(i8vec4) VectorShuffle 1023 1021 4 5 2 3
-                              Store 1022 1024
-            1025:      6(int) Load 8(invocation)
-            1026:    600(ptr) AccessChain 34(data) 57 46
-            1027:  20(i8vec4) Load 1026
-            1028: 609(i8vec3) VectorShuffle 1027 1027 0 1 2
-            1029: 609(i8vec3) GroupNonUniformUMin 42 ExclusiveScan 1028
-            1030:    600(ptr) AccessChain 34(data) 1025 46
-            1031:  20(i8vec4) Load 1030
-            1032:  20(i8vec4) VectorShuffle 1031 1029 4 5 6 3
-                              Store 1030 1032
-            1033:      6(int) Load 8(invocation)
-            1034:    600(ptr) AccessChain 34(data) 67 46
-            1035:  20(i8vec4) Load 1034
-            1036:  20(i8vec4) GroupNonUniformUMin 42 ExclusiveScan 1035
-            1037:    600(ptr) AccessChain 34(data) 1033 46
-                              Store 1037 1036
-            1038:      6(int) Load 8(invocation)
-            1039:    593(ptr) AccessChain 34(data) 37 46 38
-            1040:  19(int8_t) Load 1039
-            1041:  19(int8_t) GroupNonUniformUMax 42 ExclusiveScan 1040
-            1042:    593(ptr) AccessChain 34(data) 1038 46 38
-                              Store 1042 1041
-            1043:      6(int) Load 8(invocation)
-            1044:    600(ptr) AccessChain 34(data) 46 46
-            1045:  20(i8vec4) Load 1044
-            1046: 599(i8vec2) VectorShuffle 1045 1045 0 1
-            1047: 599(i8vec2) GroupNonUniformUMax 42 ExclusiveScan 1046
-            1048:    600(ptr) AccessChain 34(data) 1043 46
+            1020: 685(i8vec2) VectorShuffle 1019 1019 0 1
+            1021: 685(i8vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 1020
+            1022:    679(ptr) AccessChain 34(data) 1017 46 38
+            1023:  19(int8_t) CompositeExtract 1021 0
+                              Store 1022 1023
+            1024:    679(ptr) AccessChain 34(data) 1017 46 55
+            1025:  19(int8_t) CompositeExtract 1021 1
+                              Store 1024 1025
+            1026:      6(int) Load 8(invocation)
+            1027:    686(ptr) AccessChain 34(data) 59 46
+            1028:  20(i8vec4) Load 1027
+            1029: 696(i8vec3) VectorShuffle 1028 1028 0 1 2
+            1030: 696(i8vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 1029
+            1031:    679(ptr) AccessChain 34(data) 1026 46 38
+            1032:  19(int8_t) CompositeExtract 1030 0
+                              Store 1031 1032
+            1033:    679(ptr) AccessChain 34(data) 1026 46 55
+            1034:  19(int8_t) CompositeExtract 1030 1
+                              Store 1033 1034
+            1035:    679(ptr) AccessChain 34(data) 1026 46 69
+            1036:  19(int8_t) CompositeExtract 1030 2
+                              Store 1035 1036
+            1037:      6(int) Load 8(invocation)
+            1038:    686(ptr) AccessChain 34(data) 73 46
+            1039:  20(i8vec4) Load 1038
+            1040:  20(i8vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 1039
+            1041:    686(ptr) AccessChain 34(data) 1037 46
+                              Store 1041 1040
+            1042:      6(int) Load 8(invocation)
+            1043:    679(ptr) AccessChain 34(data) 37 46 38
+            1044:  19(int8_t) Load 1043
+            1045:  19(int8_t) GroupNonUniformBitwiseOr 42 InclusiveScan 1044
+            1046:    679(ptr) AccessChain 34(data) 1042 46 38
+                              Store 1046 1045
+            1047:      6(int) Load 8(invocation)
+            1048:    686(ptr) AccessChain 34(data) 46 46
             1049:  20(i8vec4) Load 1048
-            1050:  20(i8vec4) VectorShuffle 1049 1047 4 5 2 3
-                              Store 1048 1050
-            1051:      6(int) Load 8(invocation)
-            1052:    600(ptr) AccessChain 34(data) 57 46
-            1053:  20(i8vec4) Load 1052
-            1054: 609(i8vec3) VectorShuffle 1053 1053 0 1 2
-            1055: 609(i8vec3) GroupNonUniformUMax 42 ExclusiveScan 1054
-            1056:    600(ptr) AccessChain 34(data) 1051 46
-            1057:  20(i8vec4) Load 1056
-            1058:  20(i8vec4) VectorShuffle 1057 1055 4 5 6 3
-                              Store 1056 1058
-            1059:      6(int) Load 8(invocation)
-            1060:    600(ptr) AccessChain 34(data) 67 46
-            1061:  20(i8vec4) Load 1060
-            1062:  20(i8vec4) GroupNonUniformUMax 42 ExclusiveScan 1061
-            1063:    600(ptr) AccessChain 34(data) 1059 46
-                              Store 1063 1062
-            1064:      6(int) Load 8(invocation)
-            1065:    593(ptr) AccessChain 34(data) 37 46 38
-            1066:  19(int8_t) Load 1065
-            1067:  19(int8_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1066
-            1068:    593(ptr) AccessChain 34(data) 1064 46 38
-                              Store 1068 1067
-            1069:      6(int) Load 8(invocation)
-            1070:    600(ptr) AccessChain 34(data) 46 46
-            1071:  20(i8vec4) Load 1070
-            1072: 599(i8vec2) VectorShuffle 1071 1071 0 1
-            1073: 599(i8vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1072
-            1074:    600(ptr) AccessChain 34(data) 1069 46
-            1075:  20(i8vec4) Load 1074
-            1076:  20(i8vec4) VectorShuffle 1075 1073 4 5 2 3
-                              Store 1074 1076
+            1050: 685(i8vec2) VectorShuffle 1049 1049 0 1
+            1051: 685(i8vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 1050
+            1052:    679(ptr) AccessChain 34(data) 1047 46 38
+            1053:  19(int8_t) CompositeExtract 1051 0
+                              Store 1052 1053
+            1054:    679(ptr) AccessChain 34(data) 1047 46 55
+            1055:  19(int8_t) CompositeExtract 1051 1
+                              Store 1054 1055
+            1056:      6(int) Load 8(invocation)
+            1057:    686(ptr) AccessChain 34(data) 59 46
+            1058:  20(i8vec4) Load 1057
+            1059: 696(i8vec3) VectorShuffle 1058 1058 0 1 2
+            1060: 696(i8vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 1059
+            1061:    679(ptr) AccessChain 34(data) 1056 46 38
+            1062:  19(int8_t) CompositeExtract 1060 0
+                              Store 1061 1062
+            1063:    679(ptr) AccessChain 34(data) 1056 46 55
+            1064:  19(int8_t) CompositeExtract 1060 1
+                              Store 1063 1064
+            1065:    679(ptr) AccessChain 34(data) 1056 46 69
+            1066:  19(int8_t) CompositeExtract 1060 2
+                              Store 1065 1066
+            1067:      6(int) Load 8(invocation)
+            1068:    686(ptr) AccessChain 34(data) 73 46
+            1069:  20(i8vec4) Load 1068
+            1070:  20(i8vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 1069
+            1071:    686(ptr) AccessChain 34(data) 1067 46
+                              Store 1071 1070
+            1072:      6(int) Load 8(invocation)
+            1073:    679(ptr) AccessChain 34(data) 37 46 38
+            1074:  19(int8_t) Load 1073
+            1075:  19(int8_t) GroupNonUniformBitwiseXor 42 InclusiveScan 1074
+            1076:    679(ptr) AccessChain 34(data) 1072 46 38
+                              Store 1076 1075
             1077:      6(int) Load 8(invocation)
-            1078:    600(ptr) AccessChain 34(data) 57 46
+            1078:    686(ptr) AccessChain 34(data) 46 46
             1079:  20(i8vec4) Load 1078
-            1080: 609(i8vec3) VectorShuffle 1079 1079 0 1 2
-            1081: 609(i8vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1080
-            1082:    600(ptr) AccessChain 34(data) 1077 46
-            1083:  20(i8vec4) Load 1082
-            1084:  20(i8vec4) VectorShuffle 1083 1081 4 5 6 3
-                              Store 1082 1084
-            1085:      6(int) Load 8(invocation)
-            1086:    600(ptr) AccessChain 34(data) 67 46
-            1087:  20(i8vec4) Load 1086
-            1088:  20(i8vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1087
-            1089:    600(ptr) AccessChain 34(data) 1085 46
-                              Store 1089 1088
-            1090:      6(int) Load 8(invocation)
-            1091:    593(ptr) AccessChain 34(data) 37 46 38
-            1092:  19(int8_t) Load 1091
-            1093:  19(int8_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 1092
-            1094:    593(ptr) AccessChain 34(data) 1090 46 38
-                              Store 1094 1093
-            1095:      6(int) Load 8(invocation)
-            1096:    600(ptr) AccessChain 34(data) 46 46
-            1097:  20(i8vec4) Load 1096
-            1098: 599(i8vec2) VectorShuffle 1097 1097 0 1
-            1099: 599(i8vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 1098
-            1100:    600(ptr) AccessChain 34(data) 1095 46
-            1101:  20(i8vec4) Load 1100
-            1102:  20(i8vec4) VectorShuffle 1101 1099 4 5 2 3
-                              Store 1100 1102
-            1103:      6(int) Load 8(invocation)
-            1104:    600(ptr) AccessChain 34(data) 57 46
-            1105:  20(i8vec4) Load 1104
-            1106: 609(i8vec3) VectorShuffle 1105 1105 0 1 2
-            1107: 609(i8vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 1106
-            1108:    600(ptr) AccessChain 34(data) 1103 46
+            1080: 685(i8vec2) VectorShuffle 1079 1079 0 1
+            1081: 685(i8vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 1080
+            1082:    679(ptr) AccessChain 34(data) 1077 46 38
+            1083:  19(int8_t) CompositeExtract 1081 0
+                              Store 1082 1083
+            1084:    679(ptr) AccessChain 34(data) 1077 46 55
+            1085:  19(int8_t) CompositeExtract 1081 1
+                              Store 1084 1085
+            1086:      6(int) Load 8(invocation)
+            1087:    686(ptr) AccessChain 34(data) 59 46
+            1088:  20(i8vec4) Load 1087
+            1089: 696(i8vec3) VectorShuffle 1088 1088 0 1 2
+            1090: 696(i8vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 1089
+            1091:    679(ptr) AccessChain 34(data) 1086 46 38
+            1092:  19(int8_t) CompositeExtract 1090 0
+                              Store 1091 1092
+            1093:    679(ptr) AccessChain 34(data) 1086 46 55
+            1094:  19(int8_t) CompositeExtract 1090 1
+                              Store 1093 1094
+            1095:    679(ptr) AccessChain 34(data) 1086 46 69
+            1096:  19(int8_t) CompositeExtract 1090 2
+                              Store 1095 1096
+            1097:      6(int) Load 8(invocation)
+            1098:    686(ptr) AccessChain 34(data) 73 46
+            1099:  20(i8vec4) Load 1098
+            1100:  20(i8vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 1099
+            1101:    686(ptr) AccessChain 34(data) 1097 46
+                              Store 1101 1100
+            1102:      6(int) Load 8(invocation)
+            1103:    679(ptr) AccessChain 34(data) 37 46 38
+            1104:  19(int8_t) Load 1103
+            1105:  19(int8_t) GroupNonUniformIAdd 42 ExclusiveScan 1104
+            1106:    679(ptr) AccessChain 34(data) 1102 46 38
+                              Store 1106 1105
+            1107:      6(int) Load 8(invocation)
+            1108:    686(ptr) AccessChain 34(data) 46 46
             1109:  20(i8vec4) Load 1108
-            1110:  20(i8vec4) VectorShuffle 1109 1107 4 5 6 3
-                              Store 1108 1110
-            1111:      6(int) Load 8(invocation)
-            1112:    600(ptr) AccessChain 34(data) 67 46
-            1113:  20(i8vec4) Load 1112
-            1114:  20(i8vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 1113
-            1115:    600(ptr) AccessChain 34(data) 1111 46
-                              Store 1115 1114
+            1110: 685(i8vec2) VectorShuffle 1109 1109 0 1
+            1111: 685(i8vec2) GroupNonUniformIAdd 42 ExclusiveScan 1110
+            1112:    679(ptr) AccessChain 34(data) 1107 46 38
+            1113:  19(int8_t) CompositeExtract 1111 0
+                              Store 1112 1113
+            1114:    679(ptr) AccessChain 34(data) 1107 46 55
+            1115:  19(int8_t) CompositeExtract 1111 1
+                              Store 1114 1115
             1116:      6(int) Load 8(invocation)
-            1117:    593(ptr) AccessChain 34(data) 37 46 38
-            1118:  19(int8_t) Load 1117
-            1119:  19(int8_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 1118
-            1120:    593(ptr) AccessChain 34(data) 1116 46 38
-                              Store 1120 1119
-            1121:      6(int) Load 8(invocation)
-            1122:    600(ptr) AccessChain 34(data) 46 46
-            1123:  20(i8vec4) Load 1122
-            1124: 599(i8vec2) VectorShuffle 1123 1123 0 1
-            1125: 599(i8vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 1124
-            1126:    600(ptr) AccessChain 34(data) 1121 46
-            1127:  20(i8vec4) Load 1126
-            1128:  20(i8vec4) VectorShuffle 1127 1125 4 5 2 3
-                              Store 1126 1128
-            1129:      6(int) Load 8(invocation)
-            1130:    600(ptr) AccessChain 34(data) 57 46
-            1131:  20(i8vec4) Load 1130
-            1132: 609(i8vec3) VectorShuffle 1131 1131 0 1 2
-            1133: 609(i8vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 1132
-            1134:    600(ptr) AccessChain 34(data) 1129 46
-            1135:  20(i8vec4) Load 1134
-            1136:  20(i8vec4) VectorShuffle 1135 1133 4 5 6 3
-                              Store 1134 1136
+            1117:    686(ptr) AccessChain 34(data) 59 46
+            1118:  20(i8vec4) Load 1117
+            1119: 696(i8vec3) VectorShuffle 1118 1118 0 1 2
+            1120: 696(i8vec3) GroupNonUniformIAdd 42 ExclusiveScan 1119
+            1121:    679(ptr) AccessChain 34(data) 1116 46 38
+            1122:  19(int8_t) CompositeExtract 1120 0
+                              Store 1121 1122
+            1123:    679(ptr) AccessChain 34(data) 1116 46 55
+            1124:  19(int8_t) CompositeExtract 1120 1
+                              Store 1123 1124
+            1125:    679(ptr) AccessChain 34(data) 1116 46 69
+            1126:  19(int8_t) CompositeExtract 1120 2
+                              Store 1125 1126
+            1127:      6(int) Load 8(invocation)
+            1128:    686(ptr) AccessChain 34(data) 73 46
+            1129:  20(i8vec4) Load 1128
+            1130:  20(i8vec4) GroupNonUniformIAdd 42 ExclusiveScan 1129
+            1131:    686(ptr) AccessChain 34(data) 1127 46
+                              Store 1131 1130
+            1132:      6(int) Load 8(invocation)
+            1133:    679(ptr) AccessChain 34(data) 37 46 38
+            1134:  19(int8_t) Load 1133
+            1135:  19(int8_t) GroupNonUniformIMul 42 ExclusiveScan 1134
+            1136:    679(ptr) AccessChain 34(data) 1132 46 38
+                              Store 1136 1135
             1137:      6(int) Load 8(invocation)
-            1138:    600(ptr) AccessChain 34(data) 67 46
+            1138:    686(ptr) AccessChain 34(data) 46 46
             1139:  20(i8vec4) Load 1138
-            1140:  20(i8vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 1139
-            1141:    600(ptr) AccessChain 34(data) 1137 46
-                              Store 1141 1140
-            1142:      6(int) Load 8(invocation)
-            1144:   1143(ptr) AccessChain 34(data) 37 57 38
-            1145: 21(int16_t) Load 1144
-            1146: 21(int16_t) GroupNonUniformIAdd 42 Reduce 1145
-            1147:   1143(ptr) AccessChain 34(data) 1142 57 38
-                              Store 1147 1146
-            1148:      6(int) Load 8(invocation)
-            1151:   1150(ptr) AccessChain 34(data) 46 57
-            1152: 22(i16vec4) Load 1151
-            1153:1149(i16vec2) VectorShuffle 1152 1152 0 1
-            1154:1149(i16vec2) GroupNonUniformIAdd 42 Reduce 1153
-            1155:   1150(ptr) AccessChain 34(data) 1148 57
-            1156: 22(i16vec4) Load 1155
-            1157: 22(i16vec4) VectorShuffle 1156 1154 4 5 2 3
-                              Store 1155 1157
-            1158:      6(int) Load 8(invocation)
-            1160:   1150(ptr) AccessChain 34(data) 57 57
-            1161: 22(i16vec4) Load 1160
-            1162:1159(i16vec3) VectorShuffle 1161 1161 0 1 2
-            1163:1159(i16vec3) GroupNonUniformIAdd 42 Reduce 1162
-            1164:   1150(ptr) AccessChain 34(data) 1158 57
-            1165: 22(i16vec4) Load 1164
-            1166: 22(i16vec4) VectorShuffle 1165 1163 4 5 6 3
-                              Store 1164 1166
+            1140: 685(i8vec2) VectorShuffle 1139 1139 0 1
+            1141: 685(i8vec2) GroupNonUniformIMul 42 ExclusiveScan 1140
+            1142:    679(ptr) AccessChain 34(data) 1137 46 38
+            1143:  19(int8_t) CompositeExtract 1141 0
+                              Store 1142 1143
+            1144:    679(ptr) AccessChain 34(data) 1137 46 55
+            1145:  19(int8_t) CompositeExtract 1141 1
+                              Store 1144 1145
+            1146:      6(int) Load 8(invocation)
+            1147:    686(ptr) AccessChain 34(data) 59 46
+            1148:  20(i8vec4) Load 1147
+            1149: 696(i8vec3) VectorShuffle 1148 1148 0 1 2
+            1150: 696(i8vec3) GroupNonUniformIMul 42 ExclusiveScan 1149
+            1151:    679(ptr) AccessChain 34(data) 1146 46 38
+            1152:  19(int8_t) CompositeExtract 1150 0
+                              Store 1151 1152
+            1153:    679(ptr) AccessChain 34(data) 1146 46 55
+            1154:  19(int8_t) CompositeExtract 1150 1
+                              Store 1153 1154
+            1155:    679(ptr) AccessChain 34(data) 1146 46 69
+            1156:  19(int8_t) CompositeExtract 1150 2
+                              Store 1155 1156
+            1157:      6(int) Load 8(invocation)
+            1158:    686(ptr) AccessChain 34(data) 73 46
+            1159:  20(i8vec4) Load 1158
+            1160:  20(i8vec4) GroupNonUniformIMul 42 ExclusiveScan 1159
+            1161:    686(ptr) AccessChain 34(data) 1157 46
+                              Store 1161 1160
+            1162:      6(int) Load 8(invocation)
+            1163:    679(ptr) AccessChain 34(data) 37 46 38
+            1164:  19(int8_t) Load 1163
+            1165:  19(int8_t) GroupNonUniformUMin 42 ExclusiveScan 1164
+            1166:    679(ptr) AccessChain 34(data) 1162 46 38
+                              Store 1166 1165
             1167:      6(int) Load 8(invocation)
-            1168:   1150(ptr) AccessChain 34(data) 67 57
-            1169: 22(i16vec4) Load 1168
-            1170: 22(i16vec4) GroupNonUniformIAdd 42 Reduce 1169
-            1171:   1150(ptr) AccessChain 34(data) 1167 57
-                              Store 1171 1170
-            1172:      6(int) Load 8(invocation)
-            1173:   1143(ptr) AccessChain 34(data) 37 57 38
-            1174: 21(int16_t) Load 1173
-            1175: 21(int16_t) GroupNonUniformIMul 42 Reduce 1174
-            1176:   1143(ptr) AccessChain 34(data) 1172 57 38
-                              Store 1176 1175
-            1177:      6(int) Load 8(invocation)
-            1178:   1150(ptr) AccessChain 34(data) 46 57
-            1179: 22(i16vec4) Load 1178
-            1180:1149(i16vec2) VectorShuffle 1179 1179 0 1
-            1181:1149(i16vec2) GroupNonUniformIMul 42 Reduce 1180
-            1182:   1150(ptr) AccessChain 34(data) 1177 57
-            1183: 22(i16vec4) Load 1182
-            1184: 22(i16vec4) VectorShuffle 1183 1181 4 5 2 3
-                              Store 1182 1184
-            1185:      6(int) Load 8(invocation)
-            1186:   1150(ptr) AccessChain 34(data) 57 57
-            1187: 22(i16vec4) Load 1186
-            1188:1159(i16vec3) VectorShuffle 1187 1187 0 1 2
-            1189:1159(i16vec3) GroupNonUniformIMul 42 Reduce 1188
-            1190:   1150(ptr) AccessChain 34(data) 1185 57
-            1191: 22(i16vec4) Load 1190
-            1192: 22(i16vec4) VectorShuffle 1191 1189 4 5 6 3
-                              Store 1190 1192
-            1193:      6(int) Load 8(invocation)
-            1194:   1150(ptr) AccessChain 34(data) 67 57
-            1195: 22(i16vec4) Load 1194
-            1196: 22(i16vec4) GroupNonUniformIMul 42 Reduce 1195
-            1197:   1150(ptr) AccessChain 34(data) 1193 57
-                              Store 1197 1196
-            1198:      6(int) Load 8(invocation)
-            1199:   1143(ptr) AccessChain 34(data) 37 57 38
-            1200: 21(int16_t) Load 1199
-            1201: 21(int16_t) GroupNonUniformSMin 42 Reduce 1200
-            1202:   1143(ptr) AccessChain 34(data) 1198 57 38
-                              Store 1202 1201
-            1203:      6(int) Load 8(invocation)
-            1204:   1150(ptr) AccessChain 34(data) 46 57
-            1205: 22(i16vec4) Load 1204
-            1206:1149(i16vec2) VectorShuffle 1205 1205 0 1
-            1207:1149(i16vec2) GroupNonUniformSMin 42 Reduce 1206
-            1208:   1150(ptr) AccessChain 34(data) 1203 57
-            1209: 22(i16vec4) Load 1208
-            1210: 22(i16vec4) VectorShuffle 1209 1207 4 5 2 3
-                              Store 1208 1210
-            1211:      6(int) Load 8(invocation)
-            1212:   1150(ptr) AccessChain 34(data) 57 57
-            1213: 22(i16vec4) Load 1212
-            1214:1159(i16vec3) VectorShuffle 1213 1213 0 1 2
-            1215:1159(i16vec3) GroupNonUniformSMin 42 Reduce 1214
-            1216:   1150(ptr) AccessChain 34(data) 1211 57
-            1217: 22(i16vec4) Load 1216
-            1218: 22(i16vec4) VectorShuffle 1217 1215 4 5 6 3
-                              Store 1216 1218
-            1219:      6(int) Load 8(invocation)
-            1220:   1150(ptr) AccessChain 34(data) 67 57
-            1221: 22(i16vec4) Load 1220
-            1222: 22(i16vec4) GroupNonUniformSMin 42 Reduce 1221
-            1223:   1150(ptr) AccessChain 34(data) 1219 57
-                              Store 1223 1222
-            1224:      6(int) Load 8(invocation)
-            1225:   1143(ptr) AccessChain 34(data) 37 57 38
-            1226: 21(int16_t) Load 1225
-            1227: 21(int16_t) GroupNonUniformSMax 42 Reduce 1226
-            1228:   1143(ptr) AccessChain 34(data) 1224 57 38
-                              Store 1228 1227
-            1229:      6(int) Load 8(invocation)
-            1230:   1150(ptr) AccessChain 34(data) 46 57
-            1231: 22(i16vec4) Load 1230
-            1232:1149(i16vec2) VectorShuffle 1231 1231 0 1
-            1233:1149(i16vec2) GroupNonUniformSMax 42 Reduce 1232
-            1234:   1150(ptr) AccessChain 34(data) 1229 57
-            1235: 22(i16vec4) Load 1234
-            1236: 22(i16vec4) VectorShuffle 1235 1233 4 5 2 3
-                              Store 1234 1236
-            1237:      6(int) Load 8(invocation)
-            1238:   1150(ptr) AccessChain 34(data) 57 57
-            1239: 22(i16vec4) Load 1238
-            1240:1159(i16vec3) VectorShuffle 1239 1239 0 1 2
-            1241:1159(i16vec3) GroupNonUniformSMax 42 Reduce 1240
-            1242:   1150(ptr) AccessChain 34(data) 1237 57
-            1243: 22(i16vec4) Load 1242
-            1244: 22(i16vec4) VectorShuffle 1243 1241 4 5 6 3
-                              Store 1242 1244
-            1245:      6(int) Load 8(invocation)
-            1246:   1150(ptr) AccessChain 34(data) 67 57
-            1247: 22(i16vec4) Load 1246
-            1248: 22(i16vec4) GroupNonUniformSMax 42 Reduce 1247
-            1249:   1150(ptr) AccessChain 34(data) 1245 57
-                              Store 1249 1248
-            1250:      6(int) Load 8(invocation)
-            1251:   1143(ptr) AccessChain 34(data) 37 57 38
-            1252: 21(int16_t) Load 1251
-            1253: 21(int16_t) GroupNonUniformBitwiseAnd 42 Reduce 1252
-            1254:   1143(ptr) AccessChain 34(data) 1250 57 38
-                              Store 1254 1253
-            1255:      6(int) Load 8(invocation)
-            1256:   1150(ptr) AccessChain 34(data) 46 57
-            1257: 22(i16vec4) Load 1256
-            1258:1149(i16vec2) VectorShuffle 1257 1257 0 1
-            1259:1149(i16vec2) GroupNonUniformBitwiseAnd 42 Reduce 1258
-            1260:   1150(ptr) AccessChain 34(data) 1255 57
-            1261: 22(i16vec4) Load 1260
-            1262: 22(i16vec4) VectorShuffle 1261 1259 4 5 2 3
-                              Store 1260 1262
-            1263:      6(int) Load 8(invocation)
-            1264:   1150(ptr) AccessChain 34(data) 57 57
-            1265: 22(i16vec4) Load 1264
-            1266:1159(i16vec3) VectorShuffle 1265 1265 0 1 2
-            1267:1159(i16vec3) GroupNonUniformBitwiseAnd 42 Reduce 1266
-            1268:   1150(ptr) AccessChain 34(data) 1263 57
-            1269: 22(i16vec4) Load 1268
-            1270: 22(i16vec4) VectorShuffle 1269 1267 4 5 6 3
-                              Store 1268 1270
-            1271:      6(int) Load 8(invocation)
-            1272:   1150(ptr) AccessChain 34(data) 67 57
-            1273: 22(i16vec4) Load 1272
-            1274: 22(i16vec4) GroupNonUniformBitwiseAnd 42 Reduce 1273
-            1275:   1150(ptr) AccessChain 34(data) 1271 57
-                              Store 1275 1274
-            1276:      6(int) Load 8(invocation)
-            1277:   1143(ptr) AccessChain 34(data) 37 57 38
-            1278: 21(int16_t) Load 1277
-            1279: 21(int16_t) GroupNonUniformBitwiseOr 42 Reduce 1278
-            1280:   1143(ptr) AccessChain 34(data) 1276 57 38
-                              Store 1280 1279
-            1281:      6(int) Load 8(invocation)
-            1282:   1150(ptr) AccessChain 34(data) 46 57
-            1283: 22(i16vec4) Load 1282
-            1284:1149(i16vec2) VectorShuffle 1283 1283 0 1
-            1285:1149(i16vec2) GroupNonUniformBitwiseOr 42 Reduce 1284
-            1286:   1150(ptr) AccessChain 34(data) 1281 57
-            1287: 22(i16vec4) Load 1286
-            1288: 22(i16vec4) VectorShuffle 1287 1285 4 5 2 3
-                              Store 1286 1288
-            1289:      6(int) Load 8(invocation)
-            1290:   1150(ptr) AccessChain 34(data) 57 57
-            1291: 22(i16vec4) Load 1290
-            1292:1159(i16vec3) VectorShuffle 1291 1291 0 1 2
-            1293:1159(i16vec3) GroupNonUniformBitwiseOr 42 Reduce 1292
-            1294:   1150(ptr) AccessChain 34(data) 1289 57
-            1295: 22(i16vec4) Load 1294
-            1296: 22(i16vec4) VectorShuffle 1295 1293 4 5 6 3
-                              Store 1294 1296
-            1297:      6(int) Load 8(invocation)
-            1298:   1150(ptr) AccessChain 34(data) 67 57
-            1299: 22(i16vec4) Load 1298
-            1300: 22(i16vec4) GroupNonUniformBitwiseOr 42 Reduce 1299
-            1301:   1150(ptr) AccessChain 34(data) 1297 57
-                              Store 1301 1300
-            1302:      6(int) Load 8(invocation)
-            1303:   1143(ptr) AccessChain 34(data) 37 57 38
-            1304: 21(int16_t) Load 1303
-            1305: 21(int16_t) GroupNonUniformBitwiseXor 42 Reduce 1304
-            1306:   1143(ptr) AccessChain 34(data) 1302 57 38
-                              Store 1306 1305
+            1168:    686(ptr) AccessChain 34(data) 46 46
+            1169:  20(i8vec4) Load 1168
+            1170: 685(i8vec2) VectorShuffle 1169 1169 0 1
+            1171: 685(i8vec2) GroupNonUniformUMin 42 ExclusiveScan 1170
+            1172:    679(ptr) AccessChain 34(data) 1167 46 38
+            1173:  19(int8_t) CompositeExtract 1171 0
+                              Store 1172 1173
+            1174:    679(ptr) AccessChain 34(data) 1167 46 55
+            1175:  19(int8_t) CompositeExtract 1171 1
+                              Store 1174 1175
+            1176:      6(int) Load 8(invocation)
+            1177:    686(ptr) AccessChain 34(data) 59 46
+            1178:  20(i8vec4) Load 1177
+            1179: 696(i8vec3) VectorShuffle 1178 1178 0 1 2
+            1180: 696(i8vec3) GroupNonUniformUMin 42 ExclusiveScan 1179
+            1181:    679(ptr) AccessChain 34(data) 1176 46 38
+            1182:  19(int8_t) CompositeExtract 1180 0
+                              Store 1181 1182
+            1183:    679(ptr) AccessChain 34(data) 1176 46 55
+            1184:  19(int8_t) CompositeExtract 1180 1
+                              Store 1183 1184
+            1185:    679(ptr) AccessChain 34(data) 1176 46 69
+            1186:  19(int8_t) CompositeExtract 1180 2
+                              Store 1185 1186
+            1187:      6(int) Load 8(invocation)
+            1188:    686(ptr) AccessChain 34(data) 73 46
+            1189:  20(i8vec4) Load 1188
+            1190:  20(i8vec4) GroupNonUniformUMin 42 ExclusiveScan 1189
+            1191:    686(ptr) AccessChain 34(data) 1187 46
+                              Store 1191 1190
+            1192:      6(int) Load 8(invocation)
+            1193:    679(ptr) AccessChain 34(data) 37 46 38
+            1194:  19(int8_t) Load 1193
+            1195:  19(int8_t) GroupNonUniformUMax 42 ExclusiveScan 1194
+            1196:    679(ptr) AccessChain 34(data) 1192 46 38
+                              Store 1196 1195
+            1197:      6(int) Load 8(invocation)
+            1198:    686(ptr) AccessChain 34(data) 46 46
+            1199:  20(i8vec4) Load 1198
+            1200: 685(i8vec2) VectorShuffle 1199 1199 0 1
+            1201: 685(i8vec2) GroupNonUniformUMax 42 ExclusiveScan 1200
+            1202:    679(ptr) AccessChain 34(data) 1197 46 38
+            1203:  19(int8_t) CompositeExtract 1201 0
+                              Store 1202 1203
+            1204:    679(ptr) AccessChain 34(data) 1197 46 55
+            1205:  19(int8_t) CompositeExtract 1201 1
+                              Store 1204 1205
+            1206:      6(int) Load 8(invocation)
+            1207:    686(ptr) AccessChain 34(data) 59 46
+            1208:  20(i8vec4) Load 1207
+            1209: 696(i8vec3) VectorShuffle 1208 1208 0 1 2
+            1210: 696(i8vec3) GroupNonUniformUMax 42 ExclusiveScan 1209
+            1211:    679(ptr) AccessChain 34(data) 1206 46 38
+            1212:  19(int8_t) CompositeExtract 1210 0
+                              Store 1211 1212
+            1213:    679(ptr) AccessChain 34(data) 1206 46 55
+            1214:  19(int8_t) CompositeExtract 1210 1
+                              Store 1213 1214
+            1215:    679(ptr) AccessChain 34(data) 1206 46 69
+            1216:  19(int8_t) CompositeExtract 1210 2
+                              Store 1215 1216
+            1217:      6(int) Load 8(invocation)
+            1218:    686(ptr) AccessChain 34(data) 73 46
+            1219:  20(i8vec4) Load 1218
+            1220:  20(i8vec4) GroupNonUniformUMax 42 ExclusiveScan 1219
+            1221:    686(ptr) AccessChain 34(data) 1217 46
+                              Store 1221 1220
+            1222:      6(int) Load 8(invocation)
+            1223:    679(ptr) AccessChain 34(data) 37 46 38
+            1224:  19(int8_t) Load 1223
+            1225:  19(int8_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1224
+            1226:    679(ptr) AccessChain 34(data) 1222 46 38
+                              Store 1226 1225
+            1227:      6(int) Load 8(invocation)
+            1228:    686(ptr) AccessChain 34(data) 46 46
+            1229:  20(i8vec4) Load 1228
+            1230: 685(i8vec2) VectorShuffle 1229 1229 0 1
+            1231: 685(i8vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1230
+            1232:    679(ptr) AccessChain 34(data) 1227 46 38
+            1233:  19(int8_t) CompositeExtract 1231 0
+                              Store 1232 1233
+            1234:    679(ptr) AccessChain 34(data) 1227 46 55
+            1235:  19(int8_t) CompositeExtract 1231 1
+                              Store 1234 1235
+            1236:      6(int) Load 8(invocation)
+            1237:    686(ptr) AccessChain 34(data) 59 46
+            1238:  20(i8vec4) Load 1237
+            1239: 696(i8vec3) VectorShuffle 1238 1238 0 1 2
+            1240: 696(i8vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1239
+            1241:    679(ptr) AccessChain 34(data) 1236 46 38
+            1242:  19(int8_t) CompositeExtract 1240 0
+                              Store 1241 1242
+            1243:    679(ptr) AccessChain 34(data) 1236 46 55
+            1244:  19(int8_t) CompositeExtract 1240 1
+                              Store 1243 1244
+            1245:    679(ptr) AccessChain 34(data) 1236 46 69
+            1246:  19(int8_t) CompositeExtract 1240 2
+                              Store 1245 1246
+            1247:      6(int) Load 8(invocation)
+            1248:    686(ptr) AccessChain 34(data) 73 46
+            1249:  20(i8vec4) Load 1248
+            1250:  20(i8vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1249
+            1251:    686(ptr) AccessChain 34(data) 1247 46
+                              Store 1251 1250
+            1252:      6(int) Load 8(invocation)
+            1253:    679(ptr) AccessChain 34(data) 37 46 38
+            1254:  19(int8_t) Load 1253
+            1255:  19(int8_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 1254
+            1256:    679(ptr) AccessChain 34(data) 1252 46 38
+                              Store 1256 1255
+            1257:      6(int) Load 8(invocation)
+            1258:    686(ptr) AccessChain 34(data) 46 46
+            1259:  20(i8vec4) Load 1258
+            1260: 685(i8vec2) VectorShuffle 1259 1259 0 1
+            1261: 685(i8vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 1260
+            1262:    679(ptr) AccessChain 34(data) 1257 46 38
+            1263:  19(int8_t) CompositeExtract 1261 0
+                              Store 1262 1263
+            1264:    679(ptr) AccessChain 34(data) 1257 46 55
+            1265:  19(int8_t) CompositeExtract 1261 1
+                              Store 1264 1265
+            1266:      6(int) Load 8(invocation)
+            1267:    686(ptr) AccessChain 34(data) 59 46
+            1268:  20(i8vec4) Load 1267
+            1269: 696(i8vec3) VectorShuffle 1268 1268 0 1 2
+            1270: 696(i8vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 1269
+            1271:    679(ptr) AccessChain 34(data) 1266 46 38
+            1272:  19(int8_t) CompositeExtract 1270 0
+                              Store 1271 1272
+            1273:    679(ptr) AccessChain 34(data) 1266 46 55
+            1274:  19(int8_t) CompositeExtract 1270 1
+                              Store 1273 1274
+            1275:    679(ptr) AccessChain 34(data) 1266 46 69
+            1276:  19(int8_t) CompositeExtract 1270 2
+                              Store 1275 1276
+            1277:      6(int) Load 8(invocation)
+            1278:    686(ptr) AccessChain 34(data) 73 46
+            1279:  20(i8vec4) Load 1278
+            1280:  20(i8vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 1279
+            1281:    686(ptr) AccessChain 34(data) 1277 46
+                              Store 1281 1280
+            1282:      6(int) Load 8(invocation)
+            1283:    679(ptr) AccessChain 34(data) 37 46 38
+            1284:  19(int8_t) Load 1283
+            1285:  19(int8_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 1284
+            1286:    679(ptr) AccessChain 34(data) 1282 46 38
+                              Store 1286 1285
+            1287:      6(int) Load 8(invocation)
+            1288:    686(ptr) AccessChain 34(data) 46 46
+            1289:  20(i8vec4) Load 1288
+            1290: 685(i8vec2) VectorShuffle 1289 1289 0 1
+            1291: 685(i8vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 1290
+            1292:    679(ptr) AccessChain 34(data) 1287 46 38
+            1293:  19(int8_t) CompositeExtract 1291 0
+                              Store 1292 1293
+            1294:    679(ptr) AccessChain 34(data) 1287 46 55
+            1295:  19(int8_t) CompositeExtract 1291 1
+                              Store 1294 1295
+            1296:      6(int) Load 8(invocation)
+            1297:    686(ptr) AccessChain 34(data) 59 46
+            1298:  20(i8vec4) Load 1297
+            1299: 696(i8vec3) VectorShuffle 1298 1298 0 1 2
+            1300: 696(i8vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 1299
+            1301:    679(ptr) AccessChain 34(data) 1296 46 38
+            1302:  19(int8_t) CompositeExtract 1300 0
+                              Store 1301 1302
+            1303:    679(ptr) AccessChain 34(data) 1296 46 55
+            1304:  19(int8_t) CompositeExtract 1300 1
+                              Store 1303 1304
+            1305:    679(ptr) AccessChain 34(data) 1296 46 69
+            1306:  19(int8_t) CompositeExtract 1300 2
+                              Store 1305 1306
             1307:      6(int) Load 8(invocation)
-            1308:   1150(ptr) AccessChain 34(data) 46 57
-            1309: 22(i16vec4) Load 1308
-            1310:1149(i16vec2) VectorShuffle 1309 1309 0 1
-            1311:1149(i16vec2) GroupNonUniformBitwiseXor 42 Reduce 1310
-            1312:   1150(ptr) AccessChain 34(data) 1307 57
-            1313: 22(i16vec4) Load 1312
-            1314: 22(i16vec4) VectorShuffle 1313 1311 4 5 2 3
-                              Store 1312 1314
-            1315:      6(int) Load 8(invocation)
-            1316:   1150(ptr) AccessChain 34(data) 57 57
-            1317: 22(i16vec4) Load 1316
-            1318:1159(i16vec3) VectorShuffle 1317 1317 0 1 2
-            1319:1159(i16vec3) GroupNonUniformBitwiseXor 42 Reduce 1318
-            1320:   1150(ptr) AccessChain 34(data) 1315 57
-            1321: 22(i16vec4) Load 1320
-            1322: 22(i16vec4) VectorShuffle 1321 1319 4 5 6 3
-                              Store 1320 1322
-            1323:      6(int) Load 8(invocation)
-            1324:   1150(ptr) AccessChain 34(data) 67 57
-            1325: 22(i16vec4) Load 1324
-            1326: 22(i16vec4) GroupNonUniformBitwiseXor 42 Reduce 1325
-            1327:   1150(ptr) AccessChain 34(data) 1323 57
-                              Store 1327 1326
-            1328:      6(int) Load 8(invocation)
-            1329:   1143(ptr) AccessChain 34(data) 37 57 38
-            1330: 21(int16_t) Load 1329
-            1331: 21(int16_t) GroupNonUniformIAdd 42 InclusiveScan 1330
-            1332:   1143(ptr) AccessChain 34(data) 1328 57 38
-                              Store 1332 1331
-            1333:      6(int) Load 8(invocation)
-            1334:   1150(ptr) AccessChain 34(data) 46 57
-            1335: 22(i16vec4) Load 1334
-            1336:1149(i16vec2) VectorShuffle 1335 1335 0 1
-            1337:1149(i16vec2) GroupNonUniformIAdd 42 InclusiveScan 1336
-            1338:   1150(ptr) AccessChain 34(data) 1333 57
-            1339: 22(i16vec4) Load 1338
-            1340: 22(i16vec4) VectorShuffle 1339 1337 4 5 2 3
-                              Store 1338 1340
+            1308:    686(ptr) AccessChain 34(data) 73 46
+            1309:  20(i8vec4) Load 1308
+            1310:  20(i8vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 1309
+            1311:    686(ptr) AccessChain 34(data) 1307 46
+                              Store 1311 1310
+            1312:      6(int) Load 8(invocation)
+            1314:   1313(ptr) AccessChain 34(data) 37 59 38
+            1315: 21(int16_t) Load 1314
+            1316: 21(int16_t) GroupNonUniformIAdd 42 Reduce 1315
+            1317:   1313(ptr) AccessChain 34(data) 1312 59 38
+                              Store 1317 1316
+            1318:      6(int) Load 8(invocation)
+            1321:   1320(ptr) AccessChain 34(data) 46 59
+            1322: 22(i16vec4) Load 1321
+            1323:1319(i16vec2) VectorShuffle 1322 1322 0 1
+            1324:1319(i16vec2) GroupNonUniformIAdd 42 Reduce 1323
+            1325:   1313(ptr) AccessChain 34(data) 1318 59 38
+            1326: 21(int16_t) CompositeExtract 1324 0
+                              Store 1325 1326
+            1327:   1313(ptr) AccessChain 34(data) 1318 59 55
+            1328: 21(int16_t) CompositeExtract 1324 1
+                              Store 1327 1328
+            1329:      6(int) Load 8(invocation)
+            1331:   1320(ptr) AccessChain 34(data) 59 59
+            1332: 22(i16vec4) Load 1331
+            1333:1330(i16vec3) VectorShuffle 1332 1332 0 1 2
+            1334:1330(i16vec3) GroupNonUniformIAdd 42 Reduce 1333
+            1335:   1313(ptr) AccessChain 34(data) 1329 59 38
+            1336: 21(int16_t) CompositeExtract 1334 0
+                              Store 1335 1336
+            1337:   1313(ptr) AccessChain 34(data) 1329 59 55
+            1338: 21(int16_t) CompositeExtract 1334 1
+                              Store 1337 1338
+            1339:   1313(ptr) AccessChain 34(data) 1329 59 69
+            1340: 21(int16_t) CompositeExtract 1334 2
+                              Store 1339 1340
             1341:      6(int) Load 8(invocation)
-            1342:   1150(ptr) AccessChain 34(data) 57 57
+            1342:   1320(ptr) AccessChain 34(data) 73 59
             1343: 22(i16vec4) Load 1342
-            1344:1159(i16vec3) VectorShuffle 1343 1343 0 1 2
-            1345:1159(i16vec3) GroupNonUniformIAdd 42 InclusiveScan 1344
-            1346:   1150(ptr) AccessChain 34(data) 1341 57
-            1347: 22(i16vec4) Load 1346
-            1348: 22(i16vec4) VectorShuffle 1347 1345 4 5 6 3
-                              Store 1346 1348
-            1349:      6(int) Load 8(invocation)
-            1350:   1150(ptr) AccessChain 34(data) 67 57
-            1351: 22(i16vec4) Load 1350
-            1352: 22(i16vec4) GroupNonUniformIAdd 42 InclusiveScan 1351
-            1353:   1150(ptr) AccessChain 34(data) 1349 57
-                              Store 1353 1352
-            1354:      6(int) Load 8(invocation)
-            1355:   1143(ptr) AccessChain 34(data) 37 57 38
-            1356: 21(int16_t) Load 1355
-            1357: 21(int16_t) GroupNonUniformIMul 42 InclusiveScan 1356
-            1358:   1143(ptr) AccessChain 34(data) 1354 57 38
-                              Store 1358 1357
-            1359:      6(int) Load 8(invocation)
-            1360:   1150(ptr) AccessChain 34(data) 46 57
-            1361: 22(i16vec4) Load 1360
-            1362:1149(i16vec2) VectorShuffle 1361 1361 0 1
-            1363:1149(i16vec2) GroupNonUniformIMul 42 InclusiveScan 1362
-            1364:   1150(ptr) AccessChain 34(data) 1359 57
-            1365: 22(i16vec4) Load 1364
-            1366: 22(i16vec4) VectorShuffle 1365 1363 4 5 2 3
-                              Store 1364 1366
-            1367:      6(int) Load 8(invocation)
-            1368:   1150(ptr) AccessChain 34(data) 57 57
-            1369: 22(i16vec4) Load 1368
-            1370:1159(i16vec3) VectorShuffle 1369 1369 0 1 2
-            1371:1159(i16vec3) GroupNonUniformIMul 42 InclusiveScan 1370
-            1372:   1150(ptr) AccessChain 34(data) 1367 57
+            1344: 22(i16vec4) GroupNonUniformIAdd 42 Reduce 1343
+            1345:   1320(ptr) AccessChain 34(data) 1341 59
+                              Store 1345 1344
+            1346:      6(int) Load 8(invocation)
+            1347:   1313(ptr) AccessChain 34(data) 37 59 38
+            1348: 21(int16_t) Load 1347
+            1349: 21(int16_t) GroupNonUniformIMul 42 Reduce 1348
+            1350:   1313(ptr) AccessChain 34(data) 1346 59 38
+                              Store 1350 1349
+            1351:      6(int) Load 8(invocation)
+            1352:   1320(ptr) AccessChain 34(data) 46 59
+            1353: 22(i16vec4) Load 1352
+            1354:1319(i16vec2) VectorShuffle 1353 1353 0 1
+            1355:1319(i16vec2) GroupNonUniformIMul 42 Reduce 1354
+            1356:   1313(ptr) AccessChain 34(data) 1351 59 38
+            1357: 21(int16_t) CompositeExtract 1355 0
+                              Store 1356 1357
+            1358:   1313(ptr) AccessChain 34(data) 1351 59 55
+            1359: 21(int16_t) CompositeExtract 1355 1
+                              Store 1358 1359
+            1360:      6(int) Load 8(invocation)
+            1361:   1320(ptr) AccessChain 34(data) 59 59
+            1362: 22(i16vec4) Load 1361
+            1363:1330(i16vec3) VectorShuffle 1362 1362 0 1 2
+            1364:1330(i16vec3) GroupNonUniformIMul 42 Reduce 1363
+            1365:   1313(ptr) AccessChain 34(data) 1360 59 38
+            1366: 21(int16_t) CompositeExtract 1364 0
+                              Store 1365 1366
+            1367:   1313(ptr) AccessChain 34(data) 1360 59 55
+            1368: 21(int16_t) CompositeExtract 1364 1
+                              Store 1367 1368
+            1369:   1313(ptr) AccessChain 34(data) 1360 59 69
+            1370: 21(int16_t) CompositeExtract 1364 2
+                              Store 1369 1370
+            1371:      6(int) Load 8(invocation)
+            1372:   1320(ptr) AccessChain 34(data) 73 59
             1373: 22(i16vec4) Load 1372
-            1374: 22(i16vec4) VectorShuffle 1373 1371 4 5 6 3
-                              Store 1372 1374
-            1375:      6(int) Load 8(invocation)
-            1376:   1150(ptr) AccessChain 34(data) 67 57
-            1377: 22(i16vec4) Load 1376
-            1378: 22(i16vec4) GroupNonUniformIMul 42 InclusiveScan 1377
-            1379:   1150(ptr) AccessChain 34(data) 1375 57
-                              Store 1379 1378
-            1380:      6(int) Load 8(invocation)
-            1381:   1143(ptr) AccessChain 34(data) 37 57 38
-            1382: 21(int16_t) Load 1381
-            1383: 21(int16_t) GroupNonUniformSMin 42 InclusiveScan 1382
-            1384:   1143(ptr) AccessChain 34(data) 1380 57 38
-                              Store 1384 1383
-            1385:      6(int) Load 8(invocation)
-            1386:   1150(ptr) AccessChain 34(data) 46 57
-            1387: 22(i16vec4) Load 1386
-            1388:1149(i16vec2) VectorShuffle 1387 1387 0 1
-            1389:1149(i16vec2) GroupNonUniformSMin 42 InclusiveScan 1388
-            1390:   1150(ptr) AccessChain 34(data) 1385 57
-            1391: 22(i16vec4) Load 1390
-            1392: 22(i16vec4) VectorShuffle 1391 1389 4 5 2 3
-                              Store 1390 1392
-            1393:      6(int) Load 8(invocation)
-            1394:   1150(ptr) AccessChain 34(data) 57 57
-            1395: 22(i16vec4) Load 1394
-            1396:1159(i16vec3) VectorShuffle 1395 1395 0 1 2
-            1397:1159(i16vec3) GroupNonUniformSMin 42 InclusiveScan 1396
-            1398:   1150(ptr) AccessChain 34(data) 1393 57
-            1399: 22(i16vec4) Load 1398
-            1400: 22(i16vec4) VectorShuffle 1399 1397 4 5 6 3
-                              Store 1398 1400
+            1374: 22(i16vec4) GroupNonUniformIMul 42 Reduce 1373
+            1375:   1320(ptr) AccessChain 34(data) 1371 59
+                              Store 1375 1374
+            1376:      6(int) Load 8(invocation)
+            1377:   1313(ptr) AccessChain 34(data) 37 59 38
+            1378: 21(int16_t) Load 1377
+            1379: 21(int16_t) GroupNonUniformSMin 42 Reduce 1378
+            1380:   1313(ptr) AccessChain 34(data) 1376 59 38
+                              Store 1380 1379
+            1381:      6(int) Load 8(invocation)
+            1382:   1320(ptr) AccessChain 34(data) 46 59
+            1383: 22(i16vec4) Load 1382
+            1384:1319(i16vec2) VectorShuffle 1383 1383 0 1
+            1385:1319(i16vec2) GroupNonUniformSMin 42 Reduce 1384
+            1386:   1313(ptr) AccessChain 34(data) 1381 59 38
+            1387: 21(int16_t) CompositeExtract 1385 0
+                              Store 1386 1387
+            1388:   1313(ptr) AccessChain 34(data) 1381 59 55
+            1389: 21(int16_t) CompositeExtract 1385 1
+                              Store 1388 1389
+            1390:      6(int) Load 8(invocation)
+            1391:   1320(ptr) AccessChain 34(data) 59 59
+            1392: 22(i16vec4) Load 1391
+            1393:1330(i16vec3) VectorShuffle 1392 1392 0 1 2
+            1394:1330(i16vec3) GroupNonUniformSMin 42 Reduce 1393
+            1395:   1313(ptr) AccessChain 34(data) 1390 59 38
+            1396: 21(int16_t) CompositeExtract 1394 0
+                              Store 1395 1396
+            1397:   1313(ptr) AccessChain 34(data) 1390 59 55
+            1398: 21(int16_t) CompositeExtract 1394 1
+                              Store 1397 1398
+            1399:   1313(ptr) AccessChain 34(data) 1390 59 69
+            1400: 21(int16_t) CompositeExtract 1394 2
+                              Store 1399 1400
             1401:      6(int) Load 8(invocation)
-            1402:   1150(ptr) AccessChain 34(data) 67 57
+            1402:   1320(ptr) AccessChain 34(data) 73 59
             1403: 22(i16vec4) Load 1402
-            1404: 22(i16vec4) GroupNonUniformSMin 42 InclusiveScan 1403
-            1405:   1150(ptr) AccessChain 34(data) 1401 57
+            1404: 22(i16vec4) GroupNonUniformSMin 42 Reduce 1403
+            1405:   1320(ptr) AccessChain 34(data) 1401 59
                               Store 1405 1404
             1406:      6(int) Load 8(invocation)
-            1407:   1143(ptr) AccessChain 34(data) 37 57 38
+            1407:   1313(ptr) AccessChain 34(data) 37 59 38
             1408: 21(int16_t) Load 1407
-            1409: 21(int16_t) GroupNonUniformSMax 42 InclusiveScan 1408
-            1410:   1143(ptr) AccessChain 34(data) 1406 57 38
+            1409: 21(int16_t) GroupNonUniformSMax 42 Reduce 1408
+            1410:   1313(ptr) AccessChain 34(data) 1406 59 38
                               Store 1410 1409
             1411:      6(int) Load 8(invocation)
-            1412:   1150(ptr) AccessChain 34(data) 46 57
+            1412:   1320(ptr) AccessChain 34(data) 46 59
             1413: 22(i16vec4) Load 1412
-            1414:1149(i16vec2) VectorShuffle 1413 1413 0 1
-            1415:1149(i16vec2) GroupNonUniformSMax 42 InclusiveScan 1414
-            1416:   1150(ptr) AccessChain 34(data) 1411 57
-            1417: 22(i16vec4) Load 1416
-            1418: 22(i16vec4) VectorShuffle 1417 1415 4 5 2 3
-                              Store 1416 1418
-            1419:      6(int) Load 8(invocation)
-            1420:   1150(ptr) AccessChain 34(data) 57 57
-            1421: 22(i16vec4) Load 1420
-            1422:1159(i16vec3) VectorShuffle 1421 1421 0 1 2
-            1423:1159(i16vec3) GroupNonUniformSMax 42 InclusiveScan 1422
-            1424:   1150(ptr) AccessChain 34(data) 1419 57
-            1425: 22(i16vec4) Load 1424
-            1426: 22(i16vec4) VectorShuffle 1425 1423 4 5 6 3
-                              Store 1424 1426
-            1427:      6(int) Load 8(invocation)
-            1428:   1150(ptr) AccessChain 34(data) 67 57
-            1429: 22(i16vec4) Load 1428
-            1430: 22(i16vec4) GroupNonUniformSMax 42 InclusiveScan 1429
-            1431:   1150(ptr) AccessChain 34(data) 1427 57
-                              Store 1431 1430
-            1432:      6(int) Load 8(invocation)
-            1433:   1143(ptr) AccessChain 34(data) 37 57 38
-            1434: 21(int16_t) Load 1433
-            1435: 21(int16_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 1434
-            1436:   1143(ptr) AccessChain 34(data) 1432 57 38
-                              Store 1436 1435
-            1437:      6(int) Load 8(invocation)
-            1438:   1150(ptr) AccessChain 34(data) 46 57
-            1439: 22(i16vec4) Load 1438
-            1440:1149(i16vec2) VectorShuffle 1439 1439 0 1
-            1441:1149(i16vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 1440
-            1442:   1150(ptr) AccessChain 34(data) 1437 57
+            1414:1319(i16vec2) VectorShuffle 1413 1413 0 1
+            1415:1319(i16vec2) GroupNonUniformSMax 42 Reduce 1414
+            1416:   1313(ptr) AccessChain 34(data) 1411 59 38
+            1417: 21(int16_t) CompositeExtract 1415 0
+                              Store 1416 1417
+            1418:   1313(ptr) AccessChain 34(data) 1411 59 55
+            1419: 21(int16_t) CompositeExtract 1415 1
+                              Store 1418 1419
+            1420:      6(int) Load 8(invocation)
+            1421:   1320(ptr) AccessChain 34(data) 59 59
+            1422: 22(i16vec4) Load 1421
+            1423:1330(i16vec3) VectorShuffle 1422 1422 0 1 2
+            1424:1330(i16vec3) GroupNonUniformSMax 42 Reduce 1423
+            1425:   1313(ptr) AccessChain 34(data) 1420 59 38
+            1426: 21(int16_t) CompositeExtract 1424 0
+                              Store 1425 1426
+            1427:   1313(ptr) AccessChain 34(data) 1420 59 55
+            1428: 21(int16_t) CompositeExtract 1424 1
+                              Store 1427 1428
+            1429:   1313(ptr) AccessChain 34(data) 1420 59 69
+            1430: 21(int16_t) CompositeExtract 1424 2
+                              Store 1429 1430
+            1431:      6(int) Load 8(invocation)
+            1432:   1320(ptr) AccessChain 34(data) 73 59
+            1433: 22(i16vec4) Load 1432
+            1434: 22(i16vec4) GroupNonUniformSMax 42 Reduce 1433
+            1435:   1320(ptr) AccessChain 34(data) 1431 59
+                              Store 1435 1434
+            1436:      6(int) Load 8(invocation)
+            1437:   1313(ptr) AccessChain 34(data) 37 59 38
+            1438: 21(int16_t) Load 1437
+            1439: 21(int16_t) GroupNonUniformBitwiseAnd 42 Reduce 1438
+            1440:   1313(ptr) AccessChain 34(data) 1436 59 38
+                              Store 1440 1439
+            1441:      6(int) Load 8(invocation)
+            1442:   1320(ptr) AccessChain 34(data) 46 59
             1443: 22(i16vec4) Load 1442
-            1444: 22(i16vec4) VectorShuffle 1443 1441 4 5 2 3
-                              Store 1442 1444
-            1445:      6(int) Load 8(invocation)
-            1446:   1150(ptr) AccessChain 34(data) 57 57
-            1447: 22(i16vec4) Load 1446
-            1448:1159(i16vec3) VectorShuffle 1447 1447 0 1 2
-            1449:1159(i16vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 1448
-            1450:   1150(ptr) AccessChain 34(data) 1445 57
-            1451: 22(i16vec4) Load 1450
-            1452: 22(i16vec4) VectorShuffle 1451 1449 4 5 6 3
-                              Store 1450 1452
-            1453:      6(int) Load 8(invocation)
-            1454:   1150(ptr) AccessChain 34(data) 67 57
-            1455: 22(i16vec4) Load 1454
-            1456: 22(i16vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 1455
-            1457:   1150(ptr) AccessChain 34(data) 1453 57
-                              Store 1457 1456
-            1458:      6(int) Load 8(invocation)
-            1459:   1143(ptr) AccessChain 34(data) 37 57 38
-            1460: 21(int16_t) Load 1459
-            1461: 21(int16_t) GroupNonUniformBitwiseOr 42 InclusiveScan 1460
-            1462:   1143(ptr) AccessChain 34(data) 1458 57 38
-                              Store 1462 1461
-            1463:      6(int) Load 8(invocation)
-            1464:   1150(ptr) AccessChain 34(data) 46 57
-            1465: 22(i16vec4) Load 1464
-            1466:1149(i16vec2) VectorShuffle 1465 1465 0 1
-            1467:1149(i16vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 1466
-            1468:   1150(ptr) AccessChain 34(data) 1463 57
-            1469: 22(i16vec4) Load 1468
-            1470: 22(i16vec4) VectorShuffle 1469 1467 4 5 2 3
-                              Store 1468 1470
+            1444:1319(i16vec2) VectorShuffle 1443 1443 0 1
+            1445:1319(i16vec2) GroupNonUniformBitwiseAnd 42 Reduce 1444
+            1446:   1313(ptr) AccessChain 34(data) 1441 59 38
+            1447: 21(int16_t) CompositeExtract 1445 0
+                              Store 1446 1447
+            1448:   1313(ptr) AccessChain 34(data) 1441 59 55
+            1449: 21(int16_t) CompositeExtract 1445 1
+                              Store 1448 1449
+            1450:      6(int) Load 8(invocation)
+            1451:   1320(ptr) AccessChain 34(data) 59 59
+            1452: 22(i16vec4) Load 1451
+            1453:1330(i16vec3) VectorShuffle 1452 1452 0 1 2
+            1454:1330(i16vec3) GroupNonUniformBitwiseAnd 42 Reduce 1453
+            1455:   1313(ptr) AccessChain 34(data) 1450 59 38
+            1456: 21(int16_t) CompositeExtract 1454 0
+                              Store 1455 1456
+            1457:   1313(ptr) AccessChain 34(data) 1450 59 55
+            1458: 21(int16_t) CompositeExtract 1454 1
+                              Store 1457 1458
+            1459:   1313(ptr) AccessChain 34(data) 1450 59 69
+            1460: 21(int16_t) CompositeExtract 1454 2
+                              Store 1459 1460
+            1461:      6(int) Load 8(invocation)
+            1462:   1320(ptr) AccessChain 34(data) 73 59
+            1463: 22(i16vec4) Load 1462
+            1464: 22(i16vec4) GroupNonUniformBitwiseAnd 42 Reduce 1463
+            1465:   1320(ptr) AccessChain 34(data) 1461 59
+                              Store 1465 1464
+            1466:      6(int) Load 8(invocation)
+            1467:   1313(ptr) AccessChain 34(data) 37 59 38
+            1468: 21(int16_t) Load 1467
+            1469: 21(int16_t) GroupNonUniformBitwiseOr 42 Reduce 1468
+            1470:   1313(ptr) AccessChain 34(data) 1466 59 38
+                              Store 1470 1469
             1471:      6(int) Load 8(invocation)
-            1472:   1150(ptr) AccessChain 34(data) 57 57
+            1472:   1320(ptr) AccessChain 34(data) 46 59
             1473: 22(i16vec4) Load 1472
-            1474:1159(i16vec3) VectorShuffle 1473 1473 0 1 2
-            1475:1159(i16vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 1474
-            1476:   1150(ptr) AccessChain 34(data) 1471 57
-            1477: 22(i16vec4) Load 1476
-            1478: 22(i16vec4) VectorShuffle 1477 1475 4 5 6 3
-                              Store 1476 1478
-            1479:      6(int) Load 8(invocation)
-            1480:   1150(ptr) AccessChain 34(data) 67 57
-            1481: 22(i16vec4) Load 1480
-            1482: 22(i16vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 1481
-            1483:   1150(ptr) AccessChain 34(data) 1479 57
-                              Store 1483 1482
-            1484:      6(int) Load 8(invocation)
-            1485:   1143(ptr) AccessChain 34(data) 37 57 38
-            1486: 21(int16_t) Load 1485
-            1487: 21(int16_t) GroupNonUniformBitwiseXor 42 InclusiveScan 1486
-            1488:   1143(ptr) AccessChain 34(data) 1484 57 38
-                              Store 1488 1487
-            1489:      6(int) Load 8(invocation)
-            1490:   1150(ptr) AccessChain 34(data) 46 57
-            1491: 22(i16vec4) Load 1490
-            1492:1149(i16vec2) VectorShuffle 1491 1491 0 1
-            1493:1149(i16vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 1492
-            1494:   1150(ptr) AccessChain 34(data) 1489 57
-            1495: 22(i16vec4) Load 1494
-            1496: 22(i16vec4) VectorShuffle 1495 1493 4 5 2 3
-                              Store 1494 1496
-            1497:      6(int) Load 8(invocation)
-            1498:   1150(ptr) AccessChain 34(data) 57 57
-            1499: 22(i16vec4) Load 1498
-            1500:1159(i16vec3) VectorShuffle 1499 1499 0 1 2
-            1501:1159(i16vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 1500
-            1502:   1150(ptr) AccessChain 34(data) 1497 57
+            1474:1319(i16vec2) VectorShuffle 1473 1473 0 1
+            1475:1319(i16vec2) GroupNonUniformBitwiseOr 42 Reduce 1474
+            1476:   1313(ptr) AccessChain 34(data) 1471 59 38
+            1477: 21(int16_t) CompositeExtract 1475 0
+                              Store 1476 1477
+            1478:   1313(ptr) AccessChain 34(data) 1471 59 55
+            1479: 21(int16_t) CompositeExtract 1475 1
+                              Store 1478 1479
+            1480:      6(int) Load 8(invocation)
+            1481:   1320(ptr) AccessChain 34(data) 59 59
+            1482: 22(i16vec4) Load 1481
+            1483:1330(i16vec3) VectorShuffle 1482 1482 0 1 2
+            1484:1330(i16vec3) GroupNonUniformBitwiseOr 42 Reduce 1483
+            1485:   1313(ptr) AccessChain 34(data) 1480 59 38
+            1486: 21(int16_t) CompositeExtract 1484 0
+                              Store 1485 1486
+            1487:   1313(ptr) AccessChain 34(data) 1480 59 55
+            1488: 21(int16_t) CompositeExtract 1484 1
+                              Store 1487 1488
+            1489:   1313(ptr) AccessChain 34(data) 1480 59 69
+            1490: 21(int16_t) CompositeExtract 1484 2
+                              Store 1489 1490
+            1491:      6(int) Load 8(invocation)
+            1492:   1320(ptr) AccessChain 34(data) 73 59
+            1493: 22(i16vec4) Load 1492
+            1494: 22(i16vec4) GroupNonUniformBitwiseOr 42 Reduce 1493
+            1495:   1320(ptr) AccessChain 34(data) 1491 59
+                              Store 1495 1494
+            1496:      6(int) Load 8(invocation)
+            1497:   1313(ptr) AccessChain 34(data) 37 59 38
+            1498: 21(int16_t) Load 1497
+            1499: 21(int16_t) GroupNonUniformBitwiseXor 42 Reduce 1498
+            1500:   1313(ptr) AccessChain 34(data) 1496 59 38
+                              Store 1500 1499
+            1501:      6(int) Load 8(invocation)
+            1502:   1320(ptr) AccessChain 34(data) 46 59
             1503: 22(i16vec4) Load 1502
-            1504: 22(i16vec4) VectorShuffle 1503 1501 4 5 6 3
-                              Store 1502 1504
-            1505:      6(int) Load 8(invocation)
-            1506:   1150(ptr) AccessChain 34(data) 67 57
-            1507: 22(i16vec4) Load 1506
-            1508: 22(i16vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 1507
-            1509:   1150(ptr) AccessChain 34(data) 1505 57
-                              Store 1509 1508
+            1504:1319(i16vec2) VectorShuffle 1503 1503 0 1
+            1505:1319(i16vec2) GroupNonUniformBitwiseXor 42 Reduce 1504
+            1506:   1313(ptr) AccessChain 34(data) 1501 59 38
+            1507: 21(int16_t) CompositeExtract 1505 0
+                              Store 1506 1507
+            1508:   1313(ptr) AccessChain 34(data) 1501 59 55
+            1509: 21(int16_t) CompositeExtract 1505 1
+                              Store 1508 1509
             1510:      6(int) Load 8(invocation)
-            1511:   1143(ptr) AccessChain 34(data) 37 57 38
-            1512: 21(int16_t) Load 1511
-            1513: 21(int16_t) GroupNonUniformIAdd 42 ExclusiveScan 1512
-            1514:   1143(ptr) AccessChain 34(data) 1510 57 38
-                              Store 1514 1513
-            1515:      6(int) Load 8(invocation)
-            1516:   1150(ptr) AccessChain 34(data) 46 57
-            1517: 22(i16vec4) Load 1516
-            1518:1149(i16vec2) VectorShuffle 1517 1517 0 1
-            1519:1149(i16vec2) GroupNonUniformIAdd 42 ExclusiveScan 1518
-            1520:   1150(ptr) AccessChain 34(data) 1515 57
-            1521: 22(i16vec4) Load 1520
-            1522: 22(i16vec4) VectorShuffle 1521 1519 4 5 2 3
-                              Store 1520 1522
-            1523:      6(int) Load 8(invocation)
-            1524:   1150(ptr) AccessChain 34(data) 57 57
-            1525: 22(i16vec4) Load 1524
-            1526:1159(i16vec3) VectorShuffle 1525 1525 0 1 2
-            1527:1159(i16vec3) GroupNonUniformIAdd 42 ExclusiveScan 1526
-            1528:   1150(ptr) AccessChain 34(data) 1523 57
-            1529: 22(i16vec4) Load 1528
-            1530: 22(i16vec4) VectorShuffle 1529 1527 4 5 6 3
-                              Store 1528 1530
+            1511:   1320(ptr) AccessChain 34(data) 59 59
+            1512: 22(i16vec4) Load 1511
+            1513:1330(i16vec3) VectorShuffle 1512 1512 0 1 2
+            1514:1330(i16vec3) GroupNonUniformBitwiseXor 42 Reduce 1513
+            1515:   1313(ptr) AccessChain 34(data) 1510 59 38
+            1516: 21(int16_t) CompositeExtract 1514 0
+                              Store 1515 1516
+            1517:   1313(ptr) AccessChain 34(data) 1510 59 55
+            1518: 21(int16_t) CompositeExtract 1514 1
+                              Store 1517 1518
+            1519:   1313(ptr) AccessChain 34(data) 1510 59 69
+            1520: 21(int16_t) CompositeExtract 1514 2
+                              Store 1519 1520
+            1521:      6(int) Load 8(invocation)
+            1522:   1320(ptr) AccessChain 34(data) 73 59
+            1523: 22(i16vec4) Load 1522
+            1524: 22(i16vec4) GroupNonUniformBitwiseXor 42 Reduce 1523
+            1525:   1320(ptr) AccessChain 34(data) 1521 59
+                              Store 1525 1524
+            1526:      6(int) Load 8(invocation)
+            1527:   1313(ptr) AccessChain 34(data) 37 59 38
+            1528: 21(int16_t) Load 1527
+            1529: 21(int16_t) GroupNonUniformIAdd 42 InclusiveScan 1528
+            1530:   1313(ptr) AccessChain 34(data) 1526 59 38
+                              Store 1530 1529
             1531:      6(int) Load 8(invocation)
-            1532:   1150(ptr) AccessChain 34(data) 67 57
+            1532:   1320(ptr) AccessChain 34(data) 46 59
             1533: 22(i16vec4) Load 1532
-            1534: 22(i16vec4) GroupNonUniformIAdd 42 ExclusiveScan 1533
-            1535:   1150(ptr) AccessChain 34(data) 1531 57
-                              Store 1535 1534
-            1536:      6(int) Load 8(invocation)
-            1537:   1143(ptr) AccessChain 34(data) 37 57 38
-            1538: 21(int16_t) Load 1537
-            1539: 21(int16_t) GroupNonUniformIMul 42 ExclusiveScan 1538
-            1540:   1143(ptr) AccessChain 34(data) 1536 57 38
-                              Store 1540 1539
-            1541:      6(int) Load 8(invocation)
-            1542:   1150(ptr) AccessChain 34(data) 46 57
-            1543: 22(i16vec4) Load 1542
-            1544:1149(i16vec2) VectorShuffle 1543 1543 0 1
-            1545:1149(i16vec2) GroupNonUniformIMul 42 ExclusiveScan 1544
-            1546:   1150(ptr) AccessChain 34(data) 1541 57
-            1547: 22(i16vec4) Load 1546
-            1548: 22(i16vec4) VectorShuffle 1547 1545 4 5 2 3
-                              Store 1546 1548
-            1549:      6(int) Load 8(invocation)
-            1550:   1150(ptr) AccessChain 34(data) 57 57
-            1551: 22(i16vec4) Load 1550
-            1552:1159(i16vec3) VectorShuffle 1551 1551 0 1 2
-            1553:1159(i16vec3) GroupNonUniformIMul 42 ExclusiveScan 1552
-            1554:   1150(ptr) AccessChain 34(data) 1549 57
-            1555: 22(i16vec4) Load 1554
-            1556: 22(i16vec4) VectorShuffle 1555 1553 4 5 6 3
-                              Store 1554 1556
-            1557:      6(int) Load 8(invocation)
-            1558:   1150(ptr) AccessChain 34(data) 67 57
-            1559: 22(i16vec4) Load 1558
-            1560: 22(i16vec4) GroupNonUniformIMul 42 ExclusiveScan 1559
-            1561:   1150(ptr) AccessChain 34(data) 1557 57
-                              Store 1561 1560
-            1562:      6(int) Load 8(invocation)
-            1563:   1143(ptr) AccessChain 34(data) 37 57 38
-            1564: 21(int16_t) Load 1563
-            1565: 21(int16_t) GroupNonUniformSMin 42 ExclusiveScan 1564
-            1566:   1143(ptr) AccessChain 34(data) 1562 57 38
-                              Store 1566 1565
-            1567:      6(int) Load 8(invocation)
-            1568:   1150(ptr) AccessChain 34(data) 46 57
-            1569: 22(i16vec4) Load 1568
-            1570:1149(i16vec2) VectorShuffle 1569 1569 0 1
-            1571:1149(i16vec2) GroupNonUniformSMin 42 ExclusiveScan 1570
-            1572:   1150(ptr) AccessChain 34(data) 1567 57
-            1573: 22(i16vec4) Load 1572
-            1574: 22(i16vec4) VectorShuffle 1573 1571 4 5 2 3
-                              Store 1572 1574
-            1575:      6(int) Load 8(invocation)
-            1576:   1150(ptr) AccessChain 34(data) 57 57
-            1577: 22(i16vec4) Load 1576
-            1578:1159(i16vec3) VectorShuffle 1577 1577 0 1 2
-            1579:1159(i16vec3) GroupNonUniformSMin 42 ExclusiveScan 1578
-            1580:   1150(ptr) AccessChain 34(data) 1575 57
-            1581: 22(i16vec4) Load 1580
-            1582: 22(i16vec4) VectorShuffle 1581 1579 4 5 6 3
-                              Store 1580 1582
-            1583:      6(int) Load 8(invocation)
-            1584:   1150(ptr) AccessChain 34(data) 67 57
-            1585: 22(i16vec4) Load 1584
-            1586: 22(i16vec4) GroupNonUniformSMin 42 ExclusiveScan 1585
-            1587:   1150(ptr) AccessChain 34(data) 1583 57
-                              Store 1587 1586
-            1588:      6(int) Load 8(invocation)
-            1589:   1143(ptr) AccessChain 34(data) 37 57 38
-            1590: 21(int16_t) Load 1589
-            1591: 21(int16_t) GroupNonUniformSMax 42 ExclusiveScan 1590
-            1592:   1143(ptr) AccessChain 34(data) 1588 57 38
-                              Store 1592 1591
-            1593:      6(int) Load 8(invocation)
-            1594:   1150(ptr) AccessChain 34(data) 46 57
-            1595: 22(i16vec4) Load 1594
-            1596:1149(i16vec2) VectorShuffle 1595 1595 0 1
-            1597:1149(i16vec2) GroupNonUniformSMax 42 ExclusiveScan 1596
-            1598:   1150(ptr) AccessChain 34(data) 1593 57
-            1599: 22(i16vec4) Load 1598
-            1600: 22(i16vec4) VectorShuffle 1599 1597 4 5 2 3
-                              Store 1598 1600
-            1601:      6(int) Load 8(invocation)
-            1602:   1150(ptr) AccessChain 34(data) 57 57
-            1603: 22(i16vec4) Load 1602
-            1604:1159(i16vec3) VectorShuffle 1603 1603 0 1 2
-            1605:1159(i16vec3) GroupNonUniformSMax 42 ExclusiveScan 1604
-            1606:   1150(ptr) AccessChain 34(data) 1601 57
-            1607: 22(i16vec4) Load 1606
-            1608: 22(i16vec4) VectorShuffle 1607 1605 4 5 6 3
-                              Store 1606 1608
-            1609:      6(int) Load 8(invocation)
-            1610:   1150(ptr) AccessChain 34(data) 67 57
-            1611: 22(i16vec4) Load 1610
-            1612: 22(i16vec4) GroupNonUniformSMax 42 ExclusiveScan 1611
-            1613:   1150(ptr) AccessChain 34(data) 1609 57
-                              Store 1613 1612
-            1614:      6(int) Load 8(invocation)
-            1615:   1143(ptr) AccessChain 34(data) 37 57 38
-            1616: 21(int16_t) Load 1615
-            1617: 21(int16_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1616
-            1618:   1143(ptr) AccessChain 34(data) 1614 57 38
-                              Store 1618 1617
-            1619:      6(int) Load 8(invocation)
-            1620:   1150(ptr) AccessChain 34(data) 46 57
-            1621: 22(i16vec4) Load 1620
-            1622:1149(i16vec2) VectorShuffle 1621 1621 0 1
-            1623:1149(i16vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1622
-            1624:   1150(ptr) AccessChain 34(data) 1619 57
-            1625: 22(i16vec4) Load 1624
-            1626: 22(i16vec4) VectorShuffle 1625 1623 4 5 2 3
-                              Store 1624 1626
-            1627:      6(int) Load 8(invocation)
-            1628:   1150(ptr) AccessChain 34(data) 57 57
-            1629: 22(i16vec4) Load 1628
-            1630:1159(i16vec3) VectorShuffle 1629 1629 0 1 2
-            1631:1159(i16vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1630
-            1632:   1150(ptr) AccessChain 34(data) 1627 57
-            1633: 22(i16vec4) Load 1632
-            1634: 22(i16vec4) VectorShuffle 1633 1631 4 5 6 3
-                              Store 1632 1634
-            1635:      6(int) Load 8(invocation)
-            1636:   1150(ptr) AccessChain 34(data) 67 57
-            1637: 22(i16vec4) Load 1636
-            1638: 22(i16vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1637
-            1639:   1150(ptr) AccessChain 34(data) 1635 57
-                              Store 1639 1638
-            1640:      6(int) Load 8(invocation)
-            1641:   1143(ptr) AccessChain 34(data) 37 57 38
-            1642: 21(int16_t) Load 1641
-            1643: 21(int16_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 1642
-            1644:   1143(ptr) AccessChain 34(data) 1640 57 38
-                              Store 1644 1643
-            1645:      6(int) Load 8(invocation)
-            1646:   1150(ptr) AccessChain 34(data) 46 57
-            1647: 22(i16vec4) Load 1646
-            1648:1149(i16vec2) VectorShuffle 1647 1647 0 1
-            1649:1149(i16vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 1648
-            1650:   1150(ptr) AccessChain 34(data) 1645 57
-            1651: 22(i16vec4) Load 1650
-            1652: 22(i16vec4) VectorShuffle 1651 1649 4 5 2 3
-                              Store 1650 1652
-            1653:      6(int) Load 8(invocation)
-            1654:   1150(ptr) AccessChain 34(data) 57 57
-            1655: 22(i16vec4) Load 1654
-            1656:1159(i16vec3) VectorShuffle 1655 1655 0 1 2
-            1657:1159(i16vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 1656
-            1658:   1150(ptr) AccessChain 34(data) 1653 57
-            1659: 22(i16vec4) Load 1658
-            1660: 22(i16vec4) VectorShuffle 1659 1657 4 5 6 3
-                              Store 1658 1660
-            1661:      6(int) Load 8(invocation)
-            1662:   1150(ptr) AccessChain 34(data) 67 57
-            1663: 22(i16vec4) Load 1662
-            1664: 22(i16vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 1663
-            1665:   1150(ptr) AccessChain 34(data) 1661 57
-                              Store 1665 1664
-            1666:      6(int) Load 8(invocation)
-            1667:   1143(ptr) AccessChain 34(data) 37 57 38
-            1668: 21(int16_t) Load 1667
-            1669: 21(int16_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 1668
-            1670:   1143(ptr) AccessChain 34(data) 1666 57 38
-                              Store 1670 1669
+            1534:1319(i16vec2) VectorShuffle 1533 1533 0 1
+            1535:1319(i16vec2) GroupNonUniformIAdd 42 InclusiveScan 1534
+            1536:   1313(ptr) AccessChain 34(data) 1531 59 38
+            1537: 21(int16_t) CompositeExtract 1535 0
+                              Store 1536 1537
+            1538:   1313(ptr) AccessChain 34(data) 1531 59 55
+            1539: 21(int16_t) CompositeExtract 1535 1
+                              Store 1538 1539
+            1540:      6(int) Load 8(invocation)
+            1541:   1320(ptr) AccessChain 34(data) 59 59
+            1542: 22(i16vec4) Load 1541
+            1543:1330(i16vec3) VectorShuffle 1542 1542 0 1 2
+            1544:1330(i16vec3) GroupNonUniformIAdd 42 InclusiveScan 1543
+            1545:   1313(ptr) AccessChain 34(data) 1540 59 38
+            1546: 21(int16_t) CompositeExtract 1544 0
+                              Store 1545 1546
+            1547:   1313(ptr) AccessChain 34(data) 1540 59 55
+            1548: 21(int16_t) CompositeExtract 1544 1
+                              Store 1547 1548
+            1549:   1313(ptr) AccessChain 34(data) 1540 59 69
+            1550: 21(int16_t) CompositeExtract 1544 2
+                              Store 1549 1550
+            1551:      6(int) Load 8(invocation)
+            1552:   1320(ptr) AccessChain 34(data) 73 59
+            1553: 22(i16vec4) Load 1552
+            1554: 22(i16vec4) GroupNonUniformIAdd 42 InclusiveScan 1553
+            1555:   1320(ptr) AccessChain 34(data) 1551 59
+                              Store 1555 1554
+            1556:      6(int) Load 8(invocation)
+            1557:   1313(ptr) AccessChain 34(data) 37 59 38
+            1558: 21(int16_t) Load 1557
+            1559: 21(int16_t) GroupNonUniformIMul 42 InclusiveScan 1558
+            1560:   1313(ptr) AccessChain 34(data) 1556 59 38
+                              Store 1560 1559
+            1561:      6(int) Load 8(invocation)
+            1562:   1320(ptr) AccessChain 34(data) 46 59
+            1563: 22(i16vec4) Load 1562
+            1564:1319(i16vec2) VectorShuffle 1563 1563 0 1
+            1565:1319(i16vec2) GroupNonUniformIMul 42 InclusiveScan 1564
+            1566:   1313(ptr) AccessChain 34(data) 1561 59 38
+            1567: 21(int16_t) CompositeExtract 1565 0
+                              Store 1566 1567
+            1568:   1313(ptr) AccessChain 34(data) 1561 59 55
+            1569: 21(int16_t) CompositeExtract 1565 1
+                              Store 1568 1569
+            1570:      6(int) Load 8(invocation)
+            1571:   1320(ptr) AccessChain 34(data) 59 59
+            1572: 22(i16vec4) Load 1571
+            1573:1330(i16vec3) VectorShuffle 1572 1572 0 1 2
+            1574:1330(i16vec3) GroupNonUniformIMul 42 InclusiveScan 1573
+            1575:   1313(ptr) AccessChain 34(data) 1570 59 38
+            1576: 21(int16_t) CompositeExtract 1574 0
+                              Store 1575 1576
+            1577:   1313(ptr) AccessChain 34(data) 1570 59 55
+            1578: 21(int16_t) CompositeExtract 1574 1
+                              Store 1577 1578
+            1579:   1313(ptr) AccessChain 34(data) 1570 59 69
+            1580: 21(int16_t) CompositeExtract 1574 2
+                              Store 1579 1580
+            1581:      6(int) Load 8(invocation)
+            1582:   1320(ptr) AccessChain 34(data) 73 59
+            1583: 22(i16vec4) Load 1582
+            1584: 22(i16vec4) GroupNonUniformIMul 42 InclusiveScan 1583
+            1585:   1320(ptr) AccessChain 34(data) 1581 59
+                              Store 1585 1584
+            1586:      6(int) Load 8(invocation)
+            1587:   1313(ptr) AccessChain 34(data) 37 59 38
+            1588: 21(int16_t) Load 1587
+            1589: 21(int16_t) GroupNonUniformSMin 42 InclusiveScan 1588
+            1590:   1313(ptr) AccessChain 34(data) 1586 59 38
+                              Store 1590 1589
+            1591:      6(int) Load 8(invocation)
+            1592:   1320(ptr) AccessChain 34(data) 46 59
+            1593: 22(i16vec4) Load 1592
+            1594:1319(i16vec2) VectorShuffle 1593 1593 0 1
+            1595:1319(i16vec2) GroupNonUniformSMin 42 InclusiveScan 1594
+            1596:   1313(ptr) AccessChain 34(data) 1591 59 38
+            1597: 21(int16_t) CompositeExtract 1595 0
+                              Store 1596 1597
+            1598:   1313(ptr) AccessChain 34(data) 1591 59 55
+            1599: 21(int16_t) CompositeExtract 1595 1
+                              Store 1598 1599
+            1600:      6(int) Load 8(invocation)
+            1601:   1320(ptr) AccessChain 34(data) 59 59
+            1602: 22(i16vec4) Load 1601
+            1603:1330(i16vec3) VectorShuffle 1602 1602 0 1 2
+            1604:1330(i16vec3) GroupNonUniformSMin 42 InclusiveScan 1603
+            1605:   1313(ptr) AccessChain 34(data) 1600 59 38
+            1606: 21(int16_t) CompositeExtract 1604 0
+                              Store 1605 1606
+            1607:   1313(ptr) AccessChain 34(data) 1600 59 55
+            1608: 21(int16_t) CompositeExtract 1604 1
+                              Store 1607 1608
+            1609:   1313(ptr) AccessChain 34(data) 1600 59 69
+            1610: 21(int16_t) CompositeExtract 1604 2
+                              Store 1609 1610
+            1611:      6(int) Load 8(invocation)
+            1612:   1320(ptr) AccessChain 34(data) 73 59
+            1613: 22(i16vec4) Load 1612
+            1614: 22(i16vec4) GroupNonUniformSMin 42 InclusiveScan 1613
+            1615:   1320(ptr) AccessChain 34(data) 1611 59
+                              Store 1615 1614
+            1616:      6(int) Load 8(invocation)
+            1617:   1313(ptr) AccessChain 34(data) 37 59 38
+            1618: 21(int16_t) Load 1617
+            1619: 21(int16_t) GroupNonUniformSMax 42 InclusiveScan 1618
+            1620:   1313(ptr) AccessChain 34(data) 1616 59 38
+                              Store 1620 1619
+            1621:      6(int) Load 8(invocation)
+            1622:   1320(ptr) AccessChain 34(data) 46 59
+            1623: 22(i16vec4) Load 1622
+            1624:1319(i16vec2) VectorShuffle 1623 1623 0 1
+            1625:1319(i16vec2) GroupNonUniformSMax 42 InclusiveScan 1624
+            1626:   1313(ptr) AccessChain 34(data) 1621 59 38
+            1627: 21(int16_t) CompositeExtract 1625 0
+                              Store 1626 1627
+            1628:   1313(ptr) AccessChain 34(data) 1621 59 55
+            1629: 21(int16_t) CompositeExtract 1625 1
+                              Store 1628 1629
+            1630:      6(int) Load 8(invocation)
+            1631:   1320(ptr) AccessChain 34(data) 59 59
+            1632: 22(i16vec4) Load 1631
+            1633:1330(i16vec3) VectorShuffle 1632 1632 0 1 2
+            1634:1330(i16vec3) GroupNonUniformSMax 42 InclusiveScan 1633
+            1635:   1313(ptr) AccessChain 34(data) 1630 59 38
+            1636: 21(int16_t) CompositeExtract 1634 0
+                              Store 1635 1636
+            1637:   1313(ptr) AccessChain 34(data) 1630 59 55
+            1638: 21(int16_t) CompositeExtract 1634 1
+                              Store 1637 1638
+            1639:   1313(ptr) AccessChain 34(data) 1630 59 69
+            1640: 21(int16_t) CompositeExtract 1634 2
+                              Store 1639 1640
+            1641:      6(int) Load 8(invocation)
+            1642:   1320(ptr) AccessChain 34(data) 73 59
+            1643: 22(i16vec4) Load 1642
+            1644: 22(i16vec4) GroupNonUniformSMax 42 InclusiveScan 1643
+            1645:   1320(ptr) AccessChain 34(data) 1641 59
+                              Store 1645 1644
+            1646:      6(int) Load 8(invocation)
+            1647:   1313(ptr) AccessChain 34(data) 37 59 38
+            1648: 21(int16_t) Load 1647
+            1649: 21(int16_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 1648
+            1650:   1313(ptr) AccessChain 34(data) 1646 59 38
+                              Store 1650 1649
+            1651:      6(int) Load 8(invocation)
+            1652:   1320(ptr) AccessChain 34(data) 46 59
+            1653: 22(i16vec4) Load 1652
+            1654:1319(i16vec2) VectorShuffle 1653 1653 0 1
+            1655:1319(i16vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 1654
+            1656:   1313(ptr) AccessChain 34(data) 1651 59 38
+            1657: 21(int16_t) CompositeExtract 1655 0
+                              Store 1656 1657
+            1658:   1313(ptr) AccessChain 34(data) 1651 59 55
+            1659: 21(int16_t) CompositeExtract 1655 1
+                              Store 1658 1659
+            1660:      6(int) Load 8(invocation)
+            1661:   1320(ptr) AccessChain 34(data) 59 59
+            1662: 22(i16vec4) Load 1661
+            1663:1330(i16vec3) VectorShuffle 1662 1662 0 1 2
+            1664:1330(i16vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 1663
+            1665:   1313(ptr) AccessChain 34(data) 1660 59 38
+            1666: 21(int16_t) CompositeExtract 1664 0
+                              Store 1665 1666
+            1667:   1313(ptr) AccessChain 34(data) 1660 59 55
+            1668: 21(int16_t) CompositeExtract 1664 1
+                              Store 1667 1668
+            1669:   1313(ptr) AccessChain 34(data) 1660 59 69
+            1670: 21(int16_t) CompositeExtract 1664 2
+                              Store 1669 1670
             1671:      6(int) Load 8(invocation)
-            1672:   1150(ptr) AccessChain 34(data) 46 57
+            1672:   1320(ptr) AccessChain 34(data) 73 59
             1673: 22(i16vec4) Load 1672
-            1674:1149(i16vec2) VectorShuffle 1673 1673 0 1
-            1675:1149(i16vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 1674
-            1676:   1150(ptr) AccessChain 34(data) 1671 57
-            1677: 22(i16vec4) Load 1676
-            1678: 22(i16vec4) VectorShuffle 1677 1675 4 5 2 3
-                              Store 1676 1678
-            1679:      6(int) Load 8(invocation)
-            1680:   1150(ptr) AccessChain 34(data) 57 57
-            1681: 22(i16vec4) Load 1680
-            1682:1159(i16vec3) VectorShuffle 1681 1681 0 1 2
-            1683:1159(i16vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 1682
-            1684:   1150(ptr) AccessChain 34(data) 1679 57
-            1685: 22(i16vec4) Load 1684
-            1686: 22(i16vec4) VectorShuffle 1685 1683 4 5 6 3
-                              Store 1684 1686
-            1687:      6(int) Load 8(invocation)
-            1688:   1150(ptr) AccessChain 34(data) 67 57
-            1689: 22(i16vec4) Load 1688
-            1690: 22(i16vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 1689
-            1691:   1150(ptr) AccessChain 34(data) 1687 57
-                              Store 1691 1690
-            1692:      6(int) Load 8(invocation)
-            1694:   1693(ptr) AccessChain 34(data) 37 67 38
-            1695: 23(int16_t) Load 1694
-            1696: 23(int16_t) GroupNonUniformIAdd 42 Reduce 1695
-            1697:   1693(ptr) AccessChain 34(data) 1692 67 38
-                              Store 1697 1696
-            1698:      6(int) Load 8(invocation)
-            1701:   1700(ptr) AccessChain 34(data) 46 67
-            1702: 24(i16vec4) Load 1701
-            1703:1699(i16vec2) VectorShuffle 1702 1702 0 1
-            1704:1699(i16vec2) GroupNonUniformIAdd 42 Reduce 1703
-            1705:   1700(ptr) AccessChain 34(data) 1698 67
-            1706: 24(i16vec4) Load 1705
-            1707: 24(i16vec4) VectorShuffle 1706 1704 4 5 2 3
-                              Store 1705 1707
-            1708:      6(int) Load 8(invocation)
-            1710:   1700(ptr) AccessChain 34(data) 57 67
-            1711: 24(i16vec4) Load 1710
-            1712:1709(i16vec3) VectorShuffle 1711 1711 0 1 2
-            1713:1709(i16vec3) GroupNonUniformIAdd 42 Reduce 1712
-            1714:   1700(ptr) AccessChain 34(data) 1708 67
-            1715: 24(i16vec4) Load 1714
-            1716: 24(i16vec4) VectorShuffle 1715 1713 4 5 6 3
-                              Store 1714 1716
-            1717:      6(int) Load 8(invocation)
-            1718:   1700(ptr) AccessChain 34(data) 67 67
-            1719: 24(i16vec4) Load 1718
-            1720: 24(i16vec4) GroupNonUniformIAdd 42 Reduce 1719
-            1721:   1700(ptr) AccessChain 34(data) 1717 67
-                              Store 1721 1720
-            1722:      6(int) Load 8(invocation)
-            1723:   1693(ptr) AccessChain 34(data) 37 67 38
-            1724: 23(int16_t) Load 1723
-            1725: 23(int16_t) GroupNonUniformIMul 42 Reduce 1724
-            1726:   1693(ptr) AccessChain 34(data) 1722 67 38
-                              Store 1726 1725
-            1727:      6(int) Load 8(invocation)
-            1728:   1700(ptr) AccessChain 34(data) 46 67
-            1729: 24(i16vec4) Load 1728
-            1730:1699(i16vec2) VectorShuffle 1729 1729 0 1
-            1731:1699(i16vec2) GroupNonUniformIMul 42 Reduce 1730
-            1732:   1700(ptr) AccessChain 34(data) 1727 67
-            1733: 24(i16vec4) Load 1732
-            1734: 24(i16vec4) VectorShuffle 1733 1731 4 5 2 3
-                              Store 1732 1734
-            1735:      6(int) Load 8(invocation)
-            1736:   1700(ptr) AccessChain 34(data) 57 67
-            1737: 24(i16vec4) Load 1736
-            1738:1709(i16vec3) VectorShuffle 1737 1737 0 1 2
-            1739:1709(i16vec3) GroupNonUniformIMul 42 Reduce 1738
-            1740:   1700(ptr) AccessChain 34(data) 1735 67
-            1741: 24(i16vec4) Load 1740
-            1742: 24(i16vec4) VectorShuffle 1741 1739 4 5 6 3
-                              Store 1740 1742
-            1743:      6(int) Load 8(invocation)
-            1744:   1700(ptr) AccessChain 34(data) 67 67
-            1745: 24(i16vec4) Load 1744
-            1746: 24(i16vec4) GroupNonUniformIMul 42 Reduce 1745
-            1747:   1700(ptr) AccessChain 34(data) 1743 67
-                              Store 1747 1746
-            1748:      6(int) Load 8(invocation)
-            1749:   1693(ptr) AccessChain 34(data) 37 67 38
-            1750: 23(int16_t) Load 1749
-            1751: 23(int16_t) GroupNonUniformUMin 42 Reduce 1750
-            1752:   1693(ptr) AccessChain 34(data) 1748 67 38
-                              Store 1752 1751
-            1753:      6(int) Load 8(invocation)
-            1754:   1700(ptr) AccessChain 34(data) 46 67
-            1755: 24(i16vec4) Load 1754
-            1756:1699(i16vec2) VectorShuffle 1755 1755 0 1
-            1757:1699(i16vec2) GroupNonUniformUMin 42 Reduce 1756
-            1758:   1700(ptr) AccessChain 34(data) 1753 67
-            1759: 24(i16vec4) Load 1758
-            1760: 24(i16vec4) VectorShuffle 1759 1757 4 5 2 3
-                              Store 1758 1760
+            1674: 22(i16vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 1673
+            1675:   1320(ptr) AccessChain 34(data) 1671 59
+                              Store 1675 1674
+            1676:      6(int) Load 8(invocation)
+            1677:   1313(ptr) AccessChain 34(data) 37 59 38
+            1678: 21(int16_t) Load 1677
+            1679: 21(int16_t) GroupNonUniformBitwiseOr 42 InclusiveScan 1678
+            1680:   1313(ptr) AccessChain 34(data) 1676 59 38
+                              Store 1680 1679
+            1681:      6(int) Load 8(invocation)
+            1682:   1320(ptr) AccessChain 34(data) 46 59
+            1683: 22(i16vec4) Load 1682
+            1684:1319(i16vec2) VectorShuffle 1683 1683 0 1
+            1685:1319(i16vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 1684
+            1686:   1313(ptr) AccessChain 34(data) 1681 59 38
+            1687: 21(int16_t) CompositeExtract 1685 0
+                              Store 1686 1687
+            1688:   1313(ptr) AccessChain 34(data) 1681 59 55
+            1689: 21(int16_t) CompositeExtract 1685 1
+                              Store 1688 1689
+            1690:      6(int) Load 8(invocation)
+            1691:   1320(ptr) AccessChain 34(data) 59 59
+            1692: 22(i16vec4) Load 1691
+            1693:1330(i16vec3) VectorShuffle 1692 1692 0 1 2
+            1694:1330(i16vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 1693
+            1695:   1313(ptr) AccessChain 34(data) 1690 59 38
+            1696: 21(int16_t) CompositeExtract 1694 0
+                              Store 1695 1696
+            1697:   1313(ptr) AccessChain 34(data) 1690 59 55
+            1698: 21(int16_t) CompositeExtract 1694 1
+                              Store 1697 1698
+            1699:   1313(ptr) AccessChain 34(data) 1690 59 69
+            1700: 21(int16_t) CompositeExtract 1694 2
+                              Store 1699 1700
+            1701:      6(int) Load 8(invocation)
+            1702:   1320(ptr) AccessChain 34(data) 73 59
+            1703: 22(i16vec4) Load 1702
+            1704: 22(i16vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 1703
+            1705:   1320(ptr) AccessChain 34(data) 1701 59
+                              Store 1705 1704
+            1706:      6(int) Load 8(invocation)
+            1707:   1313(ptr) AccessChain 34(data) 37 59 38
+            1708: 21(int16_t) Load 1707
+            1709: 21(int16_t) GroupNonUniformBitwiseXor 42 InclusiveScan 1708
+            1710:   1313(ptr) AccessChain 34(data) 1706 59 38
+                              Store 1710 1709
+            1711:      6(int) Load 8(invocation)
+            1712:   1320(ptr) AccessChain 34(data) 46 59
+            1713: 22(i16vec4) Load 1712
+            1714:1319(i16vec2) VectorShuffle 1713 1713 0 1
+            1715:1319(i16vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 1714
+            1716:   1313(ptr) AccessChain 34(data) 1711 59 38
+            1717: 21(int16_t) CompositeExtract 1715 0
+                              Store 1716 1717
+            1718:   1313(ptr) AccessChain 34(data) 1711 59 55
+            1719: 21(int16_t) CompositeExtract 1715 1
+                              Store 1718 1719
+            1720:      6(int) Load 8(invocation)
+            1721:   1320(ptr) AccessChain 34(data) 59 59
+            1722: 22(i16vec4) Load 1721
+            1723:1330(i16vec3) VectorShuffle 1722 1722 0 1 2
+            1724:1330(i16vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 1723
+            1725:   1313(ptr) AccessChain 34(data) 1720 59 38
+            1726: 21(int16_t) CompositeExtract 1724 0
+                              Store 1725 1726
+            1727:   1313(ptr) AccessChain 34(data) 1720 59 55
+            1728: 21(int16_t) CompositeExtract 1724 1
+                              Store 1727 1728
+            1729:   1313(ptr) AccessChain 34(data) 1720 59 69
+            1730: 21(int16_t) CompositeExtract 1724 2
+                              Store 1729 1730
+            1731:      6(int) Load 8(invocation)
+            1732:   1320(ptr) AccessChain 34(data) 73 59
+            1733: 22(i16vec4) Load 1732
+            1734: 22(i16vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 1733
+            1735:   1320(ptr) AccessChain 34(data) 1731 59
+                              Store 1735 1734
+            1736:      6(int) Load 8(invocation)
+            1737:   1313(ptr) AccessChain 34(data) 37 59 38
+            1738: 21(int16_t) Load 1737
+            1739: 21(int16_t) GroupNonUniformIAdd 42 ExclusiveScan 1738
+            1740:   1313(ptr) AccessChain 34(data) 1736 59 38
+                              Store 1740 1739
+            1741:      6(int) Load 8(invocation)
+            1742:   1320(ptr) AccessChain 34(data) 46 59
+            1743: 22(i16vec4) Load 1742
+            1744:1319(i16vec2) VectorShuffle 1743 1743 0 1
+            1745:1319(i16vec2) GroupNonUniformIAdd 42 ExclusiveScan 1744
+            1746:   1313(ptr) AccessChain 34(data) 1741 59 38
+            1747: 21(int16_t) CompositeExtract 1745 0
+                              Store 1746 1747
+            1748:   1313(ptr) AccessChain 34(data) 1741 59 55
+            1749: 21(int16_t) CompositeExtract 1745 1
+                              Store 1748 1749
+            1750:      6(int) Load 8(invocation)
+            1751:   1320(ptr) AccessChain 34(data) 59 59
+            1752: 22(i16vec4) Load 1751
+            1753:1330(i16vec3) VectorShuffle 1752 1752 0 1 2
+            1754:1330(i16vec3) GroupNonUniformIAdd 42 ExclusiveScan 1753
+            1755:   1313(ptr) AccessChain 34(data) 1750 59 38
+            1756: 21(int16_t) CompositeExtract 1754 0
+                              Store 1755 1756
+            1757:   1313(ptr) AccessChain 34(data) 1750 59 55
+            1758: 21(int16_t) CompositeExtract 1754 1
+                              Store 1757 1758
+            1759:   1313(ptr) AccessChain 34(data) 1750 59 69
+            1760: 21(int16_t) CompositeExtract 1754 2
+                              Store 1759 1760
             1761:      6(int) Load 8(invocation)
-            1762:   1700(ptr) AccessChain 34(data) 57 67
-            1763: 24(i16vec4) Load 1762
-            1764:1709(i16vec3) VectorShuffle 1763 1763 0 1 2
-            1765:1709(i16vec3) GroupNonUniformUMin 42 Reduce 1764
-            1766:   1700(ptr) AccessChain 34(data) 1761 67
-            1767: 24(i16vec4) Load 1766
-            1768: 24(i16vec4) VectorShuffle 1767 1765 4 5 6 3
-                              Store 1766 1768
-            1769:      6(int) Load 8(invocation)
-            1770:   1700(ptr) AccessChain 34(data) 67 67
-            1771: 24(i16vec4) Load 1770
-            1772: 24(i16vec4) GroupNonUniformUMin 42 Reduce 1771
-            1773:   1700(ptr) AccessChain 34(data) 1769 67
-                              Store 1773 1772
-            1774:      6(int) Load 8(invocation)
-            1775:   1693(ptr) AccessChain 34(data) 37 67 38
-            1776: 23(int16_t) Load 1775
-            1777: 23(int16_t) GroupNonUniformUMax 42 Reduce 1776
-            1778:   1693(ptr) AccessChain 34(data) 1774 67 38
-                              Store 1778 1777
-            1779:      6(int) Load 8(invocation)
-            1780:   1700(ptr) AccessChain 34(data) 46 67
-            1781: 24(i16vec4) Load 1780
-            1782:1699(i16vec2) VectorShuffle 1781 1781 0 1
-            1783:1699(i16vec2) GroupNonUniformUMax 42 Reduce 1782
-            1784:   1700(ptr) AccessChain 34(data) 1779 67
-            1785: 24(i16vec4) Load 1784
-            1786: 24(i16vec4) VectorShuffle 1785 1783 4 5 2 3
-                              Store 1784 1786
-            1787:      6(int) Load 8(invocation)
-            1788:   1700(ptr) AccessChain 34(data) 57 67
-            1789: 24(i16vec4) Load 1788
-            1790:1709(i16vec3) VectorShuffle 1789 1789 0 1 2
-            1791:1709(i16vec3) GroupNonUniformUMax 42 Reduce 1790
-            1792:   1700(ptr) AccessChain 34(data) 1787 67
-            1793: 24(i16vec4) Load 1792
-            1794: 24(i16vec4) VectorShuffle 1793 1791 4 5 6 3
-                              Store 1792 1794
-            1795:      6(int) Load 8(invocation)
-            1796:   1700(ptr) AccessChain 34(data) 67 67
-            1797: 24(i16vec4) Load 1796
-            1798: 24(i16vec4) GroupNonUniformUMax 42 Reduce 1797
-            1799:   1700(ptr) AccessChain 34(data) 1795 67
-                              Store 1799 1798
-            1800:      6(int) Load 8(invocation)
-            1801:   1693(ptr) AccessChain 34(data) 37 67 38
-            1802: 23(int16_t) Load 1801
-            1803: 23(int16_t) GroupNonUniformBitwiseAnd 42 Reduce 1802
-            1804:   1693(ptr) AccessChain 34(data) 1800 67 38
-                              Store 1804 1803
-            1805:      6(int) Load 8(invocation)
-            1806:   1700(ptr) AccessChain 34(data) 46 67
-            1807: 24(i16vec4) Load 1806
-            1808:1699(i16vec2) VectorShuffle 1807 1807 0 1
-            1809:1699(i16vec2) GroupNonUniformBitwiseAnd 42 Reduce 1808
-            1810:   1700(ptr) AccessChain 34(data) 1805 67
-            1811: 24(i16vec4) Load 1810
-            1812: 24(i16vec4) VectorShuffle 1811 1809 4 5 2 3
-                              Store 1810 1812
-            1813:      6(int) Load 8(invocation)
-            1814:   1700(ptr) AccessChain 34(data) 57 67
-            1815: 24(i16vec4) Load 1814
-            1816:1709(i16vec3) VectorShuffle 1815 1815 0 1 2
-            1817:1709(i16vec3) GroupNonUniformBitwiseAnd 42 Reduce 1816
-            1818:   1700(ptr) AccessChain 34(data) 1813 67
-            1819: 24(i16vec4) Load 1818
-            1820: 24(i16vec4) VectorShuffle 1819 1817 4 5 6 3
-                              Store 1818 1820
+            1762:   1320(ptr) AccessChain 34(data) 73 59
+            1763: 22(i16vec4) Load 1762
+            1764: 22(i16vec4) GroupNonUniformIAdd 42 ExclusiveScan 1763
+            1765:   1320(ptr) AccessChain 34(data) 1761 59
+                              Store 1765 1764
+            1766:      6(int) Load 8(invocation)
+            1767:   1313(ptr) AccessChain 34(data) 37 59 38
+            1768: 21(int16_t) Load 1767
+            1769: 21(int16_t) GroupNonUniformIMul 42 ExclusiveScan 1768
+            1770:   1313(ptr) AccessChain 34(data) 1766 59 38
+                              Store 1770 1769
+            1771:      6(int) Load 8(invocation)
+            1772:   1320(ptr) AccessChain 34(data) 46 59
+            1773: 22(i16vec4) Load 1772
+            1774:1319(i16vec2) VectorShuffle 1773 1773 0 1
+            1775:1319(i16vec2) GroupNonUniformIMul 42 ExclusiveScan 1774
+            1776:   1313(ptr) AccessChain 34(data) 1771 59 38
+            1777: 21(int16_t) CompositeExtract 1775 0
+                              Store 1776 1777
+            1778:   1313(ptr) AccessChain 34(data) 1771 59 55
+            1779: 21(int16_t) CompositeExtract 1775 1
+                              Store 1778 1779
+            1780:      6(int) Load 8(invocation)
+            1781:   1320(ptr) AccessChain 34(data) 59 59
+            1782: 22(i16vec4) Load 1781
+            1783:1330(i16vec3) VectorShuffle 1782 1782 0 1 2
+            1784:1330(i16vec3) GroupNonUniformIMul 42 ExclusiveScan 1783
+            1785:   1313(ptr) AccessChain 34(data) 1780 59 38
+            1786: 21(int16_t) CompositeExtract 1784 0
+                              Store 1785 1786
+            1787:   1313(ptr) AccessChain 34(data) 1780 59 55
+            1788: 21(int16_t) CompositeExtract 1784 1
+                              Store 1787 1788
+            1789:   1313(ptr) AccessChain 34(data) 1780 59 69
+            1790: 21(int16_t) CompositeExtract 1784 2
+                              Store 1789 1790
+            1791:      6(int) Load 8(invocation)
+            1792:   1320(ptr) AccessChain 34(data) 73 59
+            1793: 22(i16vec4) Load 1792
+            1794: 22(i16vec4) GroupNonUniformIMul 42 ExclusiveScan 1793
+            1795:   1320(ptr) AccessChain 34(data) 1791 59
+                              Store 1795 1794
+            1796:      6(int) Load 8(invocation)
+            1797:   1313(ptr) AccessChain 34(data) 37 59 38
+            1798: 21(int16_t) Load 1797
+            1799: 21(int16_t) GroupNonUniformSMin 42 ExclusiveScan 1798
+            1800:   1313(ptr) AccessChain 34(data) 1796 59 38
+                              Store 1800 1799
+            1801:      6(int) Load 8(invocation)
+            1802:   1320(ptr) AccessChain 34(data) 46 59
+            1803: 22(i16vec4) Load 1802
+            1804:1319(i16vec2) VectorShuffle 1803 1803 0 1
+            1805:1319(i16vec2) GroupNonUniformSMin 42 ExclusiveScan 1804
+            1806:   1313(ptr) AccessChain 34(data) 1801 59 38
+            1807: 21(int16_t) CompositeExtract 1805 0
+                              Store 1806 1807
+            1808:   1313(ptr) AccessChain 34(data) 1801 59 55
+            1809: 21(int16_t) CompositeExtract 1805 1
+                              Store 1808 1809
+            1810:      6(int) Load 8(invocation)
+            1811:   1320(ptr) AccessChain 34(data) 59 59
+            1812: 22(i16vec4) Load 1811
+            1813:1330(i16vec3) VectorShuffle 1812 1812 0 1 2
+            1814:1330(i16vec3) GroupNonUniformSMin 42 ExclusiveScan 1813
+            1815:   1313(ptr) AccessChain 34(data) 1810 59 38
+            1816: 21(int16_t) CompositeExtract 1814 0
+                              Store 1815 1816
+            1817:   1313(ptr) AccessChain 34(data) 1810 59 55
+            1818: 21(int16_t) CompositeExtract 1814 1
+                              Store 1817 1818
+            1819:   1313(ptr) AccessChain 34(data) 1810 59 69
+            1820: 21(int16_t) CompositeExtract 1814 2
+                              Store 1819 1820
             1821:      6(int) Load 8(invocation)
-            1822:   1700(ptr) AccessChain 34(data) 67 67
-            1823: 24(i16vec4) Load 1822
-            1824: 24(i16vec4) GroupNonUniformBitwiseAnd 42 Reduce 1823
-            1825:   1700(ptr) AccessChain 34(data) 1821 67
+            1822:   1320(ptr) AccessChain 34(data) 73 59
+            1823: 22(i16vec4) Load 1822
+            1824: 22(i16vec4) GroupNonUniformSMin 42 ExclusiveScan 1823
+            1825:   1320(ptr) AccessChain 34(data) 1821 59
                               Store 1825 1824
             1826:      6(int) Load 8(invocation)
-            1827:   1693(ptr) AccessChain 34(data) 37 67 38
-            1828: 23(int16_t) Load 1827
-            1829: 23(int16_t) GroupNonUniformBitwiseOr 42 Reduce 1828
-            1830:   1693(ptr) AccessChain 34(data) 1826 67 38
+            1827:   1313(ptr) AccessChain 34(data) 37 59 38
+            1828: 21(int16_t) Load 1827
+            1829: 21(int16_t) GroupNonUniformSMax 42 ExclusiveScan 1828
+            1830:   1313(ptr) AccessChain 34(data) 1826 59 38
                               Store 1830 1829
             1831:      6(int) Load 8(invocation)
-            1832:   1700(ptr) AccessChain 34(data) 46 67
-            1833: 24(i16vec4) Load 1832
-            1834:1699(i16vec2) VectorShuffle 1833 1833 0 1
-            1835:1699(i16vec2) GroupNonUniformBitwiseOr 42 Reduce 1834
-            1836:   1700(ptr) AccessChain 34(data) 1831 67
-            1837: 24(i16vec4) Load 1836
-            1838: 24(i16vec4) VectorShuffle 1837 1835 4 5 2 3
-                              Store 1836 1838
-            1839:      6(int) Load 8(invocation)
-            1840:   1700(ptr) AccessChain 34(data) 57 67
-            1841: 24(i16vec4) Load 1840
-            1842:1709(i16vec3) VectorShuffle 1841 1841 0 1 2
-            1843:1709(i16vec3) GroupNonUniformBitwiseOr 42 Reduce 1842
-            1844:   1700(ptr) AccessChain 34(data) 1839 67
-            1845: 24(i16vec4) Load 1844
-            1846: 24(i16vec4) VectorShuffle 1845 1843 4 5 6 3
-                              Store 1844 1846
-            1847:      6(int) Load 8(invocation)
-            1848:   1700(ptr) AccessChain 34(data) 67 67
-            1849: 24(i16vec4) Load 1848
-            1850: 24(i16vec4) GroupNonUniformBitwiseOr 42 Reduce 1849
-            1851:   1700(ptr) AccessChain 34(data) 1847 67
-                              Store 1851 1850
-            1852:      6(int) Load 8(invocation)
-            1853:   1693(ptr) AccessChain 34(data) 37 67 38
-            1854: 23(int16_t) Load 1853
-            1855: 23(int16_t) GroupNonUniformBitwiseXor 42 Reduce 1854
-            1856:   1693(ptr) AccessChain 34(data) 1852 67 38
-                              Store 1856 1855
-            1857:      6(int) Load 8(invocation)
-            1858:   1700(ptr) AccessChain 34(data) 46 67
-            1859: 24(i16vec4) Load 1858
-            1860:1699(i16vec2) VectorShuffle 1859 1859 0 1
-            1861:1699(i16vec2) GroupNonUniformBitwiseXor 42 Reduce 1860
-            1862:   1700(ptr) AccessChain 34(data) 1857 67
-            1863: 24(i16vec4) Load 1862
-            1864: 24(i16vec4) VectorShuffle 1863 1861 4 5 2 3
-                              Store 1862 1864
-            1865:      6(int) Load 8(invocation)
-            1866:   1700(ptr) AccessChain 34(data) 57 67
-            1867: 24(i16vec4) Load 1866
-            1868:1709(i16vec3) VectorShuffle 1867 1867 0 1 2
-            1869:1709(i16vec3) GroupNonUniformBitwiseXor 42 Reduce 1868
-            1870:   1700(ptr) AccessChain 34(data) 1865 67
-            1871: 24(i16vec4) Load 1870
-            1872: 24(i16vec4) VectorShuffle 1871 1869 4 5 6 3
-                              Store 1870 1872
-            1873:      6(int) Load 8(invocation)
-            1874:   1700(ptr) AccessChain 34(data) 67 67
-            1875: 24(i16vec4) Load 1874
-            1876: 24(i16vec4) GroupNonUniformBitwiseXor 42 Reduce 1875
-            1877:   1700(ptr) AccessChain 34(data) 1873 67
-                              Store 1877 1876
-            1878:      6(int) Load 8(invocation)
-            1879:   1693(ptr) AccessChain 34(data) 37 67 38
-            1880: 23(int16_t) Load 1879
-            1881: 23(int16_t) GroupNonUniformIAdd 42 InclusiveScan 1880
-            1882:   1693(ptr) AccessChain 34(data) 1878 67 38
-                              Store 1882 1881
-            1883:      6(int) Load 8(invocation)
-            1884:   1700(ptr) AccessChain 34(data) 46 67
-            1885: 24(i16vec4) Load 1884
-            1886:1699(i16vec2) VectorShuffle 1885 1885 0 1
-            1887:1699(i16vec2) GroupNonUniformIAdd 42 InclusiveScan 1886
-            1888:   1700(ptr) AccessChain 34(data) 1883 67
-            1889: 24(i16vec4) Load 1888
-            1890: 24(i16vec4) VectorShuffle 1889 1887 4 5 2 3
-                              Store 1888 1890
+            1832:   1320(ptr) AccessChain 34(data) 46 59
+            1833: 22(i16vec4) Load 1832
+            1834:1319(i16vec2) VectorShuffle 1833 1833 0 1
+            1835:1319(i16vec2) GroupNonUniformSMax 42 ExclusiveScan 1834
+            1836:   1313(ptr) AccessChain 34(data) 1831 59 38
+            1837: 21(int16_t) CompositeExtract 1835 0
+                              Store 1836 1837
+            1838:   1313(ptr) AccessChain 34(data) 1831 59 55
+            1839: 21(int16_t) CompositeExtract 1835 1
+                              Store 1838 1839
+            1840:      6(int) Load 8(invocation)
+            1841:   1320(ptr) AccessChain 34(data) 59 59
+            1842: 22(i16vec4) Load 1841
+            1843:1330(i16vec3) VectorShuffle 1842 1842 0 1 2
+            1844:1330(i16vec3) GroupNonUniformSMax 42 ExclusiveScan 1843
+            1845:   1313(ptr) AccessChain 34(data) 1840 59 38
+            1846: 21(int16_t) CompositeExtract 1844 0
+                              Store 1845 1846
+            1847:   1313(ptr) AccessChain 34(data) 1840 59 55
+            1848: 21(int16_t) CompositeExtract 1844 1
+                              Store 1847 1848
+            1849:   1313(ptr) AccessChain 34(data) 1840 59 69
+            1850: 21(int16_t) CompositeExtract 1844 2
+                              Store 1849 1850
+            1851:      6(int) Load 8(invocation)
+            1852:   1320(ptr) AccessChain 34(data) 73 59
+            1853: 22(i16vec4) Load 1852
+            1854: 22(i16vec4) GroupNonUniformSMax 42 ExclusiveScan 1853
+            1855:   1320(ptr) AccessChain 34(data) 1851 59
+                              Store 1855 1854
+            1856:      6(int) Load 8(invocation)
+            1857:   1313(ptr) AccessChain 34(data) 37 59 38
+            1858: 21(int16_t) Load 1857
+            1859: 21(int16_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1858
+            1860:   1313(ptr) AccessChain 34(data) 1856 59 38
+                              Store 1860 1859
+            1861:      6(int) Load 8(invocation)
+            1862:   1320(ptr) AccessChain 34(data) 46 59
+            1863: 22(i16vec4) Load 1862
+            1864:1319(i16vec2) VectorShuffle 1863 1863 0 1
+            1865:1319(i16vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1864
+            1866:   1313(ptr) AccessChain 34(data) 1861 59 38
+            1867: 21(int16_t) CompositeExtract 1865 0
+                              Store 1866 1867
+            1868:   1313(ptr) AccessChain 34(data) 1861 59 55
+            1869: 21(int16_t) CompositeExtract 1865 1
+                              Store 1868 1869
+            1870:      6(int) Load 8(invocation)
+            1871:   1320(ptr) AccessChain 34(data) 59 59
+            1872: 22(i16vec4) Load 1871
+            1873:1330(i16vec3) VectorShuffle 1872 1872 0 1 2
+            1874:1330(i16vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1873
+            1875:   1313(ptr) AccessChain 34(data) 1870 59 38
+            1876: 21(int16_t) CompositeExtract 1874 0
+                              Store 1875 1876
+            1877:   1313(ptr) AccessChain 34(data) 1870 59 55
+            1878: 21(int16_t) CompositeExtract 1874 1
+                              Store 1877 1878
+            1879:   1313(ptr) AccessChain 34(data) 1870 59 69
+            1880: 21(int16_t) CompositeExtract 1874 2
+                              Store 1879 1880
+            1881:      6(int) Load 8(invocation)
+            1882:   1320(ptr) AccessChain 34(data) 73 59
+            1883: 22(i16vec4) Load 1882
+            1884: 22(i16vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 1883
+            1885:   1320(ptr) AccessChain 34(data) 1881 59
+                              Store 1885 1884
+            1886:      6(int) Load 8(invocation)
+            1887:   1313(ptr) AccessChain 34(data) 37 59 38
+            1888: 21(int16_t) Load 1887
+            1889: 21(int16_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 1888
+            1890:   1313(ptr) AccessChain 34(data) 1886 59 38
+                              Store 1890 1889
             1891:      6(int) Load 8(invocation)
-            1892:   1700(ptr) AccessChain 34(data) 57 67
-            1893: 24(i16vec4) Load 1892
-            1894:1709(i16vec3) VectorShuffle 1893 1893 0 1 2
-            1895:1709(i16vec3) GroupNonUniformIAdd 42 InclusiveScan 1894
-            1896:   1700(ptr) AccessChain 34(data) 1891 67
-            1897: 24(i16vec4) Load 1896
-            1898: 24(i16vec4) VectorShuffle 1897 1895 4 5 6 3
-                              Store 1896 1898
-            1899:      6(int) Load 8(invocation)
-            1900:   1700(ptr) AccessChain 34(data) 67 67
-            1901: 24(i16vec4) Load 1900
-            1902: 24(i16vec4) GroupNonUniformIAdd 42 InclusiveScan 1901
-            1903:   1700(ptr) AccessChain 34(data) 1899 67
-                              Store 1903 1902
-            1904:      6(int) Load 8(invocation)
-            1905:   1693(ptr) AccessChain 34(data) 37 67 38
-            1906: 23(int16_t) Load 1905
-            1907: 23(int16_t) GroupNonUniformIMul 42 InclusiveScan 1906
-            1908:   1693(ptr) AccessChain 34(data) 1904 67 38
-                              Store 1908 1907
-            1909:      6(int) Load 8(invocation)
-            1910:   1700(ptr) AccessChain 34(data) 46 67
-            1911: 24(i16vec4) Load 1910
-            1912:1699(i16vec2) VectorShuffle 1911 1911 0 1
-            1913:1699(i16vec2) GroupNonUniformIMul 42 InclusiveScan 1912
-            1914:   1700(ptr) AccessChain 34(data) 1909 67
-            1915: 24(i16vec4) Load 1914
-            1916: 24(i16vec4) VectorShuffle 1915 1913 4 5 2 3
-                              Store 1914 1916
-            1917:      6(int) Load 8(invocation)
-            1918:   1700(ptr) AccessChain 34(data) 57 67
-            1919: 24(i16vec4) Load 1918
-            1920:1709(i16vec3) VectorShuffle 1919 1919 0 1 2
-            1921:1709(i16vec3) GroupNonUniformIMul 42 InclusiveScan 1920
-            1922:   1700(ptr) AccessChain 34(data) 1917 67
-            1923: 24(i16vec4) Load 1922
-            1924: 24(i16vec4) VectorShuffle 1923 1921 4 5 6 3
-                              Store 1922 1924
-            1925:      6(int) Load 8(invocation)
-            1926:   1700(ptr) AccessChain 34(data) 67 67
-            1927: 24(i16vec4) Load 1926
-            1928: 24(i16vec4) GroupNonUniformIMul 42 InclusiveScan 1927
-            1929:   1700(ptr) AccessChain 34(data) 1925 67
-                              Store 1929 1928
+            1892:   1320(ptr) AccessChain 34(data) 46 59
+            1893: 22(i16vec4) Load 1892
+            1894:1319(i16vec2) VectorShuffle 1893 1893 0 1
+            1895:1319(i16vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 1894
+            1896:   1313(ptr) AccessChain 34(data) 1891 59 38
+            1897: 21(int16_t) CompositeExtract 1895 0
+                              Store 1896 1897
+            1898:   1313(ptr) AccessChain 34(data) 1891 59 55
+            1899: 21(int16_t) CompositeExtract 1895 1
+                              Store 1898 1899
+            1900:      6(int) Load 8(invocation)
+            1901:   1320(ptr) AccessChain 34(data) 59 59
+            1902: 22(i16vec4) Load 1901
+            1903:1330(i16vec3) VectorShuffle 1902 1902 0 1 2
+            1904:1330(i16vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 1903
+            1905:   1313(ptr) AccessChain 34(data) 1900 59 38
+            1906: 21(int16_t) CompositeExtract 1904 0
+                              Store 1905 1906
+            1907:   1313(ptr) AccessChain 34(data) 1900 59 55
+            1908: 21(int16_t) CompositeExtract 1904 1
+                              Store 1907 1908
+            1909:   1313(ptr) AccessChain 34(data) 1900 59 69
+            1910: 21(int16_t) CompositeExtract 1904 2
+                              Store 1909 1910
+            1911:      6(int) Load 8(invocation)
+            1912:   1320(ptr) AccessChain 34(data) 73 59
+            1913: 22(i16vec4) Load 1912
+            1914: 22(i16vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 1913
+            1915:   1320(ptr) AccessChain 34(data) 1911 59
+                              Store 1915 1914
+            1916:      6(int) Load 8(invocation)
+            1917:   1313(ptr) AccessChain 34(data) 37 59 38
+            1918: 21(int16_t) Load 1917
+            1919: 21(int16_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 1918
+            1920:   1313(ptr) AccessChain 34(data) 1916 59 38
+                              Store 1920 1919
+            1921:      6(int) Load 8(invocation)
+            1922:   1320(ptr) AccessChain 34(data) 46 59
+            1923: 22(i16vec4) Load 1922
+            1924:1319(i16vec2) VectorShuffle 1923 1923 0 1
+            1925:1319(i16vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 1924
+            1926:   1313(ptr) AccessChain 34(data) 1921 59 38
+            1927: 21(int16_t) CompositeExtract 1925 0
+                              Store 1926 1927
+            1928:   1313(ptr) AccessChain 34(data) 1921 59 55
+            1929: 21(int16_t) CompositeExtract 1925 1
+                              Store 1928 1929
             1930:      6(int) Load 8(invocation)
-            1931:   1693(ptr) AccessChain 34(data) 37 67 38
-            1932: 23(int16_t) Load 1931
-            1933: 23(int16_t) GroupNonUniformUMin 42 InclusiveScan 1932
-            1934:   1693(ptr) AccessChain 34(data) 1930 67 38
-                              Store 1934 1933
-            1935:      6(int) Load 8(invocation)
-            1936:   1700(ptr) AccessChain 34(data) 46 67
-            1937: 24(i16vec4) Load 1936
-            1938:1699(i16vec2) VectorShuffle 1937 1937 0 1
-            1939:1699(i16vec2) GroupNonUniformUMin 42 InclusiveScan 1938
-            1940:   1700(ptr) AccessChain 34(data) 1935 67
-            1941: 24(i16vec4) Load 1940
-            1942: 24(i16vec4) VectorShuffle 1941 1939 4 5 2 3
-                              Store 1940 1942
-            1943:      6(int) Load 8(invocation)
-            1944:   1700(ptr) AccessChain 34(data) 57 67
-            1945: 24(i16vec4) Load 1944
-            1946:1709(i16vec3) VectorShuffle 1945 1945 0 1 2
-            1947:1709(i16vec3) GroupNonUniformUMin 42 InclusiveScan 1946
-            1948:   1700(ptr) AccessChain 34(data) 1943 67
-            1949: 24(i16vec4) Load 1948
-            1950: 24(i16vec4) VectorShuffle 1949 1947 4 5 6 3
-                              Store 1948 1950
-            1951:      6(int) Load 8(invocation)
-            1952:   1700(ptr) AccessChain 34(data) 67 67
-            1953: 24(i16vec4) Load 1952
-            1954: 24(i16vec4) GroupNonUniformUMin 42 InclusiveScan 1953
-            1955:   1700(ptr) AccessChain 34(data) 1951 67
-                              Store 1955 1954
-            1956:      6(int) Load 8(invocation)
-            1957:   1693(ptr) AccessChain 34(data) 37 67 38
-            1958: 23(int16_t) Load 1957
-            1959: 23(int16_t) GroupNonUniformUMax 42 InclusiveScan 1958
-            1960:   1693(ptr) AccessChain 34(data) 1956 67 38
-                              Store 1960 1959
-            1961:      6(int) Load 8(invocation)
-            1962:   1700(ptr) AccessChain 34(data) 46 67
-            1963: 24(i16vec4) Load 1962
-            1964:1699(i16vec2) VectorShuffle 1963 1963 0 1
-            1965:1699(i16vec2) GroupNonUniformUMax 42 InclusiveScan 1964
-            1966:   1700(ptr) AccessChain 34(data) 1961 67
-            1967: 24(i16vec4) Load 1966
-            1968: 24(i16vec4) VectorShuffle 1967 1965 4 5 2 3
-                              Store 1966 1968
-            1969:      6(int) Load 8(invocation)
-            1970:   1700(ptr) AccessChain 34(data) 57 67
-            1971: 24(i16vec4) Load 1970
-            1972:1709(i16vec3) VectorShuffle 1971 1971 0 1 2
-            1973:1709(i16vec3) GroupNonUniformUMax 42 InclusiveScan 1972
-            1974:   1700(ptr) AccessChain 34(data) 1969 67
-            1975: 24(i16vec4) Load 1974
-            1976: 24(i16vec4) VectorShuffle 1975 1973 4 5 6 3
-                              Store 1974 1976
-            1977:      6(int) Load 8(invocation)
-            1978:   1700(ptr) AccessChain 34(data) 67 67
-            1979: 24(i16vec4) Load 1978
-            1980: 24(i16vec4) GroupNonUniformUMax 42 InclusiveScan 1979
-            1981:   1700(ptr) AccessChain 34(data) 1977 67
-                              Store 1981 1980
-            1982:      6(int) Load 8(invocation)
-            1983:   1693(ptr) AccessChain 34(data) 37 67 38
-            1984: 23(int16_t) Load 1983
-            1985: 23(int16_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 1984
-            1986:   1693(ptr) AccessChain 34(data) 1982 67 38
-                              Store 1986 1985
-            1987:      6(int) Load 8(invocation)
-            1988:   1700(ptr) AccessChain 34(data) 46 67
-            1989: 24(i16vec4) Load 1988
-            1990:1699(i16vec2) VectorShuffle 1989 1989 0 1
-            1991:1699(i16vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 1990
-            1992:   1700(ptr) AccessChain 34(data) 1987 67
-            1993: 24(i16vec4) Load 1992
-            1994: 24(i16vec4) VectorShuffle 1993 1991 4 5 2 3
-                              Store 1992 1994
-            1995:      6(int) Load 8(invocation)
-            1996:   1700(ptr) AccessChain 34(data) 57 67
-            1997: 24(i16vec4) Load 1996
-            1998:1709(i16vec3) VectorShuffle 1997 1997 0 1 2
-            1999:1709(i16vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 1998
-            2000:   1700(ptr) AccessChain 34(data) 1995 67
-            2001: 24(i16vec4) Load 2000
-            2002: 24(i16vec4) VectorShuffle 2001 1999 4 5 6 3
-                              Store 2000 2002
-            2003:      6(int) Load 8(invocation)
-            2004:   1700(ptr) AccessChain 34(data) 67 67
-            2005: 24(i16vec4) Load 2004
-            2006: 24(i16vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 2005
-            2007:   1700(ptr) AccessChain 34(data) 2003 67
-                              Store 2007 2006
-            2008:      6(int) Load 8(invocation)
-            2009:   1693(ptr) AccessChain 34(data) 37 67 38
-            2010: 23(int16_t) Load 2009
-            2011: 23(int16_t) GroupNonUniformBitwiseOr 42 InclusiveScan 2010
-            2012:   1693(ptr) AccessChain 34(data) 2008 67 38
-                              Store 2012 2011
-            2013:      6(int) Load 8(invocation)
-            2014:   1700(ptr) AccessChain 34(data) 46 67
-            2015: 24(i16vec4) Load 2014
-            2016:1699(i16vec2) VectorShuffle 2015 2015 0 1
-            2017:1699(i16vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 2016
-            2018:   1700(ptr) AccessChain 34(data) 2013 67
-            2019: 24(i16vec4) Load 2018
-            2020: 24(i16vec4) VectorShuffle 2019 2017 4 5 2 3
-                              Store 2018 2020
-            2021:      6(int) Load 8(invocation)
-            2022:   1700(ptr) AccessChain 34(data) 57 67
-            2023: 24(i16vec4) Load 2022
-            2024:1709(i16vec3) VectorShuffle 2023 2023 0 1 2
-            2025:1709(i16vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 2024
-            2026:   1700(ptr) AccessChain 34(data) 2021 67
-            2027: 24(i16vec4) Load 2026
-            2028: 24(i16vec4) VectorShuffle 2027 2025 4 5 6 3
-                              Store 2026 2028
-            2029:      6(int) Load 8(invocation)
-            2030:   1700(ptr) AccessChain 34(data) 67 67
-            2031: 24(i16vec4) Load 2030
-            2032: 24(i16vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 2031
-            2033:   1700(ptr) AccessChain 34(data) 2029 67
-                              Store 2033 2032
-            2034:      6(int) Load 8(invocation)
-            2035:   1693(ptr) AccessChain 34(data) 37 67 38
-            2036: 23(int16_t) Load 2035
-            2037: 23(int16_t) GroupNonUniformBitwiseXor 42 InclusiveScan 2036
-            2038:   1693(ptr) AccessChain 34(data) 2034 67 38
-                              Store 2038 2037
-            2039:      6(int) Load 8(invocation)
-            2040:   1700(ptr) AccessChain 34(data) 46 67
-            2041: 24(i16vec4) Load 2040
-            2042:1699(i16vec2) VectorShuffle 2041 2041 0 1
-            2043:1699(i16vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 2042
-            2044:   1700(ptr) AccessChain 34(data) 2039 67
-            2045: 24(i16vec4) Load 2044
-            2046: 24(i16vec4) VectorShuffle 2045 2043 4 5 2 3
-                              Store 2044 2046
-            2047:      6(int) Load 8(invocation)
-            2048:   1700(ptr) AccessChain 34(data) 57 67
-            2049: 24(i16vec4) Load 2048
-            2050:1709(i16vec3) VectorShuffle 2049 2049 0 1 2
-            2051:1709(i16vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 2050
-            2052:   1700(ptr) AccessChain 34(data) 2047 67
-            2053: 24(i16vec4) Load 2052
-            2054: 24(i16vec4) VectorShuffle 2053 2051 4 5 6 3
-                              Store 2052 2054
-            2055:      6(int) Load 8(invocation)
-            2056:   1700(ptr) AccessChain 34(data) 67 67
-            2057: 24(i16vec4) Load 2056
-            2058: 24(i16vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 2057
-            2059:   1700(ptr) AccessChain 34(data) 2055 67
-                              Store 2059 2058
-            2060:      6(int) Load 8(invocation)
-            2061:   1693(ptr) AccessChain 34(data) 37 67 38
-            2062: 23(int16_t) Load 2061
-            2063: 23(int16_t) GroupNonUniformIAdd 42 ExclusiveScan 2062
-            2064:   1693(ptr) AccessChain 34(data) 2060 67 38
-                              Store 2064 2063
+            1931:   1320(ptr) AccessChain 34(data) 59 59
+            1932: 22(i16vec4) Load 1931
+            1933:1330(i16vec3) VectorShuffle 1932 1932 0 1 2
+            1934:1330(i16vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 1933
+            1935:   1313(ptr) AccessChain 34(data) 1930 59 38
+            1936: 21(int16_t) CompositeExtract 1934 0
+                              Store 1935 1936
+            1937:   1313(ptr) AccessChain 34(data) 1930 59 55
+            1938: 21(int16_t) CompositeExtract 1934 1
+                              Store 1937 1938
+            1939:   1313(ptr) AccessChain 34(data) 1930 59 69
+            1940: 21(int16_t) CompositeExtract 1934 2
+                              Store 1939 1940
+            1941:      6(int) Load 8(invocation)
+            1942:   1320(ptr) AccessChain 34(data) 73 59
+            1943: 22(i16vec4) Load 1942
+            1944: 22(i16vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 1943
+            1945:   1320(ptr) AccessChain 34(data) 1941 59
+                              Store 1945 1944
+            1946:      6(int) Load 8(invocation)
+            1948:   1947(ptr) AccessChain 34(data) 37 73 38
+            1949: 23(int16_t) Load 1948
+            1950: 23(int16_t) GroupNonUniformIAdd 42 Reduce 1949
+            1951:   1947(ptr) AccessChain 34(data) 1946 73 38
+                              Store 1951 1950
+            1952:      6(int) Load 8(invocation)
+            1955:   1954(ptr) AccessChain 34(data) 46 73
+            1956: 24(i16vec4) Load 1955
+            1957:1953(i16vec2) VectorShuffle 1956 1956 0 1
+            1958:1953(i16vec2) GroupNonUniformIAdd 42 Reduce 1957
+            1959:   1947(ptr) AccessChain 34(data) 1952 73 38
+            1960: 23(int16_t) CompositeExtract 1958 0
+                              Store 1959 1960
+            1961:   1947(ptr) AccessChain 34(data) 1952 73 55
+            1962: 23(int16_t) CompositeExtract 1958 1
+                              Store 1961 1962
+            1963:      6(int) Load 8(invocation)
+            1965:   1954(ptr) AccessChain 34(data) 59 73
+            1966: 24(i16vec4) Load 1965
+            1967:1964(i16vec3) VectorShuffle 1966 1966 0 1 2
+            1968:1964(i16vec3) GroupNonUniformIAdd 42 Reduce 1967
+            1969:   1947(ptr) AccessChain 34(data) 1963 73 38
+            1970: 23(int16_t) CompositeExtract 1968 0
+                              Store 1969 1970
+            1971:   1947(ptr) AccessChain 34(data) 1963 73 55
+            1972: 23(int16_t) CompositeExtract 1968 1
+                              Store 1971 1972
+            1973:   1947(ptr) AccessChain 34(data) 1963 73 69
+            1974: 23(int16_t) CompositeExtract 1968 2
+                              Store 1973 1974
+            1975:      6(int) Load 8(invocation)
+            1976:   1954(ptr) AccessChain 34(data) 73 73
+            1977: 24(i16vec4) Load 1976
+            1978: 24(i16vec4) GroupNonUniformIAdd 42 Reduce 1977
+            1979:   1954(ptr) AccessChain 34(data) 1975 73
+                              Store 1979 1978
+            1980:      6(int) Load 8(invocation)
+            1981:   1947(ptr) AccessChain 34(data) 37 73 38
+            1982: 23(int16_t) Load 1981
+            1983: 23(int16_t) GroupNonUniformIMul 42 Reduce 1982
+            1984:   1947(ptr) AccessChain 34(data) 1980 73 38
+                              Store 1984 1983
+            1985:      6(int) Load 8(invocation)
+            1986:   1954(ptr) AccessChain 34(data) 46 73
+            1987: 24(i16vec4) Load 1986
+            1988:1953(i16vec2) VectorShuffle 1987 1987 0 1
+            1989:1953(i16vec2) GroupNonUniformIMul 42 Reduce 1988
+            1990:   1947(ptr) AccessChain 34(data) 1985 73 38
+            1991: 23(int16_t) CompositeExtract 1989 0
+                              Store 1990 1991
+            1992:   1947(ptr) AccessChain 34(data) 1985 73 55
+            1993: 23(int16_t) CompositeExtract 1989 1
+                              Store 1992 1993
+            1994:      6(int) Load 8(invocation)
+            1995:   1954(ptr) AccessChain 34(data) 59 73
+            1996: 24(i16vec4) Load 1995
+            1997:1964(i16vec3) VectorShuffle 1996 1996 0 1 2
+            1998:1964(i16vec3) GroupNonUniformIMul 42 Reduce 1997
+            1999:   1947(ptr) AccessChain 34(data) 1994 73 38
+            2000: 23(int16_t) CompositeExtract 1998 0
+                              Store 1999 2000
+            2001:   1947(ptr) AccessChain 34(data) 1994 73 55
+            2002: 23(int16_t) CompositeExtract 1998 1
+                              Store 2001 2002
+            2003:   1947(ptr) AccessChain 34(data) 1994 73 69
+            2004: 23(int16_t) CompositeExtract 1998 2
+                              Store 2003 2004
+            2005:      6(int) Load 8(invocation)
+            2006:   1954(ptr) AccessChain 34(data) 73 73
+            2007: 24(i16vec4) Load 2006
+            2008: 24(i16vec4) GroupNonUniformIMul 42 Reduce 2007
+            2009:   1954(ptr) AccessChain 34(data) 2005 73
+                              Store 2009 2008
+            2010:      6(int) Load 8(invocation)
+            2011:   1947(ptr) AccessChain 34(data) 37 73 38
+            2012: 23(int16_t) Load 2011
+            2013: 23(int16_t) GroupNonUniformUMin 42 Reduce 2012
+            2014:   1947(ptr) AccessChain 34(data) 2010 73 38
+                              Store 2014 2013
+            2015:      6(int) Load 8(invocation)
+            2016:   1954(ptr) AccessChain 34(data) 46 73
+            2017: 24(i16vec4) Load 2016
+            2018:1953(i16vec2) VectorShuffle 2017 2017 0 1
+            2019:1953(i16vec2) GroupNonUniformUMin 42 Reduce 2018
+            2020:   1947(ptr) AccessChain 34(data) 2015 73 38
+            2021: 23(int16_t) CompositeExtract 2019 0
+                              Store 2020 2021
+            2022:   1947(ptr) AccessChain 34(data) 2015 73 55
+            2023: 23(int16_t) CompositeExtract 2019 1
+                              Store 2022 2023
+            2024:      6(int) Load 8(invocation)
+            2025:   1954(ptr) AccessChain 34(data) 59 73
+            2026: 24(i16vec4) Load 2025
+            2027:1964(i16vec3) VectorShuffle 2026 2026 0 1 2
+            2028:1964(i16vec3) GroupNonUniformUMin 42 Reduce 2027
+            2029:   1947(ptr) AccessChain 34(data) 2024 73 38
+            2030: 23(int16_t) CompositeExtract 2028 0
+                              Store 2029 2030
+            2031:   1947(ptr) AccessChain 34(data) 2024 73 55
+            2032: 23(int16_t) CompositeExtract 2028 1
+                              Store 2031 2032
+            2033:   1947(ptr) AccessChain 34(data) 2024 73 69
+            2034: 23(int16_t) CompositeExtract 2028 2
+                              Store 2033 2034
+            2035:      6(int) Load 8(invocation)
+            2036:   1954(ptr) AccessChain 34(data) 73 73
+            2037: 24(i16vec4) Load 2036
+            2038: 24(i16vec4) GroupNonUniformUMin 42 Reduce 2037
+            2039:   1954(ptr) AccessChain 34(data) 2035 73
+                              Store 2039 2038
+            2040:      6(int) Load 8(invocation)
+            2041:   1947(ptr) AccessChain 34(data) 37 73 38
+            2042: 23(int16_t) Load 2041
+            2043: 23(int16_t) GroupNonUniformUMax 42 Reduce 2042
+            2044:   1947(ptr) AccessChain 34(data) 2040 73 38
+                              Store 2044 2043
+            2045:      6(int) Load 8(invocation)
+            2046:   1954(ptr) AccessChain 34(data) 46 73
+            2047: 24(i16vec4) Load 2046
+            2048:1953(i16vec2) VectorShuffle 2047 2047 0 1
+            2049:1953(i16vec2) GroupNonUniformUMax 42 Reduce 2048
+            2050:   1947(ptr) AccessChain 34(data) 2045 73 38
+            2051: 23(int16_t) CompositeExtract 2049 0
+                              Store 2050 2051
+            2052:   1947(ptr) AccessChain 34(data) 2045 73 55
+            2053: 23(int16_t) CompositeExtract 2049 1
+                              Store 2052 2053
+            2054:      6(int) Load 8(invocation)
+            2055:   1954(ptr) AccessChain 34(data) 59 73
+            2056: 24(i16vec4) Load 2055
+            2057:1964(i16vec3) VectorShuffle 2056 2056 0 1 2
+            2058:1964(i16vec3) GroupNonUniformUMax 42 Reduce 2057
+            2059:   1947(ptr) AccessChain 34(data) 2054 73 38
+            2060: 23(int16_t) CompositeExtract 2058 0
+                              Store 2059 2060
+            2061:   1947(ptr) AccessChain 34(data) 2054 73 55
+            2062: 23(int16_t) CompositeExtract 2058 1
+                              Store 2061 2062
+            2063:   1947(ptr) AccessChain 34(data) 2054 73 69
+            2064: 23(int16_t) CompositeExtract 2058 2
+                              Store 2063 2064
             2065:      6(int) Load 8(invocation)
-            2066:   1700(ptr) AccessChain 34(data) 46 67
+            2066:   1954(ptr) AccessChain 34(data) 73 73
             2067: 24(i16vec4) Load 2066
-            2068:1699(i16vec2) VectorShuffle 2067 2067 0 1
-            2069:1699(i16vec2) GroupNonUniformIAdd 42 ExclusiveScan 2068
-            2070:   1700(ptr) AccessChain 34(data) 2065 67
-            2071: 24(i16vec4) Load 2070
-            2072: 24(i16vec4) VectorShuffle 2071 2069 4 5 2 3
-                              Store 2070 2072
-            2073:      6(int) Load 8(invocation)
-            2074:   1700(ptr) AccessChain 34(data) 57 67
-            2075: 24(i16vec4) Load 2074
-            2076:1709(i16vec3) VectorShuffle 2075 2075 0 1 2
-            2077:1709(i16vec3) GroupNonUniformIAdd 42 ExclusiveScan 2076
-            2078:   1700(ptr) AccessChain 34(data) 2073 67
-            2079: 24(i16vec4) Load 2078
-            2080: 24(i16vec4) VectorShuffle 2079 2077 4 5 6 3
-                              Store 2078 2080
-            2081:      6(int) Load 8(invocation)
-            2082:   1700(ptr) AccessChain 34(data) 67 67
-            2083: 24(i16vec4) Load 2082
-            2084: 24(i16vec4) GroupNonUniformIAdd 42 ExclusiveScan 2083
-            2085:   1700(ptr) AccessChain 34(data) 2081 67
-                              Store 2085 2084
-            2086:      6(int) Load 8(invocation)
-            2087:   1693(ptr) AccessChain 34(data) 37 67 38
-            2088: 23(int16_t) Load 2087
-            2089: 23(int16_t) GroupNonUniformIMul 42 ExclusiveScan 2088
-            2090:   1693(ptr) AccessChain 34(data) 2086 67 38
-                              Store 2090 2089
-            2091:      6(int) Load 8(invocation)
-            2092:   1700(ptr) AccessChain 34(data) 46 67
-            2093: 24(i16vec4) Load 2092
-            2094:1699(i16vec2) VectorShuffle 2093 2093 0 1
-            2095:1699(i16vec2) GroupNonUniformIMul 42 ExclusiveScan 2094
-            2096:   1700(ptr) AccessChain 34(data) 2091 67
+            2068: 24(i16vec4) GroupNonUniformUMax 42 Reduce 2067
+            2069:   1954(ptr) AccessChain 34(data) 2065 73
+                              Store 2069 2068
+            2070:      6(int) Load 8(invocation)
+            2071:   1947(ptr) AccessChain 34(data) 37 73 38
+            2072: 23(int16_t) Load 2071
+            2073: 23(int16_t) GroupNonUniformBitwiseAnd 42 Reduce 2072
+            2074:   1947(ptr) AccessChain 34(data) 2070 73 38
+                              Store 2074 2073
+            2075:      6(int) Load 8(invocation)
+            2076:   1954(ptr) AccessChain 34(data) 46 73
+            2077: 24(i16vec4) Load 2076
+            2078:1953(i16vec2) VectorShuffle 2077 2077 0 1
+            2079:1953(i16vec2) GroupNonUniformBitwiseAnd 42 Reduce 2078
+            2080:   1947(ptr) AccessChain 34(data) 2075 73 38
+            2081: 23(int16_t) CompositeExtract 2079 0
+                              Store 2080 2081
+            2082:   1947(ptr) AccessChain 34(data) 2075 73 55
+            2083: 23(int16_t) CompositeExtract 2079 1
+                              Store 2082 2083
+            2084:      6(int) Load 8(invocation)
+            2085:   1954(ptr) AccessChain 34(data) 59 73
+            2086: 24(i16vec4) Load 2085
+            2087:1964(i16vec3) VectorShuffle 2086 2086 0 1 2
+            2088:1964(i16vec3) GroupNonUniformBitwiseAnd 42 Reduce 2087
+            2089:   1947(ptr) AccessChain 34(data) 2084 73 38
+            2090: 23(int16_t) CompositeExtract 2088 0
+                              Store 2089 2090
+            2091:   1947(ptr) AccessChain 34(data) 2084 73 55
+            2092: 23(int16_t) CompositeExtract 2088 1
+                              Store 2091 2092
+            2093:   1947(ptr) AccessChain 34(data) 2084 73 69
+            2094: 23(int16_t) CompositeExtract 2088 2
+                              Store 2093 2094
+            2095:      6(int) Load 8(invocation)
+            2096:   1954(ptr) AccessChain 34(data) 73 73
             2097: 24(i16vec4) Load 2096
-            2098: 24(i16vec4) VectorShuffle 2097 2095 4 5 2 3
-                              Store 2096 2098
-            2099:      6(int) Load 8(invocation)
-            2100:   1700(ptr) AccessChain 34(data) 57 67
-            2101: 24(i16vec4) Load 2100
-            2102:1709(i16vec3) VectorShuffle 2101 2101 0 1 2
-            2103:1709(i16vec3) GroupNonUniformIMul 42 ExclusiveScan 2102
-            2104:   1700(ptr) AccessChain 34(data) 2099 67
-            2105: 24(i16vec4) Load 2104
-            2106: 24(i16vec4) VectorShuffle 2105 2103 4 5 6 3
-                              Store 2104 2106
-            2107:      6(int) Load 8(invocation)
-            2108:   1700(ptr) AccessChain 34(data) 67 67
-            2109: 24(i16vec4) Load 2108
-            2110: 24(i16vec4) GroupNonUniformIMul 42 ExclusiveScan 2109
-            2111:   1700(ptr) AccessChain 34(data) 2107 67
-                              Store 2111 2110
-            2112:      6(int) Load 8(invocation)
-            2113:   1693(ptr) AccessChain 34(data) 37 67 38
-            2114: 23(int16_t) Load 2113
-            2115: 23(int16_t) GroupNonUniformUMin 42 ExclusiveScan 2114
-            2116:   1693(ptr) AccessChain 34(data) 2112 67 38
-                              Store 2116 2115
-            2117:      6(int) Load 8(invocation)
-            2118:   1700(ptr) AccessChain 34(data) 46 67
-            2119: 24(i16vec4) Load 2118
-            2120:1699(i16vec2) VectorShuffle 2119 2119 0 1
-            2121:1699(i16vec2) GroupNonUniformUMin 42 ExclusiveScan 2120
-            2122:   1700(ptr) AccessChain 34(data) 2117 67
-            2123: 24(i16vec4) Load 2122
-            2124: 24(i16vec4) VectorShuffle 2123 2121 4 5 2 3
-                              Store 2122 2124
+            2098: 24(i16vec4) GroupNonUniformBitwiseAnd 42 Reduce 2097
+            2099:   1954(ptr) AccessChain 34(data) 2095 73
+                              Store 2099 2098
+            2100:      6(int) Load 8(invocation)
+            2101:   1947(ptr) AccessChain 34(data) 37 73 38
+            2102: 23(int16_t) Load 2101
+            2103: 23(int16_t) GroupNonUniformBitwiseOr 42 Reduce 2102
+            2104:   1947(ptr) AccessChain 34(data) 2100 73 38
+                              Store 2104 2103
+            2105:      6(int) Load 8(invocation)
+            2106:   1954(ptr) AccessChain 34(data) 46 73
+            2107: 24(i16vec4) Load 2106
+            2108:1953(i16vec2) VectorShuffle 2107 2107 0 1
+            2109:1953(i16vec2) GroupNonUniformBitwiseOr 42 Reduce 2108
+            2110:   1947(ptr) AccessChain 34(data) 2105 73 38
+            2111: 23(int16_t) CompositeExtract 2109 0
+                              Store 2110 2111
+            2112:   1947(ptr) AccessChain 34(data) 2105 73 55
+            2113: 23(int16_t) CompositeExtract 2109 1
+                              Store 2112 2113
+            2114:      6(int) Load 8(invocation)
+            2115:   1954(ptr) AccessChain 34(data) 59 73
+            2116: 24(i16vec4) Load 2115
+            2117:1964(i16vec3) VectorShuffle 2116 2116 0 1 2
+            2118:1964(i16vec3) GroupNonUniformBitwiseOr 42 Reduce 2117
+            2119:   1947(ptr) AccessChain 34(data) 2114 73 38
+            2120: 23(int16_t) CompositeExtract 2118 0
+                              Store 2119 2120
+            2121:   1947(ptr) AccessChain 34(data) 2114 73 55
+            2122: 23(int16_t) CompositeExtract 2118 1
+                              Store 2121 2122
+            2123:   1947(ptr) AccessChain 34(data) 2114 73 69
+            2124: 23(int16_t) CompositeExtract 2118 2
+                              Store 2123 2124
             2125:      6(int) Load 8(invocation)
-            2126:   1700(ptr) AccessChain 34(data) 57 67
+            2126:   1954(ptr) AccessChain 34(data) 73 73
             2127: 24(i16vec4) Load 2126
-            2128:1709(i16vec3) VectorShuffle 2127 2127 0 1 2
-            2129:1709(i16vec3) GroupNonUniformUMin 42 ExclusiveScan 2128
-            2130:   1700(ptr) AccessChain 34(data) 2125 67
-            2131: 24(i16vec4) Load 2130
-            2132: 24(i16vec4) VectorShuffle 2131 2129 4 5 6 3
-                              Store 2130 2132
-            2133:      6(int) Load 8(invocation)
-            2134:   1700(ptr) AccessChain 34(data) 67 67
-            2135: 24(i16vec4) Load 2134
-            2136: 24(i16vec4) GroupNonUniformUMin 42 ExclusiveScan 2135
-            2137:   1700(ptr) AccessChain 34(data) 2133 67
-                              Store 2137 2136
-            2138:      6(int) Load 8(invocation)
-            2139:   1693(ptr) AccessChain 34(data) 37 67 38
-            2140: 23(int16_t) Load 2139
-            2141: 23(int16_t) GroupNonUniformUMax 42 ExclusiveScan 2140
-            2142:   1693(ptr) AccessChain 34(data) 2138 67 38
-                              Store 2142 2141
-            2143:      6(int) Load 8(invocation)
-            2144:   1700(ptr) AccessChain 34(data) 46 67
-            2145: 24(i16vec4) Load 2144
-            2146:1699(i16vec2) VectorShuffle 2145 2145 0 1
-            2147:1699(i16vec2) GroupNonUniformUMax 42 ExclusiveScan 2146
-            2148:   1700(ptr) AccessChain 34(data) 2143 67
-            2149: 24(i16vec4) Load 2148
-            2150: 24(i16vec4) VectorShuffle 2149 2147 4 5 2 3
-                              Store 2148 2150
-            2151:      6(int) Load 8(invocation)
-            2152:   1700(ptr) AccessChain 34(data) 57 67
-            2153: 24(i16vec4) Load 2152
-            2154:1709(i16vec3) VectorShuffle 2153 2153 0 1 2
-            2155:1709(i16vec3) GroupNonUniformUMax 42 ExclusiveScan 2154
-            2156:   1700(ptr) AccessChain 34(data) 2151 67
+            2128: 24(i16vec4) GroupNonUniformBitwiseOr 42 Reduce 2127
+            2129:   1954(ptr) AccessChain 34(data) 2125 73
+                              Store 2129 2128
+            2130:      6(int) Load 8(invocation)
+            2131:   1947(ptr) AccessChain 34(data) 37 73 38
+            2132: 23(int16_t) Load 2131
+            2133: 23(int16_t) GroupNonUniformBitwiseXor 42 Reduce 2132
+            2134:   1947(ptr) AccessChain 34(data) 2130 73 38
+                              Store 2134 2133
+            2135:      6(int) Load 8(invocation)
+            2136:   1954(ptr) AccessChain 34(data) 46 73
+            2137: 24(i16vec4) Load 2136
+            2138:1953(i16vec2) VectorShuffle 2137 2137 0 1
+            2139:1953(i16vec2) GroupNonUniformBitwiseXor 42 Reduce 2138
+            2140:   1947(ptr) AccessChain 34(data) 2135 73 38
+            2141: 23(int16_t) CompositeExtract 2139 0
+                              Store 2140 2141
+            2142:   1947(ptr) AccessChain 34(data) 2135 73 55
+            2143: 23(int16_t) CompositeExtract 2139 1
+                              Store 2142 2143
+            2144:      6(int) Load 8(invocation)
+            2145:   1954(ptr) AccessChain 34(data) 59 73
+            2146: 24(i16vec4) Load 2145
+            2147:1964(i16vec3) VectorShuffle 2146 2146 0 1 2
+            2148:1964(i16vec3) GroupNonUniformBitwiseXor 42 Reduce 2147
+            2149:   1947(ptr) AccessChain 34(data) 2144 73 38
+            2150: 23(int16_t) CompositeExtract 2148 0
+                              Store 2149 2150
+            2151:   1947(ptr) AccessChain 34(data) 2144 73 55
+            2152: 23(int16_t) CompositeExtract 2148 1
+                              Store 2151 2152
+            2153:   1947(ptr) AccessChain 34(data) 2144 73 69
+            2154: 23(int16_t) CompositeExtract 2148 2
+                              Store 2153 2154
+            2155:      6(int) Load 8(invocation)
+            2156:   1954(ptr) AccessChain 34(data) 73 73
             2157: 24(i16vec4) Load 2156
-            2158: 24(i16vec4) VectorShuffle 2157 2155 4 5 6 3
-                              Store 2156 2158
-            2159:      6(int) Load 8(invocation)
-            2160:   1700(ptr) AccessChain 34(data) 67 67
-            2161: 24(i16vec4) Load 2160
-            2162: 24(i16vec4) GroupNonUniformUMax 42 ExclusiveScan 2161
-            2163:   1700(ptr) AccessChain 34(data) 2159 67
-                              Store 2163 2162
-            2164:      6(int) Load 8(invocation)
-            2165:   1693(ptr) AccessChain 34(data) 37 67 38
-            2166: 23(int16_t) Load 2165
-            2167: 23(int16_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2166
-            2168:   1693(ptr) AccessChain 34(data) 2164 67 38
-                              Store 2168 2167
-            2169:      6(int) Load 8(invocation)
-            2170:   1700(ptr) AccessChain 34(data) 46 67
-            2171: 24(i16vec4) Load 2170
-            2172:1699(i16vec2) VectorShuffle 2171 2171 0 1
-            2173:1699(i16vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2172
-            2174:   1700(ptr) AccessChain 34(data) 2169 67
-            2175: 24(i16vec4) Load 2174
-            2176: 24(i16vec4) VectorShuffle 2175 2173 4 5 2 3
-                              Store 2174 2176
-            2177:      6(int) Load 8(invocation)
-            2178:   1700(ptr) AccessChain 34(data) 57 67
-            2179: 24(i16vec4) Load 2178
-            2180:1709(i16vec3) VectorShuffle 2179 2179 0 1 2
-            2181:1709(i16vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2180
-            2182:   1700(ptr) AccessChain 34(data) 2177 67
-            2183: 24(i16vec4) Load 2182
-            2184: 24(i16vec4) VectorShuffle 2183 2181 4 5 6 3
-                              Store 2182 2184
+            2158: 24(i16vec4) GroupNonUniformBitwiseXor 42 Reduce 2157
+            2159:   1954(ptr) AccessChain 34(data) 2155 73
+                              Store 2159 2158
+            2160:      6(int) Load 8(invocation)
+            2161:   1947(ptr) AccessChain 34(data) 37 73 38
+            2162: 23(int16_t) Load 2161
+            2163: 23(int16_t) GroupNonUniformIAdd 42 InclusiveScan 2162
+            2164:   1947(ptr) AccessChain 34(data) 2160 73 38
+                              Store 2164 2163
+            2165:      6(int) Load 8(invocation)
+            2166:   1954(ptr) AccessChain 34(data) 46 73
+            2167: 24(i16vec4) Load 2166
+            2168:1953(i16vec2) VectorShuffle 2167 2167 0 1
+            2169:1953(i16vec2) GroupNonUniformIAdd 42 InclusiveScan 2168
+            2170:   1947(ptr) AccessChain 34(data) 2165 73 38
+            2171: 23(int16_t) CompositeExtract 2169 0
+                              Store 2170 2171
+            2172:   1947(ptr) AccessChain 34(data) 2165 73 55
+            2173: 23(int16_t) CompositeExtract 2169 1
+                              Store 2172 2173
+            2174:      6(int) Load 8(invocation)
+            2175:   1954(ptr) AccessChain 34(data) 59 73
+            2176: 24(i16vec4) Load 2175
+            2177:1964(i16vec3) VectorShuffle 2176 2176 0 1 2
+            2178:1964(i16vec3) GroupNonUniformIAdd 42 InclusiveScan 2177
+            2179:   1947(ptr) AccessChain 34(data) 2174 73 38
+            2180: 23(int16_t) CompositeExtract 2178 0
+                              Store 2179 2180
+            2181:   1947(ptr) AccessChain 34(data) 2174 73 55
+            2182: 23(int16_t) CompositeExtract 2178 1
+                              Store 2181 2182
+            2183:   1947(ptr) AccessChain 34(data) 2174 73 69
+            2184: 23(int16_t) CompositeExtract 2178 2
+                              Store 2183 2184
             2185:      6(int) Load 8(invocation)
-            2186:   1700(ptr) AccessChain 34(data) 67 67
+            2186:   1954(ptr) AccessChain 34(data) 73 73
             2187: 24(i16vec4) Load 2186
-            2188: 24(i16vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2187
-            2189:   1700(ptr) AccessChain 34(data) 2185 67
+            2188: 24(i16vec4) GroupNonUniformIAdd 42 InclusiveScan 2187
+            2189:   1954(ptr) AccessChain 34(data) 2185 73
                               Store 2189 2188
             2190:      6(int) Load 8(invocation)
-            2191:   1693(ptr) AccessChain 34(data) 37 67 38
+            2191:   1947(ptr) AccessChain 34(data) 37 73 38
             2192: 23(int16_t) Load 2191
-            2193: 23(int16_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 2192
-            2194:   1693(ptr) AccessChain 34(data) 2190 67 38
+            2193: 23(int16_t) GroupNonUniformIMul 42 InclusiveScan 2192
+            2194:   1947(ptr) AccessChain 34(data) 2190 73 38
                               Store 2194 2193
             2195:      6(int) Load 8(invocation)
-            2196:   1700(ptr) AccessChain 34(data) 46 67
+            2196:   1954(ptr) AccessChain 34(data) 46 73
             2197: 24(i16vec4) Load 2196
-            2198:1699(i16vec2) VectorShuffle 2197 2197 0 1
-            2199:1699(i16vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 2198
-            2200:   1700(ptr) AccessChain 34(data) 2195 67
-            2201: 24(i16vec4) Load 2200
-            2202: 24(i16vec4) VectorShuffle 2201 2199 4 5 2 3
-                              Store 2200 2202
-            2203:      6(int) Load 8(invocation)
-            2204:   1700(ptr) AccessChain 34(data) 57 67
-            2205: 24(i16vec4) Load 2204
-            2206:1709(i16vec3) VectorShuffle 2205 2205 0 1 2
-            2207:1709(i16vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 2206
-            2208:   1700(ptr) AccessChain 34(data) 2203 67
-            2209: 24(i16vec4) Load 2208
-            2210: 24(i16vec4) VectorShuffle 2209 2207 4 5 6 3
-                              Store 2208 2210
-            2211:      6(int) Load 8(invocation)
-            2212:   1700(ptr) AccessChain 34(data) 67 67
-            2213: 24(i16vec4) Load 2212
-            2214: 24(i16vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 2213
-            2215:   1700(ptr) AccessChain 34(data) 2211 67
-                              Store 2215 2214
-            2216:      6(int) Load 8(invocation)
-            2217:   1693(ptr) AccessChain 34(data) 37 67 38
-            2218: 23(int16_t) Load 2217
-            2219: 23(int16_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 2218
-            2220:   1693(ptr) AccessChain 34(data) 2216 67 38
-                              Store 2220 2219
-            2221:      6(int) Load 8(invocation)
-            2222:   1700(ptr) AccessChain 34(data) 46 67
-            2223: 24(i16vec4) Load 2222
-            2224:1699(i16vec2) VectorShuffle 2223 2223 0 1
-            2225:1699(i16vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 2224
-            2226:   1700(ptr) AccessChain 34(data) 2221 67
+            2198:1953(i16vec2) VectorShuffle 2197 2197 0 1
+            2199:1953(i16vec2) GroupNonUniformIMul 42 InclusiveScan 2198
+            2200:   1947(ptr) AccessChain 34(data) 2195 73 38
+            2201: 23(int16_t) CompositeExtract 2199 0
+                              Store 2200 2201
+            2202:   1947(ptr) AccessChain 34(data) 2195 73 55
+            2203: 23(int16_t) CompositeExtract 2199 1
+                              Store 2202 2203
+            2204:      6(int) Load 8(invocation)
+            2205:   1954(ptr) AccessChain 34(data) 59 73
+            2206: 24(i16vec4) Load 2205
+            2207:1964(i16vec3) VectorShuffle 2206 2206 0 1 2
+            2208:1964(i16vec3) GroupNonUniformIMul 42 InclusiveScan 2207
+            2209:   1947(ptr) AccessChain 34(data) 2204 73 38
+            2210: 23(int16_t) CompositeExtract 2208 0
+                              Store 2209 2210
+            2211:   1947(ptr) AccessChain 34(data) 2204 73 55
+            2212: 23(int16_t) CompositeExtract 2208 1
+                              Store 2211 2212
+            2213:   1947(ptr) AccessChain 34(data) 2204 73 69
+            2214: 23(int16_t) CompositeExtract 2208 2
+                              Store 2213 2214
+            2215:      6(int) Load 8(invocation)
+            2216:   1954(ptr) AccessChain 34(data) 73 73
+            2217: 24(i16vec4) Load 2216
+            2218: 24(i16vec4) GroupNonUniformIMul 42 InclusiveScan 2217
+            2219:   1954(ptr) AccessChain 34(data) 2215 73
+                              Store 2219 2218
+            2220:      6(int) Load 8(invocation)
+            2221:   1947(ptr) AccessChain 34(data) 37 73 38
+            2222: 23(int16_t) Load 2221
+            2223: 23(int16_t) GroupNonUniformUMin 42 InclusiveScan 2222
+            2224:   1947(ptr) AccessChain 34(data) 2220 73 38
+                              Store 2224 2223
+            2225:      6(int) Load 8(invocation)
+            2226:   1954(ptr) AccessChain 34(data) 46 73
             2227: 24(i16vec4) Load 2226
-            2228: 24(i16vec4) VectorShuffle 2227 2225 4 5 2 3
-                              Store 2226 2228
-            2229:      6(int) Load 8(invocation)
-            2230:   1700(ptr) AccessChain 34(data) 57 67
-            2231: 24(i16vec4) Load 2230
-            2232:1709(i16vec3) VectorShuffle 2231 2231 0 1 2
-            2233:1709(i16vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 2232
-            2234:   1700(ptr) AccessChain 34(data) 2229 67
-            2235: 24(i16vec4) Load 2234
-            2236: 24(i16vec4) VectorShuffle 2235 2233 4 5 6 3
-                              Store 2234 2236
-            2237:      6(int) Load 8(invocation)
-            2238:   1700(ptr) AccessChain 34(data) 67 67
-            2239: 24(i16vec4) Load 2238
-            2240: 24(i16vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 2239
-            2241:   1700(ptr) AccessChain 34(data) 2237 67
-                              Store 2241 2240
-            2242:      6(int) Load 8(invocation)
-            2245:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2246: 25(int64_t) Load 2245
-            2247: 25(int64_t) GroupNonUniformIAdd 42 Reduce 2246
-            2248:   2244(ptr) AccessChain 34(data) 2242 2243 38
-                              Store 2248 2247
-            2249:      6(int) Load 8(invocation)
-            2252:   2251(ptr) AccessChain 34(data) 46 2243
-            2253: 26(i64vec4) Load 2252
-            2254:2250(i64vec2) VectorShuffle 2253 2253 0 1
-            2255:2250(i64vec2) GroupNonUniformIAdd 42 Reduce 2254
-            2256:   2251(ptr) AccessChain 34(data) 2249 2243
-            2257: 26(i64vec4) Load 2256
-            2258: 26(i64vec4) VectorShuffle 2257 2255 4 5 2 3
-                              Store 2256 2258
-            2259:      6(int) Load 8(invocation)
-            2261:   2251(ptr) AccessChain 34(data) 57 2243
-            2262: 26(i64vec4) Load 2261
-            2263:2260(i64vec3) VectorShuffle 2262 2262 0 1 2
-            2264:2260(i64vec3) GroupNonUniformIAdd 42 Reduce 2263
-            2265:   2251(ptr) AccessChain 34(data) 2259 2243
-            2266: 26(i64vec4) Load 2265
-            2267: 26(i64vec4) VectorShuffle 2266 2264 4 5 6 3
-                              Store 2265 2267
-            2268:      6(int) Load 8(invocation)
-            2269:   2251(ptr) AccessChain 34(data) 67 2243
-            2270: 26(i64vec4) Load 2269
-            2271: 26(i64vec4) GroupNonUniformIAdd 42 Reduce 2270
-            2272:   2251(ptr) AccessChain 34(data) 2268 2243
-                              Store 2272 2271
-            2273:      6(int) Load 8(invocation)
-            2274:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2275: 25(int64_t) Load 2274
-            2276: 25(int64_t) GroupNonUniformIMul 42 Reduce 2275
-            2277:   2244(ptr) AccessChain 34(data) 2273 2243 38
-                              Store 2277 2276
-            2278:      6(int) Load 8(invocation)
-            2279:   2251(ptr) AccessChain 34(data) 46 2243
-            2280: 26(i64vec4) Load 2279
-            2281:2250(i64vec2) VectorShuffle 2280 2280 0 1
-            2282:2250(i64vec2) GroupNonUniformIMul 42 Reduce 2281
-            2283:   2251(ptr) AccessChain 34(data) 2278 2243
-            2284: 26(i64vec4) Load 2283
-            2285: 26(i64vec4) VectorShuffle 2284 2282 4 5 2 3
-                              Store 2283 2285
-            2286:      6(int) Load 8(invocation)
-            2287:   2251(ptr) AccessChain 34(data) 57 2243
-            2288: 26(i64vec4) Load 2287
-            2289:2260(i64vec3) VectorShuffle 2288 2288 0 1 2
-            2290:2260(i64vec3) GroupNonUniformIMul 42 Reduce 2289
-            2291:   2251(ptr) AccessChain 34(data) 2286 2243
-            2292: 26(i64vec4) Load 2291
-            2293: 26(i64vec4) VectorShuffle 2292 2290 4 5 6 3
-                              Store 2291 2293
+            2228:1953(i16vec2) VectorShuffle 2227 2227 0 1
+            2229:1953(i16vec2) GroupNonUniformUMin 42 InclusiveScan 2228
+            2230:   1947(ptr) AccessChain 34(data) 2225 73 38
+            2231: 23(int16_t) CompositeExtract 2229 0
+                              Store 2230 2231
+            2232:   1947(ptr) AccessChain 34(data) 2225 73 55
+            2233: 23(int16_t) CompositeExtract 2229 1
+                              Store 2232 2233
+            2234:      6(int) Load 8(invocation)
+            2235:   1954(ptr) AccessChain 34(data) 59 73
+            2236: 24(i16vec4) Load 2235
+            2237:1964(i16vec3) VectorShuffle 2236 2236 0 1 2
+            2238:1964(i16vec3) GroupNonUniformUMin 42 InclusiveScan 2237
+            2239:   1947(ptr) AccessChain 34(data) 2234 73 38
+            2240: 23(int16_t) CompositeExtract 2238 0
+                              Store 2239 2240
+            2241:   1947(ptr) AccessChain 34(data) 2234 73 55
+            2242: 23(int16_t) CompositeExtract 2238 1
+                              Store 2241 2242
+            2243:   1947(ptr) AccessChain 34(data) 2234 73 69
+            2244: 23(int16_t) CompositeExtract 2238 2
+                              Store 2243 2244
+            2245:      6(int) Load 8(invocation)
+            2246:   1954(ptr) AccessChain 34(data) 73 73
+            2247: 24(i16vec4) Load 2246
+            2248: 24(i16vec4) GroupNonUniformUMin 42 InclusiveScan 2247
+            2249:   1954(ptr) AccessChain 34(data) 2245 73
+                              Store 2249 2248
+            2250:      6(int) Load 8(invocation)
+            2251:   1947(ptr) AccessChain 34(data) 37 73 38
+            2252: 23(int16_t) Load 2251
+            2253: 23(int16_t) GroupNonUniformUMax 42 InclusiveScan 2252
+            2254:   1947(ptr) AccessChain 34(data) 2250 73 38
+                              Store 2254 2253
+            2255:      6(int) Load 8(invocation)
+            2256:   1954(ptr) AccessChain 34(data) 46 73
+            2257: 24(i16vec4) Load 2256
+            2258:1953(i16vec2) VectorShuffle 2257 2257 0 1
+            2259:1953(i16vec2) GroupNonUniformUMax 42 InclusiveScan 2258
+            2260:   1947(ptr) AccessChain 34(data) 2255 73 38
+            2261: 23(int16_t) CompositeExtract 2259 0
+                              Store 2260 2261
+            2262:   1947(ptr) AccessChain 34(data) 2255 73 55
+            2263: 23(int16_t) CompositeExtract 2259 1
+                              Store 2262 2263
+            2264:      6(int) Load 8(invocation)
+            2265:   1954(ptr) AccessChain 34(data) 59 73
+            2266: 24(i16vec4) Load 2265
+            2267:1964(i16vec3) VectorShuffle 2266 2266 0 1 2
+            2268:1964(i16vec3) GroupNonUniformUMax 42 InclusiveScan 2267
+            2269:   1947(ptr) AccessChain 34(data) 2264 73 38
+            2270: 23(int16_t) CompositeExtract 2268 0
+                              Store 2269 2270
+            2271:   1947(ptr) AccessChain 34(data) 2264 73 55
+            2272: 23(int16_t) CompositeExtract 2268 1
+                              Store 2271 2272
+            2273:   1947(ptr) AccessChain 34(data) 2264 73 69
+            2274: 23(int16_t) CompositeExtract 2268 2
+                              Store 2273 2274
+            2275:      6(int) Load 8(invocation)
+            2276:   1954(ptr) AccessChain 34(data) 73 73
+            2277: 24(i16vec4) Load 2276
+            2278: 24(i16vec4) GroupNonUniformUMax 42 InclusiveScan 2277
+            2279:   1954(ptr) AccessChain 34(data) 2275 73
+                              Store 2279 2278
+            2280:      6(int) Load 8(invocation)
+            2281:   1947(ptr) AccessChain 34(data) 37 73 38
+            2282: 23(int16_t) Load 2281
+            2283: 23(int16_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 2282
+            2284:   1947(ptr) AccessChain 34(data) 2280 73 38
+                              Store 2284 2283
+            2285:      6(int) Load 8(invocation)
+            2286:   1954(ptr) AccessChain 34(data) 46 73
+            2287: 24(i16vec4) Load 2286
+            2288:1953(i16vec2) VectorShuffle 2287 2287 0 1
+            2289:1953(i16vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 2288
+            2290:   1947(ptr) AccessChain 34(data) 2285 73 38
+            2291: 23(int16_t) CompositeExtract 2289 0
+                              Store 2290 2291
+            2292:   1947(ptr) AccessChain 34(data) 2285 73 55
+            2293: 23(int16_t) CompositeExtract 2289 1
+                              Store 2292 2293
             2294:      6(int) Load 8(invocation)
-            2295:   2251(ptr) AccessChain 34(data) 67 2243
-            2296: 26(i64vec4) Load 2295
-            2297: 26(i64vec4) GroupNonUniformIMul 42 Reduce 2296
-            2298:   2251(ptr) AccessChain 34(data) 2294 2243
-                              Store 2298 2297
-            2299:      6(int) Load 8(invocation)
-            2300:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2301: 25(int64_t) Load 2300
-            2302: 25(int64_t) GroupNonUniformSMin 42 Reduce 2301
-            2303:   2244(ptr) AccessChain 34(data) 2299 2243 38
-                              Store 2303 2302
-            2304:      6(int) Load 8(invocation)
-            2305:   2251(ptr) AccessChain 34(data) 46 2243
-            2306: 26(i64vec4) Load 2305
-            2307:2250(i64vec2) VectorShuffle 2306 2306 0 1
-            2308:2250(i64vec2) GroupNonUniformSMin 42 Reduce 2307
-            2309:   2251(ptr) AccessChain 34(data) 2304 2243
-            2310: 26(i64vec4) Load 2309
-            2311: 26(i64vec4) VectorShuffle 2310 2308 4 5 2 3
-                              Store 2309 2311
-            2312:      6(int) Load 8(invocation)
-            2313:   2251(ptr) AccessChain 34(data) 57 2243
-            2314: 26(i64vec4) Load 2313
-            2315:2260(i64vec3) VectorShuffle 2314 2314 0 1 2
-            2316:2260(i64vec3) GroupNonUniformSMin 42 Reduce 2315
-            2317:   2251(ptr) AccessChain 34(data) 2312 2243
-            2318: 26(i64vec4) Load 2317
-            2319: 26(i64vec4) VectorShuffle 2318 2316 4 5 6 3
-                              Store 2317 2319
-            2320:      6(int) Load 8(invocation)
-            2321:   2251(ptr) AccessChain 34(data) 67 2243
-            2322: 26(i64vec4) Load 2321
-            2323: 26(i64vec4) GroupNonUniformSMin 42 Reduce 2322
-            2324:   2251(ptr) AccessChain 34(data) 2320 2243
-                              Store 2324 2323
-            2325:      6(int) Load 8(invocation)
-            2326:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2327: 25(int64_t) Load 2326
-            2328: 25(int64_t) GroupNonUniformSMax 42 Reduce 2327
-            2329:   2244(ptr) AccessChain 34(data) 2325 2243 38
-                              Store 2329 2328
-            2330:      6(int) Load 8(invocation)
-            2331:   2251(ptr) AccessChain 34(data) 46 2243
-            2332: 26(i64vec4) Load 2331
-            2333:2250(i64vec2) VectorShuffle 2332 2332 0 1
-            2334:2250(i64vec2) GroupNonUniformSMax 42 Reduce 2333
-            2335:   2251(ptr) AccessChain 34(data) 2330 2243
-            2336: 26(i64vec4) Load 2335
-            2337: 26(i64vec4) VectorShuffle 2336 2334 4 5 2 3
-                              Store 2335 2337
-            2338:      6(int) Load 8(invocation)
-            2339:   2251(ptr) AccessChain 34(data) 57 2243
-            2340: 26(i64vec4) Load 2339
-            2341:2260(i64vec3) VectorShuffle 2340 2340 0 1 2
-            2342:2260(i64vec3) GroupNonUniformSMax 42 Reduce 2341
-            2343:   2251(ptr) AccessChain 34(data) 2338 2243
-            2344: 26(i64vec4) Load 2343
-            2345: 26(i64vec4) VectorShuffle 2344 2342 4 5 6 3
-                              Store 2343 2345
-            2346:      6(int) Load 8(invocation)
-            2347:   2251(ptr) AccessChain 34(data) 67 2243
-            2348: 26(i64vec4) Load 2347
-            2349: 26(i64vec4) GroupNonUniformSMax 42 Reduce 2348
-            2350:   2251(ptr) AccessChain 34(data) 2346 2243
-                              Store 2350 2349
-            2351:      6(int) Load 8(invocation)
-            2352:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2353: 25(int64_t) Load 2352
-            2354: 25(int64_t) GroupNonUniformBitwiseAnd 42 Reduce 2353
-            2355:   2244(ptr) AccessChain 34(data) 2351 2243 38
-                              Store 2355 2354
-            2356:      6(int) Load 8(invocation)
-            2357:   2251(ptr) AccessChain 34(data) 46 2243
-            2358: 26(i64vec4) Load 2357
-            2359:2250(i64vec2) VectorShuffle 2358 2358 0 1
-            2360:2250(i64vec2) GroupNonUniformBitwiseAnd 42 Reduce 2359
-            2361:   2251(ptr) AccessChain 34(data) 2356 2243
-            2362: 26(i64vec4) Load 2361
-            2363: 26(i64vec4) VectorShuffle 2362 2360 4 5 2 3
-                              Store 2361 2363
-            2364:      6(int) Load 8(invocation)
-            2365:   2251(ptr) AccessChain 34(data) 57 2243
-            2366: 26(i64vec4) Load 2365
-            2367:2260(i64vec3) VectorShuffle 2366 2366 0 1 2
-            2368:2260(i64vec3) GroupNonUniformBitwiseAnd 42 Reduce 2367
-            2369:   2251(ptr) AccessChain 34(data) 2364 2243
-            2370: 26(i64vec4) Load 2369
-            2371: 26(i64vec4) VectorShuffle 2370 2368 4 5 6 3
-                              Store 2369 2371
-            2372:      6(int) Load 8(invocation)
-            2373:   2251(ptr) AccessChain 34(data) 67 2243
-            2374: 26(i64vec4) Load 2373
-            2375: 26(i64vec4) GroupNonUniformBitwiseAnd 42 Reduce 2374
-            2376:   2251(ptr) AccessChain 34(data) 2372 2243
-                              Store 2376 2375
-            2377:      6(int) Load 8(invocation)
-            2378:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2379: 25(int64_t) Load 2378
-            2380: 25(int64_t) GroupNonUniformBitwiseOr 42 Reduce 2379
-            2381:   2244(ptr) AccessChain 34(data) 2377 2243 38
-                              Store 2381 2380
-            2382:      6(int) Load 8(invocation)
-            2383:   2251(ptr) AccessChain 34(data) 46 2243
-            2384: 26(i64vec4) Load 2383
-            2385:2250(i64vec2) VectorShuffle 2384 2384 0 1
-            2386:2250(i64vec2) GroupNonUniformBitwiseOr 42 Reduce 2385
-            2387:   2251(ptr) AccessChain 34(data) 2382 2243
-            2388: 26(i64vec4) Load 2387
-            2389: 26(i64vec4) VectorShuffle 2388 2386 4 5 2 3
-                              Store 2387 2389
-            2390:      6(int) Load 8(invocation)
-            2391:   2251(ptr) AccessChain 34(data) 57 2243
-            2392: 26(i64vec4) Load 2391
-            2393:2260(i64vec3) VectorShuffle 2392 2392 0 1 2
-            2394:2260(i64vec3) GroupNonUniformBitwiseOr 42 Reduce 2393
-            2395:   2251(ptr) AccessChain 34(data) 2390 2243
-            2396: 26(i64vec4) Load 2395
-            2397: 26(i64vec4) VectorShuffle 2396 2394 4 5 6 3
-                              Store 2395 2397
-            2398:      6(int) Load 8(invocation)
-            2399:   2251(ptr) AccessChain 34(data) 67 2243
-            2400: 26(i64vec4) Load 2399
-            2401: 26(i64vec4) GroupNonUniformBitwiseOr 42 Reduce 2400
-            2402:   2251(ptr) AccessChain 34(data) 2398 2243
-                              Store 2402 2401
-            2403:      6(int) Load 8(invocation)
-            2404:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2405: 25(int64_t) Load 2404
-            2406: 25(int64_t) GroupNonUniformBitwiseXor 42 Reduce 2405
-            2407:   2244(ptr) AccessChain 34(data) 2403 2243 38
-                              Store 2407 2406
-            2408:      6(int) Load 8(invocation)
-            2409:   2251(ptr) AccessChain 34(data) 46 2243
-            2410: 26(i64vec4) Load 2409
-            2411:2250(i64vec2) VectorShuffle 2410 2410 0 1
-            2412:2250(i64vec2) GroupNonUniformBitwiseXor 42 Reduce 2411
-            2413:   2251(ptr) AccessChain 34(data) 2408 2243
-            2414: 26(i64vec4) Load 2413
-            2415: 26(i64vec4) VectorShuffle 2414 2412 4 5 2 3
-                              Store 2413 2415
-            2416:      6(int) Load 8(invocation)
-            2417:   2251(ptr) AccessChain 34(data) 57 2243
-            2418: 26(i64vec4) Load 2417
-            2419:2260(i64vec3) VectorShuffle 2418 2418 0 1 2
-            2420:2260(i64vec3) GroupNonUniformBitwiseXor 42 Reduce 2419
-            2421:   2251(ptr) AccessChain 34(data) 2416 2243
-            2422: 26(i64vec4) Load 2421
-            2423: 26(i64vec4) VectorShuffle 2422 2420 4 5 6 3
-                              Store 2421 2423
-            2424:      6(int) Load 8(invocation)
-            2425:   2251(ptr) AccessChain 34(data) 67 2243
-            2426: 26(i64vec4) Load 2425
-            2427: 26(i64vec4) GroupNonUniformBitwiseXor 42 Reduce 2426
-            2428:   2251(ptr) AccessChain 34(data) 2424 2243
-                              Store 2428 2427
-            2429:      6(int) Load 8(invocation)
-            2430:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2431: 25(int64_t) Load 2430
-            2432: 25(int64_t) GroupNonUniformIAdd 42 InclusiveScan 2431
-            2433:   2244(ptr) AccessChain 34(data) 2429 2243 38
-                              Store 2433 2432
-            2434:      6(int) Load 8(invocation)
-            2435:   2251(ptr) AccessChain 34(data) 46 2243
-            2436: 26(i64vec4) Load 2435
-            2437:2250(i64vec2) VectorShuffle 2436 2436 0 1
-            2438:2250(i64vec2) GroupNonUniformIAdd 42 InclusiveScan 2437
-            2439:   2251(ptr) AccessChain 34(data) 2434 2243
-            2440: 26(i64vec4) Load 2439
-            2441: 26(i64vec4) VectorShuffle 2440 2438 4 5 2 3
-                              Store 2439 2441
-            2442:      6(int) Load 8(invocation)
-            2443:   2251(ptr) AccessChain 34(data) 57 2243
-            2444: 26(i64vec4) Load 2443
-            2445:2260(i64vec3) VectorShuffle 2444 2444 0 1 2
-            2446:2260(i64vec3) GroupNonUniformIAdd 42 InclusiveScan 2445
-            2447:   2251(ptr) AccessChain 34(data) 2442 2243
-            2448: 26(i64vec4) Load 2447
-            2449: 26(i64vec4) VectorShuffle 2448 2446 4 5 6 3
-                              Store 2447 2449
-            2450:      6(int) Load 8(invocation)
-            2451:   2251(ptr) AccessChain 34(data) 67 2243
-            2452: 26(i64vec4) Load 2451
-            2453: 26(i64vec4) GroupNonUniformIAdd 42 InclusiveScan 2452
-            2454:   2251(ptr) AccessChain 34(data) 2450 2243
-                              Store 2454 2453
+            2295:   1954(ptr) AccessChain 34(data) 59 73
+            2296: 24(i16vec4) Load 2295
+            2297:1964(i16vec3) VectorShuffle 2296 2296 0 1 2
+            2298:1964(i16vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 2297
+            2299:   1947(ptr) AccessChain 34(data) 2294 73 38
+            2300: 23(int16_t) CompositeExtract 2298 0
+                              Store 2299 2300
+            2301:   1947(ptr) AccessChain 34(data) 2294 73 55
+            2302: 23(int16_t) CompositeExtract 2298 1
+                              Store 2301 2302
+            2303:   1947(ptr) AccessChain 34(data) 2294 73 69
+            2304: 23(int16_t) CompositeExtract 2298 2
+                              Store 2303 2304
+            2305:      6(int) Load 8(invocation)
+            2306:   1954(ptr) AccessChain 34(data) 73 73
+            2307: 24(i16vec4) Load 2306
+            2308: 24(i16vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 2307
+            2309:   1954(ptr) AccessChain 34(data) 2305 73
+                              Store 2309 2308
+            2310:      6(int) Load 8(invocation)
+            2311:   1947(ptr) AccessChain 34(data) 37 73 38
+            2312: 23(int16_t) Load 2311
+            2313: 23(int16_t) GroupNonUniformBitwiseOr 42 InclusiveScan 2312
+            2314:   1947(ptr) AccessChain 34(data) 2310 73 38
+                              Store 2314 2313
+            2315:      6(int) Load 8(invocation)
+            2316:   1954(ptr) AccessChain 34(data) 46 73
+            2317: 24(i16vec4) Load 2316
+            2318:1953(i16vec2) VectorShuffle 2317 2317 0 1
+            2319:1953(i16vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 2318
+            2320:   1947(ptr) AccessChain 34(data) 2315 73 38
+            2321: 23(int16_t) CompositeExtract 2319 0
+                              Store 2320 2321
+            2322:   1947(ptr) AccessChain 34(data) 2315 73 55
+            2323: 23(int16_t) CompositeExtract 2319 1
+                              Store 2322 2323
+            2324:      6(int) Load 8(invocation)
+            2325:   1954(ptr) AccessChain 34(data) 59 73
+            2326: 24(i16vec4) Load 2325
+            2327:1964(i16vec3) VectorShuffle 2326 2326 0 1 2
+            2328:1964(i16vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 2327
+            2329:   1947(ptr) AccessChain 34(data) 2324 73 38
+            2330: 23(int16_t) CompositeExtract 2328 0
+                              Store 2329 2330
+            2331:   1947(ptr) AccessChain 34(data) 2324 73 55
+            2332: 23(int16_t) CompositeExtract 2328 1
+                              Store 2331 2332
+            2333:   1947(ptr) AccessChain 34(data) 2324 73 69
+            2334: 23(int16_t) CompositeExtract 2328 2
+                              Store 2333 2334
+            2335:      6(int) Load 8(invocation)
+            2336:   1954(ptr) AccessChain 34(data) 73 73
+            2337: 24(i16vec4) Load 2336
+            2338: 24(i16vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 2337
+            2339:   1954(ptr) AccessChain 34(data) 2335 73
+                              Store 2339 2338
+            2340:      6(int) Load 8(invocation)
+            2341:   1947(ptr) AccessChain 34(data) 37 73 38
+            2342: 23(int16_t) Load 2341
+            2343: 23(int16_t) GroupNonUniformBitwiseXor 42 InclusiveScan 2342
+            2344:   1947(ptr) AccessChain 34(data) 2340 73 38
+                              Store 2344 2343
+            2345:      6(int) Load 8(invocation)
+            2346:   1954(ptr) AccessChain 34(data) 46 73
+            2347: 24(i16vec4) Load 2346
+            2348:1953(i16vec2) VectorShuffle 2347 2347 0 1
+            2349:1953(i16vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 2348
+            2350:   1947(ptr) AccessChain 34(data) 2345 73 38
+            2351: 23(int16_t) CompositeExtract 2349 0
+                              Store 2350 2351
+            2352:   1947(ptr) AccessChain 34(data) 2345 73 55
+            2353: 23(int16_t) CompositeExtract 2349 1
+                              Store 2352 2353
+            2354:      6(int) Load 8(invocation)
+            2355:   1954(ptr) AccessChain 34(data) 59 73
+            2356: 24(i16vec4) Load 2355
+            2357:1964(i16vec3) VectorShuffle 2356 2356 0 1 2
+            2358:1964(i16vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 2357
+            2359:   1947(ptr) AccessChain 34(data) 2354 73 38
+            2360: 23(int16_t) CompositeExtract 2358 0
+                              Store 2359 2360
+            2361:   1947(ptr) AccessChain 34(data) 2354 73 55
+            2362: 23(int16_t) CompositeExtract 2358 1
+                              Store 2361 2362
+            2363:   1947(ptr) AccessChain 34(data) 2354 73 69
+            2364: 23(int16_t) CompositeExtract 2358 2
+                              Store 2363 2364
+            2365:      6(int) Load 8(invocation)
+            2366:   1954(ptr) AccessChain 34(data) 73 73
+            2367: 24(i16vec4) Load 2366
+            2368: 24(i16vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 2367
+            2369:   1954(ptr) AccessChain 34(data) 2365 73
+                              Store 2369 2368
+            2370:      6(int) Load 8(invocation)
+            2371:   1947(ptr) AccessChain 34(data) 37 73 38
+            2372: 23(int16_t) Load 2371
+            2373: 23(int16_t) GroupNonUniformIAdd 42 ExclusiveScan 2372
+            2374:   1947(ptr) AccessChain 34(data) 2370 73 38
+                              Store 2374 2373
+            2375:      6(int) Load 8(invocation)
+            2376:   1954(ptr) AccessChain 34(data) 46 73
+            2377: 24(i16vec4) Load 2376
+            2378:1953(i16vec2) VectorShuffle 2377 2377 0 1
+            2379:1953(i16vec2) GroupNonUniformIAdd 42 ExclusiveScan 2378
+            2380:   1947(ptr) AccessChain 34(data) 2375 73 38
+            2381: 23(int16_t) CompositeExtract 2379 0
+                              Store 2380 2381
+            2382:   1947(ptr) AccessChain 34(data) 2375 73 55
+            2383: 23(int16_t) CompositeExtract 2379 1
+                              Store 2382 2383
+            2384:      6(int) Load 8(invocation)
+            2385:   1954(ptr) AccessChain 34(data) 59 73
+            2386: 24(i16vec4) Load 2385
+            2387:1964(i16vec3) VectorShuffle 2386 2386 0 1 2
+            2388:1964(i16vec3) GroupNonUniformIAdd 42 ExclusiveScan 2387
+            2389:   1947(ptr) AccessChain 34(data) 2384 73 38
+            2390: 23(int16_t) CompositeExtract 2388 0
+                              Store 2389 2390
+            2391:   1947(ptr) AccessChain 34(data) 2384 73 55
+            2392: 23(int16_t) CompositeExtract 2388 1
+                              Store 2391 2392
+            2393:   1947(ptr) AccessChain 34(data) 2384 73 69
+            2394: 23(int16_t) CompositeExtract 2388 2
+                              Store 2393 2394
+            2395:      6(int) Load 8(invocation)
+            2396:   1954(ptr) AccessChain 34(data) 73 73
+            2397: 24(i16vec4) Load 2396
+            2398: 24(i16vec4) GroupNonUniformIAdd 42 ExclusiveScan 2397
+            2399:   1954(ptr) AccessChain 34(data) 2395 73
+                              Store 2399 2398
+            2400:      6(int) Load 8(invocation)
+            2401:   1947(ptr) AccessChain 34(data) 37 73 38
+            2402: 23(int16_t) Load 2401
+            2403: 23(int16_t) GroupNonUniformIMul 42 ExclusiveScan 2402
+            2404:   1947(ptr) AccessChain 34(data) 2400 73 38
+                              Store 2404 2403
+            2405:      6(int) Load 8(invocation)
+            2406:   1954(ptr) AccessChain 34(data) 46 73
+            2407: 24(i16vec4) Load 2406
+            2408:1953(i16vec2) VectorShuffle 2407 2407 0 1
+            2409:1953(i16vec2) GroupNonUniformIMul 42 ExclusiveScan 2408
+            2410:   1947(ptr) AccessChain 34(data) 2405 73 38
+            2411: 23(int16_t) CompositeExtract 2409 0
+                              Store 2410 2411
+            2412:   1947(ptr) AccessChain 34(data) 2405 73 55
+            2413: 23(int16_t) CompositeExtract 2409 1
+                              Store 2412 2413
+            2414:      6(int) Load 8(invocation)
+            2415:   1954(ptr) AccessChain 34(data) 59 73
+            2416: 24(i16vec4) Load 2415
+            2417:1964(i16vec3) VectorShuffle 2416 2416 0 1 2
+            2418:1964(i16vec3) GroupNonUniformIMul 42 ExclusiveScan 2417
+            2419:   1947(ptr) AccessChain 34(data) 2414 73 38
+            2420: 23(int16_t) CompositeExtract 2418 0
+                              Store 2419 2420
+            2421:   1947(ptr) AccessChain 34(data) 2414 73 55
+            2422: 23(int16_t) CompositeExtract 2418 1
+                              Store 2421 2422
+            2423:   1947(ptr) AccessChain 34(data) 2414 73 69
+            2424: 23(int16_t) CompositeExtract 2418 2
+                              Store 2423 2424
+            2425:      6(int) Load 8(invocation)
+            2426:   1954(ptr) AccessChain 34(data) 73 73
+            2427: 24(i16vec4) Load 2426
+            2428: 24(i16vec4) GroupNonUniformIMul 42 ExclusiveScan 2427
+            2429:   1954(ptr) AccessChain 34(data) 2425 73
+                              Store 2429 2428
+            2430:      6(int) Load 8(invocation)
+            2431:   1947(ptr) AccessChain 34(data) 37 73 38
+            2432: 23(int16_t) Load 2431
+            2433: 23(int16_t) GroupNonUniformUMin 42 ExclusiveScan 2432
+            2434:   1947(ptr) AccessChain 34(data) 2430 73 38
+                              Store 2434 2433
+            2435:      6(int) Load 8(invocation)
+            2436:   1954(ptr) AccessChain 34(data) 46 73
+            2437: 24(i16vec4) Load 2436
+            2438:1953(i16vec2) VectorShuffle 2437 2437 0 1
+            2439:1953(i16vec2) GroupNonUniformUMin 42 ExclusiveScan 2438
+            2440:   1947(ptr) AccessChain 34(data) 2435 73 38
+            2441: 23(int16_t) CompositeExtract 2439 0
+                              Store 2440 2441
+            2442:   1947(ptr) AccessChain 34(data) 2435 73 55
+            2443: 23(int16_t) CompositeExtract 2439 1
+                              Store 2442 2443
+            2444:      6(int) Load 8(invocation)
+            2445:   1954(ptr) AccessChain 34(data) 59 73
+            2446: 24(i16vec4) Load 2445
+            2447:1964(i16vec3) VectorShuffle 2446 2446 0 1 2
+            2448:1964(i16vec3) GroupNonUniformUMin 42 ExclusiveScan 2447
+            2449:   1947(ptr) AccessChain 34(data) 2444 73 38
+            2450: 23(int16_t) CompositeExtract 2448 0
+                              Store 2449 2450
+            2451:   1947(ptr) AccessChain 34(data) 2444 73 55
+            2452: 23(int16_t) CompositeExtract 2448 1
+                              Store 2451 2452
+            2453:   1947(ptr) AccessChain 34(data) 2444 73 69
+            2454: 23(int16_t) CompositeExtract 2448 2
+                              Store 2453 2454
             2455:      6(int) Load 8(invocation)
-            2456:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2457: 25(int64_t) Load 2456
-            2458: 25(int64_t) GroupNonUniformIMul 42 InclusiveScan 2457
-            2459:   2244(ptr) AccessChain 34(data) 2455 2243 38
+            2456:   1954(ptr) AccessChain 34(data) 73 73
+            2457: 24(i16vec4) Load 2456
+            2458: 24(i16vec4) GroupNonUniformUMin 42 ExclusiveScan 2457
+            2459:   1954(ptr) AccessChain 34(data) 2455 73
                               Store 2459 2458
             2460:      6(int) Load 8(invocation)
-            2461:   2251(ptr) AccessChain 34(data) 46 2243
-            2462: 26(i64vec4) Load 2461
-            2463:2250(i64vec2) VectorShuffle 2462 2462 0 1
-            2464:2250(i64vec2) GroupNonUniformIMul 42 InclusiveScan 2463
-            2465:   2251(ptr) AccessChain 34(data) 2460 2243
-            2466: 26(i64vec4) Load 2465
-            2467: 26(i64vec4) VectorShuffle 2466 2464 4 5 2 3
-                              Store 2465 2467
-            2468:      6(int) Load 8(invocation)
-            2469:   2251(ptr) AccessChain 34(data) 57 2243
-            2470: 26(i64vec4) Load 2469
-            2471:2260(i64vec3) VectorShuffle 2470 2470 0 1 2
-            2472:2260(i64vec3) GroupNonUniformIMul 42 InclusiveScan 2471
-            2473:   2251(ptr) AccessChain 34(data) 2468 2243
-            2474: 26(i64vec4) Load 2473
-            2475: 26(i64vec4) VectorShuffle 2474 2472 4 5 6 3
-                              Store 2473 2475
-            2476:      6(int) Load 8(invocation)
-            2477:   2251(ptr) AccessChain 34(data) 67 2243
-            2478: 26(i64vec4) Load 2477
-            2479: 26(i64vec4) GroupNonUniformIMul 42 InclusiveScan 2478
-            2480:   2251(ptr) AccessChain 34(data) 2476 2243
-                              Store 2480 2479
-            2481:      6(int) Load 8(invocation)
-            2482:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2483: 25(int64_t) Load 2482
-            2484: 25(int64_t) GroupNonUniformSMin 42 InclusiveScan 2483
-            2485:   2244(ptr) AccessChain 34(data) 2481 2243 38
-                              Store 2485 2484
-            2486:      6(int) Load 8(invocation)
-            2487:   2251(ptr) AccessChain 34(data) 46 2243
-            2488: 26(i64vec4) Load 2487
-            2489:2250(i64vec2) VectorShuffle 2488 2488 0 1
-            2490:2250(i64vec2) GroupNonUniformSMin 42 InclusiveScan 2489
-            2491:   2251(ptr) AccessChain 34(data) 2486 2243
-            2492: 26(i64vec4) Load 2491
-            2493: 26(i64vec4) VectorShuffle 2492 2490 4 5 2 3
-                              Store 2491 2493
-            2494:      6(int) Load 8(invocation)
-            2495:   2251(ptr) AccessChain 34(data) 57 2243
-            2496: 26(i64vec4) Load 2495
-            2497:2260(i64vec3) VectorShuffle 2496 2496 0 1 2
-            2498:2260(i64vec3) GroupNonUniformSMin 42 InclusiveScan 2497
-            2499:   2251(ptr) AccessChain 34(data) 2494 2243
-            2500: 26(i64vec4) Load 2499
-            2501: 26(i64vec4) VectorShuffle 2500 2498 4 5 6 3
-                              Store 2499 2501
-            2502:      6(int) Load 8(invocation)
-            2503:   2251(ptr) AccessChain 34(data) 67 2243
-            2504: 26(i64vec4) Load 2503
-            2505: 26(i64vec4) GroupNonUniformSMin 42 InclusiveScan 2504
-            2506:   2251(ptr) AccessChain 34(data) 2502 2243
-                              Store 2506 2505
-            2507:      6(int) Load 8(invocation)
-            2508:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2509: 25(int64_t) Load 2508
-            2510: 25(int64_t) GroupNonUniformSMax 42 InclusiveScan 2509
-            2511:   2244(ptr) AccessChain 34(data) 2507 2243 38
-                              Store 2511 2510
-            2512:      6(int) Load 8(invocation)
-            2513:   2251(ptr) AccessChain 34(data) 46 2243
-            2514: 26(i64vec4) Load 2513
-            2515:2250(i64vec2) VectorShuffle 2514 2514 0 1
-            2516:2250(i64vec2) GroupNonUniformSMax 42 InclusiveScan 2515
-            2517:   2251(ptr) AccessChain 34(data) 2512 2243
-            2518: 26(i64vec4) Load 2517
-            2519: 26(i64vec4) VectorShuffle 2518 2516 4 5 2 3
-                              Store 2517 2519
+            2461:   1947(ptr) AccessChain 34(data) 37 73 38
+            2462: 23(int16_t) Load 2461
+            2463: 23(int16_t) GroupNonUniformUMax 42 ExclusiveScan 2462
+            2464:   1947(ptr) AccessChain 34(data) 2460 73 38
+                              Store 2464 2463
+            2465:      6(int) Load 8(invocation)
+            2466:   1954(ptr) AccessChain 34(data) 46 73
+            2467: 24(i16vec4) Load 2466
+            2468:1953(i16vec2) VectorShuffle 2467 2467 0 1
+            2469:1953(i16vec2) GroupNonUniformUMax 42 ExclusiveScan 2468
+            2470:   1947(ptr) AccessChain 34(data) 2465 73 38
+            2471: 23(int16_t) CompositeExtract 2469 0
+                              Store 2470 2471
+            2472:   1947(ptr) AccessChain 34(data) 2465 73 55
+            2473: 23(int16_t) CompositeExtract 2469 1
+                              Store 2472 2473
+            2474:      6(int) Load 8(invocation)
+            2475:   1954(ptr) AccessChain 34(data) 59 73
+            2476: 24(i16vec4) Load 2475
+            2477:1964(i16vec3) VectorShuffle 2476 2476 0 1 2
+            2478:1964(i16vec3) GroupNonUniformUMax 42 ExclusiveScan 2477
+            2479:   1947(ptr) AccessChain 34(data) 2474 73 38
+            2480: 23(int16_t) CompositeExtract 2478 0
+                              Store 2479 2480
+            2481:   1947(ptr) AccessChain 34(data) 2474 73 55
+            2482: 23(int16_t) CompositeExtract 2478 1
+                              Store 2481 2482
+            2483:   1947(ptr) AccessChain 34(data) 2474 73 69
+            2484: 23(int16_t) CompositeExtract 2478 2
+                              Store 2483 2484
+            2485:      6(int) Load 8(invocation)
+            2486:   1954(ptr) AccessChain 34(data) 73 73
+            2487: 24(i16vec4) Load 2486
+            2488: 24(i16vec4) GroupNonUniformUMax 42 ExclusiveScan 2487
+            2489:   1954(ptr) AccessChain 34(data) 2485 73
+                              Store 2489 2488
+            2490:      6(int) Load 8(invocation)
+            2491:   1947(ptr) AccessChain 34(data) 37 73 38
+            2492: 23(int16_t) Load 2491
+            2493: 23(int16_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2492
+            2494:   1947(ptr) AccessChain 34(data) 2490 73 38
+                              Store 2494 2493
+            2495:      6(int) Load 8(invocation)
+            2496:   1954(ptr) AccessChain 34(data) 46 73
+            2497: 24(i16vec4) Load 2496
+            2498:1953(i16vec2) VectorShuffle 2497 2497 0 1
+            2499:1953(i16vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2498
+            2500:   1947(ptr) AccessChain 34(data) 2495 73 38
+            2501: 23(int16_t) CompositeExtract 2499 0
+                              Store 2500 2501
+            2502:   1947(ptr) AccessChain 34(data) 2495 73 55
+            2503: 23(int16_t) CompositeExtract 2499 1
+                              Store 2502 2503
+            2504:      6(int) Load 8(invocation)
+            2505:   1954(ptr) AccessChain 34(data) 59 73
+            2506: 24(i16vec4) Load 2505
+            2507:1964(i16vec3) VectorShuffle 2506 2506 0 1 2
+            2508:1964(i16vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2507
+            2509:   1947(ptr) AccessChain 34(data) 2504 73 38
+            2510: 23(int16_t) CompositeExtract 2508 0
+                              Store 2509 2510
+            2511:   1947(ptr) AccessChain 34(data) 2504 73 55
+            2512: 23(int16_t) CompositeExtract 2508 1
+                              Store 2511 2512
+            2513:   1947(ptr) AccessChain 34(data) 2504 73 69
+            2514: 23(int16_t) CompositeExtract 2508 2
+                              Store 2513 2514
+            2515:      6(int) Load 8(invocation)
+            2516:   1954(ptr) AccessChain 34(data) 73 73
+            2517: 24(i16vec4) Load 2516
+            2518: 24(i16vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2517
+            2519:   1954(ptr) AccessChain 34(data) 2515 73
+                              Store 2519 2518
             2520:      6(int) Load 8(invocation)
-            2521:   2251(ptr) AccessChain 34(data) 57 2243
-            2522: 26(i64vec4) Load 2521
-            2523:2260(i64vec3) VectorShuffle 2522 2522 0 1 2
-            2524:2260(i64vec3) GroupNonUniformSMax 42 InclusiveScan 2523
-            2525:   2251(ptr) AccessChain 34(data) 2520 2243
-            2526: 26(i64vec4) Load 2525
-            2527: 26(i64vec4) VectorShuffle 2526 2524 4 5 6 3
-                              Store 2525 2527
-            2528:      6(int) Load 8(invocation)
-            2529:   2251(ptr) AccessChain 34(data) 67 2243
-            2530: 26(i64vec4) Load 2529
-            2531: 26(i64vec4) GroupNonUniformSMax 42 InclusiveScan 2530
-            2532:   2251(ptr) AccessChain 34(data) 2528 2243
-                              Store 2532 2531
-            2533:      6(int) Load 8(invocation)
-            2534:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2535: 25(int64_t) Load 2534
-            2536: 25(int64_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 2535
-            2537:   2244(ptr) AccessChain 34(data) 2533 2243 38
-                              Store 2537 2536
-            2538:      6(int) Load 8(invocation)
-            2539:   2251(ptr) AccessChain 34(data) 46 2243
-            2540: 26(i64vec4) Load 2539
-            2541:2250(i64vec2) VectorShuffle 2540 2540 0 1
-            2542:2250(i64vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 2541
-            2543:   2251(ptr) AccessChain 34(data) 2538 2243
-            2544: 26(i64vec4) Load 2543
-            2545: 26(i64vec4) VectorShuffle 2544 2542 4 5 2 3
-                              Store 2543 2545
-            2546:      6(int) Load 8(invocation)
-            2547:   2251(ptr) AccessChain 34(data) 57 2243
-            2548: 26(i64vec4) Load 2547
-            2549:2260(i64vec3) VectorShuffle 2548 2548 0 1 2
-            2550:2260(i64vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 2549
-            2551:   2251(ptr) AccessChain 34(data) 2546 2243
-            2552: 26(i64vec4) Load 2551
-            2553: 26(i64vec4) VectorShuffle 2552 2550 4 5 6 3
-                              Store 2551 2553
-            2554:      6(int) Load 8(invocation)
-            2555:   2251(ptr) AccessChain 34(data) 67 2243
-            2556: 26(i64vec4) Load 2555
-            2557: 26(i64vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 2556
-            2558:   2251(ptr) AccessChain 34(data) 2554 2243
-                              Store 2558 2557
-            2559:      6(int) Load 8(invocation)
-            2560:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2561: 25(int64_t) Load 2560
-            2562: 25(int64_t) GroupNonUniformBitwiseOr 42 InclusiveScan 2561
-            2563:   2244(ptr) AccessChain 34(data) 2559 2243 38
-                              Store 2563 2562
+            2521:   1947(ptr) AccessChain 34(data) 37 73 38
+            2522: 23(int16_t) Load 2521
+            2523: 23(int16_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 2522
+            2524:   1947(ptr) AccessChain 34(data) 2520 73 38
+                              Store 2524 2523
+            2525:      6(int) Load 8(invocation)
+            2526:   1954(ptr) AccessChain 34(data) 46 73
+            2527: 24(i16vec4) Load 2526
+            2528:1953(i16vec2) VectorShuffle 2527 2527 0 1
+            2529:1953(i16vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 2528
+            2530:   1947(ptr) AccessChain 34(data) 2525 73 38
+            2531: 23(int16_t) CompositeExtract 2529 0
+                              Store 2530 2531
+            2532:   1947(ptr) AccessChain 34(data) 2525 73 55
+            2533: 23(int16_t) CompositeExtract 2529 1
+                              Store 2532 2533
+            2534:      6(int) Load 8(invocation)
+            2535:   1954(ptr) AccessChain 34(data) 59 73
+            2536: 24(i16vec4) Load 2535
+            2537:1964(i16vec3) VectorShuffle 2536 2536 0 1 2
+            2538:1964(i16vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 2537
+            2539:   1947(ptr) AccessChain 34(data) 2534 73 38
+            2540: 23(int16_t) CompositeExtract 2538 0
+                              Store 2539 2540
+            2541:   1947(ptr) AccessChain 34(data) 2534 73 55
+            2542: 23(int16_t) CompositeExtract 2538 1
+                              Store 2541 2542
+            2543:   1947(ptr) AccessChain 34(data) 2534 73 69
+            2544: 23(int16_t) CompositeExtract 2538 2
+                              Store 2543 2544
+            2545:      6(int) Load 8(invocation)
+            2546:   1954(ptr) AccessChain 34(data) 73 73
+            2547: 24(i16vec4) Load 2546
+            2548: 24(i16vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 2547
+            2549:   1954(ptr) AccessChain 34(data) 2545 73
+                              Store 2549 2548
+            2550:      6(int) Load 8(invocation)
+            2551:   1947(ptr) AccessChain 34(data) 37 73 38
+            2552: 23(int16_t) Load 2551
+            2553: 23(int16_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 2552
+            2554:   1947(ptr) AccessChain 34(data) 2550 73 38
+                              Store 2554 2553
+            2555:      6(int) Load 8(invocation)
+            2556:   1954(ptr) AccessChain 34(data) 46 73
+            2557: 24(i16vec4) Load 2556
+            2558:1953(i16vec2) VectorShuffle 2557 2557 0 1
+            2559:1953(i16vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 2558
+            2560:   1947(ptr) AccessChain 34(data) 2555 73 38
+            2561: 23(int16_t) CompositeExtract 2559 0
+                              Store 2560 2561
+            2562:   1947(ptr) AccessChain 34(data) 2555 73 55
+            2563: 23(int16_t) CompositeExtract 2559 1
+                              Store 2562 2563
             2564:      6(int) Load 8(invocation)
-            2565:   2251(ptr) AccessChain 34(data) 46 2243
-            2566: 26(i64vec4) Load 2565
-            2567:2250(i64vec2) VectorShuffle 2566 2566 0 1
-            2568:2250(i64vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 2567
-            2569:   2251(ptr) AccessChain 34(data) 2564 2243
-            2570: 26(i64vec4) Load 2569
-            2571: 26(i64vec4) VectorShuffle 2570 2568 4 5 2 3
-                              Store 2569 2571
-            2572:      6(int) Load 8(invocation)
-            2573:   2251(ptr) AccessChain 34(data) 57 2243
-            2574: 26(i64vec4) Load 2573
-            2575:2260(i64vec3) VectorShuffle 2574 2574 0 1 2
-            2576:2260(i64vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 2575
-            2577:   2251(ptr) AccessChain 34(data) 2572 2243
-            2578: 26(i64vec4) Load 2577
-            2579: 26(i64vec4) VectorShuffle 2578 2576 4 5 6 3
-                              Store 2577 2579
+            2565:   1954(ptr) AccessChain 34(data) 59 73
+            2566: 24(i16vec4) Load 2565
+            2567:1964(i16vec3) VectorShuffle 2566 2566 0 1 2
+            2568:1964(i16vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 2567
+            2569:   1947(ptr) AccessChain 34(data) 2564 73 38
+            2570: 23(int16_t) CompositeExtract 2568 0
+                              Store 2569 2570
+            2571:   1947(ptr) AccessChain 34(data) 2564 73 55
+            2572: 23(int16_t) CompositeExtract 2568 1
+                              Store 2571 2572
+            2573:   1947(ptr) AccessChain 34(data) 2564 73 69
+            2574: 23(int16_t) CompositeExtract 2568 2
+                              Store 2573 2574
+            2575:      6(int) Load 8(invocation)
+            2576:   1954(ptr) AccessChain 34(data) 73 73
+            2577: 24(i16vec4) Load 2576
+            2578: 24(i16vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 2577
+            2579:   1954(ptr) AccessChain 34(data) 2575 73
+                              Store 2579 2578
             2580:      6(int) Load 8(invocation)
-            2581:   2251(ptr) AccessChain 34(data) 67 2243
-            2582: 26(i64vec4) Load 2581
-            2583: 26(i64vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 2582
-            2584:   2251(ptr) AccessChain 34(data) 2580 2243
-                              Store 2584 2583
-            2585:      6(int) Load 8(invocation)
-            2586:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2587: 25(int64_t) Load 2586
-            2588: 25(int64_t) GroupNonUniformBitwiseXor 42 InclusiveScan 2587
-            2589:   2244(ptr) AccessChain 34(data) 2585 2243 38
-                              Store 2589 2588
-            2590:      6(int) Load 8(invocation)
-            2591:   2251(ptr) AccessChain 34(data) 46 2243
-            2592: 26(i64vec4) Load 2591
-            2593:2250(i64vec2) VectorShuffle 2592 2592 0 1
-            2594:2250(i64vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 2593
-            2595:   2251(ptr) AccessChain 34(data) 2590 2243
-            2596: 26(i64vec4) Load 2595
-            2597: 26(i64vec4) VectorShuffle 2596 2594 4 5 2 3
-                              Store 2595 2597
+            2583:   2582(ptr) AccessChain 34(data) 37 2581 38
+            2584: 25(int64_t) Load 2583
+            2585: 25(int64_t) GroupNonUniformIAdd 42 Reduce 2584
+            2586:   2582(ptr) AccessChain 34(data) 2580 2581 38
+                              Store 2586 2585
+            2587:      6(int) Load 8(invocation)
+            2590:   2589(ptr) AccessChain 34(data) 46 2581
+            2591: 26(i64vec4) Load 2590
+            2592:2588(i64vec2) VectorShuffle 2591 2591 0 1
+            2593:2588(i64vec2) GroupNonUniformIAdd 42 Reduce 2592
+            2594:   2582(ptr) AccessChain 34(data) 2587 2581 38
+            2595: 25(int64_t) CompositeExtract 2593 0
+                              Store 2594 2595
+            2596:   2582(ptr) AccessChain 34(data) 2587 2581 55
+            2597: 25(int64_t) CompositeExtract 2593 1
+                              Store 2596 2597
             2598:      6(int) Load 8(invocation)
-            2599:   2251(ptr) AccessChain 34(data) 57 2243
-            2600: 26(i64vec4) Load 2599
-            2601:2260(i64vec3) VectorShuffle 2600 2600 0 1 2
-            2602:2260(i64vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 2601
-            2603:   2251(ptr) AccessChain 34(data) 2598 2243
-            2604: 26(i64vec4) Load 2603
-            2605: 26(i64vec4) VectorShuffle 2604 2602 4 5 6 3
-                              Store 2603 2605
-            2606:      6(int) Load 8(invocation)
-            2607:   2251(ptr) AccessChain 34(data) 67 2243
-            2608: 26(i64vec4) Load 2607
-            2609: 26(i64vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 2608
-            2610:   2251(ptr) AccessChain 34(data) 2606 2243
-                              Store 2610 2609
-            2611:      6(int) Load 8(invocation)
-            2612:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2613: 25(int64_t) Load 2612
-            2614: 25(int64_t) GroupNonUniformIAdd 42 ExclusiveScan 2613
-            2615:   2244(ptr) AccessChain 34(data) 2611 2243 38
-                              Store 2615 2614
-            2616:      6(int) Load 8(invocation)
-            2617:   2251(ptr) AccessChain 34(data) 46 2243
-            2618: 26(i64vec4) Load 2617
-            2619:2250(i64vec2) VectorShuffle 2618 2618 0 1
-            2620:2250(i64vec2) GroupNonUniformIAdd 42 ExclusiveScan 2619
-            2621:   2251(ptr) AccessChain 34(data) 2616 2243
+            2600:   2589(ptr) AccessChain 34(data) 59 2581
+            2601: 26(i64vec4) Load 2600
+            2602:2599(i64vec3) VectorShuffle 2601 2601 0 1 2
+            2603:2599(i64vec3) GroupNonUniformIAdd 42 Reduce 2602
+            2604:   2582(ptr) AccessChain 34(data) 2598 2581 38
+            2605: 25(int64_t) CompositeExtract 2603 0
+                              Store 2604 2605
+            2606:   2582(ptr) AccessChain 34(data) 2598 2581 55
+            2607: 25(int64_t) CompositeExtract 2603 1
+                              Store 2606 2607
+            2608:   2582(ptr) AccessChain 34(data) 2598 2581 69
+            2609: 25(int64_t) CompositeExtract 2603 2
+                              Store 2608 2609
+            2610:      6(int) Load 8(invocation)
+            2611:   2589(ptr) AccessChain 34(data) 73 2581
+            2612: 26(i64vec4) Load 2611
+            2613: 26(i64vec4) GroupNonUniformIAdd 42 Reduce 2612
+            2614:   2589(ptr) AccessChain 34(data) 2610 2581
+                              Store 2614 2613
+            2615:      6(int) Load 8(invocation)
+            2616:   2582(ptr) AccessChain 34(data) 37 2581 38
+            2617: 25(int64_t) Load 2616
+            2618: 25(int64_t) GroupNonUniformIMul 42 Reduce 2617
+            2619:   2582(ptr) AccessChain 34(data) 2615 2581 38
+                              Store 2619 2618
+            2620:      6(int) Load 8(invocation)
+            2621:   2589(ptr) AccessChain 34(data) 46 2581
             2622: 26(i64vec4) Load 2621
-            2623: 26(i64vec4) VectorShuffle 2622 2620 4 5 2 3
-                              Store 2621 2623
-            2624:      6(int) Load 8(invocation)
-            2625:   2251(ptr) AccessChain 34(data) 57 2243
-            2626: 26(i64vec4) Load 2625
-            2627:2260(i64vec3) VectorShuffle 2626 2626 0 1 2
-            2628:2260(i64vec3) GroupNonUniformIAdd 42 ExclusiveScan 2627
-            2629:   2251(ptr) AccessChain 34(data) 2624 2243
-            2630: 26(i64vec4) Load 2629
-            2631: 26(i64vec4) VectorShuffle 2630 2628 4 5 6 3
-                              Store 2629 2631
-            2632:      6(int) Load 8(invocation)
-            2633:   2251(ptr) AccessChain 34(data) 67 2243
-            2634: 26(i64vec4) Load 2633
-            2635: 26(i64vec4) GroupNonUniformIAdd 42 ExclusiveScan 2634
-            2636:   2251(ptr) AccessChain 34(data) 2632 2243
-                              Store 2636 2635
-            2637:      6(int) Load 8(invocation)
-            2638:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2639: 25(int64_t) Load 2638
-            2640: 25(int64_t) GroupNonUniformIMul 42 ExclusiveScan 2639
-            2641:   2244(ptr) AccessChain 34(data) 2637 2243 38
-                              Store 2641 2640
-            2642:      6(int) Load 8(invocation)
-            2643:   2251(ptr) AccessChain 34(data) 46 2243
-            2644: 26(i64vec4) Load 2643
-            2645:2250(i64vec2) VectorShuffle 2644 2644 0 1
-            2646:2250(i64vec2) GroupNonUniformIMul 42 ExclusiveScan 2645
-            2647:   2251(ptr) AccessChain 34(data) 2642 2243
-            2648: 26(i64vec4) Load 2647
-            2649: 26(i64vec4) VectorShuffle 2648 2646 4 5 2 3
-                              Store 2647 2649
+            2623:2588(i64vec2) VectorShuffle 2622 2622 0 1
+            2624:2588(i64vec2) GroupNonUniformIMul 42 Reduce 2623
+            2625:   2582(ptr) AccessChain 34(data) 2620 2581 38
+            2626: 25(int64_t) CompositeExtract 2624 0
+                              Store 2625 2626
+            2627:   2582(ptr) AccessChain 34(data) 2620 2581 55
+            2628: 25(int64_t) CompositeExtract 2624 1
+                              Store 2627 2628
+            2629:      6(int) Load 8(invocation)
+            2630:   2589(ptr) AccessChain 34(data) 59 2581
+            2631: 26(i64vec4) Load 2630
+            2632:2599(i64vec3) VectorShuffle 2631 2631 0 1 2
+            2633:2599(i64vec3) GroupNonUniformIMul 42 Reduce 2632
+            2634:   2582(ptr) AccessChain 34(data) 2629 2581 38
+            2635: 25(int64_t) CompositeExtract 2633 0
+                              Store 2634 2635
+            2636:   2582(ptr) AccessChain 34(data) 2629 2581 55
+            2637: 25(int64_t) CompositeExtract 2633 1
+                              Store 2636 2637
+            2638:   2582(ptr) AccessChain 34(data) 2629 2581 69
+            2639: 25(int64_t) CompositeExtract 2633 2
+                              Store 2638 2639
+            2640:      6(int) Load 8(invocation)
+            2641:   2589(ptr) AccessChain 34(data) 73 2581
+            2642: 26(i64vec4) Load 2641
+            2643: 26(i64vec4) GroupNonUniformIMul 42 Reduce 2642
+            2644:   2589(ptr) AccessChain 34(data) 2640 2581
+                              Store 2644 2643
+            2645:      6(int) Load 8(invocation)
+            2646:   2582(ptr) AccessChain 34(data) 37 2581 38
+            2647: 25(int64_t) Load 2646
+            2648: 25(int64_t) GroupNonUniformSMin 42 Reduce 2647
+            2649:   2582(ptr) AccessChain 34(data) 2645 2581 38
+                              Store 2649 2648
             2650:      6(int) Load 8(invocation)
-            2651:   2251(ptr) AccessChain 34(data) 57 2243
+            2651:   2589(ptr) AccessChain 34(data) 46 2581
             2652: 26(i64vec4) Load 2651
-            2653:2260(i64vec3) VectorShuffle 2652 2652 0 1 2
-            2654:2260(i64vec3) GroupNonUniformIMul 42 ExclusiveScan 2653
-            2655:   2251(ptr) AccessChain 34(data) 2650 2243
-            2656: 26(i64vec4) Load 2655
-            2657: 26(i64vec4) VectorShuffle 2656 2654 4 5 6 3
-                              Store 2655 2657
-            2658:      6(int) Load 8(invocation)
-            2659:   2251(ptr) AccessChain 34(data) 67 2243
-            2660: 26(i64vec4) Load 2659
-            2661: 26(i64vec4) GroupNonUniformIMul 42 ExclusiveScan 2660
-            2662:   2251(ptr) AccessChain 34(data) 2658 2243
-                              Store 2662 2661
-            2663:      6(int) Load 8(invocation)
-            2664:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2665: 25(int64_t) Load 2664
-            2666: 25(int64_t) GroupNonUniformSMin 42 ExclusiveScan 2665
-            2667:   2244(ptr) AccessChain 34(data) 2663 2243 38
-                              Store 2667 2666
-            2668:      6(int) Load 8(invocation)
-            2669:   2251(ptr) AccessChain 34(data) 46 2243
-            2670: 26(i64vec4) Load 2669
-            2671:2250(i64vec2) VectorShuffle 2670 2670 0 1
-            2672:2250(i64vec2) GroupNonUniformSMin 42 ExclusiveScan 2671
-            2673:   2251(ptr) AccessChain 34(data) 2668 2243
-            2674: 26(i64vec4) Load 2673
-            2675: 26(i64vec4) VectorShuffle 2674 2672 4 5 2 3
-                              Store 2673 2675
-            2676:      6(int) Load 8(invocation)
-            2677:   2251(ptr) AccessChain 34(data) 57 2243
-            2678: 26(i64vec4) Load 2677
-            2679:2260(i64vec3) VectorShuffle 2678 2678 0 1 2
-            2680:2260(i64vec3) GroupNonUniformSMin 42 ExclusiveScan 2679
-            2681:   2251(ptr) AccessChain 34(data) 2676 2243
+            2653:2588(i64vec2) VectorShuffle 2652 2652 0 1
+            2654:2588(i64vec2) GroupNonUniformSMin 42 Reduce 2653
+            2655:   2582(ptr) AccessChain 34(data) 2650 2581 38
+            2656: 25(int64_t) CompositeExtract 2654 0
+                              Store 2655 2656
+            2657:   2582(ptr) AccessChain 34(data) 2650 2581 55
+            2658: 25(int64_t) CompositeExtract 2654 1
+                              Store 2657 2658
+            2659:      6(int) Load 8(invocation)
+            2660:   2589(ptr) AccessChain 34(data) 59 2581
+            2661: 26(i64vec4) Load 2660
+            2662:2599(i64vec3) VectorShuffle 2661 2661 0 1 2
+            2663:2599(i64vec3) GroupNonUniformSMin 42 Reduce 2662
+            2664:   2582(ptr) AccessChain 34(data) 2659 2581 38
+            2665: 25(int64_t) CompositeExtract 2663 0
+                              Store 2664 2665
+            2666:   2582(ptr) AccessChain 34(data) 2659 2581 55
+            2667: 25(int64_t) CompositeExtract 2663 1
+                              Store 2666 2667
+            2668:   2582(ptr) AccessChain 34(data) 2659 2581 69
+            2669: 25(int64_t) CompositeExtract 2663 2
+                              Store 2668 2669
+            2670:      6(int) Load 8(invocation)
+            2671:   2589(ptr) AccessChain 34(data) 73 2581
+            2672: 26(i64vec4) Load 2671
+            2673: 26(i64vec4) GroupNonUniformSMin 42 Reduce 2672
+            2674:   2589(ptr) AccessChain 34(data) 2670 2581
+                              Store 2674 2673
+            2675:      6(int) Load 8(invocation)
+            2676:   2582(ptr) AccessChain 34(data) 37 2581 38
+            2677: 25(int64_t) Load 2676
+            2678: 25(int64_t) GroupNonUniformSMax 42 Reduce 2677
+            2679:   2582(ptr) AccessChain 34(data) 2675 2581 38
+                              Store 2679 2678
+            2680:      6(int) Load 8(invocation)
+            2681:   2589(ptr) AccessChain 34(data) 46 2581
             2682: 26(i64vec4) Load 2681
-            2683: 26(i64vec4) VectorShuffle 2682 2680 4 5 6 3
-                              Store 2681 2683
-            2684:      6(int) Load 8(invocation)
-            2685:   2251(ptr) AccessChain 34(data) 67 2243
-            2686: 26(i64vec4) Load 2685
-            2687: 26(i64vec4) GroupNonUniformSMin 42 ExclusiveScan 2686
-            2688:   2251(ptr) AccessChain 34(data) 2684 2243
-                              Store 2688 2687
+            2683:2588(i64vec2) VectorShuffle 2682 2682 0 1
+            2684:2588(i64vec2) GroupNonUniformSMax 42 Reduce 2683
+            2685:   2582(ptr) AccessChain 34(data) 2680 2581 38
+            2686: 25(int64_t) CompositeExtract 2684 0
+                              Store 2685 2686
+            2687:   2582(ptr) AccessChain 34(data) 2680 2581 55
+            2688: 25(int64_t) CompositeExtract 2684 1
+                              Store 2687 2688
             2689:      6(int) Load 8(invocation)
-            2690:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2691: 25(int64_t) Load 2690
-            2692: 25(int64_t) GroupNonUniformSMax 42 ExclusiveScan 2691
-            2693:   2244(ptr) AccessChain 34(data) 2689 2243 38
-                              Store 2693 2692
-            2694:      6(int) Load 8(invocation)
-            2695:   2251(ptr) AccessChain 34(data) 46 2243
-            2696: 26(i64vec4) Load 2695
-            2697:2250(i64vec2) VectorShuffle 2696 2696 0 1
-            2698:2250(i64vec2) GroupNonUniformSMax 42 ExclusiveScan 2697
-            2699:   2251(ptr) AccessChain 34(data) 2694 2243
-            2700: 26(i64vec4) Load 2699
-            2701: 26(i64vec4) VectorShuffle 2700 2698 4 5 2 3
-                              Store 2699 2701
-            2702:      6(int) Load 8(invocation)
-            2703:   2251(ptr) AccessChain 34(data) 57 2243
-            2704: 26(i64vec4) Load 2703
-            2705:2260(i64vec3) VectorShuffle 2704 2704 0 1 2
-            2706:2260(i64vec3) GroupNonUniformSMax 42 ExclusiveScan 2705
-            2707:   2251(ptr) AccessChain 34(data) 2702 2243
-            2708: 26(i64vec4) Load 2707
-            2709: 26(i64vec4) VectorShuffle 2708 2706 4 5 6 3
-                              Store 2707 2709
+            2690:   2589(ptr) AccessChain 34(data) 59 2581
+            2691: 26(i64vec4) Load 2690
+            2692:2599(i64vec3) VectorShuffle 2691 2691 0 1 2
+            2693:2599(i64vec3) GroupNonUniformSMax 42 Reduce 2692
+            2694:   2582(ptr) AccessChain 34(data) 2689 2581 38
+            2695: 25(int64_t) CompositeExtract 2693 0
+                              Store 2694 2695
+            2696:   2582(ptr) AccessChain 34(data) 2689 2581 55
+            2697: 25(int64_t) CompositeExtract 2693 1
+                              Store 2696 2697
+            2698:   2582(ptr) AccessChain 34(data) 2689 2581 69
+            2699: 25(int64_t) CompositeExtract 2693 2
+                              Store 2698 2699
+            2700:      6(int) Load 8(invocation)
+            2701:   2589(ptr) AccessChain 34(data) 73 2581
+            2702: 26(i64vec4) Load 2701
+            2703: 26(i64vec4) GroupNonUniformSMax 42 Reduce 2702
+            2704:   2589(ptr) AccessChain 34(data) 2700 2581
+                              Store 2704 2703
+            2705:      6(int) Load 8(invocation)
+            2706:   2582(ptr) AccessChain 34(data) 37 2581 38
+            2707: 25(int64_t) Load 2706
+            2708: 25(int64_t) GroupNonUniformBitwiseAnd 42 Reduce 2707
+            2709:   2582(ptr) AccessChain 34(data) 2705 2581 38
+                              Store 2709 2708
             2710:      6(int) Load 8(invocation)
-            2711:   2251(ptr) AccessChain 34(data) 67 2243
+            2711:   2589(ptr) AccessChain 34(data) 46 2581
             2712: 26(i64vec4) Load 2711
-            2713: 26(i64vec4) GroupNonUniformSMax 42 ExclusiveScan 2712
-            2714:   2251(ptr) AccessChain 34(data) 2710 2243
-                              Store 2714 2713
-            2715:      6(int) Load 8(invocation)
-            2716:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2717: 25(int64_t) Load 2716
-            2718: 25(int64_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2717
-            2719:   2244(ptr) AccessChain 34(data) 2715 2243 38
-                              Store 2719 2718
-            2720:      6(int) Load 8(invocation)
-            2721:   2251(ptr) AccessChain 34(data) 46 2243
-            2722: 26(i64vec4) Load 2721
-            2723:2250(i64vec2) VectorShuffle 2722 2722 0 1
-            2724:2250(i64vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2723
-            2725:   2251(ptr) AccessChain 34(data) 2720 2243
-            2726: 26(i64vec4) Load 2725
-            2727: 26(i64vec4) VectorShuffle 2726 2724 4 5 2 3
-                              Store 2725 2727
-            2728:      6(int) Load 8(invocation)
-            2729:   2251(ptr) AccessChain 34(data) 57 2243
-            2730: 26(i64vec4) Load 2729
-            2731:2260(i64vec3) VectorShuffle 2730 2730 0 1 2
-            2732:2260(i64vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2731
-            2733:   2251(ptr) AccessChain 34(data) 2728 2243
-            2734: 26(i64vec4) Load 2733
-            2735: 26(i64vec4) VectorShuffle 2734 2732 4 5 6 3
-                              Store 2733 2735
-            2736:      6(int) Load 8(invocation)
-            2737:   2251(ptr) AccessChain 34(data) 67 2243
-            2738: 26(i64vec4) Load 2737
-            2739: 26(i64vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 2738
-            2740:   2251(ptr) AccessChain 34(data) 2736 2243
-                              Store 2740 2739
-            2741:      6(int) Load 8(invocation)
-            2742:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2743: 25(int64_t) Load 2742
-            2744: 25(int64_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 2743
-            2745:   2244(ptr) AccessChain 34(data) 2741 2243 38
-                              Store 2745 2744
-            2746:      6(int) Load 8(invocation)
-            2747:   2251(ptr) AccessChain 34(data) 46 2243
-            2748: 26(i64vec4) Load 2747
-            2749:2250(i64vec2) VectorShuffle 2748 2748 0 1
-            2750:2250(i64vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 2749
-            2751:   2251(ptr) AccessChain 34(data) 2746 2243
-            2752: 26(i64vec4) Load 2751
-            2753: 26(i64vec4) VectorShuffle 2752 2750 4 5 2 3
-                              Store 2751 2753
-            2754:      6(int) Load 8(invocation)
-            2755:   2251(ptr) AccessChain 34(data) 57 2243
-            2756: 26(i64vec4) Load 2755
-            2757:2260(i64vec3) VectorShuffle 2756 2756 0 1 2
-            2758:2260(i64vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 2757
-            2759:   2251(ptr) AccessChain 34(data) 2754 2243
-            2760: 26(i64vec4) Load 2759
-            2761: 26(i64vec4) VectorShuffle 2760 2758 4 5 6 3
-                              Store 2759 2761
-            2762:      6(int) Load 8(invocation)
-            2763:   2251(ptr) AccessChain 34(data) 67 2243
-            2764: 26(i64vec4) Load 2763
-            2765: 26(i64vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 2764
-            2766:   2251(ptr) AccessChain 34(data) 2762 2243
-                              Store 2766 2765
-            2767:      6(int) Load 8(invocation)
-            2768:   2244(ptr) AccessChain 34(data) 37 2243 38
-            2769: 25(int64_t) Load 2768
-            2770: 25(int64_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 2769
-            2771:   2244(ptr) AccessChain 34(data) 2767 2243 38
-                              Store 2771 2770
-            2772:      6(int) Load 8(invocation)
-            2773:   2251(ptr) AccessChain 34(data) 46 2243
-            2774: 26(i64vec4) Load 2773
-            2775:2250(i64vec2) VectorShuffle 2774 2774 0 1
-            2776:2250(i64vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 2775
-            2777:   2251(ptr) AccessChain 34(data) 2772 2243
-            2778: 26(i64vec4) Load 2777
-            2779: 26(i64vec4) VectorShuffle 2778 2776 4 5 2 3
-                              Store 2777 2779
-            2780:      6(int) Load 8(invocation)
-            2781:   2251(ptr) AccessChain 34(data) 57 2243
-            2782: 26(i64vec4) Load 2781
-            2783:2260(i64vec3) VectorShuffle 2782 2782 0 1 2
-            2784:2260(i64vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 2783
-            2785:   2251(ptr) AccessChain 34(data) 2780 2243
-            2786: 26(i64vec4) Load 2785
-            2787: 26(i64vec4) VectorShuffle 2786 2784 4 5 6 3
-                              Store 2785 2787
-            2788:      6(int) Load 8(invocation)
-            2789:   2251(ptr) AccessChain 34(data) 67 2243
-            2790: 26(i64vec4) Load 2789
-            2791: 26(i64vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 2790
-            2792:   2251(ptr) AccessChain 34(data) 2788 2243
-                              Store 2792 2791
-            2793:      6(int) Load 8(invocation)
-            2796:   2795(ptr) AccessChain 34(data) 37 2794 38
-            2797: 27(int64_t) Load 2796
-            2798: 27(int64_t) GroupNonUniformIAdd 42 Reduce 2797
-            2799:   2795(ptr) AccessChain 34(data) 2793 2794 38
+            2713:2588(i64vec2) VectorShuffle 2712 2712 0 1
+            2714:2588(i64vec2) GroupNonUniformBitwiseAnd 42 Reduce 2713
+            2715:   2582(ptr) AccessChain 34(data) 2710 2581 38
+            2716: 25(int64_t) CompositeExtract 2714 0
+                              Store 2715 2716
+            2717:   2582(ptr) AccessChain 34(data) 2710 2581 55
+            2718: 25(int64_t) CompositeExtract 2714 1
+                              Store 2717 2718
+            2719:      6(int) Load 8(invocation)
+            2720:   2589(ptr) AccessChain 34(data) 59 2581
+            2721: 26(i64vec4) Load 2720
+            2722:2599(i64vec3) VectorShuffle 2721 2721 0 1 2
+            2723:2599(i64vec3) GroupNonUniformBitwiseAnd 42 Reduce 2722
+            2724:   2582(ptr) AccessChain 34(data) 2719 2581 38
+            2725: 25(int64_t) CompositeExtract 2723 0
+                              Store 2724 2725
+            2726:   2582(ptr) AccessChain 34(data) 2719 2581 55
+            2727: 25(int64_t) CompositeExtract 2723 1
+                              Store 2726 2727
+            2728:   2582(ptr) AccessChain 34(data) 2719 2581 69
+            2729: 25(int64_t) CompositeExtract 2723 2
+                              Store 2728 2729
+            2730:      6(int) Load 8(invocation)
+            2731:   2589(ptr) AccessChain 34(data) 73 2581
+            2732: 26(i64vec4) Load 2731
+            2733: 26(i64vec4) GroupNonUniformBitwiseAnd 42 Reduce 2732
+            2734:   2589(ptr) AccessChain 34(data) 2730 2581
+                              Store 2734 2733
+            2735:      6(int) Load 8(invocation)
+            2736:   2582(ptr) AccessChain 34(data) 37 2581 38
+            2737: 25(int64_t) Load 2736
+            2738: 25(int64_t) GroupNonUniformBitwiseOr 42 Reduce 2737
+            2739:   2582(ptr) AccessChain 34(data) 2735 2581 38
+                              Store 2739 2738
+            2740:      6(int) Load 8(invocation)
+            2741:   2589(ptr) AccessChain 34(data) 46 2581
+            2742: 26(i64vec4) Load 2741
+            2743:2588(i64vec2) VectorShuffle 2742 2742 0 1
+            2744:2588(i64vec2) GroupNonUniformBitwiseOr 42 Reduce 2743
+            2745:   2582(ptr) AccessChain 34(data) 2740 2581 38
+            2746: 25(int64_t) CompositeExtract 2744 0
+                              Store 2745 2746
+            2747:   2582(ptr) AccessChain 34(data) 2740 2581 55
+            2748: 25(int64_t) CompositeExtract 2744 1
+                              Store 2747 2748
+            2749:      6(int) Load 8(invocation)
+            2750:   2589(ptr) AccessChain 34(data) 59 2581
+            2751: 26(i64vec4) Load 2750
+            2752:2599(i64vec3) VectorShuffle 2751 2751 0 1 2
+            2753:2599(i64vec3) GroupNonUniformBitwiseOr 42 Reduce 2752
+            2754:   2582(ptr) AccessChain 34(data) 2749 2581 38
+            2755: 25(int64_t) CompositeExtract 2753 0
+                              Store 2754 2755
+            2756:   2582(ptr) AccessChain 34(data) 2749 2581 55
+            2757: 25(int64_t) CompositeExtract 2753 1
+                              Store 2756 2757
+            2758:   2582(ptr) AccessChain 34(data) 2749 2581 69
+            2759: 25(int64_t) CompositeExtract 2753 2
+                              Store 2758 2759
+            2760:      6(int) Load 8(invocation)
+            2761:   2589(ptr) AccessChain 34(data) 73 2581
+            2762: 26(i64vec4) Load 2761
+            2763: 26(i64vec4) GroupNonUniformBitwiseOr 42 Reduce 2762
+            2764:   2589(ptr) AccessChain 34(data) 2760 2581
+                              Store 2764 2763
+            2765:      6(int) Load 8(invocation)
+            2766:   2582(ptr) AccessChain 34(data) 37 2581 38
+            2767: 25(int64_t) Load 2766
+            2768: 25(int64_t) GroupNonUniformBitwiseXor 42 Reduce 2767
+            2769:   2582(ptr) AccessChain 34(data) 2765 2581 38
+                              Store 2769 2768
+            2770:      6(int) Load 8(invocation)
+            2771:   2589(ptr) AccessChain 34(data) 46 2581
+            2772: 26(i64vec4) Load 2771
+            2773:2588(i64vec2) VectorShuffle 2772 2772 0 1
+            2774:2588(i64vec2) GroupNonUniformBitwiseXor 42 Reduce 2773
+            2775:   2582(ptr) AccessChain 34(data) 2770 2581 38
+            2776: 25(int64_t) CompositeExtract 2774 0
+                              Store 2775 2776
+            2777:   2582(ptr) AccessChain 34(data) 2770 2581 55
+            2778: 25(int64_t) CompositeExtract 2774 1
+                              Store 2777 2778
+            2779:      6(int) Load 8(invocation)
+            2780:   2589(ptr) AccessChain 34(data) 59 2581
+            2781: 26(i64vec4) Load 2780
+            2782:2599(i64vec3) VectorShuffle 2781 2781 0 1 2
+            2783:2599(i64vec3) GroupNonUniformBitwiseXor 42 Reduce 2782
+            2784:   2582(ptr) AccessChain 34(data) 2779 2581 38
+            2785: 25(int64_t) CompositeExtract 2783 0
+                              Store 2784 2785
+            2786:   2582(ptr) AccessChain 34(data) 2779 2581 55
+            2787: 25(int64_t) CompositeExtract 2783 1
+                              Store 2786 2787
+            2788:   2582(ptr) AccessChain 34(data) 2779 2581 69
+            2789: 25(int64_t) CompositeExtract 2783 2
+                              Store 2788 2789
+            2790:      6(int) Load 8(invocation)
+            2791:   2589(ptr) AccessChain 34(data) 73 2581
+            2792: 26(i64vec4) Load 2791
+            2793: 26(i64vec4) GroupNonUniformBitwiseXor 42 Reduce 2792
+            2794:   2589(ptr) AccessChain 34(data) 2790 2581
+                              Store 2794 2793
+            2795:      6(int) Load 8(invocation)
+            2796:   2582(ptr) AccessChain 34(data) 37 2581 38
+            2797: 25(int64_t) Load 2796
+            2798: 25(int64_t) GroupNonUniformIAdd 42 InclusiveScan 2797
+            2799:   2582(ptr) AccessChain 34(data) 2795 2581 38
                               Store 2799 2798
             2800:      6(int) Load 8(invocation)
-            2803:   2802(ptr) AccessChain 34(data) 46 2794
-            2804: 28(i64vec4) Load 2803
-            2805:2801(i64vec2) VectorShuffle 2804 2804 0 1
-            2806:2801(i64vec2) GroupNonUniformIAdd 42 Reduce 2805
-            2807:   2802(ptr) AccessChain 34(data) 2800 2794
-            2808: 28(i64vec4) Load 2807
-            2809: 28(i64vec4) VectorShuffle 2808 2806 4 5 2 3
-                              Store 2807 2809
-            2810:      6(int) Load 8(invocation)
-            2812:   2802(ptr) AccessChain 34(data) 57 2794
-            2813: 28(i64vec4) Load 2812
-            2814:2811(i64vec3) VectorShuffle 2813 2813 0 1 2
-            2815:2811(i64vec3) GroupNonUniformIAdd 42 Reduce 2814
-            2816:   2802(ptr) AccessChain 34(data) 2810 2794
-            2817: 28(i64vec4) Load 2816
-            2818: 28(i64vec4) VectorShuffle 2817 2815 4 5 6 3
-                              Store 2816 2818
-            2819:      6(int) Load 8(invocation)
-            2820:   2802(ptr) AccessChain 34(data) 67 2794
-            2821: 28(i64vec4) Load 2820
-            2822: 28(i64vec4) GroupNonUniformIAdd 42 Reduce 2821
-            2823:   2802(ptr) AccessChain 34(data) 2819 2794
-                              Store 2823 2822
-            2824:      6(int) Load 8(invocation)
-            2825:   2795(ptr) AccessChain 34(data) 37 2794 38
-            2826: 27(int64_t) Load 2825
-            2827: 27(int64_t) GroupNonUniformIMul 42 Reduce 2826
-            2828:   2795(ptr) AccessChain 34(data) 2824 2794 38
-                              Store 2828 2827
-            2829:      6(int) Load 8(invocation)
-            2830:   2802(ptr) AccessChain 34(data) 46 2794
-            2831: 28(i64vec4) Load 2830
-            2832:2801(i64vec2) VectorShuffle 2831 2831 0 1
-            2833:2801(i64vec2) GroupNonUniformIMul 42 Reduce 2832
-            2834:   2802(ptr) AccessChain 34(data) 2829 2794
-            2835: 28(i64vec4) Load 2834
-            2836: 28(i64vec4) VectorShuffle 2835 2833 4 5 2 3
-                              Store 2834 2836
-            2837:      6(int) Load 8(invocation)
-            2838:   2802(ptr) AccessChain 34(data) 57 2794
-            2839: 28(i64vec4) Load 2838
-            2840:2811(i64vec3) VectorShuffle 2839 2839 0 1 2
-            2841:2811(i64vec3) GroupNonUniformIMul 42 Reduce 2840
-            2842:   2802(ptr) AccessChain 34(data) 2837 2794
-            2843: 28(i64vec4) Load 2842
-            2844: 28(i64vec4) VectorShuffle 2843 2841 4 5 6 3
-                              Store 2842 2844
-            2845:      6(int) Load 8(invocation)
-            2846:   2802(ptr) AccessChain 34(data) 67 2794
-            2847: 28(i64vec4) Load 2846
-            2848: 28(i64vec4) GroupNonUniformIMul 42 Reduce 2847
-            2849:   2802(ptr) AccessChain 34(data) 2845 2794
-                              Store 2849 2848
+            2801:   2589(ptr) AccessChain 34(data) 46 2581
+            2802: 26(i64vec4) Load 2801
+            2803:2588(i64vec2) VectorShuffle 2802 2802 0 1
+            2804:2588(i64vec2) GroupNonUniformIAdd 42 InclusiveScan 2803
+            2805:   2582(ptr) AccessChain 34(data) 2800 2581 38
+            2806: 25(int64_t) CompositeExtract 2804 0
+                              Store 2805 2806
+            2807:   2582(ptr) AccessChain 34(data) 2800 2581 55
+            2808: 25(int64_t) CompositeExtract 2804 1
+                              Store 2807 2808
+            2809:      6(int) Load 8(invocation)
+            2810:   2589(ptr) AccessChain 34(data) 59 2581
+            2811: 26(i64vec4) Load 2810
+            2812:2599(i64vec3) VectorShuffle 2811 2811 0 1 2
+            2813:2599(i64vec3) GroupNonUniformIAdd 42 InclusiveScan 2812
+            2814:   2582(ptr) AccessChain 34(data) 2809 2581 38
+            2815: 25(int64_t) CompositeExtract 2813 0
+                              Store 2814 2815
+            2816:   2582(ptr) AccessChain 34(data) 2809 2581 55
+            2817: 25(int64_t) CompositeExtract 2813 1
+                              Store 2816 2817
+            2818:   2582(ptr) AccessChain 34(data) 2809 2581 69
+            2819: 25(int64_t) CompositeExtract 2813 2
+                              Store 2818 2819
+            2820:      6(int) Load 8(invocation)
+            2821:   2589(ptr) AccessChain 34(data) 73 2581
+            2822: 26(i64vec4) Load 2821
+            2823: 26(i64vec4) GroupNonUniformIAdd 42 InclusiveScan 2822
+            2824:   2589(ptr) AccessChain 34(data) 2820 2581
+                              Store 2824 2823
+            2825:      6(int) Load 8(invocation)
+            2826:   2582(ptr) AccessChain 34(data) 37 2581 38
+            2827: 25(int64_t) Load 2826
+            2828: 25(int64_t) GroupNonUniformIMul 42 InclusiveScan 2827
+            2829:   2582(ptr) AccessChain 34(data) 2825 2581 38
+                              Store 2829 2828
+            2830:      6(int) Load 8(invocation)
+            2831:   2589(ptr) AccessChain 34(data) 46 2581
+            2832: 26(i64vec4) Load 2831
+            2833:2588(i64vec2) VectorShuffle 2832 2832 0 1
+            2834:2588(i64vec2) GroupNonUniformIMul 42 InclusiveScan 2833
+            2835:   2582(ptr) AccessChain 34(data) 2830 2581 38
+            2836: 25(int64_t) CompositeExtract 2834 0
+                              Store 2835 2836
+            2837:   2582(ptr) AccessChain 34(data) 2830 2581 55
+            2838: 25(int64_t) CompositeExtract 2834 1
+                              Store 2837 2838
+            2839:      6(int) Load 8(invocation)
+            2840:   2589(ptr) AccessChain 34(data) 59 2581
+            2841: 26(i64vec4) Load 2840
+            2842:2599(i64vec3) VectorShuffle 2841 2841 0 1 2
+            2843:2599(i64vec3) GroupNonUniformIMul 42 InclusiveScan 2842
+            2844:   2582(ptr) AccessChain 34(data) 2839 2581 38
+            2845: 25(int64_t) CompositeExtract 2843 0
+                              Store 2844 2845
+            2846:   2582(ptr) AccessChain 34(data) 2839 2581 55
+            2847: 25(int64_t) CompositeExtract 2843 1
+                              Store 2846 2847
+            2848:   2582(ptr) AccessChain 34(data) 2839 2581 69
+            2849: 25(int64_t) CompositeExtract 2843 2
+                              Store 2848 2849
             2850:      6(int) Load 8(invocation)
-            2851:   2795(ptr) AccessChain 34(data) 37 2794 38
-            2852: 27(int64_t) Load 2851
-            2853: 27(int64_t) GroupNonUniformUMin 42 Reduce 2852
-            2854:   2795(ptr) AccessChain 34(data) 2850 2794 38
+            2851:   2589(ptr) AccessChain 34(data) 73 2581
+            2852: 26(i64vec4) Load 2851
+            2853: 26(i64vec4) GroupNonUniformIMul 42 InclusiveScan 2852
+            2854:   2589(ptr) AccessChain 34(data) 2850 2581
                               Store 2854 2853
             2855:      6(int) Load 8(invocation)
-            2856:   2802(ptr) AccessChain 34(data) 46 2794
-            2857: 28(i64vec4) Load 2856
-            2858:2801(i64vec2) VectorShuffle 2857 2857 0 1
-            2859:2801(i64vec2) GroupNonUniformUMin 42 Reduce 2858
-            2860:   2802(ptr) AccessChain 34(data) 2855 2794
-            2861: 28(i64vec4) Load 2860
-            2862: 28(i64vec4) VectorShuffle 2861 2859 4 5 2 3
-                              Store 2860 2862
-            2863:      6(int) Load 8(invocation)
-            2864:   2802(ptr) AccessChain 34(data) 57 2794
-            2865: 28(i64vec4) Load 2864
-            2866:2811(i64vec3) VectorShuffle 2865 2865 0 1 2
-            2867:2811(i64vec3) GroupNonUniformUMin 42 Reduce 2866
-            2868:   2802(ptr) AccessChain 34(data) 2863 2794
-            2869: 28(i64vec4) Load 2868
-            2870: 28(i64vec4) VectorShuffle 2869 2867 4 5 6 3
-                              Store 2868 2870
-            2871:      6(int) Load 8(invocation)
-            2872:   2802(ptr) AccessChain 34(data) 67 2794
-            2873: 28(i64vec4) Load 2872
-            2874: 28(i64vec4) GroupNonUniformUMin 42 Reduce 2873
-            2875:   2802(ptr) AccessChain 34(data) 2871 2794
-                              Store 2875 2874
-            2876:      6(int) Load 8(invocation)
-            2877:   2795(ptr) AccessChain 34(data) 37 2794 38
-            2878: 27(int64_t) Load 2877
-            2879: 27(int64_t) GroupNonUniformUMax 42 Reduce 2878
-            2880:   2795(ptr) AccessChain 34(data) 2876 2794 38
-                              Store 2880 2879
-            2881:      6(int) Load 8(invocation)
-            2882:   2802(ptr) AccessChain 34(data) 46 2794
-            2883: 28(i64vec4) Load 2882
-            2884:2801(i64vec2) VectorShuffle 2883 2883 0 1
-            2885:2801(i64vec2) GroupNonUniformUMax 42 Reduce 2884
-            2886:   2802(ptr) AccessChain 34(data) 2881 2794
-            2887: 28(i64vec4) Load 2886
-            2888: 28(i64vec4) VectorShuffle 2887 2885 4 5 2 3
-                              Store 2886 2888
-            2889:      6(int) Load 8(invocation)
-            2890:   2802(ptr) AccessChain 34(data) 57 2794
-            2891: 28(i64vec4) Load 2890
-            2892:2811(i64vec3) VectorShuffle 2891 2891 0 1 2
-            2893:2811(i64vec3) GroupNonUniformUMax 42 Reduce 2892
-            2894:   2802(ptr) AccessChain 34(data) 2889 2794
-            2895: 28(i64vec4) Load 2894
-            2896: 28(i64vec4) VectorShuffle 2895 2893 4 5 6 3
-                              Store 2894 2896
-            2897:      6(int) Load 8(invocation)
-            2898:   2802(ptr) AccessChain 34(data) 67 2794
-            2899: 28(i64vec4) Load 2898
-            2900: 28(i64vec4) GroupNonUniformUMax 42 Reduce 2899
-            2901:   2802(ptr) AccessChain 34(data) 2897 2794
-                              Store 2901 2900
-            2902:      6(int) Load 8(invocation)
-            2903:   2795(ptr) AccessChain 34(data) 37 2794 38
-            2904: 27(int64_t) Load 2903
-            2905: 27(int64_t) GroupNonUniformBitwiseAnd 42 Reduce 2904
-            2906:   2795(ptr) AccessChain 34(data) 2902 2794 38
-                              Store 2906 2905
-            2907:      6(int) Load 8(invocation)
-            2908:   2802(ptr) AccessChain 34(data) 46 2794
-            2909: 28(i64vec4) Load 2908
-            2910:2801(i64vec2) VectorShuffle 2909 2909 0 1
-            2911:2801(i64vec2) GroupNonUniformBitwiseAnd 42 Reduce 2910
-            2912:   2802(ptr) AccessChain 34(data) 2907 2794
-            2913: 28(i64vec4) Load 2912
-            2914: 28(i64vec4) VectorShuffle 2913 2911 4 5 2 3
-                              Store 2912 2914
+            2856:   2582(ptr) AccessChain 34(data) 37 2581 38
+            2857: 25(int64_t) Load 2856
+            2858: 25(int64_t) GroupNonUniformSMin 42 InclusiveScan 2857
+            2859:   2582(ptr) AccessChain 34(data) 2855 2581 38
+                              Store 2859 2858
+            2860:      6(int) Load 8(invocation)
+            2861:   2589(ptr) AccessChain 34(data) 46 2581
+            2862: 26(i64vec4) Load 2861
+            2863:2588(i64vec2) VectorShuffle 2862 2862 0 1
+            2864:2588(i64vec2) GroupNonUniformSMin 42 InclusiveScan 2863
+            2865:   2582(ptr) AccessChain 34(data) 2860 2581 38
+            2866: 25(int64_t) CompositeExtract 2864 0
+                              Store 2865 2866
+            2867:   2582(ptr) AccessChain 34(data) 2860 2581 55
+            2868: 25(int64_t) CompositeExtract 2864 1
+                              Store 2867 2868
+            2869:      6(int) Load 8(invocation)
+            2870:   2589(ptr) AccessChain 34(data) 59 2581
+            2871: 26(i64vec4) Load 2870
+            2872:2599(i64vec3) VectorShuffle 2871 2871 0 1 2
+            2873:2599(i64vec3) GroupNonUniformSMin 42 InclusiveScan 2872
+            2874:   2582(ptr) AccessChain 34(data) 2869 2581 38
+            2875: 25(int64_t) CompositeExtract 2873 0
+                              Store 2874 2875
+            2876:   2582(ptr) AccessChain 34(data) 2869 2581 55
+            2877: 25(int64_t) CompositeExtract 2873 1
+                              Store 2876 2877
+            2878:   2582(ptr) AccessChain 34(data) 2869 2581 69
+            2879: 25(int64_t) CompositeExtract 2873 2
+                              Store 2878 2879
+            2880:      6(int) Load 8(invocation)
+            2881:   2589(ptr) AccessChain 34(data) 73 2581
+            2882: 26(i64vec4) Load 2881
+            2883: 26(i64vec4) GroupNonUniformSMin 42 InclusiveScan 2882
+            2884:   2589(ptr) AccessChain 34(data) 2880 2581
+                              Store 2884 2883
+            2885:      6(int) Load 8(invocation)
+            2886:   2582(ptr) AccessChain 34(data) 37 2581 38
+            2887: 25(int64_t) Load 2886
+            2888: 25(int64_t) GroupNonUniformSMax 42 InclusiveScan 2887
+            2889:   2582(ptr) AccessChain 34(data) 2885 2581 38
+                              Store 2889 2888
+            2890:      6(int) Load 8(invocation)
+            2891:   2589(ptr) AccessChain 34(data) 46 2581
+            2892: 26(i64vec4) Load 2891
+            2893:2588(i64vec2) VectorShuffle 2892 2892 0 1
+            2894:2588(i64vec2) GroupNonUniformSMax 42 InclusiveScan 2893
+            2895:   2582(ptr) AccessChain 34(data) 2890 2581 38
+            2896: 25(int64_t) CompositeExtract 2894 0
+                              Store 2895 2896
+            2897:   2582(ptr) AccessChain 34(data) 2890 2581 55
+            2898: 25(int64_t) CompositeExtract 2894 1
+                              Store 2897 2898
+            2899:      6(int) Load 8(invocation)
+            2900:   2589(ptr) AccessChain 34(data) 59 2581
+            2901: 26(i64vec4) Load 2900
+            2902:2599(i64vec3) VectorShuffle 2901 2901 0 1 2
+            2903:2599(i64vec3) GroupNonUniformSMax 42 InclusiveScan 2902
+            2904:   2582(ptr) AccessChain 34(data) 2899 2581 38
+            2905: 25(int64_t) CompositeExtract 2903 0
+                              Store 2904 2905
+            2906:   2582(ptr) AccessChain 34(data) 2899 2581 55
+            2907: 25(int64_t) CompositeExtract 2903 1
+                              Store 2906 2907
+            2908:   2582(ptr) AccessChain 34(data) 2899 2581 69
+            2909: 25(int64_t) CompositeExtract 2903 2
+                              Store 2908 2909
+            2910:      6(int) Load 8(invocation)
+            2911:   2589(ptr) AccessChain 34(data) 73 2581
+            2912: 26(i64vec4) Load 2911
+            2913: 26(i64vec4) GroupNonUniformSMax 42 InclusiveScan 2912
+            2914:   2589(ptr) AccessChain 34(data) 2910 2581
+                              Store 2914 2913
             2915:      6(int) Load 8(invocation)
-            2916:   2802(ptr) AccessChain 34(data) 57 2794
-            2917: 28(i64vec4) Load 2916
-            2918:2811(i64vec3) VectorShuffle 2917 2917 0 1 2
-            2919:2811(i64vec3) GroupNonUniformBitwiseAnd 42 Reduce 2918
-            2920:   2802(ptr) AccessChain 34(data) 2915 2794
-            2921: 28(i64vec4) Load 2920
-            2922: 28(i64vec4) VectorShuffle 2921 2919 4 5 6 3
-                              Store 2920 2922
-            2923:      6(int) Load 8(invocation)
-            2924:   2802(ptr) AccessChain 34(data) 67 2794
-            2925: 28(i64vec4) Load 2924
-            2926: 28(i64vec4) GroupNonUniformBitwiseAnd 42 Reduce 2925
-            2927:   2802(ptr) AccessChain 34(data) 2923 2794
-                              Store 2927 2926
-            2928:      6(int) Load 8(invocation)
-            2929:   2795(ptr) AccessChain 34(data) 37 2794 38
-            2930: 27(int64_t) Load 2929
-            2931: 27(int64_t) GroupNonUniformBitwiseOr 42 Reduce 2930
-            2932:   2795(ptr) AccessChain 34(data) 2928 2794 38
-                              Store 2932 2931
-            2933:      6(int) Load 8(invocation)
-            2934:   2802(ptr) AccessChain 34(data) 46 2794
-            2935: 28(i64vec4) Load 2934
-            2936:2801(i64vec2) VectorShuffle 2935 2935 0 1
-            2937:2801(i64vec2) GroupNonUniformBitwiseOr 42 Reduce 2936
-            2938:   2802(ptr) AccessChain 34(data) 2933 2794
-            2939: 28(i64vec4) Load 2938
-            2940: 28(i64vec4) VectorShuffle 2939 2937 4 5 2 3
-                              Store 2938 2940
-            2941:      6(int) Load 8(invocation)
-            2942:   2802(ptr) AccessChain 34(data) 57 2794
-            2943: 28(i64vec4) Load 2942
-            2944:2811(i64vec3) VectorShuffle 2943 2943 0 1 2
-            2945:2811(i64vec3) GroupNonUniformBitwiseOr 42 Reduce 2944
-            2946:   2802(ptr) AccessChain 34(data) 2941 2794
-            2947: 28(i64vec4) Load 2946
-            2948: 28(i64vec4) VectorShuffle 2947 2945 4 5 6 3
-                              Store 2946 2948
-            2949:      6(int) Load 8(invocation)
-            2950:   2802(ptr) AccessChain 34(data) 67 2794
-            2951: 28(i64vec4) Load 2950
-            2952: 28(i64vec4) GroupNonUniformBitwiseOr 42 Reduce 2951
-            2953:   2802(ptr) AccessChain 34(data) 2949 2794
-                              Store 2953 2952
-            2954:      6(int) Load 8(invocation)
-            2955:   2795(ptr) AccessChain 34(data) 37 2794 38
-            2956: 27(int64_t) Load 2955
-            2957: 27(int64_t) GroupNonUniformBitwiseXor 42 Reduce 2956
-            2958:   2795(ptr) AccessChain 34(data) 2954 2794 38
-                              Store 2958 2957
+            2916:   2582(ptr) AccessChain 34(data) 37 2581 38
+            2917: 25(int64_t) Load 2916
+            2918: 25(int64_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 2917
+            2919:   2582(ptr) AccessChain 34(data) 2915 2581 38
+                              Store 2919 2918
+            2920:      6(int) Load 8(invocation)
+            2921:   2589(ptr) AccessChain 34(data) 46 2581
+            2922: 26(i64vec4) Load 2921
+            2923:2588(i64vec2) VectorShuffle 2922 2922 0 1
+            2924:2588(i64vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 2923
+            2925:   2582(ptr) AccessChain 34(data) 2920 2581 38
+            2926: 25(int64_t) CompositeExtract 2924 0
+                              Store 2925 2926
+            2927:   2582(ptr) AccessChain 34(data) 2920 2581 55
+            2928: 25(int64_t) CompositeExtract 2924 1
+                              Store 2927 2928
+            2929:      6(int) Load 8(invocation)
+            2930:   2589(ptr) AccessChain 34(data) 59 2581
+            2931: 26(i64vec4) Load 2930
+            2932:2599(i64vec3) VectorShuffle 2931 2931 0 1 2
+            2933:2599(i64vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 2932
+            2934:   2582(ptr) AccessChain 34(data) 2929 2581 38
+            2935: 25(int64_t) CompositeExtract 2933 0
+                              Store 2934 2935
+            2936:   2582(ptr) AccessChain 34(data) 2929 2581 55
+            2937: 25(int64_t) CompositeExtract 2933 1
+                              Store 2936 2937
+            2938:   2582(ptr) AccessChain 34(data) 2929 2581 69
+            2939: 25(int64_t) CompositeExtract 2933 2
+                              Store 2938 2939
+            2940:      6(int) Load 8(invocation)
+            2941:   2589(ptr) AccessChain 34(data) 73 2581
+            2942: 26(i64vec4) Load 2941
+            2943: 26(i64vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 2942
+            2944:   2589(ptr) AccessChain 34(data) 2940 2581
+                              Store 2944 2943
+            2945:      6(int) Load 8(invocation)
+            2946:   2582(ptr) AccessChain 34(data) 37 2581 38
+            2947: 25(int64_t) Load 2946
+            2948: 25(int64_t) GroupNonUniformBitwiseOr 42 InclusiveScan 2947
+            2949:   2582(ptr) AccessChain 34(data) 2945 2581 38
+                              Store 2949 2948
+            2950:      6(int) Load 8(invocation)
+            2951:   2589(ptr) AccessChain 34(data) 46 2581
+            2952: 26(i64vec4) Load 2951
+            2953:2588(i64vec2) VectorShuffle 2952 2952 0 1
+            2954:2588(i64vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 2953
+            2955:   2582(ptr) AccessChain 34(data) 2950 2581 38
+            2956: 25(int64_t) CompositeExtract 2954 0
+                              Store 2955 2956
+            2957:   2582(ptr) AccessChain 34(data) 2950 2581 55
+            2958: 25(int64_t) CompositeExtract 2954 1
+                              Store 2957 2958
             2959:      6(int) Load 8(invocation)
-            2960:   2802(ptr) AccessChain 34(data) 46 2794
-            2961: 28(i64vec4) Load 2960
-            2962:2801(i64vec2) VectorShuffle 2961 2961 0 1
-            2963:2801(i64vec2) GroupNonUniformBitwiseXor 42 Reduce 2962
-            2964:   2802(ptr) AccessChain 34(data) 2959 2794
-            2965: 28(i64vec4) Load 2964
-            2966: 28(i64vec4) VectorShuffle 2965 2963 4 5 2 3
-                              Store 2964 2966
-            2967:      6(int) Load 8(invocation)
-            2968:   2802(ptr) AccessChain 34(data) 57 2794
-            2969: 28(i64vec4) Load 2968
-            2970:2811(i64vec3) VectorShuffle 2969 2969 0 1 2
-            2971:2811(i64vec3) GroupNonUniformBitwiseXor 42 Reduce 2970
-            2972:   2802(ptr) AccessChain 34(data) 2967 2794
-            2973: 28(i64vec4) Load 2972
-            2974: 28(i64vec4) VectorShuffle 2973 2971 4 5 6 3
-                              Store 2972 2974
+            2960:   2589(ptr) AccessChain 34(data) 59 2581
+            2961: 26(i64vec4) Load 2960
+            2962:2599(i64vec3) VectorShuffle 2961 2961 0 1 2
+            2963:2599(i64vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 2962
+            2964:   2582(ptr) AccessChain 34(data) 2959 2581 38
+            2965: 25(int64_t) CompositeExtract 2963 0
+                              Store 2964 2965
+            2966:   2582(ptr) AccessChain 34(data) 2959 2581 55
+            2967: 25(int64_t) CompositeExtract 2963 1
+                              Store 2966 2967
+            2968:   2582(ptr) AccessChain 34(data) 2959 2581 69
+            2969: 25(int64_t) CompositeExtract 2963 2
+                              Store 2968 2969
+            2970:      6(int) Load 8(invocation)
+            2971:   2589(ptr) AccessChain 34(data) 73 2581
+            2972: 26(i64vec4) Load 2971
+            2973: 26(i64vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 2972
+            2974:   2589(ptr) AccessChain 34(data) 2970 2581
+                              Store 2974 2973
             2975:      6(int) Load 8(invocation)
-            2976:   2802(ptr) AccessChain 34(data) 67 2794
-            2977: 28(i64vec4) Load 2976
-            2978: 28(i64vec4) GroupNonUniformBitwiseXor 42 Reduce 2977
-            2979:   2802(ptr) AccessChain 34(data) 2975 2794
+            2976:   2582(ptr) AccessChain 34(data) 37 2581 38
+            2977: 25(int64_t) Load 2976
+            2978: 25(int64_t) GroupNonUniformBitwiseXor 42 InclusiveScan 2977
+            2979:   2582(ptr) AccessChain 34(data) 2975 2581 38
                               Store 2979 2978
             2980:      6(int) Load 8(invocation)
-            2981:   2795(ptr) AccessChain 34(data) 37 2794 38
-            2982: 27(int64_t) Load 2981
-            2983: 27(int64_t) GroupNonUniformIAdd 42 InclusiveScan 2982
-            2984:   2795(ptr) AccessChain 34(data) 2980 2794 38
-                              Store 2984 2983
-            2985:      6(int) Load 8(invocation)
-            2986:   2802(ptr) AccessChain 34(data) 46 2794
-            2987: 28(i64vec4) Load 2986
-            2988:2801(i64vec2) VectorShuffle 2987 2987 0 1
-            2989:2801(i64vec2) GroupNonUniformIAdd 42 InclusiveScan 2988
-            2990:   2802(ptr) AccessChain 34(data) 2985 2794
-            2991: 28(i64vec4) Load 2990
-            2992: 28(i64vec4) VectorShuffle 2991 2989 4 5 2 3
-                              Store 2990 2992
-            2993:      6(int) Load 8(invocation)
-            2994:   2802(ptr) AccessChain 34(data) 57 2794
-            2995: 28(i64vec4) Load 2994
-            2996:2811(i64vec3) VectorShuffle 2995 2995 0 1 2
-            2997:2811(i64vec3) GroupNonUniformIAdd 42 InclusiveScan 2996
-            2998:   2802(ptr) AccessChain 34(data) 2993 2794
-            2999: 28(i64vec4) Load 2998
-            3000: 28(i64vec4) VectorShuffle 2999 2997 4 5 6 3
-                              Store 2998 3000
-            3001:      6(int) Load 8(invocation)
-            3002:   2802(ptr) AccessChain 34(data) 67 2794
-            3003: 28(i64vec4) Load 3002
-            3004: 28(i64vec4) GroupNonUniformIAdd 42 InclusiveScan 3003
-            3005:   2802(ptr) AccessChain 34(data) 3001 2794
-                              Store 3005 3004
-            3006:      6(int) Load 8(invocation)
-            3007:   2795(ptr) AccessChain 34(data) 37 2794 38
-            3008: 27(int64_t) Load 3007
-            3009: 27(int64_t) GroupNonUniformIMul 42 InclusiveScan 3008
-            3010:   2795(ptr) AccessChain 34(data) 3006 2794 38
-                              Store 3010 3009
-            3011:      6(int) Load 8(invocation)
-            3012:   2802(ptr) AccessChain 34(data) 46 2794
-            3013: 28(i64vec4) Load 3012
-            3014:2801(i64vec2) VectorShuffle 3013 3013 0 1
-            3015:2801(i64vec2) GroupNonUniformIMul 42 InclusiveScan 3014
-            3016:   2802(ptr) AccessChain 34(data) 3011 2794
-            3017: 28(i64vec4) Load 3016
-            3018: 28(i64vec4) VectorShuffle 3017 3015 4 5 2 3
-                              Store 3016 3018
+            2981:   2589(ptr) AccessChain 34(data) 46 2581
+            2982: 26(i64vec4) Load 2981
+            2983:2588(i64vec2) VectorShuffle 2982 2982 0 1
+            2984:2588(i64vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 2983
+            2985:   2582(ptr) AccessChain 34(data) 2980 2581 38
+            2986: 25(int64_t) CompositeExtract 2984 0
+                              Store 2985 2986
+            2987:   2582(ptr) AccessChain 34(data) 2980 2581 55
+            2988: 25(int64_t) CompositeExtract 2984 1
+                              Store 2987 2988
+            2989:      6(int) Load 8(invocation)
+            2990:   2589(ptr) AccessChain 34(data) 59 2581
+            2991: 26(i64vec4) Load 2990
+            2992:2599(i64vec3) VectorShuffle 2991 2991 0 1 2
+            2993:2599(i64vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 2992
+            2994:   2582(ptr) AccessChain 34(data) 2989 2581 38
+            2995: 25(int64_t) CompositeExtract 2993 0
+                              Store 2994 2995
+            2996:   2582(ptr) AccessChain 34(data) 2989 2581 55
+            2997: 25(int64_t) CompositeExtract 2993 1
+                              Store 2996 2997
+            2998:   2582(ptr) AccessChain 34(data) 2989 2581 69
+            2999: 25(int64_t) CompositeExtract 2993 2
+                              Store 2998 2999
+            3000:      6(int) Load 8(invocation)
+            3001:   2589(ptr) AccessChain 34(data) 73 2581
+            3002: 26(i64vec4) Load 3001
+            3003: 26(i64vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 3002
+            3004:   2589(ptr) AccessChain 34(data) 3000 2581
+                              Store 3004 3003
+            3005:      6(int) Load 8(invocation)
+            3006:   2582(ptr) AccessChain 34(data) 37 2581 38
+            3007: 25(int64_t) Load 3006
+            3008: 25(int64_t) GroupNonUniformIAdd 42 ExclusiveScan 3007
+            3009:   2582(ptr) AccessChain 34(data) 3005 2581 38
+                              Store 3009 3008
+            3010:      6(int) Load 8(invocation)
+            3011:   2589(ptr) AccessChain 34(data) 46 2581
+            3012: 26(i64vec4) Load 3011
+            3013:2588(i64vec2) VectorShuffle 3012 3012 0 1
+            3014:2588(i64vec2) GroupNonUniformIAdd 42 ExclusiveScan 3013
+            3015:   2582(ptr) AccessChain 34(data) 3010 2581 38
+            3016: 25(int64_t) CompositeExtract 3014 0
+                              Store 3015 3016
+            3017:   2582(ptr) AccessChain 34(data) 3010 2581 55
+            3018: 25(int64_t) CompositeExtract 3014 1
+                              Store 3017 3018
             3019:      6(int) Load 8(invocation)
-            3020:   2802(ptr) AccessChain 34(data) 57 2794
-            3021: 28(i64vec4) Load 3020
-            3022:2811(i64vec3) VectorShuffle 3021 3021 0 1 2
-            3023:2811(i64vec3) GroupNonUniformIMul 42 InclusiveScan 3022
-            3024:   2802(ptr) AccessChain 34(data) 3019 2794
-            3025: 28(i64vec4) Load 3024
-            3026: 28(i64vec4) VectorShuffle 3025 3023 4 5 6 3
-                              Store 3024 3026
-            3027:      6(int) Load 8(invocation)
-            3028:   2802(ptr) AccessChain 34(data) 67 2794
-            3029: 28(i64vec4) Load 3028
-            3030: 28(i64vec4) GroupNonUniformIMul 42 InclusiveScan 3029
-            3031:   2802(ptr) AccessChain 34(data) 3027 2794
-                              Store 3031 3030
-            3032:      6(int) Load 8(invocation)
-            3033:   2795(ptr) AccessChain 34(data) 37 2794 38
-            3034: 27(int64_t) Load 3033
-            3035: 27(int64_t) GroupNonUniformUMin 42 InclusiveScan 3034
-            3036:   2795(ptr) AccessChain 34(data) 3032 2794 38
-                              Store 3036 3035
-            3037:      6(int) Load 8(invocation)
-            3038:   2802(ptr) AccessChain 34(data) 46 2794
-            3039: 28(i64vec4) Load 3038
-            3040:2801(i64vec2) VectorShuffle 3039 3039 0 1
-            3041:2801(i64vec2) GroupNonUniformUMin 42 InclusiveScan 3040
-            3042:   2802(ptr) AccessChain 34(data) 3037 2794
-            3043: 28(i64vec4) Load 3042
-            3044: 28(i64vec4) VectorShuffle 3043 3041 4 5 2 3
-                              Store 3042 3044
-            3045:      6(int) Load 8(invocation)
-            3046:   2802(ptr) AccessChain 34(data) 57 2794
-            3047: 28(i64vec4) Load 3046
-            3048:2811(i64vec3) VectorShuffle 3047 3047 0 1 2
-            3049:2811(i64vec3) GroupNonUniformUMin 42 InclusiveScan 3048
-            3050:   2802(ptr) AccessChain 34(data) 3045 2794
-            3051: 28(i64vec4) Load 3050
-            3052: 28(i64vec4) VectorShuffle 3051 3049 4 5 6 3
-                              Store 3050 3052
-            3053:      6(int) Load 8(invocation)
-            3054:   2802(ptr) AccessChain 34(data) 67 2794
-            3055: 28(i64vec4) Load 3054
-            3056: 28(i64vec4) GroupNonUniformUMin 42 InclusiveScan 3055
-            3057:   2802(ptr) AccessChain 34(data) 3053 2794
-                              Store 3057 3056
-            3058:      6(int) Load 8(invocation)
-            3059:   2795(ptr) AccessChain 34(data) 37 2794 38
-            3060: 27(int64_t) Load 3059
-            3061: 27(int64_t) GroupNonUniformUMax 42 InclusiveScan 3060
-            3062:   2795(ptr) AccessChain 34(data) 3058 2794 38
-                              Store 3062 3061
-            3063:      6(int) Load 8(invocation)
-            3064:   2802(ptr) AccessChain 34(data) 46 2794
-            3065: 28(i64vec4) Load 3064
-            3066:2801(i64vec2) VectorShuffle 3065 3065 0 1
-            3067:2801(i64vec2) GroupNonUniformUMax 42 InclusiveScan 3066
-            3068:   2802(ptr) AccessChain 34(data) 3063 2794
-            3069: 28(i64vec4) Load 3068
-            3070: 28(i64vec4) VectorShuffle 3069 3067 4 5 2 3
-                              Store 3068 3070
-            3071:      6(int) Load 8(invocation)
-            3072:   2802(ptr) AccessChain 34(data) 57 2794
-            3073: 28(i64vec4) Load 3072
-            3074:2811(i64vec3) VectorShuffle 3073 3073 0 1 2
-            3075:2811(i64vec3) GroupNonUniformUMax 42 InclusiveScan 3074
-            3076:   2802(ptr) AccessChain 34(data) 3071 2794
-            3077: 28(i64vec4) Load 3076
-            3078: 28(i64vec4) VectorShuffle 3077 3075 4 5 6 3
-                              Store 3076 3078
+            3020:   2589(ptr) AccessChain 34(data) 59 2581
+            3021: 26(i64vec4) Load 3020
+            3022:2599(i64vec3) VectorShuffle 3021 3021 0 1 2
+            3023:2599(i64vec3) GroupNonUniformIAdd 42 ExclusiveScan 3022
+            3024:   2582(ptr) AccessChain 34(data) 3019 2581 38
+            3025: 25(int64_t) CompositeExtract 3023 0
+                              Store 3024 3025
+            3026:   2582(ptr) AccessChain 34(data) 3019 2581 55
+            3027: 25(int64_t) CompositeExtract 3023 1
+                              Store 3026 3027
+            3028:   2582(ptr) AccessChain 34(data) 3019 2581 69
+            3029: 25(int64_t) CompositeExtract 3023 2
+                              Store 3028 3029
+            3030:      6(int) Load 8(invocation)
+            3031:   2589(ptr) AccessChain 34(data) 73 2581
+            3032: 26(i64vec4) Load 3031
+            3033: 26(i64vec4) GroupNonUniformIAdd 42 ExclusiveScan 3032
+            3034:   2589(ptr) AccessChain 34(data) 3030 2581
+                              Store 3034 3033
+            3035:      6(int) Load 8(invocation)
+            3036:   2582(ptr) AccessChain 34(data) 37 2581 38
+            3037: 25(int64_t) Load 3036
+            3038: 25(int64_t) GroupNonUniformIMul 42 ExclusiveScan 3037
+            3039:   2582(ptr) AccessChain 34(data) 3035 2581 38
+                              Store 3039 3038
+            3040:      6(int) Load 8(invocation)
+            3041:   2589(ptr) AccessChain 34(data) 46 2581
+            3042: 26(i64vec4) Load 3041
+            3043:2588(i64vec2) VectorShuffle 3042 3042 0 1
+            3044:2588(i64vec2) GroupNonUniformIMul 42 ExclusiveScan 3043
+            3045:   2582(ptr) AccessChain 34(data) 3040 2581 38
+            3046: 25(int64_t) CompositeExtract 3044 0
+                              Store 3045 3046
+            3047:   2582(ptr) AccessChain 34(data) 3040 2581 55
+            3048: 25(int64_t) CompositeExtract 3044 1
+                              Store 3047 3048
+            3049:      6(int) Load 8(invocation)
+            3050:   2589(ptr) AccessChain 34(data) 59 2581
+            3051: 26(i64vec4) Load 3050
+            3052:2599(i64vec3) VectorShuffle 3051 3051 0 1 2
+            3053:2599(i64vec3) GroupNonUniformIMul 42 ExclusiveScan 3052
+            3054:   2582(ptr) AccessChain 34(data) 3049 2581 38
+            3055: 25(int64_t) CompositeExtract 3053 0
+                              Store 3054 3055
+            3056:   2582(ptr) AccessChain 34(data) 3049 2581 55
+            3057: 25(int64_t) CompositeExtract 3053 1
+                              Store 3056 3057
+            3058:   2582(ptr) AccessChain 34(data) 3049 2581 69
+            3059: 25(int64_t) CompositeExtract 3053 2
+                              Store 3058 3059
+            3060:      6(int) Load 8(invocation)
+            3061:   2589(ptr) AccessChain 34(data) 73 2581
+            3062: 26(i64vec4) Load 3061
+            3063: 26(i64vec4) GroupNonUniformIMul 42 ExclusiveScan 3062
+            3064:   2589(ptr) AccessChain 34(data) 3060 2581
+                              Store 3064 3063
+            3065:      6(int) Load 8(invocation)
+            3066:   2582(ptr) AccessChain 34(data) 37 2581 38
+            3067: 25(int64_t) Load 3066
+            3068: 25(int64_t) GroupNonUniformSMin 42 ExclusiveScan 3067
+            3069:   2582(ptr) AccessChain 34(data) 3065 2581 38
+                              Store 3069 3068
+            3070:      6(int) Load 8(invocation)
+            3071:   2589(ptr) AccessChain 34(data) 46 2581
+            3072: 26(i64vec4) Load 3071
+            3073:2588(i64vec2) VectorShuffle 3072 3072 0 1
+            3074:2588(i64vec2) GroupNonUniformSMin 42 ExclusiveScan 3073
+            3075:   2582(ptr) AccessChain 34(data) 3070 2581 38
+            3076: 25(int64_t) CompositeExtract 3074 0
+                              Store 3075 3076
+            3077:   2582(ptr) AccessChain 34(data) 3070 2581 55
+            3078: 25(int64_t) CompositeExtract 3074 1
+                              Store 3077 3078
             3079:      6(int) Load 8(invocation)
-            3080:   2802(ptr) AccessChain 34(data) 67 2794
-            3081: 28(i64vec4) Load 3080
-            3082: 28(i64vec4) GroupNonUniformUMax 42 InclusiveScan 3081
-            3083:   2802(ptr) AccessChain 34(data) 3079 2794
-                              Store 3083 3082
-            3084:      6(int) Load 8(invocation)
-            3085:   2795(ptr) AccessChain 34(data) 37 2794 38
-            3086: 27(int64_t) Load 3085
-            3087: 27(int64_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 3086
-            3088:   2795(ptr) AccessChain 34(data) 3084 2794 38
-                              Store 3088 3087
-            3089:      6(int) Load 8(invocation)
-            3090:   2802(ptr) AccessChain 34(data) 46 2794
-            3091: 28(i64vec4) Load 3090
-            3092:2801(i64vec2) VectorShuffle 3091 3091 0 1
-            3093:2801(i64vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 3092
-            3094:   2802(ptr) AccessChain 34(data) 3089 2794
-            3095: 28(i64vec4) Load 3094
-            3096: 28(i64vec4) VectorShuffle 3095 3093 4 5 2 3
-                              Store 3094 3096
-            3097:      6(int) Load 8(invocation)
-            3098:   2802(ptr) AccessChain 34(data) 57 2794
-            3099: 28(i64vec4) Load 3098
-            3100:2811(i64vec3) VectorShuffle 3099 3099 0 1 2
-            3101:2811(i64vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 3100
-            3102:   2802(ptr) AccessChain 34(data) 3097 2794
-            3103: 28(i64vec4) Load 3102
-            3104: 28(i64vec4) VectorShuffle 3103 3101 4 5 6 3
-                              Store 3102 3104
-            3105:      6(int) Load 8(invocation)
-            3106:   2802(ptr) AccessChain 34(data) 67 2794
-            3107: 28(i64vec4) Load 3106
-            3108: 28(i64vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 3107
-            3109:   2802(ptr) AccessChain 34(data) 3105 2794
-                              Store 3109 3108
-            3110:      6(int) Load 8(invocation)
-            3111:   2795(ptr) AccessChain 34(data) 37 2794 38
-            3112: 27(int64_t) Load 3111
-            3113: 27(int64_t) GroupNonUniformBitwiseOr 42 InclusiveScan 3112
-            3114:   2795(ptr) AccessChain 34(data) 3110 2794 38
-                              Store 3114 3113
-            3115:      6(int) Load 8(invocation)
-            3116:   2802(ptr) AccessChain 34(data) 46 2794
-            3117: 28(i64vec4) Load 3116
-            3118:2801(i64vec2) VectorShuffle 3117 3117 0 1
-            3119:2801(i64vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 3118
-            3120:   2802(ptr) AccessChain 34(data) 3115 2794
-            3121: 28(i64vec4) Load 3120
-            3122: 28(i64vec4) VectorShuffle 3121 3119 4 5 2 3
-                              Store 3120 3122
-            3123:      6(int) Load 8(invocation)
-            3124:   2802(ptr) AccessChain 34(data) 57 2794
-            3125: 28(i64vec4) Load 3124
-            3126:2811(i64vec3) VectorShuffle 3125 3125 0 1 2
-            3127:2811(i64vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 3126
-            3128:   2802(ptr) AccessChain 34(data) 3123 2794
-            3129: 28(i64vec4) Load 3128
-            3130: 28(i64vec4) VectorShuffle 3129 3127 4 5 6 3
-                              Store 3128 3130
-            3131:      6(int) Load 8(invocation)
-            3132:   2802(ptr) AccessChain 34(data) 67 2794
-            3133: 28(i64vec4) Load 3132
-            3134: 28(i64vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 3133
-            3135:   2802(ptr) AccessChain 34(data) 3131 2794
-                              Store 3135 3134
-            3136:      6(int) Load 8(invocation)
-            3137:   2795(ptr) AccessChain 34(data) 37 2794 38
-            3138: 27(int64_t) Load 3137
-            3139: 27(int64_t) GroupNonUniformBitwiseXor 42 InclusiveScan 3138
-            3140:   2795(ptr) AccessChain 34(data) 3136 2794 38
-                              Store 3140 3139
-            3141:      6(int) Load 8(invocation)
-            3142:   2802(ptr) AccessChain 34(data) 46 2794
-            3143: 28(i64vec4) Load 3142
-            3144:2801(i64vec2) VectorShuffle 3143 3143 0 1
-            3145:2801(i64vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 3144
-            3146:   2802(ptr) AccessChain 34(data) 3141 2794
-            3147: 28(i64vec4) Load 3146
-            3148: 28(i64vec4) VectorShuffle 3147 3145 4 5 2 3
-                              Store 3146 3148
-            3149:      6(int) Load 8(invocation)
-            3150:   2802(ptr) AccessChain 34(data) 57 2794
-            3151: 28(i64vec4) Load 3150
-            3152:2811(i64vec3) VectorShuffle 3151 3151 0 1 2
-            3153:2811(i64vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 3152
-            3154:   2802(ptr) AccessChain 34(data) 3149 2794
-            3155: 28(i64vec4) Load 3154
-            3156: 28(i64vec4) VectorShuffle 3155 3153 4 5 6 3
-                              Store 3154 3156
-            3157:      6(int) Load 8(invocation)
-            3158:   2802(ptr) AccessChain 34(data) 67 2794
-            3159: 28(i64vec4) Load 3158
-            3160: 28(i64vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 3159
-            3161:   2802(ptr) AccessChain 34(data) 3157 2794
-                              Store 3161 3160
-            3162:      6(int) Load 8(invocation)
-            3163:   2795(ptr) AccessChain 34(data) 37 2794 38
-            3164: 27(int64_t) Load 3163
-            3165: 27(int64_t) GroupNonUniformIAdd 42 ExclusiveScan 3164
-            3166:   2795(ptr) AccessChain 34(data) 3162 2794 38
-                              Store 3166 3165
-            3167:      6(int) Load 8(invocation)
-            3168:   2802(ptr) AccessChain 34(data) 46 2794
-            3169: 28(i64vec4) Load 3168
-            3170:2801(i64vec2) VectorShuffle 3169 3169 0 1
-            3171:2801(i64vec2) GroupNonUniformIAdd 42 ExclusiveScan 3170
-            3172:   2802(ptr) AccessChain 34(data) 3167 2794
-            3173: 28(i64vec4) Load 3172
-            3174: 28(i64vec4) VectorShuffle 3173 3171 4 5 2 3
-                              Store 3172 3174
-            3175:      6(int) Load 8(invocation)
-            3176:   2802(ptr) AccessChain 34(data) 57 2794
-            3177: 28(i64vec4) Load 3176
-            3178:2811(i64vec3) VectorShuffle 3177 3177 0 1 2
-            3179:2811(i64vec3) GroupNonUniformIAdd 42 ExclusiveScan 3178
-            3180:   2802(ptr) AccessChain 34(data) 3175 2794
-            3181: 28(i64vec4) Load 3180
-            3182: 28(i64vec4) VectorShuffle 3181 3179 4 5 6 3
-                              Store 3180 3182
-            3183:      6(int) Load 8(invocation)
-            3184:   2802(ptr) AccessChain 34(data) 67 2794
-            3185: 28(i64vec4) Load 3184
-            3186: 28(i64vec4) GroupNonUniformIAdd 42 ExclusiveScan 3185
-            3187:   2802(ptr) AccessChain 34(data) 3183 2794
-                              Store 3187 3186
-            3188:      6(int) Load 8(invocation)
-            3189:   2795(ptr) AccessChain 34(data) 37 2794 38
-            3190: 27(int64_t) Load 3189
-            3191: 27(int64_t) GroupNonUniformIMul 42 ExclusiveScan 3190
-            3192:   2795(ptr) AccessChain 34(data) 3188 2794 38
-                              Store 3192 3191
-            3193:      6(int) Load 8(invocation)
-            3194:   2802(ptr) AccessChain 34(data) 46 2794
-            3195: 28(i64vec4) Load 3194
-            3196:2801(i64vec2) VectorShuffle 3195 3195 0 1
-            3197:2801(i64vec2) GroupNonUniformIMul 42 ExclusiveScan 3196
-            3198:   2802(ptr) AccessChain 34(data) 3193 2794
-            3199: 28(i64vec4) Load 3198
-            3200: 28(i64vec4) VectorShuffle 3199 3197 4 5 2 3
-                              Store 3198 3200
-            3201:      6(int) Load 8(invocation)
-            3202:   2802(ptr) AccessChain 34(data) 57 2794
-            3203: 28(i64vec4) Load 3202
-            3204:2811(i64vec3) VectorShuffle 3203 3203 0 1 2
-            3205:2811(i64vec3) GroupNonUniformIMul 42 ExclusiveScan 3204
-            3206:   2802(ptr) AccessChain 34(data) 3201 2794
-            3207: 28(i64vec4) Load 3206
-            3208: 28(i64vec4) VectorShuffle 3207 3205 4 5 6 3
-                              Store 3206 3208
-            3209:      6(int) Load 8(invocation)
-            3210:   2802(ptr) AccessChain 34(data) 67 2794
-            3211: 28(i64vec4) Load 3210
-            3212: 28(i64vec4) GroupNonUniformIMul 42 ExclusiveScan 3211
-            3213:   2802(ptr) AccessChain 34(data) 3209 2794
-                              Store 3213 3212
-            3214:      6(int) Load 8(invocation)
-            3215:   2795(ptr) AccessChain 34(data) 37 2794 38
-            3216: 27(int64_t) Load 3215
-            3217: 27(int64_t) GroupNonUniformUMin 42 ExclusiveScan 3216
-            3218:   2795(ptr) AccessChain 34(data) 3214 2794 38
-                              Store 3218 3217
-            3219:      6(int) Load 8(invocation)
-            3220:   2802(ptr) AccessChain 34(data) 46 2794
-            3221: 28(i64vec4) Load 3220
-            3222:2801(i64vec2) VectorShuffle 3221 3221 0 1
-            3223:2801(i64vec2) GroupNonUniformUMin 42 ExclusiveScan 3222
-            3224:   2802(ptr) AccessChain 34(data) 3219 2794
-            3225: 28(i64vec4) Load 3224
-            3226: 28(i64vec4) VectorShuffle 3225 3223 4 5 2 3
-                              Store 3224 3226
-            3227:      6(int) Load 8(invocation)
-            3228:   2802(ptr) AccessChain 34(data) 57 2794
-            3229: 28(i64vec4) Load 3228
-            3230:2811(i64vec3) VectorShuffle 3229 3229 0 1 2
-            3231:2811(i64vec3) GroupNonUniformUMin 42 ExclusiveScan 3230
-            3232:   2802(ptr) AccessChain 34(data) 3227 2794
-            3233: 28(i64vec4) Load 3232
-            3234: 28(i64vec4) VectorShuffle 3233 3231 4 5 6 3
-                              Store 3232 3234
-            3235:      6(int) Load 8(invocation)
-            3236:   2802(ptr) AccessChain 34(data) 67 2794
-            3237: 28(i64vec4) Load 3236
-            3238: 28(i64vec4) GroupNonUniformUMin 42 ExclusiveScan 3237
-            3239:   2802(ptr) AccessChain 34(data) 3235 2794
-                              Store 3239 3238
-            3240:      6(int) Load 8(invocation)
-            3241:   2795(ptr) AccessChain 34(data) 37 2794 38
-            3242: 27(int64_t) Load 3241
-            3243: 27(int64_t) GroupNonUniformUMax 42 ExclusiveScan 3242
-            3244:   2795(ptr) AccessChain 34(data) 3240 2794 38
-                              Store 3244 3243
+            3080:   2589(ptr) AccessChain 34(data) 59 2581
+            3081: 26(i64vec4) Load 3080
+            3082:2599(i64vec3) VectorShuffle 3081 3081 0 1 2
+            3083:2599(i64vec3) GroupNonUniformSMin 42 ExclusiveScan 3082
+            3084:   2582(ptr) AccessChain 34(data) 3079 2581 38
+            3085: 25(int64_t) CompositeExtract 3083 0
+                              Store 3084 3085
+            3086:   2582(ptr) AccessChain 34(data) 3079 2581 55
+            3087: 25(int64_t) CompositeExtract 3083 1
+                              Store 3086 3087
+            3088:   2582(ptr) AccessChain 34(data) 3079 2581 69
+            3089: 25(int64_t) CompositeExtract 3083 2
+                              Store 3088 3089
+            3090:      6(int) Load 8(invocation)
+            3091:   2589(ptr) AccessChain 34(data) 73 2581
+            3092: 26(i64vec4) Load 3091
+            3093: 26(i64vec4) GroupNonUniformSMin 42 ExclusiveScan 3092
+            3094:   2589(ptr) AccessChain 34(data) 3090 2581
+                              Store 3094 3093
+            3095:      6(int) Load 8(invocation)
+            3096:   2582(ptr) AccessChain 34(data) 37 2581 38
+            3097: 25(int64_t) Load 3096
+            3098: 25(int64_t) GroupNonUniformSMax 42 ExclusiveScan 3097
+            3099:   2582(ptr) AccessChain 34(data) 3095 2581 38
+                              Store 3099 3098
+            3100:      6(int) Load 8(invocation)
+            3101:   2589(ptr) AccessChain 34(data) 46 2581
+            3102: 26(i64vec4) Load 3101
+            3103:2588(i64vec2) VectorShuffle 3102 3102 0 1
+            3104:2588(i64vec2) GroupNonUniformSMax 42 ExclusiveScan 3103
+            3105:   2582(ptr) AccessChain 34(data) 3100 2581 38
+            3106: 25(int64_t) CompositeExtract 3104 0
+                              Store 3105 3106
+            3107:   2582(ptr) AccessChain 34(data) 3100 2581 55
+            3108: 25(int64_t) CompositeExtract 3104 1
+                              Store 3107 3108
+            3109:      6(int) Load 8(invocation)
+            3110:   2589(ptr) AccessChain 34(data) 59 2581
+            3111: 26(i64vec4) Load 3110
+            3112:2599(i64vec3) VectorShuffle 3111 3111 0 1 2
+            3113:2599(i64vec3) GroupNonUniformSMax 42 ExclusiveScan 3112
+            3114:   2582(ptr) AccessChain 34(data) 3109 2581 38
+            3115: 25(int64_t) CompositeExtract 3113 0
+                              Store 3114 3115
+            3116:   2582(ptr) AccessChain 34(data) 3109 2581 55
+            3117: 25(int64_t) CompositeExtract 3113 1
+                              Store 3116 3117
+            3118:   2582(ptr) AccessChain 34(data) 3109 2581 69
+            3119: 25(int64_t) CompositeExtract 3113 2
+                              Store 3118 3119
+            3120:      6(int) Load 8(invocation)
+            3121:   2589(ptr) AccessChain 34(data) 73 2581
+            3122: 26(i64vec4) Load 3121
+            3123: 26(i64vec4) GroupNonUniformSMax 42 ExclusiveScan 3122
+            3124:   2589(ptr) AccessChain 34(data) 3120 2581
+                              Store 3124 3123
+            3125:      6(int) Load 8(invocation)
+            3126:   2582(ptr) AccessChain 34(data) 37 2581 38
+            3127: 25(int64_t) Load 3126
+            3128: 25(int64_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3127
+            3129:   2582(ptr) AccessChain 34(data) 3125 2581 38
+                              Store 3129 3128
+            3130:      6(int) Load 8(invocation)
+            3131:   2589(ptr) AccessChain 34(data) 46 2581
+            3132: 26(i64vec4) Load 3131
+            3133:2588(i64vec2) VectorShuffle 3132 3132 0 1
+            3134:2588(i64vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3133
+            3135:   2582(ptr) AccessChain 34(data) 3130 2581 38
+            3136: 25(int64_t) CompositeExtract 3134 0
+                              Store 3135 3136
+            3137:   2582(ptr) AccessChain 34(data) 3130 2581 55
+            3138: 25(int64_t) CompositeExtract 3134 1
+                              Store 3137 3138
+            3139:      6(int) Load 8(invocation)
+            3140:   2589(ptr) AccessChain 34(data) 59 2581
+            3141: 26(i64vec4) Load 3140
+            3142:2599(i64vec3) VectorShuffle 3141 3141 0 1 2
+            3143:2599(i64vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3142
+            3144:   2582(ptr) AccessChain 34(data) 3139 2581 38
+            3145: 25(int64_t) CompositeExtract 3143 0
+                              Store 3144 3145
+            3146:   2582(ptr) AccessChain 34(data) 3139 2581 55
+            3147: 25(int64_t) CompositeExtract 3143 1
+                              Store 3146 3147
+            3148:   2582(ptr) AccessChain 34(data) 3139 2581 69
+            3149: 25(int64_t) CompositeExtract 3143 2
+                              Store 3148 3149
+            3150:      6(int) Load 8(invocation)
+            3151:   2589(ptr) AccessChain 34(data) 73 2581
+            3152: 26(i64vec4) Load 3151
+            3153: 26(i64vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3152
+            3154:   2589(ptr) AccessChain 34(data) 3150 2581
+                              Store 3154 3153
+            3155:      6(int) Load 8(invocation)
+            3156:   2582(ptr) AccessChain 34(data) 37 2581 38
+            3157: 25(int64_t) Load 3156
+            3158: 25(int64_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 3157
+            3159:   2582(ptr) AccessChain 34(data) 3155 2581 38
+                              Store 3159 3158
+            3160:      6(int) Load 8(invocation)
+            3161:   2589(ptr) AccessChain 34(data) 46 2581
+            3162: 26(i64vec4) Load 3161
+            3163:2588(i64vec2) VectorShuffle 3162 3162 0 1
+            3164:2588(i64vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 3163
+            3165:   2582(ptr) AccessChain 34(data) 3160 2581 38
+            3166: 25(int64_t) CompositeExtract 3164 0
+                              Store 3165 3166
+            3167:   2582(ptr) AccessChain 34(data) 3160 2581 55
+            3168: 25(int64_t) CompositeExtract 3164 1
+                              Store 3167 3168
+            3169:      6(int) Load 8(invocation)
+            3170:   2589(ptr) AccessChain 34(data) 59 2581
+            3171: 26(i64vec4) Load 3170
+            3172:2599(i64vec3) VectorShuffle 3171 3171 0 1 2
+            3173:2599(i64vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 3172
+            3174:   2582(ptr) AccessChain 34(data) 3169 2581 38
+            3175: 25(int64_t) CompositeExtract 3173 0
+                              Store 3174 3175
+            3176:   2582(ptr) AccessChain 34(data) 3169 2581 55
+            3177: 25(int64_t) CompositeExtract 3173 1
+                              Store 3176 3177
+            3178:   2582(ptr) AccessChain 34(data) 3169 2581 69
+            3179: 25(int64_t) CompositeExtract 3173 2
+                              Store 3178 3179
+            3180:      6(int) Load 8(invocation)
+            3181:   2589(ptr) AccessChain 34(data) 73 2581
+            3182: 26(i64vec4) Load 3181
+            3183: 26(i64vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 3182
+            3184:   2589(ptr) AccessChain 34(data) 3180 2581
+                              Store 3184 3183
+            3185:      6(int) Load 8(invocation)
+            3186:   2582(ptr) AccessChain 34(data) 37 2581 38
+            3187: 25(int64_t) Load 3186
+            3188: 25(int64_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 3187
+            3189:   2582(ptr) AccessChain 34(data) 3185 2581 38
+                              Store 3189 3188
+            3190:      6(int) Load 8(invocation)
+            3191:   2589(ptr) AccessChain 34(data) 46 2581
+            3192: 26(i64vec4) Load 3191
+            3193:2588(i64vec2) VectorShuffle 3192 3192 0 1
+            3194:2588(i64vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 3193
+            3195:   2582(ptr) AccessChain 34(data) 3190 2581 38
+            3196: 25(int64_t) CompositeExtract 3194 0
+                              Store 3195 3196
+            3197:   2582(ptr) AccessChain 34(data) 3190 2581 55
+            3198: 25(int64_t) CompositeExtract 3194 1
+                              Store 3197 3198
+            3199:      6(int) Load 8(invocation)
+            3200:   2589(ptr) AccessChain 34(data) 59 2581
+            3201: 26(i64vec4) Load 3200
+            3202:2599(i64vec3) VectorShuffle 3201 3201 0 1 2
+            3203:2599(i64vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 3202
+            3204:   2582(ptr) AccessChain 34(data) 3199 2581 38
+            3205: 25(int64_t) CompositeExtract 3203 0
+                              Store 3204 3205
+            3206:   2582(ptr) AccessChain 34(data) 3199 2581 55
+            3207: 25(int64_t) CompositeExtract 3203 1
+                              Store 3206 3207
+            3208:   2582(ptr) AccessChain 34(data) 3199 2581 69
+            3209: 25(int64_t) CompositeExtract 3203 2
+                              Store 3208 3209
+            3210:      6(int) Load 8(invocation)
+            3211:   2589(ptr) AccessChain 34(data) 73 2581
+            3212: 26(i64vec4) Load 3211
+            3213: 26(i64vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 3212
+            3214:   2589(ptr) AccessChain 34(data) 3210 2581
+                              Store 3214 3213
+            3215:      6(int) Load 8(invocation)
+            3218:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3219: 27(int64_t) Load 3218
+            3220: 27(int64_t) GroupNonUniformIAdd 42 Reduce 3219
+            3221:   3217(ptr) AccessChain 34(data) 3215 3216 38
+                              Store 3221 3220
+            3222:      6(int) Load 8(invocation)
+            3225:   3224(ptr) AccessChain 34(data) 46 3216
+            3226: 28(i64vec4) Load 3225
+            3227:3223(i64vec2) VectorShuffle 3226 3226 0 1
+            3228:3223(i64vec2) GroupNonUniformIAdd 42 Reduce 3227
+            3229:   3217(ptr) AccessChain 34(data) 3222 3216 38
+            3230: 27(int64_t) CompositeExtract 3228 0
+                              Store 3229 3230
+            3231:   3217(ptr) AccessChain 34(data) 3222 3216 55
+            3232: 27(int64_t) CompositeExtract 3228 1
+                              Store 3231 3232
+            3233:      6(int) Load 8(invocation)
+            3235:   3224(ptr) AccessChain 34(data) 59 3216
+            3236: 28(i64vec4) Load 3235
+            3237:3234(i64vec3) VectorShuffle 3236 3236 0 1 2
+            3238:3234(i64vec3) GroupNonUniformIAdd 42 Reduce 3237
+            3239:   3217(ptr) AccessChain 34(data) 3233 3216 38
+            3240: 27(int64_t) CompositeExtract 3238 0
+                              Store 3239 3240
+            3241:   3217(ptr) AccessChain 34(data) 3233 3216 55
+            3242: 27(int64_t) CompositeExtract 3238 1
+                              Store 3241 3242
+            3243:   3217(ptr) AccessChain 34(data) 3233 3216 69
+            3244: 27(int64_t) CompositeExtract 3238 2
+                              Store 3243 3244
             3245:      6(int) Load 8(invocation)
-            3246:   2802(ptr) AccessChain 34(data) 46 2794
+            3246:   3224(ptr) AccessChain 34(data) 73 3216
             3247: 28(i64vec4) Load 3246
-            3248:2801(i64vec2) VectorShuffle 3247 3247 0 1
-            3249:2801(i64vec2) GroupNonUniformUMax 42 ExclusiveScan 3248
-            3250:   2802(ptr) AccessChain 34(data) 3245 2794
-            3251: 28(i64vec4) Load 3250
-            3252: 28(i64vec4) VectorShuffle 3251 3249 4 5 2 3
-                              Store 3250 3252
-            3253:      6(int) Load 8(invocation)
-            3254:   2802(ptr) AccessChain 34(data) 57 2794
-            3255: 28(i64vec4) Load 3254
-            3256:2811(i64vec3) VectorShuffle 3255 3255 0 1 2
-            3257:2811(i64vec3) GroupNonUniformUMax 42 ExclusiveScan 3256
-            3258:   2802(ptr) AccessChain 34(data) 3253 2794
-            3259: 28(i64vec4) Load 3258
-            3260: 28(i64vec4) VectorShuffle 3259 3257 4 5 6 3
-                              Store 3258 3260
-            3261:      6(int) Load 8(invocation)
-            3262:   2802(ptr) AccessChain 34(data) 67 2794
-            3263: 28(i64vec4) Load 3262
-            3264: 28(i64vec4) GroupNonUniformUMax 42 ExclusiveScan 3263
-            3265:   2802(ptr) AccessChain 34(data) 3261 2794
-                              Store 3265 3264
-            3266:      6(int) Load 8(invocation)
-            3267:   2795(ptr) AccessChain 34(data) 37 2794 38
-            3268: 27(int64_t) Load 3267
-            3269: 27(int64_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3268
-            3270:   2795(ptr) AccessChain 34(data) 3266 2794 38
-                              Store 3270 3269
-            3271:      6(int) Load 8(invocation)
-            3272:   2802(ptr) AccessChain 34(data) 46 2794
-            3273: 28(i64vec4) Load 3272
-            3274:2801(i64vec2) VectorShuffle 3273 3273 0 1
-            3275:2801(i64vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3274
-            3276:   2802(ptr) AccessChain 34(data) 3271 2794
+            3248: 28(i64vec4) GroupNonUniformIAdd 42 Reduce 3247
+            3249:   3224(ptr) AccessChain 34(data) 3245 3216
+                              Store 3249 3248
+            3250:      6(int) Load 8(invocation)
+            3251:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3252: 27(int64_t) Load 3251
+            3253: 27(int64_t) GroupNonUniformIMul 42 Reduce 3252
+            3254:   3217(ptr) AccessChain 34(data) 3250 3216 38
+                              Store 3254 3253
+            3255:      6(int) Load 8(invocation)
+            3256:   3224(ptr) AccessChain 34(data) 46 3216
+            3257: 28(i64vec4) Load 3256
+            3258:3223(i64vec2) VectorShuffle 3257 3257 0 1
+            3259:3223(i64vec2) GroupNonUniformIMul 42 Reduce 3258
+            3260:   3217(ptr) AccessChain 34(data) 3255 3216 38
+            3261: 27(int64_t) CompositeExtract 3259 0
+                              Store 3260 3261
+            3262:   3217(ptr) AccessChain 34(data) 3255 3216 55
+            3263: 27(int64_t) CompositeExtract 3259 1
+                              Store 3262 3263
+            3264:      6(int) Load 8(invocation)
+            3265:   3224(ptr) AccessChain 34(data) 59 3216
+            3266: 28(i64vec4) Load 3265
+            3267:3234(i64vec3) VectorShuffle 3266 3266 0 1 2
+            3268:3234(i64vec3) GroupNonUniformIMul 42 Reduce 3267
+            3269:   3217(ptr) AccessChain 34(data) 3264 3216 38
+            3270: 27(int64_t) CompositeExtract 3268 0
+                              Store 3269 3270
+            3271:   3217(ptr) AccessChain 34(data) 3264 3216 55
+            3272: 27(int64_t) CompositeExtract 3268 1
+                              Store 3271 3272
+            3273:   3217(ptr) AccessChain 34(data) 3264 3216 69
+            3274: 27(int64_t) CompositeExtract 3268 2
+                              Store 3273 3274
+            3275:      6(int) Load 8(invocation)
+            3276:   3224(ptr) AccessChain 34(data) 73 3216
             3277: 28(i64vec4) Load 3276
-            3278: 28(i64vec4) VectorShuffle 3277 3275 4 5 2 3
-                              Store 3276 3278
-            3279:      6(int) Load 8(invocation)
-            3280:   2802(ptr) AccessChain 34(data) 57 2794
-            3281: 28(i64vec4) Load 3280
-            3282:2811(i64vec3) VectorShuffle 3281 3281 0 1 2
-            3283:2811(i64vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3282
-            3284:   2802(ptr) AccessChain 34(data) 3279 2794
-            3285: 28(i64vec4) Load 3284
-            3286: 28(i64vec4) VectorShuffle 3285 3283 4 5 6 3
-                              Store 3284 3286
-            3287:      6(int) Load 8(invocation)
-            3288:   2802(ptr) AccessChain 34(data) 67 2794
-            3289: 28(i64vec4) Load 3288
-            3290: 28(i64vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3289
-            3291:   2802(ptr) AccessChain 34(data) 3287 2794
-                              Store 3291 3290
-            3292:      6(int) Load 8(invocation)
-            3293:   2795(ptr) AccessChain 34(data) 37 2794 38
-            3294: 27(int64_t) Load 3293
-            3295: 27(int64_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 3294
-            3296:   2795(ptr) AccessChain 34(data) 3292 2794 38
-                              Store 3296 3295
-            3297:      6(int) Load 8(invocation)
-            3298:   2802(ptr) AccessChain 34(data) 46 2794
-            3299: 28(i64vec4) Load 3298
-            3300:2801(i64vec2) VectorShuffle 3299 3299 0 1
-            3301:2801(i64vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 3300
-            3302:   2802(ptr) AccessChain 34(data) 3297 2794
-            3303: 28(i64vec4) Load 3302
-            3304: 28(i64vec4) VectorShuffle 3303 3301 4 5 2 3
-                              Store 3302 3304
+            3278: 28(i64vec4) GroupNonUniformIMul 42 Reduce 3277
+            3279:   3224(ptr) AccessChain 34(data) 3275 3216
+                              Store 3279 3278
+            3280:      6(int) Load 8(invocation)
+            3281:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3282: 27(int64_t) Load 3281
+            3283: 27(int64_t) GroupNonUniformUMin 42 Reduce 3282
+            3284:   3217(ptr) AccessChain 34(data) 3280 3216 38
+                              Store 3284 3283
+            3285:      6(int) Load 8(invocation)
+            3286:   3224(ptr) AccessChain 34(data) 46 3216
+            3287: 28(i64vec4) Load 3286
+            3288:3223(i64vec2) VectorShuffle 3287 3287 0 1
+            3289:3223(i64vec2) GroupNonUniformUMin 42 Reduce 3288
+            3290:   3217(ptr) AccessChain 34(data) 3285 3216 38
+            3291: 27(int64_t) CompositeExtract 3289 0
+                              Store 3290 3291
+            3292:   3217(ptr) AccessChain 34(data) 3285 3216 55
+            3293: 27(int64_t) CompositeExtract 3289 1
+                              Store 3292 3293
+            3294:      6(int) Load 8(invocation)
+            3295:   3224(ptr) AccessChain 34(data) 59 3216
+            3296: 28(i64vec4) Load 3295
+            3297:3234(i64vec3) VectorShuffle 3296 3296 0 1 2
+            3298:3234(i64vec3) GroupNonUniformUMin 42 Reduce 3297
+            3299:   3217(ptr) AccessChain 34(data) 3294 3216 38
+            3300: 27(int64_t) CompositeExtract 3298 0
+                              Store 3299 3300
+            3301:   3217(ptr) AccessChain 34(data) 3294 3216 55
+            3302: 27(int64_t) CompositeExtract 3298 1
+                              Store 3301 3302
+            3303:   3217(ptr) AccessChain 34(data) 3294 3216 69
+            3304: 27(int64_t) CompositeExtract 3298 2
+                              Store 3303 3304
             3305:      6(int) Load 8(invocation)
-            3306:   2802(ptr) AccessChain 34(data) 57 2794
+            3306:   3224(ptr) AccessChain 34(data) 73 3216
             3307: 28(i64vec4) Load 3306
-            3308:2811(i64vec3) VectorShuffle 3307 3307 0 1 2
-            3309:2811(i64vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 3308
-            3310:   2802(ptr) AccessChain 34(data) 3305 2794
-            3311: 28(i64vec4) Load 3310
-            3312: 28(i64vec4) VectorShuffle 3311 3309 4 5 6 3
-                              Store 3310 3312
-            3313:      6(int) Load 8(invocation)
-            3314:   2802(ptr) AccessChain 34(data) 67 2794
-            3315: 28(i64vec4) Load 3314
-            3316: 28(i64vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 3315
-            3317:   2802(ptr) AccessChain 34(data) 3313 2794
-                              Store 3317 3316
-            3318:      6(int) Load 8(invocation)
-            3319:   2795(ptr) AccessChain 34(data) 37 2794 38
-            3320: 27(int64_t) Load 3319
-            3321: 27(int64_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 3320
-            3322:   2795(ptr) AccessChain 34(data) 3318 2794 38
-                              Store 3322 3321
-            3323:      6(int) Load 8(invocation)
-            3324:   2802(ptr) AccessChain 34(data) 46 2794
-            3325: 28(i64vec4) Load 3324
-            3326:2801(i64vec2) VectorShuffle 3325 3325 0 1
-            3327:2801(i64vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 3326
-            3328:   2802(ptr) AccessChain 34(data) 3323 2794
-            3329: 28(i64vec4) Load 3328
-            3330: 28(i64vec4) VectorShuffle 3329 3327 4 5 2 3
-                              Store 3328 3330
-            3331:      6(int) Load 8(invocation)
-            3332:   2802(ptr) AccessChain 34(data) 57 2794
-            3333: 28(i64vec4) Load 3332
-            3334:2811(i64vec3) VectorShuffle 3333 3333 0 1 2
-            3335:2811(i64vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 3334
-            3336:   2802(ptr) AccessChain 34(data) 3331 2794
+            3308: 28(i64vec4) GroupNonUniformUMin 42 Reduce 3307
+            3309:   3224(ptr) AccessChain 34(data) 3305 3216
+                              Store 3309 3308
+            3310:      6(int) Load 8(invocation)
+            3311:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3312: 27(int64_t) Load 3311
+            3313: 27(int64_t) GroupNonUniformUMax 42 Reduce 3312
+            3314:   3217(ptr) AccessChain 34(data) 3310 3216 38
+                              Store 3314 3313
+            3315:      6(int) Load 8(invocation)
+            3316:   3224(ptr) AccessChain 34(data) 46 3216
+            3317: 28(i64vec4) Load 3316
+            3318:3223(i64vec2) VectorShuffle 3317 3317 0 1
+            3319:3223(i64vec2) GroupNonUniformUMax 42 Reduce 3318
+            3320:   3217(ptr) AccessChain 34(data) 3315 3216 38
+            3321: 27(int64_t) CompositeExtract 3319 0
+                              Store 3320 3321
+            3322:   3217(ptr) AccessChain 34(data) 3315 3216 55
+            3323: 27(int64_t) CompositeExtract 3319 1
+                              Store 3322 3323
+            3324:      6(int) Load 8(invocation)
+            3325:   3224(ptr) AccessChain 34(data) 59 3216
+            3326: 28(i64vec4) Load 3325
+            3327:3234(i64vec3) VectorShuffle 3326 3326 0 1 2
+            3328:3234(i64vec3) GroupNonUniformUMax 42 Reduce 3327
+            3329:   3217(ptr) AccessChain 34(data) 3324 3216 38
+            3330: 27(int64_t) CompositeExtract 3328 0
+                              Store 3329 3330
+            3331:   3217(ptr) AccessChain 34(data) 3324 3216 55
+            3332: 27(int64_t) CompositeExtract 3328 1
+                              Store 3331 3332
+            3333:   3217(ptr) AccessChain 34(data) 3324 3216 69
+            3334: 27(int64_t) CompositeExtract 3328 2
+                              Store 3333 3334
+            3335:      6(int) Load 8(invocation)
+            3336:   3224(ptr) AccessChain 34(data) 73 3216
             3337: 28(i64vec4) Load 3336
-            3338: 28(i64vec4) VectorShuffle 3337 3335 4 5 6 3
-                              Store 3336 3338
-            3339:      6(int) Load 8(invocation)
-            3340:   2802(ptr) AccessChain 34(data) 67 2794
-            3341: 28(i64vec4) Load 3340
-            3342: 28(i64vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 3341
-            3343:   2802(ptr) AccessChain 34(data) 3339 2794
-                              Store 3343 3342
-            3344:      6(int) Load 8(invocation)
-            3347:   3346(ptr) AccessChain 34(data) 37 3345 38
-            3348:29(float16_t) Load 3347
-            3349:29(float16_t) GroupNonUniformFAdd 42 Reduce 3348
-            3350:   3346(ptr) AccessChain 34(data) 3344 3345 38
-                              Store 3350 3349
-            3351:      6(int) Load 8(invocation)
-            3354:   3353(ptr) AccessChain 34(data) 46 3345
-            3355: 30(f16vec4) Load 3354
-            3356:3352(f16vec2) VectorShuffle 3355 3355 0 1
-            3357:3352(f16vec2) GroupNonUniformFAdd 42 Reduce 3356
-            3358:   3353(ptr) AccessChain 34(data) 3351 3345
-            3359: 30(f16vec4) Load 3358
-            3360: 30(f16vec4) VectorShuffle 3359 3357 4 5 2 3
-                              Store 3358 3360
-            3361:      6(int) Load 8(invocation)
-            3363:   3353(ptr) AccessChain 34(data) 57 3345
-            3364: 30(f16vec4) Load 3363
-            3365:3362(f16vec3) VectorShuffle 3364 3364 0 1 2
-            3366:3362(f16vec3) GroupNonUniformFAdd 42 Reduce 3365
-            3367:   3353(ptr) AccessChain 34(data) 3361 3345
-            3368: 30(f16vec4) Load 3367
-            3369: 30(f16vec4) VectorShuffle 3368 3366 4 5 6 3
-                              Store 3367 3369
+            3338: 28(i64vec4) GroupNonUniformUMax 42 Reduce 3337
+            3339:   3224(ptr) AccessChain 34(data) 3335 3216
+                              Store 3339 3338
+            3340:      6(int) Load 8(invocation)
+            3341:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3342: 27(int64_t) Load 3341
+            3343: 27(int64_t) GroupNonUniformBitwiseAnd 42 Reduce 3342
+            3344:   3217(ptr) AccessChain 34(data) 3340 3216 38
+                              Store 3344 3343
+            3345:      6(int) Load 8(invocation)
+            3346:   3224(ptr) AccessChain 34(data) 46 3216
+            3347: 28(i64vec4) Load 3346
+            3348:3223(i64vec2) VectorShuffle 3347 3347 0 1
+            3349:3223(i64vec2) GroupNonUniformBitwiseAnd 42 Reduce 3348
+            3350:   3217(ptr) AccessChain 34(data) 3345 3216 38
+            3351: 27(int64_t) CompositeExtract 3349 0
+                              Store 3350 3351
+            3352:   3217(ptr) AccessChain 34(data) 3345 3216 55
+            3353: 27(int64_t) CompositeExtract 3349 1
+                              Store 3352 3353
+            3354:      6(int) Load 8(invocation)
+            3355:   3224(ptr) AccessChain 34(data) 59 3216
+            3356: 28(i64vec4) Load 3355
+            3357:3234(i64vec3) VectorShuffle 3356 3356 0 1 2
+            3358:3234(i64vec3) GroupNonUniformBitwiseAnd 42 Reduce 3357
+            3359:   3217(ptr) AccessChain 34(data) 3354 3216 38
+            3360: 27(int64_t) CompositeExtract 3358 0
+                              Store 3359 3360
+            3361:   3217(ptr) AccessChain 34(data) 3354 3216 55
+            3362: 27(int64_t) CompositeExtract 3358 1
+                              Store 3361 3362
+            3363:   3217(ptr) AccessChain 34(data) 3354 3216 69
+            3364: 27(int64_t) CompositeExtract 3358 2
+                              Store 3363 3364
+            3365:      6(int) Load 8(invocation)
+            3366:   3224(ptr) AccessChain 34(data) 73 3216
+            3367: 28(i64vec4) Load 3366
+            3368: 28(i64vec4) GroupNonUniformBitwiseAnd 42 Reduce 3367
+            3369:   3224(ptr) AccessChain 34(data) 3365 3216
+                              Store 3369 3368
             3370:      6(int) Load 8(invocation)
-            3371:   3353(ptr) AccessChain 34(data) 67 3345
-            3372: 30(f16vec4) Load 3371
-            3373: 30(f16vec4) GroupNonUniformFAdd 42 Reduce 3372
-            3374:   3353(ptr) AccessChain 34(data) 3370 3345
+            3371:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3372: 27(int64_t) Load 3371
+            3373: 27(int64_t) GroupNonUniformBitwiseOr 42 Reduce 3372
+            3374:   3217(ptr) AccessChain 34(data) 3370 3216 38
                               Store 3374 3373
             3375:      6(int) Load 8(invocation)
-            3376:   3346(ptr) AccessChain 34(data) 37 3345 38
-            3377:29(float16_t) Load 3376
-            3378:29(float16_t) GroupNonUniformFMul 42 Reduce 3377
-            3379:   3346(ptr) AccessChain 34(data) 3375 3345 38
-                              Store 3379 3378
-            3380:      6(int) Load 8(invocation)
-            3381:   3353(ptr) AccessChain 34(data) 46 3345
-            3382: 30(f16vec4) Load 3381
-            3383:3352(f16vec2) VectorShuffle 3382 3382 0 1
-            3384:3352(f16vec2) GroupNonUniformFMul 42 Reduce 3383
-            3385:   3353(ptr) AccessChain 34(data) 3380 3345
-            3386: 30(f16vec4) Load 3385
-            3387: 30(f16vec4) VectorShuffle 3386 3384 4 5 2 3
-                              Store 3385 3387
-            3388:      6(int) Load 8(invocation)
-            3389:   3353(ptr) AccessChain 34(data) 57 3345
-            3390: 30(f16vec4) Load 3389
-            3391:3362(f16vec3) VectorShuffle 3390 3390 0 1 2
-            3392:3362(f16vec3) GroupNonUniformFMul 42 Reduce 3391
-            3393:   3353(ptr) AccessChain 34(data) 3388 3345
-            3394: 30(f16vec4) Load 3393
-            3395: 30(f16vec4) VectorShuffle 3394 3392 4 5 6 3
-                              Store 3393 3395
-            3396:      6(int) Load 8(invocation)
-            3397:   3353(ptr) AccessChain 34(data) 67 3345
-            3398: 30(f16vec4) Load 3397
-            3399: 30(f16vec4) GroupNonUniformFMul 42 Reduce 3398
-            3400:   3353(ptr) AccessChain 34(data) 3396 3345
-                              Store 3400 3399
-            3401:      6(int) Load 8(invocation)
-            3402:   3346(ptr) AccessChain 34(data) 37 3345 38
-            3403:29(float16_t) Load 3402
-            3404:29(float16_t) GroupNonUniformFMin 42 Reduce 3403
-            3405:   3346(ptr) AccessChain 34(data) 3401 3345 38
-                              Store 3405 3404
-            3406:      6(int) Load 8(invocation)
-            3407:   3353(ptr) AccessChain 34(data) 46 3345
-            3408: 30(f16vec4) Load 3407
-            3409:3352(f16vec2) VectorShuffle 3408 3408 0 1
-            3410:3352(f16vec2) GroupNonUniformFMin 42 Reduce 3409
-            3411:   3353(ptr) AccessChain 34(data) 3406 3345
-            3412: 30(f16vec4) Load 3411
-            3413: 30(f16vec4) VectorShuffle 3412 3410 4 5 2 3
-                              Store 3411 3413
+            3376:   3224(ptr) AccessChain 34(data) 46 3216
+            3377: 28(i64vec4) Load 3376
+            3378:3223(i64vec2) VectorShuffle 3377 3377 0 1
+            3379:3223(i64vec2) GroupNonUniformBitwiseOr 42 Reduce 3378
+            3380:   3217(ptr) AccessChain 34(data) 3375 3216 38
+            3381: 27(int64_t) CompositeExtract 3379 0
+                              Store 3380 3381
+            3382:   3217(ptr) AccessChain 34(data) 3375 3216 55
+            3383: 27(int64_t) CompositeExtract 3379 1
+                              Store 3382 3383
+            3384:      6(int) Load 8(invocation)
+            3385:   3224(ptr) AccessChain 34(data) 59 3216
+            3386: 28(i64vec4) Load 3385
+            3387:3234(i64vec3) VectorShuffle 3386 3386 0 1 2
+            3388:3234(i64vec3) GroupNonUniformBitwiseOr 42 Reduce 3387
+            3389:   3217(ptr) AccessChain 34(data) 3384 3216 38
+            3390: 27(int64_t) CompositeExtract 3388 0
+                              Store 3389 3390
+            3391:   3217(ptr) AccessChain 34(data) 3384 3216 55
+            3392: 27(int64_t) CompositeExtract 3388 1
+                              Store 3391 3392
+            3393:   3217(ptr) AccessChain 34(data) 3384 3216 69
+            3394: 27(int64_t) CompositeExtract 3388 2
+                              Store 3393 3394
+            3395:      6(int) Load 8(invocation)
+            3396:   3224(ptr) AccessChain 34(data) 73 3216
+            3397: 28(i64vec4) Load 3396
+            3398: 28(i64vec4) GroupNonUniformBitwiseOr 42 Reduce 3397
+            3399:   3224(ptr) AccessChain 34(data) 3395 3216
+                              Store 3399 3398
+            3400:      6(int) Load 8(invocation)
+            3401:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3402: 27(int64_t) Load 3401
+            3403: 27(int64_t) GroupNonUniformBitwiseXor 42 Reduce 3402
+            3404:   3217(ptr) AccessChain 34(data) 3400 3216 38
+                              Store 3404 3403
+            3405:      6(int) Load 8(invocation)
+            3406:   3224(ptr) AccessChain 34(data) 46 3216
+            3407: 28(i64vec4) Load 3406
+            3408:3223(i64vec2) VectorShuffle 3407 3407 0 1
+            3409:3223(i64vec2) GroupNonUniformBitwiseXor 42 Reduce 3408
+            3410:   3217(ptr) AccessChain 34(data) 3405 3216 38
+            3411: 27(int64_t) CompositeExtract 3409 0
+                              Store 3410 3411
+            3412:   3217(ptr) AccessChain 34(data) 3405 3216 55
+            3413: 27(int64_t) CompositeExtract 3409 1
+                              Store 3412 3413
             3414:      6(int) Load 8(invocation)
-            3415:   3353(ptr) AccessChain 34(data) 57 3345
-            3416: 30(f16vec4) Load 3415
-            3417:3362(f16vec3) VectorShuffle 3416 3416 0 1 2
-            3418:3362(f16vec3) GroupNonUniformFMin 42 Reduce 3417
-            3419:   3353(ptr) AccessChain 34(data) 3414 3345
-            3420: 30(f16vec4) Load 3419
-            3421: 30(f16vec4) VectorShuffle 3420 3418 4 5 6 3
-                              Store 3419 3421
-            3422:      6(int) Load 8(invocation)
-            3423:   3353(ptr) AccessChain 34(data) 67 3345
-            3424: 30(f16vec4) Load 3423
-            3425: 30(f16vec4) GroupNonUniformFMin 42 Reduce 3424
-            3426:   3353(ptr) AccessChain 34(data) 3422 3345
-                              Store 3426 3425
-            3427:      6(int) Load 8(invocation)
-            3428:   3346(ptr) AccessChain 34(data) 37 3345 38
-            3429:29(float16_t) Load 3428
-            3430:29(float16_t) GroupNonUniformFMax 42 Reduce 3429
-            3431:   3346(ptr) AccessChain 34(data) 3427 3345 38
-                              Store 3431 3430
-            3432:      6(int) Load 8(invocation)
-            3433:   3353(ptr) AccessChain 34(data) 46 3345
-            3434: 30(f16vec4) Load 3433
-            3435:3352(f16vec2) VectorShuffle 3434 3434 0 1
-            3436:3352(f16vec2) GroupNonUniformFMax 42 Reduce 3435
-            3437:   3353(ptr) AccessChain 34(data) 3432 3345
-            3438: 30(f16vec4) Load 3437
-            3439: 30(f16vec4) VectorShuffle 3438 3436 4 5 2 3
-                              Store 3437 3439
-            3440:      6(int) Load 8(invocation)
-            3441:   3353(ptr) AccessChain 34(data) 57 3345
-            3442: 30(f16vec4) Load 3441
-            3443:3362(f16vec3) VectorShuffle 3442 3442 0 1 2
-            3444:3362(f16vec3) GroupNonUniformFMax 42 Reduce 3443
-            3445:   3353(ptr) AccessChain 34(data) 3440 3345
-            3446: 30(f16vec4) Load 3445
-            3447: 30(f16vec4) VectorShuffle 3446 3444 4 5 6 3
-                              Store 3445 3447
-            3448:      6(int) Load 8(invocation)
-            3449:   3353(ptr) AccessChain 34(data) 67 3345
-            3450: 30(f16vec4) Load 3449
-            3451: 30(f16vec4) GroupNonUniformFMax 42 Reduce 3450
-            3452:   3353(ptr) AccessChain 34(data) 3448 3345
-                              Store 3452 3451
-            3453:      6(int) Load 8(invocation)
-            3454:   3346(ptr) AccessChain 34(data) 37 3345 38
-            3455:29(float16_t) Load 3454
-            3456:29(float16_t) GroupNonUniformFAdd 42 InclusiveScan 3455
-            3457:   3346(ptr) AccessChain 34(data) 3453 3345 38
-                              Store 3457 3456
-            3458:      6(int) Load 8(invocation)
-            3459:   3353(ptr) AccessChain 34(data) 46 3345
-            3460: 30(f16vec4) Load 3459
-            3461:3352(f16vec2) VectorShuffle 3460 3460 0 1
-            3462:3352(f16vec2) GroupNonUniformFAdd 42 InclusiveScan 3461
-            3463:   3353(ptr) AccessChain 34(data) 3458 3345
-            3464: 30(f16vec4) Load 3463
-            3465: 30(f16vec4) VectorShuffle 3464 3462 4 5 2 3
-                              Store 3463 3465
-            3466:      6(int) Load 8(invocation)
-            3467:   3353(ptr) AccessChain 34(data) 57 3345
-            3468: 30(f16vec4) Load 3467
-            3469:3362(f16vec3) VectorShuffle 3468 3468 0 1 2
-            3470:3362(f16vec3) GroupNonUniformFAdd 42 InclusiveScan 3469
-            3471:   3353(ptr) AccessChain 34(data) 3466 3345
-            3472: 30(f16vec4) Load 3471
-            3473: 30(f16vec4) VectorShuffle 3472 3470 4 5 6 3
-                              Store 3471 3473
+            3415:   3224(ptr) AccessChain 34(data) 59 3216
+            3416: 28(i64vec4) Load 3415
+            3417:3234(i64vec3) VectorShuffle 3416 3416 0 1 2
+            3418:3234(i64vec3) GroupNonUniformBitwiseXor 42 Reduce 3417
+            3419:   3217(ptr) AccessChain 34(data) 3414 3216 38
+            3420: 27(int64_t) CompositeExtract 3418 0
+                              Store 3419 3420
+            3421:   3217(ptr) AccessChain 34(data) 3414 3216 55
+            3422: 27(int64_t) CompositeExtract 3418 1
+                              Store 3421 3422
+            3423:   3217(ptr) AccessChain 34(data) 3414 3216 69
+            3424: 27(int64_t) CompositeExtract 3418 2
+                              Store 3423 3424
+            3425:      6(int) Load 8(invocation)
+            3426:   3224(ptr) AccessChain 34(data) 73 3216
+            3427: 28(i64vec4) Load 3426
+            3428: 28(i64vec4) GroupNonUniformBitwiseXor 42 Reduce 3427
+            3429:   3224(ptr) AccessChain 34(data) 3425 3216
+                              Store 3429 3428
+            3430:      6(int) Load 8(invocation)
+            3431:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3432: 27(int64_t) Load 3431
+            3433: 27(int64_t) GroupNonUniformIAdd 42 InclusiveScan 3432
+            3434:   3217(ptr) AccessChain 34(data) 3430 3216 38
+                              Store 3434 3433
+            3435:      6(int) Load 8(invocation)
+            3436:   3224(ptr) AccessChain 34(data) 46 3216
+            3437: 28(i64vec4) Load 3436
+            3438:3223(i64vec2) VectorShuffle 3437 3437 0 1
+            3439:3223(i64vec2) GroupNonUniformIAdd 42 InclusiveScan 3438
+            3440:   3217(ptr) AccessChain 34(data) 3435 3216 38
+            3441: 27(int64_t) CompositeExtract 3439 0
+                              Store 3440 3441
+            3442:   3217(ptr) AccessChain 34(data) 3435 3216 55
+            3443: 27(int64_t) CompositeExtract 3439 1
+                              Store 3442 3443
+            3444:      6(int) Load 8(invocation)
+            3445:   3224(ptr) AccessChain 34(data) 59 3216
+            3446: 28(i64vec4) Load 3445
+            3447:3234(i64vec3) VectorShuffle 3446 3446 0 1 2
+            3448:3234(i64vec3) GroupNonUniformIAdd 42 InclusiveScan 3447
+            3449:   3217(ptr) AccessChain 34(data) 3444 3216 38
+            3450: 27(int64_t) CompositeExtract 3448 0
+                              Store 3449 3450
+            3451:   3217(ptr) AccessChain 34(data) 3444 3216 55
+            3452: 27(int64_t) CompositeExtract 3448 1
+                              Store 3451 3452
+            3453:   3217(ptr) AccessChain 34(data) 3444 3216 69
+            3454: 27(int64_t) CompositeExtract 3448 2
+                              Store 3453 3454
+            3455:      6(int) Load 8(invocation)
+            3456:   3224(ptr) AccessChain 34(data) 73 3216
+            3457: 28(i64vec4) Load 3456
+            3458: 28(i64vec4) GroupNonUniformIAdd 42 InclusiveScan 3457
+            3459:   3224(ptr) AccessChain 34(data) 3455 3216
+                              Store 3459 3458
+            3460:      6(int) Load 8(invocation)
+            3461:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3462: 27(int64_t) Load 3461
+            3463: 27(int64_t) GroupNonUniformIMul 42 InclusiveScan 3462
+            3464:   3217(ptr) AccessChain 34(data) 3460 3216 38
+                              Store 3464 3463
+            3465:      6(int) Load 8(invocation)
+            3466:   3224(ptr) AccessChain 34(data) 46 3216
+            3467: 28(i64vec4) Load 3466
+            3468:3223(i64vec2) VectorShuffle 3467 3467 0 1
+            3469:3223(i64vec2) GroupNonUniformIMul 42 InclusiveScan 3468
+            3470:   3217(ptr) AccessChain 34(data) 3465 3216 38
+            3471: 27(int64_t) CompositeExtract 3469 0
+                              Store 3470 3471
+            3472:   3217(ptr) AccessChain 34(data) 3465 3216 55
+            3473: 27(int64_t) CompositeExtract 3469 1
+                              Store 3472 3473
             3474:      6(int) Load 8(invocation)
-            3475:   3353(ptr) AccessChain 34(data) 67 3345
-            3476: 30(f16vec4) Load 3475
-            3477: 30(f16vec4) GroupNonUniformFAdd 42 InclusiveScan 3476
-            3478:   3353(ptr) AccessChain 34(data) 3474 3345
-                              Store 3478 3477
-            3479:      6(int) Load 8(invocation)
-            3480:   3346(ptr) AccessChain 34(data) 37 3345 38
-            3481:29(float16_t) Load 3480
-            3482:29(float16_t) GroupNonUniformFMul 42 InclusiveScan 3481
-            3483:   3346(ptr) AccessChain 34(data) 3479 3345 38
-                              Store 3483 3482
-            3484:      6(int) Load 8(invocation)
-            3485:   3353(ptr) AccessChain 34(data) 46 3345
-            3486: 30(f16vec4) Load 3485
-            3487:3352(f16vec2) VectorShuffle 3486 3486 0 1
-            3488:3352(f16vec2) GroupNonUniformFMul 42 InclusiveScan 3487
-            3489:   3353(ptr) AccessChain 34(data) 3484 3345
-            3490: 30(f16vec4) Load 3489
-            3491: 30(f16vec4) VectorShuffle 3490 3488 4 5 2 3
-                              Store 3489 3491
-            3492:      6(int) Load 8(invocation)
-            3493:   3353(ptr) AccessChain 34(data) 57 3345
-            3494: 30(f16vec4) Load 3493
-            3495:3362(f16vec3) VectorShuffle 3494 3494 0 1 2
-            3496:3362(f16vec3) GroupNonUniformFMul 42 InclusiveScan 3495
-            3497:   3353(ptr) AccessChain 34(data) 3492 3345
-            3498: 30(f16vec4) Load 3497
-            3499: 30(f16vec4) VectorShuffle 3498 3496 4 5 6 3
-                              Store 3497 3499
-            3500:      6(int) Load 8(invocation)
-            3501:   3353(ptr) AccessChain 34(data) 67 3345
-            3502: 30(f16vec4) Load 3501
-            3503: 30(f16vec4) GroupNonUniformFMul 42 InclusiveScan 3502
-            3504:   3353(ptr) AccessChain 34(data) 3500 3345
-                              Store 3504 3503
-            3505:      6(int) Load 8(invocation)
-            3506:   3346(ptr) AccessChain 34(data) 37 3345 38
-            3507:29(float16_t) Load 3506
-            3508:29(float16_t) GroupNonUniformFMin 42 InclusiveScan 3507
-            3509:   3346(ptr) AccessChain 34(data) 3505 3345 38
-                              Store 3509 3508
-            3510:      6(int) Load 8(invocation)
-            3511:   3353(ptr) AccessChain 34(data) 46 3345
-            3512: 30(f16vec4) Load 3511
-            3513:3352(f16vec2) VectorShuffle 3512 3512 0 1
-            3514:3352(f16vec2) GroupNonUniformFMin 42 InclusiveScan 3513
-            3515:   3353(ptr) AccessChain 34(data) 3510 3345
-            3516: 30(f16vec4) Load 3515
-            3517: 30(f16vec4) VectorShuffle 3516 3514 4 5 2 3
-                              Store 3515 3517
-            3518:      6(int) Load 8(invocation)
-            3519:   3353(ptr) AccessChain 34(data) 57 3345
-            3520: 30(f16vec4) Load 3519
-            3521:3362(f16vec3) VectorShuffle 3520 3520 0 1 2
-            3522:3362(f16vec3) GroupNonUniformFMin 42 InclusiveScan 3521
-            3523:   3353(ptr) AccessChain 34(data) 3518 3345
-            3524: 30(f16vec4) Load 3523
-            3525: 30(f16vec4) VectorShuffle 3524 3522 4 5 6 3
-                              Store 3523 3525
-            3526:      6(int) Load 8(invocation)
-            3527:   3353(ptr) AccessChain 34(data) 67 3345
-            3528: 30(f16vec4) Load 3527
-            3529: 30(f16vec4) GroupNonUniformFMin 42 InclusiveScan 3528
-            3530:   3353(ptr) AccessChain 34(data) 3526 3345
-                              Store 3530 3529
-            3531:      6(int) Load 8(invocation)
-            3532:   3346(ptr) AccessChain 34(data) 37 3345 38
-            3533:29(float16_t) Load 3532
-            3534:29(float16_t) GroupNonUniformFMax 42 InclusiveScan 3533
-            3535:   3346(ptr) AccessChain 34(data) 3531 3345 38
-                              Store 3535 3534
-            3536:      6(int) Load 8(invocation)
-            3537:   3353(ptr) AccessChain 34(data) 46 3345
-            3538: 30(f16vec4) Load 3537
-            3539:3352(f16vec2) VectorShuffle 3538 3538 0 1
-            3540:3352(f16vec2) GroupNonUniformFMax 42 InclusiveScan 3539
-            3541:   3353(ptr) AccessChain 34(data) 3536 3345
-            3542: 30(f16vec4) Load 3541
-            3543: 30(f16vec4) VectorShuffle 3542 3540 4 5 2 3
-                              Store 3541 3543
-            3544:      6(int) Load 8(invocation)
-            3545:   3353(ptr) AccessChain 34(data) 57 3345
-            3546: 30(f16vec4) Load 3545
-            3547:3362(f16vec3) VectorShuffle 3546 3546 0 1 2
-            3548:3362(f16vec3) GroupNonUniformFMax 42 InclusiveScan 3547
-            3549:   3353(ptr) AccessChain 34(data) 3544 3345
-            3550: 30(f16vec4) Load 3549
-            3551: 30(f16vec4) VectorShuffle 3550 3548 4 5 6 3
-                              Store 3549 3551
-            3552:      6(int) Load 8(invocation)
-            3553:   3353(ptr) AccessChain 34(data) 67 3345
-            3554: 30(f16vec4) Load 3553
-            3555: 30(f16vec4) GroupNonUniformFMax 42 InclusiveScan 3554
-            3556:   3353(ptr) AccessChain 34(data) 3552 3345
-                              Store 3556 3555
-            3557:      6(int) Load 8(invocation)
-            3558:   3346(ptr) AccessChain 34(data) 37 3345 38
-            3559:29(float16_t) Load 3558
-            3560:29(float16_t) GroupNonUniformFAdd 42 ExclusiveScan 3559
-            3561:   3346(ptr) AccessChain 34(data) 3557 3345 38
-                              Store 3561 3560
-            3562:      6(int) Load 8(invocation)
-            3563:   3353(ptr) AccessChain 34(data) 46 3345
-            3564: 30(f16vec4) Load 3563
-            3565:3352(f16vec2) VectorShuffle 3564 3564 0 1
-            3566:3352(f16vec2) GroupNonUniformFAdd 42 ExclusiveScan 3565
-            3567:   3353(ptr) AccessChain 34(data) 3562 3345
-            3568: 30(f16vec4) Load 3567
-            3569: 30(f16vec4) VectorShuffle 3568 3566 4 5 2 3
-                              Store 3567 3569
-            3570:      6(int) Load 8(invocation)
-            3571:   3353(ptr) AccessChain 34(data) 57 3345
-            3572: 30(f16vec4) Load 3571
-            3573:3362(f16vec3) VectorShuffle 3572 3572 0 1 2
-            3574:3362(f16vec3) GroupNonUniformFAdd 42 ExclusiveScan 3573
-            3575:   3353(ptr) AccessChain 34(data) 3570 3345
-            3576: 30(f16vec4) Load 3575
-            3577: 30(f16vec4) VectorShuffle 3576 3574 4 5 6 3
-                              Store 3575 3577
-            3578:      6(int) Load 8(invocation)
-            3579:   3353(ptr) AccessChain 34(data) 67 3345
-            3580: 30(f16vec4) Load 3579
-            3581: 30(f16vec4) GroupNonUniformFAdd 42 ExclusiveScan 3580
-            3582:   3353(ptr) AccessChain 34(data) 3578 3345
-                              Store 3582 3581
-            3583:      6(int) Load 8(invocation)
-            3584:   3346(ptr) AccessChain 34(data) 37 3345 38
-            3585:29(float16_t) Load 3584
-            3586:29(float16_t) GroupNonUniformFMul 42 ExclusiveScan 3585
-            3587:   3346(ptr) AccessChain 34(data) 3583 3345 38
-                              Store 3587 3586
-            3588:      6(int) Load 8(invocation)
-            3589:   3353(ptr) AccessChain 34(data) 46 3345
-            3590: 30(f16vec4) Load 3589
-            3591:3352(f16vec2) VectorShuffle 3590 3590 0 1
-            3592:3352(f16vec2) GroupNonUniformFMul 42 ExclusiveScan 3591
-            3593:   3353(ptr) AccessChain 34(data) 3588 3345
-            3594: 30(f16vec4) Load 3593
-            3595: 30(f16vec4) VectorShuffle 3594 3592 4 5 2 3
-                              Store 3593 3595
-            3596:      6(int) Load 8(invocation)
-            3597:   3353(ptr) AccessChain 34(data) 57 3345
-            3598: 30(f16vec4) Load 3597
-            3599:3362(f16vec3) VectorShuffle 3598 3598 0 1 2
-            3600:3362(f16vec3) GroupNonUniformFMul 42 ExclusiveScan 3599
-            3601:   3353(ptr) AccessChain 34(data) 3596 3345
-            3602: 30(f16vec4) Load 3601
-            3603: 30(f16vec4) VectorShuffle 3602 3600 4 5 6 3
-                              Store 3601 3603
-            3604:      6(int) Load 8(invocation)
-            3605:   3353(ptr) AccessChain 34(data) 67 3345
-            3606: 30(f16vec4) Load 3605
-            3607: 30(f16vec4) GroupNonUniformFMul 42 ExclusiveScan 3606
-            3608:   3353(ptr) AccessChain 34(data) 3604 3345
-                              Store 3608 3607
-            3609:      6(int) Load 8(invocation)
-            3610:   3346(ptr) AccessChain 34(data) 37 3345 38
-            3611:29(float16_t) Load 3610
-            3612:29(float16_t) GroupNonUniformFMin 42 ExclusiveScan 3611
-            3613:   3346(ptr) AccessChain 34(data) 3609 3345 38
-                              Store 3613 3612
-            3614:      6(int) Load 8(invocation)
-            3615:   3353(ptr) AccessChain 34(data) 46 3345
-            3616: 30(f16vec4) Load 3615
-            3617:3352(f16vec2) VectorShuffle 3616 3616 0 1
-            3618:3352(f16vec2) GroupNonUniformFMin 42 ExclusiveScan 3617
-            3619:   3353(ptr) AccessChain 34(data) 3614 3345
-            3620: 30(f16vec4) Load 3619
-            3621: 30(f16vec4) VectorShuffle 3620 3618 4 5 2 3
-                              Store 3619 3621
-            3622:      6(int) Load 8(invocation)
-            3623:   3353(ptr) AccessChain 34(data) 57 3345
-            3624: 30(f16vec4) Load 3623
-            3625:3362(f16vec3) VectorShuffle 3624 3624 0 1 2
-            3626:3362(f16vec3) GroupNonUniformFMin 42 ExclusiveScan 3625
-            3627:   3353(ptr) AccessChain 34(data) 3622 3345
-            3628: 30(f16vec4) Load 3627
-            3629: 30(f16vec4) VectorShuffle 3628 3626 4 5 6 3
-                              Store 3627 3629
-            3630:      6(int) Load 8(invocation)
-            3631:   3353(ptr) AccessChain 34(data) 67 3345
-            3632: 30(f16vec4) Load 3631
-            3633: 30(f16vec4) GroupNonUniformFMin 42 ExclusiveScan 3632
-            3634:   3353(ptr) AccessChain 34(data) 3630 3345
-                              Store 3634 3633
+            3475:   3224(ptr) AccessChain 34(data) 59 3216
+            3476: 28(i64vec4) Load 3475
+            3477:3234(i64vec3) VectorShuffle 3476 3476 0 1 2
+            3478:3234(i64vec3) GroupNonUniformIMul 42 InclusiveScan 3477
+            3479:   3217(ptr) AccessChain 34(data) 3474 3216 38
+            3480: 27(int64_t) CompositeExtract 3478 0
+                              Store 3479 3480
+            3481:   3217(ptr) AccessChain 34(data) 3474 3216 55
+            3482: 27(int64_t) CompositeExtract 3478 1
+                              Store 3481 3482
+            3483:   3217(ptr) AccessChain 34(data) 3474 3216 69
+            3484: 27(int64_t) CompositeExtract 3478 2
+                              Store 3483 3484
+            3485:      6(int) Load 8(invocation)
+            3486:   3224(ptr) AccessChain 34(data) 73 3216
+            3487: 28(i64vec4) Load 3486
+            3488: 28(i64vec4) GroupNonUniformIMul 42 InclusiveScan 3487
+            3489:   3224(ptr) AccessChain 34(data) 3485 3216
+                              Store 3489 3488
+            3490:      6(int) Load 8(invocation)
+            3491:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3492: 27(int64_t) Load 3491
+            3493: 27(int64_t) GroupNonUniformUMin 42 InclusiveScan 3492
+            3494:   3217(ptr) AccessChain 34(data) 3490 3216 38
+                              Store 3494 3493
+            3495:      6(int) Load 8(invocation)
+            3496:   3224(ptr) AccessChain 34(data) 46 3216
+            3497: 28(i64vec4) Load 3496
+            3498:3223(i64vec2) VectorShuffle 3497 3497 0 1
+            3499:3223(i64vec2) GroupNonUniformUMin 42 InclusiveScan 3498
+            3500:   3217(ptr) AccessChain 34(data) 3495 3216 38
+            3501: 27(int64_t) CompositeExtract 3499 0
+                              Store 3500 3501
+            3502:   3217(ptr) AccessChain 34(data) 3495 3216 55
+            3503: 27(int64_t) CompositeExtract 3499 1
+                              Store 3502 3503
+            3504:      6(int) Load 8(invocation)
+            3505:   3224(ptr) AccessChain 34(data) 59 3216
+            3506: 28(i64vec4) Load 3505
+            3507:3234(i64vec3) VectorShuffle 3506 3506 0 1 2
+            3508:3234(i64vec3) GroupNonUniformUMin 42 InclusiveScan 3507
+            3509:   3217(ptr) AccessChain 34(data) 3504 3216 38
+            3510: 27(int64_t) CompositeExtract 3508 0
+                              Store 3509 3510
+            3511:   3217(ptr) AccessChain 34(data) 3504 3216 55
+            3512: 27(int64_t) CompositeExtract 3508 1
+                              Store 3511 3512
+            3513:   3217(ptr) AccessChain 34(data) 3504 3216 69
+            3514: 27(int64_t) CompositeExtract 3508 2
+                              Store 3513 3514
+            3515:      6(int) Load 8(invocation)
+            3516:   3224(ptr) AccessChain 34(data) 73 3216
+            3517: 28(i64vec4) Load 3516
+            3518: 28(i64vec4) GroupNonUniformUMin 42 InclusiveScan 3517
+            3519:   3224(ptr) AccessChain 34(data) 3515 3216
+                              Store 3519 3518
+            3520:      6(int) Load 8(invocation)
+            3521:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3522: 27(int64_t) Load 3521
+            3523: 27(int64_t) GroupNonUniformUMax 42 InclusiveScan 3522
+            3524:   3217(ptr) AccessChain 34(data) 3520 3216 38
+                              Store 3524 3523
+            3525:      6(int) Load 8(invocation)
+            3526:   3224(ptr) AccessChain 34(data) 46 3216
+            3527: 28(i64vec4) Load 3526
+            3528:3223(i64vec2) VectorShuffle 3527 3527 0 1
+            3529:3223(i64vec2) GroupNonUniformUMax 42 InclusiveScan 3528
+            3530:   3217(ptr) AccessChain 34(data) 3525 3216 38
+            3531: 27(int64_t) CompositeExtract 3529 0
+                              Store 3530 3531
+            3532:   3217(ptr) AccessChain 34(data) 3525 3216 55
+            3533: 27(int64_t) CompositeExtract 3529 1
+                              Store 3532 3533
+            3534:      6(int) Load 8(invocation)
+            3535:   3224(ptr) AccessChain 34(data) 59 3216
+            3536: 28(i64vec4) Load 3535
+            3537:3234(i64vec3) VectorShuffle 3536 3536 0 1 2
+            3538:3234(i64vec3) GroupNonUniformUMax 42 InclusiveScan 3537
+            3539:   3217(ptr) AccessChain 34(data) 3534 3216 38
+            3540: 27(int64_t) CompositeExtract 3538 0
+                              Store 3539 3540
+            3541:   3217(ptr) AccessChain 34(data) 3534 3216 55
+            3542: 27(int64_t) CompositeExtract 3538 1
+                              Store 3541 3542
+            3543:   3217(ptr) AccessChain 34(data) 3534 3216 69
+            3544: 27(int64_t) CompositeExtract 3538 2
+                              Store 3543 3544
+            3545:      6(int) Load 8(invocation)
+            3546:   3224(ptr) AccessChain 34(data) 73 3216
+            3547: 28(i64vec4) Load 3546
+            3548: 28(i64vec4) GroupNonUniformUMax 42 InclusiveScan 3547
+            3549:   3224(ptr) AccessChain 34(data) 3545 3216
+                              Store 3549 3548
+            3550:      6(int) Load 8(invocation)
+            3551:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3552: 27(int64_t) Load 3551
+            3553: 27(int64_t) GroupNonUniformBitwiseAnd 42 InclusiveScan 3552
+            3554:   3217(ptr) AccessChain 34(data) 3550 3216 38
+                              Store 3554 3553
+            3555:      6(int) Load 8(invocation)
+            3556:   3224(ptr) AccessChain 34(data) 46 3216
+            3557: 28(i64vec4) Load 3556
+            3558:3223(i64vec2) VectorShuffle 3557 3557 0 1
+            3559:3223(i64vec2) GroupNonUniformBitwiseAnd 42 InclusiveScan 3558
+            3560:   3217(ptr) AccessChain 34(data) 3555 3216 38
+            3561: 27(int64_t) CompositeExtract 3559 0
+                              Store 3560 3561
+            3562:   3217(ptr) AccessChain 34(data) 3555 3216 55
+            3563: 27(int64_t) CompositeExtract 3559 1
+                              Store 3562 3563
+            3564:      6(int) Load 8(invocation)
+            3565:   3224(ptr) AccessChain 34(data) 59 3216
+            3566: 28(i64vec4) Load 3565
+            3567:3234(i64vec3) VectorShuffle 3566 3566 0 1 2
+            3568:3234(i64vec3) GroupNonUniformBitwiseAnd 42 InclusiveScan 3567
+            3569:   3217(ptr) AccessChain 34(data) 3564 3216 38
+            3570: 27(int64_t) CompositeExtract 3568 0
+                              Store 3569 3570
+            3571:   3217(ptr) AccessChain 34(data) 3564 3216 55
+            3572: 27(int64_t) CompositeExtract 3568 1
+                              Store 3571 3572
+            3573:   3217(ptr) AccessChain 34(data) 3564 3216 69
+            3574: 27(int64_t) CompositeExtract 3568 2
+                              Store 3573 3574
+            3575:      6(int) Load 8(invocation)
+            3576:   3224(ptr) AccessChain 34(data) 73 3216
+            3577: 28(i64vec4) Load 3576
+            3578: 28(i64vec4) GroupNonUniformBitwiseAnd 42 InclusiveScan 3577
+            3579:   3224(ptr) AccessChain 34(data) 3575 3216
+                              Store 3579 3578
+            3580:      6(int) Load 8(invocation)
+            3581:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3582: 27(int64_t) Load 3581
+            3583: 27(int64_t) GroupNonUniformBitwiseOr 42 InclusiveScan 3582
+            3584:   3217(ptr) AccessChain 34(data) 3580 3216 38
+                              Store 3584 3583
+            3585:      6(int) Load 8(invocation)
+            3586:   3224(ptr) AccessChain 34(data) 46 3216
+            3587: 28(i64vec4) Load 3586
+            3588:3223(i64vec2) VectorShuffle 3587 3587 0 1
+            3589:3223(i64vec2) GroupNonUniformBitwiseOr 42 InclusiveScan 3588
+            3590:   3217(ptr) AccessChain 34(data) 3585 3216 38
+            3591: 27(int64_t) CompositeExtract 3589 0
+                              Store 3590 3591
+            3592:   3217(ptr) AccessChain 34(data) 3585 3216 55
+            3593: 27(int64_t) CompositeExtract 3589 1
+                              Store 3592 3593
+            3594:      6(int) Load 8(invocation)
+            3595:   3224(ptr) AccessChain 34(data) 59 3216
+            3596: 28(i64vec4) Load 3595
+            3597:3234(i64vec3) VectorShuffle 3596 3596 0 1 2
+            3598:3234(i64vec3) GroupNonUniformBitwiseOr 42 InclusiveScan 3597
+            3599:   3217(ptr) AccessChain 34(data) 3594 3216 38
+            3600: 27(int64_t) CompositeExtract 3598 0
+                              Store 3599 3600
+            3601:   3217(ptr) AccessChain 34(data) 3594 3216 55
+            3602: 27(int64_t) CompositeExtract 3598 1
+                              Store 3601 3602
+            3603:   3217(ptr) AccessChain 34(data) 3594 3216 69
+            3604: 27(int64_t) CompositeExtract 3598 2
+                              Store 3603 3604
+            3605:      6(int) Load 8(invocation)
+            3606:   3224(ptr) AccessChain 34(data) 73 3216
+            3607: 28(i64vec4) Load 3606
+            3608: 28(i64vec4) GroupNonUniformBitwiseOr 42 InclusiveScan 3607
+            3609:   3224(ptr) AccessChain 34(data) 3605 3216
+                              Store 3609 3608
+            3610:      6(int) Load 8(invocation)
+            3611:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3612: 27(int64_t) Load 3611
+            3613: 27(int64_t) GroupNonUniformBitwiseXor 42 InclusiveScan 3612
+            3614:   3217(ptr) AccessChain 34(data) 3610 3216 38
+                              Store 3614 3613
+            3615:      6(int) Load 8(invocation)
+            3616:   3224(ptr) AccessChain 34(data) 46 3216
+            3617: 28(i64vec4) Load 3616
+            3618:3223(i64vec2) VectorShuffle 3617 3617 0 1
+            3619:3223(i64vec2) GroupNonUniformBitwiseXor 42 InclusiveScan 3618
+            3620:   3217(ptr) AccessChain 34(data) 3615 3216 38
+            3621: 27(int64_t) CompositeExtract 3619 0
+                              Store 3620 3621
+            3622:   3217(ptr) AccessChain 34(data) 3615 3216 55
+            3623: 27(int64_t) CompositeExtract 3619 1
+                              Store 3622 3623
+            3624:      6(int) Load 8(invocation)
+            3625:   3224(ptr) AccessChain 34(data) 59 3216
+            3626: 28(i64vec4) Load 3625
+            3627:3234(i64vec3) VectorShuffle 3626 3626 0 1 2
+            3628:3234(i64vec3) GroupNonUniformBitwiseXor 42 InclusiveScan 3627
+            3629:   3217(ptr) AccessChain 34(data) 3624 3216 38
+            3630: 27(int64_t) CompositeExtract 3628 0
+                              Store 3629 3630
+            3631:   3217(ptr) AccessChain 34(data) 3624 3216 55
+            3632: 27(int64_t) CompositeExtract 3628 1
+                              Store 3631 3632
+            3633:   3217(ptr) AccessChain 34(data) 3624 3216 69
+            3634: 27(int64_t) CompositeExtract 3628 2
+                              Store 3633 3634
             3635:      6(int) Load 8(invocation)
-            3636:   3346(ptr) AccessChain 34(data) 37 3345 38
-            3637:29(float16_t) Load 3636
-            3638:29(float16_t) GroupNonUniformFMax 42 ExclusiveScan 3637
-            3639:   3346(ptr) AccessChain 34(data) 3635 3345 38
+            3636:   3224(ptr) AccessChain 34(data) 73 3216
+            3637: 28(i64vec4) Load 3636
+            3638: 28(i64vec4) GroupNonUniformBitwiseXor 42 InclusiveScan 3637
+            3639:   3224(ptr) AccessChain 34(data) 3635 3216
                               Store 3639 3638
             3640:      6(int) Load 8(invocation)
-            3641:   3353(ptr) AccessChain 34(data) 46 3345
-            3642: 30(f16vec4) Load 3641
-            3643:3352(f16vec2) VectorShuffle 3642 3642 0 1
-            3644:3352(f16vec2) GroupNonUniformFMax 42 ExclusiveScan 3643
-            3645:   3353(ptr) AccessChain 34(data) 3640 3345
-            3646: 30(f16vec4) Load 3645
-            3647: 30(f16vec4) VectorShuffle 3646 3644 4 5 2 3
-                              Store 3645 3647
-            3648:      6(int) Load 8(invocation)
-            3649:   3353(ptr) AccessChain 34(data) 57 3345
-            3650: 30(f16vec4) Load 3649
-            3651:3362(f16vec3) VectorShuffle 3650 3650 0 1 2
-            3652:3362(f16vec3) GroupNonUniformFMax 42 ExclusiveScan 3651
-            3653:   3353(ptr) AccessChain 34(data) 3648 3345
-            3654: 30(f16vec4) Load 3653
-            3655: 30(f16vec4) VectorShuffle 3654 3652 4 5 6 3
-                              Store 3653 3655
-            3656:      6(int) Load 8(invocation)
-            3657:   3353(ptr) AccessChain 34(data) 67 3345
-            3658: 30(f16vec4) Load 3657
-            3659: 30(f16vec4) GroupNonUniformFMax 42 ExclusiveScan 3658
-            3660:   3353(ptr) AccessChain 34(data) 3656 3345
-                              Store 3660 3659
+            3641:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3642: 27(int64_t) Load 3641
+            3643: 27(int64_t) GroupNonUniformIAdd 42 ExclusiveScan 3642
+            3644:   3217(ptr) AccessChain 34(data) 3640 3216 38
+                              Store 3644 3643
+            3645:      6(int) Load 8(invocation)
+            3646:   3224(ptr) AccessChain 34(data) 46 3216
+            3647: 28(i64vec4) Load 3646
+            3648:3223(i64vec2) VectorShuffle 3647 3647 0 1
+            3649:3223(i64vec2) GroupNonUniformIAdd 42 ExclusiveScan 3648
+            3650:   3217(ptr) AccessChain 34(data) 3645 3216 38
+            3651: 27(int64_t) CompositeExtract 3649 0
+                              Store 3650 3651
+            3652:   3217(ptr) AccessChain 34(data) 3645 3216 55
+            3653: 27(int64_t) CompositeExtract 3649 1
+                              Store 3652 3653
+            3654:      6(int) Load 8(invocation)
+            3655:   3224(ptr) AccessChain 34(data) 59 3216
+            3656: 28(i64vec4) Load 3655
+            3657:3234(i64vec3) VectorShuffle 3656 3656 0 1 2
+            3658:3234(i64vec3) GroupNonUniformIAdd 42 ExclusiveScan 3657
+            3659:   3217(ptr) AccessChain 34(data) 3654 3216 38
+            3660: 27(int64_t) CompositeExtract 3658 0
+                              Store 3659 3660
+            3661:   3217(ptr) AccessChain 34(data) 3654 3216 55
+            3662: 27(int64_t) CompositeExtract 3658 1
+                              Store 3661 3662
+            3663:   3217(ptr) AccessChain 34(data) 3654 3216 69
+            3664: 27(int64_t) CompositeExtract 3658 2
+                              Store 3663 3664
+            3665:      6(int) Load 8(invocation)
+            3666:   3224(ptr) AccessChain 34(data) 73 3216
+            3667: 28(i64vec4) Load 3666
+            3668: 28(i64vec4) GroupNonUniformIAdd 42 ExclusiveScan 3667
+            3669:   3224(ptr) AccessChain 34(data) 3665 3216
+                              Store 3669 3668
+            3670:      6(int) Load 8(invocation)
+            3671:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3672: 27(int64_t) Load 3671
+            3673: 27(int64_t) GroupNonUniformIMul 42 ExclusiveScan 3672
+            3674:   3217(ptr) AccessChain 34(data) 3670 3216 38
+                              Store 3674 3673
+            3675:      6(int) Load 8(invocation)
+            3676:   3224(ptr) AccessChain 34(data) 46 3216
+            3677: 28(i64vec4) Load 3676
+            3678:3223(i64vec2) VectorShuffle 3677 3677 0 1
+            3679:3223(i64vec2) GroupNonUniformIMul 42 ExclusiveScan 3678
+            3680:   3217(ptr) AccessChain 34(data) 3675 3216 38
+            3681: 27(int64_t) CompositeExtract 3679 0
+                              Store 3680 3681
+            3682:   3217(ptr) AccessChain 34(data) 3675 3216 55
+            3683: 27(int64_t) CompositeExtract 3679 1
+                              Store 3682 3683
+            3684:      6(int) Load 8(invocation)
+            3685:   3224(ptr) AccessChain 34(data) 59 3216
+            3686: 28(i64vec4) Load 3685
+            3687:3234(i64vec3) VectorShuffle 3686 3686 0 1 2
+            3688:3234(i64vec3) GroupNonUniformIMul 42 ExclusiveScan 3687
+            3689:   3217(ptr) AccessChain 34(data) 3684 3216 38
+            3690: 27(int64_t) CompositeExtract 3688 0
+                              Store 3689 3690
+            3691:   3217(ptr) AccessChain 34(data) 3684 3216 55
+            3692: 27(int64_t) CompositeExtract 3688 1
+                              Store 3691 3692
+            3693:   3217(ptr) AccessChain 34(data) 3684 3216 69
+            3694: 27(int64_t) CompositeExtract 3688 2
+                              Store 3693 3694
+            3695:      6(int) Load 8(invocation)
+            3696:   3224(ptr) AccessChain 34(data) 73 3216
+            3697: 28(i64vec4) Load 3696
+            3698: 28(i64vec4) GroupNonUniformIMul 42 ExclusiveScan 3697
+            3699:   3224(ptr) AccessChain 34(data) 3695 3216
+                              Store 3699 3698
+            3700:      6(int) Load 8(invocation)
+            3701:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3702: 27(int64_t) Load 3701
+            3703: 27(int64_t) GroupNonUniformUMin 42 ExclusiveScan 3702
+            3704:   3217(ptr) AccessChain 34(data) 3700 3216 38
+                              Store 3704 3703
+            3705:      6(int) Load 8(invocation)
+            3706:   3224(ptr) AccessChain 34(data) 46 3216
+            3707: 28(i64vec4) Load 3706
+            3708:3223(i64vec2) VectorShuffle 3707 3707 0 1
+            3709:3223(i64vec2) GroupNonUniformUMin 42 ExclusiveScan 3708
+            3710:   3217(ptr) AccessChain 34(data) 3705 3216 38
+            3711: 27(int64_t) CompositeExtract 3709 0
+                              Store 3710 3711
+            3712:   3217(ptr) AccessChain 34(data) 3705 3216 55
+            3713: 27(int64_t) CompositeExtract 3709 1
+                              Store 3712 3713
+            3714:      6(int) Load 8(invocation)
+            3715:   3224(ptr) AccessChain 34(data) 59 3216
+            3716: 28(i64vec4) Load 3715
+            3717:3234(i64vec3) VectorShuffle 3716 3716 0 1 2
+            3718:3234(i64vec3) GroupNonUniformUMin 42 ExclusiveScan 3717
+            3719:   3217(ptr) AccessChain 34(data) 3714 3216 38
+            3720: 27(int64_t) CompositeExtract 3718 0
+                              Store 3719 3720
+            3721:   3217(ptr) AccessChain 34(data) 3714 3216 55
+            3722: 27(int64_t) CompositeExtract 3718 1
+                              Store 3721 3722
+            3723:   3217(ptr) AccessChain 34(data) 3714 3216 69
+            3724: 27(int64_t) CompositeExtract 3718 2
+                              Store 3723 3724
+            3725:      6(int) Load 8(invocation)
+            3726:   3224(ptr) AccessChain 34(data) 73 3216
+            3727: 28(i64vec4) Load 3726
+            3728: 28(i64vec4) GroupNonUniformUMin 42 ExclusiveScan 3727
+            3729:   3224(ptr) AccessChain 34(data) 3725 3216
+                              Store 3729 3728
+            3730:      6(int) Load 8(invocation)
+            3731:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3732: 27(int64_t) Load 3731
+            3733: 27(int64_t) GroupNonUniformUMax 42 ExclusiveScan 3732
+            3734:   3217(ptr) AccessChain 34(data) 3730 3216 38
+                              Store 3734 3733
+            3735:      6(int) Load 8(invocation)
+            3736:   3224(ptr) AccessChain 34(data) 46 3216
+            3737: 28(i64vec4) Load 3736
+            3738:3223(i64vec2) VectorShuffle 3737 3737 0 1
+            3739:3223(i64vec2) GroupNonUniformUMax 42 ExclusiveScan 3738
+            3740:   3217(ptr) AccessChain 34(data) 3735 3216 38
+            3741: 27(int64_t) CompositeExtract 3739 0
+                              Store 3740 3741
+            3742:   3217(ptr) AccessChain 34(data) 3735 3216 55
+            3743: 27(int64_t) CompositeExtract 3739 1
+                              Store 3742 3743
+            3744:      6(int) Load 8(invocation)
+            3745:   3224(ptr) AccessChain 34(data) 59 3216
+            3746: 28(i64vec4) Load 3745
+            3747:3234(i64vec3) VectorShuffle 3746 3746 0 1 2
+            3748:3234(i64vec3) GroupNonUniformUMax 42 ExclusiveScan 3747
+            3749:   3217(ptr) AccessChain 34(data) 3744 3216 38
+            3750: 27(int64_t) CompositeExtract 3748 0
+                              Store 3749 3750
+            3751:   3217(ptr) AccessChain 34(data) 3744 3216 55
+            3752: 27(int64_t) CompositeExtract 3748 1
+                              Store 3751 3752
+            3753:   3217(ptr) AccessChain 34(data) 3744 3216 69
+            3754: 27(int64_t) CompositeExtract 3748 2
+                              Store 3753 3754
+            3755:      6(int) Load 8(invocation)
+            3756:   3224(ptr) AccessChain 34(data) 73 3216
+            3757: 28(i64vec4) Load 3756
+            3758: 28(i64vec4) GroupNonUniformUMax 42 ExclusiveScan 3757
+            3759:   3224(ptr) AccessChain 34(data) 3755 3216
+                              Store 3759 3758
+            3760:      6(int) Load 8(invocation)
+            3761:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3762: 27(int64_t) Load 3761
+            3763: 27(int64_t) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3762
+            3764:   3217(ptr) AccessChain 34(data) 3760 3216 38
+                              Store 3764 3763
+            3765:      6(int) Load 8(invocation)
+            3766:   3224(ptr) AccessChain 34(data) 46 3216
+            3767: 28(i64vec4) Load 3766
+            3768:3223(i64vec2) VectorShuffle 3767 3767 0 1
+            3769:3223(i64vec2) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3768
+            3770:   3217(ptr) AccessChain 34(data) 3765 3216 38
+            3771: 27(int64_t) CompositeExtract 3769 0
+                              Store 3770 3771
+            3772:   3217(ptr) AccessChain 34(data) 3765 3216 55
+            3773: 27(int64_t) CompositeExtract 3769 1
+                              Store 3772 3773
+            3774:      6(int) Load 8(invocation)
+            3775:   3224(ptr) AccessChain 34(data) 59 3216
+            3776: 28(i64vec4) Load 3775
+            3777:3234(i64vec3) VectorShuffle 3776 3776 0 1 2
+            3778:3234(i64vec3) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3777
+            3779:   3217(ptr) AccessChain 34(data) 3774 3216 38
+            3780: 27(int64_t) CompositeExtract 3778 0
+                              Store 3779 3780
+            3781:   3217(ptr) AccessChain 34(data) 3774 3216 55
+            3782: 27(int64_t) CompositeExtract 3778 1
+                              Store 3781 3782
+            3783:   3217(ptr) AccessChain 34(data) 3774 3216 69
+            3784: 27(int64_t) CompositeExtract 3778 2
+                              Store 3783 3784
+            3785:      6(int) Load 8(invocation)
+            3786:   3224(ptr) AccessChain 34(data) 73 3216
+            3787: 28(i64vec4) Load 3786
+            3788: 28(i64vec4) GroupNonUniformBitwiseAnd 42 ExclusiveScan 3787
+            3789:   3224(ptr) AccessChain 34(data) 3785 3216
+                              Store 3789 3788
+            3790:      6(int) Load 8(invocation)
+            3791:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3792: 27(int64_t) Load 3791
+            3793: 27(int64_t) GroupNonUniformBitwiseOr 42 ExclusiveScan 3792
+            3794:   3217(ptr) AccessChain 34(data) 3790 3216 38
+                              Store 3794 3793
+            3795:      6(int) Load 8(invocation)
+            3796:   3224(ptr) AccessChain 34(data) 46 3216
+            3797: 28(i64vec4) Load 3796
+            3798:3223(i64vec2) VectorShuffle 3797 3797 0 1
+            3799:3223(i64vec2) GroupNonUniformBitwiseOr 42 ExclusiveScan 3798
+            3800:   3217(ptr) AccessChain 34(data) 3795 3216 38
+            3801: 27(int64_t) CompositeExtract 3799 0
+                              Store 3800 3801
+            3802:   3217(ptr) AccessChain 34(data) 3795 3216 55
+            3803: 27(int64_t) CompositeExtract 3799 1
+                              Store 3802 3803
+            3804:      6(int) Load 8(invocation)
+            3805:   3224(ptr) AccessChain 34(data) 59 3216
+            3806: 28(i64vec4) Load 3805
+            3807:3234(i64vec3) VectorShuffle 3806 3806 0 1 2
+            3808:3234(i64vec3) GroupNonUniformBitwiseOr 42 ExclusiveScan 3807
+            3809:   3217(ptr) AccessChain 34(data) 3804 3216 38
+            3810: 27(int64_t) CompositeExtract 3808 0
+                              Store 3809 3810
+            3811:   3217(ptr) AccessChain 34(data) 3804 3216 55
+            3812: 27(int64_t) CompositeExtract 3808 1
+                              Store 3811 3812
+            3813:   3217(ptr) AccessChain 34(data) 3804 3216 69
+            3814: 27(int64_t) CompositeExtract 3808 2
+                              Store 3813 3814
+            3815:      6(int) Load 8(invocation)
+            3816:   3224(ptr) AccessChain 34(data) 73 3216
+            3817: 28(i64vec4) Load 3816
+            3818: 28(i64vec4) GroupNonUniformBitwiseOr 42 ExclusiveScan 3817
+            3819:   3224(ptr) AccessChain 34(data) 3815 3216
+                              Store 3819 3818
+            3820:      6(int) Load 8(invocation)
+            3821:   3217(ptr) AccessChain 34(data) 37 3216 38
+            3822: 27(int64_t) Load 3821
+            3823: 27(int64_t) GroupNonUniformBitwiseXor 42 ExclusiveScan 3822
+            3824:   3217(ptr) AccessChain 34(data) 3820 3216 38
+                              Store 3824 3823
+            3825:      6(int) Load 8(invocation)
+            3826:   3224(ptr) AccessChain 34(data) 46 3216
+            3827: 28(i64vec4) Load 3826
+            3828:3223(i64vec2) VectorShuffle 3827 3827 0 1
+            3829:3223(i64vec2) GroupNonUniformBitwiseXor 42 ExclusiveScan 3828
+            3830:   3217(ptr) AccessChain 34(data) 3825 3216 38
+            3831: 27(int64_t) CompositeExtract 3829 0
+                              Store 3830 3831
+            3832:   3217(ptr) AccessChain 34(data) 3825 3216 55
+            3833: 27(int64_t) CompositeExtract 3829 1
+                              Store 3832 3833
+            3834:      6(int) Load 8(invocation)
+            3835:   3224(ptr) AccessChain 34(data) 59 3216
+            3836: 28(i64vec4) Load 3835
+            3837:3234(i64vec3) VectorShuffle 3836 3836 0 1 2
+            3838:3234(i64vec3) GroupNonUniformBitwiseXor 42 ExclusiveScan 3837
+            3839:   3217(ptr) AccessChain 34(data) 3834 3216 38
+            3840: 27(int64_t) CompositeExtract 3838 0
+                              Store 3839 3840
+            3841:   3217(ptr) AccessChain 34(data) 3834 3216 55
+            3842: 27(int64_t) CompositeExtract 3838 1
+                              Store 3841 3842
+            3843:   3217(ptr) AccessChain 34(data) 3834 3216 69
+            3844: 27(int64_t) CompositeExtract 3838 2
+                              Store 3843 3844
+            3845:      6(int) Load 8(invocation)
+            3846:   3224(ptr) AccessChain 34(data) 73 3216
+            3847: 28(i64vec4) Load 3846
+            3848: 28(i64vec4) GroupNonUniformBitwiseXor 42 ExclusiveScan 3847
+            3849:   3224(ptr) AccessChain 34(data) 3845 3216
+                              Store 3849 3848
+            3850:      6(int) Load 8(invocation)
+            3853:   3852(ptr) AccessChain 34(data) 37 3851 38
+            3854:29(float16_t) Load 3853
+            3855:29(float16_t) GroupNonUniformFAdd 42 Reduce 3854
+            3856:   3852(ptr) AccessChain 34(data) 3850 3851 38
+                              Store 3856 3855
+            3857:      6(int) Load 8(invocation)
+            3860:   3859(ptr) AccessChain 34(data) 46 3851
+            3861: 30(f16vec4) Load 3860
+            3862:3858(f16vec2) VectorShuffle 3861 3861 0 1
+            3863:3858(f16vec2) GroupNonUniformFAdd 42 Reduce 3862
+            3864:   3852(ptr) AccessChain 34(data) 3857 3851 38
+            3865:29(float16_t) CompositeExtract 3863 0
+                              Store 3864 3865
+            3866:   3852(ptr) AccessChain 34(data) 3857 3851 55
+            3867:29(float16_t) CompositeExtract 3863 1
+                              Store 3866 3867
+            3868:      6(int) Load 8(invocation)
+            3870:   3859(ptr) AccessChain 34(data) 59 3851
+            3871: 30(f16vec4) Load 3870
+            3872:3869(f16vec3) VectorShuffle 3871 3871 0 1 2
+            3873:3869(f16vec3) GroupNonUniformFAdd 42 Reduce 3872
+            3874:   3852(ptr) AccessChain 34(data) 3868 3851 38
+            3875:29(float16_t) CompositeExtract 3873 0
+                              Store 3874 3875
+            3876:   3852(ptr) AccessChain 34(data) 3868 3851 55
+            3877:29(float16_t) CompositeExtract 3873 1
+                              Store 3876 3877
+            3878:   3852(ptr) AccessChain 34(data) 3868 3851 69
+            3879:29(float16_t) CompositeExtract 3873 2
+                              Store 3878 3879
+            3880:      6(int) Load 8(invocation)
+            3881:   3859(ptr) AccessChain 34(data) 73 3851
+            3882: 30(f16vec4) Load 3881
+            3883: 30(f16vec4) GroupNonUniformFAdd 42 Reduce 3882
+            3884:   3859(ptr) AccessChain 34(data) 3880 3851
+                              Store 3884 3883
+            3885:      6(int) Load 8(invocation)
+            3886:   3852(ptr) AccessChain 34(data) 37 3851 38
+            3887:29(float16_t) Load 3886
+            3888:29(float16_t) GroupNonUniformFMul 42 Reduce 3887
+            3889:   3852(ptr) AccessChain 34(data) 3885 3851 38
+                              Store 3889 3888
+            3890:      6(int) Load 8(invocation)
+            3891:   3859(ptr) AccessChain 34(data) 46 3851
+            3892: 30(f16vec4) Load 3891
+            3893:3858(f16vec2) VectorShuffle 3892 3892 0 1
+            3894:3858(f16vec2) GroupNonUniformFMul 42 Reduce 3893
+            3895:   3852(ptr) AccessChain 34(data) 3890 3851 38
+            3896:29(float16_t) CompositeExtract 3894 0
+                              Store 3895 3896
+            3897:   3852(ptr) AccessChain 34(data) 3890 3851 55
+            3898:29(float16_t) CompositeExtract 3894 1
+                              Store 3897 3898
+            3899:      6(int) Load 8(invocation)
+            3900:   3859(ptr) AccessChain 34(data) 59 3851
+            3901: 30(f16vec4) Load 3900
+            3902:3869(f16vec3) VectorShuffle 3901 3901 0 1 2
+            3903:3869(f16vec3) GroupNonUniformFMul 42 Reduce 3902
+            3904:   3852(ptr) AccessChain 34(data) 3899 3851 38
+            3905:29(float16_t) CompositeExtract 3903 0
+                              Store 3904 3905
+            3906:   3852(ptr) AccessChain 34(data) 3899 3851 55
+            3907:29(float16_t) CompositeExtract 3903 1
+                              Store 3906 3907
+            3908:   3852(ptr) AccessChain 34(data) 3899 3851 69
+            3909:29(float16_t) CompositeExtract 3903 2
+                              Store 3908 3909
+            3910:      6(int) Load 8(invocation)
+            3911:   3859(ptr) AccessChain 34(data) 73 3851
+            3912: 30(f16vec4) Load 3911
+            3913: 30(f16vec4) GroupNonUniformFMul 42 Reduce 3912
+            3914:   3859(ptr) AccessChain 34(data) 3910 3851
+                              Store 3914 3913
+            3915:      6(int) Load 8(invocation)
+            3916:   3852(ptr) AccessChain 34(data) 37 3851 38
+            3917:29(float16_t) Load 3916
+            3918:29(float16_t) GroupNonUniformFMin 42 Reduce 3917
+            3919:   3852(ptr) AccessChain 34(data) 3915 3851 38
+                              Store 3919 3918
+            3920:      6(int) Load 8(invocation)
+            3921:   3859(ptr) AccessChain 34(data) 46 3851
+            3922: 30(f16vec4) Load 3921
+            3923:3858(f16vec2) VectorShuffle 3922 3922 0 1
+            3924:3858(f16vec2) GroupNonUniformFMin 42 Reduce 3923
+            3925:   3852(ptr) AccessChain 34(data) 3920 3851 38
+            3926:29(float16_t) CompositeExtract 3924 0
+                              Store 3925 3926
+            3927:   3852(ptr) AccessChain 34(data) 3920 3851 55
+            3928:29(float16_t) CompositeExtract 3924 1
+                              Store 3927 3928
+            3929:      6(int) Load 8(invocation)
+            3930:   3859(ptr) AccessChain 34(data) 59 3851
+            3931: 30(f16vec4) Load 3930
+            3932:3869(f16vec3) VectorShuffle 3931 3931 0 1 2
+            3933:3869(f16vec3) GroupNonUniformFMin 42 Reduce 3932
+            3934:   3852(ptr) AccessChain 34(data) 3929 3851 38
+            3935:29(float16_t) CompositeExtract 3933 0
+                              Store 3934 3935
+            3936:   3852(ptr) AccessChain 34(data) 3929 3851 55
+            3937:29(float16_t) CompositeExtract 3933 1
+                              Store 3936 3937
+            3938:   3852(ptr) AccessChain 34(data) 3929 3851 69
+            3939:29(float16_t) CompositeExtract 3933 2
+                              Store 3938 3939
+            3940:      6(int) Load 8(invocation)
+            3941:   3859(ptr) AccessChain 34(data) 73 3851
+            3942: 30(f16vec4) Load 3941
+            3943: 30(f16vec4) GroupNonUniformFMin 42 Reduce 3942
+            3944:   3859(ptr) AccessChain 34(data) 3940 3851
+                              Store 3944 3943
+            3945:      6(int) Load 8(invocation)
+            3946:   3852(ptr) AccessChain 34(data) 37 3851 38
+            3947:29(float16_t) Load 3946
+            3948:29(float16_t) GroupNonUniformFMax 42 Reduce 3947
+            3949:   3852(ptr) AccessChain 34(data) 3945 3851 38
+                              Store 3949 3948
+            3950:      6(int) Load 8(invocation)
+            3951:   3859(ptr) AccessChain 34(data) 46 3851
+            3952: 30(f16vec4) Load 3951
+            3953:3858(f16vec2) VectorShuffle 3952 3952 0 1
+            3954:3858(f16vec2) GroupNonUniformFMax 42 Reduce 3953
+            3955:   3852(ptr) AccessChain 34(data) 3950 3851 38
+            3956:29(float16_t) CompositeExtract 3954 0
+                              Store 3955 3956
+            3957:   3852(ptr) AccessChain 34(data) 3950 3851 55
+            3958:29(float16_t) CompositeExtract 3954 1
+                              Store 3957 3958
+            3959:      6(int) Load 8(invocation)
+            3960:   3859(ptr) AccessChain 34(data) 59 3851
+            3961: 30(f16vec4) Load 3960
+            3962:3869(f16vec3) VectorShuffle 3961 3961 0 1 2
+            3963:3869(f16vec3) GroupNonUniformFMax 42 Reduce 3962
+            3964:   3852(ptr) AccessChain 34(data) 3959 3851 38
+            3965:29(float16_t) CompositeExtract 3963 0
+                              Store 3964 3965
+            3966:   3852(ptr) AccessChain 34(data) 3959 3851 55
+            3967:29(float16_t) CompositeExtract 3963 1
+                              Store 3966 3967
+            3968:   3852(ptr) AccessChain 34(data) 3959 3851 69
+            3969:29(float16_t) CompositeExtract 3963 2
+                              Store 3968 3969
+            3970:      6(int) Load 8(invocation)
+            3971:   3859(ptr) AccessChain 34(data) 73 3851
+            3972: 30(f16vec4) Load 3971
+            3973: 30(f16vec4) GroupNonUniformFMax 42 Reduce 3972
+            3974:   3859(ptr) AccessChain 34(data) 3970 3851
+                              Store 3974 3973
+            3975:      6(int) Load 8(invocation)
+            3976:   3852(ptr) AccessChain 34(data) 37 3851 38
+            3977:29(float16_t) Load 3976
+            3978:29(float16_t) GroupNonUniformFAdd 42 InclusiveScan 3977
+            3979:   3852(ptr) AccessChain 34(data) 3975 3851 38
+                              Store 3979 3978
+            3980:      6(int) Load 8(invocation)
+            3981:   3859(ptr) AccessChain 34(data) 46 3851
+            3982: 30(f16vec4) Load 3981
+            3983:3858(f16vec2) VectorShuffle 3982 3982 0 1
+            3984:3858(f16vec2) GroupNonUniformFAdd 42 InclusiveScan 3983
+            3985:   3852(ptr) AccessChain 34(data) 3980 3851 38
+            3986:29(float16_t) CompositeExtract 3984 0
+                              Store 3985 3986
+            3987:   3852(ptr) AccessChain 34(data) 3980 3851 55
+            3988:29(float16_t) CompositeExtract 3984 1
+                              Store 3987 3988
+            3989:      6(int) Load 8(invocation)
+            3990:   3859(ptr) AccessChain 34(data) 59 3851
+            3991: 30(f16vec4) Load 3990
+            3992:3869(f16vec3) VectorShuffle 3991 3991 0 1 2
+            3993:3869(f16vec3) GroupNonUniformFAdd 42 InclusiveScan 3992
+            3994:   3852(ptr) AccessChain 34(data) 3989 3851 38
+            3995:29(float16_t) CompositeExtract 3993 0
+                              Store 3994 3995
+            3996:   3852(ptr) AccessChain 34(data) 3989 3851 55
+            3997:29(float16_t) CompositeExtract 3993 1
+                              Store 3996 3997
+            3998:   3852(ptr) AccessChain 34(data) 3989 3851 69
+            3999:29(float16_t) CompositeExtract 3993 2
+                              Store 3998 3999
+            4000:      6(int) Load 8(invocation)
+            4001:   3859(ptr) AccessChain 34(data) 73 3851
+            4002: 30(f16vec4) Load 4001
+            4003: 30(f16vec4) GroupNonUniformFAdd 42 InclusiveScan 4002
+            4004:   3859(ptr) AccessChain 34(data) 4000 3851
+                              Store 4004 4003
+            4005:      6(int) Load 8(invocation)
+            4006:   3852(ptr) AccessChain 34(data) 37 3851 38
+            4007:29(float16_t) Load 4006
+            4008:29(float16_t) GroupNonUniformFMul 42 InclusiveScan 4007
+            4009:   3852(ptr) AccessChain 34(data) 4005 3851 38
+                              Store 4009 4008
+            4010:      6(int) Load 8(invocation)
+            4011:   3859(ptr) AccessChain 34(data) 46 3851
+            4012: 30(f16vec4) Load 4011
+            4013:3858(f16vec2) VectorShuffle 4012 4012 0 1
+            4014:3858(f16vec2) GroupNonUniformFMul 42 InclusiveScan 4013
+            4015:   3852(ptr) AccessChain 34(data) 4010 3851 38
+            4016:29(float16_t) CompositeExtract 4014 0
+                              Store 4015 4016
+            4017:   3852(ptr) AccessChain 34(data) 4010 3851 55
+            4018:29(float16_t) CompositeExtract 4014 1
+                              Store 4017 4018
+            4019:      6(int) Load 8(invocation)
+            4020:   3859(ptr) AccessChain 34(data) 59 3851
+            4021: 30(f16vec4) Load 4020
+            4022:3869(f16vec3) VectorShuffle 4021 4021 0 1 2
+            4023:3869(f16vec3) GroupNonUniformFMul 42 InclusiveScan 4022
+            4024:   3852(ptr) AccessChain 34(data) 4019 3851 38
+            4025:29(float16_t) CompositeExtract 4023 0
+                              Store 4024 4025
+            4026:   3852(ptr) AccessChain 34(data) 4019 3851 55
+            4027:29(float16_t) CompositeExtract 4023 1
+                              Store 4026 4027
+            4028:   3852(ptr) AccessChain 34(data) 4019 3851 69
+            4029:29(float16_t) CompositeExtract 4023 2
+                              Store 4028 4029
+            4030:      6(int) Load 8(invocation)
+            4031:   3859(ptr) AccessChain 34(data) 73 3851
+            4032: 30(f16vec4) Load 4031
+            4033: 30(f16vec4) GroupNonUniformFMul 42 InclusiveScan 4032
+            4034:   3859(ptr) AccessChain 34(data) 4030 3851
+                              Store 4034 4033
+            4035:      6(int) Load 8(invocation)
+            4036:   3852(ptr) AccessChain 34(data) 37 3851 38
+            4037:29(float16_t) Load 4036
+            4038:29(float16_t) GroupNonUniformFMin 42 InclusiveScan 4037
+            4039:   3852(ptr) AccessChain 34(data) 4035 3851 38
+                              Store 4039 4038
+            4040:      6(int) Load 8(invocation)
+            4041:   3859(ptr) AccessChain 34(data) 46 3851
+            4042: 30(f16vec4) Load 4041
+            4043:3858(f16vec2) VectorShuffle 4042 4042 0 1
+            4044:3858(f16vec2) GroupNonUniformFMin 42 InclusiveScan 4043
+            4045:   3852(ptr) AccessChain 34(data) 4040 3851 38
+            4046:29(float16_t) CompositeExtract 4044 0
+                              Store 4045 4046
+            4047:   3852(ptr) AccessChain 34(data) 4040 3851 55
+            4048:29(float16_t) CompositeExtract 4044 1
+                              Store 4047 4048
+            4049:      6(int) Load 8(invocation)
+            4050:   3859(ptr) AccessChain 34(data) 59 3851
+            4051: 30(f16vec4) Load 4050
+            4052:3869(f16vec3) VectorShuffle 4051 4051 0 1 2
+            4053:3869(f16vec3) GroupNonUniformFMin 42 InclusiveScan 4052
+            4054:   3852(ptr) AccessChain 34(data) 4049 3851 38
+            4055:29(float16_t) CompositeExtract 4053 0
+                              Store 4054 4055
+            4056:   3852(ptr) AccessChain 34(data) 4049 3851 55
+            4057:29(float16_t) CompositeExtract 4053 1
+                              Store 4056 4057
+            4058:   3852(ptr) AccessChain 34(data) 4049 3851 69
+            4059:29(float16_t) CompositeExtract 4053 2
+                              Store 4058 4059
+            4060:      6(int) Load 8(invocation)
+            4061:   3859(ptr) AccessChain 34(data) 73 3851
+            4062: 30(f16vec4) Load 4061
+            4063: 30(f16vec4) GroupNonUniformFMin 42 InclusiveScan 4062
+            4064:   3859(ptr) AccessChain 34(data) 4060 3851
+                              Store 4064 4063
+            4065:      6(int) Load 8(invocation)
+            4066:   3852(ptr) AccessChain 34(data) 37 3851 38
+            4067:29(float16_t) Load 4066
+            4068:29(float16_t) GroupNonUniformFMax 42 InclusiveScan 4067
+            4069:   3852(ptr) AccessChain 34(data) 4065 3851 38
+                              Store 4069 4068
+            4070:      6(int) Load 8(invocation)
+            4071:   3859(ptr) AccessChain 34(data) 46 3851
+            4072: 30(f16vec4) Load 4071
+            4073:3858(f16vec2) VectorShuffle 4072 4072 0 1
+            4074:3858(f16vec2) GroupNonUniformFMax 42 InclusiveScan 4073
+            4075:   3852(ptr) AccessChain 34(data) 4070 3851 38
+            4076:29(float16_t) CompositeExtract 4074 0
+                              Store 4075 4076
+            4077:   3852(ptr) AccessChain 34(data) 4070 3851 55
+            4078:29(float16_t) CompositeExtract 4074 1
+                              Store 4077 4078
+            4079:      6(int) Load 8(invocation)
+            4080:   3859(ptr) AccessChain 34(data) 59 3851
+            4081: 30(f16vec4) Load 4080
+            4082:3869(f16vec3) VectorShuffle 4081 4081 0 1 2
+            4083:3869(f16vec3) GroupNonUniformFMax 42 InclusiveScan 4082
+            4084:   3852(ptr) AccessChain 34(data) 4079 3851 38
+            4085:29(float16_t) CompositeExtract 4083 0
+                              Store 4084 4085
+            4086:   3852(ptr) AccessChain 34(data) 4079 3851 55
+            4087:29(float16_t) CompositeExtract 4083 1
+                              Store 4086 4087
+            4088:   3852(ptr) AccessChain 34(data) 4079 3851 69
+            4089:29(float16_t) CompositeExtract 4083 2
+                              Store 4088 4089
+            4090:      6(int) Load 8(invocation)
+            4091:   3859(ptr) AccessChain 34(data) 73 3851
+            4092: 30(f16vec4) Load 4091
+            4093: 30(f16vec4) GroupNonUniformFMax 42 InclusiveScan 4092
+            4094:   3859(ptr) AccessChain 34(data) 4090 3851
+                              Store 4094 4093
+            4095:      6(int) Load 8(invocation)
+            4096:   3852(ptr) AccessChain 34(data) 37 3851 38
+            4097:29(float16_t) Load 4096
+            4098:29(float16_t) GroupNonUniformFAdd 42 ExclusiveScan 4097
+            4099:   3852(ptr) AccessChain 34(data) 4095 3851 38
+                              Store 4099 4098
+            4100:      6(int) Load 8(invocation)
+            4101:   3859(ptr) AccessChain 34(data) 46 3851
+            4102: 30(f16vec4) Load 4101
+            4103:3858(f16vec2) VectorShuffle 4102 4102 0 1
+            4104:3858(f16vec2) GroupNonUniformFAdd 42 ExclusiveScan 4103
+            4105:   3852(ptr) AccessChain 34(data) 4100 3851 38
+            4106:29(float16_t) CompositeExtract 4104 0
+                              Store 4105 4106
+            4107:   3852(ptr) AccessChain 34(data) 4100 3851 55
+            4108:29(float16_t) CompositeExtract 4104 1
+                              Store 4107 4108
+            4109:      6(int) Load 8(invocation)
+            4110:   3859(ptr) AccessChain 34(data) 59 3851
+            4111: 30(f16vec4) Load 4110
+            4112:3869(f16vec3) VectorShuffle 4111 4111 0 1 2
+            4113:3869(f16vec3) GroupNonUniformFAdd 42 ExclusiveScan 4112
+            4114:   3852(ptr) AccessChain 34(data) 4109 3851 38
+            4115:29(float16_t) CompositeExtract 4113 0
+                              Store 4114 4115
+            4116:   3852(ptr) AccessChain 34(data) 4109 3851 55
+            4117:29(float16_t) CompositeExtract 4113 1
+                              Store 4116 4117
+            4118:   3852(ptr) AccessChain 34(data) 4109 3851 69
+            4119:29(float16_t) CompositeExtract 4113 2
+                              Store 4118 4119
+            4120:      6(int) Load 8(invocation)
+            4121:   3859(ptr) AccessChain 34(data) 73 3851
+            4122: 30(f16vec4) Load 4121
+            4123: 30(f16vec4) GroupNonUniformFAdd 42 ExclusiveScan 4122
+            4124:   3859(ptr) AccessChain 34(data) 4120 3851
+                              Store 4124 4123
+            4125:      6(int) Load 8(invocation)
+            4126:   3852(ptr) AccessChain 34(data) 37 3851 38
+            4127:29(float16_t) Load 4126
+            4128:29(float16_t) GroupNonUniformFMul 42 ExclusiveScan 4127
+            4129:   3852(ptr) AccessChain 34(data) 4125 3851 38
+                              Store 4129 4128
+            4130:      6(int) Load 8(invocation)
+            4131:   3859(ptr) AccessChain 34(data) 46 3851
+            4132: 30(f16vec4) Load 4131
+            4133:3858(f16vec2) VectorShuffle 4132 4132 0 1
+            4134:3858(f16vec2) GroupNonUniformFMul 42 ExclusiveScan 4133
+            4135:   3852(ptr) AccessChain 34(data) 4130 3851 38
+            4136:29(float16_t) CompositeExtract 4134 0
+                              Store 4135 4136
+            4137:   3852(ptr) AccessChain 34(data) 4130 3851 55
+            4138:29(float16_t) CompositeExtract 4134 1
+                              Store 4137 4138
+            4139:      6(int) Load 8(invocation)
+            4140:   3859(ptr) AccessChain 34(data) 59 3851
+            4141: 30(f16vec4) Load 4140
+            4142:3869(f16vec3) VectorShuffle 4141 4141 0 1 2
+            4143:3869(f16vec3) GroupNonUniformFMul 42 ExclusiveScan 4142
+            4144:   3852(ptr) AccessChain 34(data) 4139 3851 38
+            4145:29(float16_t) CompositeExtract 4143 0
+                              Store 4144 4145
+            4146:   3852(ptr) AccessChain 34(data) 4139 3851 55
+            4147:29(float16_t) CompositeExtract 4143 1
+                              Store 4146 4147
+            4148:   3852(ptr) AccessChain 34(data) 4139 3851 69
+            4149:29(float16_t) CompositeExtract 4143 2
+                              Store 4148 4149
+            4150:      6(int) Load 8(invocation)
+            4151:   3859(ptr) AccessChain 34(data) 73 3851
+            4152: 30(f16vec4) Load 4151
+            4153: 30(f16vec4) GroupNonUniformFMul 42 ExclusiveScan 4152
+            4154:   3859(ptr) AccessChain 34(data) 4150 3851
+                              Store 4154 4153
+            4155:      6(int) Load 8(invocation)
+            4156:   3852(ptr) AccessChain 34(data) 37 3851 38
+            4157:29(float16_t) Load 4156
+            4158:29(float16_t) GroupNonUniformFMin 42 ExclusiveScan 4157
+            4159:   3852(ptr) AccessChain 34(data) 4155 3851 38
+                              Store 4159 4158
+            4160:      6(int) Load 8(invocation)
+            4161:   3859(ptr) AccessChain 34(data) 46 3851
+            4162: 30(f16vec4) Load 4161
+            4163:3858(f16vec2) VectorShuffle 4162 4162 0 1
+            4164:3858(f16vec2) GroupNonUniformFMin 42 ExclusiveScan 4163
+            4165:   3852(ptr) AccessChain 34(data) 4160 3851 38
+            4166:29(float16_t) CompositeExtract 4164 0
+                              Store 4165 4166
+            4167:   3852(ptr) AccessChain 34(data) 4160 3851 55
+            4168:29(float16_t) CompositeExtract 4164 1
+                              Store 4167 4168
+            4169:      6(int) Load 8(invocation)
+            4170:   3859(ptr) AccessChain 34(data) 59 3851
+            4171: 30(f16vec4) Load 4170
+            4172:3869(f16vec3) VectorShuffle 4171 4171 0 1 2
+            4173:3869(f16vec3) GroupNonUniformFMin 42 ExclusiveScan 4172
+            4174:   3852(ptr) AccessChain 34(data) 4169 3851 38
+            4175:29(float16_t) CompositeExtract 4173 0
+                              Store 4174 4175
+            4176:   3852(ptr) AccessChain 34(data) 4169 3851 55
+            4177:29(float16_t) CompositeExtract 4173 1
+                              Store 4176 4177
+            4178:   3852(ptr) AccessChain 34(data) 4169 3851 69
+            4179:29(float16_t) CompositeExtract 4173 2
+                              Store 4178 4179
+            4180:      6(int) Load 8(invocation)
+            4181:   3859(ptr) AccessChain 34(data) 73 3851
+            4182: 30(f16vec4) Load 4181
+            4183: 30(f16vec4) GroupNonUniformFMin 42 ExclusiveScan 4182
+            4184:   3859(ptr) AccessChain 34(data) 4180 3851
+                              Store 4184 4183
+            4185:      6(int) Load 8(invocation)
+            4186:   3852(ptr) AccessChain 34(data) 37 3851 38
+            4187:29(float16_t) Load 4186
+            4188:29(float16_t) GroupNonUniformFMax 42 ExclusiveScan 4187
+            4189:   3852(ptr) AccessChain 34(data) 4185 3851 38
+                              Store 4189 4188
+            4190:      6(int) Load 8(invocation)
+            4191:   3859(ptr) AccessChain 34(data) 46 3851
+            4192: 30(f16vec4) Load 4191
+            4193:3858(f16vec2) VectorShuffle 4192 4192 0 1
+            4194:3858(f16vec2) GroupNonUniformFMax 42 ExclusiveScan 4193
+            4195:   3852(ptr) AccessChain 34(data) 4190 3851 38
+            4196:29(float16_t) CompositeExtract 4194 0
+                              Store 4195 4196
+            4197:   3852(ptr) AccessChain 34(data) 4190 3851 55
+            4198:29(float16_t) CompositeExtract 4194 1
+                              Store 4197 4198
+            4199:      6(int) Load 8(invocation)
+            4200:   3859(ptr) AccessChain 34(data) 59 3851
+            4201: 30(f16vec4) Load 4200
+            4202:3869(f16vec3) VectorShuffle 4201 4201 0 1 2
+            4203:3869(f16vec3) GroupNonUniformFMax 42 ExclusiveScan 4202
+            4204:   3852(ptr) AccessChain 34(data) 4199 3851 38
+            4205:29(float16_t) CompositeExtract 4203 0
+                              Store 4204 4205
+            4206:   3852(ptr) AccessChain 34(data) 4199 3851 55
+            4207:29(float16_t) CompositeExtract 4203 1
+                              Store 4206 4207
+            4208:   3852(ptr) AccessChain 34(data) 4199 3851 69
+            4209:29(float16_t) CompositeExtract 4203 2
+                              Store 4208 4209
+            4210:      6(int) Load 8(invocation)
+            4211:   3859(ptr) AccessChain 34(data) 73 3851
+            4212: 30(f16vec4) Load 4211
+            4213: 30(f16vec4) GroupNonUniformFMax 42 ExclusiveScan 4212
+            4214:   3859(ptr) AccessChain 34(data) 4210 3851
+                              Store 4214 4213
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out b/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out
index f503f8c..60f01bc 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesBallot.comp.out
@@ -1,7 +1,7 @@
 spv.subgroupExtendedTypesBallot.comp
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 441
+// Id's are bound by 498
 
                               Capability Shader
                               Capability Float16
@@ -59,7 +59,7 @@
                               Decorate 31(Buffers) Block
                               Decorate 34(data) DescriptorSet 0
                               Decorate 34(data) Binding 0
-                              Decorate 440 BuiltIn WorkgroupSize
+                              Decorate 497 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -94,40 +94,41 @@
               46:     36(int) Constant 1
               47:             TypeVector 17(int8_t) 2
               48:             TypePointer StorageBuffer 18(i8vec4)
-              57:     36(int) Constant 2
-              58:             TypeVector 17(int8_t) 3
-              67:     36(int) Constant 3
-              99:             TypePointer StorageBuffer 19(int8_t)
-             105:             TypeVector 19(int8_t) 2
-             106:             TypePointer StorageBuffer 20(i8vec4)
-             115:             TypeVector 19(int8_t) 3
-             155:             TypePointer StorageBuffer 21(int16_t)
-             161:             TypeVector 21(int16_t) 2
-             162:             TypePointer StorageBuffer 22(i16vec4)
-             171:             TypeVector 21(int16_t) 3
-             211:             TypePointer StorageBuffer 23(int16_t)
-             217:             TypeVector 23(int16_t) 2
-             218:             TypePointer StorageBuffer 24(i16vec4)
-             227:             TypeVector 23(int16_t) 3
-             267:     36(int) Constant 4
-             268:             TypePointer StorageBuffer 25(int64_t)
-             274:             TypeVector 25(int64_t) 2
-             275:             TypePointer StorageBuffer 26(i64vec4)
-             284:             TypeVector 25(int64_t) 3
-             324:     36(int) Constant 5
-             325:             TypePointer StorageBuffer 27(int64_t)
-             331:             TypeVector 27(int64_t) 2
-             332:             TypePointer StorageBuffer 28(i64vec4)
-             341:             TypeVector 27(int64_t) 3
-             381:     36(int) Constant 6
-             382:             TypePointer StorageBuffer 29(float16_t)
-             388:             TypeVector 29(float16_t) 2
-             389:             TypePointer StorageBuffer 30(f16vec4)
-             398:             TypeVector 29(float16_t) 3
-             437:             TypeVector 6(int) 3
-             438:      6(int) Constant 8
-             439:      6(int) Constant 1
-             440:  437(ivec3) ConstantComposite 438 439 439
+              55:      6(int) Constant 1
+              59:     36(int) Constant 2
+              60:             TypeVector 17(int8_t) 3
+              69:      6(int) Constant 2
+              73:     36(int) Constant 3
+             109:             TypePointer StorageBuffer 19(int8_t)
+             115:             TypeVector 19(int8_t) 2
+             116:             TypePointer StorageBuffer 20(i8vec4)
+             126:             TypeVector 19(int8_t) 3
+             173:             TypePointer StorageBuffer 21(int16_t)
+             179:             TypeVector 21(int16_t) 2
+             180:             TypePointer StorageBuffer 22(i16vec4)
+             190:             TypeVector 21(int16_t) 3
+             237:             TypePointer StorageBuffer 23(int16_t)
+             243:             TypeVector 23(int16_t) 2
+             244:             TypePointer StorageBuffer 24(i16vec4)
+             254:             TypeVector 23(int16_t) 3
+             301:     36(int) Constant 4
+             302:             TypePointer StorageBuffer 25(int64_t)
+             308:             TypeVector 25(int64_t) 2
+             309:             TypePointer StorageBuffer 26(i64vec4)
+             319:             TypeVector 25(int64_t) 3
+             366:     36(int) Constant 5
+             367:             TypePointer StorageBuffer 27(int64_t)
+             373:             TypeVector 27(int64_t) 2
+             374:             TypePointer StorageBuffer 28(i64vec4)
+             384:             TypeVector 27(int64_t) 3
+             431:     36(int) Constant 6
+             432:             TypePointer StorageBuffer 29(float16_t)
+             438:             TypeVector 29(float16_t) 2
+             439:             TypePointer StorageBuffer 30(f16vec4)
+             449:             TypeVector 29(float16_t) 3
+             495:             TypeVector 6(int) 3
+             496:      6(int) Constant 8
+             497:  495(ivec3) ConstantComposite 496 55 55
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -147,414 +148,512 @@
               50:  18(i8vec4) Load 49
               51:  47(i8vec2) VectorShuffle 50 50 0 1
               52:  47(i8vec2) GroupNonUniformBroadcast 42 51 42
-              53:     48(ptr) AccessChain 34(data) 45 37
-              54:  18(i8vec4) Load 53
-              55:  18(i8vec4) VectorShuffle 54 52 4 5 2 3
-                              Store 53 55
-              56:      6(int) Load 8(invocation)
-              59:     48(ptr) AccessChain 34(data) 57 37
-              60:  18(i8vec4) Load 59
-              61:  58(i8vec3) VectorShuffle 60 60 0 1 2
-              62:  58(i8vec3) GroupNonUniformBroadcast 42 61 42
-              63:     48(ptr) AccessChain 34(data) 56 37
-              64:  18(i8vec4) Load 63
-              65:  18(i8vec4) VectorShuffle 64 62 4 5 6 3
-                              Store 63 65
-              66:      6(int) Load 8(invocation)
-              68:     48(ptr) AccessChain 34(data) 67 37
-              69:  18(i8vec4) Load 68
-              70:  18(i8vec4) GroupNonUniformBroadcast 42 69 42
-              71:     48(ptr) AccessChain 34(data) 66 37
-                              Store 71 70
+              53:     39(ptr) AccessChain 34(data) 45 37 38
+              54:  17(int8_t) CompositeExtract 52 0
+                              Store 53 54
+              56:     39(ptr) AccessChain 34(data) 45 37 55
+              57:  17(int8_t) CompositeExtract 52 1
+                              Store 56 57
+              58:      6(int) Load 8(invocation)
+              61:     48(ptr) AccessChain 34(data) 59 37
+              62:  18(i8vec4) Load 61
+              63:  60(i8vec3) VectorShuffle 62 62 0 1 2
+              64:  60(i8vec3) GroupNonUniformBroadcast 42 63 42
+              65:     39(ptr) AccessChain 34(data) 58 37 38
+              66:  17(int8_t) CompositeExtract 64 0
+                              Store 65 66
+              67:     39(ptr) AccessChain 34(data) 58 37 55
+              68:  17(int8_t) CompositeExtract 64 1
+                              Store 67 68
+              70:     39(ptr) AccessChain 34(data) 58 37 69
+              71:  17(int8_t) CompositeExtract 64 2
+                              Store 70 71
               72:      6(int) Load 8(invocation)
-              73:     39(ptr) AccessChain 34(data) 37 37 38
-              74:  17(int8_t) Load 73
-              75:  17(int8_t) GroupNonUniformBroadcastFirst 42 74
-              76:     39(ptr) AccessChain 34(data) 72 37 38
-                              Store 76 75
-              77:      6(int) Load 8(invocation)
-              78:     48(ptr) AccessChain 34(data) 46 37
-              79:  18(i8vec4) Load 78
-              80:  47(i8vec2) VectorShuffle 79 79 0 1
-              81:  47(i8vec2) GroupNonUniformBroadcastFirst 42 80
-              82:     48(ptr) AccessChain 34(data) 77 37
-              83:  18(i8vec4) Load 82
-              84:  18(i8vec4) VectorShuffle 83 81 4 5 2 3
-                              Store 82 84
-              85:      6(int) Load 8(invocation)
-              86:     48(ptr) AccessChain 34(data) 57 37
-              87:  18(i8vec4) Load 86
-              88:  58(i8vec3) VectorShuffle 87 87 0 1 2
-              89:  58(i8vec3) GroupNonUniformBroadcastFirst 42 88
-              90:     48(ptr) AccessChain 34(data) 85 37
-              91:  18(i8vec4) Load 90
-              92:  18(i8vec4) VectorShuffle 91 89 4 5 6 3
-                              Store 90 92
-              93:      6(int) Load 8(invocation)
-              94:     48(ptr) AccessChain 34(data) 67 37
-              95:  18(i8vec4) Load 94
-              96:  18(i8vec4) GroupNonUniformBroadcastFirst 42 95
-              97:     48(ptr) AccessChain 34(data) 93 37
-                              Store 97 96
-              98:      6(int) Load 8(invocation)
-             100:     99(ptr) AccessChain 34(data) 37 46 38
-             101:  19(int8_t) Load 100
-             102:  19(int8_t) GroupNonUniformBroadcast 42 101 42
-             103:     99(ptr) AccessChain 34(data) 98 46 38
-                              Store 103 102
-             104:      6(int) Load 8(invocation)
-             107:    106(ptr) AccessChain 34(data) 46 46
-             108:  20(i8vec4) Load 107
-             109: 105(i8vec2) VectorShuffle 108 108 0 1
-             110: 105(i8vec2) GroupNonUniformBroadcast 42 109 42
-             111:    106(ptr) AccessChain 34(data) 104 46
-             112:  20(i8vec4) Load 111
-             113:  20(i8vec4) VectorShuffle 112 110 4 5 2 3
-                              Store 111 113
+              74:     48(ptr) AccessChain 34(data) 73 37
+              75:  18(i8vec4) Load 74
+              76:  18(i8vec4) GroupNonUniformBroadcast 42 75 42
+              77:     48(ptr) AccessChain 34(data) 72 37
+                              Store 77 76
+              78:      6(int) Load 8(invocation)
+              79:     39(ptr) AccessChain 34(data) 37 37 38
+              80:  17(int8_t) Load 79
+              81:  17(int8_t) GroupNonUniformBroadcastFirst 42 80
+              82:     39(ptr) AccessChain 34(data) 78 37 38
+                              Store 82 81
+              83:      6(int) Load 8(invocation)
+              84:     48(ptr) AccessChain 34(data) 46 37
+              85:  18(i8vec4) Load 84
+              86:  47(i8vec2) VectorShuffle 85 85 0 1
+              87:  47(i8vec2) GroupNonUniformBroadcastFirst 42 86
+              88:     39(ptr) AccessChain 34(data) 83 37 38
+              89:  17(int8_t) CompositeExtract 87 0
+                              Store 88 89
+              90:     39(ptr) AccessChain 34(data) 83 37 55
+              91:  17(int8_t) CompositeExtract 87 1
+                              Store 90 91
+              92:      6(int) Load 8(invocation)
+              93:     48(ptr) AccessChain 34(data) 59 37
+              94:  18(i8vec4) Load 93
+              95:  60(i8vec3) VectorShuffle 94 94 0 1 2
+              96:  60(i8vec3) GroupNonUniformBroadcastFirst 42 95
+              97:     39(ptr) AccessChain 34(data) 92 37 38
+              98:  17(int8_t) CompositeExtract 96 0
+                              Store 97 98
+              99:     39(ptr) AccessChain 34(data) 92 37 55
+             100:  17(int8_t) CompositeExtract 96 1
+                              Store 99 100
+             101:     39(ptr) AccessChain 34(data) 92 37 69
+             102:  17(int8_t) CompositeExtract 96 2
+                              Store 101 102
+             103:      6(int) Load 8(invocation)
+             104:     48(ptr) AccessChain 34(data) 73 37
+             105:  18(i8vec4) Load 104
+             106:  18(i8vec4) GroupNonUniformBroadcastFirst 42 105
+             107:     48(ptr) AccessChain 34(data) 103 37
+                              Store 107 106
+             108:      6(int) Load 8(invocation)
+             110:    109(ptr) AccessChain 34(data) 37 46 38
+             111:  19(int8_t) Load 110
+             112:  19(int8_t) GroupNonUniformBroadcast 42 111 42
+             113:    109(ptr) AccessChain 34(data) 108 46 38
+                              Store 113 112
              114:      6(int) Load 8(invocation)
-             116:    106(ptr) AccessChain 34(data) 57 46
-             117:  20(i8vec4) Load 116
-             118: 115(i8vec3) VectorShuffle 117 117 0 1 2
-             119: 115(i8vec3) GroupNonUniformBroadcast 42 118 42
-             120:    106(ptr) AccessChain 34(data) 114 46
-             121:  20(i8vec4) Load 120
-             122:  20(i8vec4) VectorShuffle 121 119 4 5 6 3
-                              Store 120 122
-             123:      6(int) Load 8(invocation)
-             124:    106(ptr) AccessChain 34(data) 67 46
-             125:  20(i8vec4) Load 124
-             126:  20(i8vec4) GroupNonUniformBroadcast 42 125 42
-             127:    106(ptr) AccessChain 34(data) 123 46
-                              Store 127 126
-             128:      6(int) Load 8(invocation)
-             129:     99(ptr) AccessChain 34(data) 37 46 38
-             130:  19(int8_t) Load 129
-             131:  19(int8_t) GroupNonUniformBroadcastFirst 42 130
-             132:     99(ptr) AccessChain 34(data) 128 46 38
-                              Store 132 131
-             133:      6(int) Load 8(invocation)
-             134:    106(ptr) AccessChain 34(data) 46 46
-             135:  20(i8vec4) Load 134
-             136: 105(i8vec2) VectorShuffle 135 135 0 1
-             137: 105(i8vec2) GroupNonUniformBroadcastFirst 42 136
-             138:    106(ptr) AccessChain 34(data) 133 46
+             117:    116(ptr) AccessChain 34(data) 46 46
+             118:  20(i8vec4) Load 117
+             119: 115(i8vec2) VectorShuffle 118 118 0 1
+             120: 115(i8vec2) GroupNonUniformBroadcast 42 119 42
+             121:    109(ptr) AccessChain 34(data) 114 46 38
+             122:  19(int8_t) CompositeExtract 120 0
+                              Store 121 122
+             123:    109(ptr) AccessChain 34(data) 114 46 55
+             124:  19(int8_t) CompositeExtract 120 1
+                              Store 123 124
+             125:      6(int) Load 8(invocation)
+             127:    116(ptr) AccessChain 34(data) 59 46
+             128:  20(i8vec4) Load 127
+             129: 126(i8vec3) VectorShuffle 128 128 0 1 2
+             130: 126(i8vec3) GroupNonUniformBroadcast 42 129 42
+             131:    109(ptr) AccessChain 34(data) 125 46 38
+             132:  19(int8_t) CompositeExtract 130 0
+                              Store 131 132
+             133:    109(ptr) AccessChain 34(data) 125 46 55
+             134:  19(int8_t) CompositeExtract 130 1
+                              Store 133 134
+             135:    109(ptr) AccessChain 34(data) 125 46 69
+             136:  19(int8_t) CompositeExtract 130 2
+                              Store 135 136
+             137:      6(int) Load 8(invocation)
+             138:    116(ptr) AccessChain 34(data) 73 46
              139:  20(i8vec4) Load 138
-             140:  20(i8vec4) VectorShuffle 139 137 4 5 2 3
-                              Store 138 140
-             141:      6(int) Load 8(invocation)
-             142:    106(ptr) AccessChain 34(data) 57 46
-             143:  20(i8vec4) Load 142
-             144: 115(i8vec3) VectorShuffle 143 143 0 1 2
-             145: 115(i8vec3) GroupNonUniformBroadcastFirst 42 144
-             146:    106(ptr) AccessChain 34(data) 141 46
-             147:  20(i8vec4) Load 146
-             148:  20(i8vec4) VectorShuffle 147 145 4 5 6 3
-                              Store 146 148
-             149:      6(int) Load 8(invocation)
-             150:    106(ptr) AccessChain 34(data) 67 46
-             151:  20(i8vec4) Load 150
-             152:  20(i8vec4) GroupNonUniformBroadcastFirst 42 151
-             153:    106(ptr) AccessChain 34(data) 149 46
-                              Store 153 152
-             154:      6(int) Load 8(invocation)
-             156:    155(ptr) AccessChain 34(data) 37 57 38
-             157: 21(int16_t) Load 156
-             158: 21(int16_t) GroupNonUniformBroadcast 42 157 42
-             159:    155(ptr) AccessChain 34(data) 154 57 38
-                              Store 159 158
-             160:      6(int) Load 8(invocation)
-             163:    162(ptr) AccessChain 34(data) 46 57
-             164: 22(i16vec4) Load 163
-             165:161(i16vec2) VectorShuffle 164 164 0 1
-             166:161(i16vec2) GroupNonUniformBroadcast 42 165 42
-             167:    162(ptr) AccessChain 34(data) 160 57
-             168: 22(i16vec4) Load 167
-             169: 22(i16vec4) VectorShuffle 168 166 4 5 2 3
-                              Store 167 169
-             170:      6(int) Load 8(invocation)
-             172:    162(ptr) AccessChain 34(data) 57 57
-             173: 22(i16vec4) Load 172
-             174:171(i16vec3) VectorShuffle 173 173 0 1 2
-             175:171(i16vec3) GroupNonUniformBroadcast 42 174 42
-             176:    162(ptr) AccessChain 34(data) 170 57
-             177: 22(i16vec4) Load 176
-             178: 22(i16vec4) VectorShuffle 177 175 4 5 6 3
-                              Store 176 178
-             179:      6(int) Load 8(invocation)
-             180:    162(ptr) AccessChain 34(data) 67 57
-             181: 22(i16vec4) Load 180
-             182: 22(i16vec4) GroupNonUniformBroadcast 42 181 42
-             183:    162(ptr) AccessChain 34(data) 179 57
-                              Store 183 182
-             184:      6(int) Load 8(invocation)
-             185:    155(ptr) AccessChain 34(data) 37 57 38
-             186: 21(int16_t) Load 185
-             187: 21(int16_t) GroupNonUniformBroadcastFirst 42 186
-             188:    155(ptr) AccessChain 34(data) 184 57 38
-                              Store 188 187
+             140:  20(i8vec4) GroupNonUniformBroadcast 42 139 42
+             141:    116(ptr) AccessChain 34(data) 137 46
+                              Store 141 140
+             142:      6(int) Load 8(invocation)
+             143:    109(ptr) AccessChain 34(data) 37 46 38
+             144:  19(int8_t) Load 143
+             145:  19(int8_t) GroupNonUniformBroadcastFirst 42 144
+             146:    109(ptr) AccessChain 34(data) 142 46 38
+                              Store 146 145
+             147:      6(int) Load 8(invocation)
+             148:    116(ptr) AccessChain 34(data) 46 46
+             149:  20(i8vec4) Load 148
+             150: 115(i8vec2) VectorShuffle 149 149 0 1
+             151: 115(i8vec2) GroupNonUniformBroadcastFirst 42 150
+             152:    109(ptr) AccessChain 34(data) 147 46 38
+             153:  19(int8_t) CompositeExtract 151 0
+                              Store 152 153
+             154:    109(ptr) AccessChain 34(data) 147 46 55
+             155:  19(int8_t) CompositeExtract 151 1
+                              Store 154 155
+             156:      6(int) Load 8(invocation)
+             157:    116(ptr) AccessChain 34(data) 59 46
+             158:  20(i8vec4) Load 157
+             159: 126(i8vec3) VectorShuffle 158 158 0 1 2
+             160: 126(i8vec3) GroupNonUniformBroadcastFirst 42 159
+             161:    109(ptr) AccessChain 34(data) 156 46 38
+             162:  19(int8_t) CompositeExtract 160 0
+                              Store 161 162
+             163:    109(ptr) AccessChain 34(data) 156 46 55
+             164:  19(int8_t) CompositeExtract 160 1
+                              Store 163 164
+             165:    109(ptr) AccessChain 34(data) 156 46 69
+             166:  19(int8_t) CompositeExtract 160 2
+                              Store 165 166
+             167:      6(int) Load 8(invocation)
+             168:    116(ptr) AccessChain 34(data) 73 46
+             169:  20(i8vec4) Load 168
+             170:  20(i8vec4) GroupNonUniformBroadcastFirst 42 169
+             171:    116(ptr) AccessChain 34(data) 167 46
+                              Store 171 170
+             172:      6(int) Load 8(invocation)
+             174:    173(ptr) AccessChain 34(data) 37 59 38
+             175: 21(int16_t) Load 174
+             176: 21(int16_t) GroupNonUniformBroadcast 42 175 42
+             177:    173(ptr) AccessChain 34(data) 172 59 38
+                              Store 177 176
+             178:      6(int) Load 8(invocation)
+             181:    180(ptr) AccessChain 34(data) 46 59
+             182: 22(i16vec4) Load 181
+             183:179(i16vec2) VectorShuffle 182 182 0 1
+             184:179(i16vec2) GroupNonUniformBroadcast 42 183 42
+             185:    173(ptr) AccessChain 34(data) 178 59 38
+             186: 21(int16_t) CompositeExtract 184 0
+                              Store 185 186
+             187:    173(ptr) AccessChain 34(data) 178 59 55
+             188: 21(int16_t) CompositeExtract 184 1
+                              Store 187 188
              189:      6(int) Load 8(invocation)
-             190:    162(ptr) AccessChain 34(data) 46 57
-             191: 22(i16vec4) Load 190
-             192:161(i16vec2) VectorShuffle 191 191 0 1
-             193:161(i16vec2) GroupNonUniformBroadcastFirst 42 192
-             194:    162(ptr) AccessChain 34(data) 189 57
-             195: 22(i16vec4) Load 194
-             196: 22(i16vec4) VectorShuffle 195 193 4 5 2 3
-                              Store 194 196
-             197:      6(int) Load 8(invocation)
-             198:    162(ptr) AccessChain 34(data) 57 57
-             199: 22(i16vec4) Load 198
-             200:171(i16vec3) VectorShuffle 199 199 0 1 2
-             201:171(i16vec3) GroupNonUniformBroadcastFirst 42 200
-             202:    162(ptr) AccessChain 34(data) 197 57
+             191:    180(ptr) AccessChain 34(data) 59 59
+             192: 22(i16vec4) Load 191
+             193:190(i16vec3) VectorShuffle 192 192 0 1 2
+             194:190(i16vec3) GroupNonUniformBroadcast 42 193 42
+             195:    173(ptr) AccessChain 34(data) 189 59 38
+             196: 21(int16_t) CompositeExtract 194 0
+                              Store 195 196
+             197:    173(ptr) AccessChain 34(data) 189 59 55
+             198: 21(int16_t) CompositeExtract 194 1
+                              Store 197 198
+             199:    173(ptr) AccessChain 34(data) 189 59 69
+             200: 21(int16_t) CompositeExtract 194 2
+                              Store 199 200
+             201:      6(int) Load 8(invocation)
+             202:    180(ptr) AccessChain 34(data) 73 59
              203: 22(i16vec4) Load 202
-             204: 22(i16vec4) VectorShuffle 203 201 4 5 6 3
-                              Store 202 204
-             205:      6(int) Load 8(invocation)
-             206:    162(ptr) AccessChain 34(data) 67 57
-             207: 22(i16vec4) Load 206
-             208: 22(i16vec4) GroupNonUniformBroadcastFirst 42 207
-             209:    162(ptr) AccessChain 34(data) 205 57
-                              Store 209 208
-             210:      6(int) Load 8(invocation)
-             212:    211(ptr) AccessChain 34(data) 37 67 38
-             213: 23(int16_t) Load 212
-             214: 23(int16_t) GroupNonUniformBroadcast 42 213 42
-             215:    211(ptr) AccessChain 34(data) 210 67 38
-                              Store 215 214
-             216:      6(int) Load 8(invocation)
-             219:    218(ptr) AccessChain 34(data) 46 67
-             220: 24(i16vec4) Load 219
-             221:217(i16vec2) VectorShuffle 220 220 0 1
-             222:217(i16vec2) GroupNonUniformBroadcast 42 221 42
-             223:    218(ptr) AccessChain 34(data) 216 67
-             224: 24(i16vec4) Load 223
-             225: 24(i16vec4) VectorShuffle 224 222 4 5 2 3
-                              Store 223 225
-             226:      6(int) Load 8(invocation)
-             228:    218(ptr) AccessChain 34(data) 57 67
-             229: 24(i16vec4) Load 228
-             230:227(i16vec3) VectorShuffle 229 229 0 1 2
-             231:227(i16vec3) GroupNonUniformBroadcast 42 230 42
-             232:    218(ptr) AccessChain 34(data) 226 67
-             233: 24(i16vec4) Load 232
-             234: 24(i16vec4) VectorShuffle 233 231 4 5 6 3
-                              Store 232 234
-             235:      6(int) Load 8(invocation)
-             236:    218(ptr) AccessChain 34(data) 67 67
-             237: 24(i16vec4) Load 236
-             238: 24(i16vec4) GroupNonUniformBroadcast 42 237 42
-             239:    218(ptr) AccessChain 34(data) 235 67
-                              Store 239 238
-             240:      6(int) Load 8(invocation)
-             241:    211(ptr) AccessChain 34(data) 37 67 38
-             242: 23(int16_t) Load 241
-             243: 23(int16_t) GroupNonUniformBroadcastFirst 42 242
-             244:    211(ptr) AccessChain 34(data) 240 67 38
-                              Store 244 243
-             245:      6(int) Load 8(invocation)
-             246:    218(ptr) AccessChain 34(data) 46 67
-             247: 24(i16vec4) Load 246
-             248:217(i16vec2) VectorShuffle 247 247 0 1
-             249:217(i16vec2) GroupNonUniformBroadcastFirst 42 248
-             250:    218(ptr) AccessChain 34(data) 245 67
-             251: 24(i16vec4) Load 250
-             252: 24(i16vec4) VectorShuffle 251 249 4 5 2 3
-                              Store 250 252
+             204: 22(i16vec4) GroupNonUniformBroadcast 42 203 42
+             205:    180(ptr) AccessChain 34(data) 201 59
+                              Store 205 204
+             206:      6(int) Load 8(invocation)
+             207:    173(ptr) AccessChain 34(data) 37 59 38
+             208: 21(int16_t) Load 207
+             209: 21(int16_t) GroupNonUniformBroadcastFirst 42 208
+             210:    173(ptr) AccessChain 34(data) 206 59 38
+                              Store 210 209
+             211:      6(int) Load 8(invocation)
+             212:    180(ptr) AccessChain 34(data) 46 59
+             213: 22(i16vec4) Load 212
+             214:179(i16vec2) VectorShuffle 213 213 0 1
+             215:179(i16vec2) GroupNonUniformBroadcastFirst 42 214
+             216:    173(ptr) AccessChain 34(data) 211 59 38
+             217: 21(int16_t) CompositeExtract 215 0
+                              Store 216 217
+             218:    173(ptr) AccessChain 34(data) 211 59 55
+             219: 21(int16_t) CompositeExtract 215 1
+                              Store 218 219
+             220:      6(int) Load 8(invocation)
+             221:    180(ptr) AccessChain 34(data) 59 59
+             222: 22(i16vec4) Load 221
+             223:190(i16vec3) VectorShuffle 222 222 0 1 2
+             224:190(i16vec3) GroupNonUniformBroadcastFirst 42 223
+             225:    173(ptr) AccessChain 34(data) 220 59 38
+             226: 21(int16_t) CompositeExtract 224 0
+                              Store 225 226
+             227:    173(ptr) AccessChain 34(data) 220 59 55
+             228: 21(int16_t) CompositeExtract 224 1
+                              Store 227 228
+             229:    173(ptr) AccessChain 34(data) 220 59 69
+             230: 21(int16_t) CompositeExtract 224 2
+                              Store 229 230
+             231:      6(int) Load 8(invocation)
+             232:    180(ptr) AccessChain 34(data) 73 59
+             233: 22(i16vec4) Load 232
+             234: 22(i16vec4) GroupNonUniformBroadcastFirst 42 233
+             235:    180(ptr) AccessChain 34(data) 231 59
+                              Store 235 234
+             236:      6(int) Load 8(invocation)
+             238:    237(ptr) AccessChain 34(data) 37 73 38
+             239: 23(int16_t) Load 238
+             240: 23(int16_t) GroupNonUniformBroadcast 42 239 42
+             241:    237(ptr) AccessChain 34(data) 236 73 38
+                              Store 241 240
+             242:      6(int) Load 8(invocation)
+             245:    244(ptr) AccessChain 34(data) 46 73
+             246: 24(i16vec4) Load 245
+             247:243(i16vec2) VectorShuffle 246 246 0 1
+             248:243(i16vec2) GroupNonUniformBroadcast 42 247 42
+             249:    237(ptr) AccessChain 34(data) 242 73 38
+             250: 23(int16_t) CompositeExtract 248 0
+                              Store 249 250
+             251:    237(ptr) AccessChain 34(data) 242 73 55
+             252: 23(int16_t) CompositeExtract 248 1
+                              Store 251 252
              253:      6(int) Load 8(invocation)
-             254:    218(ptr) AccessChain 34(data) 57 67
-             255: 24(i16vec4) Load 254
-             256:227(i16vec3) VectorShuffle 255 255 0 1 2
-             257:227(i16vec3) GroupNonUniformBroadcastFirst 42 256
-             258:    218(ptr) AccessChain 34(data) 253 67
-             259: 24(i16vec4) Load 258
-             260: 24(i16vec4) VectorShuffle 259 257 4 5 6 3
-                              Store 258 260
-             261:      6(int) Load 8(invocation)
-             262:    218(ptr) AccessChain 34(data) 67 67
-             263: 24(i16vec4) Load 262
-             264: 24(i16vec4) GroupNonUniformBroadcastFirst 42 263
-             265:    218(ptr) AccessChain 34(data) 261 67
-                              Store 265 264
-             266:      6(int) Load 8(invocation)
-             269:    268(ptr) AccessChain 34(data) 37 267 38
-             270: 25(int64_t) Load 269
-             271: 25(int64_t) GroupNonUniformBroadcast 42 270 42
-             272:    268(ptr) AccessChain 34(data) 266 267 38
-                              Store 272 271
-             273:      6(int) Load 8(invocation)
-             276:    275(ptr) AccessChain 34(data) 46 267
-             277: 26(i64vec4) Load 276
-             278:274(i64vec2) VectorShuffle 277 277 0 1
-             279:274(i64vec2) GroupNonUniformBroadcast 42 278 42
-             280:    275(ptr) AccessChain 34(data) 273 267
-             281: 26(i64vec4) Load 280
-             282: 26(i64vec4) VectorShuffle 281 279 4 5 2 3
-                              Store 280 282
-             283:      6(int) Load 8(invocation)
-             285:    275(ptr) AccessChain 34(data) 57 267
-             286: 26(i64vec4) Load 285
-             287:284(i64vec3) VectorShuffle 286 286 0 1 2
-             288:284(i64vec3) GroupNonUniformBroadcast 42 287 42
-             289:    275(ptr) AccessChain 34(data) 283 267
-             290: 26(i64vec4) Load 289
-             291: 26(i64vec4) VectorShuffle 290 288 4 5 6 3
-                              Store 289 291
-             292:      6(int) Load 8(invocation)
-             293:    275(ptr) AccessChain 34(data) 67 267
-             294: 26(i64vec4) Load 293
-             295: 26(i64vec4) GroupNonUniformBroadcast 42 294 42
-             296:    275(ptr) AccessChain 34(data) 292 267
-                              Store 296 295
-             297:      6(int) Load 8(invocation)
-             298:    268(ptr) AccessChain 34(data) 37 267 38
-             299: 25(int64_t) Load 298
-             300: 25(int64_t) GroupNonUniformBroadcastFirst 42 299
-             301:    268(ptr) AccessChain 34(data) 297 267 38
-                              Store 301 300
-             302:      6(int) Load 8(invocation)
-             303:    275(ptr) AccessChain 34(data) 46 267
-             304: 26(i64vec4) Load 303
-             305:274(i64vec2) VectorShuffle 304 304 0 1
-             306:274(i64vec2) GroupNonUniformBroadcastFirst 42 305
-             307:    275(ptr) AccessChain 34(data) 302 267
-             308: 26(i64vec4) Load 307
-             309: 26(i64vec4) VectorShuffle 308 306 4 5 2 3
-                              Store 307 309
-             310:      6(int) Load 8(invocation)
-             311:    275(ptr) AccessChain 34(data) 57 267
-             312: 26(i64vec4) Load 311
-             313:284(i64vec3) VectorShuffle 312 312 0 1 2
-             314:284(i64vec3) GroupNonUniformBroadcastFirst 42 313
-             315:    275(ptr) AccessChain 34(data) 310 267
-             316: 26(i64vec4) Load 315
-             317: 26(i64vec4) VectorShuffle 316 314 4 5 6 3
-                              Store 315 317
+             255:    244(ptr) AccessChain 34(data) 59 73
+             256: 24(i16vec4) Load 255
+             257:254(i16vec3) VectorShuffle 256 256 0 1 2
+             258:254(i16vec3) GroupNonUniformBroadcast 42 257 42
+             259:    237(ptr) AccessChain 34(data) 253 73 38
+             260: 23(int16_t) CompositeExtract 258 0
+                              Store 259 260
+             261:    237(ptr) AccessChain 34(data) 253 73 55
+             262: 23(int16_t) CompositeExtract 258 1
+                              Store 261 262
+             263:    237(ptr) AccessChain 34(data) 253 73 69
+             264: 23(int16_t) CompositeExtract 258 2
+                              Store 263 264
+             265:      6(int) Load 8(invocation)
+             266:    244(ptr) AccessChain 34(data) 73 73
+             267: 24(i16vec4) Load 266
+             268: 24(i16vec4) GroupNonUniformBroadcast 42 267 42
+             269:    244(ptr) AccessChain 34(data) 265 73
+                              Store 269 268
+             270:      6(int) Load 8(invocation)
+             271:    237(ptr) AccessChain 34(data) 37 73 38
+             272: 23(int16_t) Load 271
+             273: 23(int16_t) GroupNonUniformBroadcastFirst 42 272
+             274:    237(ptr) AccessChain 34(data) 270 73 38
+                              Store 274 273
+             275:      6(int) Load 8(invocation)
+             276:    244(ptr) AccessChain 34(data) 46 73
+             277: 24(i16vec4) Load 276
+             278:243(i16vec2) VectorShuffle 277 277 0 1
+             279:243(i16vec2) GroupNonUniformBroadcastFirst 42 278
+             280:    237(ptr) AccessChain 34(data) 275 73 38
+             281: 23(int16_t) CompositeExtract 279 0
+                              Store 280 281
+             282:    237(ptr) AccessChain 34(data) 275 73 55
+             283: 23(int16_t) CompositeExtract 279 1
+                              Store 282 283
+             284:      6(int) Load 8(invocation)
+             285:    244(ptr) AccessChain 34(data) 59 73
+             286: 24(i16vec4) Load 285
+             287:254(i16vec3) VectorShuffle 286 286 0 1 2
+             288:254(i16vec3) GroupNonUniformBroadcastFirst 42 287
+             289:    237(ptr) AccessChain 34(data) 284 73 38
+             290: 23(int16_t) CompositeExtract 288 0
+                              Store 289 290
+             291:    237(ptr) AccessChain 34(data) 284 73 55
+             292: 23(int16_t) CompositeExtract 288 1
+                              Store 291 292
+             293:    237(ptr) AccessChain 34(data) 284 73 69
+             294: 23(int16_t) CompositeExtract 288 2
+                              Store 293 294
+             295:      6(int) Load 8(invocation)
+             296:    244(ptr) AccessChain 34(data) 73 73
+             297: 24(i16vec4) Load 296
+             298: 24(i16vec4) GroupNonUniformBroadcastFirst 42 297
+             299:    244(ptr) AccessChain 34(data) 295 73
+                              Store 299 298
+             300:      6(int) Load 8(invocation)
+             303:    302(ptr) AccessChain 34(data) 37 301 38
+             304: 25(int64_t) Load 303
+             305: 25(int64_t) GroupNonUniformBroadcast 42 304 42
+             306:    302(ptr) AccessChain 34(data) 300 301 38
+                              Store 306 305
+             307:      6(int) Load 8(invocation)
+             310:    309(ptr) AccessChain 34(data) 46 301
+             311: 26(i64vec4) Load 310
+             312:308(i64vec2) VectorShuffle 311 311 0 1
+             313:308(i64vec2) GroupNonUniformBroadcast 42 312 42
+             314:    302(ptr) AccessChain 34(data) 307 301 38
+             315: 25(int64_t) CompositeExtract 313 0
+                              Store 314 315
+             316:    302(ptr) AccessChain 34(data) 307 301 55
+             317: 25(int64_t) CompositeExtract 313 1
+                              Store 316 317
              318:      6(int) Load 8(invocation)
-             319:    275(ptr) AccessChain 34(data) 67 267
-             320: 26(i64vec4) Load 319
-             321: 26(i64vec4) GroupNonUniformBroadcastFirst 42 320
-             322:    275(ptr) AccessChain 34(data) 318 267
-                              Store 322 321
-             323:      6(int) Load 8(invocation)
-             326:    325(ptr) AccessChain 34(data) 37 324 38
-             327: 27(int64_t) Load 326
-             328: 27(int64_t) GroupNonUniformBroadcast 42 327 42
-             329:    325(ptr) AccessChain 34(data) 323 324 38
-                              Store 329 328
+             320:    309(ptr) AccessChain 34(data) 59 301
+             321: 26(i64vec4) Load 320
+             322:319(i64vec3) VectorShuffle 321 321 0 1 2
+             323:319(i64vec3) GroupNonUniformBroadcast 42 322 42
+             324:    302(ptr) AccessChain 34(data) 318 301 38
+             325: 25(int64_t) CompositeExtract 323 0
+                              Store 324 325
+             326:    302(ptr) AccessChain 34(data) 318 301 55
+             327: 25(int64_t) CompositeExtract 323 1
+                              Store 326 327
+             328:    302(ptr) AccessChain 34(data) 318 301 69
+             329: 25(int64_t) CompositeExtract 323 2
+                              Store 328 329
              330:      6(int) Load 8(invocation)
-             333:    332(ptr) AccessChain 34(data) 46 324
-             334: 28(i64vec4) Load 333
-             335:331(i64vec2) VectorShuffle 334 334 0 1
-             336:331(i64vec2) GroupNonUniformBroadcast 42 335 42
-             337:    332(ptr) AccessChain 34(data) 330 324
-             338: 28(i64vec4) Load 337
-             339: 28(i64vec4) VectorShuffle 338 336 4 5 2 3
-                              Store 337 339
+             331:    309(ptr) AccessChain 34(data) 73 301
+             332: 26(i64vec4) Load 331
+             333: 26(i64vec4) GroupNonUniformBroadcast 42 332 42
+             334:    309(ptr) AccessChain 34(data) 330 301
+                              Store 334 333
+             335:      6(int) Load 8(invocation)
+             336:    302(ptr) AccessChain 34(data) 37 301 38
+             337: 25(int64_t) Load 336
+             338: 25(int64_t) GroupNonUniformBroadcastFirst 42 337
+             339:    302(ptr) AccessChain 34(data) 335 301 38
+                              Store 339 338
              340:      6(int) Load 8(invocation)
-             342:    332(ptr) AccessChain 34(data) 57 324
-             343: 28(i64vec4) Load 342
-             344:341(i64vec3) VectorShuffle 343 343 0 1 2
-             345:341(i64vec3) GroupNonUniformBroadcast 42 344 42
-             346:    332(ptr) AccessChain 34(data) 340 324
-             347: 28(i64vec4) Load 346
-             348: 28(i64vec4) VectorShuffle 347 345 4 5 6 3
-                              Store 346 348
+             341:    309(ptr) AccessChain 34(data) 46 301
+             342: 26(i64vec4) Load 341
+             343:308(i64vec2) VectorShuffle 342 342 0 1
+             344:308(i64vec2) GroupNonUniformBroadcastFirst 42 343
+             345:    302(ptr) AccessChain 34(data) 340 301 38
+             346: 25(int64_t) CompositeExtract 344 0
+                              Store 345 346
+             347:    302(ptr) AccessChain 34(data) 340 301 55
+             348: 25(int64_t) CompositeExtract 344 1
+                              Store 347 348
              349:      6(int) Load 8(invocation)
-             350:    332(ptr) AccessChain 34(data) 67 324
-             351: 28(i64vec4) Load 350
-             352: 28(i64vec4) GroupNonUniformBroadcast 42 351 42
-             353:    332(ptr) AccessChain 34(data) 349 324
-                              Store 353 352
-             354:      6(int) Load 8(invocation)
-             355:    325(ptr) AccessChain 34(data) 37 324 38
-             356: 27(int64_t) Load 355
-             357: 27(int64_t) GroupNonUniformBroadcastFirst 42 356
-             358:    325(ptr) AccessChain 34(data) 354 324 38
-                              Store 358 357
-             359:      6(int) Load 8(invocation)
-             360:    332(ptr) AccessChain 34(data) 46 324
-             361: 28(i64vec4) Load 360
-             362:331(i64vec2) VectorShuffle 361 361 0 1
-             363:331(i64vec2) GroupNonUniformBroadcastFirst 42 362
-             364:    332(ptr) AccessChain 34(data) 359 324
-             365: 28(i64vec4) Load 364
-             366: 28(i64vec4) VectorShuffle 365 363 4 5 2 3
-                              Store 364 366
-             367:      6(int) Load 8(invocation)
-             368:    332(ptr) AccessChain 34(data) 57 324
-             369: 28(i64vec4) Load 368
-             370:341(i64vec3) VectorShuffle 369 369 0 1 2
-             371:341(i64vec3) GroupNonUniformBroadcastFirst 42 370
-             372:    332(ptr) AccessChain 34(data) 367 324
-             373: 28(i64vec4) Load 372
-             374: 28(i64vec4) VectorShuffle 373 371 4 5 6 3
-                              Store 372 374
-             375:      6(int) Load 8(invocation)
-             376:    332(ptr) AccessChain 34(data) 67 324
-             377: 28(i64vec4) Load 376
-             378: 28(i64vec4) GroupNonUniformBroadcastFirst 42 377
-             379:    332(ptr) AccessChain 34(data) 375 324
-                              Store 379 378
-             380:      6(int) Load 8(invocation)
-             383:    382(ptr) AccessChain 34(data) 37 381 38
-             384:29(float16_t) Load 383
-             385:29(float16_t) GroupNonUniformBroadcast 42 384 42
-             386:    382(ptr) AccessChain 34(data) 380 381 38
-                              Store 386 385
-             387:      6(int) Load 8(invocation)
-             390:    389(ptr) AccessChain 34(data) 46 381
-             391: 30(f16vec4) Load 390
-             392:388(f16vec2) VectorShuffle 391 391 0 1
-             393:388(f16vec2) GroupNonUniformBroadcast 42 392 42
-             394:    389(ptr) AccessChain 34(data) 387 381
-             395: 30(f16vec4) Load 394
-             396: 30(f16vec4) VectorShuffle 395 393 4 5 2 3
-                              Store 394 396
-             397:      6(int) Load 8(invocation)
-             399:    389(ptr) AccessChain 34(data) 57 381
-             400: 30(f16vec4) Load 399
-             401:398(f16vec3) VectorShuffle 400 400 0 1 2
-             402:398(f16vec3) GroupNonUniformBroadcast 42 401 42
-             403:    389(ptr) AccessChain 34(data) 397 381
-             404: 30(f16vec4) Load 403
-             405: 30(f16vec4) VectorShuffle 404 402 4 5 6 3
-                              Store 403 405
-             406:      6(int) Load 8(invocation)
-             407:    389(ptr) AccessChain 34(data) 67 381
-             408: 30(f16vec4) Load 407
-             409: 30(f16vec4) GroupNonUniformBroadcast 42 408 42
-             410:    389(ptr) AccessChain 34(data) 406 381
-                              Store 410 409
-             411:      6(int) Load 8(invocation)
-             412:    382(ptr) AccessChain 34(data) 37 381 38
-             413:29(float16_t) Load 412
-             414:29(float16_t) GroupNonUniformBroadcastFirst 42 413
-             415:    382(ptr) AccessChain 34(data) 411 381 38
-                              Store 415 414
-             416:      6(int) Load 8(invocation)
-             417:    389(ptr) AccessChain 34(data) 46 381
-             418: 30(f16vec4) Load 417
-             419:388(f16vec2) VectorShuffle 418 418 0 1
-             420:388(f16vec2) GroupNonUniformBroadcastFirst 42 419
-             421:    389(ptr) AccessChain 34(data) 416 381
-             422: 30(f16vec4) Load 421
-             423: 30(f16vec4) VectorShuffle 422 420 4 5 2 3
-                              Store 421 423
-             424:      6(int) Load 8(invocation)
-             425:    389(ptr) AccessChain 34(data) 57 381
-             426: 30(f16vec4) Load 425
-             427:398(f16vec3) VectorShuffle 426 426 0 1 2
-             428:398(f16vec3) GroupNonUniformBroadcastFirst 42 427
-             429:    389(ptr) AccessChain 34(data) 424 381
-             430: 30(f16vec4) Load 429
-             431: 30(f16vec4) VectorShuffle 430 428 4 5 6 3
-                              Store 429 431
-             432:      6(int) Load 8(invocation)
-             433:    389(ptr) AccessChain 34(data) 67 381
-             434: 30(f16vec4) Load 433
-             435: 30(f16vec4) GroupNonUniformBroadcastFirst 42 434
-             436:    389(ptr) AccessChain 34(data) 432 381
+             350:    309(ptr) AccessChain 34(data) 59 301
+             351: 26(i64vec4) Load 350
+             352:319(i64vec3) VectorShuffle 351 351 0 1 2
+             353:319(i64vec3) GroupNonUniformBroadcastFirst 42 352
+             354:    302(ptr) AccessChain 34(data) 349 301 38
+             355: 25(int64_t) CompositeExtract 353 0
+                              Store 354 355
+             356:    302(ptr) AccessChain 34(data) 349 301 55
+             357: 25(int64_t) CompositeExtract 353 1
+                              Store 356 357
+             358:    302(ptr) AccessChain 34(data) 349 301 69
+             359: 25(int64_t) CompositeExtract 353 2
+                              Store 358 359
+             360:      6(int) Load 8(invocation)
+             361:    309(ptr) AccessChain 34(data) 73 301
+             362: 26(i64vec4) Load 361
+             363: 26(i64vec4) GroupNonUniformBroadcastFirst 42 362
+             364:    309(ptr) AccessChain 34(data) 360 301
+                              Store 364 363
+             365:      6(int) Load 8(invocation)
+             368:    367(ptr) AccessChain 34(data) 37 366 38
+             369: 27(int64_t) Load 368
+             370: 27(int64_t) GroupNonUniformBroadcast 42 369 42
+             371:    367(ptr) AccessChain 34(data) 365 366 38
+                              Store 371 370
+             372:      6(int) Load 8(invocation)
+             375:    374(ptr) AccessChain 34(data) 46 366
+             376: 28(i64vec4) Load 375
+             377:373(i64vec2) VectorShuffle 376 376 0 1
+             378:373(i64vec2) GroupNonUniformBroadcast 42 377 42
+             379:    367(ptr) AccessChain 34(data) 372 366 38
+             380: 27(int64_t) CompositeExtract 378 0
+                              Store 379 380
+             381:    367(ptr) AccessChain 34(data) 372 366 55
+             382: 27(int64_t) CompositeExtract 378 1
+                              Store 381 382
+             383:      6(int) Load 8(invocation)
+             385:    374(ptr) AccessChain 34(data) 59 366
+             386: 28(i64vec4) Load 385
+             387:384(i64vec3) VectorShuffle 386 386 0 1 2
+             388:384(i64vec3) GroupNonUniformBroadcast 42 387 42
+             389:    367(ptr) AccessChain 34(data) 383 366 38
+             390: 27(int64_t) CompositeExtract 388 0
+                              Store 389 390
+             391:    367(ptr) AccessChain 34(data) 383 366 55
+             392: 27(int64_t) CompositeExtract 388 1
+                              Store 391 392
+             393:    367(ptr) AccessChain 34(data) 383 366 69
+             394: 27(int64_t) CompositeExtract 388 2
+                              Store 393 394
+             395:      6(int) Load 8(invocation)
+             396:    374(ptr) AccessChain 34(data) 73 366
+             397: 28(i64vec4) Load 396
+             398: 28(i64vec4) GroupNonUniformBroadcast 42 397 42
+             399:    374(ptr) AccessChain 34(data) 395 366
+                              Store 399 398
+             400:      6(int) Load 8(invocation)
+             401:    367(ptr) AccessChain 34(data) 37 366 38
+             402: 27(int64_t) Load 401
+             403: 27(int64_t) GroupNonUniformBroadcastFirst 42 402
+             404:    367(ptr) AccessChain 34(data) 400 366 38
+                              Store 404 403
+             405:      6(int) Load 8(invocation)
+             406:    374(ptr) AccessChain 34(data) 46 366
+             407: 28(i64vec4) Load 406
+             408:373(i64vec2) VectorShuffle 407 407 0 1
+             409:373(i64vec2) GroupNonUniformBroadcastFirst 42 408
+             410:    367(ptr) AccessChain 34(data) 405 366 38
+             411: 27(int64_t) CompositeExtract 409 0
+                              Store 410 411
+             412:    367(ptr) AccessChain 34(data) 405 366 55
+             413: 27(int64_t) CompositeExtract 409 1
+                              Store 412 413
+             414:      6(int) Load 8(invocation)
+             415:    374(ptr) AccessChain 34(data) 59 366
+             416: 28(i64vec4) Load 415
+             417:384(i64vec3) VectorShuffle 416 416 0 1 2
+             418:384(i64vec3) GroupNonUniformBroadcastFirst 42 417
+             419:    367(ptr) AccessChain 34(data) 414 366 38
+             420: 27(int64_t) CompositeExtract 418 0
+                              Store 419 420
+             421:    367(ptr) AccessChain 34(data) 414 366 55
+             422: 27(int64_t) CompositeExtract 418 1
+                              Store 421 422
+             423:    367(ptr) AccessChain 34(data) 414 366 69
+             424: 27(int64_t) CompositeExtract 418 2
+                              Store 423 424
+             425:      6(int) Load 8(invocation)
+             426:    374(ptr) AccessChain 34(data) 73 366
+             427: 28(i64vec4) Load 426
+             428: 28(i64vec4) GroupNonUniformBroadcastFirst 42 427
+             429:    374(ptr) AccessChain 34(data) 425 366
+                              Store 429 428
+             430:      6(int) Load 8(invocation)
+             433:    432(ptr) AccessChain 34(data) 37 431 38
+             434:29(float16_t) Load 433
+             435:29(float16_t) GroupNonUniformBroadcast 42 434 42
+             436:    432(ptr) AccessChain 34(data) 430 431 38
                               Store 436 435
+             437:      6(int) Load 8(invocation)
+             440:    439(ptr) AccessChain 34(data) 46 431
+             441: 30(f16vec4) Load 440
+             442:438(f16vec2) VectorShuffle 441 441 0 1
+             443:438(f16vec2) GroupNonUniformBroadcast 42 442 42
+             444:    432(ptr) AccessChain 34(data) 437 431 38
+             445:29(float16_t) CompositeExtract 443 0
+                              Store 444 445
+             446:    432(ptr) AccessChain 34(data) 437 431 55
+             447:29(float16_t) CompositeExtract 443 1
+                              Store 446 447
+             448:      6(int) Load 8(invocation)
+             450:    439(ptr) AccessChain 34(data) 59 431
+             451: 30(f16vec4) Load 450
+             452:449(f16vec3) VectorShuffle 451 451 0 1 2
+             453:449(f16vec3) GroupNonUniformBroadcast 42 452 42
+             454:    432(ptr) AccessChain 34(data) 448 431 38
+             455:29(float16_t) CompositeExtract 453 0
+                              Store 454 455
+             456:    432(ptr) AccessChain 34(data) 448 431 55
+             457:29(float16_t) CompositeExtract 453 1
+                              Store 456 457
+             458:    432(ptr) AccessChain 34(data) 448 431 69
+             459:29(float16_t) CompositeExtract 453 2
+                              Store 458 459
+             460:      6(int) Load 8(invocation)
+             461:    439(ptr) AccessChain 34(data) 73 431
+             462: 30(f16vec4) Load 461
+             463: 30(f16vec4) GroupNonUniformBroadcast 42 462 42
+             464:    439(ptr) AccessChain 34(data) 460 431
+                              Store 464 463
+             465:      6(int) Load 8(invocation)
+             466:    432(ptr) AccessChain 34(data) 37 431 38
+             467:29(float16_t) Load 466
+             468:29(float16_t) GroupNonUniformBroadcastFirst 42 467
+             469:    432(ptr) AccessChain 34(data) 465 431 38
+                              Store 469 468
+             470:      6(int) Load 8(invocation)
+             471:    439(ptr) AccessChain 34(data) 46 431
+             472: 30(f16vec4) Load 471
+             473:438(f16vec2) VectorShuffle 472 472 0 1
+             474:438(f16vec2) GroupNonUniformBroadcastFirst 42 473
+             475:    432(ptr) AccessChain 34(data) 470 431 38
+             476:29(float16_t) CompositeExtract 474 0
+                              Store 475 476
+             477:    432(ptr) AccessChain 34(data) 470 431 55
+             478:29(float16_t) CompositeExtract 474 1
+                              Store 477 478
+             479:      6(int) Load 8(invocation)
+             480:    439(ptr) AccessChain 34(data) 59 431
+             481: 30(f16vec4) Load 480
+             482:449(f16vec3) VectorShuffle 481 481 0 1 2
+             483:449(f16vec3) GroupNonUniformBroadcastFirst 42 482
+             484:    432(ptr) AccessChain 34(data) 479 431 38
+             485:29(float16_t) CompositeExtract 483 0
+                              Store 484 485
+             486:    432(ptr) AccessChain 34(data) 479 431 55
+             487:29(float16_t) CompositeExtract 483 1
+                              Store 486 487
+             488:    432(ptr) AccessChain 34(data) 479 431 69
+             489:29(float16_t) CompositeExtract 483 2
+                              Store 488 489
+             490:      6(int) Load 8(invocation)
+             491:    439(ptr) AccessChain 34(data) 73 431
+             492: 30(f16vec4) Load 491
+             493: 30(f16vec4) GroupNonUniformBroadcastFirst 42 492
+             494:    439(ptr) AccessChain 34(data) 490 431
+                              Store 494 493
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out b/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out
index 2f4393a..98a7a89 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesClustered.comp.out
@@ -1,7 +1,7 @@
 spv.subgroupExtendedTypesClustered.comp
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 1273
+// Id's are bound by 1458
 
                               Capability Shader
                               Capability Float16
@@ -59,7 +59,7 @@
                               Decorate 31(Buffers) Block
                               Decorate 34(data) DescriptorSet 0
                               Decorate 34(data) Binding 0
-                              Decorate 1272 BuiltIn WorkgroupSize
+                              Decorate 1457 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -95,39 +95,40 @@
               47:     36(int) Constant 1
               48:             TypeVector 17(int8_t) 2
               49:             TypePointer StorageBuffer 18(i8vec4)
-              58:     36(int) Constant 2
-              59:             TypeVector 17(int8_t) 3
-              68:     36(int) Constant 3
-             230:             TypePointer StorageBuffer 19(int8_t)
-             236:             TypeVector 19(int8_t) 2
-             237:             TypePointer StorageBuffer 20(i8vec4)
-             246:             TypeVector 19(int8_t) 3
-             416:             TypePointer StorageBuffer 21(int16_t)
-             422:             TypeVector 21(int16_t) 2
-             423:             TypePointer StorageBuffer 22(i16vec4)
-             432:             TypeVector 21(int16_t) 3
-             602:             TypePointer StorageBuffer 23(int16_t)
-             608:             TypeVector 23(int16_t) 2
-             609:             TypePointer StorageBuffer 24(i16vec4)
-             618:             TypeVector 23(int16_t) 3
-             788:     36(int) Constant 4
-             789:             TypePointer StorageBuffer 25(int64_t)
-             795:             TypeVector 25(int64_t) 2
-             796:             TypePointer StorageBuffer 26(i64vec4)
-             805:             TypeVector 25(int64_t) 3
-             975:     36(int) Constant 5
-             976:             TypePointer StorageBuffer 27(int64_t)
-             982:             TypeVector 27(int64_t) 2
-             983:             TypePointer StorageBuffer 28(i64vec4)
-             992:             TypeVector 27(int64_t) 3
-            1162:     36(int) Constant 6
-            1163:             TypePointer StorageBuffer 29(float16_t)
-            1169:             TypeVector 29(float16_t) 2
-            1170:             TypePointer StorageBuffer 30(f16vec4)
-            1179:             TypeVector 29(float16_t) 3
-            1270:             TypeVector 6(int) 3
-            1271:      6(int) Constant 8
-            1272: 1270(ivec3) ConstantComposite 1271 42 42
+              59:     36(int) Constant 2
+              60:             TypeVector 17(int8_t) 3
+              69:      6(int) Constant 2
+              73:     36(int) Constant 3
+             259:             TypePointer StorageBuffer 19(int8_t)
+             265:             TypeVector 19(int8_t) 2
+             266:             TypePointer StorageBuffer 20(i8vec4)
+             276:             TypeVector 19(int8_t) 3
+             473:             TypePointer StorageBuffer 21(int16_t)
+             479:             TypeVector 21(int16_t) 2
+             480:             TypePointer StorageBuffer 22(i16vec4)
+             490:             TypeVector 21(int16_t) 3
+             687:             TypePointer StorageBuffer 23(int16_t)
+             693:             TypeVector 23(int16_t) 2
+             694:             TypePointer StorageBuffer 24(i16vec4)
+             704:             TypeVector 23(int16_t) 3
+             901:     36(int) Constant 4
+             902:             TypePointer StorageBuffer 25(int64_t)
+             908:             TypeVector 25(int64_t) 2
+             909:             TypePointer StorageBuffer 26(i64vec4)
+             919:             TypeVector 25(int64_t) 3
+            1116:     36(int) Constant 5
+            1117:             TypePointer StorageBuffer 27(int64_t)
+            1123:             TypeVector 27(int64_t) 2
+            1124:             TypePointer StorageBuffer 28(i64vec4)
+            1134:             TypeVector 27(int64_t) 3
+            1331:     36(int) Constant 6
+            1332:             TypePointer StorageBuffer 29(float16_t)
+            1338:             TypeVector 29(float16_t) 2
+            1339:             TypePointer StorageBuffer 30(f16vec4)
+            1349:             TypeVector 29(float16_t) 3
+            1455:             TypeVector 6(int) 3
+            1456:      6(int) Constant 8
+            1457: 1455(ivec3) ConstantComposite 1456 42 42
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -147,1374 +148,1696 @@
               51:  18(i8vec4) Load 50
               52:  48(i8vec2) VectorShuffle 51 51 0 1
               53:  48(i8vec2) GroupNonUniformIAdd 43 ClusteredReduce 52 42
-              54:     49(ptr) AccessChain 34(data) 46 37
-              55:  18(i8vec4) Load 54
-              56:  18(i8vec4) VectorShuffle 55 53 4 5 2 3
-                              Store 54 56
-              57:      6(int) Load 8(invocation)
-              60:     49(ptr) AccessChain 34(data) 58 37
-              61:  18(i8vec4) Load 60
-              62:  59(i8vec3) VectorShuffle 61 61 0 1 2
-              63:  59(i8vec3) GroupNonUniformIAdd 43 ClusteredReduce 62 42
-              64:     49(ptr) AccessChain 34(data) 57 37
-              65:  18(i8vec4) Load 64
-              66:  18(i8vec4) VectorShuffle 65 63 4 5 6 3
-                              Store 64 66
-              67:      6(int) Load 8(invocation)
-              69:     49(ptr) AccessChain 34(data) 68 37
-              70:  18(i8vec4) Load 69
-              71:  18(i8vec4) GroupNonUniformIAdd 43 ClusteredReduce 70 42
-              72:     49(ptr) AccessChain 34(data) 67 37
-                              Store 72 71
-              73:      6(int) Load 8(invocation)
-              74:     39(ptr) AccessChain 34(data) 37 37 38
-              75:  17(int8_t) Load 74
-              76:  17(int8_t) GroupNonUniformIMul 43 ClusteredReduce 75 42
-              77:     39(ptr) AccessChain 34(data) 73 37 38
+              54:     39(ptr) AccessChain 34(data) 46 37 38
+              55:  17(int8_t) CompositeExtract 53 0
+                              Store 54 55
+              56:     39(ptr) AccessChain 34(data) 46 37 42
+              57:  17(int8_t) CompositeExtract 53 1
+                              Store 56 57
+              58:      6(int) Load 8(invocation)
+              61:     49(ptr) AccessChain 34(data) 59 37
+              62:  18(i8vec4) Load 61
+              63:  60(i8vec3) VectorShuffle 62 62 0 1 2
+              64:  60(i8vec3) GroupNonUniformIAdd 43 ClusteredReduce 63 42
+              65:     39(ptr) AccessChain 34(data) 58 37 38
+              66:  17(int8_t) CompositeExtract 64 0
+                              Store 65 66
+              67:     39(ptr) AccessChain 34(data) 58 37 42
+              68:  17(int8_t) CompositeExtract 64 1
+                              Store 67 68
+              70:     39(ptr) AccessChain 34(data) 58 37 69
+              71:  17(int8_t) CompositeExtract 64 2
+                              Store 70 71
+              72:      6(int) Load 8(invocation)
+              74:     49(ptr) AccessChain 34(data) 73 37
+              75:  18(i8vec4) Load 74
+              76:  18(i8vec4) GroupNonUniformIAdd 43 ClusteredReduce 75 42
+              77:     49(ptr) AccessChain 34(data) 72 37
                               Store 77 76
               78:      6(int) Load 8(invocation)
-              79:     49(ptr) AccessChain 34(data) 47 37
-              80:  18(i8vec4) Load 79
-              81:  48(i8vec2) VectorShuffle 80 80 0 1
-              82:  48(i8vec2) GroupNonUniformIMul 43 ClusteredReduce 81 42
-              83:     49(ptr) AccessChain 34(data) 78 37
-              84:  18(i8vec4) Load 83
-              85:  18(i8vec4) VectorShuffle 84 82 4 5 2 3
-                              Store 83 85
-              86:      6(int) Load 8(invocation)
-              87:     49(ptr) AccessChain 34(data) 58 37
-              88:  18(i8vec4) Load 87
-              89:  59(i8vec3) VectorShuffle 88 88 0 1 2
-              90:  59(i8vec3) GroupNonUniformIMul 43 ClusteredReduce 89 42
-              91:     49(ptr) AccessChain 34(data) 86 37
-              92:  18(i8vec4) Load 91
-              93:  18(i8vec4) VectorShuffle 92 90 4 5 6 3
-                              Store 91 93
-              94:      6(int) Load 8(invocation)
-              95:     49(ptr) AccessChain 34(data) 68 37
-              96:  18(i8vec4) Load 95
-              97:  18(i8vec4) GroupNonUniformIMul 43 ClusteredReduce 96 42
-              98:     49(ptr) AccessChain 34(data) 94 37
-                              Store 98 97
-              99:      6(int) Load 8(invocation)
-             100:     39(ptr) AccessChain 34(data) 37 37 38
-             101:  17(int8_t) Load 100
-             102:  17(int8_t) GroupNonUniformSMin 43 ClusteredReduce 101 42
-             103:     39(ptr) AccessChain 34(data) 99 37 38
-                              Store 103 102
-             104:      6(int) Load 8(invocation)
-             105:     49(ptr) AccessChain 34(data) 47 37
-             106:  18(i8vec4) Load 105
-             107:  48(i8vec2) VectorShuffle 106 106 0 1
-             108:  48(i8vec2) GroupNonUniformSMin 43 ClusteredReduce 107 42
-             109:     49(ptr) AccessChain 34(data) 104 37
-             110:  18(i8vec4) Load 109
-             111:  18(i8vec4) VectorShuffle 110 108 4 5 2 3
-                              Store 109 111
-             112:      6(int) Load 8(invocation)
-             113:     49(ptr) AccessChain 34(data) 58 37
-             114:  18(i8vec4) Load 113
-             115:  59(i8vec3) VectorShuffle 114 114 0 1 2
-             116:  59(i8vec3) GroupNonUniformSMin 43 ClusteredReduce 115 42
-             117:     49(ptr) AccessChain 34(data) 112 37
-             118:  18(i8vec4) Load 117
-             119:  18(i8vec4) VectorShuffle 118 116 4 5 6 3
-                              Store 117 119
-             120:      6(int) Load 8(invocation)
-             121:     49(ptr) AccessChain 34(data) 68 37
-             122:  18(i8vec4) Load 121
-             123:  18(i8vec4) GroupNonUniformSMin 43 ClusteredReduce 122 42
-             124:     49(ptr) AccessChain 34(data) 120 37
-                              Store 124 123
-             125:      6(int) Load 8(invocation)
-             126:     39(ptr) AccessChain 34(data) 37 37 38
-             127:  17(int8_t) Load 126
-             128:  17(int8_t) GroupNonUniformSMax 43 ClusteredReduce 127 42
-             129:     39(ptr) AccessChain 34(data) 125 37 38
-                              Store 129 128
-             130:      6(int) Load 8(invocation)
-             131:     49(ptr) AccessChain 34(data) 47 37
-             132:  18(i8vec4) Load 131
-             133:  48(i8vec2) VectorShuffle 132 132 0 1
-             134:  48(i8vec2) GroupNonUniformSMax 43 ClusteredReduce 133 42
-             135:     49(ptr) AccessChain 34(data) 130 37
-             136:  18(i8vec4) Load 135
-             137:  18(i8vec4) VectorShuffle 136 134 4 5 2 3
-                              Store 135 137
+              79:     39(ptr) AccessChain 34(data) 37 37 38
+              80:  17(int8_t) Load 79
+              81:  17(int8_t) GroupNonUniformIMul 43 ClusteredReduce 80 42
+              82:     39(ptr) AccessChain 34(data) 78 37 38
+                              Store 82 81
+              83:      6(int) Load 8(invocation)
+              84:     49(ptr) AccessChain 34(data) 47 37
+              85:  18(i8vec4) Load 84
+              86:  48(i8vec2) VectorShuffle 85 85 0 1
+              87:  48(i8vec2) GroupNonUniformIMul 43 ClusteredReduce 86 42
+              88:     39(ptr) AccessChain 34(data) 83 37 38
+              89:  17(int8_t) CompositeExtract 87 0
+                              Store 88 89
+              90:     39(ptr) AccessChain 34(data) 83 37 42
+              91:  17(int8_t) CompositeExtract 87 1
+                              Store 90 91
+              92:      6(int) Load 8(invocation)
+              93:     49(ptr) AccessChain 34(data) 59 37
+              94:  18(i8vec4) Load 93
+              95:  60(i8vec3) VectorShuffle 94 94 0 1 2
+              96:  60(i8vec3) GroupNonUniformIMul 43 ClusteredReduce 95 42
+              97:     39(ptr) AccessChain 34(data) 92 37 38
+              98:  17(int8_t) CompositeExtract 96 0
+                              Store 97 98
+              99:     39(ptr) AccessChain 34(data) 92 37 42
+             100:  17(int8_t) CompositeExtract 96 1
+                              Store 99 100
+             101:     39(ptr) AccessChain 34(data) 92 37 69
+             102:  17(int8_t) CompositeExtract 96 2
+                              Store 101 102
+             103:      6(int) Load 8(invocation)
+             104:     49(ptr) AccessChain 34(data) 73 37
+             105:  18(i8vec4) Load 104
+             106:  18(i8vec4) GroupNonUniformIMul 43 ClusteredReduce 105 42
+             107:     49(ptr) AccessChain 34(data) 103 37
+                              Store 107 106
+             108:      6(int) Load 8(invocation)
+             109:     39(ptr) AccessChain 34(data) 37 37 38
+             110:  17(int8_t) Load 109
+             111:  17(int8_t) GroupNonUniformSMin 43 ClusteredReduce 110 42
+             112:     39(ptr) AccessChain 34(data) 108 37 38
+                              Store 112 111
+             113:      6(int) Load 8(invocation)
+             114:     49(ptr) AccessChain 34(data) 47 37
+             115:  18(i8vec4) Load 114
+             116:  48(i8vec2) VectorShuffle 115 115 0 1
+             117:  48(i8vec2) GroupNonUniformSMin 43 ClusteredReduce 116 42
+             118:     39(ptr) AccessChain 34(data) 113 37 38
+             119:  17(int8_t) CompositeExtract 117 0
+                              Store 118 119
+             120:     39(ptr) AccessChain 34(data) 113 37 42
+             121:  17(int8_t) CompositeExtract 117 1
+                              Store 120 121
+             122:      6(int) Load 8(invocation)
+             123:     49(ptr) AccessChain 34(data) 59 37
+             124:  18(i8vec4) Load 123
+             125:  60(i8vec3) VectorShuffle 124 124 0 1 2
+             126:  60(i8vec3) GroupNonUniformSMin 43 ClusteredReduce 125 42
+             127:     39(ptr) AccessChain 34(data) 122 37 38
+             128:  17(int8_t) CompositeExtract 126 0
+                              Store 127 128
+             129:     39(ptr) AccessChain 34(data) 122 37 42
+             130:  17(int8_t) CompositeExtract 126 1
+                              Store 129 130
+             131:     39(ptr) AccessChain 34(data) 122 37 69
+             132:  17(int8_t) CompositeExtract 126 2
+                              Store 131 132
+             133:      6(int) Load 8(invocation)
+             134:     49(ptr) AccessChain 34(data) 73 37
+             135:  18(i8vec4) Load 134
+             136:  18(i8vec4) GroupNonUniformSMin 43 ClusteredReduce 135 42
+             137:     49(ptr) AccessChain 34(data) 133 37
+                              Store 137 136
              138:      6(int) Load 8(invocation)
-             139:     49(ptr) AccessChain 34(data) 58 37
-             140:  18(i8vec4) Load 139
-             141:  59(i8vec3) VectorShuffle 140 140 0 1 2
-             142:  59(i8vec3) GroupNonUniformSMax 43 ClusteredReduce 141 42
-             143:     49(ptr) AccessChain 34(data) 138 37
-             144:  18(i8vec4) Load 143
-             145:  18(i8vec4) VectorShuffle 144 142 4 5 6 3
-                              Store 143 145
-             146:      6(int) Load 8(invocation)
-             147:     49(ptr) AccessChain 34(data) 68 37
-             148:  18(i8vec4) Load 147
-             149:  18(i8vec4) GroupNonUniformSMax 43 ClusteredReduce 148 42
-             150:     49(ptr) AccessChain 34(data) 146 37
-                              Store 150 149
-             151:      6(int) Load 8(invocation)
-             152:     39(ptr) AccessChain 34(data) 37 37 38
-             153:  17(int8_t) Load 152
-             154:  17(int8_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 153 42
-             155:     39(ptr) AccessChain 34(data) 151 37 38
-                              Store 155 154
-             156:      6(int) Load 8(invocation)
-             157:     49(ptr) AccessChain 34(data) 47 37
-             158:  18(i8vec4) Load 157
-             159:  48(i8vec2) VectorShuffle 158 158 0 1
-             160:  48(i8vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 159 42
-             161:     49(ptr) AccessChain 34(data) 156 37
-             162:  18(i8vec4) Load 161
-             163:  18(i8vec4) VectorShuffle 162 160 4 5 2 3
-                              Store 161 163
-             164:      6(int) Load 8(invocation)
-             165:     49(ptr) AccessChain 34(data) 58 37
-             166:  18(i8vec4) Load 165
-             167:  59(i8vec3) VectorShuffle 166 166 0 1 2
-             168:  59(i8vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 167 42
-             169:     49(ptr) AccessChain 34(data) 164 37
-             170:  18(i8vec4) Load 169
-             171:  18(i8vec4) VectorShuffle 170 168 4 5 6 3
-                              Store 169 171
-             172:      6(int) Load 8(invocation)
-             173:     49(ptr) AccessChain 34(data) 68 37
-             174:  18(i8vec4) Load 173
-             175:  18(i8vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 174 42
-             176:     49(ptr) AccessChain 34(data) 172 37
-                              Store 176 175
-             177:      6(int) Load 8(invocation)
-             178:     39(ptr) AccessChain 34(data) 37 37 38
-             179:  17(int8_t) Load 178
-             180:  17(int8_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 179 42
-             181:     39(ptr) AccessChain 34(data) 177 37 38
-                              Store 181 180
+             139:     39(ptr) AccessChain 34(data) 37 37 38
+             140:  17(int8_t) Load 139
+             141:  17(int8_t) GroupNonUniformSMax 43 ClusteredReduce 140 42
+             142:     39(ptr) AccessChain 34(data) 138 37 38
+                              Store 142 141
+             143:      6(int) Load 8(invocation)
+             144:     49(ptr) AccessChain 34(data) 47 37
+             145:  18(i8vec4) Load 144
+             146:  48(i8vec2) VectorShuffle 145 145 0 1
+             147:  48(i8vec2) GroupNonUniformSMax 43 ClusteredReduce 146 42
+             148:     39(ptr) AccessChain 34(data) 143 37 38
+             149:  17(int8_t) CompositeExtract 147 0
+                              Store 148 149
+             150:     39(ptr) AccessChain 34(data) 143 37 42
+             151:  17(int8_t) CompositeExtract 147 1
+                              Store 150 151
+             152:      6(int) Load 8(invocation)
+             153:     49(ptr) AccessChain 34(data) 59 37
+             154:  18(i8vec4) Load 153
+             155:  60(i8vec3) VectorShuffle 154 154 0 1 2
+             156:  60(i8vec3) GroupNonUniformSMax 43 ClusteredReduce 155 42
+             157:     39(ptr) AccessChain 34(data) 152 37 38
+             158:  17(int8_t) CompositeExtract 156 0
+                              Store 157 158
+             159:     39(ptr) AccessChain 34(data) 152 37 42
+             160:  17(int8_t) CompositeExtract 156 1
+                              Store 159 160
+             161:     39(ptr) AccessChain 34(data) 152 37 69
+             162:  17(int8_t) CompositeExtract 156 2
+                              Store 161 162
+             163:      6(int) Load 8(invocation)
+             164:     49(ptr) AccessChain 34(data) 73 37
+             165:  18(i8vec4) Load 164
+             166:  18(i8vec4) GroupNonUniformSMax 43 ClusteredReduce 165 42
+             167:     49(ptr) AccessChain 34(data) 163 37
+                              Store 167 166
+             168:      6(int) Load 8(invocation)
+             169:     39(ptr) AccessChain 34(data) 37 37 38
+             170:  17(int8_t) Load 169
+             171:  17(int8_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 170 42
+             172:     39(ptr) AccessChain 34(data) 168 37 38
+                              Store 172 171
+             173:      6(int) Load 8(invocation)
+             174:     49(ptr) AccessChain 34(data) 47 37
+             175:  18(i8vec4) Load 174
+             176:  48(i8vec2) VectorShuffle 175 175 0 1
+             177:  48(i8vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 176 42
+             178:     39(ptr) AccessChain 34(data) 173 37 38
+             179:  17(int8_t) CompositeExtract 177 0
+                              Store 178 179
+             180:     39(ptr) AccessChain 34(data) 173 37 42
+             181:  17(int8_t) CompositeExtract 177 1
+                              Store 180 181
              182:      6(int) Load 8(invocation)
-             183:     49(ptr) AccessChain 34(data) 47 37
+             183:     49(ptr) AccessChain 34(data) 59 37
              184:  18(i8vec4) Load 183
-             185:  48(i8vec2) VectorShuffle 184 184 0 1
-             186:  48(i8vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 185 42
-             187:     49(ptr) AccessChain 34(data) 182 37
-             188:  18(i8vec4) Load 187
-             189:  18(i8vec4) VectorShuffle 188 186 4 5 2 3
-                              Store 187 189
-             190:      6(int) Load 8(invocation)
-             191:     49(ptr) AccessChain 34(data) 58 37
-             192:  18(i8vec4) Load 191
-             193:  59(i8vec3) VectorShuffle 192 192 0 1 2
-             194:  59(i8vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 193 42
-             195:     49(ptr) AccessChain 34(data) 190 37
-             196:  18(i8vec4) Load 195
-             197:  18(i8vec4) VectorShuffle 196 194 4 5 6 3
-                              Store 195 197
+             185:  60(i8vec3) VectorShuffle 184 184 0 1 2
+             186:  60(i8vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 185 42
+             187:     39(ptr) AccessChain 34(data) 182 37 38
+             188:  17(int8_t) CompositeExtract 186 0
+                              Store 187 188
+             189:     39(ptr) AccessChain 34(data) 182 37 42
+             190:  17(int8_t) CompositeExtract 186 1
+                              Store 189 190
+             191:     39(ptr) AccessChain 34(data) 182 37 69
+             192:  17(int8_t) CompositeExtract 186 2
+                              Store 191 192
+             193:      6(int) Load 8(invocation)
+             194:     49(ptr) AccessChain 34(data) 73 37
+             195:  18(i8vec4) Load 194
+             196:  18(i8vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 195 42
+             197:     49(ptr) AccessChain 34(data) 193 37
+                              Store 197 196
              198:      6(int) Load 8(invocation)
-             199:     49(ptr) AccessChain 34(data) 68 37
-             200:  18(i8vec4) Load 199
-             201:  18(i8vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 200 42
-             202:     49(ptr) AccessChain 34(data) 198 37
+             199:     39(ptr) AccessChain 34(data) 37 37 38
+             200:  17(int8_t) Load 199
+             201:  17(int8_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 200 42
+             202:     39(ptr) AccessChain 34(data) 198 37 38
                               Store 202 201
              203:      6(int) Load 8(invocation)
-             204:     39(ptr) AccessChain 34(data) 37 37 38
-             205:  17(int8_t) Load 204
-             206:  17(int8_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 205 42
-             207:     39(ptr) AccessChain 34(data) 203 37 38
-                              Store 207 206
-             208:      6(int) Load 8(invocation)
-             209:     49(ptr) AccessChain 34(data) 47 37
-             210:  18(i8vec4) Load 209
-             211:  48(i8vec2) VectorShuffle 210 210 0 1
-             212:  48(i8vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 211 42
-             213:     49(ptr) AccessChain 34(data) 208 37
+             204:     49(ptr) AccessChain 34(data) 47 37
+             205:  18(i8vec4) Load 204
+             206:  48(i8vec2) VectorShuffle 205 205 0 1
+             207:  48(i8vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 206 42
+             208:     39(ptr) AccessChain 34(data) 203 37 38
+             209:  17(int8_t) CompositeExtract 207 0
+                              Store 208 209
+             210:     39(ptr) AccessChain 34(data) 203 37 42
+             211:  17(int8_t) CompositeExtract 207 1
+                              Store 210 211
+             212:      6(int) Load 8(invocation)
+             213:     49(ptr) AccessChain 34(data) 59 37
              214:  18(i8vec4) Load 213
-             215:  18(i8vec4) VectorShuffle 214 212 4 5 2 3
-                              Store 213 215
-             216:      6(int) Load 8(invocation)
-             217:     49(ptr) AccessChain 34(data) 58 37
-             218:  18(i8vec4) Load 217
-             219:  59(i8vec3) VectorShuffle 218 218 0 1 2
-             220:  59(i8vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 219 42
-             221:     49(ptr) AccessChain 34(data) 216 37
-             222:  18(i8vec4) Load 221
-             223:  18(i8vec4) VectorShuffle 222 220 4 5 6 3
-                              Store 221 223
-             224:      6(int) Load 8(invocation)
-             225:     49(ptr) AccessChain 34(data) 68 37
-             226:  18(i8vec4) Load 225
-             227:  18(i8vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 226 42
-             228:     49(ptr) AccessChain 34(data) 224 37
-                              Store 228 227
-             229:      6(int) Load 8(invocation)
-             231:    230(ptr) AccessChain 34(data) 37 47 38
-             232:  19(int8_t) Load 231
-             233:  19(int8_t) GroupNonUniformIAdd 43 ClusteredReduce 232 42
-             234:    230(ptr) AccessChain 34(data) 229 47 38
-                              Store 234 233
-             235:      6(int) Load 8(invocation)
-             238:    237(ptr) AccessChain 34(data) 47 47
-             239:  20(i8vec4) Load 238
-             240: 236(i8vec2) VectorShuffle 239 239 0 1
-             241: 236(i8vec2) GroupNonUniformIAdd 43 ClusteredReduce 240 42
-             242:    237(ptr) AccessChain 34(data) 235 47
-             243:  20(i8vec4) Load 242
-             244:  20(i8vec4) VectorShuffle 243 241 4 5 2 3
-                              Store 242 244
-             245:      6(int) Load 8(invocation)
-             247:    237(ptr) AccessChain 34(data) 58 47
-             248:  20(i8vec4) Load 247
-             249: 246(i8vec3) VectorShuffle 248 248 0 1 2
-             250: 246(i8vec3) GroupNonUniformIAdd 43 ClusteredReduce 249 42
-             251:    237(ptr) AccessChain 34(data) 245 47
-             252:  20(i8vec4) Load 251
-             253:  20(i8vec4) VectorShuffle 252 250 4 5 6 3
-                              Store 251 253
-             254:      6(int) Load 8(invocation)
-             255:    237(ptr) AccessChain 34(data) 68 47
-             256:  20(i8vec4) Load 255
-             257:  20(i8vec4) GroupNonUniformIAdd 43 ClusteredReduce 256 42
-             258:    237(ptr) AccessChain 34(data) 254 47
-                              Store 258 257
-             259:      6(int) Load 8(invocation)
-             260:    230(ptr) AccessChain 34(data) 37 47 38
+             215:  60(i8vec3) VectorShuffle 214 214 0 1 2
+             216:  60(i8vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 215 42
+             217:     39(ptr) AccessChain 34(data) 212 37 38
+             218:  17(int8_t) CompositeExtract 216 0
+                              Store 217 218
+             219:     39(ptr) AccessChain 34(data) 212 37 42
+             220:  17(int8_t) CompositeExtract 216 1
+                              Store 219 220
+             221:     39(ptr) AccessChain 34(data) 212 37 69
+             222:  17(int8_t) CompositeExtract 216 2
+                              Store 221 222
+             223:      6(int) Load 8(invocation)
+             224:     49(ptr) AccessChain 34(data) 73 37
+             225:  18(i8vec4) Load 224
+             226:  18(i8vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 225 42
+             227:     49(ptr) AccessChain 34(data) 223 37
+                              Store 227 226
+             228:      6(int) Load 8(invocation)
+             229:     39(ptr) AccessChain 34(data) 37 37 38
+             230:  17(int8_t) Load 229
+             231:  17(int8_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 230 42
+             232:     39(ptr) AccessChain 34(data) 228 37 38
+                              Store 232 231
+             233:      6(int) Load 8(invocation)
+             234:     49(ptr) AccessChain 34(data) 47 37
+             235:  18(i8vec4) Load 234
+             236:  48(i8vec2) VectorShuffle 235 235 0 1
+             237:  48(i8vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 236 42
+             238:     39(ptr) AccessChain 34(data) 233 37 38
+             239:  17(int8_t) CompositeExtract 237 0
+                              Store 238 239
+             240:     39(ptr) AccessChain 34(data) 233 37 42
+             241:  17(int8_t) CompositeExtract 237 1
+                              Store 240 241
+             242:      6(int) Load 8(invocation)
+             243:     49(ptr) AccessChain 34(data) 59 37
+             244:  18(i8vec4) Load 243
+             245:  60(i8vec3) VectorShuffle 244 244 0 1 2
+             246:  60(i8vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 245 42
+             247:     39(ptr) AccessChain 34(data) 242 37 38
+             248:  17(int8_t) CompositeExtract 246 0
+                              Store 247 248
+             249:     39(ptr) AccessChain 34(data) 242 37 42
+             250:  17(int8_t) CompositeExtract 246 1
+                              Store 249 250
+             251:     39(ptr) AccessChain 34(data) 242 37 69
+             252:  17(int8_t) CompositeExtract 246 2
+                              Store 251 252
+             253:      6(int) Load 8(invocation)
+             254:     49(ptr) AccessChain 34(data) 73 37
+             255:  18(i8vec4) Load 254
+             256:  18(i8vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 255 42
+             257:     49(ptr) AccessChain 34(data) 253 37
+                              Store 257 256
+             258:      6(int) Load 8(invocation)
+             260:    259(ptr) AccessChain 34(data) 37 47 38
              261:  19(int8_t) Load 260
-             262:  19(int8_t) GroupNonUniformIMul 43 ClusteredReduce 261 42
-             263:    230(ptr) AccessChain 34(data) 259 47 38
+             262:  19(int8_t) GroupNonUniformIAdd 43 ClusteredReduce 261 42
+             263:    259(ptr) AccessChain 34(data) 258 47 38
                               Store 263 262
              264:      6(int) Load 8(invocation)
-             265:    237(ptr) AccessChain 34(data) 47 47
-             266:  20(i8vec4) Load 265
-             267: 236(i8vec2) VectorShuffle 266 266 0 1
-             268: 236(i8vec2) GroupNonUniformIMul 43 ClusteredReduce 267 42
-             269:    237(ptr) AccessChain 34(data) 264 47
-             270:  20(i8vec4) Load 269
-             271:  20(i8vec4) VectorShuffle 270 268 4 5 2 3
-                              Store 269 271
-             272:      6(int) Load 8(invocation)
-             273:    237(ptr) AccessChain 34(data) 58 47
-             274:  20(i8vec4) Load 273
-             275: 246(i8vec3) VectorShuffle 274 274 0 1 2
-             276: 246(i8vec3) GroupNonUniformIMul 43 ClusteredReduce 275 42
-             277:    237(ptr) AccessChain 34(data) 272 47
+             267:    266(ptr) AccessChain 34(data) 47 47
+             268:  20(i8vec4) Load 267
+             269: 265(i8vec2) VectorShuffle 268 268 0 1
+             270: 265(i8vec2) GroupNonUniformIAdd 43 ClusteredReduce 269 42
+             271:    259(ptr) AccessChain 34(data) 264 47 38
+             272:  19(int8_t) CompositeExtract 270 0
+                              Store 271 272
+             273:    259(ptr) AccessChain 34(data) 264 47 42
+             274:  19(int8_t) CompositeExtract 270 1
+                              Store 273 274
+             275:      6(int) Load 8(invocation)
+             277:    266(ptr) AccessChain 34(data) 59 47
              278:  20(i8vec4) Load 277
-             279:  20(i8vec4) VectorShuffle 278 276 4 5 6 3
-                              Store 277 279
-             280:      6(int) Load 8(invocation)
-             281:    237(ptr) AccessChain 34(data) 68 47
-             282:  20(i8vec4) Load 281
-             283:  20(i8vec4) GroupNonUniformIMul 43 ClusteredReduce 282 42
-             284:    237(ptr) AccessChain 34(data) 280 47
-                              Store 284 283
-             285:      6(int) Load 8(invocation)
-             286:    230(ptr) AccessChain 34(data) 37 47 38
-             287:  19(int8_t) Load 286
-             288:  19(int8_t) GroupNonUniformUMin 43 ClusteredReduce 287 42
-             289:    230(ptr) AccessChain 34(data) 285 47 38
-                              Store 289 288
-             290:      6(int) Load 8(invocation)
-             291:    237(ptr) AccessChain 34(data) 47 47
-             292:  20(i8vec4) Load 291
-             293: 236(i8vec2) VectorShuffle 292 292 0 1
-             294: 236(i8vec2) GroupNonUniformUMin 43 ClusteredReduce 293 42
-             295:    237(ptr) AccessChain 34(data) 290 47
-             296:  20(i8vec4) Load 295
-             297:  20(i8vec4) VectorShuffle 296 294 4 5 2 3
-                              Store 295 297
-             298:      6(int) Load 8(invocation)
-             299:    237(ptr) AccessChain 34(data) 58 47
-             300:  20(i8vec4) Load 299
-             301: 246(i8vec3) VectorShuffle 300 300 0 1 2
-             302: 246(i8vec3) GroupNonUniformUMin 43 ClusteredReduce 301 42
-             303:    237(ptr) AccessChain 34(data) 298 47
-             304:  20(i8vec4) Load 303
-             305:  20(i8vec4) VectorShuffle 304 302 4 5 6 3
-                              Store 303 305
+             279: 276(i8vec3) VectorShuffle 278 278 0 1 2
+             280: 276(i8vec3) GroupNonUniformIAdd 43 ClusteredReduce 279 42
+             281:    259(ptr) AccessChain 34(data) 275 47 38
+             282:  19(int8_t) CompositeExtract 280 0
+                              Store 281 282
+             283:    259(ptr) AccessChain 34(data) 275 47 42
+             284:  19(int8_t) CompositeExtract 280 1
+                              Store 283 284
+             285:    259(ptr) AccessChain 34(data) 275 47 69
+             286:  19(int8_t) CompositeExtract 280 2
+                              Store 285 286
+             287:      6(int) Load 8(invocation)
+             288:    266(ptr) AccessChain 34(data) 73 47
+             289:  20(i8vec4) Load 288
+             290:  20(i8vec4) GroupNonUniformIAdd 43 ClusteredReduce 289 42
+             291:    266(ptr) AccessChain 34(data) 287 47
+                              Store 291 290
+             292:      6(int) Load 8(invocation)
+             293:    259(ptr) AccessChain 34(data) 37 47 38
+             294:  19(int8_t) Load 293
+             295:  19(int8_t) GroupNonUniformIMul 43 ClusteredReduce 294 42
+             296:    259(ptr) AccessChain 34(data) 292 47 38
+                              Store 296 295
+             297:      6(int) Load 8(invocation)
+             298:    266(ptr) AccessChain 34(data) 47 47
+             299:  20(i8vec4) Load 298
+             300: 265(i8vec2) VectorShuffle 299 299 0 1
+             301: 265(i8vec2) GroupNonUniformIMul 43 ClusteredReduce 300 42
+             302:    259(ptr) AccessChain 34(data) 297 47 38
+             303:  19(int8_t) CompositeExtract 301 0
+                              Store 302 303
+             304:    259(ptr) AccessChain 34(data) 297 47 42
+             305:  19(int8_t) CompositeExtract 301 1
+                              Store 304 305
              306:      6(int) Load 8(invocation)
-             307:    237(ptr) AccessChain 34(data) 68 47
+             307:    266(ptr) AccessChain 34(data) 59 47
              308:  20(i8vec4) Load 307
-             309:  20(i8vec4) GroupNonUniformUMin 43 ClusteredReduce 308 42
-             310:    237(ptr) AccessChain 34(data) 306 47
-                              Store 310 309
-             311:      6(int) Load 8(invocation)
-             312:    230(ptr) AccessChain 34(data) 37 47 38
-             313:  19(int8_t) Load 312
-             314:  19(int8_t) GroupNonUniformUMax 43 ClusteredReduce 313 42
-             315:    230(ptr) AccessChain 34(data) 311 47 38
-                              Store 315 314
-             316:      6(int) Load 8(invocation)
-             317:    237(ptr) AccessChain 34(data) 47 47
-             318:  20(i8vec4) Load 317
-             319: 236(i8vec2) VectorShuffle 318 318 0 1
-             320: 236(i8vec2) GroupNonUniformUMax 43 ClusteredReduce 319 42
-             321:    237(ptr) AccessChain 34(data) 316 47
-             322:  20(i8vec4) Load 321
-             323:  20(i8vec4) VectorShuffle 322 320 4 5 2 3
-                              Store 321 323
-             324:      6(int) Load 8(invocation)
-             325:    237(ptr) AccessChain 34(data) 58 47
-             326:  20(i8vec4) Load 325
-             327: 246(i8vec3) VectorShuffle 326 326 0 1 2
-             328: 246(i8vec3) GroupNonUniformUMax 43 ClusteredReduce 327 42
-             329:    237(ptr) AccessChain 34(data) 324 47
-             330:  20(i8vec4) Load 329
-             331:  20(i8vec4) VectorShuffle 330 328 4 5 6 3
-                              Store 329 331
-             332:      6(int) Load 8(invocation)
-             333:    237(ptr) AccessChain 34(data) 68 47
-             334:  20(i8vec4) Load 333
-             335:  20(i8vec4) GroupNonUniformUMax 43 ClusteredReduce 334 42
-             336:    237(ptr) AccessChain 34(data) 332 47
-                              Store 336 335
-             337:      6(int) Load 8(invocation)
-             338:    230(ptr) AccessChain 34(data) 37 47 38
-             339:  19(int8_t) Load 338
-             340:  19(int8_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 339 42
-             341:    230(ptr) AccessChain 34(data) 337 47 38
-                              Store 341 340
-             342:      6(int) Load 8(invocation)
-             343:    237(ptr) AccessChain 34(data) 47 47
-             344:  20(i8vec4) Load 343
-             345: 236(i8vec2) VectorShuffle 344 344 0 1
-             346: 236(i8vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 345 42
-             347:    237(ptr) AccessChain 34(data) 342 47
-             348:  20(i8vec4) Load 347
-             349:  20(i8vec4) VectorShuffle 348 346 4 5 2 3
-                              Store 347 349
-             350:      6(int) Load 8(invocation)
-             351:    237(ptr) AccessChain 34(data) 58 47
-             352:  20(i8vec4) Load 351
-             353: 246(i8vec3) VectorShuffle 352 352 0 1 2
-             354: 246(i8vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 353 42
-             355:    237(ptr) AccessChain 34(data) 350 47
-             356:  20(i8vec4) Load 355
-             357:  20(i8vec4) VectorShuffle 356 354 4 5 6 3
-                              Store 355 357
-             358:      6(int) Load 8(invocation)
-             359:    237(ptr) AccessChain 34(data) 68 47
-             360:  20(i8vec4) Load 359
-             361:  20(i8vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 360 42
-             362:    237(ptr) AccessChain 34(data) 358 47
-                              Store 362 361
-             363:      6(int) Load 8(invocation)
-             364:    230(ptr) AccessChain 34(data) 37 47 38
-             365:  19(int8_t) Load 364
-             366:  19(int8_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 365 42
-             367:    230(ptr) AccessChain 34(data) 363 47 38
-                              Store 367 366
-             368:      6(int) Load 8(invocation)
-             369:    237(ptr) AccessChain 34(data) 47 47
-             370:  20(i8vec4) Load 369
-             371: 236(i8vec2) VectorShuffle 370 370 0 1
-             372: 236(i8vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 371 42
-             373:    237(ptr) AccessChain 34(data) 368 47
-             374:  20(i8vec4) Load 373
-             375:  20(i8vec4) VectorShuffle 374 372 4 5 2 3
-                              Store 373 375
-             376:      6(int) Load 8(invocation)
-             377:    237(ptr) AccessChain 34(data) 58 47
-             378:  20(i8vec4) Load 377
-             379: 246(i8vec3) VectorShuffle 378 378 0 1 2
-             380: 246(i8vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 379 42
-             381:    237(ptr) AccessChain 34(data) 376 47
-             382:  20(i8vec4) Load 381
-             383:  20(i8vec4) VectorShuffle 382 380 4 5 6 3
-                              Store 381 383
-             384:      6(int) Load 8(invocation)
-             385:    237(ptr) AccessChain 34(data) 68 47
-             386:  20(i8vec4) Load 385
-             387:  20(i8vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 386 42
-             388:    237(ptr) AccessChain 34(data) 384 47
-                              Store 388 387
-             389:      6(int) Load 8(invocation)
-             390:    230(ptr) AccessChain 34(data) 37 47 38
-             391:  19(int8_t) Load 390
-             392:  19(int8_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 391 42
-             393:    230(ptr) AccessChain 34(data) 389 47 38
-                              Store 393 392
-             394:      6(int) Load 8(invocation)
-             395:    237(ptr) AccessChain 34(data) 47 47
-             396:  20(i8vec4) Load 395
-             397: 236(i8vec2) VectorShuffle 396 396 0 1
-             398: 236(i8vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 397 42
-             399:    237(ptr) AccessChain 34(data) 394 47
-             400:  20(i8vec4) Load 399
-             401:  20(i8vec4) VectorShuffle 400 398 4 5 2 3
-                              Store 399 401
-             402:      6(int) Load 8(invocation)
-             403:    237(ptr) AccessChain 34(data) 58 47
-             404:  20(i8vec4) Load 403
-             405: 246(i8vec3) VectorShuffle 404 404 0 1 2
-             406: 246(i8vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 405 42
-             407:    237(ptr) AccessChain 34(data) 402 47
-             408:  20(i8vec4) Load 407
-             409:  20(i8vec4) VectorShuffle 408 406 4 5 6 3
-                              Store 407 409
-             410:      6(int) Load 8(invocation)
-             411:    237(ptr) AccessChain 34(data) 68 47
-             412:  20(i8vec4) Load 411
-             413:  20(i8vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 412 42
-             414:    237(ptr) AccessChain 34(data) 410 47
-                              Store 414 413
-             415:      6(int) Load 8(invocation)
-             417:    416(ptr) AccessChain 34(data) 37 58 38
-             418: 21(int16_t) Load 417
-             419: 21(int16_t) GroupNonUniformIAdd 43 ClusteredReduce 418 42
-             420:    416(ptr) AccessChain 34(data) 415 58 38
-                              Store 420 419
-             421:      6(int) Load 8(invocation)
-             424:    423(ptr) AccessChain 34(data) 47 58
-             425: 22(i16vec4) Load 424
-             426:422(i16vec2) VectorShuffle 425 425 0 1
-             427:422(i16vec2) GroupNonUniformIAdd 43 ClusteredReduce 426 42
-             428:    423(ptr) AccessChain 34(data) 421 58
-             429: 22(i16vec4) Load 428
-             430: 22(i16vec4) VectorShuffle 429 427 4 5 2 3
-                              Store 428 430
-             431:      6(int) Load 8(invocation)
-             433:    423(ptr) AccessChain 34(data) 58 58
-             434: 22(i16vec4) Load 433
-             435:432(i16vec3) VectorShuffle 434 434 0 1 2
-             436:432(i16vec3) GroupNonUniformIAdd 43 ClusteredReduce 435 42
-             437:    423(ptr) AccessChain 34(data) 431 58
-             438: 22(i16vec4) Load 437
-             439: 22(i16vec4) VectorShuffle 438 436 4 5 6 3
-                              Store 437 439
-             440:      6(int) Load 8(invocation)
-             441:    423(ptr) AccessChain 34(data) 68 58
-             442: 22(i16vec4) Load 441
-             443: 22(i16vec4) GroupNonUniformIAdd 43 ClusteredReduce 442 42
-             444:    423(ptr) AccessChain 34(data) 440 58
-                              Store 444 443
-             445:      6(int) Load 8(invocation)
-             446:    416(ptr) AccessChain 34(data) 37 58 38
-             447: 21(int16_t) Load 446
-             448: 21(int16_t) GroupNonUniformIMul 43 ClusteredReduce 447 42
-             449:    416(ptr) AccessChain 34(data) 445 58 38
-                              Store 449 448
-             450:      6(int) Load 8(invocation)
-             451:    423(ptr) AccessChain 34(data) 47 58
-             452: 22(i16vec4) Load 451
-             453:422(i16vec2) VectorShuffle 452 452 0 1
-             454:422(i16vec2) GroupNonUniformIMul 43 ClusteredReduce 453 42
-             455:    423(ptr) AccessChain 34(data) 450 58
-             456: 22(i16vec4) Load 455
-             457: 22(i16vec4) VectorShuffle 456 454 4 5 2 3
-                              Store 455 457
-             458:      6(int) Load 8(invocation)
-             459:    423(ptr) AccessChain 34(data) 58 58
-             460: 22(i16vec4) Load 459
-             461:432(i16vec3) VectorShuffle 460 460 0 1 2
-             462:432(i16vec3) GroupNonUniformIMul 43 ClusteredReduce 461 42
-             463:    423(ptr) AccessChain 34(data) 458 58
-             464: 22(i16vec4) Load 463
-             465: 22(i16vec4) VectorShuffle 464 462 4 5 6 3
-                              Store 463 465
-             466:      6(int) Load 8(invocation)
-             467:    423(ptr) AccessChain 34(data) 68 58
-             468: 22(i16vec4) Load 467
-             469: 22(i16vec4) GroupNonUniformIMul 43 ClusteredReduce 468 42
-             470:    423(ptr) AccessChain 34(data) 466 58
-                              Store 470 469
-             471:      6(int) Load 8(invocation)
-             472:    416(ptr) AccessChain 34(data) 37 58 38
-             473: 21(int16_t) Load 472
-             474: 21(int16_t) GroupNonUniformSMin 43 ClusteredReduce 473 42
-             475:    416(ptr) AccessChain 34(data) 471 58 38
-                              Store 475 474
-             476:      6(int) Load 8(invocation)
-             477:    423(ptr) AccessChain 34(data) 47 58
-             478: 22(i16vec4) Load 477
-             479:422(i16vec2) VectorShuffle 478 478 0 1
-             480:422(i16vec2) GroupNonUniformSMin 43 ClusteredReduce 479 42
-             481:    423(ptr) AccessChain 34(data) 476 58
+             309: 276(i8vec3) VectorShuffle 308 308 0 1 2
+             310: 276(i8vec3) GroupNonUniformIMul 43 ClusteredReduce 309 42
+             311:    259(ptr) AccessChain 34(data) 306 47 38
+             312:  19(int8_t) CompositeExtract 310 0
+                              Store 311 312
+             313:    259(ptr) AccessChain 34(data) 306 47 42
+             314:  19(int8_t) CompositeExtract 310 1
+                              Store 313 314
+             315:    259(ptr) AccessChain 34(data) 306 47 69
+             316:  19(int8_t) CompositeExtract 310 2
+                              Store 315 316
+             317:      6(int) Load 8(invocation)
+             318:    266(ptr) AccessChain 34(data) 73 47
+             319:  20(i8vec4) Load 318
+             320:  20(i8vec4) GroupNonUniformIMul 43 ClusteredReduce 319 42
+             321:    266(ptr) AccessChain 34(data) 317 47
+                              Store 321 320
+             322:      6(int) Load 8(invocation)
+             323:    259(ptr) AccessChain 34(data) 37 47 38
+             324:  19(int8_t) Load 323
+             325:  19(int8_t) GroupNonUniformUMin 43 ClusteredReduce 324 42
+             326:    259(ptr) AccessChain 34(data) 322 47 38
+                              Store 326 325
+             327:      6(int) Load 8(invocation)
+             328:    266(ptr) AccessChain 34(data) 47 47
+             329:  20(i8vec4) Load 328
+             330: 265(i8vec2) VectorShuffle 329 329 0 1
+             331: 265(i8vec2) GroupNonUniformUMin 43 ClusteredReduce 330 42
+             332:    259(ptr) AccessChain 34(data) 327 47 38
+             333:  19(int8_t) CompositeExtract 331 0
+                              Store 332 333
+             334:    259(ptr) AccessChain 34(data) 327 47 42
+             335:  19(int8_t) CompositeExtract 331 1
+                              Store 334 335
+             336:      6(int) Load 8(invocation)
+             337:    266(ptr) AccessChain 34(data) 59 47
+             338:  20(i8vec4) Load 337
+             339: 276(i8vec3) VectorShuffle 338 338 0 1 2
+             340: 276(i8vec3) GroupNonUniformUMin 43 ClusteredReduce 339 42
+             341:    259(ptr) AccessChain 34(data) 336 47 38
+             342:  19(int8_t) CompositeExtract 340 0
+                              Store 341 342
+             343:    259(ptr) AccessChain 34(data) 336 47 42
+             344:  19(int8_t) CompositeExtract 340 1
+                              Store 343 344
+             345:    259(ptr) AccessChain 34(data) 336 47 69
+             346:  19(int8_t) CompositeExtract 340 2
+                              Store 345 346
+             347:      6(int) Load 8(invocation)
+             348:    266(ptr) AccessChain 34(data) 73 47
+             349:  20(i8vec4) Load 348
+             350:  20(i8vec4) GroupNonUniformUMin 43 ClusteredReduce 349 42
+             351:    266(ptr) AccessChain 34(data) 347 47
+                              Store 351 350
+             352:      6(int) Load 8(invocation)
+             353:    259(ptr) AccessChain 34(data) 37 47 38
+             354:  19(int8_t) Load 353
+             355:  19(int8_t) GroupNonUniformUMax 43 ClusteredReduce 354 42
+             356:    259(ptr) AccessChain 34(data) 352 47 38
+                              Store 356 355
+             357:      6(int) Load 8(invocation)
+             358:    266(ptr) AccessChain 34(data) 47 47
+             359:  20(i8vec4) Load 358
+             360: 265(i8vec2) VectorShuffle 359 359 0 1
+             361: 265(i8vec2) GroupNonUniformUMax 43 ClusteredReduce 360 42
+             362:    259(ptr) AccessChain 34(data) 357 47 38
+             363:  19(int8_t) CompositeExtract 361 0
+                              Store 362 363
+             364:    259(ptr) AccessChain 34(data) 357 47 42
+             365:  19(int8_t) CompositeExtract 361 1
+                              Store 364 365
+             366:      6(int) Load 8(invocation)
+             367:    266(ptr) AccessChain 34(data) 59 47
+             368:  20(i8vec4) Load 367
+             369: 276(i8vec3) VectorShuffle 368 368 0 1 2
+             370: 276(i8vec3) GroupNonUniformUMax 43 ClusteredReduce 369 42
+             371:    259(ptr) AccessChain 34(data) 366 47 38
+             372:  19(int8_t) CompositeExtract 370 0
+                              Store 371 372
+             373:    259(ptr) AccessChain 34(data) 366 47 42
+             374:  19(int8_t) CompositeExtract 370 1
+                              Store 373 374
+             375:    259(ptr) AccessChain 34(data) 366 47 69
+             376:  19(int8_t) CompositeExtract 370 2
+                              Store 375 376
+             377:      6(int) Load 8(invocation)
+             378:    266(ptr) AccessChain 34(data) 73 47
+             379:  20(i8vec4) Load 378
+             380:  20(i8vec4) GroupNonUniformUMax 43 ClusteredReduce 379 42
+             381:    266(ptr) AccessChain 34(data) 377 47
+                              Store 381 380
+             382:      6(int) Load 8(invocation)
+             383:    259(ptr) AccessChain 34(data) 37 47 38
+             384:  19(int8_t) Load 383
+             385:  19(int8_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 384 42
+             386:    259(ptr) AccessChain 34(data) 382 47 38
+                              Store 386 385
+             387:      6(int) Load 8(invocation)
+             388:    266(ptr) AccessChain 34(data) 47 47
+             389:  20(i8vec4) Load 388
+             390: 265(i8vec2) VectorShuffle 389 389 0 1
+             391: 265(i8vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 390 42
+             392:    259(ptr) AccessChain 34(data) 387 47 38
+             393:  19(int8_t) CompositeExtract 391 0
+                              Store 392 393
+             394:    259(ptr) AccessChain 34(data) 387 47 42
+             395:  19(int8_t) CompositeExtract 391 1
+                              Store 394 395
+             396:      6(int) Load 8(invocation)
+             397:    266(ptr) AccessChain 34(data) 59 47
+             398:  20(i8vec4) Load 397
+             399: 276(i8vec3) VectorShuffle 398 398 0 1 2
+             400: 276(i8vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 399 42
+             401:    259(ptr) AccessChain 34(data) 396 47 38
+             402:  19(int8_t) CompositeExtract 400 0
+                              Store 401 402
+             403:    259(ptr) AccessChain 34(data) 396 47 42
+             404:  19(int8_t) CompositeExtract 400 1
+                              Store 403 404
+             405:    259(ptr) AccessChain 34(data) 396 47 69
+             406:  19(int8_t) CompositeExtract 400 2
+                              Store 405 406
+             407:      6(int) Load 8(invocation)
+             408:    266(ptr) AccessChain 34(data) 73 47
+             409:  20(i8vec4) Load 408
+             410:  20(i8vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 409 42
+             411:    266(ptr) AccessChain 34(data) 407 47
+                              Store 411 410
+             412:      6(int) Load 8(invocation)
+             413:    259(ptr) AccessChain 34(data) 37 47 38
+             414:  19(int8_t) Load 413
+             415:  19(int8_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 414 42
+             416:    259(ptr) AccessChain 34(data) 412 47 38
+                              Store 416 415
+             417:      6(int) Load 8(invocation)
+             418:    266(ptr) AccessChain 34(data) 47 47
+             419:  20(i8vec4) Load 418
+             420: 265(i8vec2) VectorShuffle 419 419 0 1
+             421: 265(i8vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 420 42
+             422:    259(ptr) AccessChain 34(data) 417 47 38
+             423:  19(int8_t) CompositeExtract 421 0
+                              Store 422 423
+             424:    259(ptr) AccessChain 34(data) 417 47 42
+             425:  19(int8_t) CompositeExtract 421 1
+                              Store 424 425
+             426:      6(int) Load 8(invocation)
+             427:    266(ptr) AccessChain 34(data) 59 47
+             428:  20(i8vec4) Load 427
+             429: 276(i8vec3) VectorShuffle 428 428 0 1 2
+             430: 276(i8vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 429 42
+             431:    259(ptr) AccessChain 34(data) 426 47 38
+             432:  19(int8_t) CompositeExtract 430 0
+                              Store 431 432
+             433:    259(ptr) AccessChain 34(data) 426 47 42
+             434:  19(int8_t) CompositeExtract 430 1
+                              Store 433 434
+             435:    259(ptr) AccessChain 34(data) 426 47 69
+             436:  19(int8_t) CompositeExtract 430 2
+                              Store 435 436
+             437:      6(int) Load 8(invocation)
+             438:    266(ptr) AccessChain 34(data) 73 47
+             439:  20(i8vec4) Load 438
+             440:  20(i8vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 439 42
+             441:    266(ptr) AccessChain 34(data) 437 47
+                              Store 441 440
+             442:      6(int) Load 8(invocation)
+             443:    259(ptr) AccessChain 34(data) 37 47 38
+             444:  19(int8_t) Load 443
+             445:  19(int8_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 444 42
+             446:    259(ptr) AccessChain 34(data) 442 47 38
+                              Store 446 445
+             447:      6(int) Load 8(invocation)
+             448:    266(ptr) AccessChain 34(data) 47 47
+             449:  20(i8vec4) Load 448
+             450: 265(i8vec2) VectorShuffle 449 449 0 1
+             451: 265(i8vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 450 42
+             452:    259(ptr) AccessChain 34(data) 447 47 38
+             453:  19(int8_t) CompositeExtract 451 0
+                              Store 452 453
+             454:    259(ptr) AccessChain 34(data) 447 47 42
+             455:  19(int8_t) CompositeExtract 451 1
+                              Store 454 455
+             456:      6(int) Load 8(invocation)
+             457:    266(ptr) AccessChain 34(data) 59 47
+             458:  20(i8vec4) Load 457
+             459: 276(i8vec3) VectorShuffle 458 458 0 1 2
+             460: 276(i8vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 459 42
+             461:    259(ptr) AccessChain 34(data) 456 47 38
+             462:  19(int8_t) CompositeExtract 460 0
+                              Store 461 462
+             463:    259(ptr) AccessChain 34(data) 456 47 42
+             464:  19(int8_t) CompositeExtract 460 1
+                              Store 463 464
+             465:    259(ptr) AccessChain 34(data) 456 47 69
+             466:  19(int8_t) CompositeExtract 460 2
+                              Store 465 466
+             467:      6(int) Load 8(invocation)
+             468:    266(ptr) AccessChain 34(data) 73 47
+             469:  20(i8vec4) Load 468
+             470:  20(i8vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 469 42
+             471:    266(ptr) AccessChain 34(data) 467 47
+                              Store 471 470
+             472:      6(int) Load 8(invocation)
+             474:    473(ptr) AccessChain 34(data) 37 59 38
+             475: 21(int16_t) Load 474
+             476: 21(int16_t) GroupNonUniformIAdd 43 ClusteredReduce 475 42
+             477:    473(ptr) AccessChain 34(data) 472 59 38
+                              Store 477 476
+             478:      6(int) Load 8(invocation)
+             481:    480(ptr) AccessChain 34(data) 47 59
              482: 22(i16vec4) Load 481
-             483: 22(i16vec4) VectorShuffle 482 480 4 5 2 3
-                              Store 481 483
-             484:      6(int) Load 8(invocation)
-             485:    423(ptr) AccessChain 34(data) 58 58
-             486: 22(i16vec4) Load 485
-             487:432(i16vec3) VectorShuffle 486 486 0 1 2
-             488:432(i16vec3) GroupNonUniformSMin 43 ClusteredReduce 487 42
-             489:    423(ptr) AccessChain 34(data) 484 58
-             490: 22(i16vec4) Load 489
-             491: 22(i16vec4) VectorShuffle 490 488 4 5 6 3
-                              Store 489 491
-             492:      6(int) Load 8(invocation)
-             493:    423(ptr) AccessChain 34(data) 68 58
-             494: 22(i16vec4) Load 493
-             495: 22(i16vec4) GroupNonUniformSMin 43 ClusteredReduce 494 42
-             496:    423(ptr) AccessChain 34(data) 492 58
-                              Store 496 495
-             497:      6(int) Load 8(invocation)
-             498:    416(ptr) AccessChain 34(data) 37 58 38
-             499: 21(int16_t) Load 498
-             500: 21(int16_t) GroupNonUniformSMax 43 ClusteredReduce 499 42
-             501:    416(ptr) AccessChain 34(data) 497 58 38
-                              Store 501 500
-             502:      6(int) Load 8(invocation)
-             503:    423(ptr) AccessChain 34(data) 47 58
-             504: 22(i16vec4) Load 503
-             505:422(i16vec2) VectorShuffle 504 504 0 1
-             506:422(i16vec2) GroupNonUniformSMax 43 ClusteredReduce 505 42
-             507:    423(ptr) AccessChain 34(data) 502 58
-             508: 22(i16vec4) Load 507
-             509: 22(i16vec4) VectorShuffle 508 506 4 5 2 3
-                              Store 507 509
-             510:      6(int) Load 8(invocation)
-             511:    423(ptr) AccessChain 34(data) 58 58
-             512: 22(i16vec4) Load 511
-             513:432(i16vec3) VectorShuffle 512 512 0 1 2
-             514:432(i16vec3) GroupNonUniformSMax 43 ClusteredReduce 513 42
-             515:    423(ptr) AccessChain 34(data) 510 58
-             516: 22(i16vec4) Load 515
-             517: 22(i16vec4) VectorShuffle 516 514 4 5 6 3
-                              Store 515 517
-             518:      6(int) Load 8(invocation)
-             519:    423(ptr) AccessChain 34(data) 68 58
-             520: 22(i16vec4) Load 519
-             521: 22(i16vec4) GroupNonUniformSMax 43 ClusteredReduce 520 42
-             522:    423(ptr) AccessChain 34(data) 518 58
-                              Store 522 521
-             523:      6(int) Load 8(invocation)
-             524:    416(ptr) AccessChain 34(data) 37 58 38
-             525: 21(int16_t) Load 524
-             526: 21(int16_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 525 42
-             527:    416(ptr) AccessChain 34(data) 523 58 38
-                              Store 527 526
-             528:      6(int) Load 8(invocation)
-             529:    423(ptr) AccessChain 34(data) 47 58
-             530: 22(i16vec4) Load 529
-             531:422(i16vec2) VectorShuffle 530 530 0 1
-             532:422(i16vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 531 42
-             533:    423(ptr) AccessChain 34(data) 528 58
-             534: 22(i16vec4) Load 533
-             535: 22(i16vec4) VectorShuffle 534 532 4 5 2 3
-                              Store 533 535
+             483:479(i16vec2) VectorShuffle 482 482 0 1
+             484:479(i16vec2) GroupNonUniformIAdd 43 ClusteredReduce 483 42
+             485:    473(ptr) AccessChain 34(data) 478 59 38
+             486: 21(int16_t) CompositeExtract 484 0
+                              Store 485 486
+             487:    473(ptr) AccessChain 34(data) 478 59 42
+             488: 21(int16_t) CompositeExtract 484 1
+                              Store 487 488
+             489:      6(int) Load 8(invocation)
+             491:    480(ptr) AccessChain 34(data) 59 59
+             492: 22(i16vec4) Load 491
+             493:490(i16vec3) VectorShuffle 492 492 0 1 2
+             494:490(i16vec3) GroupNonUniformIAdd 43 ClusteredReduce 493 42
+             495:    473(ptr) AccessChain 34(data) 489 59 38
+             496: 21(int16_t) CompositeExtract 494 0
+                              Store 495 496
+             497:    473(ptr) AccessChain 34(data) 489 59 42
+             498: 21(int16_t) CompositeExtract 494 1
+                              Store 497 498
+             499:    473(ptr) AccessChain 34(data) 489 59 69
+             500: 21(int16_t) CompositeExtract 494 2
+                              Store 499 500
+             501:      6(int) Load 8(invocation)
+             502:    480(ptr) AccessChain 34(data) 73 59
+             503: 22(i16vec4) Load 502
+             504: 22(i16vec4) GroupNonUniformIAdd 43 ClusteredReduce 503 42
+             505:    480(ptr) AccessChain 34(data) 501 59
+                              Store 505 504
+             506:      6(int) Load 8(invocation)
+             507:    473(ptr) AccessChain 34(data) 37 59 38
+             508: 21(int16_t) Load 507
+             509: 21(int16_t) GroupNonUniformIMul 43 ClusteredReduce 508 42
+             510:    473(ptr) AccessChain 34(data) 506 59 38
+                              Store 510 509
+             511:      6(int) Load 8(invocation)
+             512:    480(ptr) AccessChain 34(data) 47 59
+             513: 22(i16vec4) Load 512
+             514:479(i16vec2) VectorShuffle 513 513 0 1
+             515:479(i16vec2) GroupNonUniformIMul 43 ClusteredReduce 514 42
+             516:    473(ptr) AccessChain 34(data) 511 59 38
+             517: 21(int16_t) CompositeExtract 515 0
+                              Store 516 517
+             518:    473(ptr) AccessChain 34(data) 511 59 42
+             519: 21(int16_t) CompositeExtract 515 1
+                              Store 518 519
+             520:      6(int) Load 8(invocation)
+             521:    480(ptr) AccessChain 34(data) 59 59
+             522: 22(i16vec4) Load 521
+             523:490(i16vec3) VectorShuffle 522 522 0 1 2
+             524:490(i16vec3) GroupNonUniformIMul 43 ClusteredReduce 523 42
+             525:    473(ptr) AccessChain 34(data) 520 59 38
+             526: 21(int16_t) CompositeExtract 524 0
+                              Store 525 526
+             527:    473(ptr) AccessChain 34(data) 520 59 42
+             528: 21(int16_t) CompositeExtract 524 1
+                              Store 527 528
+             529:    473(ptr) AccessChain 34(data) 520 59 69
+             530: 21(int16_t) CompositeExtract 524 2
+                              Store 529 530
+             531:      6(int) Load 8(invocation)
+             532:    480(ptr) AccessChain 34(data) 73 59
+             533: 22(i16vec4) Load 532
+             534: 22(i16vec4) GroupNonUniformIMul 43 ClusteredReduce 533 42
+             535:    480(ptr) AccessChain 34(data) 531 59
+                              Store 535 534
              536:      6(int) Load 8(invocation)
-             537:    423(ptr) AccessChain 34(data) 58 58
-             538: 22(i16vec4) Load 537
-             539:432(i16vec3) VectorShuffle 538 538 0 1 2
-             540:432(i16vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 539 42
-             541:    423(ptr) AccessChain 34(data) 536 58
-             542: 22(i16vec4) Load 541
-             543: 22(i16vec4) VectorShuffle 542 540 4 5 6 3
-                              Store 541 543
-             544:      6(int) Load 8(invocation)
-             545:    423(ptr) AccessChain 34(data) 68 58
-             546: 22(i16vec4) Load 545
-             547: 22(i16vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 546 42
-             548:    423(ptr) AccessChain 34(data) 544 58
-                              Store 548 547
-             549:      6(int) Load 8(invocation)
-             550:    416(ptr) AccessChain 34(data) 37 58 38
-             551: 21(int16_t) Load 550
-             552: 21(int16_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 551 42
-             553:    416(ptr) AccessChain 34(data) 549 58 38
-                              Store 553 552
-             554:      6(int) Load 8(invocation)
-             555:    423(ptr) AccessChain 34(data) 47 58
-             556: 22(i16vec4) Load 555
-             557:422(i16vec2) VectorShuffle 556 556 0 1
-             558:422(i16vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 557 42
-             559:    423(ptr) AccessChain 34(data) 554 58
-             560: 22(i16vec4) Load 559
-             561: 22(i16vec4) VectorShuffle 560 558 4 5 2 3
-                              Store 559 561
-             562:      6(int) Load 8(invocation)
-             563:    423(ptr) AccessChain 34(data) 58 58
-             564: 22(i16vec4) Load 563
-             565:432(i16vec3) VectorShuffle 564 564 0 1 2
-             566:432(i16vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 565 42
-             567:    423(ptr) AccessChain 34(data) 562 58
-             568: 22(i16vec4) Load 567
-             569: 22(i16vec4) VectorShuffle 568 566 4 5 6 3
-                              Store 567 569
-             570:      6(int) Load 8(invocation)
-             571:    423(ptr) AccessChain 34(data) 68 58
-             572: 22(i16vec4) Load 571
-             573: 22(i16vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 572 42
-             574:    423(ptr) AccessChain 34(data) 570 58
-                              Store 574 573
-             575:      6(int) Load 8(invocation)
-             576:    416(ptr) AccessChain 34(data) 37 58 38
-             577: 21(int16_t) Load 576
-             578: 21(int16_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 577 42
-             579:    416(ptr) AccessChain 34(data) 575 58 38
-                              Store 579 578
+             537:    473(ptr) AccessChain 34(data) 37 59 38
+             538: 21(int16_t) Load 537
+             539: 21(int16_t) GroupNonUniformSMin 43 ClusteredReduce 538 42
+             540:    473(ptr) AccessChain 34(data) 536 59 38
+                              Store 540 539
+             541:      6(int) Load 8(invocation)
+             542:    480(ptr) AccessChain 34(data) 47 59
+             543: 22(i16vec4) Load 542
+             544:479(i16vec2) VectorShuffle 543 543 0 1
+             545:479(i16vec2) GroupNonUniformSMin 43 ClusteredReduce 544 42
+             546:    473(ptr) AccessChain 34(data) 541 59 38
+             547: 21(int16_t) CompositeExtract 545 0
+                              Store 546 547
+             548:    473(ptr) AccessChain 34(data) 541 59 42
+             549: 21(int16_t) CompositeExtract 545 1
+                              Store 548 549
+             550:      6(int) Load 8(invocation)
+             551:    480(ptr) AccessChain 34(data) 59 59
+             552: 22(i16vec4) Load 551
+             553:490(i16vec3) VectorShuffle 552 552 0 1 2
+             554:490(i16vec3) GroupNonUniformSMin 43 ClusteredReduce 553 42
+             555:    473(ptr) AccessChain 34(data) 550 59 38
+             556: 21(int16_t) CompositeExtract 554 0
+                              Store 555 556
+             557:    473(ptr) AccessChain 34(data) 550 59 42
+             558: 21(int16_t) CompositeExtract 554 1
+                              Store 557 558
+             559:    473(ptr) AccessChain 34(data) 550 59 69
+             560: 21(int16_t) CompositeExtract 554 2
+                              Store 559 560
+             561:      6(int) Load 8(invocation)
+             562:    480(ptr) AccessChain 34(data) 73 59
+             563: 22(i16vec4) Load 562
+             564: 22(i16vec4) GroupNonUniformSMin 43 ClusteredReduce 563 42
+             565:    480(ptr) AccessChain 34(data) 561 59
+                              Store 565 564
+             566:      6(int) Load 8(invocation)
+             567:    473(ptr) AccessChain 34(data) 37 59 38
+             568: 21(int16_t) Load 567
+             569: 21(int16_t) GroupNonUniformSMax 43 ClusteredReduce 568 42
+             570:    473(ptr) AccessChain 34(data) 566 59 38
+                              Store 570 569
+             571:      6(int) Load 8(invocation)
+             572:    480(ptr) AccessChain 34(data) 47 59
+             573: 22(i16vec4) Load 572
+             574:479(i16vec2) VectorShuffle 573 573 0 1
+             575:479(i16vec2) GroupNonUniformSMax 43 ClusteredReduce 574 42
+             576:    473(ptr) AccessChain 34(data) 571 59 38
+             577: 21(int16_t) CompositeExtract 575 0
+                              Store 576 577
+             578:    473(ptr) AccessChain 34(data) 571 59 42
+             579: 21(int16_t) CompositeExtract 575 1
+                              Store 578 579
              580:      6(int) Load 8(invocation)
-             581:    423(ptr) AccessChain 34(data) 47 58
+             581:    480(ptr) AccessChain 34(data) 59 59
              582: 22(i16vec4) Load 581
-             583:422(i16vec2) VectorShuffle 582 582 0 1
-             584:422(i16vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 583 42
-             585:    423(ptr) AccessChain 34(data) 580 58
-             586: 22(i16vec4) Load 585
-             587: 22(i16vec4) VectorShuffle 586 584 4 5 2 3
-                              Store 585 587
-             588:      6(int) Load 8(invocation)
-             589:    423(ptr) AccessChain 34(data) 58 58
-             590: 22(i16vec4) Load 589
-             591:432(i16vec3) VectorShuffle 590 590 0 1 2
-             592:432(i16vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 591 42
-             593:    423(ptr) AccessChain 34(data) 588 58
-             594: 22(i16vec4) Load 593
-             595: 22(i16vec4) VectorShuffle 594 592 4 5 6 3
-                              Store 593 595
+             583:490(i16vec3) VectorShuffle 582 582 0 1 2
+             584:490(i16vec3) GroupNonUniformSMax 43 ClusteredReduce 583 42
+             585:    473(ptr) AccessChain 34(data) 580 59 38
+             586: 21(int16_t) CompositeExtract 584 0
+                              Store 585 586
+             587:    473(ptr) AccessChain 34(data) 580 59 42
+             588: 21(int16_t) CompositeExtract 584 1
+                              Store 587 588
+             589:    473(ptr) AccessChain 34(data) 580 59 69
+             590: 21(int16_t) CompositeExtract 584 2
+                              Store 589 590
+             591:      6(int) Load 8(invocation)
+             592:    480(ptr) AccessChain 34(data) 73 59
+             593: 22(i16vec4) Load 592
+             594: 22(i16vec4) GroupNonUniformSMax 43 ClusteredReduce 593 42
+             595:    480(ptr) AccessChain 34(data) 591 59
+                              Store 595 594
              596:      6(int) Load 8(invocation)
-             597:    423(ptr) AccessChain 34(data) 68 58
-             598: 22(i16vec4) Load 597
-             599: 22(i16vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 598 42
-             600:    423(ptr) AccessChain 34(data) 596 58
+             597:    473(ptr) AccessChain 34(data) 37 59 38
+             598: 21(int16_t) Load 597
+             599: 21(int16_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 598 42
+             600:    473(ptr) AccessChain 34(data) 596 59 38
                               Store 600 599
              601:      6(int) Load 8(invocation)
-             603:    602(ptr) AccessChain 34(data) 37 68 38
-             604: 23(int16_t) Load 603
-             605: 23(int16_t) GroupNonUniformIAdd 43 ClusteredReduce 604 42
-             606:    602(ptr) AccessChain 34(data) 601 68 38
-                              Store 606 605
-             607:      6(int) Load 8(invocation)
-             610:    609(ptr) AccessChain 34(data) 47 68
-             611: 24(i16vec4) Load 610
-             612:608(i16vec2) VectorShuffle 611 611 0 1
-             613:608(i16vec2) GroupNonUniformIAdd 43 ClusteredReduce 612 42
-             614:    609(ptr) AccessChain 34(data) 607 68
-             615: 24(i16vec4) Load 614
-             616: 24(i16vec4) VectorShuffle 615 613 4 5 2 3
-                              Store 614 616
-             617:      6(int) Load 8(invocation)
-             619:    609(ptr) AccessChain 34(data) 58 68
-             620: 24(i16vec4) Load 619
-             621:618(i16vec3) VectorShuffle 620 620 0 1 2
-             622:618(i16vec3) GroupNonUniformIAdd 43 ClusteredReduce 621 42
-             623:    609(ptr) AccessChain 34(data) 617 68
-             624: 24(i16vec4) Load 623
-             625: 24(i16vec4) VectorShuffle 624 622 4 5 6 3
-                              Store 623 625
+             602:    480(ptr) AccessChain 34(data) 47 59
+             603: 22(i16vec4) Load 602
+             604:479(i16vec2) VectorShuffle 603 603 0 1
+             605:479(i16vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 604 42
+             606:    473(ptr) AccessChain 34(data) 601 59 38
+             607: 21(int16_t) CompositeExtract 605 0
+                              Store 606 607
+             608:    473(ptr) AccessChain 34(data) 601 59 42
+             609: 21(int16_t) CompositeExtract 605 1
+                              Store 608 609
+             610:      6(int) Load 8(invocation)
+             611:    480(ptr) AccessChain 34(data) 59 59
+             612: 22(i16vec4) Load 611
+             613:490(i16vec3) VectorShuffle 612 612 0 1 2
+             614:490(i16vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 613 42
+             615:    473(ptr) AccessChain 34(data) 610 59 38
+             616: 21(int16_t) CompositeExtract 614 0
+                              Store 615 616
+             617:    473(ptr) AccessChain 34(data) 610 59 42
+             618: 21(int16_t) CompositeExtract 614 1
+                              Store 617 618
+             619:    473(ptr) AccessChain 34(data) 610 59 69
+             620: 21(int16_t) CompositeExtract 614 2
+                              Store 619 620
+             621:      6(int) Load 8(invocation)
+             622:    480(ptr) AccessChain 34(data) 73 59
+             623: 22(i16vec4) Load 622
+             624: 22(i16vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 623 42
+             625:    480(ptr) AccessChain 34(data) 621 59
+                              Store 625 624
              626:      6(int) Load 8(invocation)
-             627:    609(ptr) AccessChain 34(data) 68 68
-             628: 24(i16vec4) Load 627
-             629: 24(i16vec4) GroupNonUniformIAdd 43 ClusteredReduce 628 42
-             630:    609(ptr) AccessChain 34(data) 626 68
+             627:    473(ptr) AccessChain 34(data) 37 59 38
+             628: 21(int16_t) Load 627
+             629: 21(int16_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 628 42
+             630:    473(ptr) AccessChain 34(data) 626 59 38
                               Store 630 629
              631:      6(int) Load 8(invocation)
-             632:    602(ptr) AccessChain 34(data) 37 68 38
-             633: 23(int16_t) Load 632
-             634: 23(int16_t) GroupNonUniformIMul 43 ClusteredReduce 633 42
-             635:    602(ptr) AccessChain 34(data) 631 68 38
-                              Store 635 634
-             636:      6(int) Load 8(invocation)
-             637:    609(ptr) AccessChain 34(data) 47 68
-             638: 24(i16vec4) Load 637
-             639:608(i16vec2) VectorShuffle 638 638 0 1
-             640:608(i16vec2) GroupNonUniformIMul 43 ClusteredReduce 639 42
-             641:    609(ptr) AccessChain 34(data) 636 68
-             642: 24(i16vec4) Load 641
-             643: 24(i16vec4) VectorShuffle 642 640 4 5 2 3
-                              Store 641 643
-             644:      6(int) Load 8(invocation)
-             645:    609(ptr) AccessChain 34(data) 58 68
-             646: 24(i16vec4) Load 645
-             647:618(i16vec3) VectorShuffle 646 646 0 1 2
-             648:618(i16vec3) GroupNonUniformIMul 43 ClusteredReduce 647 42
-             649:    609(ptr) AccessChain 34(data) 644 68
-             650: 24(i16vec4) Load 649
-             651: 24(i16vec4) VectorShuffle 650 648 4 5 6 3
-                              Store 649 651
-             652:      6(int) Load 8(invocation)
-             653:    609(ptr) AccessChain 34(data) 68 68
-             654: 24(i16vec4) Load 653
-             655: 24(i16vec4) GroupNonUniformIMul 43 ClusteredReduce 654 42
-             656:    609(ptr) AccessChain 34(data) 652 68
-                              Store 656 655
-             657:      6(int) Load 8(invocation)
-             658:    602(ptr) AccessChain 34(data) 37 68 38
-             659: 23(int16_t) Load 658
-             660: 23(int16_t) GroupNonUniformUMin 43 ClusteredReduce 659 42
-             661:    602(ptr) AccessChain 34(data) 657 68 38
-                              Store 661 660
-             662:      6(int) Load 8(invocation)
-             663:    609(ptr) AccessChain 34(data) 47 68
-             664: 24(i16vec4) Load 663
-             665:608(i16vec2) VectorShuffle 664 664 0 1
-             666:608(i16vec2) GroupNonUniformUMin 43 ClusteredReduce 665 42
-             667:    609(ptr) AccessChain 34(data) 662 68
-             668: 24(i16vec4) Load 667
-             669: 24(i16vec4) VectorShuffle 668 666 4 5 2 3
-                              Store 667 669
+             632:    480(ptr) AccessChain 34(data) 47 59
+             633: 22(i16vec4) Load 632
+             634:479(i16vec2) VectorShuffle 633 633 0 1
+             635:479(i16vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 634 42
+             636:    473(ptr) AccessChain 34(data) 631 59 38
+             637: 21(int16_t) CompositeExtract 635 0
+                              Store 636 637
+             638:    473(ptr) AccessChain 34(data) 631 59 42
+             639: 21(int16_t) CompositeExtract 635 1
+                              Store 638 639
+             640:      6(int) Load 8(invocation)
+             641:    480(ptr) AccessChain 34(data) 59 59
+             642: 22(i16vec4) Load 641
+             643:490(i16vec3) VectorShuffle 642 642 0 1 2
+             644:490(i16vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 643 42
+             645:    473(ptr) AccessChain 34(data) 640 59 38
+             646: 21(int16_t) CompositeExtract 644 0
+                              Store 645 646
+             647:    473(ptr) AccessChain 34(data) 640 59 42
+             648: 21(int16_t) CompositeExtract 644 1
+                              Store 647 648
+             649:    473(ptr) AccessChain 34(data) 640 59 69
+             650: 21(int16_t) CompositeExtract 644 2
+                              Store 649 650
+             651:      6(int) Load 8(invocation)
+             652:    480(ptr) AccessChain 34(data) 73 59
+             653: 22(i16vec4) Load 652
+             654: 22(i16vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 653 42
+             655:    480(ptr) AccessChain 34(data) 651 59
+                              Store 655 654
+             656:      6(int) Load 8(invocation)
+             657:    473(ptr) AccessChain 34(data) 37 59 38
+             658: 21(int16_t) Load 657
+             659: 21(int16_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 658 42
+             660:    473(ptr) AccessChain 34(data) 656 59 38
+                              Store 660 659
+             661:      6(int) Load 8(invocation)
+             662:    480(ptr) AccessChain 34(data) 47 59
+             663: 22(i16vec4) Load 662
+             664:479(i16vec2) VectorShuffle 663 663 0 1
+             665:479(i16vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 664 42
+             666:    473(ptr) AccessChain 34(data) 661 59 38
+             667: 21(int16_t) CompositeExtract 665 0
+                              Store 666 667
+             668:    473(ptr) AccessChain 34(data) 661 59 42
+             669: 21(int16_t) CompositeExtract 665 1
+                              Store 668 669
              670:      6(int) Load 8(invocation)
-             671:    609(ptr) AccessChain 34(data) 58 68
-             672: 24(i16vec4) Load 671
-             673:618(i16vec3) VectorShuffle 672 672 0 1 2
-             674:618(i16vec3) GroupNonUniformUMin 43 ClusteredReduce 673 42
-             675:    609(ptr) AccessChain 34(data) 670 68
-             676: 24(i16vec4) Load 675
-             677: 24(i16vec4) VectorShuffle 676 674 4 5 6 3
-                              Store 675 677
-             678:      6(int) Load 8(invocation)
-             679:    609(ptr) AccessChain 34(data) 68 68
-             680: 24(i16vec4) Load 679
-             681: 24(i16vec4) GroupNonUniformUMin 43 ClusteredReduce 680 42
-             682:    609(ptr) AccessChain 34(data) 678 68
-                              Store 682 681
-             683:      6(int) Load 8(invocation)
-             684:    602(ptr) AccessChain 34(data) 37 68 38
-             685: 23(int16_t) Load 684
-             686: 23(int16_t) GroupNonUniformUMax 43 ClusteredReduce 685 42
-             687:    602(ptr) AccessChain 34(data) 683 68 38
-                              Store 687 686
-             688:      6(int) Load 8(invocation)
-             689:    609(ptr) AccessChain 34(data) 47 68
-             690: 24(i16vec4) Load 689
-             691:608(i16vec2) VectorShuffle 690 690 0 1
-             692:608(i16vec2) GroupNonUniformUMax 43 ClusteredReduce 691 42
-             693:    609(ptr) AccessChain 34(data) 688 68
-             694: 24(i16vec4) Load 693
-             695: 24(i16vec4) VectorShuffle 694 692 4 5 2 3
-                              Store 693 695
-             696:      6(int) Load 8(invocation)
-             697:    609(ptr) AccessChain 34(data) 58 68
-             698: 24(i16vec4) Load 697
-             699:618(i16vec3) VectorShuffle 698 698 0 1 2
-             700:618(i16vec3) GroupNonUniformUMax 43 ClusteredReduce 699 42
-             701:    609(ptr) AccessChain 34(data) 696 68
-             702: 24(i16vec4) Load 701
-             703: 24(i16vec4) VectorShuffle 702 700 4 5 6 3
-                              Store 701 703
-             704:      6(int) Load 8(invocation)
-             705:    609(ptr) AccessChain 34(data) 68 68
+             671:    480(ptr) AccessChain 34(data) 59 59
+             672: 22(i16vec4) Load 671
+             673:490(i16vec3) VectorShuffle 672 672 0 1 2
+             674:490(i16vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 673 42
+             675:    473(ptr) AccessChain 34(data) 670 59 38
+             676: 21(int16_t) CompositeExtract 674 0
+                              Store 675 676
+             677:    473(ptr) AccessChain 34(data) 670 59 42
+             678: 21(int16_t) CompositeExtract 674 1
+                              Store 677 678
+             679:    473(ptr) AccessChain 34(data) 670 59 69
+             680: 21(int16_t) CompositeExtract 674 2
+                              Store 679 680
+             681:      6(int) Load 8(invocation)
+             682:    480(ptr) AccessChain 34(data) 73 59
+             683: 22(i16vec4) Load 682
+             684: 22(i16vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 683 42
+             685:    480(ptr) AccessChain 34(data) 681 59
+                              Store 685 684
+             686:      6(int) Load 8(invocation)
+             688:    687(ptr) AccessChain 34(data) 37 73 38
+             689: 23(int16_t) Load 688
+             690: 23(int16_t) GroupNonUniformIAdd 43 ClusteredReduce 689 42
+             691:    687(ptr) AccessChain 34(data) 686 73 38
+                              Store 691 690
+             692:      6(int) Load 8(invocation)
+             695:    694(ptr) AccessChain 34(data) 47 73
+             696: 24(i16vec4) Load 695
+             697:693(i16vec2) VectorShuffle 696 696 0 1
+             698:693(i16vec2) GroupNonUniformIAdd 43 ClusteredReduce 697 42
+             699:    687(ptr) AccessChain 34(data) 692 73 38
+             700: 23(int16_t) CompositeExtract 698 0
+                              Store 699 700
+             701:    687(ptr) AccessChain 34(data) 692 73 42
+             702: 23(int16_t) CompositeExtract 698 1
+                              Store 701 702
+             703:      6(int) Load 8(invocation)
+             705:    694(ptr) AccessChain 34(data) 59 73
              706: 24(i16vec4) Load 705
-             707: 24(i16vec4) GroupNonUniformUMax 43 ClusteredReduce 706 42
-             708:    609(ptr) AccessChain 34(data) 704 68
-                              Store 708 707
-             709:      6(int) Load 8(invocation)
-             710:    602(ptr) AccessChain 34(data) 37 68 38
-             711: 23(int16_t) Load 710
-             712: 23(int16_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 711 42
-             713:    602(ptr) AccessChain 34(data) 709 68 38
-                              Store 713 712
-             714:      6(int) Load 8(invocation)
-             715:    609(ptr) AccessChain 34(data) 47 68
-             716: 24(i16vec4) Load 715
-             717:608(i16vec2) VectorShuffle 716 716 0 1
-             718:608(i16vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 717 42
-             719:    609(ptr) AccessChain 34(data) 714 68
-             720: 24(i16vec4) Load 719
-             721: 24(i16vec4) VectorShuffle 720 718 4 5 2 3
-                              Store 719 721
-             722:      6(int) Load 8(invocation)
-             723:    609(ptr) AccessChain 34(data) 58 68
-             724: 24(i16vec4) Load 723
-             725:618(i16vec3) VectorShuffle 724 724 0 1 2
-             726:618(i16vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 725 42
-             727:    609(ptr) AccessChain 34(data) 722 68
-             728: 24(i16vec4) Load 727
-             729: 24(i16vec4) VectorShuffle 728 726 4 5 6 3
-                              Store 727 729
-             730:      6(int) Load 8(invocation)
-             731:    609(ptr) AccessChain 34(data) 68 68
-             732: 24(i16vec4) Load 731
-             733: 24(i16vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 732 42
-             734:    609(ptr) AccessChain 34(data) 730 68
-                              Store 734 733
-             735:      6(int) Load 8(invocation)
-             736:    602(ptr) AccessChain 34(data) 37 68 38
-             737: 23(int16_t) Load 736
-             738: 23(int16_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 737 42
-             739:    602(ptr) AccessChain 34(data) 735 68 38
-                              Store 739 738
-             740:      6(int) Load 8(invocation)
-             741:    609(ptr) AccessChain 34(data) 47 68
-             742: 24(i16vec4) Load 741
-             743:608(i16vec2) VectorShuffle 742 742 0 1
-             744:608(i16vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 743 42
-             745:    609(ptr) AccessChain 34(data) 740 68
-             746: 24(i16vec4) Load 745
-             747: 24(i16vec4) VectorShuffle 746 744 4 5 2 3
-                              Store 745 747
-             748:      6(int) Load 8(invocation)
-             749:    609(ptr) AccessChain 34(data) 58 68
-             750: 24(i16vec4) Load 749
-             751:618(i16vec3) VectorShuffle 750 750 0 1 2
-             752:618(i16vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 751 42
-             753:    609(ptr) AccessChain 34(data) 748 68
-             754: 24(i16vec4) Load 753
-             755: 24(i16vec4) VectorShuffle 754 752 4 5 6 3
-                              Store 753 755
-             756:      6(int) Load 8(invocation)
-             757:    609(ptr) AccessChain 34(data) 68 68
-             758: 24(i16vec4) Load 757
-             759: 24(i16vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 758 42
-             760:    609(ptr) AccessChain 34(data) 756 68
-                              Store 760 759
-             761:      6(int) Load 8(invocation)
-             762:    602(ptr) AccessChain 34(data) 37 68 38
-             763: 23(int16_t) Load 762
-             764: 23(int16_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 763 42
-             765:    602(ptr) AccessChain 34(data) 761 68 38
-                              Store 765 764
-             766:      6(int) Load 8(invocation)
-             767:    609(ptr) AccessChain 34(data) 47 68
-             768: 24(i16vec4) Load 767
-             769:608(i16vec2) VectorShuffle 768 768 0 1
-             770:608(i16vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 769 42
-             771:    609(ptr) AccessChain 34(data) 766 68
-             772: 24(i16vec4) Load 771
-             773: 24(i16vec4) VectorShuffle 772 770 4 5 2 3
-                              Store 771 773
-             774:      6(int) Load 8(invocation)
-             775:    609(ptr) AccessChain 34(data) 58 68
-             776: 24(i16vec4) Load 775
-             777:618(i16vec3) VectorShuffle 776 776 0 1 2
-             778:618(i16vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 777 42
-             779:    609(ptr) AccessChain 34(data) 774 68
-             780: 24(i16vec4) Load 779
-             781: 24(i16vec4) VectorShuffle 780 778 4 5 6 3
-                              Store 779 781
-             782:      6(int) Load 8(invocation)
-             783:    609(ptr) AccessChain 34(data) 68 68
-             784: 24(i16vec4) Load 783
-             785: 24(i16vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 784 42
-             786:    609(ptr) AccessChain 34(data) 782 68
-                              Store 786 785
-             787:      6(int) Load 8(invocation)
-             790:    789(ptr) AccessChain 34(data) 37 788 38
-             791: 25(int64_t) Load 790
-             792: 25(int64_t) GroupNonUniformIAdd 43 ClusteredReduce 791 42
-             793:    789(ptr) AccessChain 34(data) 787 788 38
-                              Store 793 792
+             707:704(i16vec3) VectorShuffle 706 706 0 1 2
+             708:704(i16vec3) GroupNonUniformIAdd 43 ClusteredReduce 707 42
+             709:    687(ptr) AccessChain 34(data) 703 73 38
+             710: 23(int16_t) CompositeExtract 708 0
+                              Store 709 710
+             711:    687(ptr) AccessChain 34(data) 703 73 42
+             712: 23(int16_t) CompositeExtract 708 1
+                              Store 711 712
+             713:    687(ptr) AccessChain 34(data) 703 73 69
+             714: 23(int16_t) CompositeExtract 708 2
+                              Store 713 714
+             715:      6(int) Load 8(invocation)
+             716:    694(ptr) AccessChain 34(data) 73 73
+             717: 24(i16vec4) Load 716
+             718: 24(i16vec4) GroupNonUniformIAdd 43 ClusteredReduce 717 42
+             719:    694(ptr) AccessChain 34(data) 715 73
+                              Store 719 718
+             720:      6(int) Load 8(invocation)
+             721:    687(ptr) AccessChain 34(data) 37 73 38
+             722: 23(int16_t) Load 721
+             723: 23(int16_t) GroupNonUniformIMul 43 ClusteredReduce 722 42
+             724:    687(ptr) AccessChain 34(data) 720 73 38
+                              Store 724 723
+             725:      6(int) Load 8(invocation)
+             726:    694(ptr) AccessChain 34(data) 47 73
+             727: 24(i16vec4) Load 726
+             728:693(i16vec2) VectorShuffle 727 727 0 1
+             729:693(i16vec2) GroupNonUniformIMul 43 ClusteredReduce 728 42
+             730:    687(ptr) AccessChain 34(data) 725 73 38
+             731: 23(int16_t) CompositeExtract 729 0
+                              Store 730 731
+             732:    687(ptr) AccessChain 34(data) 725 73 42
+             733: 23(int16_t) CompositeExtract 729 1
+                              Store 732 733
+             734:      6(int) Load 8(invocation)
+             735:    694(ptr) AccessChain 34(data) 59 73
+             736: 24(i16vec4) Load 735
+             737:704(i16vec3) VectorShuffle 736 736 0 1 2
+             738:704(i16vec3) GroupNonUniformIMul 43 ClusteredReduce 737 42
+             739:    687(ptr) AccessChain 34(data) 734 73 38
+             740: 23(int16_t) CompositeExtract 738 0
+                              Store 739 740
+             741:    687(ptr) AccessChain 34(data) 734 73 42
+             742: 23(int16_t) CompositeExtract 738 1
+                              Store 741 742
+             743:    687(ptr) AccessChain 34(data) 734 73 69
+             744: 23(int16_t) CompositeExtract 738 2
+                              Store 743 744
+             745:      6(int) Load 8(invocation)
+             746:    694(ptr) AccessChain 34(data) 73 73
+             747: 24(i16vec4) Load 746
+             748: 24(i16vec4) GroupNonUniformIMul 43 ClusteredReduce 747 42
+             749:    694(ptr) AccessChain 34(data) 745 73
+                              Store 749 748
+             750:      6(int) Load 8(invocation)
+             751:    687(ptr) AccessChain 34(data) 37 73 38
+             752: 23(int16_t) Load 751
+             753: 23(int16_t) GroupNonUniformUMin 43 ClusteredReduce 752 42
+             754:    687(ptr) AccessChain 34(data) 750 73 38
+                              Store 754 753
+             755:      6(int) Load 8(invocation)
+             756:    694(ptr) AccessChain 34(data) 47 73
+             757: 24(i16vec4) Load 756
+             758:693(i16vec2) VectorShuffle 757 757 0 1
+             759:693(i16vec2) GroupNonUniformUMin 43 ClusteredReduce 758 42
+             760:    687(ptr) AccessChain 34(data) 755 73 38
+             761: 23(int16_t) CompositeExtract 759 0
+                              Store 760 761
+             762:    687(ptr) AccessChain 34(data) 755 73 42
+             763: 23(int16_t) CompositeExtract 759 1
+                              Store 762 763
+             764:      6(int) Load 8(invocation)
+             765:    694(ptr) AccessChain 34(data) 59 73
+             766: 24(i16vec4) Load 765
+             767:704(i16vec3) VectorShuffle 766 766 0 1 2
+             768:704(i16vec3) GroupNonUniformUMin 43 ClusteredReduce 767 42
+             769:    687(ptr) AccessChain 34(data) 764 73 38
+             770: 23(int16_t) CompositeExtract 768 0
+                              Store 769 770
+             771:    687(ptr) AccessChain 34(data) 764 73 42
+             772: 23(int16_t) CompositeExtract 768 1
+                              Store 771 772
+             773:    687(ptr) AccessChain 34(data) 764 73 69
+             774: 23(int16_t) CompositeExtract 768 2
+                              Store 773 774
+             775:      6(int) Load 8(invocation)
+             776:    694(ptr) AccessChain 34(data) 73 73
+             777: 24(i16vec4) Load 776
+             778: 24(i16vec4) GroupNonUniformUMin 43 ClusteredReduce 777 42
+             779:    694(ptr) AccessChain 34(data) 775 73
+                              Store 779 778
+             780:      6(int) Load 8(invocation)
+             781:    687(ptr) AccessChain 34(data) 37 73 38
+             782: 23(int16_t) Load 781
+             783: 23(int16_t) GroupNonUniformUMax 43 ClusteredReduce 782 42
+             784:    687(ptr) AccessChain 34(data) 780 73 38
+                              Store 784 783
+             785:      6(int) Load 8(invocation)
+             786:    694(ptr) AccessChain 34(data) 47 73
+             787: 24(i16vec4) Load 786
+             788:693(i16vec2) VectorShuffle 787 787 0 1
+             789:693(i16vec2) GroupNonUniformUMax 43 ClusteredReduce 788 42
+             790:    687(ptr) AccessChain 34(data) 785 73 38
+             791: 23(int16_t) CompositeExtract 789 0
+                              Store 790 791
+             792:    687(ptr) AccessChain 34(data) 785 73 42
+             793: 23(int16_t) CompositeExtract 789 1
+                              Store 792 793
              794:      6(int) Load 8(invocation)
-             797:    796(ptr) AccessChain 34(data) 47 788
-             798: 26(i64vec4) Load 797
-             799:795(i64vec2) VectorShuffle 798 798 0 1
-             800:795(i64vec2) GroupNonUniformIAdd 43 ClusteredReduce 799 42
-             801:    796(ptr) AccessChain 34(data) 794 788
-             802: 26(i64vec4) Load 801
-             803: 26(i64vec4) VectorShuffle 802 800 4 5 2 3
-                              Store 801 803
-             804:      6(int) Load 8(invocation)
-             806:    796(ptr) AccessChain 34(data) 58 788
-             807: 26(i64vec4) Load 806
-             808:805(i64vec3) VectorShuffle 807 807 0 1 2
-             809:805(i64vec3) GroupNonUniformIAdd 43 ClusteredReduce 808 42
-             810:    796(ptr) AccessChain 34(data) 804 788
-             811: 26(i64vec4) Load 810
-             812: 26(i64vec4) VectorShuffle 811 809 4 5 6 3
-                              Store 810 812
-             813:      6(int) Load 8(invocation)
-             814:    796(ptr) AccessChain 34(data) 68 788
-             815: 26(i64vec4) Load 814
-             816: 26(i64vec4) GroupNonUniformIAdd 43 ClusteredReduce 815 42
-             817:    796(ptr) AccessChain 34(data) 813 788
-                              Store 817 816
-             818:      6(int) Load 8(invocation)
-             819:    789(ptr) AccessChain 34(data) 37 788 38
-             820: 25(int64_t) Load 819
-             821: 25(int64_t) GroupNonUniformIMul 43 ClusteredReduce 820 42
-             822:    789(ptr) AccessChain 34(data) 818 788 38
-                              Store 822 821
-             823:      6(int) Load 8(invocation)
-             824:    796(ptr) AccessChain 34(data) 47 788
-             825: 26(i64vec4) Load 824
-             826:795(i64vec2) VectorShuffle 825 825 0 1
-             827:795(i64vec2) GroupNonUniformIMul 43 ClusteredReduce 826 42
-             828:    796(ptr) AccessChain 34(data) 823 788
-             829: 26(i64vec4) Load 828
-             830: 26(i64vec4) VectorShuffle 829 827 4 5 2 3
-                              Store 828 830
-             831:      6(int) Load 8(invocation)
-             832:    796(ptr) AccessChain 34(data) 58 788
-             833: 26(i64vec4) Load 832
-             834:805(i64vec3) VectorShuffle 833 833 0 1 2
-             835:805(i64vec3) GroupNonUniformIMul 43 ClusteredReduce 834 42
-             836:    796(ptr) AccessChain 34(data) 831 788
-             837: 26(i64vec4) Load 836
-             838: 26(i64vec4) VectorShuffle 837 835 4 5 6 3
-                              Store 836 838
-             839:      6(int) Load 8(invocation)
-             840:    796(ptr) AccessChain 34(data) 68 788
-             841: 26(i64vec4) Load 840
-             842: 26(i64vec4) GroupNonUniformIMul 43 ClusteredReduce 841 42
-             843:    796(ptr) AccessChain 34(data) 839 788
-                              Store 843 842
-             844:      6(int) Load 8(invocation)
-             845:    789(ptr) AccessChain 34(data) 37 788 38
-             846: 25(int64_t) Load 845
-             847: 25(int64_t) GroupNonUniformSMin 43 ClusteredReduce 846 42
-             848:    789(ptr) AccessChain 34(data) 844 788 38
-                              Store 848 847
-             849:      6(int) Load 8(invocation)
-             850:    796(ptr) AccessChain 34(data) 47 788
-             851: 26(i64vec4) Load 850
-             852:795(i64vec2) VectorShuffle 851 851 0 1
-             853:795(i64vec2) GroupNonUniformSMin 43 ClusteredReduce 852 42
-             854:    796(ptr) AccessChain 34(data) 849 788
-             855: 26(i64vec4) Load 854
-             856: 26(i64vec4) VectorShuffle 855 853 4 5 2 3
-                              Store 854 856
-             857:      6(int) Load 8(invocation)
-             858:    796(ptr) AccessChain 34(data) 58 788
-             859: 26(i64vec4) Load 858
-             860:805(i64vec3) VectorShuffle 859 859 0 1 2
-             861:805(i64vec3) GroupNonUniformSMin 43 ClusteredReduce 860 42
-             862:    796(ptr) AccessChain 34(data) 857 788
-             863: 26(i64vec4) Load 862
-             864: 26(i64vec4) VectorShuffle 863 861 4 5 6 3
-                              Store 862 864
+             795:    694(ptr) AccessChain 34(data) 59 73
+             796: 24(i16vec4) Load 795
+             797:704(i16vec3) VectorShuffle 796 796 0 1 2
+             798:704(i16vec3) GroupNonUniformUMax 43 ClusteredReduce 797 42
+             799:    687(ptr) AccessChain 34(data) 794 73 38
+             800: 23(int16_t) CompositeExtract 798 0
+                              Store 799 800
+             801:    687(ptr) AccessChain 34(data) 794 73 42
+             802: 23(int16_t) CompositeExtract 798 1
+                              Store 801 802
+             803:    687(ptr) AccessChain 34(data) 794 73 69
+             804: 23(int16_t) CompositeExtract 798 2
+                              Store 803 804
+             805:      6(int) Load 8(invocation)
+             806:    694(ptr) AccessChain 34(data) 73 73
+             807: 24(i16vec4) Load 806
+             808: 24(i16vec4) GroupNonUniformUMax 43 ClusteredReduce 807 42
+             809:    694(ptr) AccessChain 34(data) 805 73
+                              Store 809 808
+             810:      6(int) Load 8(invocation)
+             811:    687(ptr) AccessChain 34(data) 37 73 38
+             812: 23(int16_t) Load 811
+             813: 23(int16_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 812 42
+             814:    687(ptr) AccessChain 34(data) 810 73 38
+                              Store 814 813
+             815:      6(int) Load 8(invocation)
+             816:    694(ptr) AccessChain 34(data) 47 73
+             817: 24(i16vec4) Load 816
+             818:693(i16vec2) VectorShuffle 817 817 0 1
+             819:693(i16vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 818 42
+             820:    687(ptr) AccessChain 34(data) 815 73 38
+             821: 23(int16_t) CompositeExtract 819 0
+                              Store 820 821
+             822:    687(ptr) AccessChain 34(data) 815 73 42
+             823: 23(int16_t) CompositeExtract 819 1
+                              Store 822 823
+             824:      6(int) Load 8(invocation)
+             825:    694(ptr) AccessChain 34(data) 59 73
+             826: 24(i16vec4) Load 825
+             827:704(i16vec3) VectorShuffle 826 826 0 1 2
+             828:704(i16vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 827 42
+             829:    687(ptr) AccessChain 34(data) 824 73 38
+             830: 23(int16_t) CompositeExtract 828 0
+                              Store 829 830
+             831:    687(ptr) AccessChain 34(data) 824 73 42
+             832: 23(int16_t) CompositeExtract 828 1
+                              Store 831 832
+             833:    687(ptr) AccessChain 34(data) 824 73 69
+             834: 23(int16_t) CompositeExtract 828 2
+                              Store 833 834
+             835:      6(int) Load 8(invocation)
+             836:    694(ptr) AccessChain 34(data) 73 73
+             837: 24(i16vec4) Load 836
+             838: 24(i16vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 837 42
+             839:    694(ptr) AccessChain 34(data) 835 73
+                              Store 839 838
+             840:      6(int) Load 8(invocation)
+             841:    687(ptr) AccessChain 34(data) 37 73 38
+             842: 23(int16_t) Load 841
+             843: 23(int16_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 842 42
+             844:    687(ptr) AccessChain 34(data) 840 73 38
+                              Store 844 843
+             845:      6(int) Load 8(invocation)
+             846:    694(ptr) AccessChain 34(data) 47 73
+             847: 24(i16vec4) Load 846
+             848:693(i16vec2) VectorShuffle 847 847 0 1
+             849:693(i16vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 848 42
+             850:    687(ptr) AccessChain 34(data) 845 73 38
+             851: 23(int16_t) CompositeExtract 849 0
+                              Store 850 851
+             852:    687(ptr) AccessChain 34(data) 845 73 42
+             853: 23(int16_t) CompositeExtract 849 1
+                              Store 852 853
+             854:      6(int) Load 8(invocation)
+             855:    694(ptr) AccessChain 34(data) 59 73
+             856: 24(i16vec4) Load 855
+             857:704(i16vec3) VectorShuffle 856 856 0 1 2
+             858:704(i16vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 857 42
+             859:    687(ptr) AccessChain 34(data) 854 73 38
+             860: 23(int16_t) CompositeExtract 858 0
+                              Store 859 860
+             861:    687(ptr) AccessChain 34(data) 854 73 42
+             862: 23(int16_t) CompositeExtract 858 1
+                              Store 861 862
+             863:    687(ptr) AccessChain 34(data) 854 73 69
+             864: 23(int16_t) CompositeExtract 858 2
+                              Store 863 864
              865:      6(int) Load 8(invocation)
-             866:    796(ptr) AccessChain 34(data) 68 788
-             867: 26(i64vec4) Load 866
-             868: 26(i64vec4) GroupNonUniformSMin 43 ClusteredReduce 867 42
-             869:    796(ptr) AccessChain 34(data) 865 788
+             866:    694(ptr) AccessChain 34(data) 73 73
+             867: 24(i16vec4) Load 866
+             868: 24(i16vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 867 42
+             869:    694(ptr) AccessChain 34(data) 865 73
                               Store 869 868
              870:      6(int) Load 8(invocation)
-             871:    789(ptr) AccessChain 34(data) 37 788 38
-             872: 25(int64_t) Load 871
-             873: 25(int64_t) GroupNonUniformSMax 43 ClusteredReduce 872 42
-             874:    789(ptr) AccessChain 34(data) 870 788 38
+             871:    687(ptr) AccessChain 34(data) 37 73 38
+             872: 23(int16_t) Load 871
+             873: 23(int16_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 872 42
+             874:    687(ptr) AccessChain 34(data) 870 73 38
                               Store 874 873
              875:      6(int) Load 8(invocation)
-             876:    796(ptr) AccessChain 34(data) 47 788
-             877: 26(i64vec4) Load 876
-             878:795(i64vec2) VectorShuffle 877 877 0 1
-             879:795(i64vec2) GroupNonUniformSMax 43 ClusteredReduce 878 42
-             880:    796(ptr) AccessChain 34(data) 875 788
-             881: 26(i64vec4) Load 880
-             882: 26(i64vec4) VectorShuffle 881 879 4 5 2 3
-                              Store 880 882
-             883:      6(int) Load 8(invocation)
-             884:    796(ptr) AccessChain 34(data) 58 788
-             885: 26(i64vec4) Load 884
-             886:805(i64vec3) VectorShuffle 885 885 0 1 2
-             887:805(i64vec3) GroupNonUniformSMax 43 ClusteredReduce 886 42
-             888:    796(ptr) AccessChain 34(data) 883 788
-             889: 26(i64vec4) Load 888
-             890: 26(i64vec4) VectorShuffle 889 887 4 5 6 3
-                              Store 888 890
-             891:      6(int) Load 8(invocation)
-             892:    796(ptr) AccessChain 34(data) 68 788
-             893: 26(i64vec4) Load 892
-             894: 26(i64vec4) GroupNonUniformSMax 43 ClusteredReduce 893 42
-             895:    796(ptr) AccessChain 34(data) 891 788
-                              Store 895 894
-             896:      6(int) Load 8(invocation)
-             897:    789(ptr) AccessChain 34(data) 37 788 38
-             898: 25(int64_t) Load 897
-             899: 25(int64_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 898 42
-             900:    789(ptr) AccessChain 34(data) 896 788 38
-                              Store 900 899
-             901:      6(int) Load 8(invocation)
-             902:    796(ptr) AccessChain 34(data) 47 788
-             903: 26(i64vec4) Load 902
-             904:795(i64vec2) VectorShuffle 903 903 0 1
-             905:795(i64vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 904 42
-             906:    796(ptr) AccessChain 34(data) 901 788
-             907: 26(i64vec4) Load 906
-             908: 26(i64vec4) VectorShuffle 907 905 4 5 2 3
-                              Store 906 908
-             909:      6(int) Load 8(invocation)
-             910:    796(ptr) AccessChain 34(data) 58 788
+             876:    694(ptr) AccessChain 34(data) 47 73
+             877: 24(i16vec4) Load 876
+             878:693(i16vec2) VectorShuffle 877 877 0 1
+             879:693(i16vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 878 42
+             880:    687(ptr) AccessChain 34(data) 875 73 38
+             881: 23(int16_t) CompositeExtract 879 0
+                              Store 880 881
+             882:    687(ptr) AccessChain 34(data) 875 73 42
+             883: 23(int16_t) CompositeExtract 879 1
+                              Store 882 883
+             884:      6(int) Load 8(invocation)
+             885:    694(ptr) AccessChain 34(data) 59 73
+             886: 24(i16vec4) Load 885
+             887:704(i16vec3) VectorShuffle 886 886 0 1 2
+             888:704(i16vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 887 42
+             889:    687(ptr) AccessChain 34(data) 884 73 38
+             890: 23(int16_t) CompositeExtract 888 0
+                              Store 889 890
+             891:    687(ptr) AccessChain 34(data) 884 73 42
+             892: 23(int16_t) CompositeExtract 888 1
+                              Store 891 892
+             893:    687(ptr) AccessChain 34(data) 884 73 69
+             894: 23(int16_t) CompositeExtract 888 2
+                              Store 893 894
+             895:      6(int) Load 8(invocation)
+             896:    694(ptr) AccessChain 34(data) 73 73
+             897: 24(i16vec4) Load 896
+             898: 24(i16vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 897 42
+             899:    694(ptr) AccessChain 34(data) 895 73
+                              Store 899 898
+             900:      6(int) Load 8(invocation)
+             903:    902(ptr) AccessChain 34(data) 37 901 38
+             904: 25(int64_t) Load 903
+             905: 25(int64_t) GroupNonUniformIAdd 43 ClusteredReduce 904 42
+             906:    902(ptr) AccessChain 34(data) 900 901 38
+                              Store 906 905
+             907:      6(int) Load 8(invocation)
+             910:    909(ptr) AccessChain 34(data) 47 901
              911: 26(i64vec4) Load 910
-             912:805(i64vec3) VectorShuffle 911 911 0 1 2
-             913:805(i64vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 912 42
-             914:    796(ptr) AccessChain 34(data) 909 788
-             915: 26(i64vec4) Load 914
-             916: 26(i64vec4) VectorShuffle 915 913 4 5 6 3
-                              Store 914 916
-             917:      6(int) Load 8(invocation)
-             918:    796(ptr) AccessChain 34(data) 68 788
-             919: 26(i64vec4) Load 918
-             920: 26(i64vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 919 42
-             921:    796(ptr) AccessChain 34(data) 917 788
-                              Store 921 920
-             922:      6(int) Load 8(invocation)
-             923:    789(ptr) AccessChain 34(data) 37 788 38
-             924: 25(int64_t) Load 923
-             925: 25(int64_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 924 42
-             926:    789(ptr) AccessChain 34(data) 922 788 38
-                              Store 926 925
-             927:      6(int) Load 8(invocation)
-             928:    796(ptr) AccessChain 34(data) 47 788
-             929: 26(i64vec4) Load 928
-             930:795(i64vec2) VectorShuffle 929 929 0 1
-             931:795(i64vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 930 42
-             932:    796(ptr) AccessChain 34(data) 927 788
-             933: 26(i64vec4) Load 932
-             934: 26(i64vec4) VectorShuffle 933 931 4 5 2 3
-                              Store 932 934
+             912:908(i64vec2) VectorShuffle 911 911 0 1
+             913:908(i64vec2) GroupNonUniformIAdd 43 ClusteredReduce 912 42
+             914:    902(ptr) AccessChain 34(data) 907 901 38
+             915: 25(int64_t) CompositeExtract 913 0
+                              Store 914 915
+             916:    902(ptr) AccessChain 34(data) 907 901 42
+             917: 25(int64_t) CompositeExtract 913 1
+                              Store 916 917
+             918:      6(int) Load 8(invocation)
+             920:    909(ptr) AccessChain 34(data) 59 901
+             921: 26(i64vec4) Load 920
+             922:919(i64vec3) VectorShuffle 921 921 0 1 2
+             923:919(i64vec3) GroupNonUniformIAdd 43 ClusteredReduce 922 42
+             924:    902(ptr) AccessChain 34(data) 918 901 38
+             925: 25(int64_t) CompositeExtract 923 0
+                              Store 924 925
+             926:    902(ptr) AccessChain 34(data) 918 901 42
+             927: 25(int64_t) CompositeExtract 923 1
+                              Store 926 927
+             928:    902(ptr) AccessChain 34(data) 918 901 69
+             929: 25(int64_t) CompositeExtract 923 2
+                              Store 928 929
+             930:      6(int) Load 8(invocation)
+             931:    909(ptr) AccessChain 34(data) 73 901
+             932: 26(i64vec4) Load 931
+             933: 26(i64vec4) GroupNonUniformIAdd 43 ClusteredReduce 932 42
+             934:    909(ptr) AccessChain 34(data) 930 901
+                              Store 934 933
              935:      6(int) Load 8(invocation)
-             936:    796(ptr) AccessChain 34(data) 58 788
-             937: 26(i64vec4) Load 936
-             938:805(i64vec3) VectorShuffle 937 937 0 1 2
-             939:805(i64vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 938 42
-             940:    796(ptr) AccessChain 34(data) 935 788
-             941: 26(i64vec4) Load 940
-             942: 26(i64vec4) VectorShuffle 941 939 4 5 6 3
-                              Store 940 942
-             943:      6(int) Load 8(invocation)
-             944:    796(ptr) AccessChain 34(data) 68 788
-             945: 26(i64vec4) Load 944
-             946: 26(i64vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 945 42
-             947:    796(ptr) AccessChain 34(data) 943 788
-                              Store 947 946
-             948:      6(int) Load 8(invocation)
-             949:    789(ptr) AccessChain 34(data) 37 788 38
-             950: 25(int64_t) Load 949
-             951: 25(int64_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 950 42
-             952:    789(ptr) AccessChain 34(data) 948 788 38
-                              Store 952 951
-             953:      6(int) Load 8(invocation)
-             954:    796(ptr) AccessChain 34(data) 47 788
-             955: 26(i64vec4) Load 954
-             956:795(i64vec2) VectorShuffle 955 955 0 1
-             957:795(i64vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 956 42
-             958:    796(ptr) AccessChain 34(data) 953 788
-             959: 26(i64vec4) Load 958
-             960: 26(i64vec4) VectorShuffle 959 957 4 5 2 3
-                              Store 958 960
-             961:      6(int) Load 8(invocation)
-             962:    796(ptr) AccessChain 34(data) 58 788
-             963: 26(i64vec4) Load 962
-             964:805(i64vec3) VectorShuffle 963 963 0 1 2
-             965:805(i64vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 964 42
-             966:    796(ptr) AccessChain 34(data) 961 788
-             967: 26(i64vec4) Load 966
-             968: 26(i64vec4) VectorShuffle 967 965 4 5 6 3
-                              Store 966 968
-             969:      6(int) Load 8(invocation)
-             970:    796(ptr) AccessChain 34(data) 68 788
-             971: 26(i64vec4) Load 970
-             972: 26(i64vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 971 42
-             973:    796(ptr) AccessChain 34(data) 969 788
-                              Store 973 972
-             974:      6(int) Load 8(invocation)
-             977:    976(ptr) AccessChain 34(data) 37 975 38
-             978: 27(int64_t) Load 977
-             979: 27(int64_t) GroupNonUniformIAdd 43 ClusteredReduce 978 42
-             980:    976(ptr) AccessChain 34(data) 974 975 38
-                              Store 980 979
-             981:      6(int) Load 8(invocation)
-             984:    983(ptr) AccessChain 34(data) 47 975
-             985: 28(i64vec4) Load 984
-             986:982(i64vec2) VectorShuffle 985 985 0 1
-             987:982(i64vec2) GroupNonUniformIAdd 43 ClusteredReduce 986 42
-             988:    983(ptr) AccessChain 34(data) 981 975
-             989: 28(i64vec4) Load 988
-             990: 28(i64vec4) VectorShuffle 989 987 4 5 2 3
-                              Store 988 990
-             991:      6(int) Load 8(invocation)
-             993:    983(ptr) AccessChain 34(data) 58 975
-             994: 28(i64vec4) Load 993
-             995:992(i64vec3) VectorShuffle 994 994 0 1 2
-             996:992(i64vec3) GroupNonUniformIAdd 43 ClusteredReduce 995 42
-             997:    983(ptr) AccessChain 34(data) 991 975
-             998: 28(i64vec4) Load 997
-             999: 28(i64vec4) VectorShuffle 998 996 4 5 6 3
-                              Store 997 999
+             936:    902(ptr) AccessChain 34(data) 37 901 38
+             937: 25(int64_t) Load 936
+             938: 25(int64_t) GroupNonUniformIMul 43 ClusteredReduce 937 42
+             939:    902(ptr) AccessChain 34(data) 935 901 38
+                              Store 939 938
+             940:      6(int) Load 8(invocation)
+             941:    909(ptr) AccessChain 34(data) 47 901
+             942: 26(i64vec4) Load 941
+             943:908(i64vec2) VectorShuffle 942 942 0 1
+             944:908(i64vec2) GroupNonUniformIMul 43 ClusteredReduce 943 42
+             945:    902(ptr) AccessChain 34(data) 940 901 38
+             946: 25(int64_t) CompositeExtract 944 0
+                              Store 945 946
+             947:    902(ptr) AccessChain 34(data) 940 901 42
+             948: 25(int64_t) CompositeExtract 944 1
+                              Store 947 948
+             949:      6(int) Load 8(invocation)
+             950:    909(ptr) AccessChain 34(data) 59 901
+             951: 26(i64vec4) Load 950
+             952:919(i64vec3) VectorShuffle 951 951 0 1 2
+             953:919(i64vec3) GroupNonUniformIMul 43 ClusteredReduce 952 42
+             954:    902(ptr) AccessChain 34(data) 949 901 38
+             955: 25(int64_t) CompositeExtract 953 0
+                              Store 954 955
+             956:    902(ptr) AccessChain 34(data) 949 901 42
+             957: 25(int64_t) CompositeExtract 953 1
+                              Store 956 957
+             958:    902(ptr) AccessChain 34(data) 949 901 69
+             959: 25(int64_t) CompositeExtract 953 2
+                              Store 958 959
+             960:      6(int) Load 8(invocation)
+             961:    909(ptr) AccessChain 34(data) 73 901
+             962: 26(i64vec4) Load 961
+             963: 26(i64vec4) GroupNonUniformIMul 43 ClusteredReduce 962 42
+             964:    909(ptr) AccessChain 34(data) 960 901
+                              Store 964 963
+             965:      6(int) Load 8(invocation)
+             966:    902(ptr) AccessChain 34(data) 37 901 38
+             967: 25(int64_t) Load 966
+             968: 25(int64_t) GroupNonUniformSMin 43 ClusteredReduce 967 42
+             969:    902(ptr) AccessChain 34(data) 965 901 38
+                              Store 969 968
+             970:      6(int) Load 8(invocation)
+             971:    909(ptr) AccessChain 34(data) 47 901
+             972: 26(i64vec4) Load 971
+             973:908(i64vec2) VectorShuffle 972 972 0 1
+             974:908(i64vec2) GroupNonUniformSMin 43 ClusteredReduce 973 42
+             975:    902(ptr) AccessChain 34(data) 970 901 38
+             976: 25(int64_t) CompositeExtract 974 0
+                              Store 975 976
+             977:    902(ptr) AccessChain 34(data) 970 901 42
+             978: 25(int64_t) CompositeExtract 974 1
+                              Store 977 978
+             979:      6(int) Load 8(invocation)
+             980:    909(ptr) AccessChain 34(data) 59 901
+             981: 26(i64vec4) Load 980
+             982:919(i64vec3) VectorShuffle 981 981 0 1 2
+             983:919(i64vec3) GroupNonUniformSMin 43 ClusteredReduce 982 42
+             984:    902(ptr) AccessChain 34(data) 979 901 38
+             985: 25(int64_t) CompositeExtract 983 0
+                              Store 984 985
+             986:    902(ptr) AccessChain 34(data) 979 901 42
+             987: 25(int64_t) CompositeExtract 983 1
+                              Store 986 987
+             988:    902(ptr) AccessChain 34(data) 979 901 69
+             989: 25(int64_t) CompositeExtract 983 2
+                              Store 988 989
+             990:      6(int) Load 8(invocation)
+             991:    909(ptr) AccessChain 34(data) 73 901
+             992: 26(i64vec4) Load 991
+             993: 26(i64vec4) GroupNonUniformSMin 43 ClusteredReduce 992 42
+             994:    909(ptr) AccessChain 34(data) 990 901
+                              Store 994 993
+             995:      6(int) Load 8(invocation)
+             996:    902(ptr) AccessChain 34(data) 37 901 38
+             997: 25(int64_t) Load 996
+             998: 25(int64_t) GroupNonUniformSMax 43 ClusteredReduce 997 42
+             999:    902(ptr) AccessChain 34(data) 995 901 38
+                              Store 999 998
             1000:      6(int) Load 8(invocation)
-            1001:    983(ptr) AccessChain 34(data) 68 975
-            1002: 28(i64vec4) Load 1001
-            1003: 28(i64vec4) GroupNonUniformIAdd 43 ClusteredReduce 1002 42
-            1004:    983(ptr) AccessChain 34(data) 1000 975
-                              Store 1004 1003
-            1005:      6(int) Load 8(invocation)
-            1006:    976(ptr) AccessChain 34(data) 37 975 38
-            1007: 27(int64_t) Load 1006
-            1008: 27(int64_t) GroupNonUniformIMul 43 ClusteredReduce 1007 42
-            1009:    976(ptr) AccessChain 34(data) 1005 975 38
-                              Store 1009 1008
-            1010:      6(int) Load 8(invocation)
-            1011:    983(ptr) AccessChain 34(data) 47 975
-            1012: 28(i64vec4) Load 1011
-            1013:982(i64vec2) VectorShuffle 1012 1012 0 1
-            1014:982(i64vec2) GroupNonUniformIMul 43 ClusteredReduce 1013 42
-            1015:    983(ptr) AccessChain 34(data) 1010 975
-            1016: 28(i64vec4) Load 1015
-            1017: 28(i64vec4) VectorShuffle 1016 1014 4 5 2 3
-                              Store 1015 1017
-            1018:      6(int) Load 8(invocation)
-            1019:    983(ptr) AccessChain 34(data) 58 975
-            1020: 28(i64vec4) Load 1019
-            1021:992(i64vec3) VectorShuffle 1020 1020 0 1 2
-            1022:992(i64vec3) GroupNonUniformIMul 43 ClusteredReduce 1021 42
-            1023:    983(ptr) AccessChain 34(data) 1018 975
-            1024: 28(i64vec4) Load 1023
-            1025: 28(i64vec4) VectorShuffle 1024 1022 4 5 6 3
-                              Store 1023 1025
-            1026:      6(int) Load 8(invocation)
-            1027:    983(ptr) AccessChain 34(data) 68 975
-            1028: 28(i64vec4) Load 1027
-            1029: 28(i64vec4) GroupNonUniformIMul 43 ClusteredReduce 1028 42
-            1030:    983(ptr) AccessChain 34(data) 1026 975
-                              Store 1030 1029
-            1031:      6(int) Load 8(invocation)
-            1032:    976(ptr) AccessChain 34(data) 37 975 38
-            1033: 27(int64_t) Load 1032
-            1034: 27(int64_t) GroupNonUniformUMin 43 ClusteredReduce 1033 42
-            1035:    976(ptr) AccessChain 34(data) 1031 975 38
-                              Store 1035 1034
-            1036:      6(int) Load 8(invocation)
-            1037:    983(ptr) AccessChain 34(data) 47 975
-            1038: 28(i64vec4) Load 1037
-            1039:982(i64vec2) VectorShuffle 1038 1038 0 1
-            1040:982(i64vec2) GroupNonUniformUMin 43 ClusteredReduce 1039 42
-            1041:    983(ptr) AccessChain 34(data) 1036 975
-            1042: 28(i64vec4) Load 1041
-            1043: 28(i64vec4) VectorShuffle 1042 1040 4 5 2 3
-                              Store 1041 1043
-            1044:      6(int) Load 8(invocation)
-            1045:    983(ptr) AccessChain 34(data) 58 975
-            1046: 28(i64vec4) Load 1045
-            1047:992(i64vec3) VectorShuffle 1046 1046 0 1 2
-            1048:992(i64vec3) GroupNonUniformUMin 43 ClusteredReduce 1047 42
-            1049:    983(ptr) AccessChain 34(data) 1044 975
-            1050: 28(i64vec4) Load 1049
-            1051: 28(i64vec4) VectorShuffle 1050 1048 4 5 6 3
-                              Store 1049 1051
-            1052:      6(int) Load 8(invocation)
-            1053:    983(ptr) AccessChain 34(data) 68 975
-            1054: 28(i64vec4) Load 1053
-            1055: 28(i64vec4) GroupNonUniformUMin 43 ClusteredReduce 1054 42
-            1056:    983(ptr) AccessChain 34(data) 1052 975
-                              Store 1056 1055
-            1057:      6(int) Load 8(invocation)
-            1058:    976(ptr) AccessChain 34(data) 37 975 38
-            1059: 27(int64_t) Load 1058
-            1060: 27(int64_t) GroupNonUniformUMax 43 ClusteredReduce 1059 42
-            1061:    976(ptr) AccessChain 34(data) 1057 975 38
-                              Store 1061 1060
-            1062:      6(int) Load 8(invocation)
-            1063:    983(ptr) AccessChain 34(data) 47 975
-            1064: 28(i64vec4) Load 1063
-            1065:982(i64vec2) VectorShuffle 1064 1064 0 1
-            1066:982(i64vec2) GroupNonUniformUMax 43 ClusteredReduce 1065 42
-            1067:    983(ptr) AccessChain 34(data) 1062 975
-            1068: 28(i64vec4) Load 1067
-            1069: 28(i64vec4) VectorShuffle 1068 1066 4 5 2 3
-                              Store 1067 1069
-            1070:      6(int) Load 8(invocation)
-            1071:    983(ptr) AccessChain 34(data) 58 975
-            1072: 28(i64vec4) Load 1071
-            1073:992(i64vec3) VectorShuffle 1072 1072 0 1 2
-            1074:992(i64vec3) GroupNonUniformUMax 43 ClusteredReduce 1073 42
-            1075:    983(ptr) AccessChain 34(data) 1070 975
-            1076: 28(i64vec4) Load 1075
-            1077: 28(i64vec4) VectorShuffle 1076 1074 4 5 6 3
-                              Store 1075 1077
-            1078:      6(int) Load 8(invocation)
-            1079:    983(ptr) AccessChain 34(data) 68 975
-            1080: 28(i64vec4) Load 1079
-            1081: 28(i64vec4) GroupNonUniformUMax 43 ClusteredReduce 1080 42
-            1082:    983(ptr) AccessChain 34(data) 1078 975
-                              Store 1082 1081
-            1083:      6(int) Load 8(invocation)
-            1084:    976(ptr) AccessChain 34(data) 37 975 38
-            1085: 27(int64_t) Load 1084
-            1086: 27(int64_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1085 42
-            1087:    976(ptr) AccessChain 34(data) 1083 975 38
-                              Store 1087 1086
-            1088:      6(int) Load 8(invocation)
-            1089:    983(ptr) AccessChain 34(data) 47 975
-            1090: 28(i64vec4) Load 1089
-            1091:982(i64vec2) VectorShuffle 1090 1090 0 1
-            1092:982(i64vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1091 42
-            1093:    983(ptr) AccessChain 34(data) 1088 975
-            1094: 28(i64vec4) Load 1093
-            1095: 28(i64vec4) VectorShuffle 1094 1092 4 5 2 3
-                              Store 1093 1095
-            1096:      6(int) Load 8(invocation)
-            1097:    983(ptr) AccessChain 34(data) 58 975
-            1098: 28(i64vec4) Load 1097
-            1099:992(i64vec3) VectorShuffle 1098 1098 0 1 2
-            1100:992(i64vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1099 42
-            1101:    983(ptr) AccessChain 34(data) 1096 975
-            1102: 28(i64vec4) Load 1101
-            1103: 28(i64vec4) VectorShuffle 1102 1100 4 5 6 3
-                              Store 1101 1103
-            1104:      6(int) Load 8(invocation)
-            1105:    983(ptr) AccessChain 34(data) 68 975
-            1106: 28(i64vec4) Load 1105
-            1107: 28(i64vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1106 42
-            1108:    983(ptr) AccessChain 34(data) 1104 975
-                              Store 1108 1107
-            1109:      6(int) Load 8(invocation)
-            1110:    976(ptr) AccessChain 34(data) 37 975 38
-            1111: 27(int64_t) Load 1110
-            1112: 27(int64_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 1111 42
-            1113:    976(ptr) AccessChain 34(data) 1109 975 38
-                              Store 1113 1112
-            1114:      6(int) Load 8(invocation)
-            1115:    983(ptr) AccessChain 34(data) 47 975
-            1116: 28(i64vec4) Load 1115
-            1117:982(i64vec2) VectorShuffle 1116 1116 0 1
-            1118:982(i64vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 1117 42
-            1119:    983(ptr) AccessChain 34(data) 1114 975
-            1120: 28(i64vec4) Load 1119
-            1121: 28(i64vec4) VectorShuffle 1120 1118 4 5 2 3
-                              Store 1119 1121
+            1001:    909(ptr) AccessChain 34(data) 47 901
+            1002: 26(i64vec4) Load 1001
+            1003:908(i64vec2) VectorShuffle 1002 1002 0 1
+            1004:908(i64vec2) GroupNonUniformSMax 43 ClusteredReduce 1003 42
+            1005:    902(ptr) AccessChain 34(data) 1000 901 38
+            1006: 25(int64_t) CompositeExtract 1004 0
+                              Store 1005 1006
+            1007:    902(ptr) AccessChain 34(data) 1000 901 42
+            1008: 25(int64_t) CompositeExtract 1004 1
+                              Store 1007 1008
+            1009:      6(int) Load 8(invocation)
+            1010:    909(ptr) AccessChain 34(data) 59 901
+            1011: 26(i64vec4) Load 1010
+            1012:919(i64vec3) VectorShuffle 1011 1011 0 1 2
+            1013:919(i64vec3) GroupNonUniformSMax 43 ClusteredReduce 1012 42
+            1014:    902(ptr) AccessChain 34(data) 1009 901 38
+            1015: 25(int64_t) CompositeExtract 1013 0
+                              Store 1014 1015
+            1016:    902(ptr) AccessChain 34(data) 1009 901 42
+            1017: 25(int64_t) CompositeExtract 1013 1
+                              Store 1016 1017
+            1018:    902(ptr) AccessChain 34(data) 1009 901 69
+            1019: 25(int64_t) CompositeExtract 1013 2
+                              Store 1018 1019
+            1020:      6(int) Load 8(invocation)
+            1021:    909(ptr) AccessChain 34(data) 73 901
+            1022: 26(i64vec4) Load 1021
+            1023: 26(i64vec4) GroupNonUniformSMax 43 ClusteredReduce 1022 42
+            1024:    909(ptr) AccessChain 34(data) 1020 901
+                              Store 1024 1023
+            1025:      6(int) Load 8(invocation)
+            1026:    902(ptr) AccessChain 34(data) 37 901 38
+            1027: 25(int64_t) Load 1026
+            1028: 25(int64_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1027 42
+            1029:    902(ptr) AccessChain 34(data) 1025 901 38
+                              Store 1029 1028
+            1030:      6(int) Load 8(invocation)
+            1031:    909(ptr) AccessChain 34(data) 47 901
+            1032: 26(i64vec4) Load 1031
+            1033:908(i64vec2) VectorShuffle 1032 1032 0 1
+            1034:908(i64vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1033 42
+            1035:    902(ptr) AccessChain 34(data) 1030 901 38
+            1036: 25(int64_t) CompositeExtract 1034 0
+                              Store 1035 1036
+            1037:    902(ptr) AccessChain 34(data) 1030 901 42
+            1038: 25(int64_t) CompositeExtract 1034 1
+                              Store 1037 1038
+            1039:      6(int) Load 8(invocation)
+            1040:    909(ptr) AccessChain 34(data) 59 901
+            1041: 26(i64vec4) Load 1040
+            1042:919(i64vec3) VectorShuffle 1041 1041 0 1 2
+            1043:919(i64vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1042 42
+            1044:    902(ptr) AccessChain 34(data) 1039 901 38
+            1045: 25(int64_t) CompositeExtract 1043 0
+                              Store 1044 1045
+            1046:    902(ptr) AccessChain 34(data) 1039 901 42
+            1047: 25(int64_t) CompositeExtract 1043 1
+                              Store 1046 1047
+            1048:    902(ptr) AccessChain 34(data) 1039 901 69
+            1049: 25(int64_t) CompositeExtract 1043 2
+                              Store 1048 1049
+            1050:      6(int) Load 8(invocation)
+            1051:    909(ptr) AccessChain 34(data) 73 901
+            1052: 26(i64vec4) Load 1051
+            1053: 26(i64vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1052 42
+            1054:    909(ptr) AccessChain 34(data) 1050 901
+                              Store 1054 1053
+            1055:      6(int) Load 8(invocation)
+            1056:    902(ptr) AccessChain 34(data) 37 901 38
+            1057: 25(int64_t) Load 1056
+            1058: 25(int64_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 1057 42
+            1059:    902(ptr) AccessChain 34(data) 1055 901 38
+                              Store 1059 1058
+            1060:      6(int) Load 8(invocation)
+            1061:    909(ptr) AccessChain 34(data) 47 901
+            1062: 26(i64vec4) Load 1061
+            1063:908(i64vec2) VectorShuffle 1062 1062 0 1
+            1064:908(i64vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 1063 42
+            1065:    902(ptr) AccessChain 34(data) 1060 901 38
+            1066: 25(int64_t) CompositeExtract 1064 0
+                              Store 1065 1066
+            1067:    902(ptr) AccessChain 34(data) 1060 901 42
+            1068: 25(int64_t) CompositeExtract 1064 1
+                              Store 1067 1068
+            1069:      6(int) Load 8(invocation)
+            1070:    909(ptr) AccessChain 34(data) 59 901
+            1071: 26(i64vec4) Load 1070
+            1072:919(i64vec3) VectorShuffle 1071 1071 0 1 2
+            1073:919(i64vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 1072 42
+            1074:    902(ptr) AccessChain 34(data) 1069 901 38
+            1075: 25(int64_t) CompositeExtract 1073 0
+                              Store 1074 1075
+            1076:    902(ptr) AccessChain 34(data) 1069 901 42
+            1077: 25(int64_t) CompositeExtract 1073 1
+                              Store 1076 1077
+            1078:    902(ptr) AccessChain 34(data) 1069 901 69
+            1079: 25(int64_t) CompositeExtract 1073 2
+                              Store 1078 1079
+            1080:      6(int) Load 8(invocation)
+            1081:    909(ptr) AccessChain 34(data) 73 901
+            1082: 26(i64vec4) Load 1081
+            1083: 26(i64vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 1082 42
+            1084:    909(ptr) AccessChain 34(data) 1080 901
+                              Store 1084 1083
+            1085:      6(int) Load 8(invocation)
+            1086:    902(ptr) AccessChain 34(data) 37 901 38
+            1087: 25(int64_t) Load 1086
+            1088: 25(int64_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 1087 42
+            1089:    902(ptr) AccessChain 34(data) 1085 901 38
+                              Store 1089 1088
+            1090:      6(int) Load 8(invocation)
+            1091:    909(ptr) AccessChain 34(data) 47 901
+            1092: 26(i64vec4) Load 1091
+            1093:908(i64vec2) VectorShuffle 1092 1092 0 1
+            1094:908(i64vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 1093 42
+            1095:    902(ptr) AccessChain 34(data) 1090 901 38
+            1096: 25(int64_t) CompositeExtract 1094 0
+                              Store 1095 1096
+            1097:    902(ptr) AccessChain 34(data) 1090 901 42
+            1098: 25(int64_t) CompositeExtract 1094 1
+                              Store 1097 1098
+            1099:      6(int) Load 8(invocation)
+            1100:    909(ptr) AccessChain 34(data) 59 901
+            1101: 26(i64vec4) Load 1100
+            1102:919(i64vec3) VectorShuffle 1101 1101 0 1 2
+            1103:919(i64vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 1102 42
+            1104:    902(ptr) AccessChain 34(data) 1099 901 38
+            1105: 25(int64_t) CompositeExtract 1103 0
+                              Store 1104 1105
+            1106:    902(ptr) AccessChain 34(data) 1099 901 42
+            1107: 25(int64_t) CompositeExtract 1103 1
+                              Store 1106 1107
+            1108:    902(ptr) AccessChain 34(data) 1099 901 69
+            1109: 25(int64_t) CompositeExtract 1103 2
+                              Store 1108 1109
+            1110:      6(int) Load 8(invocation)
+            1111:    909(ptr) AccessChain 34(data) 73 901
+            1112: 26(i64vec4) Load 1111
+            1113: 26(i64vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 1112 42
+            1114:    909(ptr) AccessChain 34(data) 1110 901
+                              Store 1114 1113
+            1115:      6(int) Load 8(invocation)
+            1118:   1117(ptr) AccessChain 34(data) 37 1116 38
+            1119: 27(int64_t) Load 1118
+            1120: 27(int64_t) GroupNonUniformIAdd 43 ClusteredReduce 1119 42
+            1121:   1117(ptr) AccessChain 34(data) 1115 1116 38
+                              Store 1121 1120
             1122:      6(int) Load 8(invocation)
-            1123:    983(ptr) AccessChain 34(data) 58 975
-            1124: 28(i64vec4) Load 1123
-            1125:992(i64vec3) VectorShuffle 1124 1124 0 1 2
-            1126:992(i64vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 1125 42
-            1127:    983(ptr) AccessChain 34(data) 1122 975
-            1128: 28(i64vec4) Load 1127
-            1129: 28(i64vec4) VectorShuffle 1128 1126 4 5 6 3
-                              Store 1127 1129
-            1130:      6(int) Load 8(invocation)
-            1131:    983(ptr) AccessChain 34(data) 68 975
-            1132: 28(i64vec4) Load 1131
-            1133: 28(i64vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 1132 42
-            1134:    983(ptr) AccessChain 34(data) 1130 975
-                              Store 1134 1133
-            1135:      6(int) Load 8(invocation)
-            1136:    976(ptr) AccessChain 34(data) 37 975 38
-            1137: 27(int64_t) Load 1136
-            1138: 27(int64_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 1137 42
-            1139:    976(ptr) AccessChain 34(data) 1135 975 38
-                              Store 1139 1138
-            1140:      6(int) Load 8(invocation)
-            1141:    983(ptr) AccessChain 34(data) 47 975
-            1142: 28(i64vec4) Load 1141
-            1143:982(i64vec2) VectorShuffle 1142 1142 0 1
-            1144:982(i64vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 1143 42
-            1145:    983(ptr) AccessChain 34(data) 1140 975
-            1146: 28(i64vec4) Load 1145
-            1147: 28(i64vec4) VectorShuffle 1146 1144 4 5 2 3
-                              Store 1145 1147
-            1148:      6(int) Load 8(invocation)
-            1149:    983(ptr) AccessChain 34(data) 58 975
-            1150: 28(i64vec4) Load 1149
-            1151:992(i64vec3) VectorShuffle 1150 1150 0 1 2
-            1152:992(i64vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 1151 42
-            1153:    983(ptr) AccessChain 34(data) 1148 975
-            1154: 28(i64vec4) Load 1153
-            1155: 28(i64vec4) VectorShuffle 1154 1152 4 5 6 3
-                              Store 1153 1155
-            1156:      6(int) Load 8(invocation)
-            1157:    983(ptr) AccessChain 34(data) 68 975
-            1158: 28(i64vec4) Load 1157
-            1159: 28(i64vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 1158 42
-            1160:    983(ptr) AccessChain 34(data) 1156 975
-                              Store 1160 1159
-            1161:      6(int) Load 8(invocation)
-            1164:   1163(ptr) AccessChain 34(data) 37 1162 38
-            1165:29(float16_t) Load 1164
-            1166:29(float16_t) GroupNonUniformFAdd 43 ClusteredReduce 1165 42
-            1167:   1163(ptr) AccessChain 34(data) 1161 1162 38
-                              Store 1167 1166
-            1168:      6(int) Load 8(invocation)
-            1171:   1170(ptr) AccessChain 34(data) 47 1162
-            1172: 30(f16vec4) Load 1171
-            1173:1169(f16vec2) VectorShuffle 1172 1172 0 1
-            1174:1169(f16vec2) GroupNonUniformFAdd 43 ClusteredReduce 1173 42
-            1175:   1170(ptr) AccessChain 34(data) 1168 1162
-            1176: 30(f16vec4) Load 1175
-            1177: 30(f16vec4) VectorShuffle 1176 1174 4 5 2 3
-                              Store 1175 1177
-            1178:      6(int) Load 8(invocation)
-            1180:   1170(ptr) AccessChain 34(data) 58 1162
-            1181: 30(f16vec4) Load 1180
-            1182:1179(f16vec3) VectorShuffle 1181 1181 0 1 2
-            1183:1179(f16vec3) GroupNonUniformFAdd 43 ClusteredReduce 1182 42
-            1184:   1170(ptr) AccessChain 34(data) 1178 1162
-            1185: 30(f16vec4) Load 1184
-            1186: 30(f16vec4) VectorShuffle 1185 1183 4 5 6 3
-                              Store 1184 1186
-            1187:      6(int) Load 8(invocation)
-            1188:   1170(ptr) AccessChain 34(data) 68 1162
-            1189: 30(f16vec4) Load 1188
-            1190: 30(f16vec4) GroupNonUniformFAdd 43 ClusteredReduce 1189 42
-            1191:   1170(ptr) AccessChain 34(data) 1187 1162
-                              Store 1191 1190
-            1192:      6(int) Load 8(invocation)
-            1193:   1163(ptr) AccessChain 34(data) 37 1162 38
-            1194:29(float16_t) Load 1193
-            1195:29(float16_t) GroupNonUniformFMul 43 ClusteredReduce 1194 42
-            1196:   1163(ptr) AccessChain 34(data) 1192 1162 38
-                              Store 1196 1195
-            1197:      6(int) Load 8(invocation)
-            1198:   1170(ptr) AccessChain 34(data) 47 1162
-            1199: 30(f16vec4) Load 1198
-            1200:1169(f16vec2) VectorShuffle 1199 1199 0 1
-            1201:1169(f16vec2) GroupNonUniformFMul 43 ClusteredReduce 1200 42
-            1202:   1170(ptr) AccessChain 34(data) 1197 1162
-            1203: 30(f16vec4) Load 1202
-            1204: 30(f16vec4) VectorShuffle 1203 1201 4 5 2 3
-                              Store 1202 1204
+            1125:   1124(ptr) AccessChain 34(data) 47 1116
+            1126: 28(i64vec4) Load 1125
+            1127:1123(i64vec2) VectorShuffle 1126 1126 0 1
+            1128:1123(i64vec2) GroupNonUniformIAdd 43 ClusteredReduce 1127 42
+            1129:   1117(ptr) AccessChain 34(data) 1122 1116 38
+            1130: 27(int64_t) CompositeExtract 1128 0
+                              Store 1129 1130
+            1131:   1117(ptr) AccessChain 34(data) 1122 1116 42
+            1132: 27(int64_t) CompositeExtract 1128 1
+                              Store 1131 1132
+            1133:      6(int) Load 8(invocation)
+            1135:   1124(ptr) AccessChain 34(data) 59 1116
+            1136: 28(i64vec4) Load 1135
+            1137:1134(i64vec3) VectorShuffle 1136 1136 0 1 2
+            1138:1134(i64vec3) GroupNonUniformIAdd 43 ClusteredReduce 1137 42
+            1139:   1117(ptr) AccessChain 34(data) 1133 1116 38
+            1140: 27(int64_t) CompositeExtract 1138 0
+                              Store 1139 1140
+            1141:   1117(ptr) AccessChain 34(data) 1133 1116 42
+            1142: 27(int64_t) CompositeExtract 1138 1
+                              Store 1141 1142
+            1143:   1117(ptr) AccessChain 34(data) 1133 1116 69
+            1144: 27(int64_t) CompositeExtract 1138 2
+                              Store 1143 1144
+            1145:      6(int) Load 8(invocation)
+            1146:   1124(ptr) AccessChain 34(data) 73 1116
+            1147: 28(i64vec4) Load 1146
+            1148: 28(i64vec4) GroupNonUniformIAdd 43 ClusteredReduce 1147 42
+            1149:   1124(ptr) AccessChain 34(data) 1145 1116
+                              Store 1149 1148
+            1150:      6(int) Load 8(invocation)
+            1151:   1117(ptr) AccessChain 34(data) 37 1116 38
+            1152: 27(int64_t) Load 1151
+            1153: 27(int64_t) GroupNonUniformIMul 43 ClusteredReduce 1152 42
+            1154:   1117(ptr) AccessChain 34(data) 1150 1116 38
+                              Store 1154 1153
+            1155:      6(int) Load 8(invocation)
+            1156:   1124(ptr) AccessChain 34(data) 47 1116
+            1157: 28(i64vec4) Load 1156
+            1158:1123(i64vec2) VectorShuffle 1157 1157 0 1
+            1159:1123(i64vec2) GroupNonUniformIMul 43 ClusteredReduce 1158 42
+            1160:   1117(ptr) AccessChain 34(data) 1155 1116 38
+            1161: 27(int64_t) CompositeExtract 1159 0
+                              Store 1160 1161
+            1162:   1117(ptr) AccessChain 34(data) 1155 1116 42
+            1163: 27(int64_t) CompositeExtract 1159 1
+                              Store 1162 1163
+            1164:      6(int) Load 8(invocation)
+            1165:   1124(ptr) AccessChain 34(data) 59 1116
+            1166: 28(i64vec4) Load 1165
+            1167:1134(i64vec3) VectorShuffle 1166 1166 0 1 2
+            1168:1134(i64vec3) GroupNonUniformIMul 43 ClusteredReduce 1167 42
+            1169:   1117(ptr) AccessChain 34(data) 1164 1116 38
+            1170: 27(int64_t) CompositeExtract 1168 0
+                              Store 1169 1170
+            1171:   1117(ptr) AccessChain 34(data) 1164 1116 42
+            1172: 27(int64_t) CompositeExtract 1168 1
+                              Store 1171 1172
+            1173:   1117(ptr) AccessChain 34(data) 1164 1116 69
+            1174: 27(int64_t) CompositeExtract 1168 2
+                              Store 1173 1174
+            1175:      6(int) Load 8(invocation)
+            1176:   1124(ptr) AccessChain 34(data) 73 1116
+            1177: 28(i64vec4) Load 1176
+            1178: 28(i64vec4) GroupNonUniformIMul 43 ClusteredReduce 1177 42
+            1179:   1124(ptr) AccessChain 34(data) 1175 1116
+                              Store 1179 1178
+            1180:      6(int) Load 8(invocation)
+            1181:   1117(ptr) AccessChain 34(data) 37 1116 38
+            1182: 27(int64_t) Load 1181
+            1183: 27(int64_t) GroupNonUniformUMin 43 ClusteredReduce 1182 42
+            1184:   1117(ptr) AccessChain 34(data) 1180 1116 38
+                              Store 1184 1183
+            1185:      6(int) Load 8(invocation)
+            1186:   1124(ptr) AccessChain 34(data) 47 1116
+            1187: 28(i64vec4) Load 1186
+            1188:1123(i64vec2) VectorShuffle 1187 1187 0 1
+            1189:1123(i64vec2) GroupNonUniformUMin 43 ClusteredReduce 1188 42
+            1190:   1117(ptr) AccessChain 34(data) 1185 1116 38
+            1191: 27(int64_t) CompositeExtract 1189 0
+                              Store 1190 1191
+            1192:   1117(ptr) AccessChain 34(data) 1185 1116 42
+            1193: 27(int64_t) CompositeExtract 1189 1
+                              Store 1192 1193
+            1194:      6(int) Load 8(invocation)
+            1195:   1124(ptr) AccessChain 34(data) 59 1116
+            1196: 28(i64vec4) Load 1195
+            1197:1134(i64vec3) VectorShuffle 1196 1196 0 1 2
+            1198:1134(i64vec3) GroupNonUniformUMin 43 ClusteredReduce 1197 42
+            1199:   1117(ptr) AccessChain 34(data) 1194 1116 38
+            1200: 27(int64_t) CompositeExtract 1198 0
+                              Store 1199 1200
+            1201:   1117(ptr) AccessChain 34(data) 1194 1116 42
+            1202: 27(int64_t) CompositeExtract 1198 1
+                              Store 1201 1202
+            1203:   1117(ptr) AccessChain 34(data) 1194 1116 69
+            1204: 27(int64_t) CompositeExtract 1198 2
+                              Store 1203 1204
             1205:      6(int) Load 8(invocation)
-            1206:   1170(ptr) AccessChain 34(data) 58 1162
-            1207: 30(f16vec4) Load 1206
-            1208:1179(f16vec3) VectorShuffle 1207 1207 0 1 2
-            1209:1179(f16vec3) GroupNonUniformFMul 43 ClusteredReduce 1208 42
-            1210:   1170(ptr) AccessChain 34(data) 1205 1162
-            1211: 30(f16vec4) Load 1210
-            1212: 30(f16vec4) VectorShuffle 1211 1209 4 5 6 3
-                              Store 1210 1212
-            1213:      6(int) Load 8(invocation)
-            1214:   1170(ptr) AccessChain 34(data) 68 1162
-            1215: 30(f16vec4) Load 1214
-            1216: 30(f16vec4) GroupNonUniformFMul 43 ClusteredReduce 1215 42
-            1217:   1170(ptr) AccessChain 34(data) 1213 1162
-                              Store 1217 1216
-            1218:      6(int) Load 8(invocation)
-            1219:   1163(ptr) AccessChain 34(data) 37 1162 38
-            1220:29(float16_t) Load 1219
-            1221:29(float16_t) GroupNonUniformFMin 43 ClusteredReduce 1220 42
-            1222:   1163(ptr) AccessChain 34(data) 1218 1162 38
-                              Store 1222 1221
-            1223:      6(int) Load 8(invocation)
-            1224:   1170(ptr) AccessChain 34(data) 47 1162
-            1225: 30(f16vec4) Load 1224
-            1226:1169(f16vec2) VectorShuffle 1225 1225 0 1
-            1227:1169(f16vec2) GroupNonUniformFMin 43 ClusteredReduce 1226 42
-            1228:   1170(ptr) AccessChain 34(data) 1223 1162
-            1229: 30(f16vec4) Load 1228
-            1230: 30(f16vec4) VectorShuffle 1229 1227 4 5 2 3
-                              Store 1228 1230
-            1231:      6(int) Load 8(invocation)
-            1232:   1170(ptr) AccessChain 34(data) 58 1162
-            1233: 30(f16vec4) Load 1232
-            1234:1179(f16vec3) VectorShuffle 1233 1233 0 1 2
-            1235:1179(f16vec3) GroupNonUniformFMin 43 ClusteredReduce 1234 42
-            1236:   1170(ptr) AccessChain 34(data) 1231 1162
-            1237: 30(f16vec4) Load 1236
-            1238: 30(f16vec4) VectorShuffle 1237 1235 4 5 6 3
-                              Store 1236 1238
-            1239:      6(int) Load 8(invocation)
-            1240:   1170(ptr) AccessChain 34(data) 68 1162
-            1241: 30(f16vec4) Load 1240
-            1242: 30(f16vec4) GroupNonUniformFMin 43 ClusteredReduce 1241 42
-            1243:   1170(ptr) AccessChain 34(data) 1239 1162
-                              Store 1243 1242
-            1244:      6(int) Load 8(invocation)
-            1245:   1163(ptr) AccessChain 34(data) 37 1162 38
-            1246:29(float16_t) Load 1245
-            1247:29(float16_t) GroupNonUniformFMax 43 ClusteredReduce 1246 42
-            1248:   1163(ptr) AccessChain 34(data) 1244 1162 38
-                              Store 1248 1247
-            1249:      6(int) Load 8(invocation)
-            1250:   1170(ptr) AccessChain 34(data) 47 1162
-            1251: 30(f16vec4) Load 1250
-            1252:1169(f16vec2) VectorShuffle 1251 1251 0 1
-            1253:1169(f16vec2) GroupNonUniformFMax 43 ClusteredReduce 1252 42
-            1254:   1170(ptr) AccessChain 34(data) 1249 1162
-            1255: 30(f16vec4) Load 1254
-            1256: 30(f16vec4) VectorShuffle 1255 1253 4 5 2 3
-                              Store 1254 1256
-            1257:      6(int) Load 8(invocation)
-            1258:   1170(ptr) AccessChain 34(data) 58 1162
-            1259: 30(f16vec4) Load 1258
-            1260:1179(f16vec3) VectorShuffle 1259 1259 0 1 2
-            1261:1179(f16vec3) GroupNonUniformFMax 43 ClusteredReduce 1260 42
-            1262:   1170(ptr) AccessChain 34(data) 1257 1162
-            1263: 30(f16vec4) Load 1262
-            1264: 30(f16vec4) VectorShuffle 1263 1261 4 5 6 3
-                              Store 1262 1264
+            1206:   1124(ptr) AccessChain 34(data) 73 1116
+            1207: 28(i64vec4) Load 1206
+            1208: 28(i64vec4) GroupNonUniformUMin 43 ClusteredReduce 1207 42
+            1209:   1124(ptr) AccessChain 34(data) 1205 1116
+                              Store 1209 1208
+            1210:      6(int) Load 8(invocation)
+            1211:   1117(ptr) AccessChain 34(data) 37 1116 38
+            1212: 27(int64_t) Load 1211
+            1213: 27(int64_t) GroupNonUniformUMax 43 ClusteredReduce 1212 42
+            1214:   1117(ptr) AccessChain 34(data) 1210 1116 38
+                              Store 1214 1213
+            1215:      6(int) Load 8(invocation)
+            1216:   1124(ptr) AccessChain 34(data) 47 1116
+            1217: 28(i64vec4) Load 1216
+            1218:1123(i64vec2) VectorShuffle 1217 1217 0 1
+            1219:1123(i64vec2) GroupNonUniformUMax 43 ClusteredReduce 1218 42
+            1220:   1117(ptr) AccessChain 34(data) 1215 1116 38
+            1221: 27(int64_t) CompositeExtract 1219 0
+                              Store 1220 1221
+            1222:   1117(ptr) AccessChain 34(data) 1215 1116 42
+            1223: 27(int64_t) CompositeExtract 1219 1
+                              Store 1222 1223
+            1224:      6(int) Load 8(invocation)
+            1225:   1124(ptr) AccessChain 34(data) 59 1116
+            1226: 28(i64vec4) Load 1225
+            1227:1134(i64vec3) VectorShuffle 1226 1226 0 1 2
+            1228:1134(i64vec3) GroupNonUniformUMax 43 ClusteredReduce 1227 42
+            1229:   1117(ptr) AccessChain 34(data) 1224 1116 38
+            1230: 27(int64_t) CompositeExtract 1228 0
+                              Store 1229 1230
+            1231:   1117(ptr) AccessChain 34(data) 1224 1116 42
+            1232: 27(int64_t) CompositeExtract 1228 1
+                              Store 1231 1232
+            1233:   1117(ptr) AccessChain 34(data) 1224 1116 69
+            1234: 27(int64_t) CompositeExtract 1228 2
+                              Store 1233 1234
+            1235:      6(int) Load 8(invocation)
+            1236:   1124(ptr) AccessChain 34(data) 73 1116
+            1237: 28(i64vec4) Load 1236
+            1238: 28(i64vec4) GroupNonUniformUMax 43 ClusteredReduce 1237 42
+            1239:   1124(ptr) AccessChain 34(data) 1235 1116
+                              Store 1239 1238
+            1240:      6(int) Load 8(invocation)
+            1241:   1117(ptr) AccessChain 34(data) 37 1116 38
+            1242: 27(int64_t) Load 1241
+            1243: 27(int64_t) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1242 42
+            1244:   1117(ptr) AccessChain 34(data) 1240 1116 38
+                              Store 1244 1243
+            1245:      6(int) Load 8(invocation)
+            1246:   1124(ptr) AccessChain 34(data) 47 1116
+            1247: 28(i64vec4) Load 1246
+            1248:1123(i64vec2) VectorShuffle 1247 1247 0 1
+            1249:1123(i64vec2) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1248 42
+            1250:   1117(ptr) AccessChain 34(data) 1245 1116 38
+            1251: 27(int64_t) CompositeExtract 1249 0
+                              Store 1250 1251
+            1252:   1117(ptr) AccessChain 34(data) 1245 1116 42
+            1253: 27(int64_t) CompositeExtract 1249 1
+                              Store 1252 1253
+            1254:      6(int) Load 8(invocation)
+            1255:   1124(ptr) AccessChain 34(data) 59 1116
+            1256: 28(i64vec4) Load 1255
+            1257:1134(i64vec3) VectorShuffle 1256 1256 0 1 2
+            1258:1134(i64vec3) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1257 42
+            1259:   1117(ptr) AccessChain 34(data) 1254 1116 38
+            1260: 27(int64_t) CompositeExtract 1258 0
+                              Store 1259 1260
+            1261:   1117(ptr) AccessChain 34(data) 1254 1116 42
+            1262: 27(int64_t) CompositeExtract 1258 1
+                              Store 1261 1262
+            1263:   1117(ptr) AccessChain 34(data) 1254 1116 69
+            1264: 27(int64_t) CompositeExtract 1258 2
+                              Store 1263 1264
             1265:      6(int) Load 8(invocation)
-            1266:   1170(ptr) AccessChain 34(data) 68 1162
-            1267: 30(f16vec4) Load 1266
-            1268: 30(f16vec4) GroupNonUniformFMax 43 ClusteredReduce 1267 42
-            1269:   1170(ptr) AccessChain 34(data) 1265 1162
+            1266:   1124(ptr) AccessChain 34(data) 73 1116
+            1267: 28(i64vec4) Load 1266
+            1268: 28(i64vec4) GroupNonUniformBitwiseAnd 43 ClusteredReduce 1267 42
+            1269:   1124(ptr) AccessChain 34(data) 1265 1116
                               Store 1269 1268
+            1270:      6(int) Load 8(invocation)
+            1271:   1117(ptr) AccessChain 34(data) 37 1116 38
+            1272: 27(int64_t) Load 1271
+            1273: 27(int64_t) GroupNonUniformBitwiseOr 43 ClusteredReduce 1272 42
+            1274:   1117(ptr) AccessChain 34(data) 1270 1116 38
+                              Store 1274 1273
+            1275:      6(int) Load 8(invocation)
+            1276:   1124(ptr) AccessChain 34(data) 47 1116
+            1277: 28(i64vec4) Load 1276
+            1278:1123(i64vec2) VectorShuffle 1277 1277 0 1
+            1279:1123(i64vec2) GroupNonUniformBitwiseOr 43 ClusteredReduce 1278 42
+            1280:   1117(ptr) AccessChain 34(data) 1275 1116 38
+            1281: 27(int64_t) CompositeExtract 1279 0
+                              Store 1280 1281
+            1282:   1117(ptr) AccessChain 34(data) 1275 1116 42
+            1283: 27(int64_t) CompositeExtract 1279 1
+                              Store 1282 1283
+            1284:      6(int) Load 8(invocation)
+            1285:   1124(ptr) AccessChain 34(data) 59 1116
+            1286: 28(i64vec4) Load 1285
+            1287:1134(i64vec3) VectorShuffle 1286 1286 0 1 2
+            1288:1134(i64vec3) GroupNonUniformBitwiseOr 43 ClusteredReduce 1287 42
+            1289:   1117(ptr) AccessChain 34(data) 1284 1116 38
+            1290: 27(int64_t) CompositeExtract 1288 0
+                              Store 1289 1290
+            1291:   1117(ptr) AccessChain 34(data) 1284 1116 42
+            1292: 27(int64_t) CompositeExtract 1288 1
+                              Store 1291 1292
+            1293:   1117(ptr) AccessChain 34(data) 1284 1116 69
+            1294: 27(int64_t) CompositeExtract 1288 2
+                              Store 1293 1294
+            1295:      6(int) Load 8(invocation)
+            1296:   1124(ptr) AccessChain 34(data) 73 1116
+            1297: 28(i64vec4) Load 1296
+            1298: 28(i64vec4) GroupNonUniformBitwiseOr 43 ClusteredReduce 1297 42
+            1299:   1124(ptr) AccessChain 34(data) 1295 1116
+                              Store 1299 1298
+            1300:      6(int) Load 8(invocation)
+            1301:   1117(ptr) AccessChain 34(data) 37 1116 38
+            1302: 27(int64_t) Load 1301
+            1303: 27(int64_t) GroupNonUniformBitwiseXor 43 ClusteredReduce 1302 42
+            1304:   1117(ptr) AccessChain 34(data) 1300 1116 38
+                              Store 1304 1303
+            1305:      6(int) Load 8(invocation)
+            1306:   1124(ptr) AccessChain 34(data) 47 1116
+            1307: 28(i64vec4) Load 1306
+            1308:1123(i64vec2) VectorShuffle 1307 1307 0 1
+            1309:1123(i64vec2) GroupNonUniformBitwiseXor 43 ClusteredReduce 1308 42
+            1310:   1117(ptr) AccessChain 34(data) 1305 1116 38
+            1311: 27(int64_t) CompositeExtract 1309 0
+                              Store 1310 1311
+            1312:   1117(ptr) AccessChain 34(data) 1305 1116 42
+            1313: 27(int64_t) CompositeExtract 1309 1
+                              Store 1312 1313
+            1314:      6(int) Load 8(invocation)
+            1315:   1124(ptr) AccessChain 34(data) 59 1116
+            1316: 28(i64vec4) Load 1315
+            1317:1134(i64vec3) VectorShuffle 1316 1316 0 1 2
+            1318:1134(i64vec3) GroupNonUniformBitwiseXor 43 ClusteredReduce 1317 42
+            1319:   1117(ptr) AccessChain 34(data) 1314 1116 38
+            1320: 27(int64_t) CompositeExtract 1318 0
+                              Store 1319 1320
+            1321:   1117(ptr) AccessChain 34(data) 1314 1116 42
+            1322: 27(int64_t) CompositeExtract 1318 1
+                              Store 1321 1322
+            1323:   1117(ptr) AccessChain 34(data) 1314 1116 69
+            1324: 27(int64_t) CompositeExtract 1318 2
+                              Store 1323 1324
+            1325:      6(int) Load 8(invocation)
+            1326:   1124(ptr) AccessChain 34(data) 73 1116
+            1327: 28(i64vec4) Load 1326
+            1328: 28(i64vec4) GroupNonUniformBitwiseXor 43 ClusteredReduce 1327 42
+            1329:   1124(ptr) AccessChain 34(data) 1325 1116
+                              Store 1329 1328
+            1330:      6(int) Load 8(invocation)
+            1333:   1332(ptr) AccessChain 34(data) 37 1331 38
+            1334:29(float16_t) Load 1333
+            1335:29(float16_t) GroupNonUniformFAdd 43 ClusteredReduce 1334 42
+            1336:   1332(ptr) AccessChain 34(data) 1330 1331 38
+                              Store 1336 1335
+            1337:      6(int) Load 8(invocation)
+            1340:   1339(ptr) AccessChain 34(data) 47 1331
+            1341: 30(f16vec4) Load 1340
+            1342:1338(f16vec2) VectorShuffle 1341 1341 0 1
+            1343:1338(f16vec2) GroupNonUniformFAdd 43 ClusteredReduce 1342 42
+            1344:   1332(ptr) AccessChain 34(data) 1337 1331 38
+            1345:29(float16_t) CompositeExtract 1343 0
+                              Store 1344 1345
+            1346:   1332(ptr) AccessChain 34(data) 1337 1331 42
+            1347:29(float16_t) CompositeExtract 1343 1
+                              Store 1346 1347
+            1348:      6(int) Load 8(invocation)
+            1350:   1339(ptr) AccessChain 34(data) 59 1331
+            1351: 30(f16vec4) Load 1350
+            1352:1349(f16vec3) VectorShuffle 1351 1351 0 1 2
+            1353:1349(f16vec3) GroupNonUniformFAdd 43 ClusteredReduce 1352 42
+            1354:   1332(ptr) AccessChain 34(data) 1348 1331 38
+            1355:29(float16_t) CompositeExtract 1353 0
+                              Store 1354 1355
+            1356:   1332(ptr) AccessChain 34(data) 1348 1331 42
+            1357:29(float16_t) CompositeExtract 1353 1
+                              Store 1356 1357
+            1358:   1332(ptr) AccessChain 34(data) 1348 1331 69
+            1359:29(float16_t) CompositeExtract 1353 2
+                              Store 1358 1359
+            1360:      6(int) Load 8(invocation)
+            1361:   1339(ptr) AccessChain 34(data) 73 1331
+            1362: 30(f16vec4) Load 1361
+            1363: 30(f16vec4) GroupNonUniformFAdd 43 ClusteredReduce 1362 42
+            1364:   1339(ptr) AccessChain 34(data) 1360 1331
+                              Store 1364 1363
+            1365:      6(int) Load 8(invocation)
+            1366:   1332(ptr) AccessChain 34(data) 37 1331 38
+            1367:29(float16_t) Load 1366
+            1368:29(float16_t) GroupNonUniformFMul 43 ClusteredReduce 1367 42
+            1369:   1332(ptr) AccessChain 34(data) 1365 1331 38
+                              Store 1369 1368
+            1370:      6(int) Load 8(invocation)
+            1371:   1339(ptr) AccessChain 34(data) 47 1331
+            1372: 30(f16vec4) Load 1371
+            1373:1338(f16vec2) VectorShuffle 1372 1372 0 1
+            1374:1338(f16vec2) GroupNonUniformFMul 43 ClusteredReduce 1373 42
+            1375:   1332(ptr) AccessChain 34(data) 1370 1331 38
+            1376:29(float16_t) CompositeExtract 1374 0
+                              Store 1375 1376
+            1377:   1332(ptr) AccessChain 34(data) 1370 1331 42
+            1378:29(float16_t) CompositeExtract 1374 1
+                              Store 1377 1378
+            1379:      6(int) Load 8(invocation)
+            1380:   1339(ptr) AccessChain 34(data) 59 1331
+            1381: 30(f16vec4) Load 1380
+            1382:1349(f16vec3) VectorShuffle 1381 1381 0 1 2
+            1383:1349(f16vec3) GroupNonUniformFMul 43 ClusteredReduce 1382 42
+            1384:   1332(ptr) AccessChain 34(data) 1379 1331 38
+            1385:29(float16_t) CompositeExtract 1383 0
+                              Store 1384 1385
+            1386:   1332(ptr) AccessChain 34(data) 1379 1331 42
+            1387:29(float16_t) CompositeExtract 1383 1
+                              Store 1386 1387
+            1388:   1332(ptr) AccessChain 34(data) 1379 1331 69
+            1389:29(float16_t) CompositeExtract 1383 2
+                              Store 1388 1389
+            1390:      6(int) Load 8(invocation)
+            1391:   1339(ptr) AccessChain 34(data) 73 1331
+            1392: 30(f16vec4) Load 1391
+            1393: 30(f16vec4) GroupNonUniformFMul 43 ClusteredReduce 1392 42
+            1394:   1339(ptr) AccessChain 34(data) 1390 1331
+                              Store 1394 1393
+            1395:      6(int) Load 8(invocation)
+            1396:   1332(ptr) AccessChain 34(data) 37 1331 38
+            1397:29(float16_t) Load 1396
+            1398:29(float16_t) GroupNonUniformFMin 43 ClusteredReduce 1397 42
+            1399:   1332(ptr) AccessChain 34(data) 1395 1331 38
+                              Store 1399 1398
+            1400:      6(int) Load 8(invocation)
+            1401:   1339(ptr) AccessChain 34(data) 47 1331
+            1402: 30(f16vec4) Load 1401
+            1403:1338(f16vec2) VectorShuffle 1402 1402 0 1
+            1404:1338(f16vec2) GroupNonUniformFMin 43 ClusteredReduce 1403 42
+            1405:   1332(ptr) AccessChain 34(data) 1400 1331 38
+            1406:29(float16_t) CompositeExtract 1404 0
+                              Store 1405 1406
+            1407:   1332(ptr) AccessChain 34(data) 1400 1331 42
+            1408:29(float16_t) CompositeExtract 1404 1
+                              Store 1407 1408
+            1409:      6(int) Load 8(invocation)
+            1410:   1339(ptr) AccessChain 34(data) 59 1331
+            1411: 30(f16vec4) Load 1410
+            1412:1349(f16vec3) VectorShuffle 1411 1411 0 1 2
+            1413:1349(f16vec3) GroupNonUniformFMin 43 ClusteredReduce 1412 42
+            1414:   1332(ptr) AccessChain 34(data) 1409 1331 38
+            1415:29(float16_t) CompositeExtract 1413 0
+                              Store 1414 1415
+            1416:   1332(ptr) AccessChain 34(data) 1409 1331 42
+            1417:29(float16_t) CompositeExtract 1413 1
+                              Store 1416 1417
+            1418:   1332(ptr) AccessChain 34(data) 1409 1331 69
+            1419:29(float16_t) CompositeExtract 1413 2
+                              Store 1418 1419
+            1420:      6(int) Load 8(invocation)
+            1421:   1339(ptr) AccessChain 34(data) 73 1331
+            1422: 30(f16vec4) Load 1421
+            1423: 30(f16vec4) GroupNonUniformFMin 43 ClusteredReduce 1422 42
+            1424:   1339(ptr) AccessChain 34(data) 1420 1331
+                              Store 1424 1423
+            1425:      6(int) Load 8(invocation)
+            1426:   1332(ptr) AccessChain 34(data) 37 1331 38
+            1427:29(float16_t) Load 1426
+            1428:29(float16_t) GroupNonUniformFMax 43 ClusteredReduce 1427 42
+            1429:   1332(ptr) AccessChain 34(data) 1425 1331 38
+                              Store 1429 1428
+            1430:      6(int) Load 8(invocation)
+            1431:   1339(ptr) AccessChain 34(data) 47 1331
+            1432: 30(f16vec4) Load 1431
+            1433:1338(f16vec2) VectorShuffle 1432 1432 0 1
+            1434:1338(f16vec2) GroupNonUniformFMax 43 ClusteredReduce 1433 42
+            1435:   1332(ptr) AccessChain 34(data) 1430 1331 38
+            1436:29(float16_t) CompositeExtract 1434 0
+                              Store 1435 1436
+            1437:   1332(ptr) AccessChain 34(data) 1430 1331 42
+            1438:29(float16_t) CompositeExtract 1434 1
+                              Store 1437 1438
+            1439:      6(int) Load 8(invocation)
+            1440:   1339(ptr) AccessChain 34(data) 59 1331
+            1441: 30(f16vec4) Load 1440
+            1442:1349(f16vec3) VectorShuffle 1441 1441 0 1 2
+            1443:1349(f16vec3) GroupNonUniformFMax 43 ClusteredReduce 1442 42
+            1444:   1332(ptr) AccessChain 34(data) 1439 1331 38
+            1445:29(float16_t) CompositeExtract 1443 0
+                              Store 1444 1445
+            1446:   1332(ptr) AccessChain 34(data) 1439 1331 42
+            1447:29(float16_t) CompositeExtract 1443 1
+                              Store 1446 1447
+            1448:   1332(ptr) AccessChain 34(data) 1439 1331 69
+            1449:29(float16_t) CompositeExtract 1443 2
+                              Store 1448 1449
+            1450:      6(int) Load 8(invocation)
+            1451:   1339(ptr) AccessChain 34(data) 73 1331
+            1452: 30(f16vec4) Load 1451
+            1453: 30(f16vec4) GroupNonUniformFMax 43 ClusteredReduce 1452 42
+            1454:   1339(ptr) AccessChain 34(data) 1450 1331
+                              Store 1454 1453
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out b/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out
index ccfbacc..47576d9 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesPartitioned.comp.out
@@ -1,7 +1,7 @@
 spv.subgroupExtendedTypesPartitioned.comp
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 1558
+// Id's are bound by 1743
 
                               Capability Shader
                               Capability Float16
@@ -61,7 +61,7 @@
                               Decorate 34(Buffers) Block
                               Decorate 37(data) DescriptorSet 0
                               Decorate 37(data) Binding 0
-                              Decorate 1557 BuiltIn WorkgroupSize
+                              Decorate 1742 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -128,10 +128,11 @@
              160:             TypePointer StorageBuffer 33(f16vec4)
              165:             TypeVector 32(float16_t) 3
              177:      6(int) Constant 3
-            1554:             TypeVector 6(int) 3
-            1555:      6(int) Constant 8
-            1556:      6(int) Constant 1
-            1557: 1554(ivec3) ConstantComposite 1555 1556 1556
+             188:      6(int) Constant 1
+             201:      6(int) Constant 2
+            1740:             TypeVector 6(int) 3
+            1741:      6(int) Constant 8
+            1742: 1740(ivec3) ConstantComposite 1741 188 188
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -280,270 +281,285 @@
              183:  46(i8vec2) VectorShuffle 182 182 0 1
              184:   17(ivec4) Load 19(ballot)
              185:  46(i8vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 183 184
-             186:     47(ptr) AccessChain 37(data) 180 39
-             187:  21(i8vec4) Load 186
-             188:  21(i8vec4) VectorShuffle 187 185 4 5 2 3
-                              Store 186 188
-             189:      6(int) Load 8(invocation)
-             190:     47(ptr) AccessChain 37(data) 52 39
-             191:  21(i8vec4) Load 190
-             192:  53(i8vec3) VectorShuffle 191 191 0 1 2
-             193:   17(ivec4) Load 19(ballot)
-             194:  53(i8vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 192 193
-             195:     47(ptr) AccessChain 37(data) 189 39
-             196:  21(i8vec4) Load 195
-             197:  21(i8vec4) VectorShuffle 196 194 4 5 6 3
-                              Store 195 197
-             198:      6(int) Load 8(invocation)
-             199:     47(ptr) AccessChain 37(data) 58 39
-             200:  21(i8vec4) Load 199
-             201:   17(ivec4) Load 19(ballot)
-             202:  21(i8vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 200 201
-             203:     47(ptr) AccessChain 37(data) 198 39
-                              Store 203 202
+             186:     41(ptr) AccessChain 37(data) 180 39 40
+             187:  20(int8_t) CompositeExtract 185 0
+                              Store 186 187
+             189:     41(ptr) AccessChain 37(data) 180 39 188
+             190:  20(int8_t) CompositeExtract 185 1
+                              Store 189 190
+             191:      6(int) Load 8(invocation)
+             192:     47(ptr) AccessChain 37(data) 52 39
+             193:  21(i8vec4) Load 192
+             194:  53(i8vec3) VectorShuffle 193 193 0 1 2
+             195:   17(ivec4) Load 19(ballot)
+             196:  53(i8vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 194 195
+             197:     41(ptr) AccessChain 37(data) 191 39 40
+             198:  20(int8_t) CompositeExtract 196 0
+                              Store 197 198
+             199:     41(ptr) AccessChain 37(data) 191 39 188
+             200:  20(int8_t) CompositeExtract 196 1
+                              Store 199 200
+             202:     41(ptr) AccessChain 37(data) 191 39 201
+             203:  20(int8_t) CompositeExtract 196 2
+                              Store 202 203
              204:      6(int) Load 8(invocation)
-             205:     41(ptr) AccessChain 37(data) 39 39 40
-             206:  20(int8_t) Load 205
+             205:     47(ptr) AccessChain 37(data) 58 39
+             206:  21(i8vec4) Load 205
              207:   17(ivec4) Load 19(ballot)
-             208:  20(int8_t) GroupNonUniformIMul 177 PartitionedReduceNV 206 207
-             209:     41(ptr) AccessChain 37(data) 204 39 40
+             208:  21(i8vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 206 207
+             209:     47(ptr) AccessChain 37(data) 204 39
                               Store 209 208
              210:      6(int) Load 8(invocation)
-             211:     47(ptr) AccessChain 37(data) 45 39
-             212:  21(i8vec4) Load 211
-             213:  46(i8vec2) VectorShuffle 212 212 0 1
-             214:   17(ivec4) Load 19(ballot)
-             215:  46(i8vec2) GroupNonUniformIMul 177 PartitionedReduceNV 213 214
-             216:     47(ptr) AccessChain 37(data) 210 39
-             217:  21(i8vec4) Load 216
-             218:  21(i8vec4) VectorShuffle 217 215 4 5 2 3
-                              Store 216 218
-             219:      6(int) Load 8(invocation)
-             220:     47(ptr) AccessChain 37(data) 52 39
-             221:  21(i8vec4) Load 220
-             222:  53(i8vec3) VectorShuffle 221 221 0 1 2
-             223:   17(ivec4) Load 19(ballot)
-             224:  53(i8vec3) GroupNonUniformIMul 177 PartitionedReduceNV 222 223
-             225:     47(ptr) AccessChain 37(data) 219 39
-             226:  21(i8vec4) Load 225
-             227:  21(i8vec4) VectorShuffle 226 224 4 5 6 3
-                              Store 225 227
-             228:      6(int) Load 8(invocation)
-             229:     47(ptr) AccessChain 37(data) 58 39
-             230:  21(i8vec4) Load 229
-             231:   17(ivec4) Load 19(ballot)
-             232:  21(i8vec4) GroupNonUniformIMul 177 PartitionedReduceNV 230 231
-             233:     47(ptr) AccessChain 37(data) 228 39
-                              Store 233 232
-             234:      6(int) Load 8(invocation)
-             235:     41(ptr) AccessChain 37(data) 39 39 40
-             236:  20(int8_t) Load 235
-             237:   17(ivec4) Load 19(ballot)
-             238:  20(int8_t) GroupNonUniformSMin 177 PartitionedReduceNV 236 237
-             239:     41(ptr) AccessChain 37(data) 234 39 40
-                              Store 239 238
-             240:      6(int) Load 8(invocation)
-             241:     47(ptr) AccessChain 37(data) 45 39
-             242:  21(i8vec4) Load 241
-             243:  46(i8vec2) VectorShuffle 242 242 0 1
-             244:   17(ivec4) Load 19(ballot)
-             245:  46(i8vec2) GroupNonUniformSMin 177 PartitionedReduceNV 243 244
-             246:     47(ptr) AccessChain 37(data) 240 39
-             247:  21(i8vec4) Load 246
-             248:  21(i8vec4) VectorShuffle 247 245 4 5 2 3
-                              Store 246 248
-             249:      6(int) Load 8(invocation)
-             250:     47(ptr) AccessChain 37(data) 52 39
-             251:  21(i8vec4) Load 250
-             252:  53(i8vec3) VectorShuffle 251 251 0 1 2
-             253:   17(ivec4) Load 19(ballot)
-             254:  53(i8vec3) GroupNonUniformSMin 177 PartitionedReduceNV 252 253
-             255:     47(ptr) AccessChain 37(data) 249 39
-             256:  21(i8vec4) Load 255
-             257:  21(i8vec4) VectorShuffle 256 254 4 5 6 3
-                              Store 255 257
-             258:      6(int) Load 8(invocation)
-             259:     47(ptr) AccessChain 37(data) 58 39
-             260:  21(i8vec4) Load 259
-             261:   17(ivec4) Load 19(ballot)
-             262:  21(i8vec4) GroupNonUniformSMin 177 PartitionedReduceNV 260 261
-             263:     47(ptr) AccessChain 37(data) 258 39
-                              Store 263 262
-             264:      6(int) Load 8(invocation)
-             265:     41(ptr) AccessChain 37(data) 39 39 40
-             266:  20(int8_t) Load 265
-             267:   17(ivec4) Load 19(ballot)
-             268:  20(int8_t) GroupNonUniformSMax 177 PartitionedReduceNV 266 267
-             269:     41(ptr) AccessChain 37(data) 264 39 40
-                              Store 269 268
-             270:      6(int) Load 8(invocation)
-             271:     47(ptr) AccessChain 37(data) 45 39
-             272:  21(i8vec4) Load 271
-             273:  46(i8vec2) VectorShuffle 272 272 0 1
-             274:   17(ivec4) Load 19(ballot)
-             275:  46(i8vec2) GroupNonUniformSMax 177 PartitionedReduceNV 273 274
-             276:     47(ptr) AccessChain 37(data) 270 39
-             277:  21(i8vec4) Load 276
-             278:  21(i8vec4) VectorShuffle 277 275 4 5 2 3
-                              Store 276 278
-             279:      6(int) Load 8(invocation)
-             280:     47(ptr) AccessChain 37(data) 52 39
-             281:  21(i8vec4) Load 280
-             282:  53(i8vec3) VectorShuffle 281 281 0 1 2
-             283:   17(ivec4) Load 19(ballot)
-             284:  53(i8vec3) GroupNonUniformSMax 177 PartitionedReduceNV 282 283
-             285:     47(ptr) AccessChain 37(data) 279 39
+             211:     41(ptr) AccessChain 37(data) 39 39 40
+             212:  20(int8_t) Load 211
+             213:   17(ivec4) Load 19(ballot)
+             214:  20(int8_t) GroupNonUniformIMul 177 PartitionedReduceNV 212 213
+             215:     41(ptr) AccessChain 37(data) 210 39 40
+                              Store 215 214
+             216:      6(int) Load 8(invocation)
+             217:     47(ptr) AccessChain 37(data) 45 39
+             218:  21(i8vec4) Load 217
+             219:  46(i8vec2) VectorShuffle 218 218 0 1
+             220:   17(ivec4) Load 19(ballot)
+             221:  46(i8vec2) GroupNonUniformIMul 177 PartitionedReduceNV 219 220
+             222:     41(ptr) AccessChain 37(data) 216 39 40
+             223:  20(int8_t) CompositeExtract 221 0
+                              Store 222 223
+             224:     41(ptr) AccessChain 37(data) 216 39 188
+             225:  20(int8_t) CompositeExtract 221 1
+                              Store 224 225
+             226:      6(int) Load 8(invocation)
+             227:     47(ptr) AccessChain 37(data) 52 39
+             228:  21(i8vec4) Load 227
+             229:  53(i8vec3) VectorShuffle 228 228 0 1 2
+             230:   17(ivec4) Load 19(ballot)
+             231:  53(i8vec3) GroupNonUniformIMul 177 PartitionedReduceNV 229 230
+             232:     41(ptr) AccessChain 37(data) 226 39 40
+             233:  20(int8_t) CompositeExtract 231 0
+                              Store 232 233
+             234:     41(ptr) AccessChain 37(data) 226 39 188
+             235:  20(int8_t) CompositeExtract 231 1
+                              Store 234 235
+             236:     41(ptr) AccessChain 37(data) 226 39 201
+             237:  20(int8_t) CompositeExtract 231 2
+                              Store 236 237
+             238:      6(int) Load 8(invocation)
+             239:     47(ptr) AccessChain 37(data) 58 39
+             240:  21(i8vec4) Load 239
+             241:   17(ivec4) Load 19(ballot)
+             242:  21(i8vec4) GroupNonUniformIMul 177 PartitionedReduceNV 240 241
+             243:     47(ptr) AccessChain 37(data) 238 39
+                              Store 243 242
+             244:      6(int) Load 8(invocation)
+             245:     41(ptr) AccessChain 37(data) 39 39 40
+             246:  20(int8_t) Load 245
+             247:   17(ivec4) Load 19(ballot)
+             248:  20(int8_t) GroupNonUniformSMin 177 PartitionedReduceNV 246 247
+             249:     41(ptr) AccessChain 37(data) 244 39 40
+                              Store 249 248
+             250:      6(int) Load 8(invocation)
+             251:     47(ptr) AccessChain 37(data) 45 39
+             252:  21(i8vec4) Load 251
+             253:  46(i8vec2) VectorShuffle 252 252 0 1
+             254:   17(ivec4) Load 19(ballot)
+             255:  46(i8vec2) GroupNonUniformSMin 177 PartitionedReduceNV 253 254
+             256:     41(ptr) AccessChain 37(data) 250 39 40
+             257:  20(int8_t) CompositeExtract 255 0
+                              Store 256 257
+             258:     41(ptr) AccessChain 37(data) 250 39 188
+             259:  20(int8_t) CompositeExtract 255 1
+                              Store 258 259
+             260:      6(int) Load 8(invocation)
+             261:     47(ptr) AccessChain 37(data) 52 39
+             262:  21(i8vec4) Load 261
+             263:  53(i8vec3) VectorShuffle 262 262 0 1 2
+             264:   17(ivec4) Load 19(ballot)
+             265:  53(i8vec3) GroupNonUniformSMin 177 PartitionedReduceNV 263 264
+             266:     41(ptr) AccessChain 37(data) 260 39 40
+             267:  20(int8_t) CompositeExtract 265 0
+                              Store 266 267
+             268:     41(ptr) AccessChain 37(data) 260 39 188
+             269:  20(int8_t) CompositeExtract 265 1
+                              Store 268 269
+             270:     41(ptr) AccessChain 37(data) 260 39 201
+             271:  20(int8_t) CompositeExtract 265 2
+                              Store 270 271
+             272:      6(int) Load 8(invocation)
+             273:     47(ptr) AccessChain 37(data) 58 39
+             274:  21(i8vec4) Load 273
+             275:   17(ivec4) Load 19(ballot)
+             276:  21(i8vec4) GroupNonUniformSMin 177 PartitionedReduceNV 274 275
+             277:     47(ptr) AccessChain 37(data) 272 39
+                              Store 277 276
+             278:      6(int) Load 8(invocation)
+             279:     41(ptr) AccessChain 37(data) 39 39 40
+             280:  20(int8_t) Load 279
+             281:   17(ivec4) Load 19(ballot)
+             282:  20(int8_t) GroupNonUniformSMax 177 PartitionedReduceNV 280 281
+             283:     41(ptr) AccessChain 37(data) 278 39 40
+                              Store 283 282
+             284:      6(int) Load 8(invocation)
+             285:     47(ptr) AccessChain 37(data) 45 39
              286:  21(i8vec4) Load 285
-             287:  21(i8vec4) VectorShuffle 286 284 4 5 6 3
-                              Store 285 287
-             288:      6(int) Load 8(invocation)
-             289:     47(ptr) AccessChain 37(data) 58 39
-             290:  21(i8vec4) Load 289
-             291:   17(ivec4) Load 19(ballot)
-             292:  21(i8vec4) GroupNonUniformSMax 177 PartitionedReduceNV 290 291
-             293:     47(ptr) AccessChain 37(data) 288 39
-                              Store 293 292
+             287:  46(i8vec2) VectorShuffle 286 286 0 1
+             288:   17(ivec4) Load 19(ballot)
+             289:  46(i8vec2) GroupNonUniformSMax 177 PartitionedReduceNV 287 288
+             290:     41(ptr) AccessChain 37(data) 284 39 40
+             291:  20(int8_t) CompositeExtract 289 0
+                              Store 290 291
+             292:     41(ptr) AccessChain 37(data) 284 39 188
+             293:  20(int8_t) CompositeExtract 289 1
+                              Store 292 293
              294:      6(int) Load 8(invocation)
-             295:     41(ptr) AccessChain 37(data) 39 39 40
-             296:  20(int8_t) Load 295
-             297:   17(ivec4) Load 19(ballot)
-             298:  20(int8_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 296 297
-             299:     41(ptr) AccessChain 37(data) 294 39 40
-                              Store 299 298
-             300:      6(int) Load 8(invocation)
-             301:     47(ptr) AccessChain 37(data) 45 39
-             302:  21(i8vec4) Load 301
-             303:  46(i8vec2) VectorShuffle 302 302 0 1
-             304:   17(ivec4) Load 19(ballot)
-             305:  46(i8vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 303 304
-             306:     47(ptr) AccessChain 37(data) 300 39
-             307:  21(i8vec4) Load 306
-             308:  21(i8vec4) VectorShuffle 307 305 4 5 2 3
-                              Store 306 308
-             309:      6(int) Load 8(invocation)
-             310:     47(ptr) AccessChain 37(data) 52 39
-             311:  21(i8vec4) Load 310
-             312:  53(i8vec3) VectorShuffle 311 311 0 1 2
-             313:   17(ivec4) Load 19(ballot)
-             314:  53(i8vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 312 313
-             315:     47(ptr) AccessChain 37(data) 309 39
-             316:  21(i8vec4) Load 315
-             317:  21(i8vec4) VectorShuffle 316 314 4 5 6 3
-                              Store 315 317
+             295:     47(ptr) AccessChain 37(data) 52 39
+             296:  21(i8vec4) Load 295
+             297:  53(i8vec3) VectorShuffle 296 296 0 1 2
+             298:   17(ivec4) Load 19(ballot)
+             299:  53(i8vec3) GroupNonUniformSMax 177 PartitionedReduceNV 297 298
+             300:     41(ptr) AccessChain 37(data) 294 39 40
+             301:  20(int8_t) CompositeExtract 299 0
+                              Store 300 301
+             302:     41(ptr) AccessChain 37(data) 294 39 188
+             303:  20(int8_t) CompositeExtract 299 1
+                              Store 302 303
+             304:     41(ptr) AccessChain 37(data) 294 39 201
+             305:  20(int8_t) CompositeExtract 299 2
+                              Store 304 305
+             306:      6(int) Load 8(invocation)
+             307:     47(ptr) AccessChain 37(data) 58 39
+             308:  21(i8vec4) Load 307
+             309:   17(ivec4) Load 19(ballot)
+             310:  21(i8vec4) GroupNonUniformSMax 177 PartitionedReduceNV 308 309
+             311:     47(ptr) AccessChain 37(data) 306 39
+                              Store 311 310
+             312:      6(int) Load 8(invocation)
+             313:     41(ptr) AccessChain 37(data) 39 39 40
+             314:  20(int8_t) Load 313
+             315:   17(ivec4) Load 19(ballot)
+             316:  20(int8_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 314 315
+             317:     41(ptr) AccessChain 37(data) 312 39 40
+                              Store 317 316
              318:      6(int) Load 8(invocation)
-             319:     47(ptr) AccessChain 37(data) 58 39
+             319:     47(ptr) AccessChain 37(data) 45 39
              320:  21(i8vec4) Load 319
-             321:   17(ivec4) Load 19(ballot)
-             322:  21(i8vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 320 321
-             323:     47(ptr) AccessChain 37(data) 318 39
-                              Store 323 322
-             324:      6(int) Load 8(invocation)
-             325:     41(ptr) AccessChain 37(data) 39 39 40
-             326:  20(int8_t) Load 325
-             327:   17(ivec4) Load 19(ballot)
-             328:  20(int8_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 326 327
-             329:     41(ptr) AccessChain 37(data) 324 39 40
-                              Store 329 328
-             330:      6(int) Load 8(invocation)
-             331:     47(ptr) AccessChain 37(data) 45 39
-             332:  21(i8vec4) Load 331
-             333:  46(i8vec2) VectorShuffle 332 332 0 1
-             334:   17(ivec4) Load 19(ballot)
-             335:  46(i8vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 333 334
-             336:     47(ptr) AccessChain 37(data) 330 39
-             337:  21(i8vec4) Load 336
-             338:  21(i8vec4) VectorShuffle 337 335 4 5 2 3
-                              Store 336 338
-             339:      6(int) Load 8(invocation)
-             340:     47(ptr) AccessChain 37(data) 52 39
-             341:  21(i8vec4) Load 340
-             342:  53(i8vec3) VectorShuffle 341 341 0 1 2
+             321:  46(i8vec2) VectorShuffle 320 320 0 1
+             322:   17(ivec4) Load 19(ballot)
+             323:  46(i8vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 321 322
+             324:     41(ptr) AccessChain 37(data) 318 39 40
+             325:  20(int8_t) CompositeExtract 323 0
+                              Store 324 325
+             326:     41(ptr) AccessChain 37(data) 318 39 188
+             327:  20(int8_t) CompositeExtract 323 1
+                              Store 326 327
+             328:      6(int) Load 8(invocation)
+             329:     47(ptr) AccessChain 37(data) 52 39
+             330:  21(i8vec4) Load 329
+             331:  53(i8vec3) VectorShuffle 330 330 0 1 2
+             332:   17(ivec4) Load 19(ballot)
+             333:  53(i8vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 331 332
+             334:     41(ptr) AccessChain 37(data) 328 39 40
+             335:  20(int8_t) CompositeExtract 333 0
+                              Store 334 335
+             336:     41(ptr) AccessChain 37(data) 328 39 188
+             337:  20(int8_t) CompositeExtract 333 1
+                              Store 336 337
+             338:     41(ptr) AccessChain 37(data) 328 39 201
+             339:  20(int8_t) CompositeExtract 333 2
+                              Store 338 339
+             340:      6(int) Load 8(invocation)
+             341:     47(ptr) AccessChain 37(data) 58 39
+             342:  21(i8vec4) Load 341
              343:   17(ivec4) Load 19(ballot)
-             344:  53(i8vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 342 343
-             345:     47(ptr) AccessChain 37(data) 339 39
-             346:  21(i8vec4) Load 345
-             347:  21(i8vec4) VectorShuffle 346 344 4 5 6 3
-                              Store 345 347
-             348:      6(int) Load 8(invocation)
-             349:     47(ptr) AccessChain 37(data) 58 39
-             350:  21(i8vec4) Load 349
-             351:   17(ivec4) Load 19(ballot)
-             352:  21(i8vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 350 351
-             353:     47(ptr) AccessChain 37(data) 348 39
-                              Store 353 352
-             354:      6(int) Load 8(invocation)
-             355:     41(ptr) AccessChain 37(data) 39 39 40
-             356:  20(int8_t) Load 355
-             357:   17(ivec4) Load 19(ballot)
-             358:  20(int8_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 356 357
-             359:     41(ptr) AccessChain 37(data) 354 39 40
-                              Store 359 358
-             360:      6(int) Load 8(invocation)
-             361:     47(ptr) AccessChain 37(data) 45 39
-             362:  21(i8vec4) Load 361
-             363:  46(i8vec2) VectorShuffle 362 362 0 1
-             364:   17(ivec4) Load 19(ballot)
-             365:  46(i8vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 363 364
-             366:     47(ptr) AccessChain 37(data) 360 39
-             367:  21(i8vec4) Load 366
-             368:  21(i8vec4) VectorShuffle 367 365 4 5 2 3
-                              Store 366 368
-             369:      6(int) Load 8(invocation)
-             370:     47(ptr) AccessChain 37(data) 52 39
-             371:  21(i8vec4) Load 370
-             372:  53(i8vec3) VectorShuffle 371 371 0 1 2
-             373:   17(ivec4) Load 19(ballot)
-             374:  53(i8vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 372 373
-             375:     47(ptr) AccessChain 37(data) 369 39
+             344:  21(i8vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 342 343
+             345:     47(ptr) AccessChain 37(data) 340 39
+                              Store 345 344
+             346:      6(int) Load 8(invocation)
+             347:     41(ptr) AccessChain 37(data) 39 39 40
+             348:  20(int8_t) Load 347
+             349:   17(ivec4) Load 19(ballot)
+             350:  20(int8_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 348 349
+             351:     41(ptr) AccessChain 37(data) 346 39 40
+                              Store 351 350
+             352:      6(int) Load 8(invocation)
+             353:     47(ptr) AccessChain 37(data) 45 39
+             354:  21(i8vec4) Load 353
+             355:  46(i8vec2) VectorShuffle 354 354 0 1
+             356:   17(ivec4) Load 19(ballot)
+             357:  46(i8vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 355 356
+             358:     41(ptr) AccessChain 37(data) 352 39 40
+             359:  20(int8_t) CompositeExtract 357 0
+                              Store 358 359
+             360:     41(ptr) AccessChain 37(data) 352 39 188
+             361:  20(int8_t) CompositeExtract 357 1
+                              Store 360 361
+             362:      6(int) Load 8(invocation)
+             363:     47(ptr) AccessChain 37(data) 52 39
+             364:  21(i8vec4) Load 363
+             365:  53(i8vec3) VectorShuffle 364 364 0 1 2
+             366:   17(ivec4) Load 19(ballot)
+             367:  53(i8vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 365 366
+             368:     41(ptr) AccessChain 37(data) 362 39 40
+             369:  20(int8_t) CompositeExtract 367 0
+                              Store 368 369
+             370:     41(ptr) AccessChain 37(data) 362 39 188
+             371:  20(int8_t) CompositeExtract 367 1
+                              Store 370 371
+             372:     41(ptr) AccessChain 37(data) 362 39 201
+             373:  20(int8_t) CompositeExtract 367 2
+                              Store 372 373
+             374:      6(int) Load 8(invocation)
+             375:     47(ptr) AccessChain 37(data) 58 39
              376:  21(i8vec4) Load 375
-             377:  21(i8vec4) VectorShuffle 376 374 4 5 6 3
-                              Store 375 377
-             378:      6(int) Load 8(invocation)
-             379:     47(ptr) AccessChain 37(data) 58 39
-             380:  21(i8vec4) Load 379
-             381:   17(ivec4) Load 19(ballot)
-             382:  21(i8vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 380 381
-             383:     47(ptr) AccessChain 37(data) 378 39
-                              Store 383 382
-             384:      6(int) Load 8(invocation)
-             385:     62(ptr) AccessChain 37(data) 39 45 40
-             386:  22(int8_t) Load 385
-             387:   17(ivec4) Load 19(ballot)
-             388:  22(int8_t) GroupNonUniformIAdd 177 PartitionedReduceNV 386 387
-             389:     62(ptr) AccessChain 37(data) 384 45 40
-                              Store 389 388
-             390:      6(int) Load 8(invocation)
-             391:     67(ptr) AccessChain 37(data) 45 45
-             392:  23(i8vec4) Load 391
-             393:  66(i8vec2) VectorShuffle 392 392 0 1
-             394:   17(ivec4) Load 19(ballot)
-             395:  66(i8vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 393 394
-             396:     67(ptr) AccessChain 37(data) 390 45
-             397:  23(i8vec4) Load 396
-             398:  23(i8vec4) VectorShuffle 397 395 4 5 2 3
-                              Store 396 398
-             399:      6(int) Load 8(invocation)
-             400:     67(ptr) AccessChain 37(data) 52 45
-             401:  23(i8vec4) Load 400
-             402:  72(i8vec3) VectorShuffle 401 401 0 1 2
-             403:   17(ivec4) Load 19(ballot)
-             404:  72(i8vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 402 403
-             405:     67(ptr) AccessChain 37(data) 399 45
-             406:  23(i8vec4) Load 405
-             407:  23(i8vec4) VectorShuffle 406 404 4 5 6 3
-                              Store 405 407
+             377:   17(ivec4) Load 19(ballot)
+             378:  21(i8vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 376 377
+             379:     47(ptr) AccessChain 37(data) 374 39
+                              Store 379 378
+             380:      6(int) Load 8(invocation)
+             381:     41(ptr) AccessChain 37(data) 39 39 40
+             382:  20(int8_t) Load 381
+             383:   17(ivec4) Load 19(ballot)
+             384:  20(int8_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 382 383
+             385:     41(ptr) AccessChain 37(data) 380 39 40
+                              Store 385 384
+             386:      6(int) Load 8(invocation)
+             387:     47(ptr) AccessChain 37(data) 45 39
+             388:  21(i8vec4) Load 387
+             389:  46(i8vec2) VectorShuffle 388 388 0 1
+             390:   17(ivec4) Load 19(ballot)
+             391:  46(i8vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 389 390
+             392:     41(ptr) AccessChain 37(data) 386 39 40
+             393:  20(int8_t) CompositeExtract 391 0
+                              Store 392 393
+             394:     41(ptr) AccessChain 37(data) 386 39 188
+             395:  20(int8_t) CompositeExtract 391 1
+                              Store 394 395
+             396:      6(int) Load 8(invocation)
+             397:     47(ptr) AccessChain 37(data) 52 39
+             398:  21(i8vec4) Load 397
+             399:  53(i8vec3) VectorShuffle 398 398 0 1 2
+             400:   17(ivec4) Load 19(ballot)
+             401:  53(i8vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 399 400
+             402:     41(ptr) AccessChain 37(data) 396 39 40
+             403:  20(int8_t) CompositeExtract 401 0
+                              Store 402 403
+             404:     41(ptr) AccessChain 37(data) 396 39 188
+             405:  20(int8_t) CompositeExtract 401 1
+                              Store 404 405
+             406:     41(ptr) AccessChain 37(data) 396 39 201
+             407:  20(int8_t) CompositeExtract 401 2
+                              Store 406 407
              408:      6(int) Load 8(invocation)
-             409:     67(ptr) AccessChain 37(data) 58 45
-             410:  23(i8vec4) Load 409
+             409:     47(ptr) AccessChain 37(data) 58 39
+             410:  21(i8vec4) Load 409
              411:   17(ivec4) Load 19(ballot)
-             412:  23(i8vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 410 411
-             413:     67(ptr) AccessChain 37(data) 408 45
+             412:  21(i8vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 410 411
+             413:     47(ptr) AccessChain 37(data) 408 39
                               Store 413 412
              414:      6(int) Load 8(invocation)
              415:     62(ptr) AccessChain 37(data) 39 45 40
              416:  22(int8_t) Load 415
              417:   17(ivec4) Load 19(ballot)
-             418:  22(int8_t) GroupNonUniformIMul 177 PartitionedReduceNV 416 417
+             418:  22(int8_t) GroupNonUniformIAdd 177 PartitionedReduceNV 416 417
              419:     62(ptr) AccessChain 37(data) 414 45 40
                               Store 419 418
              420:      6(int) Load 8(invocation)
@@ -551,577 +567,614 @@
              422:  23(i8vec4) Load 421
              423:  66(i8vec2) VectorShuffle 422 422 0 1
              424:   17(ivec4) Load 19(ballot)
-             425:  66(i8vec2) GroupNonUniformIMul 177 PartitionedReduceNV 423 424
-             426:     67(ptr) AccessChain 37(data) 420 45
-             427:  23(i8vec4) Load 426
-             428:  23(i8vec4) VectorShuffle 427 425 4 5 2 3
-                              Store 426 428
-             429:      6(int) Load 8(invocation)
-             430:     67(ptr) AccessChain 37(data) 52 45
-             431:  23(i8vec4) Load 430
-             432:  72(i8vec3) VectorShuffle 431 431 0 1 2
-             433:   17(ivec4) Load 19(ballot)
-             434:  72(i8vec3) GroupNonUniformIMul 177 PartitionedReduceNV 432 433
-             435:     67(ptr) AccessChain 37(data) 429 45
-             436:  23(i8vec4) Load 435
-             437:  23(i8vec4) VectorShuffle 436 434 4 5 6 3
-                              Store 435 437
-             438:      6(int) Load 8(invocation)
-             439:     67(ptr) AccessChain 37(data) 58 45
-             440:  23(i8vec4) Load 439
-             441:   17(ivec4) Load 19(ballot)
-             442:  23(i8vec4) GroupNonUniformIMul 177 PartitionedReduceNV 440 441
-             443:     67(ptr) AccessChain 37(data) 438 45
-                              Store 443 442
-             444:      6(int) Load 8(invocation)
-             445:     62(ptr) AccessChain 37(data) 39 45 40
-             446:  22(int8_t) Load 445
-             447:   17(ivec4) Load 19(ballot)
-             448:  22(int8_t) GroupNonUniformUMin 177 PartitionedReduceNV 446 447
-             449:     62(ptr) AccessChain 37(data) 444 45 40
-                              Store 449 448
-             450:      6(int) Load 8(invocation)
-             451:     67(ptr) AccessChain 37(data) 45 45
-             452:  23(i8vec4) Load 451
-             453:  66(i8vec2) VectorShuffle 452 452 0 1
-             454:   17(ivec4) Load 19(ballot)
-             455:  66(i8vec2) GroupNonUniformUMin 177 PartitionedReduceNV 453 454
-             456:     67(ptr) AccessChain 37(data) 450 45
-             457:  23(i8vec4) Load 456
-             458:  23(i8vec4) VectorShuffle 457 455 4 5 2 3
-                              Store 456 458
-             459:      6(int) Load 8(invocation)
-             460:     67(ptr) AccessChain 37(data) 52 45
-             461:  23(i8vec4) Load 460
-             462:  72(i8vec3) VectorShuffle 461 461 0 1 2
-             463:   17(ivec4) Load 19(ballot)
-             464:  72(i8vec3) GroupNonUniformUMin 177 PartitionedReduceNV 462 463
-             465:     67(ptr) AccessChain 37(data) 459 45
+             425:  66(i8vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 423 424
+             426:     62(ptr) AccessChain 37(data) 420 45 40
+             427:  22(int8_t) CompositeExtract 425 0
+                              Store 426 427
+             428:     62(ptr) AccessChain 37(data) 420 45 188
+             429:  22(int8_t) CompositeExtract 425 1
+                              Store 428 429
+             430:      6(int) Load 8(invocation)
+             431:     67(ptr) AccessChain 37(data) 52 45
+             432:  23(i8vec4) Load 431
+             433:  72(i8vec3) VectorShuffle 432 432 0 1 2
+             434:   17(ivec4) Load 19(ballot)
+             435:  72(i8vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 433 434
+             436:     62(ptr) AccessChain 37(data) 430 45 40
+             437:  22(int8_t) CompositeExtract 435 0
+                              Store 436 437
+             438:     62(ptr) AccessChain 37(data) 430 45 188
+             439:  22(int8_t) CompositeExtract 435 1
+                              Store 438 439
+             440:     62(ptr) AccessChain 37(data) 430 45 201
+             441:  22(int8_t) CompositeExtract 435 2
+                              Store 440 441
+             442:      6(int) Load 8(invocation)
+             443:     67(ptr) AccessChain 37(data) 58 45
+             444:  23(i8vec4) Load 443
+             445:   17(ivec4) Load 19(ballot)
+             446:  23(i8vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 444 445
+             447:     67(ptr) AccessChain 37(data) 442 45
+                              Store 447 446
+             448:      6(int) Load 8(invocation)
+             449:     62(ptr) AccessChain 37(data) 39 45 40
+             450:  22(int8_t) Load 449
+             451:   17(ivec4) Load 19(ballot)
+             452:  22(int8_t) GroupNonUniformIMul 177 PartitionedReduceNV 450 451
+             453:     62(ptr) AccessChain 37(data) 448 45 40
+                              Store 453 452
+             454:      6(int) Load 8(invocation)
+             455:     67(ptr) AccessChain 37(data) 45 45
+             456:  23(i8vec4) Load 455
+             457:  66(i8vec2) VectorShuffle 456 456 0 1
+             458:   17(ivec4) Load 19(ballot)
+             459:  66(i8vec2) GroupNonUniformIMul 177 PartitionedReduceNV 457 458
+             460:     62(ptr) AccessChain 37(data) 454 45 40
+             461:  22(int8_t) CompositeExtract 459 0
+                              Store 460 461
+             462:     62(ptr) AccessChain 37(data) 454 45 188
+             463:  22(int8_t) CompositeExtract 459 1
+                              Store 462 463
+             464:      6(int) Load 8(invocation)
+             465:     67(ptr) AccessChain 37(data) 52 45
              466:  23(i8vec4) Load 465
-             467:  23(i8vec4) VectorShuffle 466 464 4 5 6 3
-                              Store 465 467
-             468:      6(int) Load 8(invocation)
-             469:     67(ptr) AccessChain 37(data) 58 45
-             470:  23(i8vec4) Load 469
-             471:   17(ivec4) Load 19(ballot)
-             472:  23(i8vec4) GroupNonUniformUMin 177 PartitionedReduceNV 470 471
-             473:     67(ptr) AccessChain 37(data) 468 45
-                              Store 473 472
-             474:      6(int) Load 8(invocation)
-             475:     62(ptr) AccessChain 37(data) 39 45 40
-             476:  22(int8_t) Load 475
-             477:   17(ivec4) Load 19(ballot)
-             478:  22(int8_t) GroupNonUniformUMax 177 PartitionedReduceNV 476 477
-             479:     62(ptr) AccessChain 37(data) 474 45 40
-                              Store 479 478
-             480:      6(int) Load 8(invocation)
-             481:     67(ptr) AccessChain 37(data) 45 45
-             482:  23(i8vec4) Load 481
-             483:  66(i8vec2) VectorShuffle 482 482 0 1
-             484:   17(ivec4) Load 19(ballot)
-             485:  66(i8vec2) GroupNonUniformUMax 177 PartitionedReduceNV 483 484
-             486:     67(ptr) AccessChain 37(data) 480 45
-             487:  23(i8vec4) Load 486
-             488:  23(i8vec4) VectorShuffle 487 485 4 5 2 3
-                              Store 486 488
-             489:      6(int) Load 8(invocation)
-             490:     67(ptr) AccessChain 37(data) 52 45
-             491:  23(i8vec4) Load 490
-             492:  72(i8vec3) VectorShuffle 491 491 0 1 2
-             493:   17(ivec4) Load 19(ballot)
-             494:  72(i8vec3) GroupNonUniformUMax 177 PartitionedReduceNV 492 493
-             495:     67(ptr) AccessChain 37(data) 489 45
-             496:  23(i8vec4) Load 495
-             497:  23(i8vec4) VectorShuffle 496 494 4 5 6 3
-                              Store 495 497
+             467:  72(i8vec3) VectorShuffle 466 466 0 1 2
+             468:   17(ivec4) Load 19(ballot)
+             469:  72(i8vec3) GroupNonUniformIMul 177 PartitionedReduceNV 467 468
+             470:     62(ptr) AccessChain 37(data) 464 45 40
+             471:  22(int8_t) CompositeExtract 469 0
+                              Store 470 471
+             472:     62(ptr) AccessChain 37(data) 464 45 188
+             473:  22(int8_t) CompositeExtract 469 1
+                              Store 472 473
+             474:     62(ptr) AccessChain 37(data) 464 45 201
+             475:  22(int8_t) CompositeExtract 469 2
+                              Store 474 475
+             476:      6(int) Load 8(invocation)
+             477:     67(ptr) AccessChain 37(data) 58 45
+             478:  23(i8vec4) Load 477
+             479:   17(ivec4) Load 19(ballot)
+             480:  23(i8vec4) GroupNonUniformIMul 177 PartitionedReduceNV 478 479
+             481:     67(ptr) AccessChain 37(data) 476 45
+                              Store 481 480
+             482:      6(int) Load 8(invocation)
+             483:     62(ptr) AccessChain 37(data) 39 45 40
+             484:  22(int8_t) Load 483
+             485:   17(ivec4) Load 19(ballot)
+             486:  22(int8_t) GroupNonUniformUMin 177 PartitionedReduceNV 484 485
+             487:     62(ptr) AccessChain 37(data) 482 45 40
+                              Store 487 486
+             488:      6(int) Load 8(invocation)
+             489:     67(ptr) AccessChain 37(data) 45 45
+             490:  23(i8vec4) Load 489
+             491:  66(i8vec2) VectorShuffle 490 490 0 1
+             492:   17(ivec4) Load 19(ballot)
+             493:  66(i8vec2) GroupNonUniformUMin 177 PartitionedReduceNV 491 492
+             494:     62(ptr) AccessChain 37(data) 488 45 40
+             495:  22(int8_t) CompositeExtract 493 0
+                              Store 494 495
+             496:     62(ptr) AccessChain 37(data) 488 45 188
+             497:  22(int8_t) CompositeExtract 493 1
+                              Store 496 497
              498:      6(int) Load 8(invocation)
-             499:     67(ptr) AccessChain 37(data) 58 45
+             499:     67(ptr) AccessChain 37(data) 52 45
              500:  23(i8vec4) Load 499
-             501:   17(ivec4) Load 19(ballot)
-             502:  23(i8vec4) GroupNonUniformUMax 177 PartitionedReduceNV 500 501
-             503:     67(ptr) AccessChain 37(data) 498 45
-                              Store 503 502
-             504:      6(int) Load 8(invocation)
-             505:     62(ptr) AccessChain 37(data) 39 45 40
-             506:  22(int8_t) Load 505
-             507:   17(ivec4) Load 19(ballot)
-             508:  22(int8_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 506 507
-             509:     62(ptr) AccessChain 37(data) 504 45 40
-                              Store 509 508
+             501:  72(i8vec3) VectorShuffle 500 500 0 1 2
+             502:   17(ivec4) Load 19(ballot)
+             503:  72(i8vec3) GroupNonUniformUMin 177 PartitionedReduceNV 501 502
+             504:     62(ptr) AccessChain 37(data) 498 45 40
+             505:  22(int8_t) CompositeExtract 503 0
+                              Store 504 505
+             506:     62(ptr) AccessChain 37(data) 498 45 188
+             507:  22(int8_t) CompositeExtract 503 1
+                              Store 506 507
+             508:     62(ptr) AccessChain 37(data) 498 45 201
+             509:  22(int8_t) CompositeExtract 503 2
+                              Store 508 509
              510:      6(int) Load 8(invocation)
-             511:     67(ptr) AccessChain 37(data) 45 45
+             511:     67(ptr) AccessChain 37(data) 58 45
              512:  23(i8vec4) Load 511
-             513:  66(i8vec2) VectorShuffle 512 512 0 1
-             514:   17(ivec4) Load 19(ballot)
-             515:  66(i8vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 513 514
-             516:     67(ptr) AccessChain 37(data) 510 45
-             517:  23(i8vec4) Load 516
-             518:  23(i8vec4) VectorShuffle 517 515 4 5 2 3
-                              Store 516 518
-             519:      6(int) Load 8(invocation)
-             520:     67(ptr) AccessChain 37(data) 52 45
-             521:  23(i8vec4) Load 520
-             522:  72(i8vec3) VectorShuffle 521 521 0 1 2
-             523:   17(ivec4) Load 19(ballot)
-             524:  72(i8vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 522 523
-             525:     67(ptr) AccessChain 37(data) 519 45
-             526:  23(i8vec4) Load 525
-             527:  23(i8vec4) VectorShuffle 526 524 4 5 6 3
-                              Store 525 527
-             528:      6(int) Load 8(invocation)
-             529:     67(ptr) AccessChain 37(data) 58 45
-             530:  23(i8vec4) Load 529
-             531:   17(ivec4) Load 19(ballot)
-             532:  23(i8vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 530 531
-             533:     67(ptr) AccessChain 37(data) 528 45
-                              Store 533 532
-             534:      6(int) Load 8(invocation)
-             535:     62(ptr) AccessChain 37(data) 39 45 40
-             536:  22(int8_t) Load 535
-             537:   17(ivec4) Load 19(ballot)
-             538:  22(int8_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 536 537
-             539:     62(ptr) AccessChain 37(data) 534 45 40
-                              Store 539 538
-             540:      6(int) Load 8(invocation)
-             541:     67(ptr) AccessChain 37(data) 45 45
-             542:  23(i8vec4) Load 541
-             543:  66(i8vec2) VectorShuffle 542 542 0 1
-             544:   17(ivec4) Load 19(ballot)
-             545:  66(i8vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 543 544
-             546:     67(ptr) AccessChain 37(data) 540 45
-             547:  23(i8vec4) Load 546
-             548:  23(i8vec4) VectorShuffle 547 545 4 5 2 3
-                              Store 546 548
-             549:      6(int) Load 8(invocation)
-             550:     67(ptr) AccessChain 37(data) 52 45
-             551:  23(i8vec4) Load 550
-             552:  72(i8vec3) VectorShuffle 551 551 0 1 2
+             513:   17(ivec4) Load 19(ballot)
+             514:  23(i8vec4) GroupNonUniformUMin 177 PartitionedReduceNV 512 513
+             515:     67(ptr) AccessChain 37(data) 510 45
+                              Store 515 514
+             516:      6(int) Load 8(invocation)
+             517:     62(ptr) AccessChain 37(data) 39 45 40
+             518:  22(int8_t) Load 517
+             519:   17(ivec4) Load 19(ballot)
+             520:  22(int8_t) GroupNonUniformUMax 177 PartitionedReduceNV 518 519
+             521:     62(ptr) AccessChain 37(data) 516 45 40
+                              Store 521 520
+             522:      6(int) Load 8(invocation)
+             523:     67(ptr) AccessChain 37(data) 45 45
+             524:  23(i8vec4) Load 523
+             525:  66(i8vec2) VectorShuffle 524 524 0 1
+             526:   17(ivec4) Load 19(ballot)
+             527:  66(i8vec2) GroupNonUniformUMax 177 PartitionedReduceNV 525 526
+             528:     62(ptr) AccessChain 37(data) 522 45 40
+             529:  22(int8_t) CompositeExtract 527 0
+                              Store 528 529
+             530:     62(ptr) AccessChain 37(data) 522 45 188
+             531:  22(int8_t) CompositeExtract 527 1
+                              Store 530 531
+             532:      6(int) Load 8(invocation)
+             533:     67(ptr) AccessChain 37(data) 52 45
+             534:  23(i8vec4) Load 533
+             535:  72(i8vec3) VectorShuffle 534 534 0 1 2
+             536:   17(ivec4) Load 19(ballot)
+             537:  72(i8vec3) GroupNonUniformUMax 177 PartitionedReduceNV 535 536
+             538:     62(ptr) AccessChain 37(data) 532 45 40
+             539:  22(int8_t) CompositeExtract 537 0
+                              Store 538 539
+             540:     62(ptr) AccessChain 37(data) 532 45 188
+             541:  22(int8_t) CompositeExtract 537 1
+                              Store 540 541
+             542:     62(ptr) AccessChain 37(data) 532 45 201
+             543:  22(int8_t) CompositeExtract 537 2
+                              Store 542 543
+             544:      6(int) Load 8(invocation)
+             545:     67(ptr) AccessChain 37(data) 58 45
+             546:  23(i8vec4) Load 545
+             547:   17(ivec4) Load 19(ballot)
+             548:  23(i8vec4) GroupNonUniformUMax 177 PartitionedReduceNV 546 547
+             549:     67(ptr) AccessChain 37(data) 544 45
+                              Store 549 548
+             550:      6(int) Load 8(invocation)
+             551:     62(ptr) AccessChain 37(data) 39 45 40
+             552:  22(int8_t) Load 551
              553:   17(ivec4) Load 19(ballot)
-             554:  72(i8vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 552 553
-             555:     67(ptr) AccessChain 37(data) 549 45
-             556:  23(i8vec4) Load 555
-             557:  23(i8vec4) VectorShuffle 556 554 4 5 6 3
-                              Store 555 557
-             558:      6(int) Load 8(invocation)
-             559:     67(ptr) AccessChain 37(data) 58 45
-             560:  23(i8vec4) Load 559
-             561:   17(ivec4) Load 19(ballot)
-             562:  23(i8vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 560 561
-             563:     67(ptr) AccessChain 37(data) 558 45
-                              Store 563 562
-             564:      6(int) Load 8(invocation)
-             565:     62(ptr) AccessChain 37(data) 39 45 40
-             566:  22(int8_t) Load 565
-             567:   17(ivec4) Load 19(ballot)
-             568:  22(int8_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 566 567
-             569:     62(ptr) AccessChain 37(data) 564 45 40
-                              Store 569 568
-             570:      6(int) Load 8(invocation)
-             571:     67(ptr) AccessChain 37(data) 45 45
-             572:  23(i8vec4) Load 571
-             573:  66(i8vec2) VectorShuffle 572 572 0 1
-             574:   17(ivec4) Load 19(ballot)
-             575:  66(i8vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 573 574
-             576:     67(ptr) AccessChain 37(data) 570 45
-             577:  23(i8vec4) Load 576
-             578:  23(i8vec4) VectorShuffle 577 575 4 5 2 3
-                              Store 576 578
-             579:      6(int) Load 8(invocation)
-             580:     67(ptr) AccessChain 37(data) 52 45
-             581:  23(i8vec4) Load 580
-             582:  72(i8vec3) VectorShuffle 581 581 0 1 2
-             583:   17(ivec4) Load 19(ballot)
-             584:  72(i8vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 582 583
-             585:     67(ptr) AccessChain 37(data) 579 45
-             586:  23(i8vec4) Load 585
-             587:  23(i8vec4) VectorShuffle 586 584 4 5 6 3
-                              Store 585 587
-             588:      6(int) Load 8(invocation)
-             589:     67(ptr) AccessChain 37(data) 58 45
-             590:  23(i8vec4) Load 589
-             591:   17(ivec4) Load 19(ballot)
-             592:  23(i8vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 590 591
-             593:     67(ptr) AccessChain 37(data) 588 45
-                              Store 593 592
-             594:      6(int) Load 8(invocation)
-             595:     80(ptr) AccessChain 37(data) 39 52 40
-             596: 24(int16_t) Load 595
-             597:   17(ivec4) Load 19(ballot)
-             598: 24(int16_t) GroupNonUniformIAdd 177 PartitionedReduceNV 596 597
-             599:     80(ptr) AccessChain 37(data) 594 52 40
-                              Store 599 598
+             554:  22(int8_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 552 553
+             555:     62(ptr) AccessChain 37(data) 550 45 40
+                              Store 555 554
+             556:      6(int) Load 8(invocation)
+             557:     67(ptr) AccessChain 37(data) 45 45
+             558:  23(i8vec4) Load 557
+             559:  66(i8vec2) VectorShuffle 558 558 0 1
+             560:   17(ivec4) Load 19(ballot)
+             561:  66(i8vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 559 560
+             562:     62(ptr) AccessChain 37(data) 556 45 40
+             563:  22(int8_t) CompositeExtract 561 0
+                              Store 562 563
+             564:     62(ptr) AccessChain 37(data) 556 45 188
+             565:  22(int8_t) CompositeExtract 561 1
+                              Store 564 565
+             566:      6(int) Load 8(invocation)
+             567:     67(ptr) AccessChain 37(data) 52 45
+             568:  23(i8vec4) Load 567
+             569:  72(i8vec3) VectorShuffle 568 568 0 1 2
+             570:   17(ivec4) Load 19(ballot)
+             571:  72(i8vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 569 570
+             572:     62(ptr) AccessChain 37(data) 566 45 40
+             573:  22(int8_t) CompositeExtract 571 0
+                              Store 572 573
+             574:     62(ptr) AccessChain 37(data) 566 45 188
+             575:  22(int8_t) CompositeExtract 571 1
+                              Store 574 575
+             576:     62(ptr) AccessChain 37(data) 566 45 201
+             577:  22(int8_t) CompositeExtract 571 2
+                              Store 576 577
+             578:      6(int) Load 8(invocation)
+             579:     67(ptr) AccessChain 37(data) 58 45
+             580:  23(i8vec4) Load 579
+             581:   17(ivec4) Load 19(ballot)
+             582:  23(i8vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 580 581
+             583:     67(ptr) AccessChain 37(data) 578 45
+                              Store 583 582
+             584:      6(int) Load 8(invocation)
+             585:     62(ptr) AccessChain 37(data) 39 45 40
+             586:  22(int8_t) Load 585
+             587:   17(ivec4) Load 19(ballot)
+             588:  22(int8_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 586 587
+             589:     62(ptr) AccessChain 37(data) 584 45 40
+                              Store 589 588
+             590:      6(int) Load 8(invocation)
+             591:     67(ptr) AccessChain 37(data) 45 45
+             592:  23(i8vec4) Load 591
+             593:  66(i8vec2) VectorShuffle 592 592 0 1
+             594:   17(ivec4) Load 19(ballot)
+             595:  66(i8vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 593 594
+             596:     62(ptr) AccessChain 37(data) 590 45 40
+             597:  22(int8_t) CompositeExtract 595 0
+                              Store 596 597
+             598:     62(ptr) AccessChain 37(data) 590 45 188
+             599:  22(int8_t) CompositeExtract 595 1
+                              Store 598 599
              600:      6(int) Load 8(invocation)
-             601:     85(ptr) AccessChain 37(data) 45 52
-             602: 25(i16vec4) Load 601
-             603: 84(i16vec2) VectorShuffle 602 602 0 1
+             601:     67(ptr) AccessChain 37(data) 52 45
+             602:  23(i8vec4) Load 601
+             603:  72(i8vec3) VectorShuffle 602 602 0 1 2
              604:   17(ivec4) Load 19(ballot)
-             605: 84(i16vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 603 604
-             606:     85(ptr) AccessChain 37(data) 600 52
-             607: 25(i16vec4) Load 606
-             608: 25(i16vec4) VectorShuffle 607 605 4 5 2 3
-                              Store 606 608
-             609:      6(int) Load 8(invocation)
-             610:     85(ptr) AccessChain 37(data) 52 52
-             611: 25(i16vec4) Load 610
-             612: 90(i16vec3) VectorShuffle 611 611 0 1 2
-             613:   17(ivec4) Load 19(ballot)
-             614: 90(i16vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 612 613
-             615:     85(ptr) AccessChain 37(data) 609 52
-             616: 25(i16vec4) Load 615
-             617: 25(i16vec4) VectorShuffle 616 614 4 5 6 3
-                              Store 615 617
+             605:  72(i8vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 603 604
+             606:     62(ptr) AccessChain 37(data) 600 45 40
+             607:  22(int8_t) CompositeExtract 605 0
+                              Store 606 607
+             608:     62(ptr) AccessChain 37(data) 600 45 188
+             609:  22(int8_t) CompositeExtract 605 1
+                              Store 608 609
+             610:     62(ptr) AccessChain 37(data) 600 45 201
+             611:  22(int8_t) CompositeExtract 605 2
+                              Store 610 611
+             612:      6(int) Load 8(invocation)
+             613:     67(ptr) AccessChain 37(data) 58 45
+             614:  23(i8vec4) Load 613
+             615:   17(ivec4) Load 19(ballot)
+             616:  23(i8vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 614 615
+             617:     67(ptr) AccessChain 37(data) 612 45
+                              Store 617 616
              618:      6(int) Load 8(invocation)
-             619:     85(ptr) AccessChain 37(data) 58 52
-             620: 25(i16vec4) Load 619
+             619:     62(ptr) AccessChain 37(data) 39 45 40
+             620:  22(int8_t) Load 619
              621:   17(ivec4) Load 19(ballot)
-             622: 25(i16vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 620 621
-             623:     85(ptr) AccessChain 37(data) 618 52
+             622:  22(int8_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 620 621
+             623:     62(ptr) AccessChain 37(data) 618 45 40
                               Store 623 622
              624:      6(int) Load 8(invocation)
-             625:     80(ptr) AccessChain 37(data) 39 52 40
-             626: 24(int16_t) Load 625
-             627:   17(ivec4) Load 19(ballot)
-             628: 24(int16_t) GroupNonUniformIMul 177 PartitionedReduceNV 626 627
-             629:     80(ptr) AccessChain 37(data) 624 52 40
-                              Store 629 628
-             630:      6(int) Load 8(invocation)
-             631:     85(ptr) AccessChain 37(data) 45 52
-             632: 25(i16vec4) Load 631
-             633: 84(i16vec2) VectorShuffle 632 632 0 1
-             634:   17(ivec4) Load 19(ballot)
-             635: 84(i16vec2) GroupNonUniformIMul 177 PartitionedReduceNV 633 634
-             636:     85(ptr) AccessChain 37(data) 630 52
-             637: 25(i16vec4) Load 636
-             638: 25(i16vec4) VectorShuffle 637 635 4 5 2 3
-                              Store 636 638
-             639:      6(int) Load 8(invocation)
-             640:     85(ptr) AccessChain 37(data) 52 52
-             641: 25(i16vec4) Load 640
-             642: 90(i16vec3) VectorShuffle 641 641 0 1 2
-             643:   17(ivec4) Load 19(ballot)
-             644: 90(i16vec3) GroupNonUniformIMul 177 PartitionedReduceNV 642 643
-             645:     85(ptr) AccessChain 37(data) 639 52
-             646: 25(i16vec4) Load 645
-             647: 25(i16vec4) VectorShuffle 646 644 4 5 6 3
-                              Store 645 647
-             648:      6(int) Load 8(invocation)
-             649:     85(ptr) AccessChain 37(data) 58 52
-             650: 25(i16vec4) Load 649
-             651:   17(ivec4) Load 19(ballot)
-             652: 25(i16vec4) GroupNonUniformIMul 177 PartitionedReduceNV 650 651
-             653:     85(ptr) AccessChain 37(data) 648 52
-                              Store 653 652
-             654:      6(int) Load 8(invocation)
-             655:     80(ptr) AccessChain 37(data) 39 52 40
-             656: 24(int16_t) Load 655
-             657:   17(ivec4) Load 19(ballot)
-             658: 24(int16_t) GroupNonUniformSMin 177 PartitionedReduceNV 656 657
-             659:     80(ptr) AccessChain 37(data) 654 52 40
-                              Store 659 658
-             660:      6(int) Load 8(invocation)
-             661:     85(ptr) AccessChain 37(data) 45 52
-             662: 25(i16vec4) Load 661
-             663: 84(i16vec2) VectorShuffle 662 662 0 1
-             664:   17(ivec4) Load 19(ballot)
-             665: 84(i16vec2) GroupNonUniformSMin 177 PartitionedReduceNV 663 664
-             666:     85(ptr) AccessChain 37(data) 660 52
-             667: 25(i16vec4) Load 666
-             668: 25(i16vec4) VectorShuffle 667 665 4 5 2 3
-                              Store 666 668
-             669:      6(int) Load 8(invocation)
-             670:     85(ptr) AccessChain 37(data) 52 52
-             671: 25(i16vec4) Load 670
-             672: 90(i16vec3) VectorShuffle 671 671 0 1 2
-             673:   17(ivec4) Load 19(ballot)
-             674: 90(i16vec3) GroupNonUniformSMin 177 PartitionedReduceNV 672 673
-             675:     85(ptr) AccessChain 37(data) 669 52
-             676: 25(i16vec4) Load 675
-             677: 25(i16vec4) VectorShuffle 676 674 4 5 6 3
-                              Store 675 677
-             678:      6(int) Load 8(invocation)
-             679:     85(ptr) AccessChain 37(data) 58 52
-             680: 25(i16vec4) Load 679
-             681:   17(ivec4) Load 19(ballot)
-             682: 25(i16vec4) GroupNonUniformSMin 177 PartitionedReduceNV 680 681
-             683:     85(ptr) AccessChain 37(data) 678 52
-                              Store 683 682
-             684:      6(int) Load 8(invocation)
-             685:     80(ptr) AccessChain 37(data) 39 52 40
-             686: 24(int16_t) Load 685
-             687:   17(ivec4) Load 19(ballot)
-             688: 24(int16_t) GroupNonUniformSMax 177 PartitionedReduceNV 686 687
-             689:     80(ptr) AccessChain 37(data) 684 52 40
-                              Store 689 688
-             690:      6(int) Load 8(invocation)
-             691:     85(ptr) AccessChain 37(data) 45 52
-             692: 25(i16vec4) Load 691
-             693: 84(i16vec2) VectorShuffle 692 692 0 1
-             694:   17(ivec4) Load 19(ballot)
-             695: 84(i16vec2) GroupNonUniformSMax 177 PartitionedReduceNV 693 694
-             696:     85(ptr) AccessChain 37(data) 690 52
-             697: 25(i16vec4) Load 696
-             698: 25(i16vec4) VectorShuffle 697 695 4 5 2 3
-                              Store 696 698
-             699:      6(int) Load 8(invocation)
-             700:     85(ptr) AccessChain 37(data) 52 52
-             701: 25(i16vec4) Load 700
-             702: 90(i16vec3) VectorShuffle 701 701 0 1 2
-             703:   17(ivec4) Load 19(ballot)
-             704: 90(i16vec3) GroupNonUniformSMax 177 PartitionedReduceNV 702 703
-             705:     85(ptr) AccessChain 37(data) 699 52
-             706: 25(i16vec4) Load 705
-             707: 25(i16vec4) VectorShuffle 706 704 4 5 6 3
-                              Store 705 707
-             708:      6(int) Load 8(invocation)
-             709:     85(ptr) AccessChain 37(data) 58 52
-             710: 25(i16vec4) Load 709
-             711:   17(ivec4) Load 19(ballot)
-             712: 25(i16vec4) GroupNonUniformSMax 177 PartitionedReduceNV 710 711
-             713:     85(ptr) AccessChain 37(data) 708 52
-                              Store 713 712
+             625:     67(ptr) AccessChain 37(data) 45 45
+             626:  23(i8vec4) Load 625
+             627:  66(i8vec2) VectorShuffle 626 626 0 1
+             628:   17(ivec4) Load 19(ballot)
+             629:  66(i8vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 627 628
+             630:     62(ptr) AccessChain 37(data) 624 45 40
+             631:  22(int8_t) CompositeExtract 629 0
+                              Store 630 631
+             632:     62(ptr) AccessChain 37(data) 624 45 188
+             633:  22(int8_t) CompositeExtract 629 1
+                              Store 632 633
+             634:      6(int) Load 8(invocation)
+             635:     67(ptr) AccessChain 37(data) 52 45
+             636:  23(i8vec4) Load 635
+             637:  72(i8vec3) VectorShuffle 636 636 0 1 2
+             638:   17(ivec4) Load 19(ballot)
+             639:  72(i8vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 637 638
+             640:     62(ptr) AccessChain 37(data) 634 45 40
+             641:  22(int8_t) CompositeExtract 639 0
+                              Store 640 641
+             642:     62(ptr) AccessChain 37(data) 634 45 188
+             643:  22(int8_t) CompositeExtract 639 1
+                              Store 642 643
+             644:     62(ptr) AccessChain 37(data) 634 45 201
+             645:  22(int8_t) CompositeExtract 639 2
+                              Store 644 645
+             646:      6(int) Load 8(invocation)
+             647:     67(ptr) AccessChain 37(data) 58 45
+             648:  23(i8vec4) Load 647
+             649:   17(ivec4) Load 19(ballot)
+             650:  23(i8vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 648 649
+             651:     67(ptr) AccessChain 37(data) 646 45
+                              Store 651 650
+             652:      6(int) Load 8(invocation)
+             653:     80(ptr) AccessChain 37(data) 39 52 40
+             654: 24(int16_t) Load 653
+             655:   17(ivec4) Load 19(ballot)
+             656: 24(int16_t) GroupNonUniformIAdd 177 PartitionedReduceNV 654 655
+             657:     80(ptr) AccessChain 37(data) 652 52 40
+                              Store 657 656
+             658:      6(int) Load 8(invocation)
+             659:     85(ptr) AccessChain 37(data) 45 52
+             660: 25(i16vec4) Load 659
+             661: 84(i16vec2) VectorShuffle 660 660 0 1
+             662:   17(ivec4) Load 19(ballot)
+             663: 84(i16vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 661 662
+             664:     80(ptr) AccessChain 37(data) 658 52 40
+             665: 24(int16_t) CompositeExtract 663 0
+                              Store 664 665
+             666:     80(ptr) AccessChain 37(data) 658 52 188
+             667: 24(int16_t) CompositeExtract 663 1
+                              Store 666 667
+             668:      6(int) Load 8(invocation)
+             669:     85(ptr) AccessChain 37(data) 52 52
+             670: 25(i16vec4) Load 669
+             671: 90(i16vec3) VectorShuffle 670 670 0 1 2
+             672:   17(ivec4) Load 19(ballot)
+             673: 90(i16vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 671 672
+             674:     80(ptr) AccessChain 37(data) 668 52 40
+             675: 24(int16_t) CompositeExtract 673 0
+                              Store 674 675
+             676:     80(ptr) AccessChain 37(data) 668 52 188
+             677: 24(int16_t) CompositeExtract 673 1
+                              Store 676 677
+             678:     80(ptr) AccessChain 37(data) 668 52 201
+             679: 24(int16_t) CompositeExtract 673 2
+                              Store 678 679
+             680:      6(int) Load 8(invocation)
+             681:     85(ptr) AccessChain 37(data) 58 52
+             682: 25(i16vec4) Load 681
+             683:   17(ivec4) Load 19(ballot)
+             684: 25(i16vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 682 683
+             685:     85(ptr) AccessChain 37(data) 680 52
+                              Store 685 684
+             686:      6(int) Load 8(invocation)
+             687:     80(ptr) AccessChain 37(data) 39 52 40
+             688: 24(int16_t) Load 687
+             689:   17(ivec4) Load 19(ballot)
+             690: 24(int16_t) GroupNonUniformIMul 177 PartitionedReduceNV 688 689
+             691:     80(ptr) AccessChain 37(data) 686 52 40
+                              Store 691 690
+             692:      6(int) Load 8(invocation)
+             693:     85(ptr) AccessChain 37(data) 45 52
+             694: 25(i16vec4) Load 693
+             695: 84(i16vec2) VectorShuffle 694 694 0 1
+             696:   17(ivec4) Load 19(ballot)
+             697: 84(i16vec2) GroupNonUniformIMul 177 PartitionedReduceNV 695 696
+             698:     80(ptr) AccessChain 37(data) 692 52 40
+             699: 24(int16_t) CompositeExtract 697 0
+                              Store 698 699
+             700:     80(ptr) AccessChain 37(data) 692 52 188
+             701: 24(int16_t) CompositeExtract 697 1
+                              Store 700 701
+             702:      6(int) Load 8(invocation)
+             703:     85(ptr) AccessChain 37(data) 52 52
+             704: 25(i16vec4) Load 703
+             705: 90(i16vec3) VectorShuffle 704 704 0 1 2
+             706:   17(ivec4) Load 19(ballot)
+             707: 90(i16vec3) GroupNonUniformIMul 177 PartitionedReduceNV 705 706
+             708:     80(ptr) AccessChain 37(data) 702 52 40
+             709: 24(int16_t) CompositeExtract 707 0
+                              Store 708 709
+             710:     80(ptr) AccessChain 37(data) 702 52 188
+             711: 24(int16_t) CompositeExtract 707 1
+                              Store 710 711
+             712:     80(ptr) AccessChain 37(data) 702 52 201
+             713: 24(int16_t) CompositeExtract 707 2
+                              Store 712 713
              714:      6(int) Load 8(invocation)
-             715:     80(ptr) AccessChain 37(data) 39 52 40
-             716: 24(int16_t) Load 715
+             715:     85(ptr) AccessChain 37(data) 58 52
+             716: 25(i16vec4) Load 715
              717:   17(ivec4) Load 19(ballot)
-             718: 24(int16_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 716 717
-             719:     80(ptr) AccessChain 37(data) 714 52 40
+             718: 25(i16vec4) GroupNonUniformIMul 177 PartitionedReduceNV 716 717
+             719:     85(ptr) AccessChain 37(data) 714 52
                               Store 719 718
              720:      6(int) Load 8(invocation)
-             721:     85(ptr) AccessChain 37(data) 45 52
-             722: 25(i16vec4) Load 721
-             723: 84(i16vec2) VectorShuffle 722 722 0 1
-             724:   17(ivec4) Load 19(ballot)
-             725: 84(i16vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 723 724
-             726:     85(ptr) AccessChain 37(data) 720 52
-             727: 25(i16vec4) Load 726
-             728: 25(i16vec4) VectorShuffle 727 725 4 5 2 3
-                              Store 726 728
-             729:      6(int) Load 8(invocation)
-             730:     85(ptr) AccessChain 37(data) 52 52
-             731: 25(i16vec4) Load 730
-             732: 90(i16vec3) VectorShuffle 731 731 0 1 2
-             733:   17(ivec4) Load 19(ballot)
-             734: 90(i16vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 732 733
-             735:     85(ptr) AccessChain 37(data) 729 52
-             736: 25(i16vec4) Load 735
-             737: 25(i16vec4) VectorShuffle 736 734 4 5 6 3
-                              Store 735 737
-             738:      6(int) Load 8(invocation)
-             739:     85(ptr) AccessChain 37(data) 58 52
-             740: 25(i16vec4) Load 739
-             741:   17(ivec4) Load 19(ballot)
-             742: 25(i16vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 740 741
-             743:     85(ptr) AccessChain 37(data) 738 52
-                              Store 743 742
-             744:      6(int) Load 8(invocation)
-             745:     80(ptr) AccessChain 37(data) 39 52 40
-             746: 24(int16_t) Load 745
-             747:   17(ivec4) Load 19(ballot)
-             748: 24(int16_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 746 747
-             749:     80(ptr) AccessChain 37(data) 744 52 40
-                              Store 749 748
-             750:      6(int) Load 8(invocation)
-             751:     85(ptr) AccessChain 37(data) 45 52
-             752: 25(i16vec4) Load 751
-             753: 84(i16vec2) VectorShuffle 752 752 0 1
-             754:   17(ivec4) Load 19(ballot)
-             755: 84(i16vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 753 754
-             756:     85(ptr) AccessChain 37(data) 750 52
-             757: 25(i16vec4) Load 756
-             758: 25(i16vec4) VectorShuffle 757 755 4 5 2 3
-                              Store 756 758
-             759:      6(int) Load 8(invocation)
-             760:     85(ptr) AccessChain 37(data) 52 52
-             761: 25(i16vec4) Load 760
-             762: 90(i16vec3) VectorShuffle 761 761 0 1 2
-             763:   17(ivec4) Load 19(ballot)
-             764: 90(i16vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 762 763
-             765:     85(ptr) AccessChain 37(data) 759 52
-             766: 25(i16vec4) Load 765
-             767: 25(i16vec4) VectorShuffle 766 764 4 5 6 3
-                              Store 765 767
-             768:      6(int) Load 8(invocation)
-             769:     85(ptr) AccessChain 37(data) 58 52
-             770: 25(i16vec4) Load 769
-             771:   17(ivec4) Load 19(ballot)
-             772: 25(i16vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 770 771
-             773:     85(ptr) AccessChain 37(data) 768 52
-                              Store 773 772
-             774:      6(int) Load 8(invocation)
-             775:     80(ptr) AccessChain 37(data) 39 52 40
-             776: 24(int16_t) Load 775
-             777:   17(ivec4) Load 19(ballot)
-             778: 24(int16_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 776 777
-             779:     80(ptr) AccessChain 37(data) 774 52 40
-                              Store 779 778
-             780:      6(int) Load 8(invocation)
-             781:     85(ptr) AccessChain 37(data) 45 52
-             782: 25(i16vec4) Load 781
-             783: 84(i16vec2) VectorShuffle 782 782 0 1
-             784:   17(ivec4) Load 19(ballot)
-             785: 84(i16vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 783 784
-             786:     85(ptr) AccessChain 37(data) 780 52
-             787: 25(i16vec4) Load 786
-             788: 25(i16vec4) VectorShuffle 787 785 4 5 2 3
-                              Store 786 788
-             789:      6(int) Load 8(invocation)
-             790:     85(ptr) AccessChain 37(data) 52 52
-             791: 25(i16vec4) Load 790
-             792: 90(i16vec3) VectorShuffle 791 791 0 1 2
-             793:   17(ivec4) Load 19(ballot)
-             794: 90(i16vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 792 793
-             795:     85(ptr) AccessChain 37(data) 789 52
+             721:     80(ptr) AccessChain 37(data) 39 52 40
+             722: 24(int16_t) Load 721
+             723:   17(ivec4) Load 19(ballot)
+             724: 24(int16_t) GroupNonUniformSMin 177 PartitionedReduceNV 722 723
+             725:     80(ptr) AccessChain 37(data) 720 52 40
+                              Store 725 724
+             726:      6(int) Load 8(invocation)
+             727:     85(ptr) AccessChain 37(data) 45 52
+             728: 25(i16vec4) Load 727
+             729: 84(i16vec2) VectorShuffle 728 728 0 1
+             730:   17(ivec4) Load 19(ballot)
+             731: 84(i16vec2) GroupNonUniformSMin 177 PartitionedReduceNV 729 730
+             732:     80(ptr) AccessChain 37(data) 726 52 40
+             733: 24(int16_t) CompositeExtract 731 0
+                              Store 732 733
+             734:     80(ptr) AccessChain 37(data) 726 52 188
+             735: 24(int16_t) CompositeExtract 731 1
+                              Store 734 735
+             736:      6(int) Load 8(invocation)
+             737:     85(ptr) AccessChain 37(data) 52 52
+             738: 25(i16vec4) Load 737
+             739: 90(i16vec3) VectorShuffle 738 738 0 1 2
+             740:   17(ivec4) Load 19(ballot)
+             741: 90(i16vec3) GroupNonUniformSMin 177 PartitionedReduceNV 739 740
+             742:     80(ptr) AccessChain 37(data) 736 52 40
+             743: 24(int16_t) CompositeExtract 741 0
+                              Store 742 743
+             744:     80(ptr) AccessChain 37(data) 736 52 188
+             745: 24(int16_t) CompositeExtract 741 1
+                              Store 744 745
+             746:     80(ptr) AccessChain 37(data) 736 52 201
+             747: 24(int16_t) CompositeExtract 741 2
+                              Store 746 747
+             748:      6(int) Load 8(invocation)
+             749:     85(ptr) AccessChain 37(data) 58 52
+             750: 25(i16vec4) Load 749
+             751:   17(ivec4) Load 19(ballot)
+             752: 25(i16vec4) GroupNonUniformSMin 177 PartitionedReduceNV 750 751
+             753:     85(ptr) AccessChain 37(data) 748 52
+                              Store 753 752
+             754:      6(int) Load 8(invocation)
+             755:     80(ptr) AccessChain 37(data) 39 52 40
+             756: 24(int16_t) Load 755
+             757:   17(ivec4) Load 19(ballot)
+             758: 24(int16_t) GroupNonUniformSMax 177 PartitionedReduceNV 756 757
+             759:     80(ptr) AccessChain 37(data) 754 52 40
+                              Store 759 758
+             760:      6(int) Load 8(invocation)
+             761:     85(ptr) AccessChain 37(data) 45 52
+             762: 25(i16vec4) Load 761
+             763: 84(i16vec2) VectorShuffle 762 762 0 1
+             764:   17(ivec4) Load 19(ballot)
+             765: 84(i16vec2) GroupNonUniformSMax 177 PartitionedReduceNV 763 764
+             766:     80(ptr) AccessChain 37(data) 760 52 40
+             767: 24(int16_t) CompositeExtract 765 0
+                              Store 766 767
+             768:     80(ptr) AccessChain 37(data) 760 52 188
+             769: 24(int16_t) CompositeExtract 765 1
+                              Store 768 769
+             770:      6(int) Load 8(invocation)
+             771:     85(ptr) AccessChain 37(data) 52 52
+             772: 25(i16vec4) Load 771
+             773: 90(i16vec3) VectorShuffle 772 772 0 1 2
+             774:   17(ivec4) Load 19(ballot)
+             775: 90(i16vec3) GroupNonUniformSMax 177 PartitionedReduceNV 773 774
+             776:     80(ptr) AccessChain 37(data) 770 52 40
+             777: 24(int16_t) CompositeExtract 775 0
+                              Store 776 777
+             778:     80(ptr) AccessChain 37(data) 770 52 188
+             779: 24(int16_t) CompositeExtract 775 1
+                              Store 778 779
+             780:     80(ptr) AccessChain 37(data) 770 52 201
+             781: 24(int16_t) CompositeExtract 775 2
+                              Store 780 781
+             782:      6(int) Load 8(invocation)
+             783:     85(ptr) AccessChain 37(data) 58 52
+             784: 25(i16vec4) Load 783
+             785:   17(ivec4) Load 19(ballot)
+             786: 25(i16vec4) GroupNonUniformSMax 177 PartitionedReduceNV 784 785
+             787:     85(ptr) AccessChain 37(data) 782 52
+                              Store 787 786
+             788:      6(int) Load 8(invocation)
+             789:     80(ptr) AccessChain 37(data) 39 52 40
+             790: 24(int16_t) Load 789
+             791:   17(ivec4) Load 19(ballot)
+             792: 24(int16_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 790 791
+             793:     80(ptr) AccessChain 37(data) 788 52 40
+                              Store 793 792
+             794:      6(int) Load 8(invocation)
+             795:     85(ptr) AccessChain 37(data) 45 52
              796: 25(i16vec4) Load 795
-             797: 25(i16vec4) VectorShuffle 796 794 4 5 6 3
-                              Store 795 797
-             798:      6(int) Load 8(invocation)
-             799:     85(ptr) AccessChain 37(data) 58 52
-             800: 25(i16vec4) Load 799
-             801:   17(ivec4) Load 19(ballot)
-             802: 25(i16vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 800 801
-             803:     85(ptr) AccessChain 37(data) 798 52
-                              Store 803 802
+             797: 84(i16vec2) VectorShuffle 796 796 0 1
+             798:   17(ivec4) Load 19(ballot)
+             799: 84(i16vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 797 798
+             800:     80(ptr) AccessChain 37(data) 794 52 40
+             801: 24(int16_t) CompositeExtract 799 0
+                              Store 800 801
+             802:     80(ptr) AccessChain 37(data) 794 52 188
+             803: 24(int16_t) CompositeExtract 799 1
+                              Store 802 803
              804:      6(int) Load 8(invocation)
-             805:     98(ptr) AccessChain 37(data) 39 58 40
-             806: 26(int16_t) Load 805
-             807:   17(ivec4) Load 19(ballot)
-             808: 26(int16_t) GroupNonUniformIAdd 177 PartitionedReduceNV 806 807
-             809:     98(ptr) AccessChain 37(data) 804 58 40
-                              Store 809 808
-             810:      6(int) Load 8(invocation)
-             811:    103(ptr) AccessChain 37(data) 45 58
-             812: 27(i16vec4) Load 811
-             813:102(i16vec2) VectorShuffle 812 812 0 1
-             814:   17(ivec4) Load 19(ballot)
-             815:102(i16vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 813 814
-             816:    103(ptr) AccessChain 37(data) 810 58
-             817: 27(i16vec4) Load 816
-             818: 27(i16vec4) VectorShuffle 817 815 4 5 2 3
-                              Store 816 818
-             819:      6(int) Load 8(invocation)
-             820:    103(ptr) AccessChain 37(data) 52 58
-             821: 27(i16vec4) Load 820
-             822:108(i16vec3) VectorShuffle 821 821 0 1 2
-             823:   17(ivec4) Load 19(ballot)
-             824:108(i16vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 822 823
-             825:    103(ptr) AccessChain 37(data) 819 58
-             826: 27(i16vec4) Load 825
-             827: 27(i16vec4) VectorShuffle 826 824 4 5 6 3
-                              Store 825 827
+             805:     85(ptr) AccessChain 37(data) 52 52
+             806: 25(i16vec4) Load 805
+             807: 90(i16vec3) VectorShuffle 806 806 0 1 2
+             808:   17(ivec4) Load 19(ballot)
+             809: 90(i16vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 807 808
+             810:     80(ptr) AccessChain 37(data) 804 52 40
+             811: 24(int16_t) CompositeExtract 809 0
+                              Store 810 811
+             812:     80(ptr) AccessChain 37(data) 804 52 188
+             813: 24(int16_t) CompositeExtract 809 1
+                              Store 812 813
+             814:     80(ptr) AccessChain 37(data) 804 52 201
+             815: 24(int16_t) CompositeExtract 809 2
+                              Store 814 815
+             816:      6(int) Load 8(invocation)
+             817:     85(ptr) AccessChain 37(data) 58 52
+             818: 25(i16vec4) Load 817
+             819:   17(ivec4) Load 19(ballot)
+             820: 25(i16vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 818 819
+             821:     85(ptr) AccessChain 37(data) 816 52
+                              Store 821 820
+             822:      6(int) Load 8(invocation)
+             823:     80(ptr) AccessChain 37(data) 39 52 40
+             824: 24(int16_t) Load 823
+             825:   17(ivec4) Load 19(ballot)
+             826: 24(int16_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 824 825
+             827:     80(ptr) AccessChain 37(data) 822 52 40
+                              Store 827 826
              828:      6(int) Load 8(invocation)
-             829:    103(ptr) AccessChain 37(data) 58 58
-             830: 27(i16vec4) Load 829
-             831:   17(ivec4) Load 19(ballot)
-             832: 27(i16vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 830 831
-             833:    103(ptr) AccessChain 37(data) 828 58
-                              Store 833 832
-             834:      6(int) Load 8(invocation)
-             835:     98(ptr) AccessChain 37(data) 39 58 40
-             836: 26(int16_t) Load 835
-             837:   17(ivec4) Load 19(ballot)
-             838: 26(int16_t) GroupNonUniformIMul 177 PartitionedReduceNV 836 837
-             839:     98(ptr) AccessChain 37(data) 834 58 40
-                              Store 839 838
-             840:      6(int) Load 8(invocation)
-             841:    103(ptr) AccessChain 37(data) 45 58
-             842: 27(i16vec4) Load 841
-             843:102(i16vec2) VectorShuffle 842 842 0 1
-             844:   17(ivec4) Load 19(ballot)
-             845:102(i16vec2) GroupNonUniformIMul 177 PartitionedReduceNV 843 844
-             846:    103(ptr) AccessChain 37(data) 840 58
-             847: 27(i16vec4) Load 846
-             848: 27(i16vec4) VectorShuffle 847 845 4 5 2 3
-                              Store 846 848
-             849:      6(int) Load 8(invocation)
-             850:    103(ptr) AccessChain 37(data) 52 58
-             851: 27(i16vec4) Load 850
-             852:108(i16vec3) VectorShuffle 851 851 0 1 2
+             829:     85(ptr) AccessChain 37(data) 45 52
+             830: 25(i16vec4) Load 829
+             831: 84(i16vec2) VectorShuffle 830 830 0 1
+             832:   17(ivec4) Load 19(ballot)
+             833: 84(i16vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 831 832
+             834:     80(ptr) AccessChain 37(data) 828 52 40
+             835: 24(int16_t) CompositeExtract 833 0
+                              Store 834 835
+             836:     80(ptr) AccessChain 37(data) 828 52 188
+             837: 24(int16_t) CompositeExtract 833 1
+                              Store 836 837
+             838:      6(int) Load 8(invocation)
+             839:     85(ptr) AccessChain 37(data) 52 52
+             840: 25(i16vec4) Load 839
+             841: 90(i16vec3) VectorShuffle 840 840 0 1 2
+             842:   17(ivec4) Load 19(ballot)
+             843: 90(i16vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 841 842
+             844:     80(ptr) AccessChain 37(data) 838 52 40
+             845: 24(int16_t) CompositeExtract 843 0
+                              Store 844 845
+             846:     80(ptr) AccessChain 37(data) 838 52 188
+             847: 24(int16_t) CompositeExtract 843 1
+                              Store 846 847
+             848:     80(ptr) AccessChain 37(data) 838 52 201
+             849: 24(int16_t) CompositeExtract 843 2
+                              Store 848 849
+             850:      6(int) Load 8(invocation)
+             851:     85(ptr) AccessChain 37(data) 58 52
+             852: 25(i16vec4) Load 851
              853:   17(ivec4) Load 19(ballot)
-             854:108(i16vec3) GroupNonUniformIMul 177 PartitionedReduceNV 852 853
-             855:    103(ptr) AccessChain 37(data) 849 58
-             856: 27(i16vec4) Load 855
-             857: 27(i16vec4) VectorShuffle 856 854 4 5 6 3
-                              Store 855 857
-             858:      6(int) Load 8(invocation)
-             859:    103(ptr) AccessChain 37(data) 58 58
-             860: 27(i16vec4) Load 859
-             861:   17(ivec4) Load 19(ballot)
-             862: 27(i16vec4) GroupNonUniformIMul 177 PartitionedReduceNV 860 861
-             863:    103(ptr) AccessChain 37(data) 858 58
-                              Store 863 862
-             864:      6(int) Load 8(invocation)
-             865:     98(ptr) AccessChain 37(data) 39 58 40
-             866: 26(int16_t) Load 865
-             867:   17(ivec4) Load 19(ballot)
-             868: 26(int16_t) GroupNonUniformUMin 177 PartitionedReduceNV 866 867
-             869:     98(ptr) AccessChain 37(data) 864 58 40
-                              Store 869 868
-             870:      6(int) Load 8(invocation)
-             871:    103(ptr) AccessChain 37(data) 45 58
-             872: 27(i16vec4) Load 871
-             873:102(i16vec2) VectorShuffle 872 872 0 1
-             874:   17(ivec4) Load 19(ballot)
-             875:102(i16vec2) GroupNonUniformUMin 177 PartitionedReduceNV 873 874
-             876:    103(ptr) AccessChain 37(data) 870 58
-             877: 27(i16vec4) Load 876
-             878: 27(i16vec4) VectorShuffle 877 875 4 5 2 3
-                              Store 876 878
-             879:      6(int) Load 8(invocation)
-             880:    103(ptr) AccessChain 37(data) 52 58
-             881: 27(i16vec4) Load 880
-             882:108(i16vec3) VectorShuffle 881 881 0 1 2
-             883:   17(ivec4) Load 19(ballot)
-             884:108(i16vec3) GroupNonUniformUMin 177 PartitionedReduceNV 882 883
-             885:    103(ptr) AccessChain 37(data) 879 58
-             886: 27(i16vec4) Load 885
-             887: 27(i16vec4) VectorShuffle 886 884 4 5 6 3
-                              Store 885 887
-             888:      6(int) Load 8(invocation)
-             889:    103(ptr) AccessChain 37(data) 58 58
-             890: 27(i16vec4) Load 889
-             891:   17(ivec4) Load 19(ballot)
-             892: 27(i16vec4) GroupNonUniformUMin 177 PartitionedReduceNV 890 891
-             893:    103(ptr) AccessChain 37(data) 888 58
-                              Store 893 892
-             894:      6(int) Load 8(invocation)
-             895:     98(ptr) AccessChain 37(data) 39 58 40
-             896: 26(int16_t) Load 895
-             897:   17(ivec4) Load 19(ballot)
-             898: 26(int16_t) GroupNonUniformUMax 177 PartitionedReduceNV 896 897
-             899:     98(ptr) AccessChain 37(data) 894 58 40
-                              Store 899 898
-             900:      6(int) Load 8(invocation)
-             901:    103(ptr) AccessChain 37(data) 45 58
-             902: 27(i16vec4) Load 901
-             903:102(i16vec2) VectorShuffle 902 902 0 1
-             904:   17(ivec4) Load 19(ballot)
-             905:102(i16vec2) GroupNonUniformUMax 177 PartitionedReduceNV 903 904
-             906:    103(ptr) AccessChain 37(data) 900 58
-             907: 27(i16vec4) Load 906
-             908: 27(i16vec4) VectorShuffle 907 905 4 5 2 3
-                              Store 906 908
-             909:      6(int) Load 8(invocation)
-             910:    103(ptr) AccessChain 37(data) 52 58
-             911: 27(i16vec4) Load 910
-             912:108(i16vec3) VectorShuffle 911 911 0 1 2
-             913:   17(ivec4) Load 19(ballot)
-             914:108(i16vec3) GroupNonUniformUMax 177 PartitionedReduceNV 912 913
-             915:    103(ptr) AccessChain 37(data) 909 58
-             916: 27(i16vec4) Load 915
-             917: 27(i16vec4) VectorShuffle 916 914 4 5 6 3
-                              Store 915 917
+             854: 25(i16vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 852 853
+             855:     85(ptr) AccessChain 37(data) 850 52
+                              Store 855 854
+             856:      6(int) Load 8(invocation)
+             857:     80(ptr) AccessChain 37(data) 39 52 40
+             858: 24(int16_t) Load 857
+             859:   17(ivec4) Load 19(ballot)
+             860: 24(int16_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 858 859
+             861:     80(ptr) AccessChain 37(data) 856 52 40
+                              Store 861 860
+             862:      6(int) Load 8(invocation)
+             863:     85(ptr) AccessChain 37(data) 45 52
+             864: 25(i16vec4) Load 863
+             865: 84(i16vec2) VectorShuffle 864 864 0 1
+             866:   17(ivec4) Load 19(ballot)
+             867: 84(i16vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 865 866
+             868:     80(ptr) AccessChain 37(data) 862 52 40
+             869: 24(int16_t) CompositeExtract 867 0
+                              Store 868 869
+             870:     80(ptr) AccessChain 37(data) 862 52 188
+             871: 24(int16_t) CompositeExtract 867 1
+                              Store 870 871
+             872:      6(int) Load 8(invocation)
+             873:     85(ptr) AccessChain 37(data) 52 52
+             874: 25(i16vec4) Load 873
+             875: 90(i16vec3) VectorShuffle 874 874 0 1 2
+             876:   17(ivec4) Load 19(ballot)
+             877: 90(i16vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 875 876
+             878:     80(ptr) AccessChain 37(data) 872 52 40
+             879: 24(int16_t) CompositeExtract 877 0
+                              Store 878 879
+             880:     80(ptr) AccessChain 37(data) 872 52 188
+             881: 24(int16_t) CompositeExtract 877 1
+                              Store 880 881
+             882:     80(ptr) AccessChain 37(data) 872 52 201
+             883: 24(int16_t) CompositeExtract 877 2
+                              Store 882 883
+             884:      6(int) Load 8(invocation)
+             885:     85(ptr) AccessChain 37(data) 58 52
+             886: 25(i16vec4) Load 885
+             887:   17(ivec4) Load 19(ballot)
+             888: 25(i16vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 886 887
+             889:     85(ptr) AccessChain 37(data) 884 52
+                              Store 889 888
+             890:      6(int) Load 8(invocation)
+             891:     98(ptr) AccessChain 37(data) 39 58 40
+             892: 26(int16_t) Load 891
+             893:   17(ivec4) Load 19(ballot)
+             894: 26(int16_t) GroupNonUniformIAdd 177 PartitionedReduceNV 892 893
+             895:     98(ptr) AccessChain 37(data) 890 58 40
+                              Store 895 894
+             896:      6(int) Load 8(invocation)
+             897:    103(ptr) AccessChain 37(data) 45 58
+             898: 27(i16vec4) Load 897
+             899:102(i16vec2) VectorShuffle 898 898 0 1
+             900:   17(ivec4) Load 19(ballot)
+             901:102(i16vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 899 900
+             902:     98(ptr) AccessChain 37(data) 896 58 40
+             903: 26(int16_t) CompositeExtract 901 0
+                              Store 902 903
+             904:     98(ptr) AccessChain 37(data) 896 58 188
+             905: 26(int16_t) CompositeExtract 901 1
+                              Store 904 905
+             906:      6(int) Load 8(invocation)
+             907:    103(ptr) AccessChain 37(data) 52 58
+             908: 27(i16vec4) Load 907
+             909:108(i16vec3) VectorShuffle 908 908 0 1 2
+             910:   17(ivec4) Load 19(ballot)
+             911:108(i16vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 909 910
+             912:     98(ptr) AccessChain 37(data) 906 58 40
+             913: 26(int16_t) CompositeExtract 911 0
+                              Store 912 913
+             914:     98(ptr) AccessChain 37(data) 906 58 188
+             915: 26(int16_t) CompositeExtract 911 1
+                              Store 914 915
+             916:     98(ptr) AccessChain 37(data) 906 58 201
+             917: 26(int16_t) CompositeExtract 911 2
+                              Store 916 917
              918:      6(int) Load 8(invocation)
              919:    103(ptr) AccessChain 37(data) 58 58
              920: 27(i16vec4) Load 919
              921:   17(ivec4) Load 19(ballot)
-             922: 27(i16vec4) GroupNonUniformUMax 177 PartitionedReduceNV 920 921
+             922: 27(i16vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 920 921
              923:    103(ptr) AccessChain 37(data) 918 58
                               Store 923 922
              924:      6(int) Load 8(invocation)
              925:     98(ptr) AccessChain 37(data) 39 58 40
              926: 26(int16_t) Load 925
              927:   17(ivec4) Load 19(ballot)
-             928: 26(int16_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 926 927
+             928: 26(int16_t) GroupNonUniformIMul 177 PartitionedReduceNV 926 927
              929:     98(ptr) AccessChain 37(data) 924 58 40
                               Store 929 928
              930:      6(int) Load 8(invocation)
@@ -1129,707 +1182,977 @@
              932: 27(i16vec4) Load 931
              933:102(i16vec2) VectorShuffle 932 932 0 1
              934:   17(ivec4) Load 19(ballot)
-             935:102(i16vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 933 934
-             936:    103(ptr) AccessChain 37(data) 930 58
-             937: 27(i16vec4) Load 936
-             938: 27(i16vec4) VectorShuffle 937 935 4 5 2 3
-                              Store 936 938
-             939:      6(int) Load 8(invocation)
-             940:    103(ptr) AccessChain 37(data) 52 58
-             941: 27(i16vec4) Load 940
-             942:108(i16vec3) VectorShuffle 941 941 0 1 2
-             943:   17(ivec4) Load 19(ballot)
-             944:108(i16vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 942 943
-             945:    103(ptr) AccessChain 37(data) 939 58
-             946: 27(i16vec4) Load 945
-             947: 27(i16vec4) VectorShuffle 946 944 4 5 6 3
-                              Store 945 947
-             948:      6(int) Load 8(invocation)
-             949:    103(ptr) AccessChain 37(data) 58 58
-             950: 27(i16vec4) Load 949
-             951:   17(ivec4) Load 19(ballot)
-             952: 27(i16vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 950 951
-             953:    103(ptr) AccessChain 37(data) 948 58
-                              Store 953 952
-             954:      6(int) Load 8(invocation)
-             955:     98(ptr) AccessChain 37(data) 39 58 40
-             956: 26(int16_t) Load 955
-             957:   17(ivec4) Load 19(ballot)
-             958: 26(int16_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 956 957
-             959:     98(ptr) AccessChain 37(data) 954 58 40
-                              Store 959 958
-             960:      6(int) Load 8(invocation)
-             961:    103(ptr) AccessChain 37(data) 45 58
-             962: 27(i16vec4) Load 961
-             963:102(i16vec2) VectorShuffle 962 962 0 1
-             964:   17(ivec4) Load 19(ballot)
-             965:102(i16vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 963 964
-             966:    103(ptr) AccessChain 37(data) 960 58
-             967: 27(i16vec4) Load 966
-             968: 27(i16vec4) VectorShuffle 967 965 4 5 2 3
-                              Store 966 968
-             969:      6(int) Load 8(invocation)
-             970:    103(ptr) AccessChain 37(data) 52 58
-             971: 27(i16vec4) Load 970
-             972:108(i16vec3) VectorShuffle 971 971 0 1 2
-             973:   17(ivec4) Load 19(ballot)
-             974:108(i16vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 972 973
-             975:    103(ptr) AccessChain 37(data) 969 58
+             935:102(i16vec2) GroupNonUniformIMul 177 PartitionedReduceNV 933 934
+             936:     98(ptr) AccessChain 37(data) 930 58 40
+             937: 26(int16_t) CompositeExtract 935 0
+                              Store 936 937
+             938:     98(ptr) AccessChain 37(data) 930 58 188
+             939: 26(int16_t) CompositeExtract 935 1
+                              Store 938 939
+             940:      6(int) Load 8(invocation)
+             941:    103(ptr) AccessChain 37(data) 52 58
+             942: 27(i16vec4) Load 941
+             943:108(i16vec3) VectorShuffle 942 942 0 1 2
+             944:   17(ivec4) Load 19(ballot)
+             945:108(i16vec3) GroupNonUniformIMul 177 PartitionedReduceNV 943 944
+             946:     98(ptr) AccessChain 37(data) 940 58 40
+             947: 26(int16_t) CompositeExtract 945 0
+                              Store 946 947
+             948:     98(ptr) AccessChain 37(data) 940 58 188
+             949: 26(int16_t) CompositeExtract 945 1
+                              Store 948 949
+             950:     98(ptr) AccessChain 37(data) 940 58 201
+             951: 26(int16_t) CompositeExtract 945 2
+                              Store 950 951
+             952:      6(int) Load 8(invocation)
+             953:    103(ptr) AccessChain 37(data) 58 58
+             954: 27(i16vec4) Load 953
+             955:   17(ivec4) Load 19(ballot)
+             956: 27(i16vec4) GroupNonUniformIMul 177 PartitionedReduceNV 954 955
+             957:    103(ptr) AccessChain 37(data) 952 58
+                              Store 957 956
+             958:      6(int) Load 8(invocation)
+             959:     98(ptr) AccessChain 37(data) 39 58 40
+             960: 26(int16_t) Load 959
+             961:   17(ivec4) Load 19(ballot)
+             962: 26(int16_t) GroupNonUniformUMin 177 PartitionedReduceNV 960 961
+             963:     98(ptr) AccessChain 37(data) 958 58 40
+                              Store 963 962
+             964:      6(int) Load 8(invocation)
+             965:    103(ptr) AccessChain 37(data) 45 58
+             966: 27(i16vec4) Load 965
+             967:102(i16vec2) VectorShuffle 966 966 0 1
+             968:   17(ivec4) Load 19(ballot)
+             969:102(i16vec2) GroupNonUniformUMin 177 PartitionedReduceNV 967 968
+             970:     98(ptr) AccessChain 37(data) 964 58 40
+             971: 26(int16_t) CompositeExtract 969 0
+                              Store 970 971
+             972:     98(ptr) AccessChain 37(data) 964 58 188
+             973: 26(int16_t) CompositeExtract 969 1
+                              Store 972 973
+             974:      6(int) Load 8(invocation)
+             975:    103(ptr) AccessChain 37(data) 52 58
              976: 27(i16vec4) Load 975
-             977: 27(i16vec4) VectorShuffle 976 974 4 5 6 3
-                              Store 975 977
-             978:      6(int) Load 8(invocation)
-             979:    103(ptr) AccessChain 37(data) 58 58
-             980: 27(i16vec4) Load 979
-             981:   17(ivec4) Load 19(ballot)
-             982: 27(i16vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 980 981
-             983:    103(ptr) AccessChain 37(data) 978 58
-                              Store 983 982
-             984:      6(int) Load 8(invocation)
-             985:     98(ptr) AccessChain 37(data) 39 58 40
-             986: 26(int16_t) Load 985
-             987:   17(ivec4) Load 19(ballot)
-             988: 26(int16_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 986 987
-             989:     98(ptr) AccessChain 37(data) 984 58 40
-                              Store 989 988
-             990:      6(int) Load 8(invocation)
-             991:    103(ptr) AccessChain 37(data) 45 58
-             992: 27(i16vec4) Load 991
-             993:102(i16vec2) VectorShuffle 992 992 0 1
-             994:   17(ivec4) Load 19(ballot)
-             995:102(i16vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 993 994
-             996:    103(ptr) AccessChain 37(data) 990 58
-             997: 27(i16vec4) Load 996
-             998: 27(i16vec4) VectorShuffle 997 995 4 5 2 3
-                              Store 996 998
-             999:      6(int) Load 8(invocation)
-            1000:    103(ptr) AccessChain 37(data) 52 58
-            1001: 27(i16vec4) Load 1000
-            1002:108(i16vec3) VectorShuffle 1001 1001 0 1 2
-            1003:   17(ivec4) Load 19(ballot)
-            1004:108(i16vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1002 1003
-            1005:    103(ptr) AccessChain 37(data) 999 58
-            1006: 27(i16vec4) Load 1005
-            1007: 27(i16vec4) VectorShuffle 1006 1004 4 5 6 3
-                              Store 1005 1007
+             977:108(i16vec3) VectorShuffle 976 976 0 1 2
+             978:   17(ivec4) Load 19(ballot)
+             979:108(i16vec3) GroupNonUniformUMin 177 PartitionedReduceNV 977 978
+             980:     98(ptr) AccessChain 37(data) 974 58 40
+             981: 26(int16_t) CompositeExtract 979 0
+                              Store 980 981
+             982:     98(ptr) AccessChain 37(data) 974 58 188
+             983: 26(int16_t) CompositeExtract 979 1
+                              Store 982 983
+             984:     98(ptr) AccessChain 37(data) 974 58 201
+             985: 26(int16_t) CompositeExtract 979 2
+                              Store 984 985
+             986:      6(int) Load 8(invocation)
+             987:    103(ptr) AccessChain 37(data) 58 58
+             988: 27(i16vec4) Load 987
+             989:   17(ivec4) Load 19(ballot)
+             990: 27(i16vec4) GroupNonUniformUMin 177 PartitionedReduceNV 988 989
+             991:    103(ptr) AccessChain 37(data) 986 58
+                              Store 991 990
+             992:      6(int) Load 8(invocation)
+             993:     98(ptr) AccessChain 37(data) 39 58 40
+             994: 26(int16_t) Load 993
+             995:   17(ivec4) Load 19(ballot)
+             996: 26(int16_t) GroupNonUniformUMax 177 PartitionedReduceNV 994 995
+             997:     98(ptr) AccessChain 37(data) 992 58 40
+                              Store 997 996
+             998:      6(int) Load 8(invocation)
+             999:    103(ptr) AccessChain 37(data) 45 58
+            1000: 27(i16vec4) Load 999
+            1001:102(i16vec2) VectorShuffle 1000 1000 0 1
+            1002:   17(ivec4) Load 19(ballot)
+            1003:102(i16vec2) GroupNonUniformUMax 177 PartitionedReduceNV 1001 1002
+            1004:     98(ptr) AccessChain 37(data) 998 58 40
+            1005: 26(int16_t) CompositeExtract 1003 0
+                              Store 1004 1005
+            1006:     98(ptr) AccessChain 37(data) 998 58 188
+            1007: 26(int16_t) CompositeExtract 1003 1
+                              Store 1006 1007
             1008:      6(int) Load 8(invocation)
-            1009:    103(ptr) AccessChain 37(data) 58 58
+            1009:    103(ptr) AccessChain 37(data) 52 58
             1010: 27(i16vec4) Load 1009
-            1011:   17(ivec4) Load 19(ballot)
-            1012: 27(i16vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1010 1011
-            1013:    103(ptr) AccessChain 37(data) 1008 58
-                              Store 1013 1012
-            1014:      6(int) Load 8(invocation)
-            1015:    117(ptr) AccessChain 37(data) 39 116 40
-            1016: 28(int64_t) Load 1015
-            1017:   17(ivec4) Load 19(ballot)
-            1018: 28(int64_t) GroupNonUniformIAdd 177 PartitionedReduceNV 1016 1017
-            1019:    117(ptr) AccessChain 37(data) 1014 116 40
-                              Store 1019 1018
+            1011:108(i16vec3) VectorShuffle 1010 1010 0 1 2
+            1012:   17(ivec4) Load 19(ballot)
+            1013:108(i16vec3) GroupNonUniformUMax 177 PartitionedReduceNV 1011 1012
+            1014:     98(ptr) AccessChain 37(data) 1008 58 40
+            1015: 26(int16_t) CompositeExtract 1013 0
+                              Store 1014 1015
+            1016:     98(ptr) AccessChain 37(data) 1008 58 188
+            1017: 26(int16_t) CompositeExtract 1013 1
+                              Store 1016 1017
+            1018:     98(ptr) AccessChain 37(data) 1008 58 201
+            1019: 26(int16_t) CompositeExtract 1013 2
+                              Store 1018 1019
             1020:      6(int) Load 8(invocation)
-            1021:    122(ptr) AccessChain 37(data) 45 116
-            1022: 29(i64vec4) Load 1021
-            1023:121(i64vec2) VectorShuffle 1022 1022 0 1
-            1024:   17(ivec4) Load 19(ballot)
-            1025:121(i64vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 1023 1024
-            1026:    122(ptr) AccessChain 37(data) 1020 116
-            1027: 29(i64vec4) Load 1026
-            1028: 29(i64vec4) VectorShuffle 1027 1025 4 5 2 3
-                              Store 1026 1028
-            1029:      6(int) Load 8(invocation)
-            1030:    122(ptr) AccessChain 37(data) 52 116
-            1031: 29(i64vec4) Load 1030
-            1032:127(i64vec3) VectorShuffle 1031 1031 0 1 2
-            1033:   17(ivec4) Load 19(ballot)
-            1034:127(i64vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 1032 1033
-            1035:    122(ptr) AccessChain 37(data) 1029 116
-            1036: 29(i64vec4) Load 1035
-            1037: 29(i64vec4) VectorShuffle 1036 1034 4 5 6 3
-                              Store 1035 1037
-            1038:      6(int) Load 8(invocation)
-            1039:    122(ptr) AccessChain 37(data) 58 116
-            1040: 29(i64vec4) Load 1039
-            1041:   17(ivec4) Load 19(ballot)
-            1042: 29(i64vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 1040 1041
-            1043:    122(ptr) AccessChain 37(data) 1038 116
-                              Store 1043 1042
-            1044:      6(int) Load 8(invocation)
-            1045:    117(ptr) AccessChain 37(data) 39 116 40
-            1046: 28(int64_t) Load 1045
-            1047:   17(ivec4) Load 19(ballot)
-            1048: 28(int64_t) GroupNonUniformIMul 177 PartitionedReduceNV 1046 1047
-            1049:    117(ptr) AccessChain 37(data) 1044 116 40
-                              Store 1049 1048
-            1050:      6(int) Load 8(invocation)
-            1051:    122(ptr) AccessChain 37(data) 45 116
-            1052: 29(i64vec4) Load 1051
-            1053:121(i64vec2) VectorShuffle 1052 1052 0 1
-            1054:   17(ivec4) Load 19(ballot)
-            1055:121(i64vec2) GroupNonUniformIMul 177 PartitionedReduceNV 1053 1054
-            1056:    122(ptr) AccessChain 37(data) 1050 116
-            1057: 29(i64vec4) Load 1056
-            1058: 29(i64vec4) VectorShuffle 1057 1055 4 5 2 3
-                              Store 1056 1058
-            1059:      6(int) Load 8(invocation)
-            1060:    122(ptr) AccessChain 37(data) 52 116
-            1061: 29(i64vec4) Load 1060
-            1062:127(i64vec3) VectorShuffle 1061 1061 0 1 2
+            1021:    103(ptr) AccessChain 37(data) 58 58
+            1022: 27(i16vec4) Load 1021
+            1023:   17(ivec4) Load 19(ballot)
+            1024: 27(i16vec4) GroupNonUniformUMax 177 PartitionedReduceNV 1022 1023
+            1025:    103(ptr) AccessChain 37(data) 1020 58
+                              Store 1025 1024
+            1026:      6(int) Load 8(invocation)
+            1027:     98(ptr) AccessChain 37(data) 39 58 40
+            1028: 26(int16_t) Load 1027
+            1029:   17(ivec4) Load 19(ballot)
+            1030: 26(int16_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1028 1029
+            1031:     98(ptr) AccessChain 37(data) 1026 58 40
+                              Store 1031 1030
+            1032:      6(int) Load 8(invocation)
+            1033:    103(ptr) AccessChain 37(data) 45 58
+            1034: 27(i16vec4) Load 1033
+            1035:102(i16vec2) VectorShuffle 1034 1034 0 1
+            1036:   17(ivec4) Load 19(ballot)
+            1037:102(i16vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1035 1036
+            1038:     98(ptr) AccessChain 37(data) 1032 58 40
+            1039: 26(int16_t) CompositeExtract 1037 0
+                              Store 1038 1039
+            1040:     98(ptr) AccessChain 37(data) 1032 58 188
+            1041: 26(int16_t) CompositeExtract 1037 1
+                              Store 1040 1041
+            1042:      6(int) Load 8(invocation)
+            1043:    103(ptr) AccessChain 37(data) 52 58
+            1044: 27(i16vec4) Load 1043
+            1045:108(i16vec3) VectorShuffle 1044 1044 0 1 2
+            1046:   17(ivec4) Load 19(ballot)
+            1047:108(i16vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1045 1046
+            1048:     98(ptr) AccessChain 37(data) 1042 58 40
+            1049: 26(int16_t) CompositeExtract 1047 0
+                              Store 1048 1049
+            1050:     98(ptr) AccessChain 37(data) 1042 58 188
+            1051: 26(int16_t) CompositeExtract 1047 1
+                              Store 1050 1051
+            1052:     98(ptr) AccessChain 37(data) 1042 58 201
+            1053: 26(int16_t) CompositeExtract 1047 2
+                              Store 1052 1053
+            1054:      6(int) Load 8(invocation)
+            1055:    103(ptr) AccessChain 37(data) 58 58
+            1056: 27(i16vec4) Load 1055
+            1057:   17(ivec4) Load 19(ballot)
+            1058: 27(i16vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1056 1057
+            1059:    103(ptr) AccessChain 37(data) 1054 58
+                              Store 1059 1058
+            1060:      6(int) Load 8(invocation)
+            1061:     98(ptr) AccessChain 37(data) 39 58 40
+            1062: 26(int16_t) Load 1061
             1063:   17(ivec4) Load 19(ballot)
-            1064:127(i64vec3) GroupNonUniformIMul 177 PartitionedReduceNV 1062 1063
-            1065:    122(ptr) AccessChain 37(data) 1059 116
-            1066: 29(i64vec4) Load 1065
-            1067: 29(i64vec4) VectorShuffle 1066 1064 4 5 6 3
-                              Store 1065 1067
-            1068:      6(int) Load 8(invocation)
-            1069:    122(ptr) AccessChain 37(data) 58 116
-            1070: 29(i64vec4) Load 1069
-            1071:   17(ivec4) Load 19(ballot)
-            1072: 29(i64vec4) GroupNonUniformIMul 177 PartitionedReduceNV 1070 1071
-            1073:    122(ptr) AccessChain 37(data) 1068 116
-                              Store 1073 1072
-            1074:      6(int) Load 8(invocation)
-            1075:    117(ptr) AccessChain 37(data) 39 116 40
-            1076: 28(int64_t) Load 1075
-            1077:   17(ivec4) Load 19(ballot)
-            1078: 28(int64_t) GroupNonUniformSMin 177 PartitionedReduceNV 1076 1077
-            1079:    117(ptr) AccessChain 37(data) 1074 116 40
-                              Store 1079 1078
-            1080:      6(int) Load 8(invocation)
-            1081:    122(ptr) AccessChain 37(data) 45 116
-            1082: 29(i64vec4) Load 1081
-            1083:121(i64vec2) VectorShuffle 1082 1082 0 1
-            1084:   17(ivec4) Load 19(ballot)
-            1085:121(i64vec2) GroupNonUniformSMin 177 PartitionedReduceNV 1083 1084
-            1086:    122(ptr) AccessChain 37(data) 1080 116
-            1087: 29(i64vec4) Load 1086
-            1088: 29(i64vec4) VectorShuffle 1087 1085 4 5 2 3
-                              Store 1086 1088
-            1089:      6(int) Load 8(invocation)
-            1090:    122(ptr) AccessChain 37(data) 52 116
-            1091: 29(i64vec4) Load 1090
-            1092:127(i64vec3) VectorShuffle 1091 1091 0 1 2
-            1093:   17(ivec4) Load 19(ballot)
-            1094:127(i64vec3) GroupNonUniformSMin 177 PartitionedReduceNV 1092 1093
-            1095:    122(ptr) AccessChain 37(data) 1089 116
-            1096: 29(i64vec4) Load 1095
-            1097: 29(i64vec4) VectorShuffle 1096 1094 4 5 6 3
-                              Store 1095 1097
-            1098:      6(int) Load 8(invocation)
-            1099:    122(ptr) AccessChain 37(data) 58 116
-            1100: 29(i64vec4) Load 1099
-            1101:   17(ivec4) Load 19(ballot)
-            1102: 29(i64vec4) GroupNonUniformSMin 177 PartitionedReduceNV 1100 1101
-            1103:    122(ptr) AccessChain 37(data) 1098 116
-                              Store 1103 1102
-            1104:      6(int) Load 8(invocation)
-            1105:    117(ptr) AccessChain 37(data) 39 116 40
-            1106: 28(int64_t) Load 1105
-            1107:   17(ivec4) Load 19(ballot)
-            1108: 28(int64_t) GroupNonUniformSMax 177 PartitionedReduceNV 1106 1107
-            1109:    117(ptr) AccessChain 37(data) 1104 116 40
-                              Store 1109 1108
+            1064: 26(int16_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1062 1063
+            1065:     98(ptr) AccessChain 37(data) 1060 58 40
+                              Store 1065 1064
+            1066:      6(int) Load 8(invocation)
+            1067:    103(ptr) AccessChain 37(data) 45 58
+            1068: 27(i16vec4) Load 1067
+            1069:102(i16vec2) VectorShuffle 1068 1068 0 1
+            1070:   17(ivec4) Load 19(ballot)
+            1071:102(i16vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1069 1070
+            1072:     98(ptr) AccessChain 37(data) 1066 58 40
+            1073: 26(int16_t) CompositeExtract 1071 0
+                              Store 1072 1073
+            1074:     98(ptr) AccessChain 37(data) 1066 58 188
+            1075: 26(int16_t) CompositeExtract 1071 1
+                              Store 1074 1075
+            1076:      6(int) Load 8(invocation)
+            1077:    103(ptr) AccessChain 37(data) 52 58
+            1078: 27(i16vec4) Load 1077
+            1079:108(i16vec3) VectorShuffle 1078 1078 0 1 2
+            1080:   17(ivec4) Load 19(ballot)
+            1081:108(i16vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1079 1080
+            1082:     98(ptr) AccessChain 37(data) 1076 58 40
+            1083: 26(int16_t) CompositeExtract 1081 0
+                              Store 1082 1083
+            1084:     98(ptr) AccessChain 37(data) 1076 58 188
+            1085: 26(int16_t) CompositeExtract 1081 1
+                              Store 1084 1085
+            1086:     98(ptr) AccessChain 37(data) 1076 58 201
+            1087: 26(int16_t) CompositeExtract 1081 2
+                              Store 1086 1087
+            1088:      6(int) Load 8(invocation)
+            1089:    103(ptr) AccessChain 37(data) 58 58
+            1090: 27(i16vec4) Load 1089
+            1091:   17(ivec4) Load 19(ballot)
+            1092: 27(i16vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1090 1091
+            1093:    103(ptr) AccessChain 37(data) 1088 58
+                              Store 1093 1092
+            1094:      6(int) Load 8(invocation)
+            1095:     98(ptr) AccessChain 37(data) 39 58 40
+            1096: 26(int16_t) Load 1095
+            1097:   17(ivec4) Load 19(ballot)
+            1098: 26(int16_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1096 1097
+            1099:     98(ptr) AccessChain 37(data) 1094 58 40
+                              Store 1099 1098
+            1100:      6(int) Load 8(invocation)
+            1101:    103(ptr) AccessChain 37(data) 45 58
+            1102: 27(i16vec4) Load 1101
+            1103:102(i16vec2) VectorShuffle 1102 1102 0 1
+            1104:   17(ivec4) Load 19(ballot)
+            1105:102(i16vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1103 1104
+            1106:     98(ptr) AccessChain 37(data) 1100 58 40
+            1107: 26(int16_t) CompositeExtract 1105 0
+                              Store 1106 1107
+            1108:     98(ptr) AccessChain 37(data) 1100 58 188
+            1109: 26(int16_t) CompositeExtract 1105 1
+                              Store 1108 1109
             1110:      6(int) Load 8(invocation)
-            1111:    122(ptr) AccessChain 37(data) 45 116
-            1112: 29(i64vec4) Load 1111
-            1113:121(i64vec2) VectorShuffle 1112 1112 0 1
+            1111:    103(ptr) AccessChain 37(data) 52 58
+            1112: 27(i16vec4) Load 1111
+            1113:108(i16vec3) VectorShuffle 1112 1112 0 1 2
             1114:   17(ivec4) Load 19(ballot)
-            1115:121(i64vec2) GroupNonUniformSMax 177 PartitionedReduceNV 1113 1114
-            1116:    122(ptr) AccessChain 37(data) 1110 116
-            1117: 29(i64vec4) Load 1116
-            1118: 29(i64vec4) VectorShuffle 1117 1115 4 5 2 3
-                              Store 1116 1118
-            1119:      6(int) Load 8(invocation)
-            1120:    122(ptr) AccessChain 37(data) 52 116
-            1121: 29(i64vec4) Load 1120
-            1122:127(i64vec3) VectorShuffle 1121 1121 0 1 2
-            1123:   17(ivec4) Load 19(ballot)
-            1124:127(i64vec3) GroupNonUniformSMax 177 PartitionedReduceNV 1122 1123
-            1125:    122(ptr) AccessChain 37(data) 1119 116
-            1126: 29(i64vec4) Load 1125
-            1127: 29(i64vec4) VectorShuffle 1126 1124 4 5 6 3
-                              Store 1125 1127
+            1115:108(i16vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1113 1114
+            1116:     98(ptr) AccessChain 37(data) 1110 58 40
+            1117: 26(int16_t) CompositeExtract 1115 0
+                              Store 1116 1117
+            1118:     98(ptr) AccessChain 37(data) 1110 58 188
+            1119: 26(int16_t) CompositeExtract 1115 1
+                              Store 1118 1119
+            1120:     98(ptr) AccessChain 37(data) 1110 58 201
+            1121: 26(int16_t) CompositeExtract 1115 2
+                              Store 1120 1121
+            1122:      6(int) Load 8(invocation)
+            1123:    103(ptr) AccessChain 37(data) 58 58
+            1124: 27(i16vec4) Load 1123
+            1125:   17(ivec4) Load 19(ballot)
+            1126: 27(i16vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1124 1125
+            1127:    103(ptr) AccessChain 37(data) 1122 58
+                              Store 1127 1126
             1128:      6(int) Load 8(invocation)
-            1129:    122(ptr) AccessChain 37(data) 58 116
-            1130: 29(i64vec4) Load 1129
+            1129:    117(ptr) AccessChain 37(data) 39 116 40
+            1130: 28(int64_t) Load 1129
             1131:   17(ivec4) Load 19(ballot)
-            1132: 29(i64vec4) GroupNonUniformSMax 177 PartitionedReduceNV 1130 1131
-            1133:    122(ptr) AccessChain 37(data) 1128 116
+            1132: 28(int64_t) GroupNonUniformIAdd 177 PartitionedReduceNV 1130 1131
+            1133:    117(ptr) AccessChain 37(data) 1128 116 40
                               Store 1133 1132
             1134:      6(int) Load 8(invocation)
-            1135:    117(ptr) AccessChain 37(data) 39 116 40
-            1136: 28(int64_t) Load 1135
-            1137:   17(ivec4) Load 19(ballot)
-            1138: 28(int64_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1136 1137
-            1139:    117(ptr) AccessChain 37(data) 1134 116 40
-                              Store 1139 1138
-            1140:      6(int) Load 8(invocation)
-            1141:    122(ptr) AccessChain 37(data) 45 116
-            1142: 29(i64vec4) Load 1141
-            1143:121(i64vec2) VectorShuffle 1142 1142 0 1
-            1144:   17(ivec4) Load 19(ballot)
-            1145:121(i64vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1143 1144
-            1146:    122(ptr) AccessChain 37(data) 1140 116
-            1147: 29(i64vec4) Load 1146
-            1148: 29(i64vec4) VectorShuffle 1147 1145 4 5 2 3
-                              Store 1146 1148
-            1149:      6(int) Load 8(invocation)
-            1150:    122(ptr) AccessChain 37(data) 52 116
-            1151: 29(i64vec4) Load 1150
-            1152:127(i64vec3) VectorShuffle 1151 1151 0 1 2
-            1153:   17(ivec4) Load 19(ballot)
-            1154:127(i64vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1152 1153
-            1155:    122(ptr) AccessChain 37(data) 1149 116
-            1156: 29(i64vec4) Load 1155
-            1157: 29(i64vec4) VectorShuffle 1156 1154 4 5 6 3
-                              Store 1155 1157
-            1158:      6(int) Load 8(invocation)
-            1159:    122(ptr) AccessChain 37(data) 58 116
-            1160: 29(i64vec4) Load 1159
-            1161:   17(ivec4) Load 19(ballot)
-            1162: 29(i64vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1160 1161
-            1163:    122(ptr) AccessChain 37(data) 1158 116
-                              Store 1163 1162
-            1164:      6(int) Load 8(invocation)
-            1165:    117(ptr) AccessChain 37(data) 39 116 40
-            1166: 28(int64_t) Load 1165
-            1167:   17(ivec4) Load 19(ballot)
-            1168: 28(int64_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1166 1167
-            1169:    117(ptr) AccessChain 37(data) 1164 116 40
-                              Store 1169 1168
-            1170:      6(int) Load 8(invocation)
-            1171:    122(ptr) AccessChain 37(data) 45 116
-            1172: 29(i64vec4) Load 1171
-            1173:121(i64vec2) VectorShuffle 1172 1172 0 1
-            1174:   17(ivec4) Load 19(ballot)
-            1175:121(i64vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1173 1174
-            1176:    122(ptr) AccessChain 37(data) 1170 116
-            1177: 29(i64vec4) Load 1176
-            1178: 29(i64vec4) VectorShuffle 1177 1175 4 5 2 3
-                              Store 1176 1178
-            1179:      6(int) Load 8(invocation)
-            1180:    122(ptr) AccessChain 37(data) 52 116
-            1181: 29(i64vec4) Load 1180
-            1182:127(i64vec3) VectorShuffle 1181 1181 0 1 2
-            1183:   17(ivec4) Load 19(ballot)
-            1184:127(i64vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1182 1183
-            1185:    122(ptr) AccessChain 37(data) 1179 116
-            1186: 29(i64vec4) Load 1185
-            1187: 29(i64vec4) VectorShuffle 1186 1184 4 5 6 3
-                              Store 1185 1187
-            1188:      6(int) Load 8(invocation)
-            1189:    122(ptr) AccessChain 37(data) 58 116
-            1190: 29(i64vec4) Load 1189
-            1191:   17(ivec4) Load 19(ballot)
-            1192: 29(i64vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1190 1191
-            1193:    122(ptr) AccessChain 37(data) 1188 116
-                              Store 1193 1192
-            1194:      6(int) Load 8(invocation)
-            1195:    117(ptr) AccessChain 37(data) 39 116 40
-            1196: 28(int64_t) Load 1195
-            1197:   17(ivec4) Load 19(ballot)
-            1198: 28(int64_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1196 1197
-            1199:    117(ptr) AccessChain 37(data) 1194 116 40
-                              Store 1199 1198
-            1200:      6(int) Load 8(invocation)
-            1201:    122(ptr) AccessChain 37(data) 45 116
-            1202: 29(i64vec4) Load 1201
-            1203:121(i64vec2) VectorShuffle 1202 1202 0 1
-            1204:   17(ivec4) Load 19(ballot)
-            1205:121(i64vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1203 1204
-            1206:    122(ptr) AccessChain 37(data) 1200 116
-            1207: 29(i64vec4) Load 1206
-            1208: 29(i64vec4) VectorShuffle 1207 1205 4 5 2 3
-                              Store 1206 1208
-            1209:      6(int) Load 8(invocation)
-            1210:    122(ptr) AccessChain 37(data) 52 116
-            1211: 29(i64vec4) Load 1210
-            1212:127(i64vec3) VectorShuffle 1211 1211 0 1 2
-            1213:   17(ivec4) Load 19(ballot)
-            1214:127(i64vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1212 1213
-            1215:    122(ptr) AccessChain 37(data) 1209 116
-            1216: 29(i64vec4) Load 1215
-            1217: 29(i64vec4) VectorShuffle 1216 1214 4 5 6 3
-                              Store 1215 1217
-            1218:      6(int) Load 8(invocation)
-            1219:    122(ptr) AccessChain 37(data) 58 116
-            1220: 29(i64vec4) Load 1219
-            1221:   17(ivec4) Load 19(ballot)
-            1222: 29(i64vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1220 1221
-            1223:    122(ptr) AccessChain 37(data) 1218 116
-                              Store 1223 1222
+            1135:    122(ptr) AccessChain 37(data) 45 116
+            1136: 29(i64vec4) Load 1135
+            1137:121(i64vec2) VectorShuffle 1136 1136 0 1
+            1138:   17(ivec4) Load 19(ballot)
+            1139:121(i64vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 1137 1138
+            1140:    117(ptr) AccessChain 37(data) 1134 116 40
+            1141: 28(int64_t) CompositeExtract 1139 0
+                              Store 1140 1141
+            1142:    117(ptr) AccessChain 37(data) 1134 116 188
+            1143: 28(int64_t) CompositeExtract 1139 1
+                              Store 1142 1143
+            1144:      6(int) Load 8(invocation)
+            1145:    122(ptr) AccessChain 37(data) 52 116
+            1146: 29(i64vec4) Load 1145
+            1147:127(i64vec3) VectorShuffle 1146 1146 0 1 2
+            1148:   17(ivec4) Load 19(ballot)
+            1149:127(i64vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 1147 1148
+            1150:    117(ptr) AccessChain 37(data) 1144 116 40
+            1151: 28(int64_t) CompositeExtract 1149 0
+                              Store 1150 1151
+            1152:    117(ptr) AccessChain 37(data) 1144 116 188
+            1153: 28(int64_t) CompositeExtract 1149 1
+                              Store 1152 1153
+            1154:    117(ptr) AccessChain 37(data) 1144 116 201
+            1155: 28(int64_t) CompositeExtract 1149 2
+                              Store 1154 1155
+            1156:      6(int) Load 8(invocation)
+            1157:    122(ptr) AccessChain 37(data) 58 116
+            1158: 29(i64vec4) Load 1157
+            1159:   17(ivec4) Load 19(ballot)
+            1160: 29(i64vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 1158 1159
+            1161:    122(ptr) AccessChain 37(data) 1156 116
+                              Store 1161 1160
+            1162:      6(int) Load 8(invocation)
+            1163:    117(ptr) AccessChain 37(data) 39 116 40
+            1164: 28(int64_t) Load 1163
+            1165:   17(ivec4) Load 19(ballot)
+            1166: 28(int64_t) GroupNonUniformIMul 177 PartitionedReduceNV 1164 1165
+            1167:    117(ptr) AccessChain 37(data) 1162 116 40
+                              Store 1167 1166
+            1168:      6(int) Load 8(invocation)
+            1169:    122(ptr) AccessChain 37(data) 45 116
+            1170: 29(i64vec4) Load 1169
+            1171:121(i64vec2) VectorShuffle 1170 1170 0 1
+            1172:   17(ivec4) Load 19(ballot)
+            1173:121(i64vec2) GroupNonUniformIMul 177 PartitionedReduceNV 1171 1172
+            1174:    117(ptr) AccessChain 37(data) 1168 116 40
+            1175: 28(int64_t) CompositeExtract 1173 0
+                              Store 1174 1175
+            1176:    117(ptr) AccessChain 37(data) 1168 116 188
+            1177: 28(int64_t) CompositeExtract 1173 1
+                              Store 1176 1177
+            1178:      6(int) Load 8(invocation)
+            1179:    122(ptr) AccessChain 37(data) 52 116
+            1180: 29(i64vec4) Load 1179
+            1181:127(i64vec3) VectorShuffle 1180 1180 0 1 2
+            1182:   17(ivec4) Load 19(ballot)
+            1183:127(i64vec3) GroupNonUniformIMul 177 PartitionedReduceNV 1181 1182
+            1184:    117(ptr) AccessChain 37(data) 1178 116 40
+            1185: 28(int64_t) CompositeExtract 1183 0
+                              Store 1184 1185
+            1186:    117(ptr) AccessChain 37(data) 1178 116 188
+            1187: 28(int64_t) CompositeExtract 1183 1
+                              Store 1186 1187
+            1188:    117(ptr) AccessChain 37(data) 1178 116 201
+            1189: 28(int64_t) CompositeExtract 1183 2
+                              Store 1188 1189
+            1190:      6(int) Load 8(invocation)
+            1191:    122(ptr) AccessChain 37(data) 58 116
+            1192: 29(i64vec4) Load 1191
+            1193:   17(ivec4) Load 19(ballot)
+            1194: 29(i64vec4) GroupNonUniformIMul 177 PartitionedReduceNV 1192 1193
+            1195:    122(ptr) AccessChain 37(data) 1190 116
+                              Store 1195 1194
+            1196:      6(int) Load 8(invocation)
+            1197:    117(ptr) AccessChain 37(data) 39 116 40
+            1198: 28(int64_t) Load 1197
+            1199:   17(ivec4) Load 19(ballot)
+            1200: 28(int64_t) GroupNonUniformSMin 177 PartitionedReduceNV 1198 1199
+            1201:    117(ptr) AccessChain 37(data) 1196 116 40
+                              Store 1201 1200
+            1202:      6(int) Load 8(invocation)
+            1203:    122(ptr) AccessChain 37(data) 45 116
+            1204: 29(i64vec4) Load 1203
+            1205:121(i64vec2) VectorShuffle 1204 1204 0 1
+            1206:   17(ivec4) Load 19(ballot)
+            1207:121(i64vec2) GroupNonUniformSMin 177 PartitionedReduceNV 1205 1206
+            1208:    117(ptr) AccessChain 37(data) 1202 116 40
+            1209: 28(int64_t) CompositeExtract 1207 0
+                              Store 1208 1209
+            1210:    117(ptr) AccessChain 37(data) 1202 116 188
+            1211: 28(int64_t) CompositeExtract 1207 1
+                              Store 1210 1211
+            1212:      6(int) Load 8(invocation)
+            1213:    122(ptr) AccessChain 37(data) 52 116
+            1214: 29(i64vec4) Load 1213
+            1215:127(i64vec3) VectorShuffle 1214 1214 0 1 2
+            1216:   17(ivec4) Load 19(ballot)
+            1217:127(i64vec3) GroupNonUniformSMin 177 PartitionedReduceNV 1215 1216
+            1218:    117(ptr) AccessChain 37(data) 1212 116 40
+            1219: 28(int64_t) CompositeExtract 1217 0
+                              Store 1218 1219
+            1220:    117(ptr) AccessChain 37(data) 1212 116 188
+            1221: 28(int64_t) CompositeExtract 1217 1
+                              Store 1220 1221
+            1222:    117(ptr) AccessChain 37(data) 1212 116 201
+            1223: 28(int64_t) CompositeExtract 1217 2
+                              Store 1222 1223
             1224:      6(int) Load 8(invocation)
-            1225:    136(ptr) AccessChain 37(data) 39 135 40
-            1226: 30(int64_t) Load 1225
+            1225:    122(ptr) AccessChain 37(data) 58 116
+            1226: 29(i64vec4) Load 1225
             1227:   17(ivec4) Load 19(ballot)
-            1228: 30(int64_t) GroupNonUniformIAdd 177 PartitionedReduceNV 1226 1227
-            1229:    136(ptr) AccessChain 37(data) 1224 135 40
+            1228: 29(i64vec4) GroupNonUniformSMin 177 PartitionedReduceNV 1226 1227
+            1229:    122(ptr) AccessChain 37(data) 1224 116
                               Store 1229 1228
             1230:      6(int) Load 8(invocation)
-            1231:    141(ptr) AccessChain 37(data) 45 135
-            1232: 31(i64vec4) Load 1231
-            1233:140(i64vec2) VectorShuffle 1232 1232 0 1
-            1234:   17(ivec4) Load 19(ballot)
-            1235:140(i64vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 1233 1234
-            1236:    141(ptr) AccessChain 37(data) 1230 135
-            1237: 31(i64vec4) Load 1236
-            1238: 31(i64vec4) VectorShuffle 1237 1235 4 5 2 3
-                              Store 1236 1238
-            1239:      6(int) Load 8(invocation)
-            1240:    141(ptr) AccessChain 37(data) 52 135
-            1241: 31(i64vec4) Load 1240
-            1242:146(i64vec3) VectorShuffle 1241 1241 0 1 2
-            1243:   17(ivec4) Load 19(ballot)
-            1244:146(i64vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 1242 1243
-            1245:    141(ptr) AccessChain 37(data) 1239 135
-            1246: 31(i64vec4) Load 1245
-            1247: 31(i64vec4) VectorShuffle 1246 1244 4 5 6 3
-                              Store 1245 1247
-            1248:      6(int) Load 8(invocation)
-            1249:    141(ptr) AccessChain 37(data) 58 135
-            1250: 31(i64vec4) Load 1249
-            1251:   17(ivec4) Load 19(ballot)
-            1252: 31(i64vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 1250 1251
-            1253:    141(ptr) AccessChain 37(data) 1248 135
-                              Store 1253 1252
-            1254:      6(int) Load 8(invocation)
-            1255:    136(ptr) AccessChain 37(data) 39 135 40
-            1256: 30(int64_t) Load 1255
-            1257:   17(ivec4) Load 19(ballot)
-            1258: 30(int64_t) GroupNonUniformIMul 177 PartitionedReduceNV 1256 1257
-            1259:    136(ptr) AccessChain 37(data) 1254 135 40
-                              Store 1259 1258
-            1260:      6(int) Load 8(invocation)
-            1261:    141(ptr) AccessChain 37(data) 45 135
-            1262: 31(i64vec4) Load 1261
-            1263:140(i64vec2) VectorShuffle 1262 1262 0 1
-            1264:   17(ivec4) Load 19(ballot)
-            1265:140(i64vec2) GroupNonUniformIMul 177 PartitionedReduceNV 1263 1264
-            1266:    141(ptr) AccessChain 37(data) 1260 135
-            1267: 31(i64vec4) Load 1266
-            1268: 31(i64vec4) VectorShuffle 1267 1265 4 5 2 3
-                              Store 1266 1268
-            1269:      6(int) Load 8(invocation)
-            1270:    141(ptr) AccessChain 37(data) 52 135
-            1271: 31(i64vec4) Load 1270
-            1272:146(i64vec3) VectorShuffle 1271 1271 0 1 2
-            1273:   17(ivec4) Load 19(ballot)
-            1274:146(i64vec3) GroupNonUniformIMul 177 PartitionedReduceNV 1272 1273
-            1275:    141(ptr) AccessChain 37(data) 1269 135
-            1276: 31(i64vec4) Load 1275
-            1277: 31(i64vec4) VectorShuffle 1276 1274 4 5 6 3
-                              Store 1275 1277
-            1278:      6(int) Load 8(invocation)
-            1279:    141(ptr) AccessChain 37(data) 58 135
-            1280: 31(i64vec4) Load 1279
-            1281:   17(ivec4) Load 19(ballot)
-            1282: 31(i64vec4) GroupNonUniformIMul 177 PartitionedReduceNV 1280 1281
-            1283:    141(ptr) AccessChain 37(data) 1278 135
-                              Store 1283 1282
-            1284:      6(int) Load 8(invocation)
-            1285:    136(ptr) AccessChain 37(data) 39 135 40
-            1286: 30(int64_t) Load 1285
-            1287:   17(ivec4) Load 19(ballot)
-            1288: 30(int64_t) GroupNonUniformUMin 177 PartitionedReduceNV 1286 1287
-            1289:    136(ptr) AccessChain 37(data) 1284 135 40
-                              Store 1289 1288
-            1290:      6(int) Load 8(invocation)
-            1291:    141(ptr) AccessChain 37(data) 45 135
-            1292: 31(i64vec4) Load 1291
-            1293:140(i64vec2) VectorShuffle 1292 1292 0 1
-            1294:   17(ivec4) Load 19(ballot)
-            1295:140(i64vec2) GroupNonUniformUMin 177 PartitionedReduceNV 1293 1294
-            1296:    141(ptr) AccessChain 37(data) 1290 135
-            1297: 31(i64vec4) Load 1296
-            1298: 31(i64vec4) VectorShuffle 1297 1295 4 5 2 3
-                              Store 1296 1298
-            1299:      6(int) Load 8(invocation)
-            1300:    141(ptr) AccessChain 37(data) 52 135
-            1301: 31(i64vec4) Load 1300
-            1302:146(i64vec3) VectorShuffle 1301 1301 0 1 2
-            1303:   17(ivec4) Load 19(ballot)
-            1304:146(i64vec3) GroupNonUniformUMin 177 PartitionedReduceNV 1302 1303
-            1305:    141(ptr) AccessChain 37(data) 1299 135
-            1306: 31(i64vec4) Load 1305
-            1307: 31(i64vec4) VectorShuffle 1306 1304 4 5 6 3
-                              Store 1305 1307
-            1308:      6(int) Load 8(invocation)
-            1309:    141(ptr) AccessChain 37(data) 58 135
-            1310: 31(i64vec4) Load 1309
-            1311:   17(ivec4) Load 19(ballot)
-            1312: 31(i64vec4) GroupNonUniformUMin 177 PartitionedReduceNV 1310 1311
-            1313:    141(ptr) AccessChain 37(data) 1308 135
-                              Store 1313 1312
+            1231:    117(ptr) AccessChain 37(data) 39 116 40
+            1232: 28(int64_t) Load 1231
+            1233:   17(ivec4) Load 19(ballot)
+            1234: 28(int64_t) GroupNonUniformSMax 177 PartitionedReduceNV 1232 1233
+            1235:    117(ptr) AccessChain 37(data) 1230 116 40
+                              Store 1235 1234
+            1236:      6(int) Load 8(invocation)
+            1237:    122(ptr) AccessChain 37(data) 45 116
+            1238: 29(i64vec4) Load 1237
+            1239:121(i64vec2) VectorShuffle 1238 1238 0 1
+            1240:   17(ivec4) Load 19(ballot)
+            1241:121(i64vec2) GroupNonUniformSMax 177 PartitionedReduceNV 1239 1240
+            1242:    117(ptr) AccessChain 37(data) 1236 116 40
+            1243: 28(int64_t) CompositeExtract 1241 0
+                              Store 1242 1243
+            1244:    117(ptr) AccessChain 37(data) 1236 116 188
+            1245: 28(int64_t) CompositeExtract 1241 1
+                              Store 1244 1245
+            1246:      6(int) Load 8(invocation)
+            1247:    122(ptr) AccessChain 37(data) 52 116
+            1248: 29(i64vec4) Load 1247
+            1249:127(i64vec3) VectorShuffle 1248 1248 0 1 2
+            1250:   17(ivec4) Load 19(ballot)
+            1251:127(i64vec3) GroupNonUniformSMax 177 PartitionedReduceNV 1249 1250
+            1252:    117(ptr) AccessChain 37(data) 1246 116 40
+            1253: 28(int64_t) CompositeExtract 1251 0
+                              Store 1252 1253
+            1254:    117(ptr) AccessChain 37(data) 1246 116 188
+            1255: 28(int64_t) CompositeExtract 1251 1
+                              Store 1254 1255
+            1256:    117(ptr) AccessChain 37(data) 1246 116 201
+            1257: 28(int64_t) CompositeExtract 1251 2
+                              Store 1256 1257
+            1258:      6(int) Load 8(invocation)
+            1259:    122(ptr) AccessChain 37(data) 58 116
+            1260: 29(i64vec4) Load 1259
+            1261:   17(ivec4) Load 19(ballot)
+            1262: 29(i64vec4) GroupNonUniformSMax 177 PartitionedReduceNV 1260 1261
+            1263:    122(ptr) AccessChain 37(data) 1258 116
+                              Store 1263 1262
+            1264:      6(int) Load 8(invocation)
+            1265:    117(ptr) AccessChain 37(data) 39 116 40
+            1266: 28(int64_t) Load 1265
+            1267:   17(ivec4) Load 19(ballot)
+            1268: 28(int64_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1266 1267
+            1269:    117(ptr) AccessChain 37(data) 1264 116 40
+                              Store 1269 1268
+            1270:      6(int) Load 8(invocation)
+            1271:    122(ptr) AccessChain 37(data) 45 116
+            1272: 29(i64vec4) Load 1271
+            1273:121(i64vec2) VectorShuffle 1272 1272 0 1
+            1274:   17(ivec4) Load 19(ballot)
+            1275:121(i64vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1273 1274
+            1276:    117(ptr) AccessChain 37(data) 1270 116 40
+            1277: 28(int64_t) CompositeExtract 1275 0
+                              Store 1276 1277
+            1278:    117(ptr) AccessChain 37(data) 1270 116 188
+            1279: 28(int64_t) CompositeExtract 1275 1
+                              Store 1278 1279
+            1280:      6(int) Load 8(invocation)
+            1281:    122(ptr) AccessChain 37(data) 52 116
+            1282: 29(i64vec4) Load 1281
+            1283:127(i64vec3) VectorShuffle 1282 1282 0 1 2
+            1284:   17(ivec4) Load 19(ballot)
+            1285:127(i64vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1283 1284
+            1286:    117(ptr) AccessChain 37(data) 1280 116 40
+            1287: 28(int64_t) CompositeExtract 1285 0
+                              Store 1286 1287
+            1288:    117(ptr) AccessChain 37(data) 1280 116 188
+            1289: 28(int64_t) CompositeExtract 1285 1
+                              Store 1288 1289
+            1290:    117(ptr) AccessChain 37(data) 1280 116 201
+            1291: 28(int64_t) CompositeExtract 1285 2
+                              Store 1290 1291
+            1292:      6(int) Load 8(invocation)
+            1293:    122(ptr) AccessChain 37(data) 58 116
+            1294: 29(i64vec4) Load 1293
+            1295:   17(ivec4) Load 19(ballot)
+            1296: 29(i64vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1294 1295
+            1297:    122(ptr) AccessChain 37(data) 1292 116
+                              Store 1297 1296
+            1298:      6(int) Load 8(invocation)
+            1299:    117(ptr) AccessChain 37(data) 39 116 40
+            1300: 28(int64_t) Load 1299
+            1301:   17(ivec4) Load 19(ballot)
+            1302: 28(int64_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1300 1301
+            1303:    117(ptr) AccessChain 37(data) 1298 116 40
+                              Store 1303 1302
+            1304:      6(int) Load 8(invocation)
+            1305:    122(ptr) AccessChain 37(data) 45 116
+            1306: 29(i64vec4) Load 1305
+            1307:121(i64vec2) VectorShuffle 1306 1306 0 1
+            1308:   17(ivec4) Load 19(ballot)
+            1309:121(i64vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1307 1308
+            1310:    117(ptr) AccessChain 37(data) 1304 116 40
+            1311: 28(int64_t) CompositeExtract 1309 0
+                              Store 1310 1311
+            1312:    117(ptr) AccessChain 37(data) 1304 116 188
+            1313: 28(int64_t) CompositeExtract 1309 1
+                              Store 1312 1313
             1314:      6(int) Load 8(invocation)
-            1315:    136(ptr) AccessChain 37(data) 39 135 40
-            1316: 30(int64_t) Load 1315
-            1317:   17(ivec4) Load 19(ballot)
-            1318: 30(int64_t) GroupNonUniformUMax 177 PartitionedReduceNV 1316 1317
-            1319:    136(ptr) AccessChain 37(data) 1314 135 40
-                              Store 1319 1318
-            1320:      6(int) Load 8(invocation)
-            1321:    141(ptr) AccessChain 37(data) 45 135
-            1322: 31(i64vec4) Load 1321
-            1323:140(i64vec2) VectorShuffle 1322 1322 0 1
-            1324:   17(ivec4) Load 19(ballot)
-            1325:140(i64vec2) GroupNonUniformUMax 177 PartitionedReduceNV 1323 1324
-            1326:    141(ptr) AccessChain 37(data) 1320 135
-            1327: 31(i64vec4) Load 1326
-            1328: 31(i64vec4) VectorShuffle 1327 1325 4 5 2 3
-                              Store 1326 1328
-            1329:      6(int) Load 8(invocation)
-            1330:    141(ptr) AccessChain 37(data) 52 135
-            1331: 31(i64vec4) Load 1330
-            1332:146(i64vec3) VectorShuffle 1331 1331 0 1 2
-            1333:   17(ivec4) Load 19(ballot)
-            1334:146(i64vec3) GroupNonUniformUMax 177 PartitionedReduceNV 1332 1333
-            1335:    141(ptr) AccessChain 37(data) 1329 135
-            1336: 31(i64vec4) Load 1335
-            1337: 31(i64vec4) VectorShuffle 1336 1334 4 5 6 3
-                              Store 1335 1337
+            1315:    122(ptr) AccessChain 37(data) 52 116
+            1316: 29(i64vec4) Load 1315
+            1317:127(i64vec3) VectorShuffle 1316 1316 0 1 2
+            1318:   17(ivec4) Load 19(ballot)
+            1319:127(i64vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1317 1318
+            1320:    117(ptr) AccessChain 37(data) 1314 116 40
+            1321: 28(int64_t) CompositeExtract 1319 0
+                              Store 1320 1321
+            1322:    117(ptr) AccessChain 37(data) 1314 116 188
+            1323: 28(int64_t) CompositeExtract 1319 1
+                              Store 1322 1323
+            1324:    117(ptr) AccessChain 37(data) 1314 116 201
+            1325: 28(int64_t) CompositeExtract 1319 2
+                              Store 1324 1325
+            1326:      6(int) Load 8(invocation)
+            1327:    122(ptr) AccessChain 37(data) 58 116
+            1328: 29(i64vec4) Load 1327
+            1329:   17(ivec4) Load 19(ballot)
+            1330: 29(i64vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1328 1329
+            1331:    122(ptr) AccessChain 37(data) 1326 116
+                              Store 1331 1330
+            1332:      6(int) Load 8(invocation)
+            1333:    117(ptr) AccessChain 37(data) 39 116 40
+            1334: 28(int64_t) Load 1333
+            1335:   17(ivec4) Load 19(ballot)
+            1336: 28(int64_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1334 1335
+            1337:    117(ptr) AccessChain 37(data) 1332 116 40
+                              Store 1337 1336
             1338:      6(int) Load 8(invocation)
-            1339:    141(ptr) AccessChain 37(data) 58 135
-            1340: 31(i64vec4) Load 1339
-            1341:   17(ivec4) Load 19(ballot)
-            1342: 31(i64vec4) GroupNonUniformUMax 177 PartitionedReduceNV 1340 1341
-            1343:    141(ptr) AccessChain 37(data) 1338 135
-                              Store 1343 1342
-            1344:      6(int) Load 8(invocation)
-            1345:    136(ptr) AccessChain 37(data) 39 135 40
-            1346: 30(int64_t) Load 1345
-            1347:   17(ivec4) Load 19(ballot)
-            1348: 30(int64_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1346 1347
-            1349:    136(ptr) AccessChain 37(data) 1344 135 40
-                              Store 1349 1348
-            1350:      6(int) Load 8(invocation)
-            1351:    141(ptr) AccessChain 37(data) 45 135
-            1352: 31(i64vec4) Load 1351
-            1353:140(i64vec2) VectorShuffle 1352 1352 0 1
-            1354:   17(ivec4) Load 19(ballot)
-            1355:140(i64vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1353 1354
-            1356:    141(ptr) AccessChain 37(data) 1350 135
-            1357: 31(i64vec4) Load 1356
-            1358: 31(i64vec4) VectorShuffle 1357 1355 4 5 2 3
-                              Store 1356 1358
-            1359:      6(int) Load 8(invocation)
-            1360:    141(ptr) AccessChain 37(data) 52 135
-            1361: 31(i64vec4) Load 1360
-            1362:146(i64vec3) VectorShuffle 1361 1361 0 1 2
+            1339:    122(ptr) AccessChain 37(data) 45 116
+            1340: 29(i64vec4) Load 1339
+            1341:121(i64vec2) VectorShuffle 1340 1340 0 1
+            1342:   17(ivec4) Load 19(ballot)
+            1343:121(i64vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1341 1342
+            1344:    117(ptr) AccessChain 37(data) 1338 116 40
+            1345: 28(int64_t) CompositeExtract 1343 0
+                              Store 1344 1345
+            1346:    117(ptr) AccessChain 37(data) 1338 116 188
+            1347: 28(int64_t) CompositeExtract 1343 1
+                              Store 1346 1347
+            1348:      6(int) Load 8(invocation)
+            1349:    122(ptr) AccessChain 37(data) 52 116
+            1350: 29(i64vec4) Load 1349
+            1351:127(i64vec3) VectorShuffle 1350 1350 0 1 2
+            1352:   17(ivec4) Load 19(ballot)
+            1353:127(i64vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1351 1352
+            1354:    117(ptr) AccessChain 37(data) 1348 116 40
+            1355: 28(int64_t) CompositeExtract 1353 0
+                              Store 1354 1355
+            1356:    117(ptr) AccessChain 37(data) 1348 116 188
+            1357: 28(int64_t) CompositeExtract 1353 1
+                              Store 1356 1357
+            1358:    117(ptr) AccessChain 37(data) 1348 116 201
+            1359: 28(int64_t) CompositeExtract 1353 2
+                              Store 1358 1359
+            1360:      6(int) Load 8(invocation)
+            1361:    122(ptr) AccessChain 37(data) 58 116
+            1362: 29(i64vec4) Load 1361
             1363:   17(ivec4) Load 19(ballot)
-            1364:146(i64vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1362 1363
-            1365:    141(ptr) AccessChain 37(data) 1359 135
-            1366: 31(i64vec4) Load 1365
-            1367: 31(i64vec4) VectorShuffle 1366 1364 4 5 6 3
-                              Store 1365 1367
-            1368:      6(int) Load 8(invocation)
-            1369:    141(ptr) AccessChain 37(data) 58 135
-            1370: 31(i64vec4) Load 1369
-            1371:   17(ivec4) Load 19(ballot)
-            1372: 31(i64vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1370 1371
-            1373:    141(ptr) AccessChain 37(data) 1368 135
-                              Store 1373 1372
-            1374:      6(int) Load 8(invocation)
-            1375:    136(ptr) AccessChain 37(data) 39 135 40
-            1376: 30(int64_t) Load 1375
-            1377:   17(ivec4) Load 19(ballot)
-            1378: 30(int64_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1376 1377
-            1379:    136(ptr) AccessChain 37(data) 1374 135 40
-                              Store 1379 1378
-            1380:      6(int) Load 8(invocation)
-            1381:    141(ptr) AccessChain 37(data) 45 135
-            1382: 31(i64vec4) Load 1381
-            1383:140(i64vec2) VectorShuffle 1382 1382 0 1
-            1384:   17(ivec4) Load 19(ballot)
-            1385:140(i64vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1383 1384
-            1386:    141(ptr) AccessChain 37(data) 1380 135
-            1387: 31(i64vec4) Load 1386
-            1388: 31(i64vec4) VectorShuffle 1387 1385 4 5 2 3
-                              Store 1386 1388
-            1389:      6(int) Load 8(invocation)
-            1390:    141(ptr) AccessChain 37(data) 52 135
-            1391: 31(i64vec4) Load 1390
-            1392:146(i64vec3) VectorShuffle 1391 1391 0 1 2
-            1393:   17(ivec4) Load 19(ballot)
-            1394:146(i64vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1392 1393
-            1395:    141(ptr) AccessChain 37(data) 1389 135
+            1364: 29(i64vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1362 1363
+            1365:    122(ptr) AccessChain 37(data) 1360 116
+                              Store 1365 1364
+            1366:      6(int) Load 8(invocation)
+            1367:    136(ptr) AccessChain 37(data) 39 135 40
+            1368: 30(int64_t) Load 1367
+            1369:   17(ivec4) Load 19(ballot)
+            1370: 30(int64_t) GroupNonUniformIAdd 177 PartitionedReduceNV 1368 1369
+            1371:    136(ptr) AccessChain 37(data) 1366 135 40
+                              Store 1371 1370
+            1372:      6(int) Load 8(invocation)
+            1373:    141(ptr) AccessChain 37(data) 45 135
+            1374: 31(i64vec4) Load 1373
+            1375:140(i64vec2) VectorShuffle 1374 1374 0 1
+            1376:   17(ivec4) Load 19(ballot)
+            1377:140(i64vec2) GroupNonUniformIAdd 177 PartitionedReduceNV 1375 1376
+            1378:    136(ptr) AccessChain 37(data) 1372 135 40
+            1379: 30(int64_t) CompositeExtract 1377 0
+                              Store 1378 1379
+            1380:    136(ptr) AccessChain 37(data) 1372 135 188
+            1381: 30(int64_t) CompositeExtract 1377 1
+                              Store 1380 1381
+            1382:      6(int) Load 8(invocation)
+            1383:    141(ptr) AccessChain 37(data) 52 135
+            1384: 31(i64vec4) Load 1383
+            1385:146(i64vec3) VectorShuffle 1384 1384 0 1 2
+            1386:   17(ivec4) Load 19(ballot)
+            1387:146(i64vec3) GroupNonUniformIAdd 177 PartitionedReduceNV 1385 1386
+            1388:    136(ptr) AccessChain 37(data) 1382 135 40
+            1389: 30(int64_t) CompositeExtract 1387 0
+                              Store 1388 1389
+            1390:    136(ptr) AccessChain 37(data) 1382 135 188
+            1391: 30(int64_t) CompositeExtract 1387 1
+                              Store 1390 1391
+            1392:    136(ptr) AccessChain 37(data) 1382 135 201
+            1393: 30(int64_t) CompositeExtract 1387 2
+                              Store 1392 1393
+            1394:      6(int) Load 8(invocation)
+            1395:    141(ptr) AccessChain 37(data) 58 135
             1396: 31(i64vec4) Load 1395
-            1397: 31(i64vec4) VectorShuffle 1396 1394 4 5 6 3
-                              Store 1395 1397
-            1398:      6(int) Load 8(invocation)
-            1399:    141(ptr) AccessChain 37(data) 58 135
-            1400: 31(i64vec4) Load 1399
-            1401:   17(ivec4) Load 19(ballot)
-            1402: 31(i64vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1400 1401
-            1403:    141(ptr) AccessChain 37(data) 1398 135
-                              Store 1403 1402
-            1404:      6(int) Load 8(invocation)
-            1405:    136(ptr) AccessChain 37(data) 39 135 40
-            1406: 30(int64_t) Load 1405
-            1407:   17(ivec4) Load 19(ballot)
-            1408: 30(int64_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1406 1407
-            1409:    136(ptr) AccessChain 37(data) 1404 135 40
-                              Store 1409 1408
-            1410:      6(int) Load 8(invocation)
-            1411:    141(ptr) AccessChain 37(data) 45 135
-            1412: 31(i64vec4) Load 1411
-            1413:140(i64vec2) VectorShuffle 1412 1412 0 1
-            1414:   17(ivec4) Load 19(ballot)
-            1415:140(i64vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1413 1414
-            1416:    141(ptr) AccessChain 37(data) 1410 135
-            1417: 31(i64vec4) Load 1416
-            1418: 31(i64vec4) VectorShuffle 1417 1415 4 5 2 3
-                              Store 1416 1418
-            1419:      6(int) Load 8(invocation)
-            1420:    141(ptr) AccessChain 37(data) 52 135
-            1421: 31(i64vec4) Load 1420
-            1422:146(i64vec3) VectorShuffle 1421 1421 0 1 2
-            1423:   17(ivec4) Load 19(ballot)
-            1424:146(i64vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1422 1423
-            1425:    141(ptr) AccessChain 37(data) 1419 135
-            1426: 31(i64vec4) Load 1425
-            1427: 31(i64vec4) VectorShuffle 1426 1424 4 5 6 3
-                              Store 1425 1427
+            1397:   17(ivec4) Load 19(ballot)
+            1398: 31(i64vec4) GroupNonUniformIAdd 177 PartitionedReduceNV 1396 1397
+            1399:    141(ptr) AccessChain 37(data) 1394 135
+                              Store 1399 1398
+            1400:      6(int) Load 8(invocation)
+            1401:    136(ptr) AccessChain 37(data) 39 135 40
+            1402: 30(int64_t) Load 1401
+            1403:   17(ivec4) Load 19(ballot)
+            1404: 30(int64_t) GroupNonUniformIMul 177 PartitionedReduceNV 1402 1403
+            1405:    136(ptr) AccessChain 37(data) 1400 135 40
+                              Store 1405 1404
+            1406:      6(int) Load 8(invocation)
+            1407:    141(ptr) AccessChain 37(data) 45 135
+            1408: 31(i64vec4) Load 1407
+            1409:140(i64vec2) VectorShuffle 1408 1408 0 1
+            1410:   17(ivec4) Load 19(ballot)
+            1411:140(i64vec2) GroupNonUniformIMul 177 PartitionedReduceNV 1409 1410
+            1412:    136(ptr) AccessChain 37(data) 1406 135 40
+            1413: 30(int64_t) CompositeExtract 1411 0
+                              Store 1412 1413
+            1414:    136(ptr) AccessChain 37(data) 1406 135 188
+            1415: 30(int64_t) CompositeExtract 1411 1
+                              Store 1414 1415
+            1416:      6(int) Load 8(invocation)
+            1417:    141(ptr) AccessChain 37(data) 52 135
+            1418: 31(i64vec4) Load 1417
+            1419:146(i64vec3) VectorShuffle 1418 1418 0 1 2
+            1420:   17(ivec4) Load 19(ballot)
+            1421:146(i64vec3) GroupNonUniformIMul 177 PartitionedReduceNV 1419 1420
+            1422:    136(ptr) AccessChain 37(data) 1416 135 40
+            1423: 30(int64_t) CompositeExtract 1421 0
+                              Store 1422 1423
+            1424:    136(ptr) AccessChain 37(data) 1416 135 188
+            1425: 30(int64_t) CompositeExtract 1421 1
+                              Store 1424 1425
+            1426:    136(ptr) AccessChain 37(data) 1416 135 201
+            1427: 30(int64_t) CompositeExtract 1421 2
+                              Store 1426 1427
             1428:      6(int) Load 8(invocation)
             1429:    141(ptr) AccessChain 37(data) 58 135
             1430: 31(i64vec4) Load 1429
             1431:   17(ivec4) Load 19(ballot)
-            1432: 31(i64vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1430 1431
+            1432: 31(i64vec4) GroupNonUniformIMul 177 PartitionedReduceNV 1430 1431
             1433:    141(ptr) AccessChain 37(data) 1428 135
                               Store 1433 1432
             1434:      6(int) Load 8(invocation)
-            1435:    155(ptr) AccessChain 37(data) 39 154 40
-            1436:32(float16_t) Load 1435
+            1435:    136(ptr) AccessChain 37(data) 39 135 40
+            1436: 30(int64_t) Load 1435
             1437:   17(ivec4) Load 19(ballot)
-            1438:32(float16_t) GroupNonUniformFAdd 177 PartitionedReduceNV 1436 1437
-            1439:    155(ptr) AccessChain 37(data) 1434 154 40
+            1438: 30(int64_t) GroupNonUniformUMin 177 PartitionedReduceNV 1436 1437
+            1439:    136(ptr) AccessChain 37(data) 1434 135 40
                               Store 1439 1438
             1440:      6(int) Load 8(invocation)
-            1441:    160(ptr) AccessChain 37(data) 45 154
-            1442: 33(f16vec4) Load 1441
-            1443:159(f16vec2) VectorShuffle 1442 1442 0 1
+            1441:    141(ptr) AccessChain 37(data) 45 135
+            1442: 31(i64vec4) Load 1441
+            1443:140(i64vec2) VectorShuffle 1442 1442 0 1
             1444:   17(ivec4) Load 19(ballot)
-            1445:159(f16vec2) GroupNonUniformFAdd 177 PartitionedReduceNV 1443 1444
-            1446:    160(ptr) AccessChain 37(data) 1440 154
-            1447: 33(f16vec4) Load 1446
-            1448: 33(f16vec4) VectorShuffle 1447 1445 4 5 2 3
-                              Store 1446 1448
-            1449:      6(int) Load 8(invocation)
-            1450:    160(ptr) AccessChain 37(data) 52 154
-            1451: 33(f16vec4) Load 1450
-            1452:165(f16vec3) VectorShuffle 1451 1451 0 1 2
-            1453:   17(ivec4) Load 19(ballot)
-            1454:165(f16vec3) GroupNonUniformFAdd 177 PartitionedReduceNV 1452 1453
-            1455:    160(ptr) AccessChain 37(data) 1449 154
-            1456: 33(f16vec4) Load 1455
-            1457: 33(f16vec4) VectorShuffle 1456 1454 4 5 6 3
-                              Store 1455 1457
-            1458:      6(int) Load 8(invocation)
-            1459:    160(ptr) AccessChain 37(data) 58 154
-            1460: 33(f16vec4) Load 1459
-            1461:   17(ivec4) Load 19(ballot)
-            1462: 33(f16vec4) GroupNonUniformFAdd 177 PartitionedReduceNV 1460 1461
-            1463:    160(ptr) AccessChain 37(data) 1458 154
-                              Store 1463 1462
-            1464:      6(int) Load 8(invocation)
-            1465:    155(ptr) AccessChain 37(data) 39 154 40
-            1466:32(float16_t) Load 1465
-            1467:   17(ivec4) Load 19(ballot)
-            1468:32(float16_t) GroupNonUniformFMul 177 PartitionedReduceNV 1466 1467
-            1469:    155(ptr) AccessChain 37(data) 1464 154 40
-                              Store 1469 1468
-            1470:      6(int) Load 8(invocation)
-            1471:    160(ptr) AccessChain 37(data) 45 154
-            1472: 33(f16vec4) Load 1471
-            1473:159(f16vec2) VectorShuffle 1472 1472 0 1
-            1474:   17(ivec4) Load 19(ballot)
-            1475:159(f16vec2) GroupNonUniformFMul 177 PartitionedReduceNV 1473 1474
-            1476:    160(ptr) AccessChain 37(data) 1470 154
-            1477: 33(f16vec4) Load 1476
-            1478: 33(f16vec4) VectorShuffle 1477 1475 4 5 2 3
-                              Store 1476 1478
-            1479:      6(int) Load 8(invocation)
-            1480:    160(ptr) AccessChain 37(data) 52 154
-            1481: 33(f16vec4) Load 1480
-            1482:165(f16vec3) VectorShuffle 1481 1481 0 1 2
-            1483:   17(ivec4) Load 19(ballot)
-            1484:165(f16vec3) GroupNonUniformFMul 177 PartitionedReduceNV 1482 1483
-            1485:    160(ptr) AccessChain 37(data) 1479 154
-            1486: 33(f16vec4) Load 1485
-            1487: 33(f16vec4) VectorShuffle 1486 1484 4 5 6 3
-                              Store 1485 1487
-            1488:      6(int) Load 8(invocation)
-            1489:    160(ptr) AccessChain 37(data) 58 154
-            1490: 33(f16vec4) Load 1489
-            1491:   17(ivec4) Load 19(ballot)
-            1492: 33(f16vec4) GroupNonUniformFMul 177 PartitionedReduceNV 1490 1491
-            1493:    160(ptr) AccessChain 37(data) 1488 154
-                              Store 1493 1492
-            1494:      6(int) Load 8(invocation)
-            1495:    155(ptr) AccessChain 37(data) 39 154 40
-            1496:32(float16_t) Load 1495
-            1497:   17(ivec4) Load 19(ballot)
-            1498:32(float16_t) GroupNonUniformFMin 177 PartitionedReduceNV 1496 1497
-            1499:    155(ptr) AccessChain 37(data) 1494 154 40
-                              Store 1499 1498
-            1500:      6(int) Load 8(invocation)
-            1501:    160(ptr) AccessChain 37(data) 45 154
-            1502: 33(f16vec4) Load 1501
-            1503:159(f16vec2) VectorShuffle 1502 1502 0 1
-            1504:   17(ivec4) Load 19(ballot)
-            1505:159(f16vec2) GroupNonUniformFMin 177 PartitionedReduceNV 1503 1504
-            1506:    160(ptr) AccessChain 37(data) 1500 154
-            1507: 33(f16vec4) Load 1506
-            1508: 33(f16vec4) VectorShuffle 1507 1505 4 5 2 3
-                              Store 1506 1508
-            1509:      6(int) Load 8(invocation)
-            1510:    160(ptr) AccessChain 37(data) 52 154
-            1511: 33(f16vec4) Load 1510
-            1512:165(f16vec3) VectorShuffle 1511 1511 0 1 2
-            1513:   17(ivec4) Load 19(ballot)
-            1514:165(f16vec3) GroupNonUniformFMin 177 PartitionedReduceNV 1512 1513
-            1515:    160(ptr) AccessChain 37(data) 1509 154
-            1516: 33(f16vec4) Load 1515
-            1517: 33(f16vec4) VectorShuffle 1516 1514 4 5 6 3
-                              Store 1515 1517
+            1445:140(i64vec2) GroupNonUniformUMin 177 PartitionedReduceNV 1443 1444
+            1446:    136(ptr) AccessChain 37(data) 1440 135 40
+            1447: 30(int64_t) CompositeExtract 1445 0
+                              Store 1446 1447
+            1448:    136(ptr) AccessChain 37(data) 1440 135 188
+            1449: 30(int64_t) CompositeExtract 1445 1
+                              Store 1448 1449
+            1450:      6(int) Load 8(invocation)
+            1451:    141(ptr) AccessChain 37(data) 52 135
+            1452: 31(i64vec4) Load 1451
+            1453:146(i64vec3) VectorShuffle 1452 1452 0 1 2
+            1454:   17(ivec4) Load 19(ballot)
+            1455:146(i64vec3) GroupNonUniformUMin 177 PartitionedReduceNV 1453 1454
+            1456:    136(ptr) AccessChain 37(data) 1450 135 40
+            1457: 30(int64_t) CompositeExtract 1455 0
+                              Store 1456 1457
+            1458:    136(ptr) AccessChain 37(data) 1450 135 188
+            1459: 30(int64_t) CompositeExtract 1455 1
+                              Store 1458 1459
+            1460:    136(ptr) AccessChain 37(data) 1450 135 201
+            1461: 30(int64_t) CompositeExtract 1455 2
+                              Store 1460 1461
+            1462:      6(int) Load 8(invocation)
+            1463:    141(ptr) AccessChain 37(data) 58 135
+            1464: 31(i64vec4) Load 1463
+            1465:   17(ivec4) Load 19(ballot)
+            1466: 31(i64vec4) GroupNonUniformUMin 177 PartitionedReduceNV 1464 1465
+            1467:    141(ptr) AccessChain 37(data) 1462 135
+                              Store 1467 1466
+            1468:      6(int) Load 8(invocation)
+            1469:    136(ptr) AccessChain 37(data) 39 135 40
+            1470: 30(int64_t) Load 1469
+            1471:   17(ivec4) Load 19(ballot)
+            1472: 30(int64_t) GroupNonUniformUMax 177 PartitionedReduceNV 1470 1471
+            1473:    136(ptr) AccessChain 37(data) 1468 135 40
+                              Store 1473 1472
+            1474:      6(int) Load 8(invocation)
+            1475:    141(ptr) AccessChain 37(data) 45 135
+            1476: 31(i64vec4) Load 1475
+            1477:140(i64vec2) VectorShuffle 1476 1476 0 1
+            1478:   17(ivec4) Load 19(ballot)
+            1479:140(i64vec2) GroupNonUniformUMax 177 PartitionedReduceNV 1477 1478
+            1480:    136(ptr) AccessChain 37(data) 1474 135 40
+            1481: 30(int64_t) CompositeExtract 1479 0
+                              Store 1480 1481
+            1482:    136(ptr) AccessChain 37(data) 1474 135 188
+            1483: 30(int64_t) CompositeExtract 1479 1
+                              Store 1482 1483
+            1484:      6(int) Load 8(invocation)
+            1485:    141(ptr) AccessChain 37(data) 52 135
+            1486: 31(i64vec4) Load 1485
+            1487:146(i64vec3) VectorShuffle 1486 1486 0 1 2
+            1488:   17(ivec4) Load 19(ballot)
+            1489:146(i64vec3) GroupNonUniformUMax 177 PartitionedReduceNV 1487 1488
+            1490:    136(ptr) AccessChain 37(data) 1484 135 40
+            1491: 30(int64_t) CompositeExtract 1489 0
+                              Store 1490 1491
+            1492:    136(ptr) AccessChain 37(data) 1484 135 188
+            1493: 30(int64_t) CompositeExtract 1489 1
+                              Store 1492 1493
+            1494:    136(ptr) AccessChain 37(data) 1484 135 201
+            1495: 30(int64_t) CompositeExtract 1489 2
+                              Store 1494 1495
+            1496:      6(int) Load 8(invocation)
+            1497:    141(ptr) AccessChain 37(data) 58 135
+            1498: 31(i64vec4) Load 1497
+            1499:   17(ivec4) Load 19(ballot)
+            1500: 31(i64vec4) GroupNonUniformUMax 177 PartitionedReduceNV 1498 1499
+            1501:    141(ptr) AccessChain 37(data) 1496 135
+                              Store 1501 1500
+            1502:      6(int) Load 8(invocation)
+            1503:    136(ptr) AccessChain 37(data) 39 135 40
+            1504: 30(int64_t) Load 1503
+            1505:   17(ivec4) Load 19(ballot)
+            1506: 30(int64_t) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1504 1505
+            1507:    136(ptr) AccessChain 37(data) 1502 135 40
+                              Store 1507 1506
+            1508:      6(int) Load 8(invocation)
+            1509:    141(ptr) AccessChain 37(data) 45 135
+            1510: 31(i64vec4) Load 1509
+            1511:140(i64vec2) VectorShuffle 1510 1510 0 1
+            1512:   17(ivec4) Load 19(ballot)
+            1513:140(i64vec2) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1511 1512
+            1514:    136(ptr) AccessChain 37(data) 1508 135 40
+            1515: 30(int64_t) CompositeExtract 1513 0
+                              Store 1514 1515
+            1516:    136(ptr) AccessChain 37(data) 1508 135 188
+            1517: 30(int64_t) CompositeExtract 1513 1
+                              Store 1516 1517
             1518:      6(int) Load 8(invocation)
-            1519:    160(ptr) AccessChain 37(data) 58 154
-            1520: 33(f16vec4) Load 1519
-            1521:   17(ivec4) Load 19(ballot)
-            1522: 33(f16vec4) GroupNonUniformFMin 177 PartitionedReduceNV 1520 1521
-            1523:    160(ptr) AccessChain 37(data) 1518 154
-                              Store 1523 1522
-            1524:      6(int) Load 8(invocation)
-            1525:    155(ptr) AccessChain 37(data) 39 154 40
-            1526:32(float16_t) Load 1525
-            1527:   17(ivec4) Load 19(ballot)
-            1528:32(float16_t) GroupNonUniformFMax 177 PartitionedReduceNV 1526 1527
-            1529:    155(ptr) AccessChain 37(data) 1524 154 40
-                              Store 1529 1528
+            1519:    141(ptr) AccessChain 37(data) 52 135
+            1520: 31(i64vec4) Load 1519
+            1521:146(i64vec3) VectorShuffle 1520 1520 0 1 2
+            1522:   17(ivec4) Load 19(ballot)
+            1523:146(i64vec3) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1521 1522
+            1524:    136(ptr) AccessChain 37(data) 1518 135 40
+            1525: 30(int64_t) CompositeExtract 1523 0
+                              Store 1524 1525
+            1526:    136(ptr) AccessChain 37(data) 1518 135 188
+            1527: 30(int64_t) CompositeExtract 1523 1
+                              Store 1526 1527
+            1528:    136(ptr) AccessChain 37(data) 1518 135 201
+            1529: 30(int64_t) CompositeExtract 1523 2
+                              Store 1528 1529
             1530:      6(int) Load 8(invocation)
-            1531:    160(ptr) AccessChain 37(data) 45 154
-            1532: 33(f16vec4) Load 1531
-            1533:159(f16vec2) VectorShuffle 1532 1532 0 1
-            1534:   17(ivec4) Load 19(ballot)
-            1535:159(f16vec2) GroupNonUniformFMax 177 PartitionedReduceNV 1533 1534
-            1536:    160(ptr) AccessChain 37(data) 1530 154
-            1537: 33(f16vec4) Load 1536
-            1538: 33(f16vec4) VectorShuffle 1537 1535 4 5 2 3
-                              Store 1536 1538
-            1539:      6(int) Load 8(invocation)
-            1540:    160(ptr) AccessChain 37(data) 52 154
-            1541: 33(f16vec4) Load 1540
-            1542:165(f16vec3) VectorShuffle 1541 1541 0 1 2
-            1543:   17(ivec4) Load 19(ballot)
-            1544:165(f16vec3) GroupNonUniformFMax 177 PartitionedReduceNV 1542 1543
-            1545:    160(ptr) AccessChain 37(data) 1539 154
-            1546: 33(f16vec4) Load 1545
-            1547: 33(f16vec4) VectorShuffle 1546 1544 4 5 6 3
-                              Store 1545 1547
-            1548:      6(int) Load 8(invocation)
-            1549:    160(ptr) AccessChain 37(data) 58 154
-            1550: 33(f16vec4) Load 1549
-            1551:   17(ivec4) Load 19(ballot)
-            1552: 33(f16vec4) GroupNonUniformFMax 177 PartitionedReduceNV 1550 1551
-            1553:    160(ptr) AccessChain 37(data) 1548 154
-                              Store 1553 1552
+            1531:    141(ptr) AccessChain 37(data) 58 135
+            1532: 31(i64vec4) Load 1531
+            1533:   17(ivec4) Load 19(ballot)
+            1534: 31(i64vec4) GroupNonUniformBitwiseAnd 177 PartitionedReduceNV 1532 1533
+            1535:    141(ptr) AccessChain 37(data) 1530 135
+                              Store 1535 1534
+            1536:      6(int) Load 8(invocation)
+            1537:    136(ptr) AccessChain 37(data) 39 135 40
+            1538: 30(int64_t) Load 1537
+            1539:   17(ivec4) Load 19(ballot)
+            1540: 30(int64_t) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1538 1539
+            1541:    136(ptr) AccessChain 37(data) 1536 135 40
+                              Store 1541 1540
+            1542:      6(int) Load 8(invocation)
+            1543:    141(ptr) AccessChain 37(data) 45 135
+            1544: 31(i64vec4) Load 1543
+            1545:140(i64vec2) VectorShuffle 1544 1544 0 1
+            1546:   17(ivec4) Load 19(ballot)
+            1547:140(i64vec2) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1545 1546
+            1548:    136(ptr) AccessChain 37(data) 1542 135 40
+            1549: 30(int64_t) CompositeExtract 1547 0
+                              Store 1548 1549
+            1550:    136(ptr) AccessChain 37(data) 1542 135 188
+            1551: 30(int64_t) CompositeExtract 1547 1
+                              Store 1550 1551
+            1552:      6(int) Load 8(invocation)
+            1553:    141(ptr) AccessChain 37(data) 52 135
+            1554: 31(i64vec4) Load 1553
+            1555:146(i64vec3) VectorShuffle 1554 1554 0 1 2
+            1556:   17(ivec4) Load 19(ballot)
+            1557:146(i64vec3) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1555 1556
+            1558:    136(ptr) AccessChain 37(data) 1552 135 40
+            1559: 30(int64_t) CompositeExtract 1557 0
+                              Store 1558 1559
+            1560:    136(ptr) AccessChain 37(data) 1552 135 188
+            1561: 30(int64_t) CompositeExtract 1557 1
+                              Store 1560 1561
+            1562:    136(ptr) AccessChain 37(data) 1552 135 201
+            1563: 30(int64_t) CompositeExtract 1557 2
+                              Store 1562 1563
+            1564:      6(int) Load 8(invocation)
+            1565:    141(ptr) AccessChain 37(data) 58 135
+            1566: 31(i64vec4) Load 1565
+            1567:   17(ivec4) Load 19(ballot)
+            1568: 31(i64vec4) GroupNonUniformBitwiseOr 177 PartitionedReduceNV 1566 1567
+            1569:    141(ptr) AccessChain 37(data) 1564 135
+                              Store 1569 1568
+            1570:      6(int) Load 8(invocation)
+            1571:    136(ptr) AccessChain 37(data) 39 135 40
+            1572: 30(int64_t) Load 1571
+            1573:   17(ivec4) Load 19(ballot)
+            1574: 30(int64_t) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1572 1573
+            1575:    136(ptr) AccessChain 37(data) 1570 135 40
+                              Store 1575 1574
+            1576:      6(int) Load 8(invocation)
+            1577:    141(ptr) AccessChain 37(data) 45 135
+            1578: 31(i64vec4) Load 1577
+            1579:140(i64vec2) VectorShuffle 1578 1578 0 1
+            1580:   17(ivec4) Load 19(ballot)
+            1581:140(i64vec2) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1579 1580
+            1582:    136(ptr) AccessChain 37(data) 1576 135 40
+            1583: 30(int64_t) CompositeExtract 1581 0
+                              Store 1582 1583
+            1584:    136(ptr) AccessChain 37(data) 1576 135 188
+            1585: 30(int64_t) CompositeExtract 1581 1
+                              Store 1584 1585
+            1586:      6(int) Load 8(invocation)
+            1587:    141(ptr) AccessChain 37(data) 52 135
+            1588: 31(i64vec4) Load 1587
+            1589:146(i64vec3) VectorShuffle 1588 1588 0 1 2
+            1590:   17(ivec4) Load 19(ballot)
+            1591:146(i64vec3) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1589 1590
+            1592:    136(ptr) AccessChain 37(data) 1586 135 40
+            1593: 30(int64_t) CompositeExtract 1591 0
+                              Store 1592 1593
+            1594:    136(ptr) AccessChain 37(data) 1586 135 188
+            1595: 30(int64_t) CompositeExtract 1591 1
+                              Store 1594 1595
+            1596:    136(ptr) AccessChain 37(data) 1586 135 201
+            1597: 30(int64_t) CompositeExtract 1591 2
+                              Store 1596 1597
+            1598:      6(int) Load 8(invocation)
+            1599:    141(ptr) AccessChain 37(data) 58 135
+            1600: 31(i64vec4) Load 1599
+            1601:   17(ivec4) Load 19(ballot)
+            1602: 31(i64vec4) GroupNonUniformBitwiseXor 177 PartitionedReduceNV 1600 1601
+            1603:    141(ptr) AccessChain 37(data) 1598 135
+                              Store 1603 1602
+            1604:      6(int) Load 8(invocation)
+            1605:    155(ptr) AccessChain 37(data) 39 154 40
+            1606:32(float16_t) Load 1605
+            1607:   17(ivec4) Load 19(ballot)
+            1608:32(float16_t) GroupNonUniformFAdd 177 PartitionedReduceNV 1606 1607
+            1609:    155(ptr) AccessChain 37(data) 1604 154 40
+                              Store 1609 1608
+            1610:      6(int) Load 8(invocation)
+            1611:    160(ptr) AccessChain 37(data) 45 154
+            1612: 33(f16vec4) Load 1611
+            1613:159(f16vec2) VectorShuffle 1612 1612 0 1
+            1614:   17(ivec4) Load 19(ballot)
+            1615:159(f16vec2) GroupNonUniformFAdd 177 PartitionedReduceNV 1613 1614
+            1616:    155(ptr) AccessChain 37(data) 1610 154 40
+            1617:32(float16_t) CompositeExtract 1615 0
+                              Store 1616 1617
+            1618:    155(ptr) AccessChain 37(data) 1610 154 188
+            1619:32(float16_t) CompositeExtract 1615 1
+                              Store 1618 1619
+            1620:      6(int) Load 8(invocation)
+            1621:    160(ptr) AccessChain 37(data) 52 154
+            1622: 33(f16vec4) Load 1621
+            1623:165(f16vec3) VectorShuffle 1622 1622 0 1 2
+            1624:   17(ivec4) Load 19(ballot)
+            1625:165(f16vec3) GroupNonUniformFAdd 177 PartitionedReduceNV 1623 1624
+            1626:    155(ptr) AccessChain 37(data) 1620 154 40
+            1627:32(float16_t) CompositeExtract 1625 0
+                              Store 1626 1627
+            1628:    155(ptr) AccessChain 37(data) 1620 154 188
+            1629:32(float16_t) CompositeExtract 1625 1
+                              Store 1628 1629
+            1630:    155(ptr) AccessChain 37(data) 1620 154 201
+            1631:32(float16_t) CompositeExtract 1625 2
+                              Store 1630 1631
+            1632:      6(int) Load 8(invocation)
+            1633:    160(ptr) AccessChain 37(data) 58 154
+            1634: 33(f16vec4) Load 1633
+            1635:   17(ivec4) Load 19(ballot)
+            1636: 33(f16vec4) GroupNonUniformFAdd 177 PartitionedReduceNV 1634 1635
+            1637:    160(ptr) AccessChain 37(data) 1632 154
+                              Store 1637 1636
+            1638:      6(int) Load 8(invocation)
+            1639:    155(ptr) AccessChain 37(data) 39 154 40
+            1640:32(float16_t) Load 1639
+            1641:   17(ivec4) Load 19(ballot)
+            1642:32(float16_t) GroupNonUniformFMul 177 PartitionedReduceNV 1640 1641
+            1643:    155(ptr) AccessChain 37(data) 1638 154 40
+                              Store 1643 1642
+            1644:      6(int) Load 8(invocation)
+            1645:    160(ptr) AccessChain 37(data) 45 154
+            1646: 33(f16vec4) Load 1645
+            1647:159(f16vec2) VectorShuffle 1646 1646 0 1
+            1648:   17(ivec4) Load 19(ballot)
+            1649:159(f16vec2) GroupNonUniformFMul 177 PartitionedReduceNV 1647 1648
+            1650:    155(ptr) AccessChain 37(data) 1644 154 40
+            1651:32(float16_t) CompositeExtract 1649 0
+                              Store 1650 1651
+            1652:    155(ptr) AccessChain 37(data) 1644 154 188
+            1653:32(float16_t) CompositeExtract 1649 1
+                              Store 1652 1653
+            1654:      6(int) Load 8(invocation)
+            1655:    160(ptr) AccessChain 37(data) 52 154
+            1656: 33(f16vec4) Load 1655
+            1657:165(f16vec3) VectorShuffle 1656 1656 0 1 2
+            1658:   17(ivec4) Load 19(ballot)
+            1659:165(f16vec3) GroupNonUniformFMul 177 PartitionedReduceNV 1657 1658
+            1660:    155(ptr) AccessChain 37(data) 1654 154 40
+            1661:32(float16_t) CompositeExtract 1659 0
+                              Store 1660 1661
+            1662:    155(ptr) AccessChain 37(data) 1654 154 188
+            1663:32(float16_t) CompositeExtract 1659 1
+                              Store 1662 1663
+            1664:    155(ptr) AccessChain 37(data) 1654 154 201
+            1665:32(float16_t) CompositeExtract 1659 2
+                              Store 1664 1665
+            1666:      6(int) Load 8(invocation)
+            1667:    160(ptr) AccessChain 37(data) 58 154
+            1668: 33(f16vec4) Load 1667
+            1669:   17(ivec4) Load 19(ballot)
+            1670: 33(f16vec4) GroupNonUniformFMul 177 PartitionedReduceNV 1668 1669
+            1671:    160(ptr) AccessChain 37(data) 1666 154
+                              Store 1671 1670
+            1672:      6(int) Load 8(invocation)
+            1673:    155(ptr) AccessChain 37(data) 39 154 40
+            1674:32(float16_t) Load 1673
+            1675:   17(ivec4) Load 19(ballot)
+            1676:32(float16_t) GroupNonUniformFMin 177 PartitionedReduceNV 1674 1675
+            1677:    155(ptr) AccessChain 37(data) 1672 154 40
+                              Store 1677 1676
+            1678:      6(int) Load 8(invocation)
+            1679:    160(ptr) AccessChain 37(data) 45 154
+            1680: 33(f16vec4) Load 1679
+            1681:159(f16vec2) VectorShuffle 1680 1680 0 1
+            1682:   17(ivec4) Load 19(ballot)
+            1683:159(f16vec2) GroupNonUniformFMin 177 PartitionedReduceNV 1681 1682
+            1684:    155(ptr) AccessChain 37(data) 1678 154 40
+            1685:32(float16_t) CompositeExtract 1683 0
+                              Store 1684 1685
+            1686:    155(ptr) AccessChain 37(data) 1678 154 188
+            1687:32(float16_t) CompositeExtract 1683 1
+                              Store 1686 1687
+            1688:      6(int) Load 8(invocation)
+            1689:    160(ptr) AccessChain 37(data) 52 154
+            1690: 33(f16vec4) Load 1689
+            1691:165(f16vec3) VectorShuffle 1690 1690 0 1 2
+            1692:   17(ivec4) Load 19(ballot)
+            1693:165(f16vec3) GroupNonUniformFMin 177 PartitionedReduceNV 1691 1692
+            1694:    155(ptr) AccessChain 37(data) 1688 154 40
+            1695:32(float16_t) CompositeExtract 1693 0
+                              Store 1694 1695
+            1696:    155(ptr) AccessChain 37(data) 1688 154 188
+            1697:32(float16_t) CompositeExtract 1693 1
+                              Store 1696 1697
+            1698:    155(ptr) AccessChain 37(data) 1688 154 201
+            1699:32(float16_t) CompositeExtract 1693 2
+                              Store 1698 1699
+            1700:      6(int) Load 8(invocation)
+            1701:    160(ptr) AccessChain 37(data) 58 154
+            1702: 33(f16vec4) Load 1701
+            1703:   17(ivec4) Load 19(ballot)
+            1704: 33(f16vec4) GroupNonUniformFMin 177 PartitionedReduceNV 1702 1703
+            1705:    160(ptr) AccessChain 37(data) 1700 154
+                              Store 1705 1704
+            1706:      6(int) Load 8(invocation)
+            1707:    155(ptr) AccessChain 37(data) 39 154 40
+            1708:32(float16_t) Load 1707
+            1709:   17(ivec4) Load 19(ballot)
+            1710:32(float16_t) GroupNonUniformFMax 177 PartitionedReduceNV 1708 1709
+            1711:    155(ptr) AccessChain 37(data) 1706 154 40
+                              Store 1711 1710
+            1712:      6(int) Load 8(invocation)
+            1713:    160(ptr) AccessChain 37(data) 45 154
+            1714: 33(f16vec4) Load 1713
+            1715:159(f16vec2) VectorShuffle 1714 1714 0 1
+            1716:   17(ivec4) Load 19(ballot)
+            1717:159(f16vec2) GroupNonUniformFMax 177 PartitionedReduceNV 1715 1716
+            1718:    155(ptr) AccessChain 37(data) 1712 154 40
+            1719:32(float16_t) CompositeExtract 1717 0
+                              Store 1718 1719
+            1720:    155(ptr) AccessChain 37(data) 1712 154 188
+            1721:32(float16_t) CompositeExtract 1717 1
+                              Store 1720 1721
+            1722:      6(int) Load 8(invocation)
+            1723:    160(ptr) AccessChain 37(data) 52 154
+            1724: 33(f16vec4) Load 1723
+            1725:165(f16vec3) VectorShuffle 1724 1724 0 1 2
+            1726:   17(ivec4) Load 19(ballot)
+            1727:165(f16vec3) GroupNonUniformFMax 177 PartitionedReduceNV 1725 1726
+            1728:    155(ptr) AccessChain 37(data) 1722 154 40
+            1729:32(float16_t) CompositeExtract 1727 0
+                              Store 1728 1729
+            1730:    155(ptr) AccessChain 37(data) 1722 154 188
+            1731:32(float16_t) CompositeExtract 1727 1
+                              Store 1730 1731
+            1732:    155(ptr) AccessChain 37(data) 1722 154 201
+            1733:32(float16_t) CompositeExtract 1727 2
+                              Store 1732 1733
+            1734:      6(int) Load 8(invocation)
+            1735:    160(ptr) AccessChain 37(data) 58 154
+            1736: 33(f16vec4) Load 1735
+            1737:   17(ivec4) Load 19(ballot)
+            1738: 33(f16vec4) GroupNonUniformFMax 177 PartitionedReduceNV 1736 1737
+            1739:    160(ptr) AccessChain 37(data) 1734 154
+                              Store 1739 1738
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out b/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out
index beec1ac..f385545 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesQuad.comp.out
@@ -1,7 +1,7 @@
 spv.subgroupExtendedTypesQuad.comp
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 806
+// Id's are bound by 918
 
                               Capability Shader
                               Capability Float16
@@ -59,7 +59,7 @@
                               Decorate 31(Buffers) Block
                               Decorate 34(data) DescriptorSet 0
                               Decorate 34(data) Binding 0
-                              Decorate 805 BuiltIn WorkgroupSize
+                              Decorate 917 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -95,40 +95,40 @@
               47:     36(int) Constant 1
               48:             TypeVector 17(int8_t) 2
               49:             TypePointer StorageBuffer 18(i8vec4)
-              58:     36(int) Constant 2
-              59:             TypeVector 17(int8_t) 3
-              68:     36(int) Constant 3
-             128:      6(int) Constant 2
-             153:             TypePointer StorageBuffer 19(int8_t)
-             159:             TypeVector 19(int8_t) 2
-             160:             TypePointer StorageBuffer 20(i8vec4)
-             169:             TypeVector 19(int8_t) 3
-             261:             TypePointer StorageBuffer 21(int16_t)
-             267:             TypeVector 21(int16_t) 2
-             268:             TypePointer StorageBuffer 22(i16vec4)
-             277:             TypeVector 21(int16_t) 3
-             369:             TypePointer StorageBuffer 23(int16_t)
-             375:             TypeVector 23(int16_t) 2
-             376:             TypePointer StorageBuffer 24(i16vec4)
-             385:             TypeVector 23(int16_t) 3
-             477:     36(int) Constant 4
-             478:             TypePointer StorageBuffer 25(int64_t)
-             484:             TypeVector 25(int64_t) 2
-             485:             TypePointer StorageBuffer 26(i64vec4)
-             494:             TypeVector 25(int64_t) 3
-             586:     36(int) Constant 5
-             587:             TypePointer StorageBuffer 27(int64_t)
-             593:             TypeVector 27(int64_t) 2
-             594:             TypePointer StorageBuffer 28(i64vec4)
-             603:             TypeVector 27(int64_t) 3
-             695:     36(int) Constant 6
-             696:             TypePointer StorageBuffer 29(float16_t)
-             702:             TypeVector 29(float16_t) 2
-             703:             TypePointer StorageBuffer 30(f16vec4)
-             712:             TypeVector 29(float16_t) 3
-             803:             TypeVector 6(int) 3
-             804:      6(int) Constant 8
-             805:  803(ivec3) ConstantComposite 804 42 42
+              59:     36(int) Constant 2
+              60:             TypeVector 17(int8_t) 3
+              69:      6(int) Constant 2
+              73:     36(int) Constant 3
+             169:             TypePointer StorageBuffer 19(int8_t)
+             175:             TypeVector 19(int8_t) 2
+             176:             TypePointer StorageBuffer 20(i8vec4)
+             186:             TypeVector 19(int8_t) 3
+             293:             TypePointer StorageBuffer 21(int16_t)
+             299:             TypeVector 21(int16_t) 2
+             300:             TypePointer StorageBuffer 22(i16vec4)
+             310:             TypeVector 21(int16_t) 3
+             417:             TypePointer StorageBuffer 23(int16_t)
+             423:             TypeVector 23(int16_t) 2
+             424:             TypePointer StorageBuffer 24(i16vec4)
+             434:             TypeVector 23(int16_t) 3
+             541:     36(int) Constant 4
+             542:             TypePointer StorageBuffer 25(int64_t)
+             548:             TypeVector 25(int64_t) 2
+             549:             TypePointer StorageBuffer 26(i64vec4)
+             559:             TypeVector 25(int64_t) 3
+             666:     36(int) Constant 5
+             667:             TypePointer StorageBuffer 27(int64_t)
+             673:             TypeVector 27(int64_t) 2
+             674:             TypePointer StorageBuffer 28(i64vec4)
+             684:             TypeVector 27(int64_t) 3
+             791:     36(int) Constant 6
+             792:             TypePointer StorageBuffer 29(float16_t)
+             798:             TypeVector 29(float16_t) 2
+             799:             TypePointer StorageBuffer 30(f16vec4)
+             809:             TypeVector 29(float16_t) 3
+             915:             TypeVector 6(int) 3
+             916:      6(int) Constant 8
+             917:  915(ivec3) ConstantComposite 916 42 42
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -148,834 +148,1030 @@
               51:  18(i8vec4) Load 50
               52:  48(i8vec2) VectorShuffle 51 51 0 1
               53:  48(i8vec2) GroupNonUniformQuadBroadcast 43 52 42
-              54:     49(ptr) AccessChain 34(data) 46 37
-              55:  18(i8vec4) Load 54
-              56:  18(i8vec4) VectorShuffle 55 53 4 5 2 3
-                              Store 54 56
-              57:      6(int) Load 8(invocation)
-              60:     49(ptr) AccessChain 34(data) 58 37
-              61:  18(i8vec4) Load 60
-              62:  59(i8vec3) VectorShuffle 61 61 0 1 2
-              63:  59(i8vec3) GroupNonUniformQuadBroadcast 43 62 42
-              64:     49(ptr) AccessChain 34(data) 57 37
-              65:  18(i8vec4) Load 64
-              66:  18(i8vec4) VectorShuffle 65 63 4 5 6 3
-                              Store 64 66
-              67:      6(int) Load 8(invocation)
-              69:     49(ptr) AccessChain 34(data) 68 37
-              70:  18(i8vec4) Load 69
-              71:  18(i8vec4) GroupNonUniformQuadBroadcast 43 70 42
-              72:     49(ptr) AccessChain 34(data) 67 37
-                              Store 72 71
-              73:      6(int) Load 8(invocation)
-              74:     39(ptr) AccessChain 34(data) 37 37 38
-              75:  17(int8_t) Load 74
-              76:  17(int8_t) GroupNonUniformQuadSwap 43 75 38
-              77:     39(ptr) AccessChain 34(data) 73 37 38
+              54:     39(ptr) AccessChain 34(data) 46 37 38
+              55:  17(int8_t) CompositeExtract 53 0
+                              Store 54 55
+              56:     39(ptr) AccessChain 34(data) 46 37 42
+              57:  17(int8_t) CompositeExtract 53 1
+                              Store 56 57
+              58:      6(int) Load 8(invocation)
+              61:     49(ptr) AccessChain 34(data) 59 37
+              62:  18(i8vec4) Load 61
+              63:  60(i8vec3) VectorShuffle 62 62 0 1 2
+              64:  60(i8vec3) GroupNonUniformQuadBroadcast 43 63 42
+              65:     39(ptr) AccessChain 34(data) 58 37 38
+              66:  17(int8_t) CompositeExtract 64 0
+                              Store 65 66
+              67:     39(ptr) AccessChain 34(data) 58 37 42
+              68:  17(int8_t) CompositeExtract 64 1
+                              Store 67 68
+              70:     39(ptr) AccessChain 34(data) 58 37 69
+              71:  17(int8_t) CompositeExtract 64 2
+                              Store 70 71
+              72:      6(int) Load 8(invocation)
+              74:     49(ptr) AccessChain 34(data) 73 37
+              75:  18(i8vec4) Load 74
+              76:  18(i8vec4) GroupNonUniformQuadBroadcast 43 75 42
+              77:     49(ptr) AccessChain 34(data) 72 37
                               Store 77 76
               78:      6(int) Load 8(invocation)
-              79:     49(ptr) AccessChain 34(data) 47 37
-              80:  18(i8vec4) Load 79
-              81:  48(i8vec2) VectorShuffle 80 80 0 1
-              82:  48(i8vec2) GroupNonUniformQuadSwap 43 81 38
-              83:     49(ptr) AccessChain 34(data) 78 37
-              84:  18(i8vec4) Load 83
-              85:  18(i8vec4) VectorShuffle 84 82 4 5 2 3
-                              Store 83 85
-              86:      6(int) Load 8(invocation)
-              87:     49(ptr) AccessChain 34(data) 58 37
-              88:  18(i8vec4) Load 87
-              89:  59(i8vec3) VectorShuffle 88 88 0 1 2
-              90:  59(i8vec3) GroupNonUniformQuadSwap 43 89 38
-              91:     49(ptr) AccessChain 34(data) 86 37
-              92:  18(i8vec4) Load 91
-              93:  18(i8vec4) VectorShuffle 92 90 4 5 6 3
-                              Store 91 93
-              94:      6(int) Load 8(invocation)
-              95:     49(ptr) AccessChain 34(data) 68 37
-              96:  18(i8vec4) Load 95
-              97:  18(i8vec4) GroupNonUniformQuadSwap 43 96 38
-              98:     49(ptr) AccessChain 34(data) 94 37
-                              Store 98 97
-              99:      6(int) Load 8(invocation)
-             100:     39(ptr) AccessChain 34(data) 37 37 38
-             101:  17(int8_t) Load 100
-             102:  17(int8_t) GroupNonUniformQuadSwap 43 101 42
-             103:     39(ptr) AccessChain 34(data) 99 37 38
-                              Store 103 102
-             104:      6(int) Load 8(invocation)
-             105:     49(ptr) AccessChain 34(data) 47 37
-             106:  18(i8vec4) Load 105
-             107:  48(i8vec2) VectorShuffle 106 106 0 1
-             108:  48(i8vec2) GroupNonUniformQuadSwap 43 107 42
-             109:     49(ptr) AccessChain 34(data) 104 37
-             110:  18(i8vec4) Load 109
-             111:  18(i8vec4) VectorShuffle 110 108 4 5 2 3
-                              Store 109 111
-             112:      6(int) Load 8(invocation)
-             113:     49(ptr) AccessChain 34(data) 58 37
-             114:  18(i8vec4) Load 113
-             115:  59(i8vec3) VectorShuffle 114 114 0 1 2
-             116:  59(i8vec3) GroupNonUniformQuadSwap 43 115 42
-             117:     49(ptr) AccessChain 34(data) 112 37
-             118:  18(i8vec4) Load 117
-             119:  18(i8vec4) VectorShuffle 118 116 4 5 6 3
-                              Store 117 119
-             120:      6(int) Load 8(invocation)
-             121:     49(ptr) AccessChain 34(data) 68 37
-             122:  18(i8vec4) Load 121
-             123:  18(i8vec4) GroupNonUniformQuadSwap 43 122 42
-             124:     49(ptr) AccessChain 34(data) 120 37
-                              Store 124 123
-             125:      6(int) Load 8(invocation)
-             126:     39(ptr) AccessChain 34(data) 37 37 38
-             127:  17(int8_t) Load 126
-             129:  17(int8_t) GroupNonUniformQuadSwap 43 127 128
-             130:     39(ptr) AccessChain 34(data) 125 37 38
-                              Store 130 129
-             131:      6(int) Load 8(invocation)
-             132:     49(ptr) AccessChain 34(data) 47 37
-             133:  18(i8vec4) Load 132
-             134:  48(i8vec2) VectorShuffle 133 133 0 1
-             135:  48(i8vec2) GroupNonUniformQuadSwap 43 134 128
-             136:     49(ptr) AccessChain 34(data) 131 37
-             137:  18(i8vec4) Load 136
-             138:  18(i8vec4) VectorShuffle 137 135 4 5 2 3
-                              Store 136 138
-             139:      6(int) Load 8(invocation)
-             140:     49(ptr) AccessChain 34(data) 58 37
-             141:  18(i8vec4) Load 140
-             142:  59(i8vec3) VectorShuffle 141 141 0 1 2
-             143:  59(i8vec3) GroupNonUniformQuadSwap 43 142 128
-             144:     49(ptr) AccessChain 34(data) 139 37
+              79:     39(ptr) AccessChain 34(data) 37 37 38
+              80:  17(int8_t) Load 79
+              81:  17(int8_t) GroupNonUniformQuadSwap 43 80 38
+              82:     39(ptr) AccessChain 34(data) 78 37 38
+                              Store 82 81
+              83:      6(int) Load 8(invocation)
+              84:     49(ptr) AccessChain 34(data) 47 37
+              85:  18(i8vec4) Load 84
+              86:  48(i8vec2) VectorShuffle 85 85 0 1
+              87:  48(i8vec2) GroupNonUniformQuadSwap 43 86 38
+              88:     39(ptr) AccessChain 34(data) 83 37 38
+              89:  17(int8_t) CompositeExtract 87 0
+                              Store 88 89
+              90:     39(ptr) AccessChain 34(data) 83 37 42
+              91:  17(int8_t) CompositeExtract 87 1
+                              Store 90 91
+              92:      6(int) Load 8(invocation)
+              93:     49(ptr) AccessChain 34(data) 59 37
+              94:  18(i8vec4) Load 93
+              95:  60(i8vec3) VectorShuffle 94 94 0 1 2
+              96:  60(i8vec3) GroupNonUniformQuadSwap 43 95 38
+              97:     39(ptr) AccessChain 34(data) 92 37 38
+              98:  17(int8_t) CompositeExtract 96 0
+                              Store 97 98
+              99:     39(ptr) AccessChain 34(data) 92 37 42
+             100:  17(int8_t) CompositeExtract 96 1
+                              Store 99 100
+             101:     39(ptr) AccessChain 34(data) 92 37 69
+             102:  17(int8_t) CompositeExtract 96 2
+                              Store 101 102
+             103:      6(int) Load 8(invocation)
+             104:     49(ptr) AccessChain 34(data) 73 37
+             105:  18(i8vec4) Load 104
+             106:  18(i8vec4) GroupNonUniformQuadSwap 43 105 38
+             107:     49(ptr) AccessChain 34(data) 103 37
+                              Store 107 106
+             108:      6(int) Load 8(invocation)
+             109:     39(ptr) AccessChain 34(data) 37 37 38
+             110:  17(int8_t) Load 109
+             111:  17(int8_t) GroupNonUniformQuadSwap 43 110 42
+             112:     39(ptr) AccessChain 34(data) 108 37 38
+                              Store 112 111
+             113:      6(int) Load 8(invocation)
+             114:     49(ptr) AccessChain 34(data) 47 37
+             115:  18(i8vec4) Load 114
+             116:  48(i8vec2) VectorShuffle 115 115 0 1
+             117:  48(i8vec2) GroupNonUniformQuadSwap 43 116 42
+             118:     39(ptr) AccessChain 34(data) 113 37 38
+             119:  17(int8_t) CompositeExtract 117 0
+                              Store 118 119
+             120:     39(ptr) AccessChain 34(data) 113 37 42
+             121:  17(int8_t) CompositeExtract 117 1
+                              Store 120 121
+             122:      6(int) Load 8(invocation)
+             123:     49(ptr) AccessChain 34(data) 59 37
+             124:  18(i8vec4) Load 123
+             125:  60(i8vec3) VectorShuffle 124 124 0 1 2
+             126:  60(i8vec3) GroupNonUniformQuadSwap 43 125 42
+             127:     39(ptr) AccessChain 34(data) 122 37 38
+             128:  17(int8_t) CompositeExtract 126 0
+                              Store 127 128
+             129:     39(ptr) AccessChain 34(data) 122 37 42
+             130:  17(int8_t) CompositeExtract 126 1
+                              Store 129 130
+             131:     39(ptr) AccessChain 34(data) 122 37 69
+             132:  17(int8_t) CompositeExtract 126 2
+                              Store 131 132
+             133:      6(int) Load 8(invocation)
+             134:     49(ptr) AccessChain 34(data) 73 37
+             135:  18(i8vec4) Load 134
+             136:  18(i8vec4) GroupNonUniformQuadSwap 43 135 42
+             137:     49(ptr) AccessChain 34(data) 133 37
+                              Store 137 136
+             138:      6(int) Load 8(invocation)
+             139:     39(ptr) AccessChain 34(data) 37 37 38
+             140:  17(int8_t) Load 139
+             141:  17(int8_t) GroupNonUniformQuadSwap 43 140 69
+             142:     39(ptr) AccessChain 34(data) 138 37 38
+                              Store 142 141
+             143:      6(int) Load 8(invocation)
+             144:     49(ptr) AccessChain 34(data) 47 37
              145:  18(i8vec4) Load 144
-             146:  18(i8vec4) VectorShuffle 145 143 4 5 6 3
-                              Store 144 146
-             147:      6(int) Load 8(invocation)
-             148:     49(ptr) AccessChain 34(data) 68 37
-             149:  18(i8vec4) Load 148
-             150:  18(i8vec4) GroupNonUniformQuadSwap 43 149 128
-             151:     49(ptr) AccessChain 34(data) 147 37
-                              Store 151 150
+             146:  48(i8vec2) VectorShuffle 145 145 0 1
+             147:  48(i8vec2) GroupNonUniformQuadSwap 43 146 69
+             148:     39(ptr) AccessChain 34(data) 143 37 38
+             149:  17(int8_t) CompositeExtract 147 0
+                              Store 148 149
+             150:     39(ptr) AccessChain 34(data) 143 37 42
+             151:  17(int8_t) CompositeExtract 147 1
+                              Store 150 151
              152:      6(int) Load 8(invocation)
-             154:    153(ptr) AccessChain 34(data) 37 47 38
-             155:  19(int8_t) Load 154
-             156:  19(int8_t) GroupNonUniformQuadBroadcast 43 155 42
-             157:    153(ptr) AccessChain 34(data) 152 47 38
-                              Store 157 156
-             158:      6(int) Load 8(invocation)
-             161:    160(ptr) AccessChain 34(data) 47 47
-             162:  20(i8vec4) Load 161
-             163: 159(i8vec2) VectorShuffle 162 162 0 1
-             164: 159(i8vec2) GroupNonUniformQuadBroadcast 43 163 42
-             165:    160(ptr) AccessChain 34(data) 158 47
-             166:  20(i8vec4) Load 165
-             167:  20(i8vec4) VectorShuffle 166 164 4 5 2 3
-                              Store 165 167
+             153:     49(ptr) AccessChain 34(data) 59 37
+             154:  18(i8vec4) Load 153
+             155:  60(i8vec3) VectorShuffle 154 154 0 1 2
+             156:  60(i8vec3) GroupNonUniformQuadSwap 43 155 69
+             157:     39(ptr) AccessChain 34(data) 152 37 38
+             158:  17(int8_t) CompositeExtract 156 0
+                              Store 157 158
+             159:     39(ptr) AccessChain 34(data) 152 37 42
+             160:  17(int8_t) CompositeExtract 156 1
+                              Store 159 160
+             161:     39(ptr) AccessChain 34(data) 152 37 69
+             162:  17(int8_t) CompositeExtract 156 2
+                              Store 161 162
+             163:      6(int) Load 8(invocation)
+             164:     49(ptr) AccessChain 34(data) 73 37
+             165:  18(i8vec4) Load 164
+             166:  18(i8vec4) GroupNonUniformQuadSwap 43 165 69
+             167:     49(ptr) AccessChain 34(data) 163 37
+                              Store 167 166
              168:      6(int) Load 8(invocation)
-             170:    160(ptr) AccessChain 34(data) 58 47
-             171:  20(i8vec4) Load 170
-             172: 169(i8vec3) VectorShuffle 171 171 0 1 2
-             173: 169(i8vec3) GroupNonUniformQuadBroadcast 43 172 42
-             174:    160(ptr) AccessChain 34(data) 168 47
-             175:  20(i8vec4) Load 174
-             176:  20(i8vec4) VectorShuffle 175 173 4 5 6 3
-                              Store 174 176
-             177:      6(int) Load 8(invocation)
-             178:    160(ptr) AccessChain 34(data) 68 47
-             179:  20(i8vec4) Load 178
-             180:  20(i8vec4) GroupNonUniformQuadBroadcast 43 179 42
-             181:    160(ptr) AccessChain 34(data) 177 47
-                              Store 181 180
-             182:      6(int) Load 8(invocation)
-             183:    153(ptr) AccessChain 34(data) 37 47 38
-             184:  19(int8_t) Load 183
-             185:  19(int8_t) GroupNonUniformQuadSwap 43 184 38
-             186:    153(ptr) AccessChain 34(data) 182 47 38
-                              Store 186 185
-             187:      6(int) Load 8(invocation)
-             188:    160(ptr) AccessChain 34(data) 47 47
-             189:  20(i8vec4) Load 188
-             190: 159(i8vec2) VectorShuffle 189 189 0 1
-             191: 159(i8vec2) GroupNonUniformQuadSwap 43 190 38
-             192:    160(ptr) AccessChain 34(data) 187 47
-             193:  20(i8vec4) Load 192
-             194:  20(i8vec4) VectorShuffle 193 191 4 5 2 3
-                              Store 192 194
-             195:      6(int) Load 8(invocation)
-             196:    160(ptr) AccessChain 34(data) 58 47
-             197:  20(i8vec4) Load 196
-             198: 169(i8vec3) VectorShuffle 197 197 0 1 2
-             199: 169(i8vec3) GroupNonUniformQuadSwap 43 198 38
-             200:    160(ptr) AccessChain 34(data) 195 47
-             201:  20(i8vec4) Load 200
-             202:  20(i8vec4) VectorShuffle 201 199 4 5 6 3
-                              Store 200 202
-             203:      6(int) Load 8(invocation)
-             204:    160(ptr) AccessChain 34(data) 68 47
-             205:  20(i8vec4) Load 204
-             206:  20(i8vec4) GroupNonUniformQuadSwap 43 205 38
-             207:    160(ptr) AccessChain 34(data) 203 47
-                              Store 207 206
-             208:      6(int) Load 8(invocation)
-             209:    153(ptr) AccessChain 34(data) 37 47 38
-             210:  19(int8_t) Load 209
-             211:  19(int8_t) GroupNonUniformQuadSwap 43 210 42
-             212:    153(ptr) AccessChain 34(data) 208 47 38
-                              Store 212 211
-             213:      6(int) Load 8(invocation)
-             214:    160(ptr) AccessChain 34(data) 47 47
-             215:  20(i8vec4) Load 214
-             216: 159(i8vec2) VectorShuffle 215 215 0 1
-             217: 159(i8vec2) GroupNonUniformQuadSwap 43 216 42
-             218:    160(ptr) AccessChain 34(data) 213 47
-             219:  20(i8vec4) Load 218
-             220:  20(i8vec4) VectorShuffle 219 217 4 5 2 3
-                              Store 218 220
-             221:      6(int) Load 8(invocation)
-             222:    160(ptr) AccessChain 34(data) 58 47
-             223:  20(i8vec4) Load 222
-             224: 169(i8vec3) VectorShuffle 223 223 0 1 2
-             225: 169(i8vec3) GroupNonUniformQuadSwap 43 224 42
-             226:    160(ptr) AccessChain 34(data) 221 47
-             227:  20(i8vec4) Load 226
-             228:  20(i8vec4) VectorShuffle 227 225 4 5 6 3
-                              Store 226 228
-             229:      6(int) Load 8(invocation)
-             230:    160(ptr) AccessChain 34(data) 68 47
-             231:  20(i8vec4) Load 230
-             232:  20(i8vec4) GroupNonUniformQuadSwap 43 231 42
-             233:    160(ptr) AccessChain 34(data) 229 47
-                              Store 233 232
-             234:      6(int) Load 8(invocation)
-             235:    153(ptr) AccessChain 34(data) 37 47 38
-             236:  19(int8_t) Load 235
-             237:  19(int8_t) GroupNonUniformQuadSwap 43 236 128
-             238:    153(ptr) AccessChain 34(data) 234 47 38
-                              Store 238 237
-             239:      6(int) Load 8(invocation)
-             240:    160(ptr) AccessChain 34(data) 47 47
-             241:  20(i8vec4) Load 240
-             242: 159(i8vec2) VectorShuffle 241 241 0 1
-             243: 159(i8vec2) GroupNonUniformQuadSwap 43 242 128
-             244:    160(ptr) AccessChain 34(data) 239 47
-             245:  20(i8vec4) Load 244
-             246:  20(i8vec4) VectorShuffle 245 243 4 5 2 3
-                              Store 244 246
-             247:      6(int) Load 8(invocation)
-             248:    160(ptr) AccessChain 34(data) 58 47
-             249:  20(i8vec4) Load 248
-             250: 169(i8vec3) VectorShuffle 249 249 0 1 2
-             251: 169(i8vec3) GroupNonUniformQuadSwap 43 250 128
-             252:    160(ptr) AccessChain 34(data) 247 47
-             253:  20(i8vec4) Load 252
-             254:  20(i8vec4) VectorShuffle 253 251 4 5 6 3
-                              Store 252 254
-             255:      6(int) Load 8(invocation)
-             256:    160(ptr) AccessChain 34(data) 68 47
-             257:  20(i8vec4) Load 256
-             258:  20(i8vec4) GroupNonUniformQuadSwap 43 257 128
-             259:    160(ptr) AccessChain 34(data) 255 47
-                              Store 259 258
-             260:      6(int) Load 8(invocation)
-             262:    261(ptr) AccessChain 34(data) 37 58 38
-             263: 21(int16_t) Load 262
-             264: 21(int16_t) GroupNonUniformQuadBroadcast 43 263 42
-             265:    261(ptr) AccessChain 34(data) 260 58 38
-                              Store 265 264
-             266:      6(int) Load 8(invocation)
-             269:    268(ptr) AccessChain 34(data) 47 58
-             270: 22(i16vec4) Load 269
-             271:267(i16vec2) VectorShuffle 270 270 0 1
-             272:267(i16vec2) GroupNonUniformQuadBroadcast 43 271 42
-             273:    268(ptr) AccessChain 34(data) 266 58
-             274: 22(i16vec4) Load 273
-             275: 22(i16vec4) VectorShuffle 274 272 4 5 2 3
-                              Store 273 275
+             170:    169(ptr) AccessChain 34(data) 37 47 38
+             171:  19(int8_t) Load 170
+             172:  19(int8_t) GroupNonUniformQuadBroadcast 43 171 42
+             173:    169(ptr) AccessChain 34(data) 168 47 38
+                              Store 173 172
+             174:      6(int) Load 8(invocation)
+             177:    176(ptr) AccessChain 34(data) 47 47
+             178:  20(i8vec4) Load 177
+             179: 175(i8vec2) VectorShuffle 178 178 0 1
+             180: 175(i8vec2) GroupNonUniformQuadBroadcast 43 179 42
+             181:    169(ptr) AccessChain 34(data) 174 47 38
+             182:  19(int8_t) CompositeExtract 180 0
+                              Store 181 182
+             183:    169(ptr) AccessChain 34(data) 174 47 42
+             184:  19(int8_t) CompositeExtract 180 1
+                              Store 183 184
+             185:      6(int) Load 8(invocation)
+             187:    176(ptr) AccessChain 34(data) 59 47
+             188:  20(i8vec4) Load 187
+             189: 186(i8vec3) VectorShuffle 188 188 0 1 2
+             190: 186(i8vec3) GroupNonUniformQuadBroadcast 43 189 42
+             191:    169(ptr) AccessChain 34(data) 185 47 38
+             192:  19(int8_t) CompositeExtract 190 0
+                              Store 191 192
+             193:    169(ptr) AccessChain 34(data) 185 47 42
+             194:  19(int8_t) CompositeExtract 190 1
+                              Store 193 194
+             195:    169(ptr) AccessChain 34(data) 185 47 69
+             196:  19(int8_t) CompositeExtract 190 2
+                              Store 195 196
+             197:      6(int) Load 8(invocation)
+             198:    176(ptr) AccessChain 34(data) 73 47
+             199:  20(i8vec4) Load 198
+             200:  20(i8vec4) GroupNonUniformQuadBroadcast 43 199 42
+             201:    176(ptr) AccessChain 34(data) 197 47
+                              Store 201 200
+             202:      6(int) Load 8(invocation)
+             203:    169(ptr) AccessChain 34(data) 37 47 38
+             204:  19(int8_t) Load 203
+             205:  19(int8_t) GroupNonUniformQuadSwap 43 204 38
+             206:    169(ptr) AccessChain 34(data) 202 47 38
+                              Store 206 205
+             207:      6(int) Load 8(invocation)
+             208:    176(ptr) AccessChain 34(data) 47 47
+             209:  20(i8vec4) Load 208
+             210: 175(i8vec2) VectorShuffle 209 209 0 1
+             211: 175(i8vec2) GroupNonUniformQuadSwap 43 210 38
+             212:    169(ptr) AccessChain 34(data) 207 47 38
+             213:  19(int8_t) CompositeExtract 211 0
+                              Store 212 213
+             214:    169(ptr) AccessChain 34(data) 207 47 42
+             215:  19(int8_t) CompositeExtract 211 1
+                              Store 214 215
+             216:      6(int) Load 8(invocation)
+             217:    176(ptr) AccessChain 34(data) 59 47
+             218:  20(i8vec4) Load 217
+             219: 186(i8vec3) VectorShuffle 218 218 0 1 2
+             220: 186(i8vec3) GroupNonUniformQuadSwap 43 219 38
+             221:    169(ptr) AccessChain 34(data) 216 47 38
+             222:  19(int8_t) CompositeExtract 220 0
+                              Store 221 222
+             223:    169(ptr) AccessChain 34(data) 216 47 42
+             224:  19(int8_t) CompositeExtract 220 1
+                              Store 223 224
+             225:    169(ptr) AccessChain 34(data) 216 47 69
+             226:  19(int8_t) CompositeExtract 220 2
+                              Store 225 226
+             227:      6(int) Load 8(invocation)
+             228:    176(ptr) AccessChain 34(data) 73 47
+             229:  20(i8vec4) Load 228
+             230:  20(i8vec4) GroupNonUniformQuadSwap 43 229 38
+             231:    176(ptr) AccessChain 34(data) 227 47
+                              Store 231 230
+             232:      6(int) Load 8(invocation)
+             233:    169(ptr) AccessChain 34(data) 37 47 38
+             234:  19(int8_t) Load 233
+             235:  19(int8_t) GroupNonUniformQuadSwap 43 234 42
+             236:    169(ptr) AccessChain 34(data) 232 47 38
+                              Store 236 235
+             237:      6(int) Load 8(invocation)
+             238:    176(ptr) AccessChain 34(data) 47 47
+             239:  20(i8vec4) Load 238
+             240: 175(i8vec2) VectorShuffle 239 239 0 1
+             241: 175(i8vec2) GroupNonUniformQuadSwap 43 240 42
+             242:    169(ptr) AccessChain 34(data) 237 47 38
+             243:  19(int8_t) CompositeExtract 241 0
+                              Store 242 243
+             244:    169(ptr) AccessChain 34(data) 237 47 42
+             245:  19(int8_t) CompositeExtract 241 1
+                              Store 244 245
+             246:      6(int) Load 8(invocation)
+             247:    176(ptr) AccessChain 34(data) 59 47
+             248:  20(i8vec4) Load 247
+             249: 186(i8vec3) VectorShuffle 248 248 0 1 2
+             250: 186(i8vec3) GroupNonUniformQuadSwap 43 249 42
+             251:    169(ptr) AccessChain 34(data) 246 47 38
+             252:  19(int8_t) CompositeExtract 250 0
+                              Store 251 252
+             253:    169(ptr) AccessChain 34(data) 246 47 42
+             254:  19(int8_t) CompositeExtract 250 1
+                              Store 253 254
+             255:    169(ptr) AccessChain 34(data) 246 47 69
+             256:  19(int8_t) CompositeExtract 250 2
+                              Store 255 256
+             257:      6(int) Load 8(invocation)
+             258:    176(ptr) AccessChain 34(data) 73 47
+             259:  20(i8vec4) Load 258
+             260:  20(i8vec4) GroupNonUniformQuadSwap 43 259 42
+             261:    176(ptr) AccessChain 34(data) 257 47
+                              Store 261 260
+             262:      6(int) Load 8(invocation)
+             263:    169(ptr) AccessChain 34(data) 37 47 38
+             264:  19(int8_t) Load 263
+             265:  19(int8_t) GroupNonUniformQuadSwap 43 264 69
+             266:    169(ptr) AccessChain 34(data) 262 47 38
+                              Store 266 265
+             267:      6(int) Load 8(invocation)
+             268:    176(ptr) AccessChain 34(data) 47 47
+             269:  20(i8vec4) Load 268
+             270: 175(i8vec2) VectorShuffle 269 269 0 1
+             271: 175(i8vec2) GroupNonUniformQuadSwap 43 270 69
+             272:    169(ptr) AccessChain 34(data) 267 47 38
+             273:  19(int8_t) CompositeExtract 271 0
+                              Store 272 273
+             274:    169(ptr) AccessChain 34(data) 267 47 42
+             275:  19(int8_t) CompositeExtract 271 1
+                              Store 274 275
              276:      6(int) Load 8(invocation)
-             278:    268(ptr) AccessChain 34(data) 58 58
-             279: 22(i16vec4) Load 278
-             280:277(i16vec3) VectorShuffle 279 279 0 1 2
-             281:277(i16vec3) GroupNonUniformQuadBroadcast 43 280 42
-             282:    268(ptr) AccessChain 34(data) 276 58
-             283: 22(i16vec4) Load 282
-             284: 22(i16vec4) VectorShuffle 283 281 4 5 6 3
-                              Store 282 284
-             285:      6(int) Load 8(invocation)
-             286:    268(ptr) AccessChain 34(data) 68 58
-             287: 22(i16vec4) Load 286
-             288: 22(i16vec4) GroupNonUniformQuadBroadcast 43 287 42
-             289:    268(ptr) AccessChain 34(data) 285 58
-                              Store 289 288
-             290:      6(int) Load 8(invocation)
-             291:    261(ptr) AccessChain 34(data) 37 58 38
-             292: 21(int16_t) Load 291
-             293: 21(int16_t) GroupNonUniformQuadSwap 43 292 38
-             294:    261(ptr) AccessChain 34(data) 290 58 38
-                              Store 294 293
-             295:      6(int) Load 8(invocation)
-             296:    268(ptr) AccessChain 34(data) 47 58
-             297: 22(i16vec4) Load 296
-             298:267(i16vec2) VectorShuffle 297 297 0 1
-             299:267(i16vec2) GroupNonUniformQuadSwap 43 298 38
-             300:    268(ptr) AccessChain 34(data) 295 58
-             301: 22(i16vec4) Load 300
-             302: 22(i16vec4) VectorShuffle 301 299 4 5 2 3
-                              Store 300 302
-             303:      6(int) Load 8(invocation)
-             304:    268(ptr) AccessChain 34(data) 58 58
-             305: 22(i16vec4) Load 304
-             306:277(i16vec3) VectorShuffle 305 305 0 1 2
-             307:277(i16vec3) GroupNonUniformQuadSwap 43 306 38
-             308:    268(ptr) AccessChain 34(data) 303 58
-             309: 22(i16vec4) Load 308
-             310: 22(i16vec4) VectorShuffle 309 307 4 5 6 3
-                              Store 308 310
-             311:      6(int) Load 8(invocation)
-             312:    268(ptr) AccessChain 34(data) 68 58
-             313: 22(i16vec4) Load 312
-             314: 22(i16vec4) GroupNonUniformQuadSwap 43 313 38
-             315:    268(ptr) AccessChain 34(data) 311 58
-                              Store 315 314
-             316:      6(int) Load 8(invocation)
-             317:    261(ptr) AccessChain 34(data) 37 58 38
-             318: 21(int16_t) Load 317
-             319: 21(int16_t) GroupNonUniformQuadSwap 43 318 42
-             320:    261(ptr) AccessChain 34(data) 316 58 38
-                              Store 320 319
+             277:    176(ptr) AccessChain 34(data) 59 47
+             278:  20(i8vec4) Load 277
+             279: 186(i8vec3) VectorShuffle 278 278 0 1 2
+             280: 186(i8vec3) GroupNonUniformQuadSwap 43 279 69
+             281:    169(ptr) AccessChain 34(data) 276 47 38
+             282:  19(int8_t) CompositeExtract 280 0
+                              Store 281 282
+             283:    169(ptr) AccessChain 34(data) 276 47 42
+             284:  19(int8_t) CompositeExtract 280 1
+                              Store 283 284
+             285:    169(ptr) AccessChain 34(data) 276 47 69
+             286:  19(int8_t) CompositeExtract 280 2
+                              Store 285 286
+             287:      6(int) Load 8(invocation)
+             288:    176(ptr) AccessChain 34(data) 73 47
+             289:  20(i8vec4) Load 288
+             290:  20(i8vec4) GroupNonUniformQuadSwap 43 289 69
+             291:    176(ptr) AccessChain 34(data) 287 47
+                              Store 291 290
+             292:      6(int) Load 8(invocation)
+             294:    293(ptr) AccessChain 34(data) 37 59 38
+             295: 21(int16_t) Load 294
+             296: 21(int16_t) GroupNonUniformQuadBroadcast 43 295 42
+             297:    293(ptr) AccessChain 34(data) 292 59 38
+                              Store 297 296
+             298:      6(int) Load 8(invocation)
+             301:    300(ptr) AccessChain 34(data) 47 59
+             302: 22(i16vec4) Load 301
+             303:299(i16vec2) VectorShuffle 302 302 0 1
+             304:299(i16vec2) GroupNonUniformQuadBroadcast 43 303 42
+             305:    293(ptr) AccessChain 34(data) 298 59 38
+             306: 21(int16_t) CompositeExtract 304 0
+                              Store 305 306
+             307:    293(ptr) AccessChain 34(data) 298 59 42
+             308: 21(int16_t) CompositeExtract 304 1
+                              Store 307 308
+             309:      6(int) Load 8(invocation)
+             311:    300(ptr) AccessChain 34(data) 59 59
+             312: 22(i16vec4) Load 311
+             313:310(i16vec3) VectorShuffle 312 312 0 1 2
+             314:310(i16vec3) GroupNonUniformQuadBroadcast 43 313 42
+             315:    293(ptr) AccessChain 34(data) 309 59 38
+             316: 21(int16_t) CompositeExtract 314 0
+                              Store 315 316
+             317:    293(ptr) AccessChain 34(data) 309 59 42
+             318: 21(int16_t) CompositeExtract 314 1
+                              Store 317 318
+             319:    293(ptr) AccessChain 34(data) 309 59 69
+             320: 21(int16_t) CompositeExtract 314 2
+                              Store 319 320
              321:      6(int) Load 8(invocation)
-             322:    268(ptr) AccessChain 34(data) 47 58
+             322:    300(ptr) AccessChain 34(data) 73 59
              323: 22(i16vec4) Load 322
-             324:267(i16vec2) VectorShuffle 323 323 0 1
-             325:267(i16vec2) GroupNonUniformQuadSwap 43 324 42
-             326:    268(ptr) AccessChain 34(data) 321 58
-             327: 22(i16vec4) Load 326
-             328: 22(i16vec4) VectorShuffle 327 325 4 5 2 3
-                              Store 326 328
-             329:      6(int) Load 8(invocation)
-             330:    268(ptr) AccessChain 34(data) 58 58
-             331: 22(i16vec4) Load 330
-             332:277(i16vec3) VectorShuffle 331 331 0 1 2
-             333:277(i16vec3) GroupNonUniformQuadSwap 43 332 42
-             334:    268(ptr) AccessChain 34(data) 329 58
-             335: 22(i16vec4) Load 334
-             336: 22(i16vec4) VectorShuffle 335 333 4 5 6 3
-                              Store 334 336
-             337:      6(int) Load 8(invocation)
-             338:    268(ptr) AccessChain 34(data) 68 58
-             339: 22(i16vec4) Load 338
-             340: 22(i16vec4) GroupNonUniformQuadSwap 43 339 42
-             341:    268(ptr) AccessChain 34(data) 337 58
-                              Store 341 340
-             342:      6(int) Load 8(invocation)
-             343:    261(ptr) AccessChain 34(data) 37 58 38
-             344: 21(int16_t) Load 343
-             345: 21(int16_t) GroupNonUniformQuadSwap 43 344 128
-             346:    261(ptr) AccessChain 34(data) 342 58 38
-                              Store 346 345
-             347:      6(int) Load 8(invocation)
-             348:    268(ptr) AccessChain 34(data) 47 58
-             349: 22(i16vec4) Load 348
-             350:267(i16vec2) VectorShuffle 349 349 0 1
-             351:267(i16vec2) GroupNonUniformQuadSwap 43 350 128
-             352:    268(ptr) AccessChain 34(data) 347 58
+             324: 22(i16vec4) GroupNonUniformQuadBroadcast 43 323 42
+             325:    300(ptr) AccessChain 34(data) 321 59
+                              Store 325 324
+             326:      6(int) Load 8(invocation)
+             327:    293(ptr) AccessChain 34(data) 37 59 38
+             328: 21(int16_t) Load 327
+             329: 21(int16_t) GroupNonUniformQuadSwap 43 328 38
+             330:    293(ptr) AccessChain 34(data) 326 59 38
+                              Store 330 329
+             331:      6(int) Load 8(invocation)
+             332:    300(ptr) AccessChain 34(data) 47 59
+             333: 22(i16vec4) Load 332
+             334:299(i16vec2) VectorShuffle 333 333 0 1
+             335:299(i16vec2) GroupNonUniformQuadSwap 43 334 38
+             336:    293(ptr) AccessChain 34(data) 331 59 38
+             337: 21(int16_t) CompositeExtract 335 0
+                              Store 336 337
+             338:    293(ptr) AccessChain 34(data) 331 59 42
+             339: 21(int16_t) CompositeExtract 335 1
+                              Store 338 339
+             340:      6(int) Load 8(invocation)
+             341:    300(ptr) AccessChain 34(data) 59 59
+             342: 22(i16vec4) Load 341
+             343:310(i16vec3) VectorShuffle 342 342 0 1 2
+             344:310(i16vec3) GroupNonUniformQuadSwap 43 343 38
+             345:    293(ptr) AccessChain 34(data) 340 59 38
+             346: 21(int16_t) CompositeExtract 344 0
+                              Store 345 346
+             347:    293(ptr) AccessChain 34(data) 340 59 42
+             348: 21(int16_t) CompositeExtract 344 1
+                              Store 347 348
+             349:    293(ptr) AccessChain 34(data) 340 59 69
+             350: 21(int16_t) CompositeExtract 344 2
+                              Store 349 350
+             351:      6(int) Load 8(invocation)
+             352:    300(ptr) AccessChain 34(data) 73 59
              353: 22(i16vec4) Load 352
-             354: 22(i16vec4) VectorShuffle 353 351 4 5 2 3
-                              Store 352 354
-             355:      6(int) Load 8(invocation)
-             356:    268(ptr) AccessChain 34(data) 58 58
-             357: 22(i16vec4) Load 356
-             358:277(i16vec3) VectorShuffle 357 357 0 1 2
-             359:277(i16vec3) GroupNonUniformQuadSwap 43 358 128
-             360:    268(ptr) AccessChain 34(data) 355 58
-             361: 22(i16vec4) Load 360
-             362: 22(i16vec4) VectorShuffle 361 359 4 5 6 3
-                              Store 360 362
-             363:      6(int) Load 8(invocation)
-             364:    268(ptr) AccessChain 34(data) 68 58
-             365: 22(i16vec4) Load 364
-             366: 22(i16vec4) GroupNonUniformQuadSwap 43 365 128
-             367:    268(ptr) AccessChain 34(data) 363 58
-                              Store 367 366
-             368:      6(int) Load 8(invocation)
-             370:    369(ptr) AccessChain 34(data) 37 68 38
-             371: 23(int16_t) Load 370
-             372: 23(int16_t) GroupNonUniformQuadBroadcast 43 371 42
-             373:    369(ptr) AccessChain 34(data) 368 68 38
-                              Store 373 372
-             374:      6(int) Load 8(invocation)
-             377:    376(ptr) AccessChain 34(data) 47 68
-             378: 24(i16vec4) Load 377
-             379:375(i16vec2) VectorShuffle 378 378 0 1
-             380:375(i16vec2) GroupNonUniformQuadBroadcast 43 379 42
-             381:    376(ptr) AccessChain 34(data) 374 68
-             382: 24(i16vec4) Load 381
-             383: 24(i16vec4) VectorShuffle 382 380 4 5 2 3
-                              Store 381 383
-             384:      6(int) Load 8(invocation)
-             386:    376(ptr) AccessChain 34(data) 58 68
-             387: 24(i16vec4) Load 386
-             388:385(i16vec3) VectorShuffle 387 387 0 1 2
-             389:385(i16vec3) GroupNonUniformQuadBroadcast 43 388 42
-             390:    376(ptr) AccessChain 34(data) 384 68
-             391: 24(i16vec4) Load 390
-             392: 24(i16vec4) VectorShuffle 391 389 4 5 6 3
-                              Store 390 392
-             393:      6(int) Load 8(invocation)
-             394:    376(ptr) AccessChain 34(data) 68 68
-             395: 24(i16vec4) Load 394
-             396: 24(i16vec4) GroupNonUniformQuadBroadcast 43 395 42
-             397:    376(ptr) AccessChain 34(data) 393 68
-                              Store 397 396
-             398:      6(int) Load 8(invocation)
-             399:    369(ptr) AccessChain 34(data) 37 68 38
-             400: 23(int16_t) Load 399
-             401: 23(int16_t) GroupNonUniformQuadSwap 43 400 38
-             402:    369(ptr) AccessChain 34(data) 398 68 38
-                              Store 402 401
-             403:      6(int) Load 8(invocation)
-             404:    376(ptr) AccessChain 34(data) 47 68
-             405: 24(i16vec4) Load 404
-             406:375(i16vec2) VectorShuffle 405 405 0 1
-             407:375(i16vec2) GroupNonUniformQuadSwap 43 406 38
-             408:    376(ptr) AccessChain 34(data) 403 68
-             409: 24(i16vec4) Load 408
-             410: 24(i16vec4) VectorShuffle 409 407 4 5 2 3
-                              Store 408 410
+             354: 22(i16vec4) GroupNonUniformQuadSwap 43 353 38
+             355:    300(ptr) AccessChain 34(data) 351 59
+                              Store 355 354
+             356:      6(int) Load 8(invocation)
+             357:    293(ptr) AccessChain 34(data) 37 59 38
+             358: 21(int16_t) Load 357
+             359: 21(int16_t) GroupNonUniformQuadSwap 43 358 42
+             360:    293(ptr) AccessChain 34(data) 356 59 38
+                              Store 360 359
+             361:      6(int) Load 8(invocation)
+             362:    300(ptr) AccessChain 34(data) 47 59
+             363: 22(i16vec4) Load 362
+             364:299(i16vec2) VectorShuffle 363 363 0 1
+             365:299(i16vec2) GroupNonUniformQuadSwap 43 364 42
+             366:    293(ptr) AccessChain 34(data) 361 59 38
+             367: 21(int16_t) CompositeExtract 365 0
+                              Store 366 367
+             368:    293(ptr) AccessChain 34(data) 361 59 42
+             369: 21(int16_t) CompositeExtract 365 1
+                              Store 368 369
+             370:      6(int) Load 8(invocation)
+             371:    300(ptr) AccessChain 34(data) 59 59
+             372: 22(i16vec4) Load 371
+             373:310(i16vec3) VectorShuffle 372 372 0 1 2
+             374:310(i16vec3) GroupNonUniformQuadSwap 43 373 42
+             375:    293(ptr) AccessChain 34(data) 370 59 38
+             376: 21(int16_t) CompositeExtract 374 0
+                              Store 375 376
+             377:    293(ptr) AccessChain 34(data) 370 59 42
+             378: 21(int16_t) CompositeExtract 374 1
+                              Store 377 378
+             379:    293(ptr) AccessChain 34(data) 370 59 69
+             380: 21(int16_t) CompositeExtract 374 2
+                              Store 379 380
+             381:      6(int) Load 8(invocation)
+             382:    300(ptr) AccessChain 34(data) 73 59
+             383: 22(i16vec4) Load 382
+             384: 22(i16vec4) GroupNonUniformQuadSwap 43 383 42
+             385:    300(ptr) AccessChain 34(data) 381 59
+                              Store 385 384
+             386:      6(int) Load 8(invocation)
+             387:    293(ptr) AccessChain 34(data) 37 59 38
+             388: 21(int16_t) Load 387
+             389: 21(int16_t) GroupNonUniformQuadSwap 43 388 69
+             390:    293(ptr) AccessChain 34(data) 386 59 38
+                              Store 390 389
+             391:      6(int) Load 8(invocation)
+             392:    300(ptr) AccessChain 34(data) 47 59
+             393: 22(i16vec4) Load 392
+             394:299(i16vec2) VectorShuffle 393 393 0 1
+             395:299(i16vec2) GroupNonUniformQuadSwap 43 394 69
+             396:    293(ptr) AccessChain 34(data) 391 59 38
+             397: 21(int16_t) CompositeExtract 395 0
+                              Store 396 397
+             398:    293(ptr) AccessChain 34(data) 391 59 42
+             399: 21(int16_t) CompositeExtract 395 1
+                              Store 398 399
+             400:      6(int) Load 8(invocation)
+             401:    300(ptr) AccessChain 34(data) 59 59
+             402: 22(i16vec4) Load 401
+             403:310(i16vec3) VectorShuffle 402 402 0 1 2
+             404:310(i16vec3) GroupNonUniformQuadSwap 43 403 69
+             405:    293(ptr) AccessChain 34(data) 400 59 38
+             406: 21(int16_t) CompositeExtract 404 0
+                              Store 405 406
+             407:    293(ptr) AccessChain 34(data) 400 59 42
+             408: 21(int16_t) CompositeExtract 404 1
+                              Store 407 408
+             409:    293(ptr) AccessChain 34(data) 400 59 69
+             410: 21(int16_t) CompositeExtract 404 2
+                              Store 409 410
              411:      6(int) Load 8(invocation)
-             412:    376(ptr) AccessChain 34(data) 58 68
-             413: 24(i16vec4) Load 412
-             414:385(i16vec3) VectorShuffle 413 413 0 1 2
-             415:385(i16vec3) GroupNonUniformQuadSwap 43 414 38
-             416:    376(ptr) AccessChain 34(data) 411 68
-             417: 24(i16vec4) Load 416
-             418: 24(i16vec4) VectorShuffle 417 415 4 5 6 3
-                              Store 416 418
-             419:      6(int) Load 8(invocation)
-             420:    376(ptr) AccessChain 34(data) 68 68
-             421: 24(i16vec4) Load 420
-             422: 24(i16vec4) GroupNonUniformQuadSwap 43 421 38
-             423:    376(ptr) AccessChain 34(data) 419 68
-                              Store 423 422
-             424:      6(int) Load 8(invocation)
-             425:    369(ptr) AccessChain 34(data) 37 68 38
-             426: 23(int16_t) Load 425
-             427: 23(int16_t) GroupNonUniformQuadSwap 43 426 42
-             428:    369(ptr) AccessChain 34(data) 424 68 38
-                              Store 428 427
-             429:      6(int) Load 8(invocation)
-             430:    376(ptr) AccessChain 34(data) 47 68
-             431: 24(i16vec4) Load 430
-             432:375(i16vec2) VectorShuffle 431 431 0 1
-             433:375(i16vec2) GroupNonUniformQuadSwap 43 432 42
-             434:    376(ptr) AccessChain 34(data) 429 68
-             435: 24(i16vec4) Load 434
-             436: 24(i16vec4) VectorShuffle 435 433 4 5 2 3
-                              Store 434 436
-             437:      6(int) Load 8(invocation)
-             438:    376(ptr) AccessChain 34(data) 58 68
-             439: 24(i16vec4) Load 438
-             440:385(i16vec3) VectorShuffle 439 439 0 1 2
-             441:385(i16vec3) GroupNonUniformQuadSwap 43 440 42
-             442:    376(ptr) AccessChain 34(data) 437 68
-             443: 24(i16vec4) Load 442
-             444: 24(i16vec4) VectorShuffle 443 441 4 5 6 3
-                              Store 442 444
+             412:    300(ptr) AccessChain 34(data) 73 59
+             413: 22(i16vec4) Load 412
+             414: 22(i16vec4) GroupNonUniformQuadSwap 43 413 69
+             415:    300(ptr) AccessChain 34(data) 411 59
+                              Store 415 414
+             416:      6(int) Load 8(invocation)
+             418:    417(ptr) AccessChain 34(data) 37 73 38
+             419: 23(int16_t) Load 418
+             420: 23(int16_t) GroupNonUniformQuadBroadcast 43 419 42
+             421:    417(ptr) AccessChain 34(data) 416 73 38
+                              Store 421 420
+             422:      6(int) Load 8(invocation)
+             425:    424(ptr) AccessChain 34(data) 47 73
+             426: 24(i16vec4) Load 425
+             427:423(i16vec2) VectorShuffle 426 426 0 1
+             428:423(i16vec2) GroupNonUniformQuadBroadcast 43 427 42
+             429:    417(ptr) AccessChain 34(data) 422 73 38
+             430: 23(int16_t) CompositeExtract 428 0
+                              Store 429 430
+             431:    417(ptr) AccessChain 34(data) 422 73 42
+             432: 23(int16_t) CompositeExtract 428 1
+                              Store 431 432
+             433:      6(int) Load 8(invocation)
+             435:    424(ptr) AccessChain 34(data) 59 73
+             436: 24(i16vec4) Load 435
+             437:434(i16vec3) VectorShuffle 436 436 0 1 2
+             438:434(i16vec3) GroupNonUniformQuadBroadcast 43 437 42
+             439:    417(ptr) AccessChain 34(data) 433 73 38
+             440: 23(int16_t) CompositeExtract 438 0
+                              Store 439 440
+             441:    417(ptr) AccessChain 34(data) 433 73 42
+             442: 23(int16_t) CompositeExtract 438 1
+                              Store 441 442
+             443:    417(ptr) AccessChain 34(data) 433 73 69
+             444: 23(int16_t) CompositeExtract 438 2
+                              Store 443 444
              445:      6(int) Load 8(invocation)
-             446:    376(ptr) AccessChain 34(data) 68 68
+             446:    424(ptr) AccessChain 34(data) 73 73
              447: 24(i16vec4) Load 446
-             448: 24(i16vec4) GroupNonUniformQuadSwap 43 447 42
-             449:    376(ptr) AccessChain 34(data) 445 68
+             448: 24(i16vec4) GroupNonUniformQuadBroadcast 43 447 42
+             449:    424(ptr) AccessChain 34(data) 445 73
                               Store 449 448
              450:      6(int) Load 8(invocation)
-             451:    369(ptr) AccessChain 34(data) 37 68 38
+             451:    417(ptr) AccessChain 34(data) 37 73 38
              452: 23(int16_t) Load 451
-             453: 23(int16_t) GroupNonUniformQuadSwap 43 452 128
-             454:    369(ptr) AccessChain 34(data) 450 68 38
+             453: 23(int16_t) GroupNonUniformQuadSwap 43 452 38
+             454:    417(ptr) AccessChain 34(data) 450 73 38
                               Store 454 453
              455:      6(int) Load 8(invocation)
-             456:    376(ptr) AccessChain 34(data) 47 68
+             456:    424(ptr) AccessChain 34(data) 47 73
              457: 24(i16vec4) Load 456
-             458:375(i16vec2) VectorShuffle 457 457 0 1
-             459:375(i16vec2) GroupNonUniformQuadSwap 43 458 128
-             460:    376(ptr) AccessChain 34(data) 455 68
-             461: 24(i16vec4) Load 460
-             462: 24(i16vec4) VectorShuffle 461 459 4 5 2 3
-                              Store 460 462
-             463:      6(int) Load 8(invocation)
-             464:    376(ptr) AccessChain 34(data) 58 68
-             465: 24(i16vec4) Load 464
-             466:385(i16vec3) VectorShuffle 465 465 0 1 2
-             467:385(i16vec3) GroupNonUniformQuadSwap 43 466 128
-             468:    376(ptr) AccessChain 34(data) 463 68
-             469: 24(i16vec4) Load 468
-             470: 24(i16vec4) VectorShuffle 469 467 4 5 6 3
-                              Store 468 470
-             471:      6(int) Load 8(invocation)
-             472:    376(ptr) AccessChain 34(data) 68 68
-             473: 24(i16vec4) Load 472
-             474: 24(i16vec4) GroupNonUniformQuadSwap 43 473 128
-             475:    376(ptr) AccessChain 34(data) 471 68
-                              Store 475 474
-             476:      6(int) Load 8(invocation)
-             479:    478(ptr) AccessChain 34(data) 37 477 38
-             480: 25(int64_t) Load 479
-             481: 25(int64_t) GroupNonUniformQuadBroadcast 43 480 42
-             482:    478(ptr) AccessChain 34(data) 476 477 38
-                              Store 482 481
-             483:      6(int) Load 8(invocation)
-             486:    485(ptr) AccessChain 34(data) 47 477
-             487: 26(i64vec4) Load 486
-             488:484(i64vec2) VectorShuffle 487 487 0 1
-             489:484(i64vec2) GroupNonUniformQuadBroadcast 43 488 42
-             490:    485(ptr) AccessChain 34(data) 483 477
-             491: 26(i64vec4) Load 490
-             492: 26(i64vec4) VectorShuffle 491 489 4 5 2 3
-                              Store 490 492
-             493:      6(int) Load 8(invocation)
-             495:    485(ptr) AccessChain 34(data) 58 477
-             496: 26(i64vec4) Load 495
-             497:494(i64vec3) VectorShuffle 496 496 0 1 2
-             498:494(i64vec3) GroupNonUniformQuadBroadcast 43 497 42
-             499:    485(ptr) AccessChain 34(data) 493 477
-             500: 26(i64vec4) Load 499
-             501: 26(i64vec4) VectorShuffle 500 498 4 5 6 3
-                              Store 499 501
-             502:      6(int) Load 8(invocation)
-             503:    485(ptr) AccessChain 34(data) 68 477
-             504: 26(i64vec4) Load 503
-             505: 26(i64vec4) GroupNonUniformQuadBroadcast 43 504 42
-             506:    485(ptr) AccessChain 34(data) 502 477
-                              Store 506 505
-             507:      6(int) Load 8(invocation)
-             508:    478(ptr) AccessChain 34(data) 37 477 38
-             509: 25(int64_t) Load 508
-             510: 25(int64_t) GroupNonUniformQuadSwap 43 509 38
-             511:    478(ptr) AccessChain 34(data) 507 477 38
-                              Store 511 510
-             512:      6(int) Load 8(invocation)
-             513:    485(ptr) AccessChain 34(data) 47 477
-             514: 26(i64vec4) Load 513
-             515:484(i64vec2) VectorShuffle 514 514 0 1
-             516:484(i64vec2) GroupNonUniformQuadSwap 43 515 38
-             517:    485(ptr) AccessChain 34(data) 512 477
-             518: 26(i64vec4) Load 517
-             519: 26(i64vec4) VectorShuffle 518 516 4 5 2 3
-                              Store 517 519
-             520:      6(int) Load 8(invocation)
-             521:    485(ptr) AccessChain 34(data) 58 477
-             522: 26(i64vec4) Load 521
-             523:494(i64vec3) VectorShuffle 522 522 0 1 2
-             524:494(i64vec3) GroupNonUniformQuadSwap 43 523 38
-             525:    485(ptr) AccessChain 34(data) 520 477
-             526: 26(i64vec4) Load 525
-             527: 26(i64vec4) VectorShuffle 526 524 4 5 6 3
-                              Store 525 527
-             528:      6(int) Load 8(invocation)
-             529:    485(ptr) AccessChain 34(data) 68 477
-             530: 26(i64vec4) Load 529
-             531: 26(i64vec4) GroupNonUniformQuadSwap 43 530 38
-             532:    485(ptr) AccessChain 34(data) 528 477
-                              Store 532 531
-             533:      6(int) Load 8(invocation)
-             534:    478(ptr) AccessChain 34(data) 37 477 38
-             535: 25(int64_t) Load 534
-             536: 25(int64_t) GroupNonUniformQuadSwap 43 535 42
-             537:    478(ptr) AccessChain 34(data) 533 477 38
-                              Store 537 536
-             538:      6(int) Load 8(invocation)
-             539:    485(ptr) AccessChain 34(data) 47 477
-             540: 26(i64vec4) Load 539
-             541:484(i64vec2) VectorShuffle 540 540 0 1
-             542:484(i64vec2) GroupNonUniformQuadSwap 43 541 42
-             543:    485(ptr) AccessChain 34(data) 538 477
-             544: 26(i64vec4) Load 543
-             545: 26(i64vec4) VectorShuffle 544 542 4 5 2 3
-                              Store 543 545
-             546:      6(int) Load 8(invocation)
-             547:    485(ptr) AccessChain 34(data) 58 477
-             548: 26(i64vec4) Load 547
-             549:494(i64vec3) VectorShuffle 548 548 0 1 2
-             550:494(i64vec3) GroupNonUniformQuadSwap 43 549 42
-             551:    485(ptr) AccessChain 34(data) 546 477
-             552: 26(i64vec4) Load 551
-             553: 26(i64vec4) VectorShuffle 552 550 4 5 6 3
-                              Store 551 553
-             554:      6(int) Load 8(invocation)
-             555:    485(ptr) AccessChain 34(data) 68 477
-             556: 26(i64vec4) Load 555
-             557: 26(i64vec4) GroupNonUniformQuadSwap 43 556 42
-             558:    485(ptr) AccessChain 34(data) 554 477
-                              Store 558 557
-             559:      6(int) Load 8(invocation)
-             560:    478(ptr) AccessChain 34(data) 37 477 38
-             561: 25(int64_t) Load 560
-             562: 25(int64_t) GroupNonUniformQuadSwap 43 561 128
-             563:    478(ptr) AccessChain 34(data) 559 477 38
-                              Store 563 562
-             564:      6(int) Load 8(invocation)
-             565:    485(ptr) AccessChain 34(data) 47 477
-             566: 26(i64vec4) Load 565
-             567:484(i64vec2) VectorShuffle 566 566 0 1
-             568:484(i64vec2) GroupNonUniformQuadSwap 43 567 128
-             569:    485(ptr) AccessChain 34(data) 564 477
-             570: 26(i64vec4) Load 569
-             571: 26(i64vec4) VectorShuffle 570 568 4 5 2 3
-                              Store 569 571
-             572:      6(int) Load 8(invocation)
-             573:    485(ptr) AccessChain 34(data) 58 477
-             574: 26(i64vec4) Load 573
-             575:494(i64vec3) VectorShuffle 574 574 0 1 2
-             576:494(i64vec3) GroupNonUniformQuadSwap 43 575 128
-             577:    485(ptr) AccessChain 34(data) 572 477
-             578: 26(i64vec4) Load 577
-             579: 26(i64vec4) VectorShuffle 578 576 4 5 6 3
-                              Store 577 579
+             458:423(i16vec2) VectorShuffle 457 457 0 1
+             459:423(i16vec2) GroupNonUniformQuadSwap 43 458 38
+             460:    417(ptr) AccessChain 34(data) 455 73 38
+             461: 23(int16_t) CompositeExtract 459 0
+                              Store 460 461
+             462:    417(ptr) AccessChain 34(data) 455 73 42
+             463: 23(int16_t) CompositeExtract 459 1
+                              Store 462 463
+             464:      6(int) Load 8(invocation)
+             465:    424(ptr) AccessChain 34(data) 59 73
+             466: 24(i16vec4) Load 465
+             467:434(i16vec3) VectorShuffle 466 466 0 1 2
+             468:434(i16vec3) GroupNonUniformQuadSwap 43 467 38
+             469:    417(ptr) AccessChain 34(data) 464 73 38
+             470: 23(int16_t) CompositeExtract 468 0
+                              Store 469 470
+             471:    417(ptr) AccessChain 34(data) 464 73 42
+             472: 23(int16_t) CompositeExtract 468 1
+                              Store 471 472
+             473:    417(ptr) AccessChain 34(data) 464 73 69
+             474: 23(int16_t) CompositeExtract 468 2
+                              Store 473 474
+             475:      6(int) Load 8(invocation)
+             476:    424(ptr) AccessChain 34(data) 73 73
+             477: 24(i16vec4) Load 476
+             478: 24(i16vec4) GroupNonUniformQuadSwap 43 477 38
+             479:    424(ptr) AccessChain 34(data) 475 73
+                              Store 479 478
+             480:      6(int) Load 8(invocation)
+             481:    417(ptr) AccessChain 34(data) 37 73 38
+             482: 23(int16_t) Load 481
+             483: 23(int16_t) GroupNonUniformQuadSwap 43 482 42
+             484:    417(ptr) AccessChain 34(data) 480 73 38
+                              Store 484 483
+             485:      6(int) Load 8(invocation)
+             486:    424(ptr) AccessChain 34(data) 47 73
+             487: 24(i16vec4) Load 486
+             488:423(i16vec2) VectorShuffle 487 487 0 1
+             489:423(i16vec2) GroupNonUniformQuadSwap 43 488 42
+             490:    417(ptr) AccessChain 34(data) 485 73 38
+             491: 23(int16_t) CompositeExtract 489 0
+                              Store 490 491
+             492:    417(ptr) AccessChain 34(data) 485 73 42
+             493: 23(int16_t) CompositeExtract 489 1
+                              Store 492 493
+             494:      6(int) Load 8(invocation)
+             495:    424(ptr) AccessChain 34(data) 59 73
+             496: 24(i16vec4) Load 495
+             497:434(i16vec3) VectorShuffle 496 496 0 1 2
+             498:434(i16vec3) GroupNonUniformQuadSwap 43 497 42
+             499:    417(ptr) AccessChain 34(data) 494 73 38
+             500: 23(int16_t) CompositeExtract 498 0
+                              Store 499 500
+             501:    417(ptr) AccessChain 34(data) 494 73 42
+             502: 23(int16_t) CompositeExtract 498 1
+                              Store 501 502
+             503:    417(ptr) AccessChain 34(data) 494 73 69
+             504: 23(int16_t) CompositeExtract 498 2
+                              Store 503 504
+             505:      6(int) Load 8(invocation)
+             506:    424(ptr) AccessChain 34(data) 73 73
+             507: 24(i16vec4) Load 506
+             508: 24(i16vec4) GroupNonUniformQuadSwap 43 507 42
+             509:    424(ptr) AccessChain 34(data) 505 73
+                              Store 509 508
+             510:      6(int) Load 8(invocation)
+             511:    417(ptr) AccessChain 34(data) 37 73 38
+             512: 23(int16_t) Load 511
+             513: 23(int16_t) GroupNonUniformQuadSwap 43 512 69
+             514:    417(ptr) AccessChain 34(data) 510 73 38
+                              Store 514 513
+             515:      6(int) Load 8(invocation)
+             516:    424(ptr) AccessChain 34(data) 47 73
+             517: 24(i16vec4) Load 516
+             518:423(i16vec2) VectorShuffle 517 517 0 1
+             519:423(i16vec2) GroupNonUniformQuadSwap 43 518 69
+             520:    417(ptr) AccessChain 34(data) 515 73 38
+             521: 23(int16_t) CompositeExtract 519 0
+                              Store 520 521
+             522:    417(ptr) AccessChain 34(data) 515 73 42
+             523: 23(int16_t) CompositeExtract 519 1
+                              Store 522 523
+             524:      6(int) Load 8(invocation)
+             525:    424(ptr) AccessChain 34(data) 59 73
+             526: 24(i16vec4) Load 525
+             527:434(i16vec3) VectorShuffle 526 526 0 1 2
+             528:434(i16vec3) GroupNonUniformQuadSwap 43 527 69
+             529:    417(ptr) AccessChain 34(data) 524 73 38
+             530: 23(int16_t) CompositeExtract 528 0
+                              Store 529 530
+             531:    417(ptr) AccessChain 34(data) 524 73 42
+             532: 23(int16_t) CompositeExtract 528 1
+                              Store 531 532
+             533:    417(ptr) AccessChain 34(data) 524 73 69
+             534: 23(int16_t) CompositeExtract 528 2
+                              Store 533 534
+             535:      6(int) Load 8(invocation)
+             536:    424(ptr) AccessChain 34(data) 73 73
+             537: 24(i16vec4) Load 536
+             538: 24(i16vec4) GroupNonUniformQuadSwap 43 537 69
+             539:    424(ptr) AccessChain 34(data) 535 73
+                              Store 539 538
+             540:      6(int) Load 8(invocation)
+             543:    542(ptr) AccessChain 34(data) 37 541 38
+             544: 25(int64_t) Load 543
+             545: 25(int64_t) GroupNonUniformQuadBroadcast 43 544 42
+             546:    542(ptr) AccessChain 34(data) 540 541 38
+                              Store 546 545
+             547:      6(int) Load 8(invocation)
+             550:    549(ptr) AccessChain 34(data) 47 541
+             551: 26(i64vec4) Load 550
+             552:548(i64vec2) VectorShuffle 551 551 0 1
+             553:548(i64vec2) GroupNonUniformQuadBroadcast 43 552 42
+             554:    542(ptr) AccessChain 34(data) 547 541 38
+             555: 25(int64_t) CompositeExtract 553 0
+                              Store 554 555
+             556:    542(ptr) AccessChain 34(data) 547 541 42
+             557: 25(int64_t) CompositeExtract 553 1
+                              Store 556 557
+             558:      6(int) Load 8(invocation)
+             560:    549(ptr) AccessChain 34(data) 59 541
+             561: 26(i64vec4) Load 560
+             562:559(i64vec3) VectorShuffle 561 561 0 1 2
+             563:559(i64vec3) GroupNonUniformQuadBroadcast 43 562 42
+             564:    542(ptr) AccessChain 34(data) 558 541 38
+             565: 25(int64_t) CompositeExtract 563 0
+                              Store 564 565
+             566:    542(ptr) AccessChain 34(data) 558 541 42
+             567: 25(int64_t) CompositeExtract 563 1
+                              Store 566 567
+             568:    542(ptr) AccessChain 34(data) 558 541 69
+             569: 25(int64_t) CompositeExtract 563 2
+                              Store 568 569
+             570:      6(int) Load 8(invocation)
+             571:    549(ptr) AccessChain 34(data) 73 541
+             572: 26(i64vec4) Load 571
+             573: 26(i64vec4) GroupNonUniformQuadBroadcast 43 572 42
+             574:    549(ptr) AccessChain 34(data) 570 541
+                              Store 574 573
+             575:      6(int) Load 8(invocation)
+             576:    542(ptr) AccessChain 34(data) 37 541 38
+             577: 25(int64_t) Load 576
+             578: 25(int64_t) GroupNonUniformQuadSwap 43 577 38
+             579:    542(ptr) AccessChain 34(data) 575 541 38
+                              Store 579 578
              580:      6(int) Load 8(invocation)
-             581:    485(ptr) AccessChain 34(data) 68 477
+             581:    549(ptr) AccessChain 34(data) 47 541
              582: 26(i64vec4) Load 581
-             583: 26(i64vec4) GroupNonUniformQuadSwap 43 582 128
-             584:    485(ptr) AccessChain 34(data) 580 477
-                              Store 584 583
-             585:      6(int) Load 8(invocation)
-             588:    587(ptr) AccessChain 34(data) 37 586 38
-             589: 27(int64_t) Load 588
-             590: 27(int64_t) GroupNonUniformQuadBroadcast 43 589 42
-             591:    587(ptr) AccessChain 34(data) 585 586 38
-                              Store 591 590
-             592:      6(int) Load 8(invocation)
-             595:    594(ptr) AccessChain 34(data) 47 586
-             596: 28(i64vec4) Load 595
-             597:593(i64vec2) VectorShuffle 596 596 0 1
-             598:593(i64vec2) GroupNonUniformQuadBroadcast 43 597 42
-             599:    594(ptr) AccessChain 34(data) 592 586
-             600: 28(i64vec4) Load 599
-             601: 28(i64vec4) VectorShuffle 600 598 4 5 2 3
-                              Store 599 601
-             602:      6(int) Load 8(invocation)
-             604:    594(ptr) AccessChain 34(data) 58 586
-             605: 28(i64vec4) Load 604
-             606:603(i64vec3) VectorShuffle 605 605 0 1 2
-             607:603(i64vec3) GroupNonUniformQuadBroadcast 43 606 42
-             608:    594(ptr) AccessChain 34(data) 602 586
-             609: 28(i64vec4) Load 608
-             610: 28(i64vec4) VectorShuffle 609 607 4 5 6 3
-                              Store 608 610
-             611:      6(int) Load 8(invocation)
-             612:    594(ptr) AccessChain 34(data) 68 586
-             613: 28(i64vec4) Load 612
-             614: 28(i64vec4) GroupNonUniformQuadBroadcast 43 613 42
-             615:    594(ptr) AccessChain 34(data) 611 586
-                              Store 615 614
-             616:      6(int) Load 8(invocation)
-             617:    587(ptr) AccessChain 34(data) 37 586 38
-             618: 27(int64_t) Load 617
-             619: 27(int64_t) GroupNonUniformQuadSwap 43 618 38
-             620:    587(ptr) AccessChain 34(data) 616 586 38
-                              Store 620 619
-             621:      6(int) Load 8(invocation)
-             622:    594(ptr) AccessChain 34(data) 47 586
-             623: 28(i64vec4) Load 622
-             624:593(i64vec2) VectorShuffle 623 623 0 1
-             625:593(i64vec2) GroupNonUniformQuadSwap 43 624 38
-             626:    594(ptr) AccessChain 34(data) 621 586
-             627: 28(i64vec4) Load 626
-             628: 28(i64vec4) VectorShuffle 627 625 4 5 2 3
-                              Store 626 628
-             629:      6(int) Load 8(invocation)
-             630:    594(ptr) AccessChain 34(data) 58 586
-             631: 28(i64vec4) Load 630
-             632:603(i64vec3) VectorShuffle 631 631 0 1 2
-             633:603(i64vec3) GroupNonUniformQuadSwap 43 632 38
-             634:    594(ptr) AccessChain 34(data) 629 586
-             635: 28(i64vec4) Load 634
-             636: 28(i64vec4) VectorShuffle 635 633 4 5 6 3
-                              Store 634 636
-             637:      6(int) Load 8(invocation)
-             638:    594(ptr) AccessChain 34(data) 68 586
-             639: 28(i64vec4) Load 638
-             640: 28(i64vec4) GroupNonUniformQuadSwap 43 639 38
-             641:    594(ptr) AccessChain 34(data) 637 586
-                              Store 641 640
-             642:      6(int) Load 8(invocation)
-             643:    587(ptr) AccessChain 34(data) 37 586 38
-             644: 27(int64_t) Load 643
-             645: 27(int64_t) GroupNonUniformQuadSwap 43 644 42
-             646:    587(ptr) AccessChain 34(data) 642 586 38
-                              Store 646 645
-             647:      6(int) Load 8(invocation)
-             648:    594(ptr) AccessChain 34(data) 47 586
-             649: 28(i64vec4) Load 648
-             650:593(i64vec2) VectorShuffle 649 649 0 1
-             651:593(i64vec2) GroupNonUniformQuadSwap 43 650 42
-             652:    594(ptr) AccessChain 34(data) 647 586
-             653: 28(i64vec4) Load 652
-             654: 28(i64vec4) VectorShuffle 653 651 4 5 2 3
-                              Store 652 654
-             655:      6(int) Load 8(invocation)
-             656:    594(ptr) AccessChain 34(data) 58 586
-             657: 28(i64vec4) Load 656
-             658:603(i64vec3) VectorShuffle 657 657 0 1 2
-             659:603(i64vec3) GroupNonUniformQuadSwap 43 658 42
-             660:    594(ptr) AccessChain 34(data) 655 586
-             661: 28(i64vec4) Load 660
-             662: 28(i64vec4) VectorShuffle 661 659 4 5 6 3
-                              Store 660 662
-             663:      6(int) Load 8(invocation)
-             664:    594(ptr) AccessChain 34(data) 68 586
-             665: 28(i64vec4) Load 664
-             666: 28(i64vec4) GroupNonUniformQuadSwap 43 665 42
-             667:    594(ptr) AccessChain 34(data) 663 586
-                              Store 667 666
-             668:      6(int) Load 8(invocation)
-             669:    587(ptr) AccessChain 34(data) 37 586 38
-             670: 27(int64_t) Load 669
-             671: 27(int64_t) GroupNonUniformQuadSwap 43 670 128
-             672:    587(ptr) AccessChain 34(data) 668 586 38
-                              Store 672 671
-             673:      6(int) Load 8(invocation)
-             674:    594(ptr) AccessChain 34(data) 47 586
-             675: 28(i64vec4) Load 674
-             676:593(i64vec2) VectorShuffle 675 675 0 1
-             677:593(i64vec2) GroupNonUniformQuadSwap 43 676 128
-             678:    594(ptr) AccessChain 34(data) 673 586
-             679: 28(i64vec4) Load 678
-             680: 28(i64vec4) VectorShuffle 679 677 4 5 2 3
-                              Store 678 680
-             681:      6(int) Load 8(invocation)
-             682:    594(ptr) AccessChain 34(data) 58 586
-             683: 28(i64vec4) Load 682
-             684:603(i64vec3) VectorShuffle 683 683 0 1 2
-             685:603(i64vec3) GroupNonUniformQuadSwap 43 684 128
-             686:    594(ptr) AccessChain 34(data) 681 586
-             687: 28(i64vec4) Load 686
-             688: 28(i64vec4) VectorShuffle 687 685 4 5 6 3
-                              Store 686 688
-             689:      6(int) Load 8(invocation)
-             690:    594(ptr) AccessChain 34(data) 68 586
-             691: 28(i64vec4) Load 690
-             692: 28(i64vec4) GroupNonUniformQuadSwap 43 691 128
-             693:    594(ptr) AccessChain 34(data) 689 586
-                              Store 693 692
-             694:      6(int) Load 8(invocation)
-             697:    696(ptr) AccessChain 34(data) 37 695 38
-             698:29(float16_t) Load 697
-             699:29(float16_t) GroupNonUniformQuadBroadcast 43 698 42
-             700:    696(ptr) AccessChain 34(data) 694 695 38
-                              Store 700 699
-             701:      6(int) Load 8(invocation)
-             704:    703(ptr) AccessChain 34(data) 47 695
-             705: 30(f16vec4) Load 704
-             706:702(f16vec2) VectorShuffle 705 705 0 1
-             707:702(f16vec2) GroupNonUniformQuadBroadcast 43 706 42
-             708:    703(ptr) AccessChain 34(data) 701 695
-             709: 30(f16vec4) Load 708
-             710: 30(f16vec4) VectorShuffle 709 707 4 5 2 3
-                              Store 708 710
-             711:      6(int) Load 8(invocation)
-             713:    703(ptr) AccessChain 34(data) 58 695
-             714: 30(f16vec4) Load 713
-             715:712(f16vec3) VectorShuffle 714 714 0 1 2
-             716:712(f16vec3) GroupNonUniformQuadBroadcast 43 715 42
-             717:    703(ptr) AccessChain 34(data) 711 695
-             718: 30(f16vec4) Load 717
-             719: 30(f16vec4) VectorShuffle 718 716 4 5 6 3
-                              Store 717 719
-             720:      6(int) Load 8(invocation)
-             721:    703(ptr) AccessChain 34(data) 68 695
-             722: 30(f16vec4) Load 721
-             723: 30(f16vec4) GroupNonUniformQuadBroadcast 43 722 42
-             724:    703(ptr) AccessChain 34(data) 720 695
-                              Store 724 723
+             583:548(i64vec2) VectorShuffle 582 582 0 1
+             584:548(i64vec2) GroupNonUniformQuadSwap 43 583 38
+             585:    542(ptr) AccessChain 34(data) 580 541 38
+             586: 25(int64_t) CompositeExtract 584 0
+                              Store 585 586
+             587:    542(ptr) AccessChain 34(data) 580 541 42
+             588: 25(int64_t) CompositeExtract 584 1
+                              Store 587 588
+             589:      6(int) Load 8(invocation)
+             590:    549(ptr) AccessChain 34(data) 59 541
+             591: 26(i64vec4) Load 590
+             592:559(i64vec3) VectorShuffle 591 591 0 1 2
+             593:559(i64vec3) GroupNonUniformQuadSwap 43 592 38
+             594:    542(ptr) AccessChain 34(data) 589 541 38
+             595: 25(int64_t) CompositeExtract 593 0
+                              Store 594 595
+             596:    542(ptr) AccessChain 34(data) 589 541 42
+             597: 25(int64_t) CompositeExtract 593 1
+                              Store 596 597
+             598:    542(ptr) AccessChain 34(data) 589 541 69
+             599: 25(int64_t) CompositeExtract 593 2
+                              Store 598 599
+             600:      6(int) Load 8(invocation)
+             601:    549(ptr) AccessChain 34(data) 73 541
+             602: 26(i64vec4) Load 601
+             603: 26(i64vec4) GroupNonUniformQuadSwap 43 602 38
+             604:    549(ptr) AccessChain 34(data) 600 541
+                              Store 604 603
+             605:      6(int) Load 8(invocation)
+             606:    542(ptr) AccessChain 34(data) 37 541 38
+             607: 25(int64_t) Load 606
+             608: 25(int64_t) GroupNonUniformQuadSwap 43 607 42
+             609:    542(ptr) AccessChain 34(data) 605 541 38
+                              Store 609 608
+             610:      6(int) Load 8(invocation)
+             611:    549(ptr) AccessChain 34(data) 47 541
+             612: 26(i64vec4) Load 611
+             613:548(i64vec2) VectorShuffle 612 612 0 1
+             614:548(i64vec2) GroupNonUniformQuadSwap 43 613 42
+             615:    542(ptr) AccessChain 34(data) 610 541 38
+             616: 25(int64_t) CompositeExtract 614 0
+                              Store 615 616
+             617:    542(ptr) AccessChain 34(data) 610 541 42
+             618: 25(int64_t) CompositeExtract 614 1
+                              Store 617 618
+             619:      6(int) Load 8(invocation)
+             620:    549(ptr) AccessChain 34(data) 59 541
+             621: 26(i64vec4) Load 620
+             622:559(i64vec3) VectorShuffle 621 621 0 1 2
+             623:559(i64vec3) GroupNonUniformQuadSwap 43 622 42
+             624:    542(ptr) AccessChain 34(data) 619 541 38
+             625: 25(int64_t) CompositeExtract 623 0
+                              Store 624 625
+             626:    542(ptr) AccessChain 34(data) 619 541 42
+             627: 25(int64_t) CompositeExtract 623 1
+                              Store 626 627
+             628:    542(ptr) AccessChain 34(data) 619 541 69
+             629: 25(int64_t) CompositeExtract 623 2
+                              Store 628 629
+             630:      6(int) Load 8(invocation)
+             631:    549(ptr) AccessChain 34(data) 73 541
+             632: 26(i64vec4) Load 631
+             633: 26(i64vec4) GroupNonUniformQuadSwap 43 632 42
+             634:    549(ptr) AccessChain 34(data) 630 541
+                              Store 634 633
+             635:      6(int) Load 8(invocation)
+             636:    542(ptr) AccessChain 34(data) 37 541 38
+             637: 25(int64_t) Load 636
+             638: 25(int64_t) GroupNonUniformQuadSwap 43 637 69
+             639:    542(ptr) AccessChain 34(data) 635 541 38
+                              Store 639 638
+             640:      6(int) Load 8(invocation)
+             641:    549(ptr) AccessChain 34(data) 47 541
+             642: 26(i64vec4) Load 641
+             643:548(i64vec2) VectorShuffle 642 642 0 1
+             644:548(i64vec2) GroupNonUniformQuadSwap 43 643 69
+             645:    542(ptr) AccessChain 34(data) 640 541 38
+             646: 25(int64_t) CompositeExtract 644 0
+                              Store 645 646
+             647:    542(ptr) AccessChain 34(data) 640 541 42
+             648: 25(int64_t) CompositeExtract 644 1
+                              Store 647 648
+             649:      6(int) Load 8(invocation)
+             650:    549(ptr) AccessChain 34(data) 59 541
+             651: 26(i64vec4) Load 650
+             652:559(i64vec3) VectorShuffle 651 651 0 1 2
+             653:559(i64vec3) GroupNonUniformQuadSwap 43 652 69
+             654:    542(ptr) AccessChain 34(data) 649 541 38
+             655: 25(int64_t) CompositeExtract 653 0
+                              Store 654 655
+             656:    542(ptr) AccessChain 34(data) 649 541 42
+             657: 25(int64_t) CompositeExtract 653 1
+                              Store 656 657
+             658:    542(ptr) AccessChain 34(data) 649 541 69
+             659: 25(int64_t) CompositeExtract 653 2
+                              Store 658 659
+             660:      6(int) Load 8(invocation)
+             661:    549(ptr) AccessChain 34(data) 73 541
+             662: 26(i64vec4) Load 661
+             663: 26(i64vec4) GroupNonUniformQuadSwap 43 662 69
+             664:    549(ptr) AccessChain 34(data) 660 541
+                              Store 664 663
+             665:      6(int) Load 8(invocation)
+             668:    667(ptr) AccessChain 34(data) 37 666 38
+             669: 27(int64_t) Load 668
+             670: 27(int64_t) GroupNonUniformQuadBroadcast 43 669 42
+             671:    667(ptr) AccessChain 34(data) 665 666 38
+                              Store 671 670
+             672:      6(int) Load 8(invocation)
+             675:    674(ptr) AccessChain 34(data) 47 666
+             676: 28(i64vec4) Load 675
+             677:673(i64vec2) VectorShuffle 676 676 0 1
+             678:673(i64vec2) GroupNonUniformQuadBroadcast 43 677 42
+             679:    667(ptr) AccessChain 34(data) 672 666 38
+             680: 27(int64_t) CompositeExtract 678 0
+                              Store 679 680
+             681:    667(ptr) AccessChain 34(data) 672 666 42
+             682: 27(int64_t) CompositeExtract 678 1
+                              Store 681 682
+             683:      6(int) Load 8(invocation)
+             685:    674(ptr) AccessChain 34(data) 59 666
+             686: 28(i64vec4) Load 685
+             687:684(i64vec3) VectorShuffle 686 686 0 1 2
+             688:684(i64vec3) GroupNonUniformQuadBroadcast 43 687 42
+             689:    667(ptr) AccessChain 34(data) 683 666 38
+             690: 27(int64_t) CompositeExtract 688 0
+                              Store 689 690
+             691:    667(ptr) AccessChain 34(data) 683 666 42
+             692: 27(int64_t) CompositeExtract 688 1
+                              Store 691 692
+             693:    667(ptr) AccessChain 34(data) 683 666 69
+             694: 27(int64_t) CompositeExtract 688 2
+                              Store 693 694
+             695:      6(int) Load 8(invocation)
+             696:    674(ptr) AccessChain 34(data) 73 666
+             697: 28(i64vec4) Load 696
+             698: 28(i64vec4) GroupNonUniformQuadBroadcast 43 697 42
+             699:    674(ptr) AccessChain 34(data) 695 666
+                              Store 699 698
+             700:      6(int) Load 8(invocation)
+             701:    667(ptr) AccessChain 34(data) 37 666 38
+             702: 27(int64_t) Load 701
+             703: 27(int64_t) GroupNonUniformQuadSwap 43 702 38
+             704:    667(ptr) AccessChain 34(data) 700 666 38
+                              Store 704 703
+             705:      6(int) Load 8(invocation)
+             706:    674(ptr) AccessChain 34(data) 47 666
+             707: 28(i64vec4) Load 706
+             708:673(i64vec2) VectorShuffle 707 707 0 1
+             709:673(i64vec2) GroupNonUniformQuadSwap 43 708 38
+             710:    667(ptr) AccessChain 34(data) 705 666 38
+             711: 27(int64_t) CompositeExtract 709 0
+                              Store 710 711
+             712:    667(ptr) AccessChain 34(data) 705 666 42
+             713: 27(int64_t) CompositeExtract 709 1
+                              Store 712 713
+             714:      6(int) Load 8(invocation)
+             715:    674(ptr) AccessChain 34(data) 59 666
+             716: 28(i64vec4) Load 715
+             717:684(i64vec3) VectorShuffle 716 716 0 1 2
+             718:684(i64vec3) GroupNonUniformQuadSwap 43 717 38
+             719:    667(ptr) AccessChain 34(data) 714 666 38
+             720: 27(int64_t) CompositeExtract 718 0
+                              Store 719 720
+             721:    667(ptr) AccessChain 34(data) 714 666 42
+             722: 27(int64_t) CompositeExtract 718 1
+                              Store 721 722
+             723:    667(ptr) AccessChain 34(data) 714 666 69
+             724: 27(int64_t) CompositeExtract 718 2
+                              Store 723 724
              725:      6(int) Load 8(invocation)
-             726:    696(ptr) AccessChain 34(data) 37 695 38
-             727:29(float16_t) Load 726
-             728:29(float16_t) GroupNonUniformQuadSwap 43 727 38
-             729:    696(ptr) AccessChain 34(data) 725 695 38
+             726:    674(ptr) AccessChain 34(data) 73 666
+             727: 28(i64vec4) Load 726
+             728: 28(i64vec4) GroupNonUniformQuadSwap 43 727 38
+             729:    674(ptr) AccessChain 34(data) 725 666
                               Store 729 728
              730:      6(int) Load 8(invocation)
-             731:    703(ptr) AccessChain 34(data) 47 695
-             732: 30(f16vec4) Load 731
-             733:702(f16vec2) VectorShuffle 732 732 0 1
-             734:702(f16vec2) GroupNonUniformQuadSwap 43 733 38
-             735:    703(ptr) AccessChain 34(data) 730 695
-             736: 30(f16vec4) Load 735
-             737: 30(f16vec4) VectorShuffle 736 734 4 5 2 3
-                              Store 735 737
-             738:      6(int) Load 8(invocation)
-             739:    703(ptr) AccessChain 34(data) 58 695
-             740: 30(f16vec4) Load 739
-             741:712(f16vec3) VectorShuffle 740 740 0 1 2
-             742:712(f16vec3) GroupNonUniformQuadSwap 43 741 38
-             743:    703(ptr) AccessChain 34(data) 738 695
-             744: 30(f16vec4) Load 743
-             745: 30(f16vec4) VectorShuffle 744 742 4 5 6 3
-                              Store 743 745
-             746:      6(int) Load 8(invocation)
-             747:    703(ptr) AccessChain 34(data) 68 695
-             748: 30(f16vec4) Load 747
-             749: 30(f16vec4) GroupNonUniformQuadSwap 43 748 38
-             750:    703(ptr) AccessChain 34(data) 746 695
-                              Store 750 749
-             751:      6(int) Load 8(invocation)
-             752:    696(ptr) AccessChain 34(data) 37 695 38
-             753:29(float16_t) Load 752
-             754:29(float16_t) GroupNonUniformQuadSwap 43 753 42
-             755:    696(ptr) AccessChain 34(data) 751 695 38
-                              Store 755 754
-             756:      6(int) Load 8(invocation)
-             757:    703(ptr) AccessChain 34(data) 47 695
-             758: 30(f16vec4) Load 757
-             759:702(f16vec2) VectorShuffle 758 758 0 1
-             760:702(f16vec2) GroupNonUniformQuadSwap 43 759 42
-             761:    703(ptr) AccessChain 34(data) 756 695
-             762: 30(f16vec4) Load 761
-             763: 30(f16vec4) VectorShuffle 762 760 4 5 2 3
-                              Store 761 763
-             764:      6(int) Load 8(invocation)
-             765:    703(ptr) AccessChain 34(data) 58 695
-             766: 30(f16vec4) Load 765
-             767:712(f16vec3) VectorShuffle 766 766 0 1 2
-             768:712(f16vec3) GroupNonUniformQuadSwap 43 767 42
-             769:    703(ptr) AccessChain 34(data) 764 695
-             770: 30(f16vec4) Load 769
-             771: 30(f16vec4) VectorShuffle 770 768 4 5 6 3
-                              Store 769 771
-             772:      6(int) Load 8(invocation)
-             773:    703(ptr) AccessChain 34(data) 68 695
-             774: 30(f16vec4) Load 773
-             775: 30(f16vec4) GroupNonUniformQuadSwap 43 774 42
-             776:    703(ptr) AccessChain 34(data) 772 695
-                              Store 776 775
-             777:      6(int) Load 8(invocation)
-             778:    696(ptr) AccessChain 34(data) 37 695 38
-             779:29(float16_t) Load 778
-             780:29(float16_t) GroupNonUniformQuadSwap 43 779 128
-             781:    696(ptr) AccessChain 34(data) 777 695 38
-                              Store 781 780
-             782:      6(int) Load 8(invocation)
-             783:    703(ptr) AccessChain 34(data) 47 695
-             784: 30(f16vec4) Load 783
-             785:702(f16vec2) VectorShuffle 784 784 0 1
-             786:702(f16vec2) GroupNonUniformQuadSwap 43 785 128
-             787:    703(ptr) AccessChain 34(data) 782 695
-             788: 30(f16vec4) Load 787
-             789: 30(f16vec4) VectorShuffle 788 786 4 5 2 3
-                              Store 787 789
+             731:    667(ptr) AccessChain 34(data) 37 666 38
+             732: 27(int64_t) Load 731
+             733: 27(int64_t) GroupNonUniformQuadSwap 43 732 42
+             734:    667(ptr) AccessChain 34(data) 730 666 38
+                              Store 734 733
+             735:      6(int) Load 8(invocation)
+             736:    674(ptr) AccessChain 34(data) 47 666
+             737: 28(i64vec4) Load 736
+             738:673(i64vec2) VectorShuffle 737 737 0 1
+             739:673(i64vec2) GroupNonUniformQuadSwap 43 738 42
+             740:    667(ptr) AccessChain 34(data) 735 666 38
+             741: 27(int64_t) CompositeExtract 739 0
+                              Store 740 741
+             742:    667(ptr) AccessChain 34(data) 735 666 42
+             743: 27(int64_t) CompositeExtract 739 1
+                              Store 742 743
+             744:      6(int) Load 8(invocation)
+             745:    674(ptr) AccessChain 34(data) 59 666
+             746: 28(i64vec4) Load 745
+             747:684(i64vec3) VectorShuffle 746 746 0 1 2
+             748:684(i64vec3) GroupNonUniformQuadSwap 43 747 42
+             749:    667(ptr) AccessChain 34(data) 744 666 38
+             750: 27(int64_t) CompositeExtract 748 0
+                              Store 749 750
+             751:    667(ptr) AccessChain 34(data) 744 666 42
+             752: 27(int64_t) CompositeExtract 748 1
+                              Store 751 752
+             753:    667(ptr) AccessChain 34(data) 744 666 69
+             754: 27(int64_t) CompositeExtract 748 2
+                              Store 753 754
+             755:      6(int) Load 8(invocation)
+             756:    674(ptr) AccessChain 34(data) 73 666
+             757: 28(i64vec4) Load 756
+             758: 28(i64vec4) GroupNonUniformQuadSwap 43 757 42
+             759:    674(ptr) AccessChain 34(data) 755 666
+                              Store 759 758
+             760:      6(int) Load 8(invocation)
+             761:    667(ptr) AccessChain 34(data) 37 666 38
+             762: 27(int64_t) Load 761
+             763: 27(int64_t) GroupNonUniformQuadSwap 43 762 69
+             764:    667(ptr) AccessChain 34(data) 760 666 38
+                              Store 764 763
+             765:      6(int) Load 8(invocation)
+             766:    674(ptr) AccessChain 34(data) 47 666
+             767: 28(i64vec4) Load 766
+             768:673(i64vec2) VectorShuffle 767 767 0 1
+             769:673(i64vec2) GroupNonUniformQuadSwap 43 768 69
+             770:    667(ptr) AccessChain 34(data) 765 666 38
+             771: 27(int64_t) CompositeExtract 769 0
+                              Store 770 771
+             772:    667(ptr) AccessChain 34(data) 765 666 42
+             773: 27(int64_t) CompositeExtract 769 1
+                              Store 772 773
+             774:      6(int) Load 8(invocation)
+             775:    674(ptr) AccessChain 34(data) 59 666
+             776: 28(i64vec4) Load 775
+             777:684(i64vec3) VectorShuffle 776 776 0 1 2
+             778:684(i64vec3) GroupNonUniformQuadSwap 43 777 69
+             779:    667(ptr) AccessChain 34(data) 774 666 38
+             780: 27(int64_t) CompositeExtract 778 0
+                              Store 779 780
+             781:    667(ptr) AccessChain 34(data) 774 666 42
+             782: 27(int64_t) CompositeExtract 778 1
+                              Store 781 782
+             783:    667(ptr) AccessChain 34(data) 774 666 69
+             784: 27(int64_t) CompositeExtract 778 2
+                              Store 783 784
+             785:      6(int) Load 8(invocation)
+             786:    674(ptr) AccessChain 34(data) 73 666
+             787: 28(i64vec4) Load 786
+             788: 28(i64vec4) GroupNonUniformQuadSwap 43 787 69
+             789:    674(ptr) AccessChain 34(data) 785 666
+                              Store 789 788
              790:      6(int) Load 8(invocation)
-             791:    703(ptr) AccessChain 34(data) 58 695
-             792: 30(f16vec4) Load 791
-             793:712(f16vec3) VectorShuffle 792 792 0 1 2
-             794:712(f16vec3) GroupNonUniformQuadSwap 43 793 128
-             795:    703(ptr) AccessChain 34(data) 790 695
-             796: 30(f16vec4) Load 795
-             797: 30(f16vec4) VectorShuffle 796 794 4 5 6 3
-                              Store 795 797
-             798:      6(int) Load 8(invocation)
-             799:    703(ptr) AccessChain 34(data) 68 695
-             800: 30(f16vec4) Load 799
-             801: 30(f16vec4) GroupNonUniformQuadSwap 43 800 128
-             802:    703(ptr) AccessChain 34(data) 798 695
-                              Store 802 801
+             793:    792(ptr) AccessChain 34(data) 37 791 38
+             794:29(float16_t) Load 793
+             795:29(float16_t) GroupNonUniformQuadBroadcast 43 794 42
+             796:    792(ptr) AccessChain 34(data) 790 791 38
+                              Store 796 795
+             797:      6(int) Load 8(invocation)
+             800:    799(ptr) AccessChain 34(data) 47 791
+             801: 30(f16vec4) Load 800
+             802:798(f16vec2) VectorShuffle 801 801 0 1
+             803:798(f16vec2) GroupNonUniformQuadBroadcast 43 802 42
+             804:    792(ptr) AccessChain 34(data) 797 791 38
+             805:29(float16_t) CompositeExtract 803 0
+                              Store 804 805
+             806:    792(ptr) AccessChain 34(data) 797 791 42
+             807:29(float16_t) CompositeExtract 803 1
+                              Store 806 807
+             808:      6(int) Load 8(invocation)
+             810:    799(ptr) AccessChain 34(data) 59 791
+             811: 30(f16vec4) Load 810
+             812:809(f16vec3) VectorShuffle 811 811 0 1 2
+             813:809(f16vec3) GroupNonUniformQuadBroadcast 43 812 42
+             814:    792(ptr) AccessChain 34(data) 808 791 38
+             815:29(float16_t) CompositeExtract 813 0
+                              Store 814 815
+             816:    792(ptr) AccessChain 34(data) 808 791 42
+             817:29(float16_t) CompositeExtract 813 1
+                              Store 816 817
+             818:    792(ptr) AccessChain 34(data) 808 791 69
+             819:29(float16_t) CompositeExtract 813 2
+                              Store 818 819
+             820:      6(int) Load 8(invocation)
+             821:    799(ptr) AccessChain 34(data) 73 791
+             822: 30(f16vec4) Load 821
+             823: 30(f16vec4) GroupNonUniformQuadBroadcast 43 822 42
+             824:    799(ptr) AccessChain 34(data) 820 791
+                              Store 824 823
+             825:      6(int) Load 8(invocation)
+             826:    792(ptr) AccessChain 34(data) 37 791 38
+             827:29(float16_t) Load 826
+             828:29(float16_t) GroupNonUniformQuadSwap 43 827 38
+             829:    792(ptr) AccessChain 34(data) 825 791 38
+                              Store 829 828
+             830:      6(int) Load 8(invocation)
+             831:    799(ptr) AccessChain 34(data) 47 791
+             832: 30(f16vec4) Load 831
+             833:798(f16vec2) VectorShuffle 832 832 0 1
+             834:798(f16vec2) GroupNonUniformQuadSwap 43 833 38
+             835:    792(ptr) AccessChain 34(data) 830 791 38
+             836:29(float16_t) CompositeExtract 834 0
+                              Store 835 836
+             837:    792(ptr) AccessChain 34(data) 830 791 42
+             838:29(float16_t) CompositeExtract 834 1
+                              Store 837 838
+             839:      6(int) Load 8(invocation)
+             840:    799(ptr) AccessChain 34(data) 59 791
+             841: 30(f16vec4) Load 840
+             842:809(f16vec3) VectorShuffle 841 841 0 1 2
+             843:809(f16vec3) GroupNonUniformQuadSwap 43 842 38
+             844:    792(ptr) AccessChain 34(data) 839 791 38
+             845:29(float16_t) CompositeExtract 843 0
+                              Store 844 845
+             846:    792(ptr) AccessChain 34(data) 839 791 42
+             847:29(float16_t) CompositeExtract 843 1
+                              Store 846 847
+             848:    792(ptr) AccessChain 34(data) 839 791 69
+             849:29(float16_t) CompositeExtract 843 2
+                              Store 848 849
+             850:      6(int) Load 8(invocation)
+             851:    799(ptr) AccessChain 34(data) 73 791
+             852: 30(f16vec4) Load 851
+             853: 30(f16vec4) GroupNonUniformQuadSwap 43 852 38
+             854:    799(ptr) AccessChain 34(data) 850 791
+                              Store 854 853
+             855:      6(int) Load 8(invocation)
+             856:    792(ptr) AccessChain 34(data) 37 791 38
+             857:29(float16_t) Load 856
+             858:29(float16_t) GroupNonUniformQuadSwap 43 857 42
+             859:    792(ptr) AccessChain 34(data) 855 791 38
+                              Store 859 858
+             860:      6(int) Load 8(invocation)
+             861:    799(ptr) AccessChain 34(data) 47 791
+             862: 30(f16vec4) Load 861
+             863:798(f16vec2) VectorShuffle 862 862 0 1
+             864:798(f16vec2) GroupNonUniformQuadSwap 43 863 42
+             865:    792(ptr) AccessChain 34(data) 860 791 38
+             866:29(float16_t) CompositeExtract 864 0
+                              Store 865 866
+             867:    792(ptr) AccessChain 34(data) 860 791 42
+             868:29(float16_t) CompositeExtract 864 1
+                              Store 867 868
+             869:      6(int) Load 8(invocation)
+             870:    799(ptr) AccessChain 34(data) 59 791
+             871: 30(f16vec4) Load 870
+             872:809(f16vec3) VectorShuffle 871 871 0 1 2
+             873:809(f16vec3) GroupNonUniformQuadSwap 43 872 42
+             874:    792(ptr) AccessChain 34(data) 869 791 38
+             875:29(float16_t) CompositeExtract 873 0
+                              Store 874 875
+             876:    792(ptr) AccessChain 34(data) 869 791 42
+             877:29(float16_t) CompositeExtract 873 1
+                              Store 876 877
+             878:    792(ptr) AccessChain 34(data) 869 791 69
+             879:29(float16_t) CompositeExtract 873 2
+                              Store 878 879
+             880:      6(int) Load 8(invocation)
+             881:    799(ptr) AccessChain 34(data) 73 791
+             882: 30(f16vec4) Load 881
+             883: 30(f16vec4) GroupNonUniformQuadSwap 43 882 42
+             884:    799(ptr) AccessChain 34(data) 880 791
+                              Store 884 883
+             885:      6(int) Load 8(invocation)
+             886:    792(ptr) AccessChain 34(data) 37 791 38
+             887:29(float16_t) Load 886
+             888:29(float16_t) GroupNonUniformQuadSwap 43 887 69
+             889:    792(ptr) AccessChain 34(data) 885 791 38
+                              Store 889 888
+             890:      6(int) Load 8(invocation)
+             891:    799(ptr) AccessChain 34(data) 47 791
+             892: 30(f16vec4) Load 891
+             893:798(f16vec2) VectorShuffle 892 892 0 1
+             894:798(f16vec2) GroupNonUniformQuadSwap 43 893 69
+             895:    792(ptr) AccessChain 34(data) 890 791 38
+             896:29(float16_t) CompositeExtract 894 0
+                              Store 895 896
+             897:    792(ptr) AccessChain 34(data) 890 791 42
+             898:29(float16_t) CompositeExtract 894 1
+                              Store 897 898
+             899:      6(int) Load 8(invocation)
+             900:    799(ptr) AccessChain 34(data) 59 791
+             901: 30(f16vec4) Load 900
+             902:809(f16vec3) VectorShuffle 901 901 0 1 2
+             903:809(f16vec3) GroupNonUniformQuadSwap 43 902 69
+             904:    792(ptr) AccessChain 34(data) 899 791 38
+             905:29(float16_t) CompositeExtract 903 0
+                              Store 904 905
+             906:    792(ptr) AccessChain 34(data) 899 791 42
+             907:29(float16_t) CompositeExtract 903 1
+                              Store 906 907
+             908:    792(ptr) AccessChain 34(data) 899 791 69
+             909:29(float16_t) CompositeExtract 903 2
+                              Store 908 909
+             910:      6(int) Load 8(invocation)
+             911:    799(ptr) AccessChain 34(data) 73 791
+             912: 30(f16vec4) Load 911
+             913: 30(f16vec4) GroupNonUniformQuadSwap 43 912 69
+             914:    799(ptr) AccessChain 34(data) 910 791
+                              Store 914 913
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out b/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out
index b798bae..eaea708 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesShuffle.comp.out
@@ -1,7 +1,7 @@
 spv.subgroupExtendedTypesShuffle.comp
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 497
+// Id's are bound by 554
 
                               Capability Shader
                               Capability Float16
@@ -59,7 +59,7 @@
                               Decorate 31(Buffers) Block
                               Decorate 34(data) DescriptorSet 0
                               Decorate 34(data) Binding 0
-                              Decorate 496 BuiltIn WorkgroupSize
+                              Decorate 553 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -94,40 +94,41 @@
               47:     36(int) Constant 1
               48:             TypeVector 17(int8_t) 2
               49:             TypePointer StorageBuffer 18(i8vec4)
-              59:     36(int) Constant 2
-              60:             TypeVector 17(int8_t) 3
-              70:     36(int) Constant 3
-             107:             TypePointer StorageBuffer 19(int8_t)
-             114:             TypeVector 19(int8_t) 2
-             115:             TypePointer StorageBuffer 20(i8vec4)
-             125:             TypeVector 19(int8_t) 3
-             171:             TypePointer StorageBuffer 21(int16_t)
-             178:             TypeVector 21(int16_t) 2
-             179:             TypePointer StorageBuffer 22(i16vec4)
-             189:             TypeVector 21(int16_t) 3
-             235:             TypePointer StorageBuffer 23(int16_t)
-             242:             TypeVector 23(int16_t) 2
-             243:             TypePointer StorageBuffer 24(i16vec4)
-             253:             TypeVector 23(int16_t) 3
-             299:     36(int) Constant 4
-             300:             TypePointer StorageBuffer 25(int64_t)
-             307:             TypeVector 25(int64_t) 2
-             308:             TypePointer StorageBuffer 26(i64vec4)
-             318:             TypeVector 25(int64_t) 3
-             364:     36(int) Constant 5
-             365:             TypePointer StorageBuffer 27(int64_t)
-             372:             TypeVector 27(int64_t) 2
-             373:             TypePointer StorageBuffer 28(i64vec4)
-             383:             TypeVector 27(int64_t) 3
-             429:     36(int) Constant 6
-             430:             TypePointer StorageBuffer 29(float16_t)
-             437:             TypeVector 29(float16_t) 2
-             438:             TypePointer StorageBuffer 30(f16vec4)
-             448:             TypeVector 29(float16_t) 3
-             493:             TypeVector 6(int) 3
-             494:      6(int) Constant 8
-             495:      6(int) Constant 1
-             496:  493(ivec3) ConstantComposite 494 495 495
+              57:      6(int) Constant 1
+              61:     36(int) Constant 2
+              62:             TypeVector 17(int8_t) 3
+              72:      6(int) Constant 2
+              76:     36(int) Constant 3
+             117:             TypePointer StorageBuffer 19(int8_t)
+             124:             TypeVector 19(int8_t) 2
+             125:             TypePointer StorageBuffer 20(i8vec4)
+             136:             TypeVector 19(int8_t) 3
+             189:             TypePointer StorageBuffer 21(int16_t)
+             196:             TypeVector 21(int16_t) 2
+             197:             TypePointer StorageBuffer 22(i16vec4)
+             208:             TypeVector 21(int16_t) 3
+             261:             TypePointer StorageBuffer 23(int16_t)
+             268:             TypeVector 23(int16_t) 2
+             269:             TypePointer StorageBuffer 24(i16vec4)
+             280:             TypeVector 23(int16_t) 3
+             333:     36(int) Constant 4
+             334:             TypePointer StorageBuffer 25(int64_t)
+             341:             TypeVector 25(int64_t) 2
+             342:             TypePointer StorageBuffer 26(i64vec4)
+             353:             TypeVector 25(int64_t) 3
+             406:     36(int) Constant 5
+             407:             TypePointer StorageBuffer 27(int64_t)
+             414:             TypeVector 27(int64_t) 2
+             415:             TypePointer StorageBuffer 28(i64vec4)
+             426:             TypeVector 27(int64_t) 3
+             479:     36(int) Constant 6
+             480:             TypePointer StorageBuffer 29(float16_t)
+             487:             TypeVector 29(float16_t) 2
+             488:             TypePointer StorageBuffer 30(f16vec4)
+             499:             TypeVector 29(float16_t) 3
+             551:             TypeVector 6(int) 3
+             552:      6(int) Constant 8
+             553:  551(ivec3) ConstantComposite 552 57 57
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -149,468 +150,566 @@
               52:  48(i8vec2) VectorShuffle 51 51 0 1
               53:      6(int) Load 8(invocation)
               54:  48(i8vec2) GroupNonUniformShuffle 43 52 53
-              55:     49(ptr) AccessChain 34(data) 46 37
-              56:  18(i8vec4) Load 55
-              57:  18(i8vec4) VectorShuffle 56 54 4 5 2 3
-                              Store 55 57
-              58:      6(int) Load 8(invocation)
-              61:     49(ptr) AccessChain 34(data) 59 37
-              62:  18(i8vec4) Load 61
-              63:  60(i8vec3) VectorShuffle 62 62 0 1 2
-              64:      6(int) Load 8(invocation)
-              65:  60(i8vec3) GroupNonUniformShuffle 43 63 64
-              66:     49(ptr) AccessChain 34(data) 58 37
-              67:  18(i8vec4) Load 66
-              68:  18(i8vec4) VectorShuffle 67 65 4 5 6 3
-                              Store 66 68
-              69:      6(int) Load 8(invocation)
-              71:     49(ptr) AccessChain 34(data) 70 37
-              72:  18(i8vec4) Load 71
-              73:      6(int) Load 8(invocation)
-              74:  18(i8vec4) GroupNonUniformShuffle 43 72 73
-              75:     49(ptr) AccessChain 34(data) 69 37
-                              Store 75 74
-              76:      6(int) Load 8(invocation)
-              77:     39(ptr) AccessChain 34(data) 37 37 38
-              78:  17(int8_t) Load 77
+              55:     39(ptr) AccessChain 34(data) 46 37 38
+              56:  17(int8_t) CompositeExtract 54 0
+                              Store 55 56
+              58:     39(ptr) AccessChain 34(data) 46 37 57
+              59:  17(int8_t) CompositeExtract 54 1
+                              Store 58 59
+              60:      6(int) Load 8(invocation)
+              63:     49(ptr) AccessChain 34(data) 61 37
+              64:  18(i8vec4) Load 63
+              65:  62(i8vec3) VectorShuffle 64 64 0 1 2
+              66:      6(int) Load 8(invocation)
+              67:  62(i8vec3) GroupNonUniformShuffle 43 65 66
+              68:     39(ptr) AccessChain 34(data) 60 37 38
+              69:  17(int8_t) CompositeExtract 67 0
+                              Store 68 69
+              70:     39(ptr) AccessChain 34(data) 60 37 57
+              71:  17(int8_t) CompositeExtract 67 1
+                              Store 70 71
+              73:     39(ptr) AccessChain 34(data) 60 37 72
+              74:  17(int8_t) CompositeExtract 67 2
+                              Store 73 74
+              75:      6(int) Load 8(invocation)
+              77:     49(ptr) AccessChain 34(data) 76 37
+              78:  18(i8vec4) Load 77
               79:      6(int) Load 8(invocation)
-              80:  17(int8_t) GroupNonUniformShuffleXor 43 78 79
-              81:     39(ptr) AccessChain 34(data) 76 37 38
+              80:  18(i8vec4) GroupNonUniformShuffle 43 78 79
+              81:     49(ptr) AccessChain 34(data) 75 37
                               Store 81 80
               82:      6(int) Load 8(invocation)
-              83:     49(ptr) AccessChain 34(data) 47 37
-              84:  18(i8vec4) Load 83
-              85:  48(i8vec2) VectorShuffle 84 84 0 1
-              86:      6(int) Load 8(invocation)
-              87:  48(i8vec2) GroupNonUniformShuffleXor 43 85 86
-              88:     49(ptr) AccessChain 34(data) 82 37
-              89:  18(i8vec4) Load 88
-              90:  18(i8vec4) VectorShuffle 89 87 4 5 2 3
-                              Store 88 90
-              91:      6(int) Load 8(invocation)
-              92:     49(ptr) AccessChain 34(data) 59 37
-              93:  18(i8vec4) Load 92
-              94:  60(i8vec3) VectorShuffle 93 93 0 1 2
-              95:      6(int) Load 8(invocation)
-              96:  60(i8vec3) GroupNonUniformShuffleXor 43 94 95
-              97:     49(ptr) AccessChain 34(data) 91 37
-              98:  18(i8vec4) Load 97
-              99:  18(i8vec4) VectorShuffle 98 96 4 5 6 3
-                              Store 97 99
-             100:      6(int) Load 8(invocation)
-             101:     49(ptr) AccessChain 34(data) 70 37
-             102:  18(i8vec4) Load 101
-             103:      6(int) Load 8(invocation)
-             104:  18(i8vec4) GroupNonUniformShuffleXor 43 102 103
-             105:     49(ptr) AccessChain 34(data) 100 37
-                              Store 105 104
-             106:      6(int) Load 8(invocation)
-             108:    107(ptr) AccessChain 34(data) 37 47 38
-             109:  19(int8_t) Load 108
+              83:     39(ptr) AccessChain 34(data) 37 37 38
+              84:  17(int8_t) Load 83
+              85:      6(int) Load 8(invocation)
+              86:  17(int8_t) GroupNonUniformShuffleXor 43 84 85
+              87:     39(ptr) AccessChain 34(data) 82 37 38
+                              Store 87 86
+              88:      6(int) Load 8(invocation)
+              89:     49(ptr) AccessChain 34(data) 47 37
+              90:  18(i8vec4) Load 89
+              91:  48(i8vec2) VectorShuffle 90 90 0 1
+              92:      6(int) Load 8(invocation)
+              93:  48(i8vec2) GroupNonUniformShuffleXor 43 91 92
+              94:     39(ptr) AccessChain 34(data) 88 37 38
+              95:  17(int8_t) CompositeExtract 93 0
+                              Store 94 95
+              96:     39(ptr) AccessChain 34(data) 88 37 57
+              97:  17(int8_t) CompositeExtract 93 1
+                              Store 96 97
+              98:      6(int) Load 8(invocation)
+              99:     49(ptr) AccessChain 34(data) 61 37
+             100:  18(i8vec4) Load 99
+             101:  62(i8vec3) VectorShuffle 100 100 0 1 2
+             102:      6(int) Load 8(invocation)
+             103:  62(i8vec3) GroupNonUniformShuffleXor 43 101 102
+             104:     39(ptr) AccessChain 34(data) 98 37 38
+             105:  17(int8_t) CompositeExtract 103 0
+                              Store 104 105
+             106:     39(ptr) AccessChain 34(data) 98 37 57
+             107:  17(int8_t) CompositeExtract 103 1
+                              Store 106 107
+             108:     39(ptr) AccessChain 34(data) 98 37 72
+             109:  17(int8_t) CompositeExtract 103 2
+                              Store 108 109
              110:      6(int) Load 8(invocation)
-             111:  19(int8_t) GroupNonUniformShuffle 43 109 110
-             112:    107(ptr) AccessChain 34(data) 106 47 38
-                              Store 112 111
+             111:     49(ptr) AccessChain 34(data) 76 37
+             112:  18(i8vec4) Load 111
              113:      6(int) Load 8(invocation)
-             116:    115(ptr) AccessChain 34(data) 47 47
-             117:  20(i8vec4) Load 116
-             118: 114(i8vec2) VectorShuffle 117 117 0 1
-             119:      6(int) Load 8(invocation)
-             120: 114(i8vec2) GroupNonUniformShuffle 43 118 119
-             121:    115(ptr) AccessChain 34(data) 113 47
-             122:  20(i8vec4) Load 121
-             123:  20(i8vec4) VectorShuffle 122 120 4 5 2 3
-                              Store 121 123
-             124:      6(int) Load 8(invocation)
-             126:    115(ptr) AccessChain 34(data) 59 47
+             114:  18(i8vec4) GroupNonUniformShuffleXor 43 112 113
+             115:     49(ptr) AccessChain 34(data) 110 37
+                              Store 115 114
+             116:      6(int) Load 8(invocation)
+             118:    117(ptr) AccessChain 34(data) 37 47 38
+             119:  19(int8_t) Load 118
+             120:      6(int) Load 8(invocation)
+             121:  19(int8_t) GroupNonUniformShuffle 43 119 120
+             122:    117(ptr) AccessChain 34(data) 116 47 38
+                              Store 122 121
+             123:      6(int) Load 8(invocation)
+             126:    125(ptr) AccessChain 34(data) 47 47
              127:  20(i8vec4) Load 126
-             128: 125(i8vec3) VectorShuffle 127 127 0 1 2
+             128: 124(i8vec2) VectorShuffle 127 127 0 1
              129:      6(int) Load 8(invocation)
-             130: 125(i8vec3) GroupNonUniformShuffle 43 128 129
-             131:    115(ptr) AccessChain 34(data) 124 47
-             132:  20(i8vec4) Load 131
-             133:  20(i8vec4) VectorShuffle 132 130 4 5 6 3
-                              Store 131 133
-             134:      6(int) Load 8(invocation)
-             135:    115(ptr) AccessChain 34(data) 70 47
-             136:  20(i8vec4) Load 135
-             137:      6(int) Load 8(invocation)
-             138:  20(i8vec4) GroupNonUniformShuffle 43 136 137
-             139:    115(ptr) AccessChain 34(data) 134 47
-                              Store 139 138
+             130: 124(i8vec2) GroupNonUniformShuffle 43 128 129
+             131:    117(ptr) AccessChain 34(data) 123 47 38
+             132:  19(int8_t) CompositeExtract 130 0
+                              Store 131 132
+             133:    117(ptr) AccessChain 34(data) 123 47 57
+             134:  19(int8_t) CompositeExtract 130 1
+                              Store 133 134
+             135:      6(int) Load 8(invocation)
+             137:    125(ptr) AccessChain 34(data) 61 47
+             138:  20(i8vec4) Load 137
+             139: 136(i8vec3) VectorShuffle 138 138 0 1 2
              140:      6(int) Load 8(invocation)
-             141:    107(ptr) AccessChain 34(data) 37 47 38
-             142:  19(int8_t) Load 141
-             143:      6(int) Load 8(invocation)
-             144:  19(int8_t) GroupNonUniformShuffleXor 43 142 143
-             145:    107(ptr) AccessChain 34(data) 140 47 38
-                              Store 145 144
-             146:      6(int) Load 8(invocation)
-             147:    115(ptr) AccessChain 34(data) 47 47
-             148:  20(i8vec4) Load 147
-             149: 114(i8vec2) VectorShuffle 148 148 0 1
-             150:      6(int) Load 8(invocation)
-             151: 114(i8vec2) GroupNonUniformShuffleXor 43 149 150
-             152:    115(ptr) AccessChain 34(data) 146 47
-             153:  20(i8vec4) Load 152
-             154:  20(i8vec4) VectorShuffle 153 151 4 5 2 3
-                              Store 152 154
-             155:      6(int) Load 8(invocation)
-             156:    115(ptr) AccessChain 34(data) 59 47
-             157:  20(i8vec4) Load 156
-             158: 125(i8vec3) VectorShuffle 157 157 0 1 2
-             159:      6(int) Load 8(invocation)
-             160: 125(i8vec3) GroupNonUniformShuffleXor 43 158 159
-             161:    115(ptr) AccessChain 34(data) 155 47
+             141: 136(i8vec3) GroupNonUniformShuffle 43 139 140
+             142:    117(ptr) AccessChain 34(data) 135 47 38
+             143:  19(int8_t) CompositeExtract 141 0
+                              Store 142 143
+             144:    117(ptr) AccessChain 34(data) 135 47 57
+             145:  19(int8_t) CompositeExtract 141 1
+                              Store 144 145
+             146:    117(ptr) AccessChain 34(data) 135 47 72
+             147:  19(int8_t) CompositeExtract 141 2
+                              Store 146 147
+             148:      6(int) Load 8(invocation)
+             149:    125(ptr) AccessChain 34(data) 76 47
+             150:  20(i8vec4) Load 149
+             151:      6(int) Load 8(invocation)
+             152:  20(i8vec4) GroupNonUniformShuffle 43 150 151
+             153:    125(ptr) AccessChain 34(data) 148 47
+                              Store 153 152
+             154:      6(int) Load 8(invocation)
+             155:    117(ptr) AccessChain 34(data) 37 47 38
+             156:  19(int8_t) Load 155
+             157:      6(int) Load 8(invocation)
+             158:  19(int8_t) GroupNonUniformShuffleXor 43 156 157
+             159:    117(ptr) AccessChain 34(data) 154 47 38
+                              Store 159 158
+             160:      6(int) Load 8(invocation)
+             161:    125(ptr) AccessChain 34(data) 47 47
              162:  20(i8vec4) Load 161
-             163:  20(i8vec4) VectorShuffle 162 160 4 5 6 3
-                              Store 161 163
+             163: 124(i8vec2) VectorShuffle 162 162 0 1
              164:      6(int) Load 8(invocation)
-             165:    115(ptr) AccessChain 34(data) 70 47
-             166:  20(i8vec4) Load 165
-             167:      6(int) Load 8(invocation)
-             168:  20(i8vec4) GroupNonUniformShuffleXor 43 166 167
-             169:    115(ptr) AccessChain 34(data) 164 47
-                              Store 169 168
+             165: 124(i8vec2) GroupNonUniformShuffleXor 43 163 164
+             166:    117(ptr) AccessChain 34(data) 160 47 38
+             167:  19(int8_t) CompositeExtract 165 0
+                              Store 166 167
+             168:    117(ptr) AccessChain 34(data) 160 47 57
+             169:  19(int8_t) CompositeExtract 165 1
+                              Store 168 169
              170:      6(int) Load 8(invocation)
-             172:    171(ptr) AccessChain 34(data) 37 59 38
-             173: 21(int16_t) Load 172
+             171:    125(ptr) AccessChain 34(data) 61 47
+             172:  20(i8vec4) Load 171
+             173: 136(i8vec3) VectorShuffle 172 172 0 1 2
              174:      6(int) Load 8(invocation)
-             175: 21(int16_t) GroupNonUniformShuffle 43 173 174
-             176:    171(ptr) AccessChain 34(data) 170 59 38
-                              Store 176 175
-             177:      6(int) Load 8(invocation)
-             180:    179(ptr) AccessChain 34(data) 47 59
-             181: 22(i16vec4) Load 180
-             182:178(i16vec2) VectorShuffle 181 181 0 1
-             183:      6(int) Load 8(invocation)
-             184:178(i16vec2) GroupNonUniformShuffle 43 182 183
-             185:    179(ptr) AccessChain 34(data) 177 59
-             186: 22(i16vec4) Load 185
-             187: 22(i16vec4) VectorShuffle 186 184 4 5 2 3
-                              Store 185 187
+             175: 136(i8vec3) GroupNonUniformShuffleXor 43 173 174
+             176:    117(ptr) AccessChain 34(data) 170 47 38
+             177:  19(int8_t) CompositeExtract 175 0
+                              Store 176 177
+             178:    117(ptr) AccessChain 34(data) 170 47 57
+             179:  19(int8_t) CompositeExtract 175 1
+                              Store 178 179
+             180:    117(ptr) AccessChain 34(data) 170 47 72
+             181:  19(int8_t) CompositeExtract 175 2
+                              Store 180 181
+             182:      6(int) Load 8(invocation)
+             183:    125(ptr) AccessChain 34(data) 76 47
+             184:  20(i8vec4) Load 183
+             185:      6(int) Load 8(invocation)
+             186:  20(i8vec4) GroupNonUniformShuffleXor 43 184 185
+             187:    125(ptr) AccessChain 34(data) 182 47
+                              Store 187 186
              188:      6(int) Load 8(invocation)
-             190:    179(ptr) AccessChain 34(data) 59 59
-             191: 22(i16vec4) Load 190
-             192:189(i16vec3) VectorShuffle 191 191 0 1 2
-             193:      6(int) Load 8(invocation)
-             194:189(i16vec3) GroupNonUniformShuffle 43 192 193
-             195:    179(ptr) AccessChain 34(data) 188 59
-             196: 22(i16vec4) Load 195
-             197: 22(i16vec4) VectorShuffle 196 194 4 5 6 3
-                              Store 195 197
-             198:      6(int) Load 8(invocation)
-             199:    179(ptr) AccessChain 34(data) 70 59
-             200: 22(i16vec4) Load 199
+             190:    189(ptr) AccessChain 34(data) 37 61 38
+             191: 21(int16_t) Load 190
+             192:      6(int) Load 8(invocation)
+             193: 21(int16_t) GroupNonUniformShuffle 43 191 192
+             194:    189(ptr) AccessChain 34(data) 188 61 38
+                              Store 194 193
+             195:      6(int) Load 8(invocation)
+             198:    197(ptr) AccessChain 34(data) 47 61
+             199: 22(i16vec4) Load 198
+             200:196(i16vec2) VectorShuffle 199 199 0 1
              201:      6(int) Load 8(invocation)
-             202: 22(i16vec4) GroupNonUniformShuffle 43 200 201
-             203:    179(ptr) AccessChain 34(data) 198 59
-                              Store 203 202
-             204:      6(int) Load 8(invocation)
-             205:    171(ptr) AccessChain 34(data) 37 59 38
-             206: 21(int16_t) Load 205
+             202:196(i16vec2) GroupNonUniformShuffle 43 200 201
+             203:    189(ptr) AccessChain 34(data) 195 61 38
+             204: 21(int16_t) CompositeExtract 202 0
+                              Store 203 204
+             205:    189(ptr) AccessChain 34(data) 195 61 57
+             206: 21(int16_t) CompositeExtract 202 1
+                              Store 205 206
              207:      6(int) Load 8(invocation)
-             208: 21(int16_t) GroupNonUniformShuffleXor 43 206 207
-             209:    171(ptr) AccessChain 34(data) 204 59 38
-                              Store 209 208
-             210:      6(int) Load 8(invocation)
-             211:    179(ptr) AccessChain 34(data) 47 59
-             212: 22(i16vec4) Load 211
-             213:178(i16vec2) VectorShuffle 212 212 0 1
-             214:      6(int) Load 8(invocation)
-             215:178(i16vec2) GroupNonUniformShuffleXor 43 213 214
-             216:    179(ptr) AccessChain 34(data) 210 59
-             217: 22(i16vec4) Load 216
-             218: 22(i16vec4) VectorShuffle 217 215 4 5 2 3
-                              Store 216 218
-             219:      6(int) Load 8(invocation)
-             220:    179(ptr) AccessChain 34(data) 59 59
-             221: 22(i16vec4) Load 220
-             222:189(i16vec3) VectorShuffle 221 221 0 1 2
+             209:    197(ptr) AccessChain 34(data) 61 61
+             210: 22(i16vec4) Load 209
+             211:208(i16vec3) VectorShuffle 210 210 0 1 2
+             212:      6(int) Load 8(invocation)
+             213:208(i16vec3) GroupNonUniformShuffle 43 211 212
+             214:    189(ptr) AccessChain 34(data) 207 61 38
+             215: 21(int16_t) CompositeExtract 213 0
+                              Store 214 215
+             216:    189(ptr) AccessChain 34(data) 207 61 57
+             217: 21(int16_t) CompositeExtract 213 1
+                              Store 216 217
+             218:    189(ptr) AccessChain 34(data) 207 61 72
+             219: 21(int16_t) CompositeExtract 213 2
+                              Store 218 219
+             220:      6(int) Load 8(invocation)
+             221:    197(ptr) AccessChain 34(data) 76 61
+             222: 22(i16vec4) Load 221
              223:      6(int) Load 8(invocation)
-             224:189(i16vec3) GroupNonUniformShuffleXor 43 222 223
-             225:    179(ptr) AccessChain 34(data) 219 59
-             226: 22(i16vec4) Load 225
-             227: 22(i16vec4) VectorShuffle 226 224 4 5 6 3
-                              Store 225 227
-             228:      6(int) Load 8(invocation)
-             229:    179(ptr) AccessChain 34(data) 70 59
-             230: 22(i16vec4) Load 229
-             231:      6(int) Load 8(invocation)
-             232: 22(i16vec4) GroupNonUniformShuffleXor 43 230 231
-             233:    179(ptr) AccessChain 34(data) 228 59
-                              Store 233 232
-             234:      6(int) Load 8(invocation)
-             236:    235(ptr) AccessChain 34(data) 37 70 38
-             237: 23(int16_t) Load 236
-             238:      6(int) Load 8(invocation)
-             239: 23(int16_t) GroupNonUniformShuffle 43 237 238
-             240:    235(ptr) AccessChain 34(data) 234 70 38
-                              Store 240 239
-             241:      6(int) Load 8(invocation)
-             244:    243(ptr) AccessChain 34(data) 47 70
-             245: 24(i16vec4) Load 244
-             246:242(i16vec2) VectorShuffle 245 245 0 1
-             247:      6(int) Load 8(invocation)
-             248:242(i16vec2) GroupNonUniformShuffle 43 246 247
-             249:    243(ptr) AccessChain 34(data) 241 70
-             250: 24(i16vec4) Load 249
-             251: 24(i16vec4) VectorShuffle 250 248 4 5 2 3
-                              Store 249 251
-             252:      6(int) Load 8(invocation)
-             254:    243(ptr) AccessChain 34(data) 59 70
-             255: 24(i16vec4) Load 254
-             256:253(i16vec3) VectorShuffle 255 255 0 1 2
+             224: 22(i16vec4) GroupNonUniformShuffle 43 222 223
+             225:    197(ptr) AccessChain 34(data) 220 61
+                              Store 225 224
+             226:      6(int) Load 8(invocation)
+             227:    189(ptr) AccessChain 34(data) 37 61 38
+             228: 21(int16_t) Load 227
+             229:      6(int) Load 8(invocation)
+             230: 21(int16_t) GroupNonUniformShuffleXor 43 228 229
+             231:    189(ptr) AccessChain 34(data) 226 61 38
+                              Store 231 230
+             232:      6(int) Load 8(invocation)
+             233:    197(ptr) AccessChain 34(data) 47 61
+             234: 22(i16vec4) Load 233
+             235:196(i16vec2) VectorShuffle 234 234 0 1
+             236:      6(int) Load 8(invocation)
+             237:196(i16vec2) GroupNonUniformShuffleXor 43 235 236
+             238:    189(ptr) AccessChain 34(data) 232 61 38
+             239: 21(int16_t) CompositeExtract 237 0
+                              Store 238 239
+             240:    189(ptr) AccessChain 34(data) 232 61 57
+             241: 21(int16_t) CompositeExtract 237 1
+                              Store 240 241
+             242:      6(int) Load 8(invocation)
+             243:    197(ptr) AccessChain 34(data) 61 61
+             244: 22(i16vec4) Load 243
+             245:208(i16vec3) VectorShuffle 244 244 0 1 2
+             246:      6(int) Load 8(invocation)
+             247:208(i16vec3) GroupNonUniformShuffleXor 43 245 246
+             248:    189(ptr) AccessChain 34(data) 242 61 38
+             249: 21(int16_t) CompositeExtract 247 0
+                              Store 248 249
+             250:    189(ptr) AccessChain 34(data) 242 61 57
+             251: 21(int16_t) CompositeExtract 247 1
+                              Store 250 251
+             252:    189(ptr) AccessChain 34(data) 242 61 72
+             253: 21(int16_t) CompositeExtract 247 2
+                              Store 252 253
+             254:      6(int) Load 8(invocation)
+             255:    197(ptr) AccessChain 34(data) 76 61
+             256: 22(i16vec4) Load 255
              257:      6(int) Load 8(invocation)
-             258:253(i16vec3) GroupNonUniformShuffle 43 256 257
-             259:    243(ptr) AccessChain 34(data) 252 70
-             260: 24(i16vec4) Load 259
-             261: 24(i16vec4) VectorShuffle 260 258 4 5 6 3
-                              Store 259 261
-             262:      6(int) Load 8(invocation)
-             263:    243(ptr) AccessChain 34(data) 70 70
-             264: 24(i16vec4) Load 263
-             265:      6(int) Load 8(invocation)
-             266: 24(i16vec4) GroupNonUniformShuffle 43 264 265
-             267:    243(ptr) AccessChain 34(data) 262 70
-                              Store 267 266
-             268:      6(int) Load 8(invocation)
-             269:    235(ptr) AccessChain 34(data) 37 70 38
-             270: 23(int16_t) Load 269
-             271:      6(int) Load 8(invocation)
-             272: 23(int16_t) GroupNonUniformShuffleXor 43 270 271
-             273:    235(ptr) AccessChain 34(data) 268 70 38
-                              Store 273 272
-             274:      6(int) Load 8(invocation)
-             275:    243(ptr) AccessChain 34(data) 47 70
-             276: 24(i16vec4) Load 275
-             277:242(i16vec2) VectorShuffle 276 276 0 1
-             278:      6(int) Load 8(invocation)
-             279:242(i16vec2) GroupNonUniformShuffleXor 43 277 278
-             280:    243(ptr) AccessChain 34(data) 274 70
-             281: 24(i16vec4) Load 280
-             282: 24(i16vec4) VectorShuffle 281 279 4 5 2 3
-                              Store 280 282
-             283:      6(int) Load 8(invocation)
-             284:    243(ptr) AccessChain 34(data) 59 70
-             285: 24(i16vec4) Load 284
-             286:253(i16vec3) VectorShuffle 285 285 0 1 2
-             287:      6(int) Load 8(invocation)
-             288:253(i16vec3) GroupNonUniformShuffleXor 43 286 287
-             289:    243(ptr) AccessChain 34(data) 283 70
-             290: 24(i16vec4) Load 289
-             291: 24(i16vec4) VectorShuffle 290 288 4 5 6 3
-                              Store 289 291
+             258: 22(i16vec4) GroupNonUniformShuffleXor 43 256 257
+             259:    197(ptr) AccessChain 34(data) 254 61
+                              Store 259 258
+             260:      6(int) Load 8(invocation)
+             262:    261(ptr) AccessChain 34(data) 37 76 38
+             263: 23(int16_t) Load 262
+             264:      6(int) Load 8(invocation)
+             265: 23(int16_t) GroupNonUniformShuffle 43 263 264
+             266:    261(ptr) AccessChain 34(data) 260 76 38
+                              Store 266 265
+             267:      6(int) Load 8(invocation)
+             270:    269(ptr) AccessChain 34(data) 47 76
+             271: 24(i16vec4) Load 270
+             272:268(i16vec2) VectorShuffle 271 271 0 1
+             273:      6(int) Load 8(invocation)
+             274:268(i16vec2) GroupNonUniformShuffle 43 272 273
+             275:    261(ptr) AccessChain 34(data) 267 76 38
+             276: 23(int16_t) CompositeExtract 274 0
+                              Store 275 276
+             277:    261(ptr) AccessChain 34(data) 267 76 57
+             278: 23(int16_t) CompositeExtract 274 1
+                              Store 277 278
+             279:      6(int) Load 8(invocation)
+             281:    269(ptr) AccessChain 34(data) 61 76
+             282: 24(i16vec4) Load 281
+             283:280(i16vec3) VectorShuffle 282 282 0 1 2
+             284:      6(int) Load 8(invocation)
+             285:280(i16vec3) GroupNonUniformShuffle 43 283 284
+             286:    261(ptr) AccessChain 34(data) 279 76 38
+             287: 23(int16_t) CompositeExtract 285 0
+                              Store 286 287
+             288:    261(ptr) AccessChain 34(data) 279 76 57
+             289: 23(int16_t) CompositeExtract 285 1
+                              Store 288 289
+             290:    261(ptr) AccessChain 34(data) 279 76 72
+             291: 23(int16_t) CompositeExtract 285 2
+                              Store 290 291
              292:      6(int) Load 8(invocation)
-             293:    243(ptr) AccessChain 34(data) 70 70
+             293:    269(ptr) AccessChain 34(data) 76 76
              294: 24(i16vec4) Load 293
              295:      6(int) Load 8(invocation)
-             296: 24(i16vec4) GroupNonUniformShuffleXor 43 294 295
-             297:    243(ptr) AccessChain 34(data) 292 70
+             296: 24(i16vec4) GroupNonUniformShuffle 43 294 295
+             297:    269(ptr) AccessChain 34(data) 292 76
                               Store 297 296
              298:      6(int) Load 8(invocation)
-             301:    300(ptr) AccessChain 34(data) 37 299 38
-             302: 25(int64_t) Load 301
-             303:      6(int) Load 8(invocation)
-             304: 25(int64_t) GroupNonUniformShuffle 43 302 303
-             305:    300(ptr) AccessChain 34(data) 298 299 38
-                              Store 305 304
-             306:      6(int) Load 8(invocation)
-             309:    308(ptr) AccessChain 34(data) 47 299
-             310: 26(i64vec4) Load 309
-             311:307(i64vec2) VectorShuffle 310 310 0 1
-             312:      6(int) Load 8(invocation)
-             313:307(i64vec2) GroupNonUniformShuffle 43 311 312
-             314:    308(ptr) AccessChain 34(data) 306 299
-             315: 26(i64vec4) Load 314
-             316: 26(i64vec4) VectorShuffle 315 313 4 5 2 3
-                              Store 314 316
-             317:      6(int) Load 8(invocation)
-             319:    308(ptr) AccessChain 34(data) 59 299
-             320: 26(i64vec4) Load 319
-             321:318(i64vec3) VectorShuffle 320 320 0 1 2
-             322:      6(int) Load 8(invocation)
-             323:318(i64vec3) GroupNonUniformShuffle 43 321 322
-             324:    308(ptr) AccessChain 34(data) 317 299
-             325: 26(i64vec4) Load 324
-             326: 26(i64vec4) VectorShuffle 325 323 4 5 6 3
-                              Store 324 326
-             327:      6(int) Load 8(invocation)
-             328:    308(ptr) AccessChain 34(data) 70 299
-             329: 26(i64vec4) Load 328
-             330:      6(int) Load 8(invocation)
-             331: 26(i64vec4) GroupNonUniformShuffle 43 329 330
-             332:    308(ptr) AccessChain 34(data) 327 299
-                              Store 332 331
-             333:      6(int) Load 8(invocation)
-             334:    300(ptr) AccessChain 34(data) 37 299 38
-             335: 25(int64_t) Load 334
-             336:      6(int) Load 8(invocation)
-             337: 25(int64_t) GroupNonUniformShuffleXor 43 335 336
-             338:    300(ptr) AccessChain 34(data) 333 299 38
-                              Store 338 337
-             339:      6(int) Load 8(invocation)
-             340:    308(ptr) AccessChain 34(data) 47 299
-             341: 26(i64vec4) Load 340
-             342:307(i64vec2) VectorShuffle 341 341 0 1
-             343:      6(int) Load 8(invocation)
-             344:307(i64vec2) GroupNonUniformShuffleXor 43 342 343
-             345:    308(ptr) AccessChain 34(data) 339 299
-             346: 26(i64vec4) Load 345
-             347: 26(i64vec4) VectorShuffle 346 344 4 5 2 3
-                              Store 345 347
-             348:      6(int) Load 8(invocation)
-             349:    308(ptr) AccessChain 34(data) 59 299
-             350: 26(i64vec4) Load 349
-             351:318(i64vec3) VectorShuffle 350 350 0 1 2
+             299:    261(ptr) AccessChain 34(data) 37 76 38
+             300: 23(int16_t) Load 299
+             301:      6(int) Load 8(invocation)
+             302: 23(int16_t) GroupNonUniformShuffleXor 43 300 301
+             303:    261(ptr) AccessChain 34(data) 298 76 38
+                              Store 303 302
+             304:      6(int) Load 8(invocation)
+             305:    269(ptr) AccessChain 34(data) 47 76
+             306: 24(i16vec4) Load 305
+             307:268(i16vec2) VectorShuffle 306 306 0 1
+             308:      6(int) Load 8(invocation)
+             309:268(i16vec2) GroupNonUniformShuffleXor 43 307 308
+             310:    261(ptr) AccessChain 34(data) 304 76 38
+             311: 23(int16_t) CompositeExtract 309 0
+                              Store 310 311
+             312:    261(ptr) AccessChain 34(data) 304 76 57
+             313: 23(int16_t) CompositeExtract 309 1
+                              Store 312 313
+             314:      6(int) Load 8(invocation)
+             315:    269(ptr) AccessChain 34(data) 61 76
+             316: 24(i16vec4) Load 315
+             317:280(i16vec3) VectorShuffle 316 316 0 1 2
+             318:      6(int) Load 8(invocation)
+             319:280(i16vec3) GroupNonUniformShuffleXor 43 317 318
+             320:    261(ptr) AccessChain 34(data) 314 76 38
+             321: 23(int16_t) CompositeExtract 319 0
+                              Store 320 321
+             322:    261(ptr) AccessChain 34(data) 314 76 57
+             323: 23(int16_t) CompositeExtract 319 1
+                              Store 322 323
+             324:    261(ptr) AccessChain 34(data) 314 76 72
+             325: 23(int16_t) CompositeExtract 319 2
+                              Store 324 325
+             326:      6(int) Load 8(invocation)
+             327:    269(ptr) AccessChain 34(data) 76 76
+             328: 24(i16vec4) Load 327
+             329:      6(int) Load 8(invocation)
+             330: 24(i16vec4) GroupNonUniformShuffleXor 43 328 329
+             331:    269(ptr) AccessChain 34(data) 326 76
+                              Store 331 330
+             332:      6(int) Load 8(invocation)
+             335:    334(ptr) AccessChain 34(data) 37 333 38
+             336: 25(int64_t) Load 335
+             337:      6(int) Load 8(invocation)
+             338: 25(int64_t) GroupNonUniformShuffle 43 336 337
+             339:    334(ptr) AccessChain 34(data) 332 333 38
+                              Store 339 338
+             340:      6(int) Load 8(invocation)
+             343:    342(ptr) AccessChain 34(data) 47 333
+             344: 26(i64vec4) Load 343
+             345:341(i64vec2) VectorShuffle 344 344 0 1
+             346:      6(int) Load 8(invocation)
+             347:341(i64vec2) GroupNonUniformShuffle 43 345 346
+             348:    334(ptr) AccessChain 34(data) 340 333 38
+             349: 25(int64_t) CompositeExtract 347 0
+                              Store 348 349
+             350:    334(ptr) AccessChain 34(data) 340 333 57
+             351: 25(int64_t) CompositeExtract 347 1
+                              Store 350 351
              352:      6(int) Load 8(invocation)
-             353:318(i64vec3) GroupNonUniformShuffleXor 43 351 352
-             354:    308(ptr) AccessChain 34(data) 348 299
+             354:    342(ptr) AccessChain 34(data) 61 333
              355: 26(i64vec4) Load 354
-             356: 26(i64vec4) VectorShuffle 355 353 4 5 6 3
-                              Store 354 356
+             356:353(i64vec3) VectorShuffle 355 355 0 1 2
              357:      6(int) Load 8(invocation)
-             358:    308(ptr) AccessChain 34(data) 70 299
-             359: 26(i64vec4) Load 358
-             360:      6(int) Load 8(invocation)
-             361: 26(i64vec4) GroupNonUniformShuffleXor 43 359 360
-             362:    308(ptr) AccessChain 34(data) 357 299
-                              Store 362 361
-             363:      6(int) Load 8(invocation)
-             366:    365(ptr) AccessChain 34(data) 37 364 38
-             367: 27(int64_t) Load 366
+             358:353(i64vec3) GroupNonUniformShuffle 43 356 357
+             359:    334(ptr) AccessChain 34(data) 352 333 38
+             360: 25(int64_t) CompositeExtract 358 0
+                              Store 359 360
+             361:    334(ptr) AccessChain 34(data) 352 333 57
+             362: 25(int64_t) CompositeExtract 358 1
+                              Store 361 362
+             363:    334(ptr) AccessChain 34(data) 352 333 72
+             364: 25(int64_t) CompositeExtract 358 2
+                              Store 363 364
+             365:      6(int) Load 8(invocation)
+             366:    342(ptr) AccessChain 34(data) 76 333
+             367: 26(i64vec4) Load 366
              368:      6(int) Load 8(invocation)
-             369: 27(int64_t) GroupNonUniformShuffle 43 367 368
-             370:    365(ptr) AccessChain 34(data) 363 364 38
+             369: 26(i64vec4) GroupNonUniformShuffle 43 367 368
+             370:    342(ptr) AccessChain 34(data) 365 333
                               Store 370 369
              371:      6(int) Load 8(invocation)
-             374:    373(ptr) AccessChain 34(data) 47 364
-             375: 28(i64vec4) Load 374
-             376:372(i64vec2) VectorShuffle 375 375 0 1
+             372:    334(ptr) AccessChain 34(data) 37 333 38
+             373: 25(int64_t) Load 372
+             374:      6(int) Load 8(invocation)
+             375: 25(int64_t) GroupNonUniformShuffleXor 43 373 374
+             376:    334(ptr) AccessChain 34(data) 371 333 38
+                              Store 376 375
              377:      6(int) Load 8(invocation)
-             378:372(i64vec2) GroupNonUniformShuffle 43 376 377
-             379:    373(ptr) AccessChain 34(data) 371 364
-             380: 28(i64vec4) Load 379
-             381: 28(i64vec4) VectorShuffle 380 378 4 5 2 3
-                              Store 379 381
-             382:      6(int) Load 8(invocation)
-             384:    373(ptr) AccessChain 34(data) 59 364
-             385: 28(i64vec4) Load 384
-             386:383(i64vec3) VectorShuffle 385 385 0 1 2
+             378:    342(ptr) AccessChain 34(data) 47 333
+             379: 26(i64vec4) Load 378
+             380:341(i64vec2) VectorShuffle 379 379 0 1
+             381:      6(int) Load 8(invocation)
+             382:341(i64vec2) GroupNonUniformShuffleXor 43 380 381
+             383:    334(ptr) AccessChain 34(data) 377 333 38
+             384: 25(int64_t) CompositeExtract 382 0
+                              Store 383 384
+             385:    334(ptr) AccessChain 34(data) 377 333 57
+             386: 25(int64_t) CompositeExtract 382 1
+                              Store 385 386
              387:      6(int) Load 8(invocation)
-             388:383(i64vec3) GroupNonUniformShuffle 43 386 387
-             389:    373(ptr) AccessChain 34(data) 382 364
-             390: 28(i64vec4) Load 389
-             391: 28(i64vec4) VectorShuffle 390 388 4 5 6 3
-                              Store 389 391
-             392:      6(int) Load 8(invocation)
-             393:    373(ptr) AccessChain 34(data) 70 364
-             394: 28(i64vec4) Load 393
-             395:      6(int) Load 8(invocation)
-             396: 28(i64vec4) GroupNonUniformShuffle 43 394 395
-             397:    373(ptr) AccessChain 34(data) 392 364
-                              Store 397 396
-             398:      6(int) Load 8(invocation)
-             399:    365(ptr) AccessChain 34(data) 37 364 38
-             400: 27(int64_t) Load 399
-             401:      6(int) Load 8(invocation)
-             402: 27(int64_t) GroupNonUniformShuffleXor 43 400 401
-             403:    365(ptr) AccessChain 34(data) 398 364 38
-                              Store 403 402
-             404:      6(int) Load 8(invocation)
-             405:    373(ptr) AccessChain 34(data) 47 364
-             406: 28(i64vec4) Load 405
-             407:372(i64vec2) VectorShuffle 406 406 0 1
-             408:      6(int) Load 8(invocation)
-             409:372(i64vec2) GroupNonUniformShuffleXor 43 407 408
-             410:    373(ptr) AccessChain 34(data) 404 364
-             411: 28(i64vec4) Load 410
-             412: 28(i64vec4) VectorShuffle 411 409 4 5 2 3
-                              Store 410 412
+             388:    342(ptr) AccessChain 34(data) 61 333
+             389: 26(i64vec4) Load 388
+             390:353(i64vec3) VectorShuffle 389 389 0 1 2
+             391:      6(int) Load 8(invocation)
+             392:353(i64vec3) GroupNonUniformShuffleXor 43 390 391
+             393:    334(ptr) AccessChain 34(data) 387 333 38
+             394: 25(int64_t) CompositeExtract 392 0
+                              Store 393 394
+             395:    334(ptr) AccessChain 34(data) 387 333 57
+             396: 25(int64_t) CompositeExtract 392 1
+                              Store 395 396
+             397:    334(ptr) AccessChain 34(data) 387 333 72
+             398: 25(int64_t) CompositeExtract 392 2
+                              Store 397 398
+             399:      6(int) Load 8(invocation)
+             400:    342(ptr) AccessChain 34(data) 76 333
+             401: 26(i64vec4) Load 400
+             402:      6(int) Load 8(invocation)
+             403: 26(i64vec4) GroupNonUniformShuffleXor 43 401 402
+             404:    342(ptr) AccessChain 34(data) 399 333
+                              Store 404 403
+             405:      6(int) Load 8(invocation)
+             408:    407(ptr) AccessChain 34(data) 37 406 38
+             409: 27(int64_t) Load 408
+             410:      6(int) Load 8(invocation)
+             411: 27(int64_t) GroupNonUniformShuffle 43 409 410
+             412:    407(ptr) AccessChain 34(data) 405 406 38
+                              Store 412 411
              413:      6(int) Load 8(invocation)
-             414:    373(ptr) AccessChain 34(data) 59 364
-             415: 28(i64vec4) Load 414
-             416:383(i64vec3) VectorShuffle 415 415 0 1 2
-             417:      6(int) Load 8(invocation)
-             418:383(i64vec3) GroupNonUniformShuffleXor 43 416 417
-             419:    373(ptr) AccessChain 34(data) 413 364
-             420: 28(i64vec4) Load 419
-             421: 28(i64vec4) VectorShuffle 420 418 4 5 6 3
-                              Store 419 421
-             422:      6(int) Load 8(invocation)
-             423:    373(ptr) AccessChain 34(data) 70 364
-             424: 28(i64vec4) Load 423
+             416:    415(ptr) AccessChain 34(data) 47 406
+             417: 28(i64vec4) Load 416
+             418:414(i64vec2) VectorShuffle 417 417 0 1
+             419:      6(int) Load 8(invocation)
+             420:414(i64vec2) GroupNonUniformShuffle 43 418 419
+             421:    407(ptr) AccessChain 34(data) 413 406 38
+             422: 27(int64_t) CompositeExtract 420 0
+                              Store 421 422
+             423:    407(ptr) AccessChain 34(data) 413 406 57
+             424: 27(int64_t) CompositeExtract 420 1
+                              Store 423 424
              425:      6(int) Load 8(invocation)
-             426: 28(i64vec4) GroupNonUniformShuffleXor 43 424 425
-             427:    373(ptr) AccessChain 34(data) 422 364
-                              Store 427 426
-             428:      6(int) Load 8(invocation)
-             431:    430(ptr) AccessChain 34(data) 37 429 38
-             432:29(float16_t) Load 431
-             433:      6(int) Load 8(invocation)
-             434:29(float16_t) GroupNonUniformShuffle 43 432 433
-             435:    430(ptr) AccessChain 34(data) 428 429 38
-                              Store 435 434
-             436:      6(int) Load 8(invocation)
-             439:    438(ptr) AccessChain 34(data) 47 429
-             440: 30(f16vec4) Load 439
-             441:437(f16vec2) VectorShuffle 440 440 0 1
-             442:      6(int) Load 8(invocation)
-             443:437(f16vec2) GroupNonUniformShuffle 43 441 442
-             444:    438(ptr) AccessChain 34(data) 436 429
-             445: 30(f16vec4) Load 444
-             446: 30(f16vec4) VectorShuffle 445 443 4 5 2 3
-                              Store 444 446
+             427:    415(ptr) AccessChain 34(data) 61 406
+             428: 28(i64vec4) Load 427
+             429:426(i64vec3) VectorShuffle 428 428 0 1 2
+             430:      6(int) Load 8(invocation)
+             431:426(i64vec3) GroupNonUniformShuffle 43 429 430
+             432:    407(ptr) AccessChain 34(data) 425 406 38
+             433: 27(int64_t) CompositeExtract 431 0
+                              Store 432 433
+             434:    407(ptr) AccessChain 34(data) 425 406 57
+             435: 27(int64_t) CompositeExtract 431 1
+                              Store 434 435
+             436:    407(ptr) AccessChain 34(data) 425 406 72
+             437: 27(int64_t) CompositeExtract 431 2
+                              Store 436 437
+             438:      6(int) Load 8(invocation)
+             439:    415(ptr) AccessChain 34(data) 76 406
+             440: 28(i64vec4) Load 439
+             441:      6(int) Load 8(invocation)
+             442: 28(i64vec4) GroupNonUniformShuffle 43 440 441
+             443:    415(ptr) AccessChain 34(data) 438 406
+                              Store 443 442
+             444:      6(int) Load 8(invocation)
+             445:    407(ptr) AccessChain 34(data) 37 406 38
+             446: 27(int64_t) Load 445
              447:      6(int) Load 8(invocation)
-             449:    438(ptr) AccessChain 34(data) 59 429
-             450: 30(f16vec4) Load 449
-             451:448(f16vec3) VectorShuffle 450 450 0 1 2
-             452:      6(int) Load 8(invocation)
-             453:448(f16vec3) GroupNonUniformShuffle 43 451 452
-             454:    438(ptr) AccessChain 34(data) 447 429
-             455: 30(f16vec4) Load 454
-             456: 30(f16vec4) VectorShuffle 455 453 4 5 6 3
-                              Store 454 456
-             457:      6(int) Load 8(invocation)
-             458:    438(ptr) AccessChain 34(data) 70 429
-             459: 30(f16vec4) Load 458
+             448: 27(int64_t) GroupNonUniformShuffleXor 43 446 447
+             449:    407(ptr) AccessChain 34(data) 444 406 38
+                              Store 449 448
+             450:      6(int) Load 8(invocation)
+             451:    415(ptr) AccessChain 34(data) 47 406
+             452: 28(i64vec4) Load 451
+             453:414(i64vec2) VectorShuffle 452 452 0 1
+             454:      6(int) Load 8(invocation)
+             455:414(i64vec2) GroupNonUniformShuffleXor 43 453 454
+             456:    407(ptr) AccessChain 34(data) 450 406 38
+             457: 27(int64_t) CompositeExtract 455 0
+                              Store 456 457
+             458:    407(ptr) AccessChain 34(data) 450 406 57
+             459: 27(int64_t) CompositeExtract 455 1
+                              Store 458 459
              460:      6(int) Load 8(invocation)
-             461: 30(f16vec4) GroupNonUniformShuffle 43 459 460
-             462:    438(ptr) AccessChain 34(data) 457 429
-                              Store 462 461
-             463:      6(int) Load 8(invocation)
-             464:    430(ptr) AccessChain 34(data) 37 429 38
-             465:29(float16_t) Load 464
-             466:      6(int) Load 8(invocation)
-             467:29(float16_t) GroupNonUniformShuffleXor 43 465 466
-             468:    430(ptr) AccessChain 34(data) 463 429 38
-                              Store 468 467
-             469:      6(int) Load 8(invocation)
-             470:    438(ptr) AccessChain 34(data) 47 429
-             471: 30(f16vec4) Load 470
-             472:437(f16vec2) VectorShuffle 471 471 0 1
-             473:      6(int) Load 8(invocation)
-             474:437(f16vec2) GroupNonUniformShuffleXor 43 472 473
-             475:    438(ptr) AccessChain 34(data) 469 429
-             476: 30(f16vec4) Load 475
-             477: 30(f16vec4) VectorShuffle 476 474 4 5 2 3
-                              Store 475 477
+             461:    415(ptr) AccessChain 34(data) 61 406
+             462: 28(i64vec4) Load 461
+             463:426(i64vec3) VectorShuffle 462 462 0 1 2
+             464:      6(int) Load 8(invocation)
+             465:426(i64vec3) GroupNonUniformShuffleXor 43 463 464
+             466:    407(ptr) AccessChain 34(data) 460 406 38
+             467: 27(int64_t) CompositeExtract 465 0
+                              Store 466 467
+             468:    407(ptr) AccessChain 34(data) 460 406 57
+             469: 27(int64_t) CompositeExtract 465 1
+                              Store 468 469
+             470:    407(ptr) AccessChain 34(data) 460 406 72
+             471: 27(int64_t) CompositeExtract 465 2
+                              Store 470 471
+             472:      6(int) Load 8(invocation)
+             473:    415(ptr) AccessChain 34(data) 76 406
+             474: 28(i64vec4) Load 473
+             475:      6(int) Load 8(invocation)
+             476: 28(i64vec4) GroupNonUniformShuffleXor 43 474 475
+             477:    415(ptr) AccessChain 34(data) 472 406
+                              Store 477 476
              478:      6(int) Load 8(invocation)
-             479:    438(ptr) AccessChain 34(data) 59 429
-             480: 30(f16vec4) Load 479
-             481:448(f16vec3) VectorShuffle 480 480 0 1 2
-             482:      6(int) Load 8(invocation)
-             483:448(f16vec3) GroupNonUniformShuffleXor 43 481 482
-             484:    438(ptr) AccessChain 34(data) 478 429
-             485: 30(f16vec4) Load 484
-             486: 30(f16vec4) VectorShuffle 485 483 4 5 6 3
-                              Store 484 486
-             487:      6(int) Load 8(invocation)
-             488:    438(ptr) AccessChain 34(data) 70 429
-             489: 30(f16vec4) Load 488
-             490:      6(int) Load 8(invocation)
-             491: 30(f16vec4) GroupNonUniformShuffleXor 43 489 490
-             492:    438(ptr) AccessChain 34(data) 487 429
-                              Store 492 491
+             481:    480(ptr) AccessChain 34(data) 37 479 38
+             482:29(float16_t) Load 481
+             483:      6(int) Load 8(invocation)
+             484:29(float16_t) GroupNonUniformShuffle 43 482 483
+             485:    480(ptr) AccessChain 34(data) 478 479 38
+                              Store 485 484
+             486:      6(int) Load 8(invocation)
+             489:    488(ptr) AccessChain 34(data) 47 479
+             490: 30(f16vec4) Load 489
+             491:487(f16vec2) VectorShuffle 490 490 0 1
+             492:      6(int) Load 8(invocation)
+             493:487(f16vec2) GroupNonUniformShuffle 43 491 492
+             494:    480(ptr) AccessChain 34(data) 486 479 38
+             495:29(float16_t) CompositeExtract 493 0
+                              Store 494 495
+             496:    480(ptr) AccessChain 34(data) 486 479 57
+             497:29(float16_t) CompositeExtract 493 1
+                              Store 496 497
+             498:      6(int) Load 8(invocation)
+             500:    488(ptr) AccessChain 34(data) 61 479
+             501: 30(f16vec4) Load 500
+             502:499(f16vec3) VectorShuffle 501 501 0 1 2
+             503:      6(int) Load 8(invocation)
+             504:499(f16vec3) GroupNonUniformShuffle 43 502 503
+             505:    480(ptr) AccessChain 34(data) 498 479 38
+             506:29(float16_t) CompositeExtract 504 0
+                              Store 505 506
+             507:    480(ptr) AccessChain 34(data) 498 479 57
+             508:29(float16_t) CompositeExtract 504 1
+                              Store 507 508
+             509:    480(ptr) AccessChain 34(data) 498 479 72
+             510:29(float16_t) CompositeExtract 504 2
+                              Store 509 510
+             511:      6(int) Load 8(invocation)
+             512:    488(ptr) AccessChain 34(data) 76 479
+             513: 30(f16vec4) Load 512
+             514:      6(int) Load 8(invocation)
+             515: 30(f16vec4) GroupNonUniformShuffle 43 513 514
+             516:    488(ptr) AccessChain 34(data) 511 479
+                              Store 516 515
+             517:      6(int) Load 8(invocation)
+             518:    480(ptr) AccessChain 34(data) 37 479 38
+             519:29(float16_t) Load 518
+             520:      6(int) Load 8(invocation)
+             521:29(float16_t) GroupNonUniformShuffleXor 43 519 520
+             522:    480(ptr) AccessChain 34(data) 517 479 38
+                              Store 522 521
+             523:      6(int) Load 8(invocation)
+             524:    488(ptr) AccessChain 34(data) 47 479
+             525: 30(f16vec4) Load 524
+             526:487(f16vec2) VectorShuffle 525 525 0 1
+             527:      6(int) Load 8(invocation)
+             528:487(f16vec2) GroupNonUniformShuffleXor 43 526 527
+             529:    480(ptr) AccessChain 34(data) 523 479 38
+             530:29(float16_t) CompositeExtract 528 0
+                              Store 529 530
+             531:    480(ptr) AccessChain 34(data) 523 479 57
+             532:29(float16_t) CompositeExtract 528 1
+                              Store 531 532
+             533:      6(int) Load 8(invocation)
+             534:    488(ptr) AccessChain 34(data) 61 479
+             535: 30(f16vec4) Load 534
+             536:499(f16vec3) VectorShuffle 535 535 0 1 2
+             537:      6(int) Load 8(invocation)
+             538:499(f16vec3) GroupNonUniformShuffleXor 43 536 537
+             539:    480(ptr) AccessChain 34(data) 533 479 38
+             540:29(float16_t) CompositeExtract 538 0
+                              Store 539 540
+             541:    480(ptr) AccessChain 34(data) 533 479 57
+             542:29(float16_t) CompositeExtract 538 1
+                              Store 541 542
+             543:    480(ptr) AccessChain 34(data) 533 479 72
+             544:29(float16_t) CompositeExtract 538 2
+                              Store 543 544
+             545:      6(int) Load 8(invocation)
+             546:    488(ptr) AccessChain 34(data) 76 479
+             547: 30(f16vec4) Load 546
+             548:      6(int) Load 8(invocation)
+             549: 30(f16vec4) GroupNonUniformShuffleXor 43 547 548
+             550:    488(ptr) AccessChain 34(data) 545 479
+                              Store 550 549
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out b/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out
index d847be5..8665c46 100644
--- a/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out
+++ b/Test/baseResults/spv.subgroupExtendedTypesShuffleRelative.comp.out
@@ -1,7 +1,7 @@
 spv.subgroupExtendedTypesShuffleRelative.comp
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 497
+// Id's are bound by 554
 
                               Capability Shader
                               Capability Float16
@@ -59,7 +59,7 @@
                               Decorate 31(Buffers) Block
                               Decorate 34(data) DescriptorSet 0
                               Decorate 34(data) Binding 0
-                              Decorate 496 BuiltIn WorkgroupSize
+                              Decorate 553 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -94,40 +94,41 @@
               47:     36(int) Constant 1
               48:             TypeVector 17(int8_t) 2
               49:             TypePointer StorageBuffer 18(i8vec4)
-              59:     36(int) Constant 2
-              60:             TypeVector 17(int8_t) 3
-              70:     36(int) Constant 3
-             107:             TypePointer StorageBuffer 19(int8_t)
-             114:             TypeVector 19(int8_t) 2
-             115:             TypePointer StorageBuffer 20(i8vec4)
-             125:             TypeVector 19(int8_t) 3
-             171:             TypePointer StorageBuffer 21(int16_t)
-             178:             TypeVector 21(int16_t) 2
-             179:             TypePointer StorageBuffer 22(i16vec4)
-             189:             TypeVector 21(int16_t) 3
-             235:             TypePointer StorageBuffer 23(int16_t)
-             242:             TypeVector 23(int16_t) 2
-             243:             TypePointer StorageBuffer 24(i16vec4)
-             253:             TypeVector 23(int16_t) 3
-             299:     36(int) Constant 4
-             300:             TypePointer StorageBuffer 25(int64_t)
-             307:             TypeVector 25(int64_t) 2
-             308:             TypePointer StorageBuffer 26(i64vec4)
-             318:             TypeVector 25(int64_t) 3
-             364:     36(int) Constant 5
-             365:             TypePointer StorageBuffer 27(int64_t)
-             372:             TypeVector 27(int64_t) 2
-             373:             TypePointer StorageBuffer 28(i64vec4)
-             383:             TypeVector 27(int64_t) 3
-             429:     36(int) Constant 6
-             430:             TypePointer StorageBuffer 29(float16_t)
-             437:             TypeVector 29(float16_t) 2
-             438:             TypePointer StorageBuffer 30(f16vec4)
-             448:             TypeVector 29(float16_t) 3
-             493:             TypeVector 6(int) 3
-             494:      6(int) Constant 8
-             495:      6(int) Constant 1
-             496:  493(ivec3) ConstantComposite 494 495 495
+              57:      6(int) Constant 1
+              61:     36(int) Constant 2
+              62:             TypeVector 17(int8_t) 3
+              72:      6(int) Constant 2
+              76:     36(int) Constant 3
+             117:             TypePointer StorageBuffer 19(int8_t)
+             124:             TypeVector 19(int8_t) 2
+             125:             TypePointer StorageBuffer 20(i8vec4)
+             136:             TypeVector 19(int8_t) 3
+             189:             TypePointer StorageBuffer 21(int16_t)
+             196:             TypeVector 21(int16_t) 2
+             197:             TypePointer StorageBuffer 22(i16vec4)
+             208:             TypeVector 21(int16_t) 3
+             261:             TypePointer StorageBuffer 23(int16_t)
+             268:             TypeVector 23(int16_t) 2
+             269:             TypePointer StorageBuffer 24(i16vec4)
+             280:             TypeVector 23(int16_t) 3
+             333:     36(int) Constant 4
+             334:             TypePointer StorageBuffer 25(int64_t)
+             341:             TypeVector 25(int64_t) 2
+             342:             TypePointer StorageBuffer 26(i64vec4)
+             353:             TypeVector 25(int64_t) 3
+             406:     36(int) Constant 5
+             407:             TypePointer StorageBuffer 27(int64_t)
+             414:             TypeVector 27(int64_t) 2
+             415:             TypePointer StorageBuffer 28(i64vec4)
+             426:             TypeVector 27(int64_t) 3
+             479:     36(int) Constant 6
+             480:             TypePointer StorageBuffer 29(float16_t)
+             487:             TypeVector 29(float16_t) 2
+             488:             TypePointer StorageBuffer 30(f16vec4)
+             499:             TypeVector 29(float16_t) 3
+             551:             TypeVector 6(int) 3
+             552:      6(int) Constant 8
+             553:  551(ivec3) ConstantComposite 552 57 57
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -149,468 +150,566 @@
               52:  48(i8vec2) VectorShuffle 51 51 0 1
               53:      6(int) Load 8(invocation)
               54:  48(i8vec2) GroupNonUniformShuffleUp 43 52 53
-              55:     49(ptr) AccessChain 34(data) 46 37
-              56:  18(i8vec4) Load 55
-              57:  18(i8vec4) VectorShuffle 56 54 4 5 2 3
-                              Store 55 57
-              58:      6(int) Load 8(invocation)
-              61:     49(ptr) AccessChain 34(data) 59 37
-              62:  18(i8vec4) Load 61
-              63:  60(i8vec3) VectorShuffle 62 62 0 1 2
-              64:      6(int) Load 8(invocation)
-              65:  60(i8vec3) GroupNonUniformShuffleUp 43 63 64
-              66:     49(ptr) AccessChain 34(data) 58 37
-              67:  18(i8vec4) Load 66
-              68:  18(i8vec4) VectorShuffle 67 65 4 5 6 3
-                              Store 66 68
-              69:      6(int) Load 8(invocation)
-              71:     49(ptr) AccessChain 34(data) 70 37
-              72:  18(i8vec4) Load 71
-              73:      6(int) Load 8(invocation)
-              74:  18(i8vec4) GroupNonUniformShuffleUp 43 72 73
-              75:     49(ptr) AccessChain 34(data) 69 37
-                              Store 75 74
-              76:      6(int) Load 8(invocation)
-              77:     39(ptr) AccessChain 34(data) 37 37 38
-              78:  17(int8_t) Load 77
+              55:     39(ptr) AccessChain 34(data) 46 37 38
+              56:  17(int8_t) CompositeExtract 54 0
+                              Store 55 56
+              58:     39(ptr) AccessChain 34(data) 46 37 57
+              59:  17(int8_t) CompositeExtract 54 1
+                              Store 58 59
+              60:      6(int) Load 8(invocation)
+              63:     49(ptr) AccessChain 34(data) 61 37
+              64:  18(i8vec4) Load 63
+              65:  62(i8vec3) VectorShuffle 64 64 0 1 2
+              66:      6(int) Load 8(invocation)
+              67:  62(i8vec3) GroupNonUniformShuffleUp 43 65 66
+              68:     39(ptr) AccessChain 34(data) 60 37 38
+              69:  17(int8_t) CompositeExtract 67 0
+                              Store 68 69
+              70:     39(ptr) AccessChain 34(data) 60 37 57
+              71:  17(int8_t) CompositeExtract 67 1
+                              Store 70 71
+              73:     39(ptr) AccessChain 34(data) 60 37 72
+              74:  17(int8_t) CompositeExtract 67 2
+                              Store 73 74
+              75:      6(int) Load 8(invocation)
+              77:     49(ptr) AccessChain 34(data) 76 37
+              78:  18(i8vec4) Load 77
               79:      6(int) Load 8(invocation)
-              80:  17(int8_t) GroupNonUniformShuffleDown 43 78 79
-              81:     39(ptr) AccessChain 34(data) 76 37 38
+              80:  18(i8vec4) GroupNonUniformShuffleUp 43 78 79
+              81:     49(ptr) AccessChain 34(data) 75 37
                               Store 81 80
               82:      6(int) Load 8(invocation)
-              83:     49(ptr) AccessChain 34(data) 47 37
-              84:  18(i8vec4) Load 83
-              85:  48(i8vec2) VectorShuffle 84 84 0 1
-              86:      6(int) Load 8(invocation)
-              87:  48(i8vec2) GroupNonUniformShuffleDown 43 85 86
-              88:     49(ptr) AccessChain 34(data) 82 37
-              89:  18(i8vec4) Load 88
-              90:  18(i8vec4) VectorShuffle 89 87 4 5 2 3
-                              Store 88 90
-              91:      6(int) Load 8(invocation)
-              92:     49(ptr) AccessChain 34(data) 59 37
-              93:  18(i8vec4) Load 92
-              94:  60(i8vec3) VectorShuffle 93 93 0 1 2
-              95:      6(int) Load 8(invocation)
-              96:  60(i8vec3) GroupNonUniformShuffleDown 43 94 95
-              97:     49(ptr) AccessChain 34(data) 91 37
-              98:  18(i8vec4) Load 97
-              99:  18(i8vec4) VectorShuffle 98 96 4 5 6 3
-                              Store 97 99
-             100:      6(int) Load 8(invocation)
-             101:     49(ptr) AccessChain 34(data) 70 37
-             102:  18(i8vec4) Load 101
-             103:      6(int) Load 8(invocation)
-             104:  18(i8vec4) GroupNonUniformShuffleDown 43 102 103
-             105:     49(ptr) AccessChain 34(data) 100 37
-                              Store 105 104
-             106:      6(int) Load 8(invocation)
-             108:    107(ptr) AccessChain 34(data) 37 47 38
-             109:  19(int8_t) Load 108
+              83:     39(ptr) AccessChain 34(data) 37 37 38
+              84:  17(int8_t) Load 83
+              85:      6(int) Load 8(invocation)
+              86:  17(int8_t) GroupNonUniformShuffleDown 43 84 85
+              87:     39(ptr) AccessChain 34(data) 82 37 38
+                              Store 87 86
+              88:      6(int) Load 8(invocation)
+              89:     49(ptr) AccessChain 34(data) 47 37
+              90:  18(i8vec4) Load 89
+              91:  48(i8vec2) VectorShuffle 90 90 0 1
+              92:      6(int) Load 8(invocation)
+              93:  48(i8vec2) GroupNonUniformShuffleDown 43 91 92
+              94:     39(ptr) AccessChain 34(data) 88 37 38
+              95:  17(int8_t) CompositeExtract 93 0
+                              Store 94 95
+              96:     39(ptr) AccessChain 34(data) 88 37 57
+              97:  17(int8_t) CompositeExtract 93 1
+                              Store 96 97
+              98:      6(int) Load 8(invocation)
+              99:     49(ptr) AccessChain 34(data) 61 37
+             100:  18(i8vec4) Load 99
+             101:  62(i8vec3) VectorShuffle 100 100 0 1 2
+             102:      6(int) Load 8(invocation)
+             103:  62(i8vec3) GroupNonUniformShuffleDown 43 101 102
+             104:     39(ptr) AccessChain 34(data) 98 37 38
+             105:  17(int8_t) CompositeExtract 103 0
+                              Store 104 105
+             106:     39(ptr) AccessChain 34(data) 98 37 57
+             107:  17(int8_t) CompositeExtract 103 1
+                              Store 106 107
+             108:     39(ptr) AccessChain 34(data) 98 37 72
+             109:  17(int8_t) CompositeExtract 103 2
+                              Store 108 109
              110:      6(int) Load 8(invocation)
-             111:  19(int8_t) GroupNonUniformShuffleUp 43 109 110
-             112:    107(ptr) AccessChain 34(data) 106 47 38
-                              Store 112 111
+             111:     49(ptr) AccessChain 34(data) 76 37
+             112:  18(i8vec4) Load 111
              113:      6(int) Load 8(invocation)
-             116:    115(ptr) AccessChain 34(data) 47 47
-             117:  20(i8vec4) Load 116
-             118: 114(i8vec2) VectorShuffle 117 117 0 1
-             119:      6(int) Load 8(invocation)
-             120: 114(i8vec2) GroupNonUniformShuffleUp 43 118 119
-             121:    115(ptr) AccessChain 34(data) 113 47
-             122:  20(i8vec4) Load 121
-             123:  20(i8vec4) VectorShuffle 122 120 4 5 2 3
-                              Store 121 123
-             124:      6(int) Load 8(invocation)
-             126:    115(ptr) AccessChain 34(data) 59 47
+             114:  18(i8vec4) GroupNonUniformShuffleDown 43 112 113
+             115:     49(ptr) AccessChain 34(data) 110 37
+                              Store 115 114
+             116:      6(int) Load 8(invocation)
+             118:    117(ptr) AccessChain 34(data) 37 47 38
+             119:  19(int8_t) Load 118
+             120:      6(int) Load 8(invocation)
+             121:  19(int8_t) GroupNonUniformShuffleUp 43 119 120
+             122:    117(ptr) AccessChain 34(data) 116 47 38
+                              Store 122 121
+             123:      6(int) Load 8(invocation)
+             126:    125(ptr) AccessChain 34(data) 47 47
              127:  20(i8vec4) Load 126
-             128: 125(i8vec3) VectorShuffle 127 127 0 1 2
+             128: 124(i8vec2) VectorShuffle 127 127 0 1
              129:      6(int) Load 8(invocation)
-             130: 125(i8vec3) GroupNonUniformShuffleUp 43 128 129
-             131:    115(ptr) AccessChain 34(data) 124 47
-             132:  20(i8vec4) Load 131
-             133:  20(i8vec4) VectorShuffle 132 130 4 5 6 3
-                              Store 131 133
-             134:      6(int) Load 8(invocation)
-             135:    115(ptr) AccessChain 34(data) 70 47
-             136:  20(i8vec4) Load 135
-             137:      6(int) Load 8(invocation)
-             138:  20(i8vec4) GroupNonUniformShuffleUp 43 136 137
-             139:    115(ptr) AccessChain 34(data) 134 47
-                              Store 139 138
+             130: 124(i8vec2) GroupNonUniformShuffleUp 43 128 129
+             131:    117(ptr) AccessChain 34(data) 123 47 38
+             132:  19(int8_t) CompositeExtract 130 0
+                              Store 131 132
+             133:    117(ptr) AccessChain 34(data) 123 47 57
+             134:  19(int8_t) CompositeExtract 130 1
+                              Store 133 134
+             135:      6(int) Load 8(invocation)
+             137:    125(ptr) AccessChain 34(data) 61 47
+             138:  20(i8vec4) Load 137
+             139: 136(i8vec3) VectorShuffle 138 138 0 1 2
              140:      6(int) Load 8(invocation)
-             141:    107(ptr) AccessChain 34(data) 37 47 38
-             142:  19(int8_t) Load 141
-             143:      6(int) Load 8(invocation)
-             144:  19(int8_t) GroupNonUniformShuffleDown 43 142 143
-             145:    107(ptr) AccessChain 34(data) 140 47 38
-                              Store 145 144
-             146:      6(int) Load 8(invocation)
-             147:    115(ptr) AccessChain 34(data) 47 47
-             148:  20(i8vec4) Load 147
-             149: 114(i8vec2) VectorShuffle 148 148 0 1
-             150:      6(int) Load 8(invocation)
-             151: 114(i8vec2) GroupNonUniformShuffleDown 43 149 150
-             152:    115(ptr) AccessChain 34(data) 146 47
-             153:  20(i8vec4) Load 152
-             154:  20(i8vec4) VectorShuffle 153 151 4 5 2 3
-                              Store 152 154
-             155:      6(int) Load 8(invocation)
-             156:    115(ptr) AccessChain 34(data) 59 47
-             157:  20(i8vec4) Load 156
-             158: 125(i8vec3) VectorShuffle 157 157 0 1 2
-             159:      6(int) Load 8(invocation)
-             160: 125(i8vec3) GroupNonUniformShuffleDown 43 158 159
-             161:    115(ptr) AccessChain 34(data) 155 47
+             141: 136(i8vec3) GroupNonUniformShuffleUp 43 139 140
+             142:    117(ptr) AccessChain 34(data) 135 47 38
+             143:  19(int8_t) CompositeExtract 141 0
+                              Store 142 143
+             144:    117(ptr) AccessChain 34(data) 135 47 57
+             145:  19(int8_t) CompositeExtract 141 1
+                              Store 144 145
+             146:    117(ptr) AccessChain 34(data) 135 47 72
+             147:  19(int8_t) CompositeExtract 141 2
+                              Store 146 147
+             148:      6(int) Load 8(invocation)
+             149:    125(ptr) AccessChain 34(data) 76 47
+             150:  20(i8vec4) Load 149
+             151:      6(int) Load 8(invocation)
+             152:  20(i8vec4) GroupNonUniformShuffleUp 43 150 151
+             153:    125(ptr) AccessChain 34(data) 148 47
+                              Store 153 152
+             154:      6(int) Load 8(invocation)
+             155:    117(ptr) AccessChain 34(data) 37 47 38
+             156:  19(int8_t) Load 155
+             157:      6(int) Load 8(invocation)
+             158:  19(int8_t) GroupNonUniformShuffleDown 43 156 157
+             159:    117(ptr) AccessChain 34(data) 154 47 38
+                              Store 159 158
+             160:      6(int) Load 8(invocation)
+             161:    125(ptr) AccessChain 34(data) 47 47
              162:  20(i8vec4) Load 161
-             163:  20(i8vec4) VectorShuffle 162 160 4 5 6 3
-                              Store 161 163
+             163: 124(i8vec2) VectorShuffle 162 162 0 1
              164:      6(int) Load 8(invocation)
-             165:    115(ptr) AccessChain 34(data) 70 47
-             166:  20(i8vec4) Load 165
-             167:      6(int) Load 8(invocation)
-             168:  20(i8vec4) GroupNonUniformShuffleDown 43 166 167
-             169:    115(ptr) AccessChain 34(data) 164 47
-                              Store 169 168
+             165: 124(i8vec2) GroupNonUniformShuffleDown 43 163 164
+             166:    117(ptr) AccessChain 34(data) 160 47 38
+             167:  19(int8_t) CompositeExtract 165 0
+                              Store 166 167
+             168:    117(ptr) AccessChain 34(data) 160 47 57
+             169:  19(int8_t) CompositeExtract 165 1
+                              Store 168 169
              170:      6(int) Load 8(invocation)
-             172:    171(ptr) AccessChain 34(data) 37 59 38
-             173: 21(int16_t) Load 172
+             171:    125(ptr) AccessChain 34(data) 61 47
+             172:  20(i8vec4) Load 171
+             173: 136(i8vec3) VectorShuffle 172 172 0 1 2
              174:      6(int) Load 8(invocation)
-             175: 21(int16_t) GroupNonUniformShuffleUp 43 173 174
-             176:    171(ptr) AccessChain 34(data) 170 59 38
-                              Store 176 175
-             177:      6(int) Load 8(invocation)
-             180:    179(ptr) AccessChain 34(data) 47 59
-             181: 22(i16vec4) Load 180
-             182:178(i16vec2) VectorShuffle 181 181 0 1
-             183:      6(int) Load 8(invocation)
-             184:178(i16vec2) GroupNonUniformShuffleUp 43 182 183
-             185:    179(ptr) AccessChain 34(data) 177 59
-             186: 22(i16vec4) Load 185
-             187: 22(i16vec4) VectorShuffle 186 184 4 5 2 3
-                              Store 185 187
+             175: 136(i8vec3) GroupNonUniformShuffleDown 43 173 174
+             176:    117(ptr) AccessChain 34(data) 170 47 38
+             177:  19(int8_t) CompositeExtract 175 0
+                              Store 176 177
+             178:    117(ptr) AccessChain 34(data) 170 47 57
+             179:  19(int8_t) CompositeExtract 175 1
+                              Store 178 179
+             180:    117(ptr) AccessChain 34(data) 170 47 72
+             181:  19(int8_t) CompositeExtract 175 2
+                              Store 180 181
+             182:      6(int) Load 8(invocation)
+             183:    125(ptr) AccessChain 34(data) 76 47
+             184:  20(i8vec4) Load 183
+             185:      6(int) Load 8(invocation)
+             186:  20(i8vec4) GroupNonUniformShuffleDown 43 184 185
+             187:    125(ptr) AccessChain 34(data) 182 47
+                              Store 187 186
              188:      6(int) Load 8(invocation)
-             190:    179(ptr) AccessChain 34(data) 59 59
-             191: 22(i16vec4) Load 190
-             192:189(i16vec3) VectorShuffle 191 191 0 1 2
-             193:      6(int) Load 8(invocation)
-             194:189(i16vec3) GroupNonUniformShuffleUp 43 192 193
-             195:    179(ptr) AccessChain 34(data) 188 59
-             196: 22(i16vec4) Load 195
-             197: 22(i16vec4) VectorShuffle 196 194 4 5 6 3
-                              Store 195 197
-             198:      6(int) Load 8(invocation)
-             199:    179(ptr) AccessChain 34(data) 70 59
-             200: 22(i16vec4) Load 199
+             190:    189(ptr) AccessChain 34(data) 37 61 38
+             191: 21(int16_t) Load 190
+             192:      6(int) Load 8(invocation)
+             193: 21(int16_t) GroupNonUniformShuffleUp 43 191 192
+             194:    189(ptr) AccessChain 34(data) 188 61 38
+                              Store 194 193
+             195:      6(int) Load 8(invocation)
+             198:    197(ptr) AccessChain 34(data) 47 61
+             199: 22(i16vec4) Load 198
+             200:196(i16vec2) VectorShuffle 199 199 0 1
              201:      6(int) Load 8(invocation)
-             202: 22(i16vec4) GroupNonUniformShuffleUp 43 200 201
-             203:    179(ptr) AccessChain 34(data) 198 59
-                              Store 203 202
-             204:      6(int) Load 8(invocation)
-             205:    171(ptr) AccessChain 34(data) 37 59 38
-             206: 21(int16_t) Load 205
+             202:196(i16vec2) GroupNonUniformShuffleUp 43 200 201
+             203:    189(ptr) AccessChain 34(data) 195 61 38
+             204: 21(int16_t) CompositeExtract 202 0
+                              Store 203 204
+             205:    189(ptr) AccessChain 34(data) 195 61 57
+             206: 21(int16_t) CompositeExtract 202 1
+                              Store 205 206
              207:      6(int) Load 8(invocation)
-             208: 21(int16_t) GroupNonUniformShuffleDown 43 206 207
-             209:    171(ptr) AccessChain 34(data) 204 59 38
-                              Store 209 208
-             210:      6(int) Load 8(invocation)
-             211:    179(ptr) AccessChain 34(data) 47 59
-             212: 22(i16vec4) Load 211
-             213:178(i16vec2) VectorShuffle 212 212 0 1
-             214:      6(int) Load 8(invocation)
-             215:178(i16vec2) GroupNonUniformShuffleDown 43 213 214
-             216:    179(ptr) AccessChain 34(data) 210 59
-             217: 22(i16vec4) Load 216
-             218: 22(i16vec4) VectorShuffle 217 215 4 5 2 3
-                              Store 216 218
-             219:      6(int) Load 8(invocation)
-             220:    179(ptr) AccessChain 34(data) 59 59
-             221: 22(i16vec4) Load 220
-             222:189(i16vec3) VectorShuffle 221 221 0 1 2
+             209:    197(ptr) AccessChain 34(data) 61 61
+             210: 22(i16vec4) Load 209
+             211:208(i16vec3) VectorShuffle 210 210 0 1 2
+             212:      6(int) Load 8(invocation)
+             213:208(i16vec3) GroupNonUniformShuffleUp 43 211 212
+             214:    189(ptr) AccessChain 34(data) 207 61 38
+             215: 21(int16_t) CompositeExtract 213 0
+                              Store 214 215
+             216:    189(ptr) AccessChain 34(data) 207 61 57
+             217: 21(int16_t) CompositeExtract 213 1
+                              Store 216 217
+             218:    189(ptr) AccessChain 34(data) 207 61 72
+             219: 21(int16_t) CompositeExtract 213 2
+                              Store 218 219
+             220:      6(int) Load 8(invocation)
+             221:    197(ptr) AccessChain 34(data) 76 61
+             222: 22(i16vec4) Load 221
              223:      6(int) Load 8(invocation)
-             224:189(i16vec3) GroupNonUniformShuffleDown 43 222 223
-             225:    179(ptr) AccessChain 34(data) 219 59
-             226: 22(i16vec4) Load 225
-             227: 22(i16vec4) VectorShuffle 226 224 4 5 6 3
-                              Store 225 227
-             228:      6(int) Load 8(invocation)
-             229:    179(ptr) AccessChain 34(data) 70 59
-             230: 22(i16vec4) Load 229
-             231:      6(int) Load 8(invocation)
-             232: 22(i16vec4) GroupNonUniformShuffleDown 43 230 231
-             233:    179(ptr) AccessChain 34(data) 228 59
-                              Store 233 232
-             234:      6(int) Load 8(invocation)
-             236:    235(ptr) AccessChain 34(data) 37 70 38
-             237: 23(int16_t) Load 236
-             238:      6(int) Load 8(invocation)
-             239: 23(int16_t) GroupNonUniformShuffleUp 43 237 238
-             240:    235(ptr) AccessChain 34(data) 234 70 38
-                              Store 240 239
-             241:      6(int) Load 8(invocation)
-             244:    243(ptr) AccessChain 34(data) 47 70
-             245: 24(i16vec4) Load 244
-             246:242(i16vec2) VectorShuffle 245 245 0 1
-             247:      6(int) Load 8(invocation)
-             248:242(i16vec2) GroupNonUniformShuffleUp 43 246 247
-             249:    243(ptr) AccessChain 34(data) 241 70
-             250: 24(i16vec4) Load 249
-             251: 24(i16vec4) VectorShuffle 250 248 4 5 2 3
-                              Store 249 251
-             252:      6(int) Load 8(invocation)
-             254:    243(ptr) AccessChain 34(data) 59 70
-             255: 24(i16vec4) Load 254
-             256:253(i16vec3) VectorShuffle 255 255 0 1 2
+             224: 22(i16vec4) GroupNonUniformShuffleUp 43 222 223
+             225:    197(ptr) AccessChain 34(data) 220 61
+                              Store 225 224
+             226:      6(int) Load 8(invocation)
+             227:    189(ptr) AccessChain 34(data) 37 61 38
+             228: 21(int16_t) Load 227
+             229:      6(int) Load 8(invocation)
+             230: 21(int16_t) GroupNonUniformShuffleDown 43 228 229
+             231:    189(ptr) AccessChain 34(data) 226 61 38
+                              Store 231 230
+             232:      6(int) Load 8(invocation)
+             233:    197(ptr) AccessChain 34(data) 47 61
+             234: 22(i16vec4) Load 233
+             235:196(i16vec2) VectorShuffle 234 234 0 1
+             236:      6(int) Load 8(invocation)
+             237:196(i16vec2) GroupNonUniformShuffleDown 43 235 236
+             238:    189(ptr) AccessChain 34(data) 232 61 38
+             239: 21(int16_t) CompositeExtract 237 0
+                              Store 238 239
+             240:    189(ptr) AccessChain 34(data) 232 61 57
+             241: 21(int16_t) CompositeExtract 237 1
+                              Store 240 241
+             242:      6(int) Load 8(invocation)
+             243:    197(ptr) AccessChain 34(data) 61 61
+             244: 22(i16vec4) Load 243
+             245:208(i16vec3) VectorShuffle 244 244 0 1 2
+             246:      6(int) Load 8(invocation)
+             247:208(i16vec3) GroupNonUniformShuffleDown 43 245 246
+             248:    189(ptr) AccessChain 34(data) 242 61 38
+             249: 21(int16_t) CompositeExtract 247 0
+                              Store 248 249
+             250:    189(ptr) AccessChain 34(data) 242 61 57
+             251: 21(int16_t) CompositeExtract 247 1
+                              Store 250 251
+             252:    189(ptr) AccessChain 34(data) 242 61 72
+             253: 21(int16_t) CompositeExtract 247 2
+                              Store 252 253
+             254:      6(int) Load 8(invocation)
+             255:    197(ptr) AccessChain 34(data) 76 61
+             256: 22(i16vec4) Load 255
              257:      6(int) Load 8(invocation)
-             258:253(i16vec3) GroupNonUniformShuffleUp 43 256 257
-             259:    243(ptr) AccessChain 34(data) 252 70
-             260: 24(i16vec4) Load 259
-             261: 24(i16vec4) VectorShuffle 260 258 4 5 6 3
-                              Store 259 261
-             262:      6(int) Load 8(invocation)
-             263:    243(ptr) AccessChain 34(data) 70 70
-             264: 24(i16vec4) Load 263
-             265:      6(int) Load 8(invocation)
-             266: 24(i16vec4) GroupNonUniformShuffleUp 43 264 265
-             267:    243(ptr) AccessChain 34(data) 262 70
-                              Store 267 266
-             268:      6(int) Load 8(invocation)
-             269:    235(ptr) AccessChain 34(data) 37 70 38
-             270: 23(int16_t) Load 269
-             271:      6(int) Load 8(invocation)
-             272: 23(int16_t) GroupNonUniformShuffleDown 43 270 271
-             273:    235(ptr) AccessChain 34(data) 268 70 38
-                              Store 273 272
-             274:      6(int) Load 8(invocation)
-             275:    243(ptr) AccessChain 34(data) 47 70
-             276: 24(i16vec4) Load 275
-             277:242(i16vec2) VectorShuffle 276 276 0 1
-             278:      6(int) Load 8(invocation)
-             279:242(i16vec2) GroupNonUniformShuffleDown 43 277 278
-             280:    243(ptr) AccessChain 34(data) 274 70
-             281: 24(i16vec4) Load 280
-             282: 24(i16vec4) VectorShuffle 281 279 4 5 2 3
-                              Store 280 282
-             283:      6(int) Load 8(invocation)
-             284:    243(ptr) AccessChain 34(data) 59 70
-             285: 24(i16vec4) Load 284
-             286:253(i16vec3) VectorShuffle 285 285 0 1 2
-             287:      6(int) Load 8(invocation)
-             288:253(i16vec3) GroupNonUniformShuffleDown 43 286 287
-             289:    243(ptr) AccessChain 34(data) 283 70
-             290: 24(i16vec4) Load 289
-             291: 24(i16vec4) VectorShuffle 290 288 4 5 6 3
-                              Store 289 291
+             258: 22(i16vec4) GroupNonUniformShuffleDown 43 256 257
+             259:    197(ptr) AccessChain 34(data) 254 61
+                              Store 259 258
+             260:      6(int) Load 8(invocation)
+             262:    261(ptr) AccessChain 34(data) 37 76 38
+             263: 23(int16_t) Load 262
+             264:      6(int) Load 8(invocation)
+             265: 23(int16_t) GroupNonUniformShuffleUp 43 263 264
+             266:    261(ptr) AccessChain 34(data) 260 76 38
+                              Store 266 265
+             267:      6(int) Load 8(invocation)
+             270:    269(ptr) AccessChain 34(data) 47 76
+             271: 24(i16vec4) Load 270
+             272:268(i16vec2) VectorShuffle 271 271 0 1
+             273:      6(int) Load 8(invocation)
+             274:268(i16vec2) GroupNonUniformShuffleUp 43 272 273
+             275:    261(ptr) AccessChain 34(data) 267 76 38
+             276: 23(int16_t) CompositeExtract 274 0
+                              Store 275 276
+             277:    261(ptr) AccessChain 34(data) 267 76 57
+             278: 23(int16_t) CompositeExtract 274 1
+                              Store 277 278
+             279:      6(int) Load 8(invocation)
+             281:    269(ptr) AccessChain 34(data) 61 76
+             282: 24(i16vec4) Load 281
+             283:280(i16vec3) VectorShuffle 282 282 0 1 2
+             284:      6(int) Load 8(invocation)
+             285:280(i16vec3) GroupNonUniformShuffleUp 43 283 284
+             286:    261(ptr) AccessChain 34(data) 279 76 38
+             287: 23(int16_t) CompositeExtract 285 0
+                              Store 286 287
+             288:    261(ptr) AccessChain 34(data) 279 76 57
+             289: 23(int16_t) CompositeExtract 285 1
+                              Store 288 289
+             290:    261(ptr) AccessChain 34(data) 279 76 72
+             291: 23(int16_t) CompositeExtract 285 2
+                              Store 290 291
              292:      6(int) Load 8(invocation)
-             293:    243(ptr) AccessChain 34(data) 70 70
+             293:    269(ptr) AccessChain 34(data) 76 76
              294: 24(i16vec4) Load 293
              295:      6(int) Load 8(invocation)
-             296: 24(i16vec4) GroupNonUniformShuffleDown 43 294 295
-             297:    243(ptr) AccessChain 34(data) 292 70
+             296: 24(i16vec4) GroupNonUniformShuffleUp 43 294 295
+             297:    269(ptr) AccessChain 34(data) 292 76
                               Store 297 296
              298:      6(int) Load 8(invocation)
-             301:    300(ptr) AccessChain 34(data) 37 299 38
-             302: 25(int64_t) Load 301
-             303:      6(int) Load 8(invocation)
-             304: 25(int64_t) GroupNonUniformShuffleUp 43 302 303
-             305:    300(ptr) AccessChain 34(data) 298 299 38
-                              Store 305 304
-             306:      6(int) Load 8(invocation)
-             309:    308(ptr) AccessChain 34(data) 47 299
-             310: 26(i64vec4) Load 309
-             311:307(i64vec2) VectorShuffle 310 310 0 1
-             312:      6(int) Load 8(invocation)
-             313:307(i64vec2) GroupNonUniformShuffleUp 43 311 312
-             314:    308(ptr) AccessChain 34(data) 306 299
-             315: 26(i64vec4) Load 314
-             316: 26(i64vec4) VectorShuffle 315 313 4 5 2 3
-                              Store 314 316
-             317:      6(int) Load 8(invocation)
-             319:    308(ptr) AccessChain 34(data) 59 299
-             320: 26(i64vec4) Load 319
-             321:318(i64vec3) VectorShuffle 320 320 0 1 2
-             322:      6(int) Load 8(invocation)
-             323:318(i64vec3) GroupNonUniformShuffleUp 43 321 322
-             324:    308(ptr) AccessChain 34(data) 317 299
-             325: 26(i64vec4) Load 324
-             326: 26(i64vec4) VectorShuffle 325 323 4 5 6 3
-                              Store 324 326
-             327:      6(int) Load 8(invocation)
-             328:    308(ptr) AccessChain 34(data) 70 299
-             329: 26(i64vec4) Load 328
-             330:      6(int) Load 8(invocation)
-             331: 26(i64vec4) GroupNonUniformShuffleUp 43 329 330
-             332:    308(ptr) AccessChain 34(data) 327 299
-                              Store 332 331
-             333:      6(int) Load 8(invocation)
-             334:    300(ptr) AccessChain 34(data) 37 299 38
-             335: 25(int64_t) Load 334
-             336:      6(int) Load 8(invocation)
-             337: 25(int64_t) GroupNonUniformShuffleDown 43 335 336
-             338:    300(ptr) AccessChain 34(data) 333 299 38
-                              Store 338 337
-             339:      6(int) Load 8(invocation)
-             340:    308(ptr) AccessChain 34(data) 47 299
-             341: 26(i64vec4) Load 340
-             342:307(i64vec2) VectorShuffle 341 341 0 1
-             343:      6(int) Load 8(invocation)
-             344:307(i64vec2) GroupNonUniformShuffleDown 43 342 343
-             345:    308(ptr) AccessChain 34(data) 339 299
-             346: 26(i64vec4) Load 345
-             347: 26(i64vec4) VectorShuffle 346 344 4 5 2 3
-                              Store 345 347
-             348:      6(int) Load 8(invocation)
-             349:    308(ptr) AccessChain 34(data) 59 299
-             350: 26(i64vec4) Load 349
-             351:318(i64vec3) VectorShuffle 350 350 0 1 2
+             299:    261(ptr) AccessChain 34(data) 37 76 38
+             300: 23(int16_t) Load 299
+             301:      6(int) Load 8(invocation)
+             302: 23(int16_t) GroupNonUniformShuffleDown 43 300 301
+             303:    261(ptr) AccessChain 34(data) 298 76 38
+                              Store 303 302
+             304:      6(int) Load 8(invocation)
+             305:    269(ptr) AccessChain 34(data) 47 76
+             306: 24(i16vec4) Load 305
+             307:268(i16vec2) VectorShuffle 306 306 0 1
+             308:      6(int) Load 8(invocation)
+             309:268(i16vec2) GroupNonUniformShuffleDown 43 307 308
+             310:    261(ptr) AccessChain 34(data) 304 76 38
+             311: 23(int16_t) CompositeExtract 309 0
+                              Store 310 311
+             312:    261(ptr) AccessChain 34(data) 304 76 57
+             313: 23(int16_t) CompositeExtract 309 1
+                              Store 312 313
+             314:      6(int) Load 8(invocation)
+             315:    269(ptr) AccessChain 34(data) 61 76
+             316: 24(i16vec4) Load 315
+             317:280(i16vec3) VectorShuffle 316 316 0 1 2
+             318:      6(int) Load 8(invocation)
+             319:280(i16vec3) GroupNonUniformShuffleDown 43 317 318
+             320:    261(ptr) AccessChain 34(data) 314 76 38
+             321: 23(int16_t) CompositeExtract 319 0
+                              Store 320 321
+             322:    261(ptr) AccessChain 34(data) 314 76 57
+             323: 23(int16_t) CompositeExtract 319 1
+                              Store 322 323
+             324:    261(ptr) AccessChain 34(data) 314 76 72
+             325: 23(int16_t) CompositeExtract 319 2
+                              Store 324 325
+             326:      6(int) Load 8(invocation)
+             327:    269(ptr) AccessChain 34(data) 76 76
+             328: 24(i16vec4) Load 327
+             329:      6(int) Load 8(invocation)
+             330: 24(i16vec4) GroupNonUniformShuffleDown 43 328 329
+             331:    269(ptr) AccessChain 34(data) 326 76
+                              Store 331 330
+             332:      6(int) Load 8(invocation)
+             335:    334(ptr) AccessChain 34(data) 37 333 38
+             336: 25(int64_t) Load 335
+             337:      6(int) Load 8(invocation)
+             338: 25(int64_t) GroupNonUniformShuffleUp 43 336 337
+             339:    334(ptr) AccessChain 34(data) 332 333 38
+                              Store 339 338
+             340:      6(int) Load 8(invocation)
+             343:    342(ptr) AccessChain 34(data) 47 333
+             344: 26(i64vec4) Load 343
+             345:341(i64vec2) VectorShuffle 344 344 0 1
+             346:      6(int) Load 8(invocation)
+             347:341(i64vec2) GroupNonUniformShuffleUp 43 345 346
+             348:    334(ptr) AccessChain 34(data) 340 333 38
+             349: 25(int64_t) CompositeExtract 347 0
+                              Store 348 349
+             350:    334(ptr) AccessChain 34(data) 340 333 57
+             351: 25(int64_t) CompositeExtract 347 1
+                              Store 350 351
              352:      6(int) Load 8(invocation)
-             353:318(i64vec3) GroupNonUniformShuffleDown 43 351 352
-             354:    308(ptr) AccessChain 34(data) 348 299
+             354:    342(ptr) AccessChain 34(data) 61 333
              355: 26(i64vec4) Load 354
-             356: 26(i64vec4) VectorShuffle 355 353 4 5 6 3
-                              Store 354 356
+             356:353(i64vec3) VectorShuffle 355 355 0 1 2
              357:      6(int) Load 8(invocation)
-             358:    308(ptr) AccessChain 34(data) 70 299
-             359: 26(i64vec4) Load 358
-             360:      6(int) Load 8(invocation)
-             361: 26(i64vec4) GroupNonUniformShuffleDown 43 359 360
-             362:    308(ptr) AccessChain 34(data) 357 299
-                              Store 362 361
-             363:      6(int) Load 8(invocation)
-             366:    365(ptr) AccessChain 34(data) 37 364 38
-             367: 27(int64_t) Load 366
+             358:353(i64vec3) GroupNonUniformShuffleUp 43 356 357
+             359:    334(ptr) AccessChain 34(data) 352 333 38
+             360: 25(int64_t) CompositeExtract 358 0
+                              Store 359 360
+             361:    334(ptr) AccessChain 34(data) 352 333 57
+             362: 25(int64_t) CompositeExtract 358 1
+                              Store 361 362
+             363:    334(ptr) AccessChain 34(data) 352 333 72
+             364: 25(int64_t) CompositeExtract 358 2
+                              Store 363 364
+             365:      6(int) Load 8(invocation)
+             366:    342(ptr) AccessChain 34(data) 76 333
+             367: 26(i64vec4) Load 366
              368:      6(int) Load 8(invocation)
-             369: 27(int64_t) GroupNonUniformShuffleUp 43 367 368
-             370:    365(ptr) AccessChain 34(data) 363 364 38
+             369: 26(i64vec4) GroupNonUniformShuffleUp 43 367 368
+             370:    342(ptr) AccessChain 34(data) 365 333
                               Store 370 369
              371:      6(int) Load 8(invocation)
-             374:    373(ptr) AccessChain 34(data) 47 364
-             375: 28(i64vec4) Load 374
-             376:372(i64vec2) VectorShuffle 375 375 0 1
+             372:    334(ptr) AccessChain 34(data) 37 333 38
+             373: 25(int64_t) Load 372
+             374:      6(int) Load 8(invocation)
+             375: 25(int64_t) GroupNonUniformShuffleDown 43 373 374
+             376:    334(ptr) AccessChain 34(data) 371 333 38
+                              Store 376 375
              377:      6(int) Load 8(invocation)
-             378:372(i64vec2) GroupNonUniformShuffleUp 43 376 377
-             379:    373(ptr) AccessChain 34(data) 371 364
-             380: 28(i64vec4) Load 379
-             381: 28(i64vec4) VectorShuffle 380 378 4 5 2 3
-                              Store 379 381
-             382:      6(int) Load 8(invocation)
-             384:    373(ptr) AccessChain 34(data) 59 364
-             385: 28(i64vec4) Load 384
-             386:383(i64vec3) VectorShuffle 385 385 0 1 2
+             378:    342(ptr) AccessChain 34(data) 47 333
+             379: 26(i64vec4) Load 378
+             380:341(i64vec2) VectorShuffle 379 379 0 1
+             381:      6(int) Load 8(invocation)
+             382:341(i64vec2) GroupNonUniformShuffleDown 43 380 381
+             383:    334(ptr) AccessChain 34(data) 377 333 38
+             384: 25(int64_t) CompositeExtract 382 0
+                              Store 383 384
+             385:    334(ptr) AccessChain 34(data) 377 333 57
+             386: 25(int64_t) CompositeExtract 382 1
+                              Store 385 386
              387:      6(int) Load 8(invocation)
-             388:383(i64vec3) GroupNonUniformShuffleUp 43 386 387
-             389:    373(ptr) AccessChain 34(data) 382 364
-             390: 28(i64vec4) Load 389
-             391: 28(i64vec4) VectorShuffle 390 388 4 5 6 3
-                              Store 389 391
-             392:      6(int) Load 8(invocation)
-             393:    373(ptr) AccessChain 34(data) 70 364
-             394: 28(i64vec4) Load 393
-             395:      6(int) Load 8(invocation)
-             396: 28(i64vec4) GroupNonUniformShuffleUp 43 394 395
-             397:    373(ptr) AccessChain 34(data) 392 364
-                              Store 397 396
-             398:      6(int) Load 8(invocation)
-             399:    365(ptr) AccessChain 34(data) 37 364 38
-             400: 27(int64_t) Load 399
-             401:      6(int) Load 8(invocation)
-             402: 27(int64_t) GroupNonUniformShuffleDown 43 400 401
-             403:    365(ptr) AccessChain 34(data) 398 364 38
-                              Store 403 402
-             404:      6(int) Load 8(invocation)
-             405:    373(ptr) AccessChain 34(data) 47 364
-             406: 28(i64vec4) Load 405
-             407:372(i64vec2) VectorShuffle 406 406 0 1
-             408:      6(int) Load 8(invocation)
-             409:372(i64vec2) GroupNonUniformShuffleDown 43 407 408
-             410:    373(ptr) AccessChain 34(data) 404 364
-             411: 28(i64vec4) Load 410
-             412: 28(i64vec4) VectorShuffle 411 409 4 5 2 3
-                              Store 410 412
+             388:    342(ptr) AccessChain 34(data) 61 333
+             389: 26(i64vec4) Load 388
+             390:353(i64vec3) VectorShuffle 389 389 0 1 2
+             391:      6(int) Load 8(invocation)
+             392:353(i64vec3) GroupNonUniformShuffleDown 43 390 391
+             393:    334(ptr) AccessChain 34(data) 387 333 38
+             394: 25(int64_t) CompositeExtract 392 0
+                              Store 393 394
+             395:    334(ptr) AccessChain 34(data) 387 333 57
+             396: 25(int64_t) CompositeExtract 392 1
+                              Store 395 396
+             397:    334(ptr) AccessChain 34(data) 387 333 72
+             398: 25(int64_t) CompositeExtract 392 2
+                              Store 397 398
+             399:      6(int) Load 8(invocation)
+             400:    342(ptr) AccessChain 34(data) 76 333
+             401: 26(i64vec4) Load 400
+             402:      6(int) Load 8(invocation)
+             403: 26(i64vec4) GroupNonUniformShuffleDown 43 401 402
+             404:    342(ptr) AccessChain 34(data) 399 333
+                              Store 404 403
+             405:      6(int) Load 8(invocation)
+             408:    407(ptr) AccessChain 34(data) 37 406 38
+             409: 27(int64_t) Load 408
+             410:      6(int) Load 8(invocation)
+             411: 27(int64_t) GroupNonUniformShuffleUp 43 409 410
+             412:    407(ptr) AccessChain 34(data) 405 406 38
+                              Store 412 411
              413:      6(int) Load 8(invocation)
-             414:    373(ptr) AccessChain 34(data) 59 364
-             415: 28(i64vec4) Load 414
-             416:383(i64vec3) VectorShuffle 415 415 0 1 2
-             417:      6(int) Load 8(invocation)
-             418:383(i64vec3) GroupNonUniformShuffleDown 43 416 417
-             419:    373(ptr) AccessChain 34(data) 413 364
-             420: 28(i64vec4) Load 419
-             421: 28(i64vec4) VectorShuffle 420 418 4 5 6 3
-                              Store 419 421
-             422:      6(int) Load 8(invocation)
-             423:    373(ptr) AccessChain 34(data) 70 364
-             424: 28(i64vec4) Load 423
+             416:    415(ptr) AccessChain 34(data) 47 406
+             417: 28(i64vec4) Load 416
+             418:414(i64vec2) VectorShuffle 417 417 0 1
+             419:      6(int) Load 8(invocation)
+             420:414(i64vec2) GroupNonUniformShuffleUp 43 418 419
+             421:    407(ptr) AccessChain 34(data) 413 406 38
+             422: 27(int64_t) CompositeExtract 420 0
+                              Store 421 422
+             423:    407(ptr) AccessChain 34(data) 413 406 57
+             424: 27(int64_t) CompositeExtract 420 1
+                              Store 423 424
              425:      6(int) Load 8(invocation)
-             426: 28(i64vec4) GroupNonUniformShuffleDown 43 424 425
-             427:    373(ptr) AccessChain 34(data) 422 364
-                              Store 427 426
-             428:      6(int) Load 8(invocation)
-             431:    430(ptr) AccessChain 34(data) 37 429 38
-             432:29(float16_t) Load 431
-             433:      6(int) Load 8(invocation)
-             434:29(float16_t) GroupNonUniformShuffleUp 43 432 433
-             435:    430(ptr) AccessChain 34(data) 428 429 38
-                              Store 435 434
-             436:      6(int) Load 8(invocation)
-             439:    438(ptr) AccessChain 34(data) 47 429
-             440: 30(f16vec4) Load 439
-             441:437(f16vec2) VectorShuffle 440 440 0 1
-             442:      6(int) Load 8(invocation)
-             443:437(f16vec2) GroupNonUniformShuffleUp 43 441 442
-             444:    438(ptr) AccessChain 34(data) 436 429
-             445: 30(f16vec4) Load 444
-             446: 30(f16vec4) VectorShuffle 445 443 4 5 2 3
-                              Store 444 446
+             427:    415(ptr) AccessChain 34(data) 61 406
+             428: 28(i64vec4) Load 427
+             429:426(i64vec3) VectorShuffle 428 428 0 1 2
+             430:      6(int) Load 8(invocation)
+             431:426(i64vec3) GroupNonUniformShuffleUp 43 429 430
+             432:    407(ptr) AccessChain 34(data) 425 406 38
+             433: 27(int64_t) CompositeExtract 431 0
+                              Store 432 433
+             434:    407(ptr) AccessChain 34(data) 425 406 57
+             435: 27(int64_t) CompositeExtract 431 1
+                              Store 434 435
+             436:    407(ptr) AccessChain 34(data) 425 406 72
+             437: 27(int64_t) CompositeExtract 431 2
+                              Store 436 437
+             438:      6(int) Load 8(invocation)
+             439:    415(ptr) AccessChain 34(data) 76 406
+             440: 28(i64vec4) Load 439
+             441:      6(int) Load 8(invocation)
+             442: 28(i64vec4) GroupNonUniformShuffleUp 43 440 441
+             443:    415(ptr) AccessChain 34(data) 438 406
+                              Store 443 442
+             444:      6(int) Load 8(invocation)
+             445:    407(ptr) AccessChain 34(data) 37 406 38
+             446: 27(int64_t) Load 445
              447:      6(int) Load 8(invocation)
-             449:    438(ptr) AccessChain 34(data) 59 429
-             450: 30(f16vec4) Load 449
-             451:448(f16vec3) VectorShuffle 450 450 0 1 2
-             452:      6(int) Load 8(invocation)
-             453:448(f16vec3) GroupNonUniformShuffleUp 43 451 452
-             454:    438(ptr) AccessChain 34(data) 447 429
-             455: 30(f16vec4) Load 454
-             456: 30(f16vec4) VectorShuffle 455 453 4 5 6 3
-                              Store 454 456
-             457:      6(int) Load 8(invocation)
-             458:    438(ptr) AccessChain 34(data) 70 429
-             459: 30(f16vec4) Load 458
+             448: 27(int64_t) GroupNonUniformShuffleDown 43 446 447
+             449:    407(ptr) AccessChain 34(data) 444 406 38
+                              Store 449 448
+             450:      6(int) Load 8(invocation)
+             451:    415(ptr) AccessChain 34(data) 47 406
+             452: 28(i64vec4) Load 451
+             453:414(i64vec2) VectorShuffle 452 452 0 1
+             454:      6(int) Load 8(invocation)
+             455:414(i64vec2) GroupNonUniformShuffleDown 43 453 454
+             456:    407(ptr) AccessChain 34(data) 450 406 38
+             457: 27(int64_t) CompositeExtract 455 0
+                              Store 456 457
+             458:    407(ptr) AccessChain 34(data) 450 406 57
+             459: 27(int64_t) CompositeExtract 455 1
+                              Store 458 459
              460:      6(int) Load 8(invocation)
-             461: 30(f16vec4) GroupNonUniformShuffleUp 43 459 460
-             462:    438(ptr) AccessChain 34(data) 457 429
-                              Store 462 461
-             463:      6(int) Load 8(invocation)
-             464:    430(ptr) AccessChain 34(data) 37 429 38
-             465:29(float16_t) Load 464
-             466:      6(int) Load 8(invocation)
-             467:29(float16_t) GroupNonUniformShuffleDown 43 465 466
-             468:    430(ptr) AccessChain 34(data) 463 429 38
-                              Store 468 467
-             469:      6(int) Load 8(invocation)
-             470:    438(ptr) AccessChain 34(data) 47 429
-             471: 30(f16vec4) Load 470
-             472:437(f16vec2) VectorShuffle 471 471 0 1
-             473:      6(int) Load 8(invocation)
-             474:437(f16vec2) GroupNonUniformShuffleDown 43 472 473
-             475:    438(ptr) AccessChain 34(data) 469 429
-             476: 30(f16vec4) Load 475
-             477: 30(f16vec4) VectorShuffle 476 474 4 5 2 3
-                              Store 475 477
+             461:    415(ptr) AccessChain 34(data) 61 406
+             462: 28(i64vec4) Load 461
+             463:426(i64vec3) VectorShuffle 462 462 0 1 2
+             464:      6(int) Load 8(invocation)
+             465:426(i64vec3) GroupNonUniformShuffleDown 43 463 464
+             466:    407(ptr) AccessChain 34(data) 460 406 38
+             467: 27(int64_t) CompositeExtract 465 0
+                              Store 466 467
+             468:    407(ptr) AccessChain 34(data) 460 406 57
+             469: 27(int64_t) CompositeExtract 465 1
+                              Store 468 469
+             470:    407(ptr) AccessChain 34(data) 460 406 72
+             471: 27(int64_t) CompositeExtract 465 2
+                              Store 470 471
+             472:      6(int) Load 8(invocation)
+             473:    415(ptr) AccessChain 34(data) 76 406
+             474: 28(i64vec4) Load 473
+             475:      6(int) Load 8(invocation)
+             476: 28(i64vec4) GroupNonUniformShuffleDown 43 474 475
+             477:    415(ptr) AccessChain 34(data) 472 406
+                              Store 477 476
              478:      6(int) Load 8(invocation)
-             479:    438(ptr) AccessChain 34(data) 59 429
-             480: 30(f16vec4) Load 479
-             481:448(f16vec3) VectorShuffle 480 480 0 1 2
-             482:      6(int) Load 8(invocation)
-             483:448(f16vec3) GroupNonUniformShuffleDown 43 481 482
-             484:    438(ptr) AccessChain 34(data) 478 429
-             485: 30(f16vec4) Load 484
-             486: 30(f16vec4) VectorShuffle 485 483 4 5 6 3
-                              Store 484 486
-             487:      6(int) Load 8(invocation)
-             488:    438(ptr) AccessChain 34(data) 70 429
-             489: 30(f16vec4) Load 488
-             490:      6(int) Load 8(invocation)
-             491: 30(f16vec4) GroupNonUniformShuffleDown 43 489 490
-             492:    438(ptr) AccessChain 34(data) 487 429
-                              Store 492 491
+             481:    480(ptr) AccessChain 34(data) 37 479 38
+             482:29(float16_t) Load 481
+             483:      6(int) Load 8(invocation)
+             484:29(float16_t) GroupNonUniformShuffleUp 43 482 483
+             485:    480(ptr) AccessChain 34(data) 478 479 38
+                              Store 485 484
+             486:      6(int) Load 8(invocation)
+             489:    488(ptr) AccessChain 34(data) 47 479
+             490: 30(f16vec4) Load 489
+             491:487(f16vec2) VectorShuffle 490 490 0 1
+             492:      6(int) Load 8(invocation)
+             493:487(f16vec2) GroupNonUniformShuffleUp 43 491 492
+             494:    480(ptr) AccessChain 34(data) 486 479 38
+             495:29(float16_t) CompositeExtract 493 0
+                              Store 494 495
+             496:    480(ptr) AccessChain 34(data) 486 479 57
+             497:29(float16_t) CompositeExtract 493 1
+                              Store 496 497
+             498:      6(int) Load 8(invocation)
+             500:    488(ptr) AccessChain 34(data) 61 479
+             501: 30(f16vec4) Load 500
+             502:499(f16vec3) VectorShuffle 501 501 0 1 2
+             503:      6(int) Load 8(invocation)
+             504:499(f16vec3) GroupNonUniformShuffleUp 43 502 503
+             505:    480(ptr) AccessChain 34(data) 498 479 38
+             506:29(float16_t) CompositeExtract 504 0
+                              Store 505 506
+             507:    480(ptr) AccessChain 34(data) 498 479 57
+             508:29(float16_t) CompositeExtract 504 1
+                              Store 507 508
+             509:    480(ptr) AccessChain 34(data) 498 479 72
+             510:29(float16_t) CompositeExtract 504 2
+                              Store 509 510
+             511:      6(int) Load 8(invocation)
+             512:    488(ptr) AccessChain 34(data) 76 479
+             513: 30(f16vec4) Load 512
+             514:      6(int) Load 8(invocation)
+             515: 30(f16vec4) GroupNonUniformShuffleUp 43 513 514
+             516:    488(ptr) AccessChain 34(data) 511 479
+                              Store 516 515
+             517:      6(int) Load 8(invocation)
+             518:    480(ptr) AccessChain 34(data) 37 479 38
+             519:29(float16_t) Load 518
+             520:      6(int) Load 8(invocation)
+             521:29(float16_t) GroupNonUniformShuffleDown 43 519 520
+             522:    480(ptr) AccessChain 34(data) 517 479 38
+                              Store 522 521
+             523:      6(int) Load 8(invocation)
+             524:    488(ptr) AccessChain 34(data) 47 479
+             525: 30(f16vec4) Load 524
+             526:487(f16vec2) VectorShuffle 525 525 0 1
+             527:      6(int) Load 8(invocation)
+             528:487(f16vec2) GroupNonUniformShuffleDown 43 526 527
+             529:    480(ptr) AccessChain 34(data) 523 479 38
+             530:29(float16_t) CompositeExtract 528 0
+                              Store 529 530
+             531:    480(ptr) AccessChain 34(data) 523 479 57
+             532:29(float16_t) CompositeExtract 528 1
+                              Store 531 532
+             533:      6(int) Load 8(invocation)
+             534:    488(ptr) AccessChain 34(data) 61 479
+             535: 30(f16vec4) Load 534
+             536:499(f16vec3) VectorShuffle 535 535 0 1 2
+             537:      6(int) Load 8(invocation)
+             538:499(f16vec3) GroupNonUniformShuffleDown 43 536 537
+             539:    480(ptr) AccessChain 34(data) 533 479 38
+             540:29(float16_t) CompositeExtract 538 0
+                              Store 539 540
+             541:    480(ptr) AccessChain 34(data) 533 479 57
+             542:29(float16_t) CompositeExtract 538 1
+                              Store 541 542
+             543:    480(ptr) AccessChain 34(data) 533 479 72
+             544:29(float16_t) CompositeExtract 538 2
+                              Store 543 544
+             545:      6(int) Load 8(invocation)
+             546:    488(ptr) AccessChain 34(data) 76 479
+             547: 30(f16vec4) Load 546
+             548:      6(int) Load 8(invocation)
+             549: 30(f16vec4) GroupNonUniformShuffleDown 43 547 548
+             550:    488(ptr) AccessChain 34(data) 545 479
+                              Store 550 549
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.subgroupPartitioned.comp.out b/Test/baseResults/spv.subgroupPartitioned.comp.out
index 7c7a0f9..0e7b7ef 100644
--- a/Test/baseResults/spv.subgroupPartitioned.comp.out
+++ b/Test/baseResults/spv.subgroupPartitioned.comp.out
@@ -1,7 +1,7 @@
 spv.subgroupPartitioned.comp
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 2506
+// Id's are bound by 2807
 
                               Capability Shader
                               Capability Float64
@@ -41,7 +41,7 @@
                               Decorate 28(Buffers) Block
                               Decorate 31(data) DescriptorSet 0
                               Decorate 31(data) Binding 0
-                              Decorate 2505 BuiltIn WorkgroupSize
+                              Decorate 2806 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -91,15 +91,16 @@
              169:             TypeVector 144(bool) 4
              170:   17(ivec4) ConstantComposite 35 35 35 35
              178:      6(int) Constant 3
-             727:   70(ivec2) ConstantComposite 34 34
-             731:   70(ivec2) ConstantComposite 63 63
-             740:   78(ivec3) ConstantComposite 34 34 34
-             744:   78(ivec3) ConstantComposite 63 63 63
-             752:   25(ivec4) ConstantComposite 34 34 34 34
-             756:   25(ivec4) ConstantComposite 63 63 63 63
-            2503:      6(int) Constant 8
-            2504:      6(int) Constant 1
-            2505:  103(ivec3) ConstantComposite 2503 2504 2504
+             189:      6(int) Constant 1
+             202:      6(int) Constant 2
+             801:   70(ivec2) ConstantComposite 34 34
+             805:   70(ivec2) ConstantComposite 63 63
+             815:   78(ivec3) ConstantComposite 34 34 34
+             819:   78(ivec3) ConstantComposite 63 63 63
+             830:   25(ivec4) ConstantComposite 34 34 34 34
+             834:   25(ivec4) ConstantComposite 63 63 63 63
+            2805:      6(int) Constant 8
+            2806:  103(ivec3) ConstantComposite 2805 189 189
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -259,2614 +260,3139 @@
              184:   43(fvec2) VectorShuffle 183 183 0 1
              185:   17(ivec4) Load 19(ballot)
              186:   43(fvec2) GroupNonUniformFAdd 178 PartitionedReduceNV 184 185
-             187:     44(ptr) AccessChain 31(data) 181 34
-             188:   23(fvec4) Load 187
-             189:   23(fvec4) VectorShuffle 188 186 4 5 2 3
-                              Store 187 189
-             190:      6(int) Load 8(invocation)
-             191:     44(ptr) AccessChain 31(data) 33 34
-             192:   23(fvec4) Load 191
-             193:   51(fvec3) VectorShuffle 192 192 0 1 2
-             194:   17(ivec4) Load 19(ballot)
-             195:   51(fvec3) GroupNonUniformFAdd 178 PartitionedReduceNV 193 194
-             196:     44(ptr) AccessChain 31(data) 190 34
-             197:   23(fvec4) Load 196
-             198:   23(fvec4) VectorShuffle 197 195 4 5 6 3
-                              Store 196 198
-             199:      6(int) Load 8(invocation)
-             200:     44(ptr) AccessChain 31(data) 115 34
-             201:   23(fvec4) Load 200
-             202:   17(ivec4) Load 19(ballot)
-             203:   23(fvec4) GroupNonUniformFAdd 178 PartitionedReduceNV 201 202
-             204:     44(ptr) AccessChain 31(data) 199 34
-                              Store 204 203
+             187:     36(ptr) AccessChain 31(data) 181 34 35
+             188:   22(float) CompositeExtract 186 0
+                              Store 187 188
+             190:     36(ptr) AccessChain 31(data) 181 34 189
+             191:   22(float) CompositeExtract 186 1
+                              Store 190 191
+             192:      6(int) Load 8(invocation)
+             193:     44(ptr) AccessChain 31(data) 33 34
+             194:   23(fvec4) Load 193
+             195:   51(fvec3) VectorShuffle 194 194 0 1 2
+             196:   17(ivec4) Load 19(ballot)
+             197:   51(fvec3) GroupNonUniformFAdd 178 PartitionedReduceNV 195 196
+             198:     36(ptr) AccessChain 31(data) 192 34 35
+             199:   22(float) CompositeExtract 197 0
+                              Store 198 199
+             200:     36(ptr) AccessChain 31(data) 192 34 189
+             201:   22(float) CompositeExtract 197 1
+                              Store 200 201
+             203:     36(ptr) AccessChain 31(data) 192 34 202
+             204:   22(float) CompositeExtract 197 2
+                              Store 203 204
              205:      6(int) Load 8(invocation)
-             206:     64(ptr) AccessChain 31(data) 34 63 35
-             207:     24(int) Load 206
+             206:     44(ptr) AccessChain 31(data) 115 34
+             207:   23(fvec4) Load 206
              208:   17(ivec4) Load 19(ballot)
-             209:     24(int) GroupNonUniformIAdd 178 PartitionedReduceNV 207 208
-             210:     64(ptr) AccessChain 31(data) 205 63 35
+             209:   23(fvec4) GroupNonUniformFAdd 178 PartitionedReduceNV 207 208
+             210:     44(ptr) AccessChain 31(data) 205 34
                               Store 210 209
              211:      6(int) Load 8(invocation)
-             212:     71(ptr) AccessChain 31(data) 63 63
-             213:   25(ivec4) Load 212
-             214:   70(ivec2) VectorShuffle 213 213 0 1
-             215:   17(ivec4) Load 19(ballot)
-             216:   70(ivec2) GroupNonUniformIAdd 178 PartitionedReduceNV 214 215
-             217:     71(ptr) AccessChain 31(data) 211 63
-             218:   25(ivec4) Load 217
-             219:   25(ivec4) VectorShuffle 218 216 4 5 2 3
-                              Store 217 219
-             220:      6(int) Load 8(invocation)
-             221:     71(ptr) AccessChain 31(data) 33 63
-             222:   25(ivec4) Load 221
-             223:   78(ivec3) VectorShuffle 222 222 0 1 2
-             224:   17(ivec4) Load 19(ballot)
-             225:   78(ivec3) GroupNonUniformIAdd 178 PartitionedReduceNV 223 224
-             226:     71(ptr) AccessChain 31(data) 220 63
-             227:   25(ivec4) Load 226
-             228:   25(ivec4) VectorShuffle 227 225 4 5 6 3
-                              Store 226 228
-             229:      6(int) Load 8(invocation)
-             230:     71(ptr) AccessChain 31(data) 115 63
-             231:   25(ivec4) Load 230
-             232:   17(ivec4) Load 19(ballot)
-             233:   25(ivec4) GroupNonUniformIAdd 178 PartitionedReduceNV 231 232
-             234:     71(ptr) AccessChain 31(data) 229 63
-                              Store 234 233
-             235:      6(int) Load 8(invocation)
-             236:     90(ptr) AccessChain 31(data) 34 33 35
-             237:      6(int) Load 236
-             238:   17(ivec4) Load 19(ballot)
-             239:      6(int) GroupNonUniformIAdd 178 PartitionedReduceNV 237 238
-             240:     90(ptr) AccessChain 31(data) 235 33 35
-                              Store 240 239
-             241:      6(int) Load 8(invocation)
-             242:     40(ptr) AccessChain 31(data) 63 33
-             243:   17(ivec4) Load 242
-             244:   96(ivec2) VectorShuffle 243 243 0 1
-             245:   17(ivec4) Load 19(ballot)
-             246:   96(ivec2) GroupNonUniformIAdd 178 PartitionedReduceNV 244 245
-             247:     40(ptr) AccessChain 31(data) 241 33
-             248:   17(ivec4) Load 247
-             249:   17(ivec4) VectorShuffle 248 246 4 5 2 3
-                              Store 247 249
-             250:      6(int) Load 8(invocation)
-             251:     40(ptr) AccessChain 31(data) 33 33
-             252:   17(ivec4) Load 251
-             253:  103(ivec3) VectorShuffle 252 252 0 1 2
-             254:   17(ivec4) Load 19(ballot)
-             255:  103(ivec3) GroupNonUniformIAdd 178 PartitionedReduceNV 253 254
-             256:     40(ptr) AccessChain 31(data) 250 33
-             257:   17(ivec4) Load 256
-             258:   17(ivec4) VectorShuffle 257 255 4 5 6 3
-                              Store 256 258
-             259:      6(int) Load 8(invocation)
-             260:     40(ptr) AccessChain 31(data) 115 33
-             261:   17(ivec4) Load 260
-             262:   17(ivec4) Load 19(ballot)
-             263:   17(ivec4) GroupNonUniformIAdd 178 PartitionedReduceNV 261 262
-             264:     40(ptr) AccessChain 31(data) 259 33
-                              Store 264 263
-             265:      6(int) Load 8(invocation)
-             266:    116(ptr) AccessChain 31(data) 34 115 35
-             267:26(float64_t) Load 266
-             268:   17(ivec4) Load 19(ballot)
-             269:26(float64_t) GroupNonUniformFAdd 178 PartitionedReduceNV 267 268
-             270:    116(ptr) AccessChain 31(data) 265 115 35
-                              Store 270 269
-             271:      6(int) Load 8(invocation)
-             272:    123(ptr) AccessChain 31(data) 63 115
-             273: 27(f64vec4) Load 272
-             274:122(f64vec2) VectorShuffle 273 273 0 1
-             275:   17(ivec4) Load 19(ballot)
-             276:122(f64vec2) GroupNonUniformFAdd 178 PartitionedReduceNV 274 275
-             277:    123(ptr) AccessChain 31(data) 271 115
-             278: 27(f64vec4) Load 277
-             279: 27(f64vec4) VectorShuffle 278 276 4 5 2 3
-                              Store 277 279
-             280:      6(int) Load 8(invocation)
-             281:    123(ptr) AccessChain 31(data) 33 115
-             282: 27(f64vec4) Load 281
-             283:130(f64vec3) VectorShuffle 282 282 0 1 2
-             284:   17(ivec4) Load 19(ballot)
-             285:130(f64vec3) GroupNonUniformFAdd 178 PartitionedReduceNV 283 284
-             286:    123(ptr) AccessChain 31(data) 280 115
+             212:     64(ptr) AccessChain 31(data) 34 63 35
+             213:     24(int) Load 212
+             214:   17(ivec4) Load 19(ballot)
+             215:     24(int) GroupNonUniformIAdd 178 PartitionedReduceNV 213 214
+             216:     64(ptr) AccessChain 31(data) 211 63 35
+                              Store 216 215
+             217:      6(int) Load 8(invocation)
+             218:     71(ptr) AccessChain 31(data) 63 63
+             219:   25(ivec4) Load 218
+             220:   70(ivec2) VectorShuffle 219 219 0 1
+             221:   17(ivec4) Load 19(ballot)
+             222:   70(ivec2) GroupNonUniformIAdd 178 PartitionedReduceNV 220 221
+             223:     64(ptr) AccessChain 31(data) 217 63 35
+             224:     24(int) CompositeExtract 222 0
+                              Store 223 224
+             225:     64(ptr) AccessChain 31(data) 217 63 189
+             226:     24(int) CompositeExtract 222 1
+                              Store 225 226
+             227:      6(int) Load 8(invocation)
+             228:     71(ptr) AccessChain 31(data) 33 63
+             229:   25(ivec4) Load 228
+             230:   78(ivec3) VectorShuffle 229 229 0 1 2
+             231:   17(ivec4) Load 19(ballot)
+             232:   78(ivec3) GroupNonUniformIAdd 178 PartitionedReduceNV 230 231
+             233:     64(ptr) AccessChain 31(data) 227 63 35
+             234:     24(int) CompositeExtract 232 0
+                              Store 233 234
+             235:     64(ptr) AccessChain 31(data) 227 63 189
+             236:     24(int) CompositeExtract 232 1
+                              Store 235 236
+             237:     64(ptr) AccessChain 31(data) 227 63 202
+             238:     24(int) CompositeExtract 232 2
+                              Store 237 238
+             239:      6(int) Load 8(invocation)
+             240:     71(ptr) AccessChain 31(data) 115 63
+             241:   25(ivec4) Load 240
+             242:   17(ivec4) Load 19(ballot)
+             243:   25(ivec4) GroupNonUniformIAdd 178 PartitionedReduceNV 241 242
+             244:     71(ptr) AccessChain 31(data) 239 63
+                              Store 244 243
+             245:      6(int) Load 8(invocation)
+             246:     90(ptr) AccessChain 31(data) 34 33 35
+             247:      6(int) Load 246
+             248:   17(ivec4) Load 19(ballot)
+             249:      6(int) GroupNonUniformIAdd 178 PartitionedReduceNV 247 248
+             250:     90(ptr) AccessChain 31(data) 245 33 35
+                              Store 250 249
+             251:      6(int) Load 8(invocation)
+             252:     40(ptr) AccessChain 31(data) 63 33
+             253:   17(ivec4) Load 252
+             254:   96(ivec2) VectorShuffle 253 253 0 1
+             255:   17(ivec4) Load 19(ballot)
+             256:   96(ivec2) GroupNonUniformIAdd 178 PartitionedReduceNV 254 255
+             257:     90(ptr) AccessChain 31(data) 251 33 35
+             258:      6(int) CompositeExtract 256 0
+                              Store 257 258
+             259:     90(ptr) AccessChain 31(data) 251 33 189
+             260:      6(int) CompositeExtract 256 1
+                              Store 259 260
+             261:      6(int) Load 8(invocation)
+             262:     40(ptr) AccessChain 31(data) 33 33
+             263:   17(ivec4) Load 262
+             264:  103(ivec3) VectorShuffle 263 263 0 1 2
+             265:   17(ivec4) Load 19(ballot)
+             266:  103(ivec3) GroupNonUniformIAdd 178 PartitionedReduceNV 264 265
+             267:     90(ptr) AccessChain 31(data) 261 33 35
+             268:      6(int) CompositeExtract 266 0
+                              Store 267 268
+             269:     90(ptr) AccessChain 31(data) 261 33 189
+             270:      6(int) CompositeExtract 266 1
+                              Store 269 270
+             271:     90(ptr) AccessChain 31(data) 261 33 202
+             272:      6(int) CompositeExtract 266 2
+                              Store 271 272
+             273:      6(int) Load 8(invocation)
+             274:     40(ptr) AccessChain 31(data) 115 33
+             275:   17(ivec4) Load 274
+             276:   17(ivec4) Load 19(ballot)
+             277:   17(ivec4) GroupNonUniformIAdd 178 PartitionedReduceNV 275 276
+             278:     40(ptr) AccessChain 31(data) 273 33
+                              Store 278 277
+             279:      6(int) Load 8(invocation)
+             280:    116(ptr) AccessChain 31(data) 34 115 35
+             281:26(float64_t) Load 280
+             282:   17(ivec4) Load 19(ballot)
+             283:26(float64_t) GroupNonUniformFAdd 178 PartitionedReduceNV 281 282
+             284:    116(ptr) AccessChain 31(data) 279 115 35
+                              Store 284 283
+             285:      6(int) Load 8(invocation)
+             286:    123(ptr) AccessChain 31(data) 63 115
              287: 27(f64vec4) Load 286
-             288: 27(f64vec4) VectorShuffle 287 285 4 5 6 3
-                              Store 286 288
-             289:      6(int) Load 8(invocation)
-             290:    123(ptr) AccessChain 31(data) 115 115
-             291: 27(f64vec4) Load 290
-             292:   17(ivec4) Load 19(ballot)
-             293: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedReduceNV 291 292
-             294:    123(ptr) AccessChain 31(data) 289 115
-                              Store 294 293
+             288:122(f64vec2) VectorShuffle 287 287 0 1
+             289:   17(ivec4) Load 19(ballot)
+             290:122(f64vec2) GroupNonUniformFAdd 178 PartitionedReduceNV 288 289
+             291:    116(ptr) AccessChain 31(data) 285 115 35
+             292:26(float64_t) CompositeExtract 290 0
+                              Store 291 292
+             293:    116(ptr) AccessChain 31(data) 285 115 189
+             294:26(float64_t) CompositeExtract 290 1
+                              Store 293 294
              295:      6(int) Load 8(invocation)
-             296:     36(ptr) AccessChain 31(data) 34 34 35
-             297:   22(float) Load 296
-             298:   17(ivec4) Load 19(ballot)
-             299:   22(float) GroupNonUniformFMul 178 PartitionedReduceNV 297 298
-             300:     36(ptr) AccessChain 31(data) 295 34 35
-                              Store 300 299
-             301:      6(int) Load 8(invocation)
-             302:     44(ptr) AccessChain 31(data) 63 34
-             303:   23(fvec4) Load 302
-             304:   43(fvec2) VectorShuffle 303 303 0 1
-             305:   17(ivec4) Load 19(ballot)
-             306:   43(fvec2) GroupNonUniformFMul 178 PartitionedReduceNV 304 305
-             307:     44(ptr) AccessChain 31(data) 301 34
-             308:   23(fvec4) Load 307
-             309:   23(fvec4) VectorShuffle 308 306 4 5 2 3
-                              Store 307 309
-             310:      6(int) Load 8(invocation)
-             311:     44(ptr) AccessChain 31(data) 33 34
-             312:   23(fvec4) Load 311
-             313:   51(fvec3) VectorShuffle 312 312 0 1 2
-             314:   17(ivec4) Load 19(ballot)
-             315:   51(fvec3) GroupNonUniformFMul 178 PartitionedReduceNV 313 314
-             316:     44(ptr) AccessChain 31(data) 310 34
-             317:   23(fvec4) Load 316
-             318:   23(fvec4) VectorShuffle 317 315 4 5 6 3
-                              Store 316 318
+             296:    123(ptr) AccessChain 31(data) 33 115
+             297: 27(f64vec4) Load 296
+             298:130(f64vec3) VectorShuffle 297 297 0 1 2
+             299:   17(ivec4) Load 19(ballot)
+             300:130(f64vec3) GroupNonUniformFAdd 178 PartitionedReduceNV 298 299
+             301:    116(ptr) AccessChain 31(data) 295 115 35
+             302:26(float64_t) CompositeExtract 300 0
+                              Store 301 302
+             303:    116(ptr) AccessChain 31(data) 295 115 189
+             304:26(float64_t) CompositeExtract 300 1
+                              Store 303 304
+             305:    116(ptr) AccessChain 31(data) 295 115 202
+             306:26(float64_t) CompositeExtract 300 2
+                              Store 305 306
+             307:      6(int) Load 8(invocation)
+             308:    123(ptr) AccessChain 31(data) 115 115
+             309: 27(f64vec4) Load 308
+             310:   17(ivec4) Load 19(ballot)
+             311: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedReduceNV 309 310
+             312:    123(ptr) AccessChain 31(data) 307 115
+                              Store 312 311
+             313:      6(int) Load 8(invocation)
+             314:     36(ptr) AccessChain 31(data) 34 34 35
+             315:   22(float) Load 314
+             316:   17(ivec4) Load 19(ballot)
+             317:   22(float) GroupNonUniformFMul 178 PartitionedReduceNV 315 316
+             318:     36(ptr) AccessChain 31(data) 313 34 35
+                              Store 318 317
              319:      6(int) Load 8(invocation)
-             320:     44(ptr) AccessChain 31(data) 115 34
+             320:     44(ptr) AccessChain 31(data) 63 34
              321:   23(fvec4) Load 320
-             322:   17(ivec4) Load 19(ballot)
-             323:   23(fvec4) GroupNonUniformFMul 178 PartitionedReduceNV 321 322
-             324:     44(ptr) AccessChain 31(data) 319 34
-                              Store 324 323
-             325:      6(int) Load 8(invocation)
-             326:     64(ptr) AccessChain 31(data) 34 63 35
-             327:     24(int) Load 326
-             328:   17(ivec4) Load 19(ballot)
-             329:     24(int) GroupNonUniformIMul 178 PartitionedReduceNV 327 328
-             330:     64(ptr) AccessChain 31(data) 325 63 35
-                              Store 330 329
-             331:      6(int) Load 8(invocation)
-             332:     71(ptr) AccessChain 31(data) 63 63
-             333:   25(ivec4) Load 332
-             334:   70(ivec2) VectorShuffle 333 333 0 1
-             335:   17(ivec4) Load 19(ballot)
-             336:   70(ivec2) GroupNonUniformIMul 178 PartitionedReduceNV 334 335
-             337:     71(ptr) AccessChain 31(data) 331 63
-             338:   25(ivec4) Load 337
-             339:   25(ivec4) VectorShuffle 338 336 4 5 2 3
-                              Store 337 339
-             340:      6(int) Load 8(invocation)
-             341:     71(ptr) AccessChain 31(data) 33 63
-             342:   25(ivec4) Load 341
-             343:   78(ivec3) VectorShuffle 342 342 0 1 2
+             322:   43(fvec2) VectorShuffle 321 321 0 1
+             323:   17(ivec4) Load 19(ballot)
+             324:   43(fvec2) GroupNonUniformFMul 178 PartitionedReduceNV 322 323
+             325:     36(ptr) AccessChain 31(data) 319 34 35
+             326:   22(float) CompositeExtract 324 0
+                              Store 325 326
+             327:     36(ptr) AccessChain 31(data) 319 34 189
+             328:   22(float) CompositeExtract 324 1
+                              Store 327 328
+             329:      6(int) Load 8(invocation)
+             330:     44(ptr) AccessChain 31(data) 33 34
+             331:   23(fvec4) Load 330
+             332:   51(fvec3) VectorShuffle 331 331 0 1 2
+             333:   17(ivec4) Load 19(ballot)
+             334:   51(fvec3) GroupNonUniformFMul 178 PartitionedReduceNV 332 333
+             335:     36(ptr) AccessChain 31(data) 329 34 35
+             336:   22(float) CompositeExtract 334 0
+                              Store 335 336
+             337:     36(ptr) AccessChain 31(data) 329 34 189
+             338:   22(float) CompositeExtract 334 1
+                              Store 337 338
+             339:     36(ptr) AccessChain 31(data) 329 34 202
+             340:   22(float) CompositeExtract 334 2
+                              Store 339 340
+             341:      6(int) Load 8(invocation)
+             342:     44(ptr) AccessChain 31(data) 115 34
+             343:   23(fvec4) Load 342
              344:   17(ivec4) Load 19(ballot)
-             345:   78(ivec3) GroupNonUniformIMul 178 PartitionedReduceNV 343 344
-             346:     71(ptr) AccessChain 31(data) 340 63
-             347:   25(ivec4) Load 346
-             348:   25(ivec4) VectorShuffle 347 345 4 5 6 3
-                              Store 346 348
-             349:      6(int) Load 8(invocation)
-             350:     71(ptr) AccessChain 31(data) 115 63
-             351:   25(ivec4) Load 350
-             352:   17(ivec4) Load 19(ballot)
-             353:   25(ivec4) GroupNonUniformIMul 178 PartitionedReduceNV 351 352
-             354:     71(ptr) AccessChain 31(data) 349 63
-                              Store 354 353
-             355:      6(int) Load 8(invocation)
-             356:     90(ptr) AccessChain 31(data) 34 33 35
-             357:      6(int) Load 356
-             358:   17(ivec4) Load 19(ballot)
-             359:      6(int) GroupNonUniformIMul 178 PartitionedReduceNV 357 358
-             360:     90(ptr) AccessChain 31(data) 355 33 35
-                              Store 360 359
-             361:      6(int) Load 8(invocation)
-             362:     40(ptr) AccessChain 31(data) 63 33
-             363:   17(ivec4) Load 362
-             364:   96(ivec2) VectorShuffle 363 363 0 1
-             365:   17(ivec4) Load 19(ballot)
-             366:   96(ivec2) GroupNonUniformIMul 178 PartitionedReduceNV 364 365
-             367:     40(ptr) AccessChain 31(data) 361 33
-             368:   17(ivec4) Load 367
-             369:   17(ivec4) VectorShuffle 368 366 4 5 2 3
-                              Store 367 369
-             370:      6(int) Load 8(invocation)
-             371:     40(ptr) AccessChain 31(data) 33 33
-             372:   17(ivec4) Load 371
-             373:  103(ivec3) VectorShuffle 372 372 0 1 2
-             374:   17(ivec4) Load 19(ballot)
-             375:  103(ivec3) GroupNonUniformIMul 178 PartitionedReduceNV 373 374
-             376:     40(ptr) AccessChain 31(data) 370 33
-             377:   17(ivec4) Load 376
-             378:   17(ivec4) VectorShuffle 377 375 4 5 6 3
-                              Store 376 378
-             379:      6(int) Load 8(invocation)
-             380:     40(ptr) AccessChain 31(data) 115 33
-             381:   17(ivec4) Load 380
-             382:   17(ivec4) Load 19(ballot)
-             383:   17(ivec4) GroupNonUniformIMul 178 PartitionedReduceNV 381 382
-             384:     40(ptr) AccessChain 31(data) 379 33
-                              Store 384 383
-             385:      6(int) Load 8(invocation)
-             386:    116(ptr) AccessChain 31(data) 34 115 35
-             387:26(float64_t) Load 386
-             388:   17(ivec4) Load 19(ballot)
-             389:26(float64_t) GroupNonUniformFMul 178 PartitionedReduceNV 387 388
-             390:    116(ptr) AccessChain 31(data) 385 115 35
-                              Store 390 389
-             391:      6(int) Load 8(invocation)
-             392:    123(ptr) AccessChain 31(data) 63 115
-             393: 27(f64vec4) Load 392
-             394:122(f64vec2) VectorShuffle 393 393 0 1
-             395:   17(ivec4) Load 19(ballot)
-             396:122(f64vec2) GroupNonUniformFMul 178 PartitionedReduceNV 394 395
-             397:    123(ptr) AccessChain 31(data) 391 115
-             398: 27(f64vec4) Load 397
-             399: 27(f64vec4) VectorShuffle 398 396 4 5 2 3
-                              Store 397 399
-             400:      6(int) Load 8(invocation)
-             401:    123(ptr) AccessChain 31(data) 33 115
-             402: 27(f64vec4) Load 401
-             403:130(f64vec3) VectorShuffle 402 402 0 1 2
-             404:   17(ivec4) Load 19(ballot)
-             405:130(f64vec3) GroupNonUniformFMul 178 PartitionedReduceNV 403 404
-             406:    123(ptr) AccessChain 31(data) 400 115
-             407: 27(f64vec4) Load 406
-             408: 27(f64vec4) VectorShuffle 407 405 4 5 6 3
-                              Store 406 408
+             345:   23(fvec4) GroupNonUniformFMul 178 PartitionedReduceNV 343 344
+             346:     44(ptr) AccessChain 31(data) 341 34
+                              Store 346 345
+             347:      6(int) Load 8(invocation)
+             348:     64(ptr) AccessChain 31(data) 34 63 35
+             349:     24(int) Load 348
+             350:   17(ivec4) Load 19(ballot)
+             351:     24(int) GroupNonUniformIMul 178 PartitionedReduceNV 349 350
+             352:     64(ptr) AccessChain 31(data) 347 63 35
+                              Store 352 351
+             353:      6(int) Load 8(invocation)
+             354:     71(ptr) AccessChain 31(data) 63 63
+             355:   25(ivec4) Load 354
+             356:   70(ivec2) VectorShuffle 355 355 0 1
+             357:   17(ivec4) Load 19(ballot)
+             358:   70(ivec2) GroupNonUniformIMul 178 PartitionedReduceNV 356 357
+             359:     64(ptr) AccessChain 31(data) 353 63 35
+             360:     24(int) CompositeExtract 358 0
+                              Store 359 360
+             361:     64(ptr) AccessChain 31(data) 353 63 189
+             362:     24(int) CompositeExtract 358 1
+                              Store 361 362
+             363:      6(int) Load 8(invocation)
+             364:     71(ptr) AccessChain 31(data) 33 63
+             365:   25(ivec4) Load 364
+             366:   78(ivec3) VectorShuffle 365 365 0 1 2
+             367:   17(ivec4) Load 19(ballot)
+             368:   78(ivec3) GroupNonUniformIMul 178 PartitionedReduceNV 366 367
+             369:     64(ptr) AccessChain 31(data) 363 63 35
+             370:     24(int) CompositeExtract 368 0
+                              Store 369 370
+             371:     64(ptr) AccessChain 31(data) 363 63 189
+             372:     24(int) CompositeExtract 368 1
+                              Store 371 372
+             373:     64(ptr) AccessChain 31(data) 363 63 202
+             374:     24(int) CompositeExtract 368 2
+                              Store 373 374
+             375:      6(int) Load 8(invocation)
+             376:     71(ptr) AccessChain 31(data) 115 63
+             377:   25(ivec4) Load 376
+             378:   17(ivec4) Load 19(ballot)
+             379:   25(ivec4) GroupNonUniformIMul 178 PartitionedReduceNV 377 378
+             380:     71(ptr) AccessChain 31(data) 375 63
+                              Store 380 379
+             381:      6(int) Load 8(invocation)
+             382:     90(ptr) AccessChain 31(data) 34 33 35
+             383:      6(int) Load 382
+             384:   17(ivec4) Load 19(ballot)
+             385:      6(int) GroupNonUniformIMul 178 PartitionedReduceNV 383 384
+             386:     90(ptr) AccessChain 31(data) 381 33 35
+                              Store 386 385
+             387:      6(int) Load 8(invocation)
+             388:     40(ptr) AccessChain 31(data) 63 33
+             389:   17(ivec4) Load 388
+             390:   96(ivec2) VectorShuffle 389 389 0 1
+             391:   17(ivec4) Load 19(ballot)
+             392:   96(ivec2) GroupNonUniformIMul 178 PartitionedReduceNV 390 391
+             393:     90(ptr) AccessChain 31(data) 387 33 35
+             394:      6(int) CompositeExtract 392 0
+                              Store 393 394
+             395:     90(ptr) AccessChain 31(data) 387 33 189
+             396:      6(int) CompositeExtract 392 1
+                              Store 395 396
+             397:      6(int) Load 8(invocation)
+             398:     40(ptr) AccessChain 31(data) 33 33
+             399:   17(ivec4) Load 398
+             400:  103(ivec3) VectorShuffle 399 399 0 1 2
+             401:   17(ivec4) Load 19(ballot)
+             402:  103(ivec3) GroupNonUniformIMul 178 PartitionedReduceNV 400 401
+             403:     90(ptr) AccessChain 31(data) 397 33 35
+             404:      6(int) CompositeExtract 402 0
+                              Store 403 404
+             405:     90(ptr) AccessChain 31(data) 397 33 189
+             406:      6(int) CompositeExtract 402 1
+                              Store 405 406
+             407:     90(ptr) AccessChain 31(data) 397 33 202
+             408:      6(int) CompositeExtract 402 2
+                              Store 407 408
              409:      6(int) Load 8(invocation)
-             410:    123(ptr) AccessChain 31(data) 115 115
-             411: 27(f64vec4) Load 410
+             410:     40(ptr) AccessChain 31(data) 115 33
+             411:   17(ivec4) Load 410
              412:   17(ivec4) Load 19(ballot)
-             413: 27(f64vec4) GroupNonUniformFMul 178 PartitionedReduceNV 411 412
-             414:    123(ptr) AccessChain 31(data) 409 115
+             413:   17(ivec4) GroupNonUniformIMul 178 PartitionedReduceNV 411 412
+             414:     40(ptr) AccessChain 31(data) 409 33
                               Store 414 413
              415:      6(int) Load 8(invocation)
-             416:     36(ptr) AccessChain 31(data) 34 34 35
-             417:   22(float) Load 416
+             416:    116(ptr) AccessChain 31(data) 34 115 35
+             417:26(float64_t) Load 416
              418:   17(ivec4) Load 19(ballot)
-             419:   22(float) GroupNonUniformFMin 178 PartitionedReduceNV 417 418
-             420:     36(ptr) AccessChain 31(data) 415 34 35
+             419:26(float64_t) GroupNonUniformFMul 178 PartitionedReduceNV 417 418
+             420:    116(ptr) AccessChain 31(data) 415 115 35
                               Store 420 419
              421:      6(int) Load 8(invocation)
-             422:     44(ptr) AccessChain 31(data) 63 34
-             423:   23(fvec4) Load 422
-             424:   43(fvec2) VectorShuffle 423 423 0 1
+             422:    123(ptr) AccessChain 31(data) 63 115
+             423: 27(f64vec4) Load 422
+             424:122(f64vec2) VectorShuffle 423 423 0 1
              425:   17(ivec4) Load 19(ballot)
-             426:   43(fvec2) GroupNonUniformFMin 178 PartitionedReduceNV 424 425
-             427:     44(ptr) AccessChain 31(data) 421 34
-             428:   23(fvec4) Load 427
-             429:   23(fvec4) VectorShuffle 428 426 4 5 2 3
-                              Store 427 429
-             430:      6(int) Load 8(invocation)
-             431:     44(ptr) AccessChain 31(data) 33 34
-             432:   23(fvec4) Load 431
-             433:   51(fvec3) VectorShuffle 432 432 0 1 2
-             434:   17(ivec4) Load 19(ballot)
-             435:   51(fvec3) GroupNonUniformFMin 178 PartitionedReduceNV 433 434
-             436:     44(ptr) AccessChain 31(data) 430 34
-             437:   23(fvec4) Load 436
-             438:   23(fvec4) VectorShuffle 437 435 4 5 6 3
-                              Store 436 438
-             439:      6(int) Load 8(invocation)
-             440:     44(ptr) AccessChain 31(data) 115 34
-             441:   23(fvec4) Load 440
-             442:   17(ivec4) Load 19(ballot)
-             443:   23(fvec4) GroupNonUniformFMin 178 PartitionedReduceNV 441 442
-             444:     44(ptr) AccessChain 31(data) 439 34
-                              Store 444 443
-             445:      6(int) Load 8(invocation)
-             446:     64(ptr) AccessChain 31(data) 34 63 35
-             447:     24(int) Load 446
-             448:   17(ivec4) Load 19(ballot)
-             449:     24(int) GroupNonUniformSMin 178 PartitionedReduceNV 447 448
-             450:     64(ptr) AccessChain 31(data) 445 63 35
-                              Store 450 449
-             451:      6(int) Load 8(invocation)
-             452:     71(ptr) AccessChain 31(data) 63 63
-             453:   25(ivec4) Load 452
-             454:   70(ivec2) VectorShuffle 453 453 0 1
-             455:   17(ivec4) Load 19(ballot)
-             456:   70(ivec2) GroupNonUniformSMin 178 PartitionedReduceNV 454 455
-             457:     71(ptr) AccessChain 31(data) 451 63
-             458:   25(ivec4) Load 457
-             459:   25(ivec4) VectorShuffle 458 456 4 5 2 3
-                              Store 457 459
-             460:      6(int) Load 8(invocation)
-             461:     71(ptr) AccessChain 31(data) 33 63
-             462:   25(ivec4) Load 461
-             463:   78(ivec3) VectorShuffle 462 462 0 1 2
-             464:   17(ivec4) Load 19(ballot)
-             465:   78(ivec3) GroupNonUniformSMin 178 PartitionedReduceNV 463 464
-             466:     71(ptr) AccessChain 31(data) 460 63
-             467:   25(ivec4) Load 466
-             468:   25(ivec4) VectorShuffle 467 465 4 5 6 3
-                              Store 466 468
-             469:      6(int) Load 8(invocation)
-             470:     71(ptr) AccessChain 31(data) 115 63
-             471:   25(ivec4) Load 470
-             472:   17(ivec4) Load 19(ballot)
-             473:   25(ivec4) GroupNonUniformSMin 178 PartitionedReduceNV 471 472
-             474:     71(ptr) AccessChain 31(data) 469 63
-                              Store 474 473
-             475:      6(int) Load 8(invocation)
-             476:     90(ptr) AccessChain 31(data) 34 33 35
-             477:      6(int) Load 476
-             478:   17(ivec4) Load 19(ballot)
-             479:      6(int) GroupNonUniformUMin 178 PartitionedReduceNV 477 478
-             480:     90(ptr) AccessChain 31(data) 475 33 35
-                              Store 480 479
-             481:      6(int) Load 8(invocation)
-             482:     40(ptr) AccessChain 31(data) 63 33
-             483:   17(ivec4) Load 482
-             484:   96(ivec2) VectorShuffle 483 483 0 1
-             485:   17(ivec4) Load 19(ballot)
-             486:   96(ivec2) GroupNonUniformUMin 178 PartitionedReduceNV 484 485
-             487:     40(ptr) AccessChain 31(data) 481 33
-             488:   17(ivec4) Load 487
-             489:   17(ivec4) VectorShuffle 488 486 4 5 2 3
-                              Store 487 489
-             490:      6(int) Load 8(invocation)
-             491:     40(ptr) AccessChain 31(data) 33 33
-             492:   17(ivec4) Load 491
-             493:  103(ivec3) VectorShuffle 492 492 0 1 2
-             494:   17(ivec4) Load 19(ballot)
-             495:  103(ivec3) GroupNonUniformUMin 178 PartitionedReduceNV 493 494
-             496:     40(ptr) AccessChain 31(data) 490 33
-             497:   17(ivec4) Load 496
-             498:   17(ivec4) VectorShuffle 497 495 4 5 6 3
-                              Store 496 498
+             426:122(f64vec2) GroupNonUniformFMul 178 PartitionedReduceNV 424 425
+             427:    116(ptr) AccessChain 31(data) 421 115 35
+             428:26(float64_t) CompositeExtract 426 0
+                              Store 427 428
+             429:    116(ptr) AccessChain 31(data) 421 115 189
+             430:26(float64_t) CompositeExtract 426 1
+                              Store 429 430
+             431:      6(int) Load 8(invocation)
+             432:    123(ptr) AccessChain 31(data) 33 115
+             433: 27(f64vec4) Load 432
+             434:130(f64vec3) VectorShuffle 433 433 0 1 2
+             435:   17(ivec4) Load 19(ballot)
+             436:130(f64vec3) GroupNonUniformFMul 178 PartitionedReduceNV 434 435
+             437:    116(ptr) AccessChain 31(data) 431 115 35
+             438:26(float64_t) CompositeExtract 436 0
+                              Store 437 438
+             439:    116(ptr) AccessChain 31(data) 431 115 189
+             440:26(float64_t) CompositeExtract 436 1
+                              Store 439 440
+             441:    116(ptr) AccessChain 31(data) 431 115 202
+             442:26(float64_t) CompositeExtract 436 2
+                              Store 441 442
+             443:      6(int) Load 8(invocation)
+             444:    123(ptr) AccessChain 31(data) 115 115
+             445: 27(f64vec4) Load 444
+             446:   17(ivec4) Load 19(ballot)
+             447: 27(f64vec4) GroupNonUniformFMul 178 PartitionedReduceNV 445 446
+             448:    123(ptr) AccessChain 31(data) 443 115
+                              Store 448 447
+             449:      6(int) Load 8(invocation)
+             450:     36(ptr) AccessChain 31(data) 34 34 35
+             451:   22(float) Load 450
+             452:   17(ivec4) Load 19(ballot)
+             453:   22(float) GroupNonUniformFMin 178 PartitionedReduceNV 451 452
+             454:     36(ptr) AccessChain 31(data) 449 34 35
+                              Store 454 453
+             455:      6(int) Load 8(invocation)
+             456:     44(ptr) AccessChain 31(data) 63 34
+             457:   23(fvec4) Load 456
+             458:   43(fvec2) VectorShuffle 457 457 0 1
+             459:   17(ivec4) Load 19(ballot)
+             460:   43(fvec2) GroupNonUniformFMin 178 PartitionedReduceNV 458 459
+             461:     36(ptr) AccessChain 31(data) 455 34 35
+             462:   22(float) CompositeExtract 460 0
+                              Store 461 462
+             463:     36(ptr) AccessChain 31(data) 455 34 189
+             464:   22(float) CompositeExtract 460 1
+                              Store 463 464
+             465:      6(int) Load 8(invocation)
+             466:     44(ptr) AccessChain 31(data) 33 34
+             467:   23(fvec4) Load 466
+             468:   51(fvec3) VectorShuffle 467 467 0 1 2
+             469:   17(ivec4) Load 19(ballot)
+             470:   51(fvec3) GroupNonUniformFMin 178 PartitionedReduceNV 468 469
+             471:     36(ptr) AccessChain 31(data) 465 34 35
+             472:   22(float) CompositeExtract 470 0
+                              Store 471 472
+             473:     36(ptr) AccessChain 31(data) 465 34 189
+             474:   22(float) CompositeExtract 470 1
+                              Store 473 474
+             475:     36(ptr) AccessChain 31(data) 465 34 202
+             476:   22(float) CompositeExtract 470 2
+                              Store 475 476
+             477:      6(int) Load 8(invocation)
+             478:     44(ptr) AccessChain 31(data) 115 34
+             479:   23(fvec4) Load 478
+             480:   17(ivec4) Load 19(ballot)
+             481:   23(fvec4) GroupNonUniformFMin 178 PartitionedReduceNV 479 480
+             482:     44(ptr) AccessChain 31(data) 477 34
+                              Store 482 481
+             483:      6(int) Load 8(invocation)
+             484:     64(ptr) AccessChain 31(data) 34 63 35
+             485:     24(int) Load 484
+             486:   17(ivec4) Load 19(ballot)
+             487:     24(int) GroupNonUniformSMin 178 PartitionedReduceNV 485 486
+             488:     64(ptr) AccessChain 31(data) 483 63 35
+                              Store 488 487
+             489:      6(int) Load 8(invocation)
+             490:     71(ptr) AccessChain 31(data) 63 63
+             491:   25(ivec4) Load 490
+             492:   70(ivec2) VectorShuffle 491 491 0 1
+             493:   17(ivec4) Load 19(ballot)
+             494:   70(ivec2) GroupNonUniformSMin 178 PartitionedReduceNV 492 493
+             495:     64(ptr) AccessChain 31(data) 489 63 35
+             496:     24(int) CompositeExtract 494 0
+                              Store 495 496
+             497:     64(ptr) AccessChain 31(data) 489 63 189
+             498:     24(int) CompositeExtract 494 1
+                              Store 497 498
              499:      6(int) Load 8(invocation)
-             500:     40(ptr) AccessChain 31(data) 115 33
-             501:   17(ivec4) Load 500
-             502:   17(ivec4) Load 19(ballot)
-             503:   17(ivec4) GroupNonUniformUMin 178 PartitionedReduceNV 501 502
-             504:     40(ptr) AccessChain 31(data) 499 33
-                              Store 504 503
-             505:      6(int) Load 8(invocation)
-             506:    116(ptr) AccessChain 31(data) 34 115 35
-             507:26(float64_t) Load 506
-             508:   17(ivec4) Load 19(ballot)
-             509:26(float64_t) GroupNonUniformFMin 178 PartitionedReduceNV 507 508
-             510:    116(ptr) AccessChain 31(data) 505 115 35
-                              Store 510 509
+             500:     71(ptr) AccessChain 31(data) 33 63
+             501:   25(ivec4) Load 500
+             502:   78(ivec3) VectorShuffle 501 501 0 1 2
+             503:   17(ivec4) Load 19(ballot)
+             504:   78(ivec3) GroupNonUniformSMin 178 PartitionedReduceNV 502 503
+             505:     64(ptr) AccessChain 31(data) 499 63 35
+             506:     24(int) CompositeExtract 504 0
+                              Store 505 506
+             507:     64(ptr) AccessChain 31(data) 499 63 189
+             508:     24(int) CompositeExtract 504 1
+                              Store 507 508
+             509:     64(ptr) AccessChain 31(data) 499 63 202
+             510:     24(int) CompositeExtract 504 2
+                              Store 509 510
              511:      6(int) Load 8(invocation)
-             512:    123(ptr) AccessChain 31(data) 63 115
-             513: 27(f64vec4) Load 512
-             514:122(f64vec2) VectorShuffle 513 513 0 1
-             515:   17(ivec4) Load 19(ballot)
-             516:122(f64vec2) GroupNonUniformFMin 178 PartitionedReduceNV 514 515
-             517:    123(ptr) AccessChain 31(data) 511 115
-             518: 27(f64vec4) Load 517
-             519: 27(f64vec4) VectorShuffle 518 516 4 5 2 3
-                              Store 517 519
-             520:      6(int) Load 8(invocation)
-             521:    123(ptr) AccessChain 31(data) 33 115
-             522: 27(f64vec4) Load 521
-             523:130(f64vec3) VectorShuffle 522 522 0 1 2
-             524:   17(ivec4) Load 19(ballot)
-             525:130(f64vec3) GroupNonUniformFMin 178 PartitionedReduceNV 523 524
-             526:    123(ptr) AccessChain 31(data) 520 115
-             527: 27(f64vec4) Load 526
-             528: 27(f64vec4) VectorShuffle 527 525 4 5 6 3
-                              Store 526 528
-             529:      6(int) Load 8(invocation)
-             530:    123(ptr) AccessChain 31(data) 115 115
-             531: 27(f64vec4) Load 530
-             532:   17(ivec4) Load 19(ballot)
-             533: 27(f64vec4) GroupNonUniformFMin 178 PartitionedReduceNV 531 532
-             534:    123(ptr) AccessChain 31(data) 529 115
-                              Store 534 533
-             535:      6(int) Load 8(invocation)
-             536:     36(ptr) AccessChain 31(data) 34 34 35
-             537:   22(float) Load 536
-             538:   17(ivec4) Load 19(ballot)
-             539:   22(float) GroupNonUniformFMax 178 PartitionedReduceNV 537 538
-             540:     36(ptr) AccessChain 31(data) 535 34 35
-                              Store 540 539
-             541:      6(int) Load 8(invocation)
-             542:     44(ptr) AccessChain 31(data) 63 34
-             543:   23(fvec4) Load 542
-             544:   43(fvec2) VectorShuffle 543 543 0 1
-             545:   17(ivec4) Load 19(ballot)
-             546:   43(fvec2) GroupNonUniformFMax 178 PartitionedReduceNV 544 545
-             547:     44(ptr) AccessChain 31(data) 541 34
-             548:   23(fvec4) Load 547
-             549:   23(fvec4) VectorShuffle 548 546 4 5 2 3
-                              Store 547 549
-             550:      6(int) Load 8(invocation)
-             551:     44(ptr) AccessChain 31(data) 33 34
-             552:   23(fvec4) Load 551
-             553:   51(fvec3) VectorShuffle 552 552 0 1 2
+             512:     71(ptr) AccessChain 31(data) 115 63
+             513:   25(ivec4) Load 512
+             514:   17(ivec4) Load 19(ballot)
+             515:   25(ivec4) GroupNonUniformSMin 178 PartitionedReduceNV 513 514
+             516:     71(ptr) AccessChain 31(data) 511 63
+                              Store 516 515
+             517:      6(int) Load 8(invocation)
+             518:     90(ptr) AccessChain 31(data) 34 33 35
+             519:      6(int) Load 518
+             520:   17(ivec4) Load 19(ballot)
+             521:      6(int) GroupNonUniformUMin 178 PartitionedReduceNV 519 520
+             522:     90(ptr) AccessChain 31(data) 517 33 35
+                              Store 522 521
+             523:      6(int) Load 8(invocation)
+             524:     40(ptr) AccessChain 31(data) 63 33
+             525:   17(ivec4) Load 524
+             526:   96(ivec2) VectorShuffle 525 525 0 1
+             527:   17(ivec4) Load 19(ballot)
+             528:   96(ivec2) GroupNonUniformUMin 178 PartitionedReduceNV 526 527
+             529:     90(ptr) AccessChain 31(data) 523 33 35
+             530:      6(int) CompositeExtract 528 0
+                              Store 529 530
+             531:     90(ptr) AccessChain 31(data) 523 33 189
+             532:      6(int) CompositeExtract 528 1
+                              Store 531 532
+             533:      6(int) Load 8(invocation)
+             534:     40(ptr) AccessChain 31(data) 33 33
+             535:   17(ivec4) Load 534
+             536:  103(ivec3) VectorShuffle 535 535 0 1 2
+             537:   17(ivec4) Load 19(ballot)
+             538:  103(ivec3) GroupNonUniformUMin 178 PartitionedReduceNV 536 537
+             539:     90(ptr) AccessChain 31(data) 533 33 35
+             540:      6(int) CompositeExtract 538 0
+                              Store 539 540
+             541:     90(ptr) AccessChain 31(data) 533 33 189
+             542:      6(int) CompositeExtract 538 1
+                              Store 541 542
+             543:     90(ptr) AccessChain 31(data) 533 33 202
+             544:      6(int) CompositeExtract 538 2
+                              Store 543 544
+             545:      6(int) Load 8(invocation)
+             546:     40(ptr) AccessChain 31(data) 115 33
+             547:   17(ivec4) Load 546
+             548:   17(ivec4) Load 19(ballot)
+             549:   17(ivec4) GroupNonUniformUMin 178 PartitionedReduceNV 547 548
+             550:     40(ptr) AccessChain 31(data) 545 33
+                              Store 550 549
+             551:      6(int) Load 8(invocation)
+             552:    116(ptr) AccessChain 31(data) 34 115 35
+             553:26(float64_t) Load 552
              554:   17(ivec4) Load 19(ballot)
-             555:   51(fvec3) GroupNonUniformFMax 178 PartitionedReduceNV 553 554
-             556:     44(ptr) AccessChain 31(data) 550 34
-             557:   23(fvec4) Load 556
-             558:   23(fvec4) VectorShuffle 557 555 4 5 6 3
-                              Store 556 558
-             559:      6(int) Load 8(invocation)
-             560:     44(ptr) AccessChain 31(data) 115 34
-             561:   23(fvec4) Load 560
-             562:   17(ivec4) Load 19(ballot)
-             563:   23(fvec4) GroupNonUniformFMax 178 PartitionedReduceNV 561 562
-             564:     44(ptr) AccessChain 31(data) 559 34
-                              Store 564 563
-             565:      6(int) Load 8(invocation)
-             566:     64(ptr) AccessChain 31(data) 34 63 35
-             567:     24(int) Load 566
-             568:   17(ivec4) Load 19(ballot)
-             569:     24(int) GroupNonUniformSMax 178 PartitionedReduceNV 567 568
-             570:     64(ptr) AccessChain 31(data) 565 63 35
-                              Store 570 569
-             571:      6(int) Load 8(invocation)
-             572:     71(ptr) AccessChain 31(data) 63 63
-             573:   25(ivec4) Load 572
-             574:   70(ivec2) VectorShuffle 573 573 0 1
-             575:   17(ivec4) Load 19(ballot)
-             576:   70(ivec2) GroupNonUniformSMax 178 PartitionedReduceNV 574 575
-             577:     71(ptr) AccessChain 31(data) 571 63
-             578:   25(ivec4) Load 577
-             579:   25(ivec4) VectorShuffle 578 576 4 5 2 3
-                              Store 577 579
-             580:      6(int) Load 8(invocation)
-             581:     71(ptr) AccessChain 31(data) 33 63
-             582:   25(ivec4) Load 581
-             583:   78(ivec3) VectorShuffle 582 582 0 1 2
-             584:   17(ivec4) Load 19(ballot)
-             585:   78(ivec3) GroupNonUniformSMax 178 PartitionedReduceNV 583 584
-             586:     71(ptr) AccessChain 31(data) 580 63
-             587:   25(ivec4) Load 586
-             588:   25(ivec4) VectorShuffle 587 585 4 5 6 3
-                              Store 586 588
-             589:      6(int) Load 8(invocation)
-             590:     71(ptr) AccessChain 31(data) 115 63
-             591:   25(ivec4) Load 590
-             592:   17(ivec4) Load 19(ballot)
-             593:   25(ivec4) GroupNonUniformSMax 178 PartitionedReduceNV 591 592
-             594:     71(ptr) AccessChain 31(data) 589 63
-                              Store 594 593
-             595:      6(int) Load 8(invocation)
-             596:     90(ptr) AccessChain 31(data) 34 33 35
-             597:      6(int) Load 596
-             598:   17(ivec4) Load 19(ballot)
-             599:      6(int) GroupNonUniformUMax 178 PartitionedReduceNV 597 598
-             600:     90(ptr) AccessChain 31(data) 595 33 35
-                              Store 600 599
+             555:26(float64_t) GroupNonUniformFMin 178 PartitionedReduceNV 553 554
+             556:    116(ptr) AccessChain 31(data) 551 115 35
+                              Store 556 555
+             557:      6(int) Load 8(invocation)
+             558:    123(ptr) AccessChain 31(data) 63 115
+             559: 27(f64vec4) Load 558
+             560:122(f64vec2) VectorShuffle 559 559 0 1
+             561:   17(ivec4) Load 19(ballot)
+             562:122(f64vec2) GroupNonUniformFMin 178 PartitionedReduceNV 560 561
+             563:    116(ptr) AccessChain 31(data) 557 115 35
+             564:26(float64_t) CompositeExtract 562 0
+                              Store 563 564
+             565:    116(ptr) AccessChain 31(data) 557 115 189
+             566:26(float64_t) CompositeExtract 562 1
+                              Store 565 566
+             567:      6(int) Load 8(invocation)
+             568:    123(ptr) AccessChain 31(data) 33 115
+             569: 27(f64vec4) Load 568
+             570:130(f64vec3) VectorShuffle 569 569 0 1 2
+             571:   17(ivec4) Load 19(ballot)
+             572:130(f64vec3) GroupNonUniformFMin 178 PartitionedReduceNV 570 571
+             573:    116(ptr) AccessChain 31(data) 567 115 35
+             574:26(float64_t) CompositeExtract 572 0
+                              Store 573 574
+             575:    116(ptr) AccessChain 31(data) 567 115 189
+             576:26(float64_t) CompositeExtract 572 1
+                              Store 575 576
+             577:    116(ptr) AccessChain 31(data) 567 115 202
+             578:26(float64_t) CompositeExtract 572 2
+                              Store 577 578
+             579:      6(int) Load 8(invocation)
+             580:    123(ptr) AccessChain 31(data) 115 115
+             581: 27(f64vec4) Load 580
+             582:   17(ivec4) Load 19(ballot)
+             583: 27(f64vec4) GroupNonUniformFMin 178 PartitionedReduceNV 581 582
+             584:    123(ptr) AccessChain 31(data) 579 115
+                              Store 584 583
+             585:      6(int) Load 8(invocation)
+             586:     36(ptr) AccessChain 31(data) 34 34 35
+             587:   22(float) Load 586
+             588:   17(ivec4) Load 19(ballot)
+             589:   22(float) GroupNonUniformFMax 178 PartitionedReduceNV 587 588
+             590:     36(ptr) AccessChain 31(data) 585 34 35
+                              Store 590 589
+             591:      6(int) Load 8(invocation)
+             592:     44(ptr) AccessChain 31(data) 63 34
+             593:   23(fvec4) Load 592
+             594:   43(fvec2) VectorShuffle 593 593 0 1
+             595:   17(ivec4) Load 19(ballot)
+             596:   43(fvec2) GroupNonUniformFMax 178 PartitionedReduceNV 594 595
+             597:     36(ptr) AccessChain 31(data) 591 34 35
+             598:   22(float) CompositeExtract 596 0
+                              Store 597 598
+             599:     36(ptr) AccessChain 31(data) 591 34 189
+             600:   22(float) CompositeExtract 596 1
+                              Store 599 600
              601:      6(int) Load 8(invocation)
-             602:     40(ptr) AccessChain 31(data) 63 33
-             603:   17(ivec4) Load 602
-             604:   96(ivec2) VectorShuffle 603 603 0 1
+             602:     44(ptr) AccessChain 31(data) 33 34
+             603:   23(fvec4) Load 602
+             604:   51(fvec3) VectorShuffle 603 603 0 1 2
              605:   17(ivec4) Load 19(ballot)
-             606:   96(ivec2) GroupNonUniformUMax 178 PartitionedReduceNV 604 605
-             607:     40(ptr) AccessChain 31(data) 601 33
-             608:   17(ivec4) Load 607
-             609:   17(ivec4) VectorShuffle 608 606 4 5 2 3
-                              Store 607 609
-             610:      6(int) Load 8(invocation)
-             611:     40(ptr) AccessChain 31(data) 33 33
-             612:   17(ivec4) Load 611
-             613:  103(ivec3) VectorShuffle 612 612 0 1 2
-             614:   17(ivec4) Load 19(ballot)
-             615:  103(ivec3) GroupNonUniformUMax 178 PartitionedReduceNV 613 614
-             616:     40(ptr) AccessChain 31(data) 610 33
-             617:   17(ivec4) Load 616
-             618:   17(ivec4) VectorShuffle 617 615 4 5 6 3
-                              Store 616 618
+             606:   51(fvec3) GroupNonUniformFMax 178 PartitionedReduceNV 604 605
+             607:     36(ptr) AccessChain 31(data) 601 34 35
+             608:   22(float) CompositeExtract 606 0
+                              Store 607 608
+             609:     36(ptr) AccessChain 31(data) 601 34 189
+             610:   22(float) CompositeExtract 606 1
+                              Store 609 610
+             611:     36(ptr) AccessChain 31(data) 601 34 202
+             612:   22(float) CompositeExtract 606 2
+                              Store 611 612
+             613:      6(int) Load 8(invocation)
+             614:     44(ptr) AccessChain 31(data) 115 34
+             615:   23(fvec4) Load 614
+             616:   17(ivec4) Load 19(ballot)
+             617:   23(fvec4) GroupNonUniformFMax 178 PartitionedReduceNV 615 616
+             618:     44(ptr) AccessChain 31(data) 613 34
+                              Store 618 617
              619:      6(int) Load 8(invocation)
-             620:     40(ptr) AccessChain 31(data) 115 33
-             621:   17(ivec4) Load 620
+             620:     64(ptr) AccessChain 31(data) 34 63 35
+             621:     24(int) Load 620
              622:   17(ivec4) Load 19(ballot)
-             623:   17(ivec4) GroupNonUniformUMax 178 PartitionedReduceNV 621 622
-             624:     40(ptr) AccessChain 31(data) 619 33
+             623:     24(int) GroupNonUniformSMax 178 PartitionedReduceNV 621 622
+             624:     64(ptr) AccessChain 31(data) 619 63 35
                               Store 624 623
              625:      6(int) Load 8(invocation)
-             626:    116(ptr) AccessChain 31(data) 34 115 35
-             627:26(float64_t) Load 626
-             628:   17(ivec4) Load 19(ballot)
-             629:26(float64_t) GroupNonUniformFMax 178 PartitionedReduceNV 627 628
-             630:    116(ptr) AccessChain 31(data) 625 115 35
-                              Store 630 629
-             631:      6(int) Load 8(invocation)
-             632:    123(ptr) AccessChain 31(data) 63 115
-             633: 27(f64vec4) Load 632
-             634:122(f64vec2) VectorShuffle 633 633 0 1
-             635:   17(ivec4) Load 19(ballot)
-             636:122(f64vec2) GroupNonUniformFMax 178 PartitionedReduceNV 634 635
-             637:    123(ptr) AccessChain 31(data) 631 115
-             638: 27(f64vec4) Load 637
-             639: 27(f64vec4) VectorShuffle 638 636 4 5 2 3
-                              Store 637 639
-             640:      6(int) Load 8(invocation)
-             641:    123(ptr) AccessChain 31(data) 33 115
-             642: 27(f64vec4) Load 641
-             643:130(f64vec3) VectorShuffle 642 642 0 1 2
-             644:   17(ivec4) Load 19(ballot)
-             645:130(f64vec3) GroupNonUniformFMax 178 PartitionedReduceNV 643 644
-             646:    123(ptr) AccessChain 31(data) 640 115
-             647: 27(f64vec4) Load 646
-             648: 27(f64vec4) VectorShuffle 647 645 4 5 6 3
-                              Store 646 648
-             649:      6(int) Load 8(invocation)
-             650:    123(ptr) AccessChain 31(data) 115 115
-             651: 27(f64vec4) Load 650
-             652:   17(ivec4) Load 19(ballot)
-             653: 27(f64vec4) GroupNonUniformFMax 178 PartitionedReduceNV 651 652
-             654:    123(ptr) AccessChain 31(data) 649 115
-                              Store 654 653
-             655:      6(int) Load 8(invocation)
-             656:     64(ptr) AccessChain 31(data) 34 63 35
-             657:     24(int) Load 656
-             658:   17(ivec4) Load 19(ballot)
-             659:     24(int) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 657 658
-             660:     64(ptr) AccessChain 31(data) 655 63 35
-                              Store 660 659
-             661:      6(int) Load 8(invocation)
-             662:     71(ptr) AccessChain 31(data) 63 63
-             663:   25(ivec4) Load 662
-             664:   70(ivec2) VectorShuffle 663 663 0 1
-             665:   17(ivec4) Load 19(ballot)
-             666:   70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 664 665
-             667:     71(ptr) AccessChain 31(data) 661 63
-             668:   25(ivec4) Load 667
-             669:   25(ivec4) VectorShuffle 668 666 4 5 2 3
-                              Store 667 669
-             670:      6(int) Load 8(invocation)
-             671:     71(ptr) AccessChain 31(data) 33 63
-             672:   25(ivec4) Load 671
-             673:   78(ivec3) VectorShuffle 672 672 0 1 2
-             674:   17(ivec4) Load 19(ballot)
-             675:   78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 673 674
-             676:     71(ptr) AccessChain 31(data) 670 63
-             677:   25(ivec4) Load 676
-             678:   25(ivec4) VectorShuffle 677 675 4 5 6 3
-                              Store 676 678
-             679:      6(int) Load 8(invocation)
-             680:     71(ptr) AccessChain 31(data) 115 63
-             681:   25(ivec4) Load 680
-             682:   17(ivec4) Load 19(ballot)
-             683:   25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 681 682
-             684:     71(ptr) AccessChain 31(data) 679 63
-                              Store 684 683
-             685:      6(int) Load 8(invocation)
-             686:     90(ptr) AccessChain 31(data) 34 33 35
-             687:      6(int) Load 686
-             688:   17(ivec4) Load 19(ballot)
-             689:      6(int) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 687 688
-             690:     90(ptr) AccessChain 31(data) 685 33 35
-                              Store 690 689
-             691:      6(int) Load 8(invocation)
-             692:     40(ptr) AccessChain 31(data) 63 33
-             693:   17(ivec4) Load 692
-             694:   96(ivec2) VectorShuffle 693 693 0 1
-             695:   17(ivec4) Load 19(ballot)
-             696:   96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 694 695
-             697:     40(ptr) AccessChain 31(data) 691 33
-             698:   17(ivec4) Load 697
-             699:   17(ivec4) VectorShuffle 698 696 4 5 2 3
-                              Store 697 699
-             700:      6(int) Load 8(invocation)
-             701:     40(ptr) AccessChain 31(data) 33 33
-             702:   17(ivec4) Load 701
-             703:  103(ivec3) VectorShuffle 702 702 0 1 2
-             704:   17(ivec4) Load 19(ballot)
-             705:  103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 703 704
-             706:     40(ptr) AccessChain 31(data) 700 33
-             707:   17(ivec4) Load 706
-             708:   17(ivec4) VectorShuffle 707 705 4 5 6 3
-                              Store 706 708
-             709:      6(int) Load 8(invocation)
-             710:     40(ptr) AccessChain 31(data) 115 33
-             711:   17(ivec4) Load 710
-             712:   17(ivec4) Load 19(ballot)
-             713:   17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 711 712
-             714:     40(ptr) AccessChain 31(data) 709 33
-                              Store 714 713
+             626:     71(ptr) AccessChain 31(data) 63 63
+             627:   25(ivec4) Load 626
+             628:   70(ivec2) VectorShuffle 627 627 0 1
+             629:   17(ivec4) Load 19(ballot)
+             630:   70(ivec2) GroupNonUniformSMax 178 PartitionedReduceNV 628 629
+             631:     64(ptr) AccessChain 31(data) 625 63 35
+             632:     24(int) CompositeExtract 630 0
+                              Store 631 632
+             633:     64(ptr) AccessChain 31(data) 625 63 189
+             634:     24(int) CompositeExtract 630 1
+                              Store 633 634
+             635:      6(int) Load 8(invocation)
+             636:     71(ptr) AccessChain 31(data) 33 63
+             637:   25(ivec4) Load 636
+             638:   78(ivec3) VectorShuffle 637 637 0 1 2
+             639:   17(ivec4) Load 19(ballot)
+             640:   78(ivec3) GroupNonUniformSMax 178 PartitionedReduceNV 638 639
+             641:     64(ptr) AccessChain 31(data) 635 63 35
+             642:     24(int) CompositeExtract 640 0
+                              Store 641 642
+             643:     64(ptr) AccessChain 31(data) 635 63 189
+             644:     24(int) CompositeExtract 640 1
+                              Store 643 644
+             645:     64(ptr) AccessChain 31(data) 635 63 202
+             646:     24(int) CompositeExtract 640 2
+                              Store 645 646
+             647:      6(int) Load 8(invocation)
+             648:     71(ptr) AccessChain 31(data) 115 63
+             649:   25(ivec4) Load 648
+             650:   17(ivec4) Load 19(ballot)
+             651:   25(ivec4) GroupNonUniformSMax 178 PartitionedReduceNV 649 650
+             652:     71(ptr) AccessChain 31(data) 647 63
+                              Store 652 651
+             653:      6(int) Load 8(invocation)
+             654:     90(ptr) AccessChain 31(data) 34 33 35
+             655:      6(int) Load 654
+             656:   17(ivec4) Load 19(ballot)
+             657:      6(int) GroupNonUniformUMax 178 PartitionedReduceNV 655 656
+             658:     90(ptr) AccessChain 31(data) 653 33 35
+                              Store 658 657
+             659:      6(int) Load 8(invocation)
+             660:     40(ptr) AccessChain 31(data) 63 33
+             661:   17(ivec4) Load 660
+             662:   96(ivec2) VectorShuffle 661 661 0 1
+             663:   17(ivec4) Load 19(ballot)
+             664:   96(ivec2) GroupNonUniformUMax 178 PartitionedReduceNV 662 663
+             665:     90(ptr) AccessChain 31(data) 659 33 35
+             666:      6(int) CompositeExtract 664 0
+                              Store 665 666
+             667:     90(ptr) AccessChain 31(data) 659 33 189
+             668:      6(int) CompositeExtract 664 1
+                              Store 667 668
+             669:      6(int) Load 8(invocation)
+             670:     40(ptr) AccessChain 31(data) 33 33
+             671:   17(ivec4) Load 670
+             672:  103(ivec3) VectorShuffle 671 671 0 1 2
+             673:   17(ivec4) Load 19(ballot)
+             674:  103(ivec3) GroupNonUniformUMax 178 PartitionedReduceNV 672 673
+             675:     90(ptr) AccessChain 31(data) 669 33 35
+             676:      6(int) CompositeExtract 674 0
+                              Store 675 676
+             677:     90(ptr) AccessChain 31(data) 669 33 189
+             678:      6(int) CompositeExtract 674 1
+                              Store 677 678
+             679:     90(ptr) AccessChain 31(data) 669 33 202
+             680:      6(int) CompositeExtract 674 2
+                              Store 679 680
+             681:      6(int) Load 8(invocation)
+             682:     40(ptr) AccessChain 31(data) 115 33
+             683:   17(ivec4) Load 682
+             684:   17(ivec4) Load 19(ballot)
+             685:   17(ivec4) GroupNonUniformUMax 178 PartitionedReduceNV 683 684
+             686:     40(ptr) AccessChain 31(data) 681 33
+                              Store 686 685
+             687:      6(int) Load 8(invocation)
+             688:    116(ptr) AccessChain 31(data) 34 115 35
+             689:26(float64_t) Load 688
+             690:   17(ivec4) Load 19(ballot)
+             691:26(float64_t) GroupNonUniformFMax 178 PartitionedReduceNV 689 690
+             692:    116(ptr) AccessChain 31(data) 687 115 35
+                              Store 692 691
+             693:      6(int) Load 8(invocation)
+             694:    123(ptr) AccessChain 31(data) 63 115
+             695: 27(f64vec4) Load 694
+             696:122(f64vec2) VectorShuffle 695 695 0 1
+             697:   17(ivec4) Load 19(ballot)
+             698:122(f64vec2) GroupNonUniformFMax 178 PartitionedReduceNV 696 697
+             699:    116(ptr) AccessChain 31(data) 693 115 35
+             700:26(float64_t) CompositeExtract 698 0
+                              Store 699 700
+             701:    116(ptr) AccessChain 31(data) 693 115 189
+             702:26(float64_t) CompositeExtract 698 1
+                              Store 701 702
+             703:      6(int) Load 8(invocation)
+             704:    123(ptr) AccessChain 31(data) 33 115
+             705: 27(f64vec4) Load 704
+             706:130(f64vec3) VectorShuffle 705 705 0 1 2
+             707:   17(ivec4) Load 19(ballot)
+             708:130(f64vec3) GroupNonUniformFMax 178 PartitionedReduceNV 706 707
+             709:    116(ptr) AccessChain 31(data) 703 115 35
+             710:26(float64_t) CompositeExtract 708 0
+                              Store 709 710
+             711:    116(ptr) AccessChain 31(data) 703 115 189
+             712:26(float64_t) CompositeExtract 708 1
+                              Store 711 712
+             713:    116(ptr) AccessChain 31(data) 703 115 202
+             714:26(float64_t) CompositeExtract 708 2
+                              Store 713 714
              715:      6(int) Load 8(invocation)
-             716:     64(ptr) AccessChain 31(data) 34 63 35
-             717:     24(int) Load 716
-             718:   144(bool) SLessThan 717 34
-             719:   17(ivec4) Load 19(ballot)
-             720:   144(bool) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 718 719
-             721:     24(int) Select 720 63 34
-             722:     64(ptr) AccessChain 31(data) 715 63 35
-                              Store 722 721
-             723:      6(int) Load 8(invocation)
-             724:     71(ptr) AccessChain 31(data) 63 63
-             725:   25(ivec4) Load 724
-             726:   70(ivec2) VectorShuffle 725 725 0 1
-             728:  152(bvec2) SLessThan 726 727
-             729:   17(ivec4) Load 19(ballot)
-             730:  152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 728 729
-             732:   70(ivec2) Select 730 731 727
-             733:     71(ptr) AccessChain 31(data) 723 63
-             734:   25(ivec4) Load 733
-             735:   25(ivec4) VectorShuffle 734 732 4 5 2 3
-                              Store 733 735
-             736:      6(int) Load 8(invocation)
-             737:     71(ptr) AccessChain 31(data) 63 63
-             738:   25(ivec4) Load 737
-             739:   78(ivec3) VectorShuffle 738 738 0 1 2
-             741:  161(bvec3) SLessThan 739 740
-             742:   17(ivec4) Load 19(ballot)
-             743:  161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 741 742
-             745:   78(ivec3) Select 743 744 740
-             746:     71(ptr) AccessChain 31(data) 736 63
-             747:   25(ivec4) Load 746
-             748:   25(ivec4) VectorShuffle 747 745 4 5 6 3
-                              Store 746 748
+             716:    123(ptr) AccessChain 31(data) 115 115
+             717: 27(f64vec4) Load 716
+             718:   17(ivec4) Load 19(ballot)
+             719: 27(f64vec4) GroupNonUniformFMax 178 PartitionedReduceNV 717 718
+             720:    123(ptr) AccessChain 31(data) 715 115
+                              Store 720 719
+             721:      6(int) Load 8(invocation)
+             722:     64(ptr) AccessChain 31(data) 34 63 35
+             723:     24(int) Load 722
+             724:   17(ivec4) Load 19(ballot)
+             725:     24(int) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 723 724
+             726:     64(ptr) AccessChain 31(data) 721 63 35
+                              Store 726 725
+             727:      6(int) Load 8(invocation)
+             728:     71(ptr) AccessChain 31(data) 63 63
+             729:   25(ivec4) Load 728
+             730:   70(ivec2) VectorShuffle 729 729 0 1
+             731:   17(ivec4) Load 19(ballot)
+             732:   70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 730 731
+             733:     64(ptr) AccessChain 31(data) 727 63 35
+             734:     24(int) CompositeExtract 732 0
+                              Store 733 734
+             735:     64(ptr) AccessChain 31(data) 727 63 189
+             736:     24(int) CompositeExtract 732 1
+                              Store 735 736
+             737:      6(int) Load 8(invocation)
+             738:     71(ptr) AccessChain 31(data) 33 63
+             739:   25(ivec4) Load 738
+             740:   78(ivec3) VectorShuffle 739 739 0 1 2
+             741:   17(ivec4) Load 19(ballot)
+             742:   78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 740 741
+             743:     64(ptr) AccessChain 31(data) 737 63 35
+             744:     24(int) CompositeExtract 742 0
+                              Store 743 744
+             745:     64(ptr) AccessChain 31(data) 737 63 189
+             746:     24(int) CompositeExtract 742 1
+                              Store 745 746
+             747:     64(ptr) AccessChain 31(data) 737 63 202
+             748:     24(int) CompositeExtract 742 2
+                              Store 747 748
              749:      6(int) Load 8(invocation)
-             750:     71(ptr) AccessChain 31(data) 63 63
+             750:     71(ptr) AccessChain 31(data) 115 63
              751:   25(ivec4) Load 750
-             753:  169(bvec4) SLessThan 751 752
-             754:   17(ivec4) Load 19(ballot)
-             755:  169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 753 754
-             757:   25(ivec4) Select 755 756 752
-             758:     71(ptr) AccessChain 31(data) 749 63
-                              Store 758 757
-             759:      6(int) Load 8(invocation)
-             760:     64(ptr) AccessChain 31(data) 34 63 35
-             761:     24(int) Load 760
-             762:   17(ivec4) Load 19(ballot)
-             763:     24(int) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 761 762
-             764:     64(ptr) AccessChain 31(data) 759 63 35
-                              Store 764 763
-             765:      6(int) Load 8(invocation)
-             766:     71(ptr) AccessChain 31(data) 63 63
-             767:   25(ivec4) Load 766
-             768:   70(ivec2) VectorShuffle 767 767 0 1
-             769:   17(ivec4) Load 19(ballot)
-             770:   70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 768 769
-             771:     71(ptr) AccessChain 31(data) 765 63
-             772:   25(ivec4) Load 771
-             773:   25(ivec4) VectorShuffle 772 770 4 5 2 3
-                              Store 771 773
-             774:      6(int) Load 8(invocation)
-             775:     71(ptr) AccessChain 31(data) 33 63
-             776:   25(ivec4) Load 775
-             777:   78(ivec3) VectorShuffle 776 776 0 1 2
-             778:   17(ivec4) Load 19(ballot)
-             779:   78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 777 778
-             780:     71(ptr) AccessChain 31(data) 774 63
-             781:   25(ivec4) Load 780
-             782:   25(ivec4) VectorShuffle 781 779 4 5 6 3
-                              Store 780 782
+             752:   17(ivec4) Load 19(ballot)
+             753:   25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 751 752
+             754:     71(ptr) AccessChain 31(data) 749 63
+                              Store 754 753
+             755:      6(int) Load 8(invocation)
+             756:     90(ptr) AccessChain 31(data) 34 33 35
+             757:      6(int) Load 756
+             758:   17(ivec4) Load 19(ballot)
+             759:      6(int) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 757 758
+             760:     90(ptr) AccessChain 31(data) 755 33 35
+                              Store 760 759
+             761:      6(int) Load 8(invocation)
+             762:     40(ptr) AccessChain 31(data) 63 33
+             763:   17(ivec4) Load 762
+             764:   96(ivec2) VectorShuffle 763 763 0 1
+             765:   17(ivec4) Load 19(ballot)
+             766:   96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 764 765
+             767:     90(ptr) AccessChain 31(data) 761 33 35
+             768:      6(int) CompositeExtract 766 0
+                              Store 767 768
+             769:     90(ptr) AccessChain 31(data) 761 33 189
+             770:      6(int) CompositeExtract 766 1
+                              Store 769 770
+             771:      6(int) Load 8(invocation)
+             772:     40(ptr) AccessChain 31(data) 33 33
+             773:   17(ivec4) Load 772
+             774:  103(ivec3) VectorShuffle 773 773 0 1 2
+             775:   17(ivec4) Load 19(ballot)
+             776:  103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 774 775
+             777:     90(ptr) AccessChain 31(data) 771 33 35
+             778:      6(int) CompositeExtract 776 0
+                              Store 777 778
+             779:     90(ptr) AccessChain 31(data) 771 33 189
+             780:      6(int) CompositeExtract 776 1
+                              Store 779 780
+             781:     90(ptr) AccessChain 31(data) 771 33 202
+             782:      6(int) CompositeExtract 776 2
+                              Store 781 782
              783:      6(int) Load 8(invocation)
-             784:     71(ptr) AccessChain 31(data) 115 63
-             785:   25(ivec4) Load 784
+             784:     40(ptr) AccessChain 31(data) 115 33
+             785:   17(ivec4) Load 784
              786:   17(ivec4) Load 19(ballot)
-             787:   25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 785 786
-             788:     71(ptr) AccessChain 31(data) 783 63
+             787:   17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedReduceNV 785 786
+             788:     40(ptr) AccessChain 31(data) 783 33
                               Store 788 787
              789:      6(int) Load 8(invocation)
-             790:     90(ptr) AccessChain 31(data) 34 33 35
-             791:      6(int) Load 790
-             792:   17(ivec4) Load 19(ballot)
-             793:      6(int) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 791 792
-             794:     90(ptr) AccessChain 31(data) 789 33 35
-                              Store 794 793
-             795:      6(int) Load 8(invocation)
-             796:     40(ptr) AccessChain 31(data) 63 33
-             797:   17(ivec4) Load 796
-             798:   96(ivec2) VectorShuffle 797 797 0 1
-             799:   17(ivec4) Load 19(ballot)
-             800:   96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 798 799
-             801:     40(ptr) AccessChain 31(data) 795 33
-             802:   17(ivec4) Load 801
-             803:   17(ivec4) VectorShuffle 802 800 4 5 2 3
-                              Store 801 803
-             804:      6(int) Load 8(invocation)
-             805:     40(ptr) AccessChain 31(data) 33 33
-             806:   17(ivec4) Load 805
-             807:  103(ivec3) VectorShuffle 806 806 0 1 2
-             808:   17(ivec4) Load 19(ballot)
-             809:  103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 807 808
-             810:     40(ptr) AccessChain 31(data) 804 33
-             811:   17(ivec4) Load 810
-             812:   17(ivec4) VectorShuffle 811 809 4 5 6 3
-                              Store 810 812
-             813:      6(int) Load 8(invocation)
-             814:     40(ptr) AccessChain 31(data) 115 33
-             815:   17(ivec4) Load 814
-             816:   17(ivec4) Load 19(ballot)
-             817:   17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 815 816
-             818:     40(ptr) AccessChain 31(data) 813 33
-                              Store 818 817
-             819:      6(int) Load 8(invocation)
-             820:     64(ptr) AccessChain 31(data) 34 63 35
-             821:     24(int) Load 820
-             822:   144(bool) SLessThan 821 34
-             823:   17(ivec4) Load 19(ballot)
-             824:   144(bool) GroupNonUniformLogicalOr 178 PartitionedReduceNV 822 823
-             825:     24(int) Select 824 63 34
-             826:     64(ptr) AccessChain 31(data) 819 63 35
-                              Store 826 825
+             790:     64(ptr) AccessChain 31(data) 34 63 35
+             791:     24(int) Load 790
+             792:   144(bool) SLessThan 791 34
+             793:   17(ivec4) Load 19(ballot)
+             794:   144(bool) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 792 793
+             795:     24(int) Select 794 63 34
+             796:     64(ptr) AccessChain 31(data) 789 63 35
+                              Store 796 795
+             797:      6(int) Load 8(invocation)
+             798:     71(ptr) AccessChain 31(data) 63 63
+             799:   25(ivec4) Load 798
+             800:   70(ivec2) VectorShuffle 799 799 0 1
+             802:  152(bvec2) SLessThan 800 801
+             803:   17(ivec4) Load 19(ballot)
+             804:  152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 802 803
+             806:   70(ivec2) Select 804 805 801
+             807:     64(ptr) AccessChain 31(data) 797 63 35
+             808:     24(int) CompositeExtract 806 0
+                              Store 807 808
+             809:     64(ptr) AccessChain 31(data) 797 63 189
+             810:     24(int) CompositeExtract 806 1
+                              Store 809 810
+             811:      6(int) Load 8(invocation)
+             812:     71(ptr) AccessChain 31(data) 63 63
+             813:   25(ivec4) Load 812
+             814:   78(ivec3) VectorShuffle 813 813 0 1 2
+             816:  161(bvec3) SLessThan 814 815
+             817:   17(ivec4) Load 19(ballot)
+             818:  161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 816 817
+             820:   78(ivec3) Select 818 819 815
+             821:     64(ptr) AccessChain 31(data) 811 63 35
+             822:     24(int) CompositeExtract 820 0
+                              Store 821 822
+             823:     64(ptr) AccessChain 31(data) 811 63 189
+             824:     24(int) CompositeExtract 820 1
+                              Store 823 824
+             825:     64(ptr) AccessChain 31(data) 811 63 202
+             826:     24(int) CompositeExtract 820 2
+                              Store 825 826
              827:      6(int) Load 8(invocation)
              828:     71(ptr) AccessChain 31(data) 63 63
              829:   25(ivec4) Load 828
-             830:   70(ivec2) VectorShuffle 829 829 0 1
-             831:  152(bvec2) SLessThan 830 727
+             831:  169(bvec4) SLessThan 829 830
              832:   17(ivec4) Load 19(ballot)
-             833:  152(bvec2) GroupNonUniformLogicalOr 178 PartitionedReduceNV 831 832
-             834:   70(ivec2) Select 833 731 727
-             835:     71(ptr) AccessChain 31(data) 827 63
-             836:   25(ivec4) Load 835
-             837:   25(ivec4) VectorShuffle 836 834 4 5 2 3
-                              Store 835 837
-             838:      6(int) Load 8(invocation)
-             839:     71(ptr) AccessChain 31(data) 63 63
-             840:   25(ivec4) Load 839
-             841:   78(ivec3) VectorShuffle 840 840 0 1 2
-             842:  161(bvec3) SLessThan 841 740
-             843:   17(ivec4) Load 19(ballot)
-             844:  161(bvec3) GroupNonUniformLogicalOr 178 PartitionedReduceNV 842 843
-             845:   78(ivec3) Select 844 744 740
-             846:     71(ptr) AccessChain 31(data) 838 63
-             847:   25(ivec4) Load 846
-             848:   25(ivec4) VectorShuffle 847 845 4 5 6 3
-                              Store 846 848
-             849:      6(int) Load 8(invocation)
-             850:     71(ptr) AccessChain 31(data) 63 63
-             851:   25(ivec4) Load 850
-             852:  169(bvec4) SLessThan 851 752
-             853:   17(ivec4) Load 19(ballot)
-             854:  169(bvec4) GroupNonUniformLogicalOr 178 PartitionedReduceNV 852 853
-             855:   25(ivec4) Select 854 756 752
-             856:     71(ptr) AccessChain 31(data) 849 63
-                              Store 856 855
-             857:      6(int) Load 8(invocation)
-             858:     64(ptr) AccessChain 31(data) 34 63 35
-             859:     24(int) Load 858
-             860:   17(ivec4) Load 19(ballot)
-             861:     24(int) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 859 860
-             862:     64(ptr) AccessChain 31(data) 857 63 35
-                              Store 862 861
-             863:      6(int) Load 8(invocation)
-             864:     71(ptr) AccessChain 31(data) 63 63
-             865:   25(ivec4) Load 864
-             866:   70(ivec2) VectorShuffle 865 865 0 1
-             867:   17(ivec4) Load 19(ballot)
-             868:   70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 866 867
-             869:     71(ptr) AccessChain 31(data) 863 63
-             870:   25(ivec4) Load 869
-             871:   25(ivec4) VectorShuffle 870 868 4 5 2 3
-                              Store 869 871
-             872:      6(int) Load 8(invocation)
-             873:     71(ptr) AccessChain 31(data) 33 63
-             874:   25(ivec4) Load 873
-             875:   78(ivec3) VectorShuffle 874 874 0 1 2
-             876:   17(ivec4) Load 19(ballot)
-             877:   78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 875 876
-             878:     71(ptr) AccessChain 31(data) 872 63
-             879:   25(ivec4) Load 878
-             880:   25(ivec4) VectorShuffle 879 877 4 5 6 3
-                              Store 878 880
-             881:      6(int) Load 8(invocation)
-             882:     71(ptr) AccessChain 31(data) 115 63
-             883:   25(ivec4) Load 882
-             884:   17(ivec4) Load 19(ballot)
-             885:   25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 883 884
-             886:     71(ptr) AccessChain 31(data) 881 63
-                              Store 886 885
+             833:  169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedReduceNV 831 832
+             835:   25(ivec4) Select 833 834 830
+             836:     71(ptr) AccessChain 31(data) 827 63
+                              Store 836 835
+             837:      6(int) Load 8(invocation)
+             838:     64(ptr) AccessChain 31(data) 34 63 35
+             839:     24(int) Load 838
+             840:   17(ivec4) Load 19(ballot)
+             841:     24(int) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 839 840
+             842:     64(ptr) AccessChain 31(data) 837 63 35
+                              Store 842 841
+             843:      6(int) Load 8(invocation)
+             844:     71(ptr) AccessChain 31(data) 63 63
+             845:   25(ivec4) Load 844
+             846:   70(ivec2) VectorShuffle 845 845 0 1
+             847:   17(ivec4) Load 19(ballot)
+             848:   70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 846 847
+             849:     64(ptr) AccessChain 31(data) 843 63 35
+             850:     24(int) CompositeExtract 848 0
+                              Store 849 850
+             851:     64(ptr) AccessChain 31(data) 843 63 189
+             852:     24(int) CompositeExtract 848 1
+                              Store 851 852
+             853:      6(int) Load 8(invocation)
+             854:     71(ptr) AccessChain 31(data) 33 63
+             855:   25(ivec4) Load 854
+             856:   78(ivec3) VectorShuffle 855 855 0 1 2
+             857:   17(ivec4) Load 19(ballot)
+             858:   78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 856 857
+             859:     64(ptr) AccessChain 31(data) 853 63 35
+             860:     24(int) CompositeExtract 858 0
+                              Store 859 860
+             861:     64(ptr) AccessChain 31(data) 853 63 189
+             862:     24(int) CompositeExtract 858 1
+                              Store 861 862
+             863:     64(ptr) AccessChain 31(data) 853 63 202
+             864:     24(int) CompositeExtract 858 2
+                              Store 863 864
+             865:      6(int) Load 8(invocation)
+             866:     71(ptr) AccessChain 31(data) 115 63
+             867:   25(ivec4) Load 866
+             868:   17(ivec4) Load 19(ballot)
+             869:   25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 867 868
+             870:     71(ptr) AccessChain 31(data) 865 63
+                              Store 870 869
+             871:      6(int) Load 8(invocation)
+             872:     90(ptr) AccessChain 31(data) 34 33 35
+             873:      6(int) Load 872
+             874:   17(ivec4) Load 19(ballot)
+             875:      6(int) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 873 874
+             876:     90(ptr) AccessChain 31(data) 871 33 35
+                              Store 876 875
+             877:      6(int) Load 8(invocation)
+             878:     40(ptr) AccessChain 31(data) 63 33
+             879:   17(ivec4) Load 878
+             880:   96(ivec2) VectorShuffle 879 879 0 1
+             881:   17(ivec4) Load 19(ballot)
+             882:   96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 880 881
+             883:     90(ptr) AccessChain 31(data) 877 33 35
+             884:      6(int) CompositeExtract 882 0
+                              Store 883 884
+             885:     90(ptr) AccessChain 31(data) 877 33 189
+             886:      6(int) CompositeExtract 882 1
+                              Store 885 886
              887:      6(int) Load 8(invocation)
-             888:     90(ptr) AccessChain 31(data) 34 33 35
-             889:      6(int) Load 888
-             890:   17(ivec4) Load 19(ballot)
-             891:      6(int) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 889 890
-             892:     90(ptr) AccessChain 31(data) 887 33 35
-                              Store 892 891
-             893:      6(int) Load 8(invocation)
-             894:     40(ptr) AccessChain 31(data) 63 33
-             895:   17(ivec4) Load 894
-             896:   96(ivec2) VectorShuffle 895 895 0 1
-             897:   17(ivec4) Load 19(ballot)
-             898:   96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 896 897
-             899:     40(ptr) AccessChain 31(data) 893 33
-             900:   17(ivec4) Load 899
-             901:   17(ivec4) VectorShuffle 900 898 4 5 2 3
-                              Store 899 901
-             902:      6(int) Load 8(invocation)
-             903:     40(ptr) AccessChain 31(data) 33 33
-             904:   17(ivec4) Load 903
-             905:  103(ivec3) VectorShuffle 904 904 0 1 2
-             906:   17(ivec4) Load 19(ballot)
-             907:  103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 905 906
-             908:     40(ptr) AccessChain 31(data) 902 33
-             909:   17(ivec4) Load 908
-             910:   17(ivec4) VectorShuffle 909 907 4 5 6 3
-                              Store 908 910
-             911:      6(int) Load 8(invocation)
-             912:     40(ptr) AccessChain 31(data) 115 33
-             913:   17(ivec4) Load 912
-             914:   17(ivec4) Load 19(ballot)
-             915:   17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 913 914
-             916:     40(ptr) AccessChain 31(data) 911 33
-                              Store 916 915
-             917:      6(int) Load 8(invocation)
-             918:     64(ptr) AccessChain 31(data) 34 63 35
-             919:     24(int) Load 918
-             920:   144(bool) SLessThan 919 34
-             921:   17(ivec4) Load 19(ballot)
-             922:   144(bool) GroupNonUniformLogicalXor 178 PartitionedReduceNV 920 921
-             923:     24(int) Select 922 63 34
-             924:     64(ptr) AccessChain 31(data) 917 63 35
-                              Store 924 923
+             888:     40(ptr) AccessChain 31(data) 33 33
+             889:   17(ivec4) Load 888
+             890:  103(ivec3) VectorShuffle 889 889 0 1 2
+             891:   17(ivec4) Load 19(ballot)
+             892:  103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 890 891
+             893:     90(ptr) AccessChain 31(data) 887 33 35
+             894:      6(int) CompositeExtract 892 0
+                              Store 893 894
+             895:     90(ptr) AccessChain 31(data) 887 33 189
+             896:      6(int) CompositeExtract 892 1
+                              Store 895 896
+             897:     90(ptr) AccessChain 31(data) 887 33 202
+             898:      6(int) CompositeExtract 892 2
+                              Store 897 898
+             899:      6(int) Load 8(invocation)
+             900:     40(ptr) AccessChain 31(data) 115 33
+             901:   17(ivec4) Load 900
+             902:   17(ivec4) Load 19(ballot)
+             903:   17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedReduceNV 901 902
+             904:     40(ptr) AccessChain 31(data) 899 33
+                              Store 904 903
+             905:      6(int) Load 8(invocation)
+             906:     64(ptr) AccessChain 31(data) 34 63 35
+             907:     24(int) Load 906
+             908:   144(bool) SLessThan 907 34
+             909:   17(ivec4) Load 19(ballot)
+             910:   144(bool) GroupNonUniformLogicalOr 178 PartitionedReduceNV 908 909
+             911:     24(int) Select 910 63 34
+             912:     64(ptr) AccessChain 31(data) 905 63 35
+                              Store 912 911
+             913:      6(int) Load 8(invocation)
+             914:     71(ptr) AccessChain 31(data) 63 63
+             915:   25(ivec4) Load 914
+             916:   70(ivec2) VectorShuffle 915 915 0 1
+             917:  152(bvec2) SLessThan 916 801
+             918:   17(ivec4) Load 19(ballot)
+             919:  152(bvec2) GroupNonUniformLogicalOr 178 PartitionedReduceNV 917 918
+             920:   70(ivec2) Select 919 805 801
+             921:     64(ptr) AccessChain 31(data) 913 63 35
+             922:     24(int) CompositeExtract 920 0
+                              Store 921 922
+             923:     64(ptr) AccessChain 31(data) 913 63 189
+             924:     24(int) CompositeExtract 920 1
+                              Store 923 924
              925:      6(int) Load 8(invocation)
              926:     71(ptr) AccessChain 31(data) 63 63
              927:   25(ivec4) Load 926
-             928:   70(ivec2) VectorShuffle 927 927 0 1
-             929:  152(bvec2) SLessThan 928 727
+             928:   78(ivec3) VectorShuffle 927 927 0 1 2
+             929:  161(bvec3) SLessThan 928 815
              930:   17(ivec4) Load 19(ballot)
-             931:  152(bvec2) GroupNonUniformLogicalXor 178 PartitionedReduceNV 929 930
-             932:   70(ivec2) Select 931 731 727
-             933:     71(ptr) AccessChain 31(data) 925 63
-             934:   25(ivec4) Load 933
-             935:   25(ivec4) VectorShuffle 934 932 4 5 2 3
-                              Store 933 935
-             936:      6(int) Load 8(invocation)
-             937:     71(ptr) AccessChain 31(data) 63 63
-             938:   25(ivec4) Load 937
-             939:   78(ivec3) VectorShuffle 938 938 0 1 2
-             940:  161(bvec3) SLessThan 939 740
-             941:   17(ivec4) Load 19(ballot)
-             942:  161(bvec3) GroupNonUniformLogicalXor 178 PartitionedReduceNV 940 941
-             943:   78(ivec3) Select 942 744 740
-             944:     71(ptr) AccessChain 31(data) 936 63
-             945:   25(ivec4) Load 944
-             946:   25(ivec4) VectorShuffle 945 943 4 5 6 3
-                              Store 944 946
+             931:  161(bvec3) GroupNonUniformLogicalOr 178 PartitionedReduceNV 929 930
+             932:   78(ivec3) Select 931 819 815
+             933:     64(ptr) AccessChain 31(data) 925 63 35
+             934:     24(int) CompositeExtract 932 0
+                              Store 933 934
+             935:     64(ptr) AccessChain 31(data) 925 63 189
+             936:     24(int) CompositeExtract 932 1
+                              Store 935 936
+             937:     64(ptr) AccessChain 31(data) 925 63 202
+             938:     24(int) CompositeExtract 932 2
+                              Store 937 938
+             939:      6(int) Load 8(invocation)
+             940:     71(ptr) AccessChain 31(data) 63 63
+             941:   25(ivec4) Load 940
+             942:  169(bvec4) SLessThan 941 830
+             943:   17(ivec4) Load 19(ballot)
+             944:  169(bvec4) GroupNonUniformLogicalOr 178 PartitionedReduceNV 942 943
+             945:   25(ivec4) Select 944 834 830
+             946:     71(ptr) AccessChain 31(data) 939 63
+                              Store 946 945
              947:      6(int) Load 8(invocation)
-             948:     71(ptr) AccessChain 31(data) 63 63
-             949:   25(ivec4) Load 948
-             950:  169(bvec4) SLessThan 949 752
-             951:   17(ivec4) Load 19(ballot)
-             952:  169(bvec4) GroupNonUniformLogicalXor 178 PartitionedReduceNV 950 951
-             953:   25(ivec4) Select 952 756 752
-             954:     71(ptr) AccessChain 31(data) 947 63
-                              Store 954 953
-             955:      6(int) Load 8(invocation)
-             956:     36(ptr) AccessChain 31(data) 34 34 35
-             957:   22(float) Load 956
-             958:   17(ivec4) Load 19(ballot)
-             959:   22(float) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 957 958
-             960:     36(ptr) AccessChain 31(data) 955 34 35
-                              Store 960 959
-             961:      6(int) Load 8(invocation)
-             962:     44(ptr) AccessChain 31(data) 63 34
-             963:   23(fvec4) Load 962
-             964:   43(fvec2) VectorShuffle 963 963 0 1
-             965:   17(ivec4) Load 19(ballot)
-             966:   43(fvec2) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 964 965
-             967:     44(ptr) AccessChain 31(data) 961 34
-             968:   23(fvec4) Load 967
-             969:   23(fvec4) VectorShuffle 968 966 4 5 2 3
-                              Store 967 969
-             970:      6(int) Load 8(invocation)
-             971:     44(ptr) AccessChain 31(data) 33 34
-             972:   23(fvec4) Load 971
-             973:   51(fvec3) VectorShuffle 972 972 0 1 2
-             974:   17(ivec4) Load 19(ballot)
-             975:   51(fvec3) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 973 974
-             976:     44(ptr) AccessChain 31(data) 970 34
-             977:   23(fvec4) Load 976
-             978:   23(fvec4) VectorShuffle 977 975 4 5 6 3
-                              Store 976 978
-             979:      6(int) Load 8(invocation)
-             980:     44(ptr) AccessChain 31(data) 115 34
-             981:   23(fvec4) Load 980
-             982:   17(ivec4) Load 19(ballot)
-             983:   23(fvec4) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 981 982
-             984:     44(ptr) AccessChain 31(data) 979 34
-                              Store 984 983
-             985:      6(int) Load 8(invocation)
-             986:     64(ptr) AccessChain 31(data) 34 63 35
-             987:     24(int) Load 986
-             988:   17(ivec4) Load 19(ballot)
-             989:     24(int) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 987 988
-             990:     64(ptr) AccessChain 31(data) 985 63 35
-                              Store 990 989
-             991:      6(int) Load 8(invocation)
-             992:     71(ptr) AccessChain 31(data) 63 63
-             993:   25(ivec4) Load 992
-             994:   70(ivec2) VectorShuffle 993 993 0 1
-             995:   17(ivec4) Load 19(ballot)
-             996:   70(ivec2) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 994 995
-             997:     71(ptr) AccessChain 31(data) 991 63
-             998:   25(ivec4) Load 997
-             999:   25(ivec4) VectorShuffle 998 996 4 5 2 3
-                              Store 997 999
-            1000:      6(int) Load 8(invocation)
-            1001:     71(ptr) AccessChain 31(data) 33 63
-            1002:   25(ivec4) Load 1001
-            1003:   78(ivec3) VectorShuffle 1002 1002 0 1 2
-            1004:   17(ivec4) Load 19(ballot)
-            1005:   78(ivec3) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1003 1004
-            1006:     71(ptr) AccessChain 31(data) 1000 63
-            1007:   25(ivec4) Load 1006
-            1008:   25(ivec4) VectorShuffle 1007 1005 4 5 6 3
-                              Store 1006 1008
+             948:     64(ptr) AccessChain 31(data) 34 63 35
+             949:     24(int) Load 948
+             950:   17(ivec4) Load 19(ballot)
+             951:     24(int) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 949 950
+             952:     64(ptr) AccessChain 31(data) 947 63 35
+                              Store 952 951
+             953:      6(int) Load 8(invocation)
+             954:     71(ptr) AccessChain 31(data) 63 63
+             955:   25(ivec4) Load 954
+             956:   70(ivec2) VectorShuffle 955 955 0 1
+             957:   17(ivec4) Load 19(ballot)
+             958:   70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 956 957
+             959:     64(ptr) AccessChain 31(data) 953 63 35
+             960:     24(int) CompositeExtract 958 0
+                              Store 959 960
+             961:     64(ptr) AccessChain 31(data) 953 63 189
+             962:     24(int) CompositeExtract 958 1
+                              Store 961 962
+             963:      6(int) Load 8(invocation)
+             964:     71(ptr) AccessChain 31(data) 33 63
+             965:   25(ivec4) Load 964
+             966:   78(ivec3) VectorShuffle 965 965 0 1 2
+             967:   17(ivec4) Load 19(ballot)
+             968:   78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 966 967
+             969:     64(ptr) AccessChain 31(data) 963 63 35
+             970:     24(int) CompositeExtract 968 0
+                              Store 969 970
+             971:     64(ptr) AccessChain 31(data) 963 63 189
+             972:     24(int) CompositeExtract 968 1
+                              Store 971 972
+             973:     64(ptr) AccessChain 31(data) 963 63 202
+             974:     24(int) CompositeExtract 968 2
+                              Store 973 974
+             975:      6(int) Load 8(invocation)
+             976:     71(ptr) AccessChain 31(data) 115 63
+             977:   25(ivec4) Load 976
+             978:   17(ivec4) Load 19(ballot)
+             979:   25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 977 978
+             980:     71(ptr) AccessChain 31(data) 975 63
+                              Store 980 979
+             981:      6(int) Load 8(invocation)
+             982:     90(ptr) AccessChain 31(data) 34 33 35
+             983:      6(int) Load 982
+             984:   17(ivec4) Load 19(ballot)
+             985:      6(int) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 983 984
+             986:     90(ptr) AccessChain 31(data) 981 33 35
+                              Store 986 985
+             987:      6(int) Load 8(invocation)
+             988:     40(ptr) AccessChain 31(data) 63 33
+             989:   17(ivec4) Load 988
+             990:   96(ivec2) VectorShuffle 989 989 0 1
+             991:   17(ivec4) Load 19(ballot)
+             992:   96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 990 991
+             993:     90(ptr) AccessChain 31(data) 987 33 35
+             994:      6(int) CompositeExtract 992 0
+                              Store 993 994
+             995:     90(ptr) AccessChain 31(data) 987 33 189
+             996:      6(int) CompositeExtract 992 1
+                              Store 995 996
+             997:      6(int) Load 8(invocation)
+             998:     40(ptr) AccessChain 31(data) 33 33
+             999:   17(ivec4) Load 998
+            1000:  103(ivec3) VectorShuffle 999 999 0 1 2
+            1001:   17(ivec4) Load 19(ballot)
+            1002:  103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 1000 1001
+            1003:     90(ptr) AccessChain 31(data) 997 33 35
+            1004:      6(int) CompositeExtract 1002 0
+                              Store 1003 1004
+            1005:     90(ptr) AccessChain 31(data) 997 33 189
+            1006:      6(int) CompositeExtract 1002 1
+                              Store 1005 1006
+            1007:     90(ptr) AccessChain 31(data) 997 33 202
+            1008:      6(int) CompositeExtract 1002 2
+                              Store 1007 1008
             1009:      6(int) Load 8(invocation)
-            1010:     71(ptr) AccessChain 31(data) 115 63
-            1011:   25(ivec4) Load 1010
+            1010:     40(ptr) AccessChain 31(data) 115 33
+            1011:   17(ivec4) Load 1010
             1012:   17(ivec4) Load 19(ballot)
-            1013:   25(ivec4) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1011 1012
-            1014:     71(ptr) AccessChain 31(data) 1009 63
+            1013:   17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedReduceNV 1011 1012
+            1014:     40(ptr) AccessChain 31(data) 1009 33
                               Store 1014 1013
             1015:      6(int) Load 8(invocation)
-            1016:     90(ptr) AccessChain 31(data) 34 33 35
-            1017:      6(int) Load 1016
-            1018:   17(ivec4) Load 19(ballot)
-            1019:      6(int) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1017 1018
-            1020:     90(ptr) AccessChain 31(data) 1015 33 35
-                              Store 1020 1019
-            1021:      6(int) Load 8(invocation)
-            1022:     40(ptr) AccessChain 31(data) 63 33
-            1023:   17(ivec4) Load 1022
-            1024:   96(ivec2) VectorShuffle 1023 1023 0 1
-            1025:   17(ivec4) Load 19(ballot)
-            1026:   96(ivec2) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1024 1025
-            1027:     40(ptr) AccessChain 31(data) 1021 33
-            1028:   17(ivec4) Load 1027
-            1029:   17(ivec4) VectorShuffle 1028 1026 4 5 2 3
-                              Store 1027 1029
-            1030:      6(int) Load 8(invocation)
-            1031:     40(ptr) AccessChain 31(data) 33 33
-            1032:   17(ivec4) Load 1031
-            1033:  103(ivec3) VectorShuffle 1032 1032 0 1 2
-            1034:   17(ivec4) Load 19(ballot)
-            1035:  103(ivec3) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1033 1034
-            1036:     40(ptr) AccessChain 31(data) 1030 33
-            1037:   17(ivec4) Load 1036
-            1038:   17(ivec4) VectorShuffle 1037 1035 4 5 6 3
-                              Store 1036 1038
-            1039:      6(int) Load 8(invocation)
-            1040:     40(ptr) AccessChain 31(data) 115 33
-            1041:   17(ivec4) Load 1040
-            1042:   17(ivec4) Load 19(ballot)
-            1043:   17(ivec4) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1041 1042
-            1044:     40(ptr) AccessChain 31(data) 1039 33
-                              Store 1044 1043
-            1045:      6(int) Load 8(invocation)
-            1046:    116(ptr) AccessChain 31(data) 34 115 35
-            1047:26(float64_t) Load 1046
-            1048:   17(ivec4) Load 19(ballot)
-            1049:26(float64_t) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1047 1048
-            1050:    116(ptr) AccessChain 31(data) 1045 115 35
-                              Store 1050 1049
-            1051:      6(int) Load 8(invocation)
-            1052:    123(ptr) AccessChain 31(data) 63 115
-            1053: 27(f64vec4) Load 1052
-            1054:122(f64vec2) VectorShuffle 1053 1053 0 1
-            1055:   17(ivec4) Load 19(ballot)
-            1056:122(f64vec2) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1054 1055
-            1057:    123(ptr) AccessChain 31(data) 1051 115
-            1058: 27(f64vec4) Load 1057
-            1059: 27(f64vec4) VectorShuffle 1058 1056 4 5 2 3
-                              Store 1057 1059
-            1060:      6(int) Load 8(invocation)
-            1061:    123(ptr) AccessChain 31(data) 33 115
-            1062: 27(f64vec4) Load 1061
-            1063:130(f64vec3) VectorShuffle 1062 1062 0 1 2
-            1064:   17(ivec4) Load 19(ballot)
-            1065:130(f64vec3) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1063 1064
-            1066:    123(ptr) AccessChain 31(data) 1060 115
-            1067: 27(f64vec4) Load 1066
-            1068: 27(f64vec4) VectorShuffle 1067 1065 4 5 6 3
-                              Store 1066 1068
-            1069:      6(int) Load 8(invocation)
-            1070:    123(ptr) AccessChain 31(data) 115 115
-            1071: 27(f64vec4) Load 1070
-            1072:   17(ivec4) Load 19(ballot)
-            1073: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1071 1072
-            1074:    123(ptr) AccessChain 31(data) 1069 115
-                              Store 1074 1073
-            1075:      6(int) Load 8(invocation)
-            1076:     36(ptr) AccessChain 31(data) 34 34 35
-            1077:   22(float) Load 1076
-            1078:   17(ivec4) Load 19(ballot)
-            1079:   22(float) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1077 1078
-            1080:     36(ptr) AccessChain 31(data) 1075 34 35
-                              Store 1080 1079
-            1081:      6(int) Load 8(invocation)
-            1082:     44(ptr) AccessChain 31(data) 63 34
-            1083:   23(fvec4) Load 1082
-            1084:   43(fvec2) VectorShuffle 1083 1083 0 1
-            1085:   17(ivec4) Load 19(ballot)
-            1086:   43(fvec2) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1084 1085
-            1087:     44(ptr) AccessChain 31(data) 1081 34
-            1088:   23(fvec4) Load 1087
-            1089:   23(fvec4) VectorShuffle 1088 1086 4 5 2 3
-                              Store 1087 1089
-            1090:      6(int) Load 8(invocation)
-            1091:     44(ptr) AccessChain 31(data) 33 34
-            1092:   23(fvec4) Load 1091
-            1093:   51(fvec3) VectorShuffle 1092 1092 0 1 2
+            1016:     64(ptr) AccessChain 31(data) 34 63 35
+            1017:     24(int) Load 1016
+            1018:   144(bool) SLessThan 1017 34
+            1019:   17(ivec4) Load 19(ballot)
+            1020:   144(bool) GroupNonUniformLogicalXor 178 PartitionedReduceNV 1018 1019
+            1021:     24(int) Select 1020 63 34
+            1022:     64(ptr) AccessChain 31(data) 1015 63 35
+                              Store 1022 1021
+            1023:      6(int) Load 8(invocation)
+            1024:     71(ptr) AccessChain 31(data) 63 63
+            1025:   25(ivec4) Load 1024
+            1026:   70(ivec2) VectorShuffle 1025 1025 0 1
+            1027:  152(bvec2) SLessThan 1026 801
+            1028:   17(ivec4) Load 19(ballot)
+            1029:  152(bvec2) GroupNonUniformLogicalXor 178 PartitionedReduceNV 1027 1028
+            1030:   70(ivec2) Select 1029 805 801
+            1031:     64(ptr) AccessChain 31(data) 1023 63 35
+            1032:     24(int) CompositeExtract 1030 0
+                              Store 1031 1032
+            1033:     64(ptr) AccessChain 31(data) 1023 63 189
+            1034:     24(int) CompositeExtract 1030 1
+                              Store 1033 1034
+            1035:      6(int) Load 8(invocation)
+            1036:     71(ptr) AccessChain 31(data) 63 63
+            1037:   25(ivec4) Load 1036
+            1038:   78(ivec3) VectorShuffle 1037 1037 0 1 2
+            1039:  161(bvec3) SLessThan 1038 815
+            1040:   17(ivec4) Load 19(ballot)
+            1041:  161(bvec3) GroupNonUniformLogicalXor 178 PartitionedReduceNV 1039 1040
+            1042:   78(ivec3) Select 1041 819 815
+            1043:     64(ptr) AccessChain 31(data) 1035 63 35
+            1044:     24(int) CompositeExtract 1042 0
+                              Store 1043 1044
+            1045:     64(ptr) AccessChain 31(data) 1035 63 189
+            1046:     24(int) CompositeExtract 1042 1
+                              Store 1045 1046
+            1047:     64(ptr) AccessChain 31(data) 1035 63 202
+            1048:     24(int) CompositeExtract 1042 2
+                              Store 1047 1048
+            1049:      6(int) Load 8(invocation)
+            1050:     71(ptr) AccessChain 31(data) 63 63
+            1051:   25(ivec4) Load 1050
+            1052:  169(bvec4) SLessThan 1051 830
+            1053:   17(ivec4) Load 19(ballot)
+            1054:  169(bvec4) GroupNonUniformLogicalXor 178 PartitionedReduceNV 1052 1053
+            1055:   25(ivec4) Select 1054 834 830
+            1056:     71(ptr) AccessChain 31(data) 1049 63
+                              Store 1056 1055
+            1057:      6(int) Load 8(invocation)
+            1058:     36(ptr) AccessChain 31(data) 34 34 35
+            1059:   22(float) Load 1058
+            1060:   17(ivec4) Load 19(ballot)
+            1061:   22(float) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1059 1060
+            1062:     36(ptr) AccessChain 31(data) 1057 34 35
+                              Store 1062 1061
+            1063:      6(int) Load 8(invocation)
+            1064:     44(ptr) AccessChain 31(data) 63 34
+            1065:   23(fvec4) Load 1064
+            1066:   43(fvec2) VectorShuffle 1065 1065 0 1
+            1067:   17(ivec4) Load 19(ballot)
+            1068:   43(fvec2) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1066 1067
+            1069:     36(ptr) AccessChain 31(data) 1063 34 35
+            1070:   22(float) CompositeExtract 1068 0
+                              Store 1069 1070
+            1071:     36(ptr) AccessChain 31(data) 1063 34 189
+            1072:   22(float) CompositeExtract 1068 1
+                              Store 1071 1072
+            1073:      6(int) Load 8(invocation)
+            1074:     44(ptr) AccessChain 31(data) 33 34
+            1075:   23(fvec4) Load 1074
+            1076:   51(fvec3) VectorShuffle 1075 1075 0 1 2
+            1077:   17(ivec4) Load 19(ballot)
+            1078:   51(fvec3) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1076 1077
+            1079:     36(ptr) AccessChain 31(data) 1073 34 35
+            1080:   22(float) CompositeExtract 1078 0
+                              Store 1079 1080
+            1081:     36(ptr) AccessChain 31(data) 1073 34 189
+            1082:   22(float) CompositeExtract 1078 1
+                              Store 1081 1082
+            1083:     36(ptr) AccessChain 31(data) 1073 34 202
+            1084:   22(float) CompositeExtract 1078 2
+                              Store 1083 1084
+            1085:      6(int) Load 8(invocation)
+            1086:     44(ptr) AccessChain 31(data) 115 34
+            1087:   23(fvec4) Load 1086
+            1088:   17(ivec4) Load 19(ballot)
+            1089:   23(fvec4) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1087 1088
+            1090:     44(ptr) AccessChain 31(data) 1085 34
+                              Store 1090 1089
+            1091:      6(int) Load 8(invocation)
+            1092:     64(ptr) AccessChain 31(data) 34 63 35
+            1093:     24(int) Load 1092
             1094:   17(ivec4) Load 19(ballot)
-            1095:   51(fvec3) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1093 1094
-            1096:     44(ptr) AccessChain 31(data) 1090 34
-            1097:   23(fvec4) Load 1096
-            1098:   23(fvec4) VectorShuffle 1097 1095 4 5 6 3
-                              Store 1096 1098
-            1099:      6(int) Load 8(invocation)
-            1100:     44(ptr) AccessChain 31(data) 115 34
-            1101:   23(fvec4) Load 1100
-            1102:   17(ivec4) Load 19(ballot)
-            1103:   23(fvec4) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1101 1102
-            1104:     44(ptr) AccessChain 31(data) 1099 34
-                              Store 1104 1103
-            1105:      6(int) Load 8(invocation)
-            1106:     64(ptr) AccessChain 31(data) 34 63 35
-            1107:     24(int) Load 1106
-            1108:   17(ivec4) Load 19(ballot)
-            1109:     24(int) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1107 1108
-            1110:     64(ptr) AccessChain 31(data) 1105 63 35
-                              Store 1110 1109
-            1111:      6(int) Load 8(invocation)
-            1112:     71(ptr) AccessChain 31(data) 63 63
-            1113:   25(ivec4) Load 1112
-            1114:   70(ivec2) VectorShuffle 1113 1113 0 1
-            1115:   17(ivec4) Load 19(ballot)
-            1116:   70(ivec2) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1114 1115
-            1117:     71(ptr) AccessChain 31(data) 1111 63
-            1118:   25(ivec4) Load 1117
-            1119:   25(ivec4) VectorShuffle 1118 1116 4 5 2 3
-                              Store 1117 1119
-            1120:      6(int) Load 8(invocation)
-            1121:     71(ptr) AccessChain 31(data) 33 63
-            1122:   25(ivec4) Load 1121
-            1123:   78(ivec3) VectorShuffle 1122 1122 0 1 2
-            1124:   17(ivec4) Load 19(ballot)
-            1125:   78(ivec3) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1123 1124
-            1126:     71(ptr) AccessChain 31(data) 1120 63
-            1127:   25(ivec4) Load 1126
-            1128:   25(ivec4) VectorShuffle 1127 1125 4 5 6 3
-                              Store 1126 1128
-            1129:      6(int) Load 8(invocation)
-            1130:     71(ptr) AccessChain 31(data) 115 63
-            1131:   25(ivec4) Load 1130
-            1132:   17(ivec4) Load 19(ballot)
-            1133:   25(ivec4) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1131 1132
-            1134:     71(ptr) AccessChain 31(data) 1129 63
-                              Store 1134 1133
-            1135:      6(int) Load 8(invocation)
-            1136:     90(ptr) AccessChain 31(data) 34 33 35
-            1137:      6(int) Load 1136
-            1138:   17(ivec4) Load 19(ballot)
-            1139:      6(int) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1137 1138
-            1140:     90(ptr) AccessChain 31(data) 1135 33 35
-                              Store 1140 1139
+            1095:     24(int) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1093 1094
+            1096:     64(ptr) AccessChain 31(data) 1091 63 35
+                              Store 1096 1095
+            1097:      6(int) Load 8(invocation)
+            1098:     71(ptr) AccessChain 31(data) 63 63
+            1099:   25(ivec4) Load 1098
+            1100:   70(ivec2) VectorShuffle 1099 1099 0 1
+            1101:   17(ivec4) Load 19(ballot)
+            1102:   70(ivec2) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1100 1101
+            1103:     64(ptr) AccessChain 31(data) 1097 63 35
+            1104:     24(int) CompositeExtract 1102 0
+                              Store 1103 1104
+            1105:     64(ptr) AccessChain 31(data) 1097 63 189
+            1106:     24(int) CompositeExtract 1102 1
+                              Store 1105 1106
+            1107:      6(int) Load 8(invocation)
+            1108:     71(ptr) AccessChain 31(data) 33 63
+            1109:   25(ivec4) Load 1108
+            1110:   78(ivec3) VectorShuffle 1109 1109 0 1 2
+            1111:   17(ivec4) Load 19(ballot)
+            1112:   78(ivec3) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1110 1111
+            1113:     64(ptr) AccessChain 31(data) 1107 63 35
+            1114:     24(int) CompositeExtract 1112 0
+                              Store 1113 1114
+            1115:     64(ptr) AccessChain 31(data) 1107 63 189
+            1116:     24(int) CompositeExtract 1112 1
+                              Store 1115 1116
+            1117:     64(ptr) AccessChain 31(data) 1107 63 202
+            1118:     24(int) CompositeExtract 1112 2
+                              Store 1117 1118
+            1119:      6(int) Load 8(invocation)
+            1120:     71(ptr) AccessChain 31(data) 115 63
+            1121:   25(ivec4) Load 1120
+            1122:   17(ivec4) Load 19(ballot)
+            1123:   25(ivec4) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1121 1122
+            1124:     71(ptr) AccessChain 31(data) 1119 63
+                              Store 1124 1123
+            1125:      6(int) Load 8(invocation)
+            1126:     90(ptr) AccessChain 31(data) 34 33 35
+            1127:      6(int) Load 1126
+            1128:   17(ivec4) Load 19(ballot)
+            1129:      6(int) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1127 1128
+            1130:     90(ptr) AccessChain 31(data) 1125 33 35
+                              Store 1130 1129
+            1131:      6(int) Load 8(invocation)
+            1132:     40(ptr) AccessChain 31(data) 63 33
+            1133:   17(ivec4) Load 1132
+            1134:   96(ivec2) VectorShuffle 1133 1133 0 1
+            1135:   17(ivec4) Load 19(ballot)
+            1136:   96(ivec2) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1134 1135
+            1137:     90(ptr) AccessChain 31(data) 1131 33 35
+            1138:      6(int) CompositeExtract 1136 0
+                              Store 1137 1138
+            1139:     90(ptr) AccessChain 31(data) 1131 33 189
+            1140:      6(int) CompositeExtract 1136 1
+                              Store 1139 1140
             1141:      6(int) Load 8(invocation)
-            1142:     40(ptr) AccessChain 31(data) 63 33
+            1142:     40(ptr) AccessChain 31(data) 33 33
             1143:   17(ivec4) Load 1142
-            1144:   96(ivec2) VectorShuffle 1143 1143 0 1
+            1144:  103(ivec3) VectorShuffle 1143 1143 0 1 2
             1145:   17(ivec4) Load 19(ballot)
-            1146:   96(ivec2) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1144 1145
-            1147:     40(ptr) AccessChain 31(data) 1141 33
-            1148:   17(ivec4) Load 1147
-            1149:   17(ivec4) VectorShuffle 1148 1146 4 5 2 3
-                              Store 1147 1149
-            1150:      6(int) Load 8(invocation)
-            1151:     40(ptr) AccessChain 31(data) 33 33
-            1152:   17(ivec4) Load 1151
-            1153:  103(ivec3) VectorShuffle 1152 1152 0 1 2
-            1154:   17(ivec4) Load 19(ballot)
-            1155:  103(ivec3) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1153 1154
-            1156:     40(ptr) AccessChain 31(data) 1150 33
-            1157:   17(ivec4) Load 1156
-            1158:   17(ivec4) VectorShuffle 1157 1155 4 5 6 3
-                              Store 1156 1158
+            1146:  103(ivec3) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1144 1145
+            1147:     90(ptr) AccessChain 31(data) 1141 33 35
+            1148:      6(int) CompositeExtract 1146 0
+                              Store 1147 1148
+            1149:     90(ptr) AccessChain 31(data) 1141 33 189
+            1150:      6(int) CompositeExtract 1146 1
+                              Store 1149 1150
+            1151:     90(ptr) AccessChain 31(data) 1141 33 202
+            1152:      6(int) CompositeExtract 1146 2
+                              Store 1151 1152
+            1153:      6(int) Load 8(invocation)
+            1154:     40(ptr) AccessChain 31(data) 115 33
+            1155:   17(ivec4) Load 1154
+            1156:   17(ivec4) Load 19(ballot)
+            1157:   17(ivec4) GroupNonUniformIAdd 178 PartitionedInclusiveScanNV 1155 1156
+            1158:     40(ptr) AccessChain 31(data) 1153 33
+                              Store 1158 1157
             1159:      6(int) Load 8(invocation)
-            1160:     40(ptr) AccessChain 31(data) 115 33
-            1161:   17(ivec4) Load 1160
+            1160:    116(ptr) AccessChain 31(data) 34 115 35
+            1161:26(float64_t) Load 1160
             1162:   17(ivec4) Load 19(ballot)
-            1163:   17(ivec4) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1161 1162
-            1164:     40(ptr) AccessChain 31(data) 1159 33
+            1163:26(float64_t) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1161 1162
+            1164:    116(ptr) AccessChain 31(data) 1159 115 35
                               Store 1164 1163
             1165:      6(int) Load 8(invocation)
-            1166:    116(ptr) AccessChain 31(data) 34 115 35
-            1167:26(float64_t) Load 1166
-            1168:   17(ivec4) Load 19(ballot)
-            1169:26(float64_t) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1167 1168
-            1170:    116(ptr) AccessChain 31(data) 1165 115 35
-                              Store 1170 1169
-            1171:      6(int) Load 8(invocation)
-            1172:    123(ptr) AccessChain 31(data) 63 115
-            1173: 27(f64vec4) Load 1172
-            1174:122(f64vec2) VectorShuffle 1173 1173 0 1
-            1175:   17(ivec4) Load 19(ballot)
-            1176:122(f64vec2) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1174 1175
-            1177:    123(ptr) AccessChain 31(data) 1171 115
-            1178: 27(f64vec4) Load 1177
-            1179: 27(f64vec4) VectorShuffle 1178 1176 4 5 2 3
-                              Store 1177 1179
-            1180:      6(int) Load 8(invocation)
-            1181:    123(ptr) AccessChain 31(data) 33 115
-            1182: 27(f64vec4) Load 1181
-            1183:130(f64vec3) VectorShuffle 1182 1182 0 1 2
-            1184:   17(ivec4) Load 19(ballot)
-            1185:130(f64vec3) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1183 1184
-            1186:    123(ptr) AccessChain 31(data) 1180 115
-            1187: 27(f64vec4) Load 1186
-            1188: 27(f64vec4) VectorShuffle 1187 1185 4 5 6 3
-                              Store 1186 1188
-            1189:      6(int) Load 8(invocation)
-            1190:    123(ptr) AccessChain 31(data) 115 115
-            1191: 27(f64vec4) Load 1190
-            1192:   17(ivec4) Load 19(ballot)
-            1193: 27(f64vec4) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1191 1192
-            1194:    123(ptr) AccessChain 31(data) 1189 115
-                              Store 1194 1193
-            1195:      6(int) Load 8(invocation)
-            1196:     36(ptr) AccessChain 31(data) 34 34 35
-            1197:   22(float) Load 1196
-            1198:   17(ivec4) Load 19(ballot)
-            1199:   22(float) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1197 1198
-            1200:     36(ptr) AccessChain 31(data) 1195 34 35
-                              Store 1200 1199
-            1201:      6(int) Load 8(invocation)
-            1202:     44(ptr) AccessChain 31(data) 63 34
-            1203:   23(fvec4) Load 1202
-            1204:   43(fvec2) VectorShuffle 1203 1203 0 1
-            1205:   17(ivec4) Load 19(ballot)
-            1206:   43(fvec2) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1204 1205
-            1207:     44(ptr) AccessChain 31(data) 1201 34
-            1208:   23(fvec4) Load 1207
-            1209:   23(fvec4) VectorShuffle 1208 1206 4 5 2 3
-                              Store 1207 1209
-            1210:      6(int) Load 8(invocation)
-            1211:     44(ptr) AccessChain 31(data) 33 34
-            1212:   23(fvec4) Load 1211
-            1213:   51(fvec3) VectorShuffle 1212 1212 0 1 2
-            1214:   17(ivec4) Load 19(ballot)
-            1215:   51(fvec3) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1213 1214
-            1216:     44(ptr) AccessChain 31(data) 1210 34
-            1217:   23(fvec4) Load 1216
-            1218:   23(fvec4) VectorShuffle 1217 1215 4 5 6 3
-                              Store 1216 1218
-            1219:      6(int) Load 8(invocation)
-            1220:     44(ptr) AccessChain 31(data) 115 34
-            1221:   23(fvec4) Load 1220
-            1222:   17(ivec4) Load 19(ballot)
-            1223:   23(fvec4) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1221 1222
-            1224:     44(ptr) AccessChain 31(data) 1219 34
-                              Store 1224 1223
-            1225:      6(int) Load 8(invocation)
-            1226:     64(ptr) AccessChain 31(data) 34 63 35
-            1227:     24(int) Load 1226
-            1228:   17(ivec4) Load 19(ballot)
-            1229:     24(int) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1227 1228
-            1230:     64(ptr) AccessChain 31(data) 1225 63 35
-                              Store 1230 1229
-            1231:      6(int) Load 8(invocation)
-            1232:     71(ptr) AccessChain 31(data) 63 63
-            1233:   25(ivec4) Load 1232
-            1234:   70(ivec2) VectorShuffle 1233 1233 0 1
-            1235:   17(ivec4) Load 19(ballot)
-            1236:   70(ivec2) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1234 1235
-            1237:     71(ptr) AccessChain 31(data) 1231 63
-            1238:   25(ivec4) Load 1237
-            1239:   25(ivec4) VectorShuffle 1238 1236 4 5 2 3
-                              Store 1237 1239
-            1240:      6(int) Load 8(invocation)
-            1241:     71(ptr) AccessChain 31(data) 33 63
-            1242:   25(ivec4) Load 1241
-            1243:   78(ivec3) VectorShuffle 1242 1242 0 1 2
-            1244:   17(ivec4) Load 19(ballot)
-            1245:   78(ivec3) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1243 1244
-            1246:     71(ptr) AccessChain 31(data) 1240 63
-            1247:   25(ivec4) Load 1246
-            1248:   25(ivec4) VectorShuffle 1247 1245 4 5 6 3
-                              Store 1246 1248
-            1249:      6(int) Load 8(invocation)
-            1250:     71(ptr) AccessChain 31(data) 115 63
-            1251:   25(ivec4) Load 1250
-            1252:   17(ivec4) Load 19(ballot)
-            1253:   25(ivec4) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1251 1252
-            1254:     71(ptr) AccessChain 31(data) 1249 63
-                              Store 1254 1253
+            1166:    123(ptr) AccessChain 31(data) 63 115
+            1167: 27(f64vec4) Load 1166
+            1168:122(f64vec2) VectorShuffle 1167 1167 0 1
+            1169:   17(ivec4) Load 19(ballot)
+            1170:122(f64vec2) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1168 1169
+            1171:    116(ptr) AccessChain 31(data) 1165 115 35
+            1172:26(float64_t) CompositeExtract 1170 0
+                              Store 1171 1172
+            1173:    116(ptr) AccessChain 31(data) 1165 115 189
+            1174:26(float64_t) CompositeExtract 1170 1
+                              Store 1173 1174
+            1175:      6(int) Load 8(invocation)
+            1176:    123(ptr) AccessChain 31(data) 33 115
+            1177: 27(f64vec4) Load 1176
+            1178:130(f64vec3) VectorShuffle 1177 1177 0 1 2
+            1179:   17(ivec4) Load 19(ballot)
+            1180:130(f64vec3) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1178 1179
+            1181:    116(ptr) AccessChain 31(data) 1175 115 35
+            1182:26(float64_t) CompositeExtract 1180 0
+                              Store 1181 1182
+            1183:    116(ptr) AccessChain 31(data) 1175 115 189
+            1184:26(float64_t) CompositeExtract 1180 1
+                              Store 1183 1184
+            1185:    116(ptr) AccessChain 31(data) 1175 115 202
+            1186:26(float64_t) CompositeExtract 1180 2
+                              Store 1185 1186
+            1187:      6(int) Load 8(invocation)
+            1188:    123(ptr) AccessChain 31(data) 115 115
+            1189: 27(f64vec4) Load 1188
+            1190:   17(ivec4) Load 19(ballot)
+            1191: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedInclusiveScanNV 1189 1190
+            1192:    123(ptr) AccessChain 31(data) 1187 115
+                              Store 1192 1191
+            1193:      6(int) Load 8(invocation)
+            1194:     36(ptr) AccessChain 31(data) 34 34 35
+            1195:   22(float) Load 1194
+            1196:   17(ivec4) Load 19(ballot)
+            1197:   22(float) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1195 1196
+            1198:     36(ptr) AccessChain 31(data) 1193 34 35
+                              Store 1198 1197
+            1199:      6(int) Load 8(invocation)
+            1200:     44(ptr) AccessChain 31(data) 63 34
+            1201:   23(fvec4) Load 1200
+            1202:   43(fvec2) VectorShuffle 1201 1201 0 1
+            1203:   17(ivec4) Load 19(ballot)
+            1204:   43(fvec2) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1202 1203
+            1205:     36(ptr) AccessChain 31(data) 1199 34 35
+            1206:   22(float) CompositeExtract 1204 0
+                              Store 1205 1206
+            1207:     36(ptr) AccessChain 31(data) 1199 34 189
+            1208:   22(float) CompositeExtract 1204 1
+                              Store 1207 1208
+            1209:      6(int) Load 8(invocation)
+            1210:     44(ptr) AccessChain 31(data) 33 34
+            1211:   23(fvec4) Load 1210
+            1212:   51(fvec3) VectorShuffle 1211 1211 0 1 2
+            1213:   17(ivec4) Load 19(ballot)
+            1214:   51(fvec3) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1212 1213
+            1215:     36(ptr) AccessChain 31(data) 1209 34 35
+            1216:   22(float) CompositeExtract 1214 0
+                              Store 1215 1216
+            1217:     36(ptr) AccessChain 31(data) 1209 34 189
+            1218:   22(float) CompositeExtract 1214 1
+                              Store 1217 1218
+            1219:     36(ptr) AccessChain 31(data) 1209 34 202
+            1220:   22(float) CompositeExtract 1214 2
+                              Store 1219 1220
+            1221:      6(int) Load 8(invocation)
+            1222:     44(ptr) AccessChain 31(data) 115 34
+            1223:   23(fvec4) Load 1222
+            1224:   17(ivec4) Load 19(ballot)
+            1225:   23(fvec4) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1223 1224
+            1226:     44(ptr) AccessChain 31(data) 1221 34
+                              Store 1226 1225
+            1227:      6(int) Load 8(invocation)
+            1228:     64(ptr) AccessChain 31(data) 34 63 35
+            1229:     24(int) Load 1228
+            1230:   17(ivec4) Load 19(ballot)
+            1231:     24(int) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1229 1230
+            1232:     64(ptr) AccessChain 31(data) 1227 63 35
+                              Store 1232 1231
+            1233:      6(int) Load 8(invocation)
+            1234:     71(ptr) AccessChain 31(data) 63 63
+            1235:   25(ivec4) Load 1234
+            1236:   70(ivec2) VectorShuffle 1235 1235 0 1
+            1237:   17(ivec4) Load 19(ballot)
+            1238:   70(ivec2) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1236 1237
+            1239:     64(ptr) AccessChain 31(data) 1233 63 35
+            1240:     24(int) CompositeExtract 1238 0
+                              Store 1239 1240
+            1241:     64(ptr) AccessChain 31(data) 1233 63 189
+            1242:     24(int) CompositeExtract 1238 1
+                              Store 1241 1242
+            1243:      6(int) Load 8(invocation)
+            1244:     71(ptr) AccessChain 31(data) 33 63
+            1245:   25(ivec4) Load 1244
+            1246:   78(ivec3) VectorShuffle 1245 1245 0 1 2
+            1247:   17(ivec4) Load 19(ballot)
+            1248:   78(ivec3) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1246 1247
+            1249:     64(ptr) AccessChain 31(data) 1243 63 35
+            1250:     24(int) CompositeExtract 1248 0
+                              Store 1249 1250
+            1251:     64(ptr) AccessChain 31(data) 1243 63 189
+            1252:     24(int) CompositeExtract 1248 1
+                              Store 1251 1252
+            1253:     64(ptr) AccessChain 31(data) 1243 63 202
+            1254:     24(int) CompositeExtract 1248 2
+                              Store 1253 1254
             1255:      6(int) Load 8(invocation)
-            1256:     90(ptr) AccessChain 31(data) 34 33 35
-            1257:      6(int) Load 1256
+            1256:     71(ptr) AccessChain 31(data) 115 63
+            1257:   25(ivec4) Load 1256
             1258:   17(ivec4) Load 19(ballot)
-            1259:      6(int) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1257 1258
-            1260:     90(ptr) AccessChain 31(data) 1255 33 35
+            1259:   25(ivec4) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1257 1258
+            1260:     71(ptr) AccessChain 31(data) 1255 63
                               Store 1260 1259
             1261:      6(int) Load 8(invocation)
-            1262:     40(ptr) AccessChain 31(data) 63 33
-            1263:   17(ivec4) Load 1262
-            1264:   96(ivec2) VectorShuffle 1263 1263 0 1
-            1265:   17(ivec4) Load 19(ballot)
-            1266:   96(ivec2) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1264 1265
-            1267:     40(ptr) AccessChain 31(data) 1261 33
-            1268:   17(ivec4) Load 1267
-            1269:   17(ivec4) VectorShuffle 1268 1266 4 5 2 3
-                              Store 1267 1269
-            1270:      6(int) Load 8(invocation)
-            1271:     40(ptr) AccessChain 31(data) 33 33
-            1272:   17(ivec4) Load 1271
-            1273:  103(ivec3) VectorShuffle 1272 1272 0 1 2
-            1274:   17(ivec4) Load 19(ballot)
-            1275:  103(ivec3) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1273 1274
-            1276:     40(ptr) AccessChain 31(data) 1270 33
-            1277:   17(ivec4) Load 1276
-            1278:   17(ivec4) VectorShuffle 1277 1275 4 5 6 3
-                              Store 1276 1278
-            1279:      6(int) Load 8(invocation)
-            1280:     40(ptr) AccessChain 31(data) 115 33
-            1281:   17(ivec4) Load 1280
-            1282:   17(ivec4) Load 19(ballot)
-            1283:   17(ivec4) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1281 1282
-            1284:     40(ptr) AccessChain 31(data) 1279 33
-                              Store 1284 1283
-            1285:      6(int) Load 8(invocation)
-            1286:    116(ptr) AccessChain 31(data) 34 115 35
-            1287:26(float64_t) Load 1286
-            1288:   17(ivec4) Load 19(ballot)
-            1289:26(float64_t) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1287 1288
-            1290:    116(ptr) AccessChain 31(data) 1285 115 35
-                              Store 1290 1289
-            1291:      6(int) Load 8(invocation)
-            1292:    123(ptr) AccessChain 31(data) 63 115
-            1293: 27(f64vec4) Load 1292
-            1294:122(f64vec2) VectorShuffle 1293 1293 0 1
-            1295:   17(ivec4) Load 19(ballot)
-            1296:122(f64vec2) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1294 1295
-            1297:    123(ptr) AccessChain 31(data) 1291 115
-            1298: 27(f64vec4) Load 1297
-            1299: 27(f64vec4) VectorShuffle 1298 1296 4 5 2 3
-                              Store 1297 1299
-            1300:      6(int) Load 8(invocation)
-            1301:    123(ptr) AccessChain 31(data) 33 115
-            1302: 27(f64vec4) Load 1301
-            1303:130(f64vec3) VectorShuffle 1302 1302 0 1 2
-            1304:   17(ivec4) Load 19(ballot)
-            1305:130(f64vec3) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1303 1304
-            1306:    123(ptr) AccessChain 31(data) 1300 115
-            1307: 27(f64vec4) Load 1306
-            1308: 27(f64vec4) VectorShuffle 1307 1305 4 5 6 3
-                              Store 1306 1308
-            1309:      6(int) Load 8(invocation)
-            1310:    123(ptr) AccessChain 31(data) 115 115
-            1311: 27(f64vec4) Load 1310
-            1312:   17(ivec4) Load 19(ballot)
-            1313: 27(f64vec4) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1311 1312
-            1314:    123(ptr) AccessChain 31(data) 1309 115
-                              Store 1314 1313
-            1315:      6(int) Load 8(invocation)
-            1316:     36(ptr) AccessChain 31(data) 34 34 35
-            1317:   22(float) Load 1316
-            1318:   17(ivec4) Load 19(ballot)
-            1319:   22(float) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1317 1318
-            1320:     36(ptr) AccessChain 31(data) 1315 34 35
-                              Store 1320 1319
-            1321:      6(int) Load 8(invocation)
-            1322:     44(ptr) AccessChain 31(data) 63 34
-            1323:   23(fvec4) Load 1322
-            1324:   43(fvec2) VectorShuffle 1323 1323 0 1
-            1325:   17(ivec4) Load 19(ballot)
-            1326:   43(fvec2) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1324 1325
-            1327:     44(ptr) AccessChain 31(data) 1321 34
-            1328:   23(fvec4) Load 1327
-            1329:   23(fvec4) VectorShuffle 1328 1326 4 5 2 3
-                              Store 1327 1329
-            1330:      6(int) Load 8(invocation)
-            1331:     44(ptr) AccessChain 31(data) 33 34
-            1332:   23(fvec4) Load 1331
-            1333:   51(fvec3) VectorShuffle 1332 1332 0 1 2
-            1334:   17(ivec4) Load 19(ballot)
-            1335:   51(fvec3) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1333 1334
-            1336:     44(ptr) AccessChain 31(data) 1330 34
+            1262:     90(ptr) AccessChain 31(data) 34 33 35
+            1263:      6(int) Load 1262
+            1264:   17(ivec4) Load 19(ballot)
+            1265:      6(int) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1263 1264
+            1266:     90(ptr) AccessChain 31(data) 1261 33 35
+                              Store 1266 1265
+            1267:      6(int) Load 8(invocation)
+            1268:     40(ptr) AccessChain 31(data) 63 33
+            1269:   17(ivec4) Load 1268
+            1270:   96(ivec2) VectorShuffle 1269 1269 0 1
+            1271:   17(ivec4) Load 19(ballot)
+            1272:   96(ivec2) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1270 1271
+            1273:     90(ptr) AccessChain 31(data) 1267 33 35
+            1274:      6(int) CompositeExtract 1272 0
+                              Store 1273 1274
+            1275:     90(ptr) AccessChain 31(data) 1267 33 189
+            1276:      6(int) CompositeExtract 1272 1
+                              Store 1275 1276
+            1277:      6(int) Load 8(invocation)
+            1278:     40(ptr) AccessChain 31(data) 33 33
+            1279:   17(ivec4) Load 1278
+            1280:  103(ivec3) VectorShuffle 1279 1279 0 1 2
+            1281:   17(ivec4) Load 19(ballot)
+            1282:  103(ivec3) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1280 1281
+            1283:     90(ptr) AccessChain 31(data) 1277 33 35
+            1284:      6(int) CompositeExtract 1282 0
+                              Store 1283 1284
+            1285:     90(ptr) AccessChain 31(data) 1277 33 189
+            1286:      6(int) CompositeExtract 1282 1
+                              Store 1285 1286
+            1287:     90(ptr) AccessChain 31(data) 1277 33 202
+            1288:      6(int) CompositeExtract 1282 2
+                              Store 1287 1288
+            1289:      6(int) Load 8(invocation)
+            1290:     40(ptr) AccessChain 31(data) 115 33
+            1291:   17(ivec4) Load 1290
+            1292:   17(ivec4) Load 19(ballot)
+            1293:   17(ivec4) GroupNonUniformIMul 178 PartitionedInclusiveScanNV 1291 1292
+            1294:     40(ptr) AccessChain 31(data) 1289 33
+                              Store 1294 1293
+            1295:      6(int) Load 8(invocation)
+            1296:    116(ptr) AccessChain 31(data) 34 115 35
+            1297:26(float64_t) Load 1296
+            1298:   17(ivec4) Load 19(ballot)
+            1299:26(float64_t) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1297 1298
+            1300:    116(ptr) AccessChain 31(data) 1295 115 35
+                              Store 1300 1299
+            1301:      6(int) Load 8(invocation)
+            1302:    123(ptr) AccessChain 31(data) 63 115
+            1303: 27(f64vec4) Load 1302
+            1304:122(f64vec2) VectorShuffle 1303 1303 0 1
+            1305:   17(ivec4) Load 19(ballot)
+            1306:122(f64vec2) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1304 1305
+            1307:    116(ptr) AccessChain 31(data) 1301 115 35
+            1308:26(float64_t) CompositeExtract 1306 0
+                              Store 1307 1308
+            1309:    116(ptr) AccessChain 31(data) 1301 115 189
+            1310:26(float64_t) CompositeExtract 1306 1
+                              Store 1309 1310
+            1311:      6(int) Load 8(invocation)
+            1312:    123(ptr) AccessChain 31(data) 33 115
+            1313: 27(f64vec4) Load 1312
+            1314:130(f64vec3) VectorShuffle 1313 1313 0 1 2
+            1315:   17(ivec4) Load 19(ballot)
+            1316:130(f64vec3) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1314 1315
+            1317:    116(ptr) AccessChain 31(data) 1311 115 35
+            1318:26(float64_t) CompositeExtract 1316 0
+                              Store 1317 1318
+            1319:    116(ptr) AccessChain 31(data) 1311 115 189
+            1320:26(float64_t) CompositeExtract 1316 1
+                              Store 1319 1320
+            1321:    116(ptr) AccessChain 31(data) 1311 115 202
+            1322:26(float64_t) CompositeExtract 1316 2
+                              Store 1321 1322
+            1323:      6(int) Load 8(invocation)
+            1324:    123(ptr) AccessChain 31(data) 115 115
+            1325: 27(f64vec4) Load 1324
+            1326:   17(ivec4) Load 19(ballot)
+            1327: 27(f64vec4) GroupNonUniformFMul 178 PartitionedInclusiveScanNV 1325 1326
+            1328:    123(ptr) AccessChain 31(data) 1323 115
+                              Store 1328 1327
+            1329:      6(int) Load 8(invocation)
+            1330:     36(ptr) AccessChain 31(data) 34 34 35
+            1331:   22(float) Load 1330
+            1332:   17(ivec4) Load 19(ballot)
+            1333:   22(float) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1331 1332
+            1334:     36(ptr) AccessChain 31(data) 1329 34 35
+                              Store 1334 1333
+            1335:      6(int) Load 8(invocation)
+            1336:     44(ptr) AccessChain 31(data) 63 34
             1337:   23(fvec4) Load 1336
-            1338:   23(fvec4) VectorShuffle 1337 1335 4 5 6 3
-                              Store 1336 1338
-            1339:      6(int) Load 8(invocation)
-            1340:     44(ptr) AccessChain 31(data) 115 34
-            1341:   23(fvec4) Load 1340
-            1342:   17(ivec4) Load 19(ballot)
-            1343:   23(fvec4) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1341 1342
-            1344:     44(ptr) AccessChain 31(data) 1339 34
-                              Store 1344 1343
+            1338:   43(fvec2) VectorShuffle 1337 1337 0 1
+            1339:   17(ivec4) Load 19(ballot)
+            1340:   43(fvec2) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1338 1339
+            1341:     36(ptr) AccessChain 31(data) 1335 34 35
+            1342:   22(float) CompositeExtract 1340 0
+                              Store 1341 1342
+            1343:     36(ptr) AccessChain 31(data) 1335 34 189
+            1344:   22(float) CompositeExtract 1340 1
+                              Store 1343 1344
             1345:      6(int) Load 8(invocation)
-            1346:     64(ptr) AccessChain 31(data) 34 63 35
-            1347:     24(int) Load 1346
-            1348:   17(ivec4) Load 19(ballot)
-            1349:     24(int) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1347 1348
-            1350:     64(ptr) AccessChain 31(data) 1345 63 35
-                              Store 1350 1349
-            1351:      6(int) Load 8(invocation)
-            1352:     71(ptr) AccessChain 31(data) 63 63
-            1353:   25(ivec4) Load 1352
-            1354:   70(ivec2) VectorShuffle 1353 1353 0 1
-            1355:   17(ivec4) Load 19(ballot)
-            1356:   70(ivec2) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1354 1355
-            1357:     71(ptr) AccessChain 31(data) 1351 63
-            1358:   25(ivec4) Load 1357
-            1359:   25(ivec4) VectorShuffle 1358 1356 4 5 2 3
-                              Store 1357 1359
-            1360:      6(int) Load 8(invocation)
-            1361:     71(ptr) AccessChain 31(data) 33 63
-            1362:   25(ivec4) Load 1361
-            1363:   78(ivec3) VectorShuffle 1362 1362 0 1 2
-            1364:   17(ivec4) Load 19(ballot)
-            1365:   78(ivec3) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1363 1364
-            1366:     71(ptr) AccessChain 31(data) 1360 63
-            1367:   25(ivec4) Load 1366
-            1368:   25(ivec4) VectorShuffle 1367 1365 4 5 6 3
-                              Store 1366 1368
+            1346:     44(ptr) AccessChain 31(data) 33 34
+            1347:   23(fvec4) Load 1346
+            1348:   51(fvec3) VectorShuffle 1347 1347 0 1 2
+            1349:   17(ivec4) Load 19(ballot)
+            1350:   51(fvec3) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1348 1349
+            1351:     36(ptr) AccessChain 31(data) 1345 34 35
+            1352:   22(float) CompositeExtract 1350 0
+                              Store 1351 1352
+            1353:     36(ptr) AccessChain 31(data) 1345 34 189
+            1354:   22(float) CompositeExtract 1350 1
+                              Store 1353 1354
+            1355:     36(ptr) AccessChain 31(data) 1345 34 202
+            1356:   22(float) CompositeExtract 1350 2
+                              Store 1355 1356
+            1357:      6(int) Load 8(invocation)
+            1358:     44(ptr) AccessChain 31(data) 115 34
+            1359:   23(fvec4) Load 1358
+            1360:   17(ivec4) Load 19(ballot)
+            1361:   23(fvec4) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1359 1360
+            1362:     44(ptr) AccessChain 31(data) 1357 34
+                              Store 1362 1361
+            1363:      6(int) Load 8(invocation)
+            1364:     64(ptr) AccessChain 31(data) 34 63 35
+            1365:     24(int) Load 1364
+            1366:   17(ivec4) Load 19(ballot)
+            1367:     24(int) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1365 1366
+            1368:     64(ptr) AccessChain 31(data) 1363 63 35
+                              Store 1368 1367
             1369:      6(int) Load 8(invocation)
-            1370:     71(ptr) AccessChain 31(data) 115 63
+            1370:     71(ptr) AccessChain 31(data) 63 63
             1371:   25(ivec4) Load 1370
-            1372:   17(ivec4) Load 19(ballot)
-            1373:   25(ivec4) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1371 1372
-            1374:     71(ptr) AccessChain 31(data) 1369 63
-                              Store 1374 1373
-            1375:      6(int) Load 8(invocation)
-            1376:     90(ptr) AccessChain 31(data) 34 33 35
-            1377:      6(int) Load 1376
-            1378:   17(ivec4) Load 19(ballot)
-            1379:      6(int) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1377 1378
-            1380:     90(ptr) AccessChain 31(data) 1375 33 35
-                              Store 1380 1379
-            1381:      6(int) Load 8(invocation)
-            1382:     40(ptr) AccessChain 31(data) 63 33
-            1383:   17(ivec4) Load 1382
-            1384:   96(ivec2) VectorShuffle 1383 1383 0 1
-            1385:   17(ivec4) Load 19(ballot)
-            1386:   96(ivec2) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1384 1385
-            1387:     40(ptr) AccessChain 31(data) 1381 33
-            1388:   17(ivec4) Load 1387
-            1389:   17(ivec4) VectorShuffle 1388 1386 4 5 2 3
-                              Store 1387 1389
-            1390:      6(int) Load 8(invocation)
-            1391:     40(ptr) AccessChain 31(data) 33 33
-            1392:   17(ivec4) Load 1391
-            1393:  103(ivec3) VectorShuffle 1392 1392 0 1 2
+            1372:   70(ivec2) VectorShuffle 1371 1371 0 1
+            1373:   17(ivec4) Load 19(ballot)
+            1374:   70(ivec2) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1372 1373
+            1375:     64(ptr) AccessChain 31(data) 1369 63 35
+            1376:     24(int) CompositeExtract 1374 0
+                              Store 1375 1376
+            1377:     64(ptr) AccessChain 31(data) 1369 63 189
+            1378:     24(int) CompositeExtract 1374 1
+                              Store 1377 1378
+            1379:      6(int) Load 8(invocation)
+            1380:     71(ptr) AccessChain 31(data) 33 63
+            1381:   25(ivec4) Load 1380
+            1382:   78(ivec3) VectorShuffle 1381 1381 0 1 2
+            1383:   17(ivec4) Load 19(ballot)
+            1384:   78(ivec3) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1382 1383
+            1385:     64(ptr) AccessChain 31(data) 1379 63 35
+            1386:     24(int) CompositeExtract 1384 0
+                              Store 1385 1386
+            1387:     64(ptr) AccessChain 31(data) 1379 63 189
+            1388:     24(int) CompositeExtract 1384 1
+                              Store 1387 1388
+            1389:     64(ptr) AccessChain 31(data) 1379 63 202
+            1390:     24(int) CompositeExtract 1384 2
+                              Store 1389 1390
+            1391:      6(int) Load 8(invocation)
+            1392:     71(ptr) AccessChain 31(data) 115 63
+            1393:   25(ivec4) Load 1392
             1394:   17(ivec4) Load 19(ballot)
-            1395:  103(ivec3) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1393 1394
-            1396:     40(ptr) AccessChain 31(data) 1390 33
-            1397:   17(ivec4) Load 1396
-            1398:   17(ivec4) VectorShuffle 1397 1395 4 5 6 3
-                              Store 1396 1398
-            1399:      6(int) Load 8(invocation)
-            1400:     40(ptr) AccessChain 31(data) 115 33
-            1401:   17(ivec4) Load 1400
-            1402:   17(ivec4) Load 19(ballot)
-            1403:   17(ivec4) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1401 1402
-            1404:     40(ptr) AccessChain 31(data) 1399 33
-                              Store 1404 1403
-            1405:      6(int) Load 8(invocation)
-            1406:    116(ptr) AccessChain 31(data) 34 115 35
-            1407:26(float64_t) Load 1406
-            1408:   17(ivec4) Load 19(ballot)
-            1409:26(float64_t) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1407 1408
-            1410:    116(ptr) AccessChain 31(data) 1405 115 35
-                              Store 1410 1409
-            1411:      6(int) Load 8(invocation)
-            1412:    123(ptr) AccessChain 31(data) 63 115
-            1413: 27(f64vec4) Load 1412
-            1414:122(f64vec2) VectorShuffle 1413 1413 0 1
-            1415:   17(ivec4) Load 19(ballot)
-            1416:122(f64vec2) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1414 1415
-            1417:    123(ptr) AccessChain 31(data) 1411 115
-            1418: 27(f64vec4) Load 1417
-            1419: 27(f64vec4) VectorShuffle 1418 1416 4 5 2 3
-                              Store 1417 1419
-            1420:      6(int) Load 8(invocation)
-            1421:    123(ptr) AccessChain 31(data) 33 115
-            1422: 27(f64vec4) Load 1421
-            1423:130(f64vec3) VectorShuffle 1422 1422 0 1 2
-            1424:   17(ivec4) Load 19(ballot)
-            1425:130(f64vec3) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1423 1424
-            1426:    123(ptr) AccessChain 31(data) 1420 115
-            1427: 27(f64vec4) Load 1426
-            1428: 27(f64vec4) VectorShuffle 1427 1425 4 5 6 3
-                              Store 1426 1428
-            1429:      6(int) Load 8(invocation)
-            1430:    123(ptr) AccessChain 31(data) 115 115
-            1431: 27(f64vec4) Load 1430
-            1432:   17(ivec4) Load 19(ballot)
-            1433: 27(f64vec4) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1431 1432
-            1434:    123(ptr) AccessChain 31(data) 1429 115
-                              Store 1434 1433
-            1435:      6(int) Load 8(invocation)
-            1436:     64(ptr) AccessChain 31(data) 34 63 35
-            1437:     24(int) Load 1436
-            1438:   17(ivec4) Load 19(ballot)
-            1439:     24(int) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1437 1438
-            1440:     64(ptr) AccessChain 31(data) 1435 63 35
-                              Store 1440 1439
-            1441:      6(int) Load 8(invocation)
-            1442:     71(ptr) AccessChain 31(data) 63 63
-            1443:   25(ivec4) Load 1442
-            1444:   70(ivec2) VectorShuffle 1443 1443 0 1
-            1445:   17(ivec4) Load 19(ballot)
-            1446:   70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1444 1445
-            1447:     71(ptr) AccessChain 31(data) 1441 63
-            1448:   25(ivec4) Load 1447
-            1449:   25(ivec4) VectorShuffle 1448 1446 4 5 2 3
-                              Store 1447 1449
-            1450:      6(int) Load 8(invocation)
-            1451:     71(ptr) AccessChain 31(data) 33 63
-            1452:   25(ivec4) Load 1451
-            1453:   78(ivec3) VectorShuffle 1452 1452 0 1 2
-            1454:   17(ivec4) Load 19(ballot)
-            1455:   78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1453 1454
-            1456:     71(ptr) AccessChain 31(data) 1450 63
-            1457:   25(ivec4) Load 1456
-            1458:   25(ivec4) VectorShuffle 1457 1455 4 5 6 3
-                              Store 1456 1458
+            1395:   25(ivec4) GroupNonUniformSMin 178 PartitionedInclusiveScanNV 1393 1394
+            1396:     71(ptr) AccessChain 31(data) 1391 63
+                              Store 1396 1395
+            1397:      6(int) Load 8(invocation)
+            1398:     90(ptr) AccessChain 31(data) 34 33 35
+            1399:      6(int) Load 1398
+            1400:   17(ivec4) Load 19(ballot)
+            1401:      6(int) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1399 1400
+            1402:     90(ptr) AccessChain 31(data) 1397 33 35
+                              Store 1402 1401
+            1403:      6(int) Load 8(invocation)
+            1404:     40(ptr) AccessChain 31(data) 63 33
+            1405:   17(ivec4) Load 1404
+            1406:   96(ivec2) VectorShuffle 1405 1405 0 1
+            1407:   17(ivec4) Load 19(ballot)
+            1408:   96(ivec2) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1406 1407
+            1409:     90(ptr) AccessChain 31(data) 1403 33 35
+            1410:      6(int) CompositeExtract 1408 0
+                              Store 1409 1410
+            1411:     90(ptr) AccessChain 31(data) 1403 33 189
+            1412:      6(int) CompositeExtract 1408 1
+                              Store 1411 1412
+            1413:      6(int) Load 8(invocation)
+            1414:     40(ptr) AccessChain 31(data) 33 33
+            1415:   17(ivec4) Load 1414
+            1416:  103(ivec3) VectorShuffle 1415 1415 0 1 2
+            1417:   17(ivec4) Load 19(ballot)
+            1418:  103(ivec3) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1416 1417
+            1419:     90(ptr) AccessChain 31(data) 1413 33 35
+            1420:      6(int) CompositeExtract 1418 0
+                              Store 1419 1420
+            1421:     90(ptr) AccessChain 31(data) 1413 33 189
+            1422:      6(int) CompositeExtract 1418 1
+                              Store 1421 1422
+            1423:     90(ptr) AccessChain 31(data) 1413 33 202
+            1424:      6(int) CompositeExtract 1418 2
+                              Store 1423 1424
+            1425:      6(int) Load 8(invocation)
+            1426:     40(ptr) AccessChain 31(data) 115 33
+            1427:   17(ivec4) Load 1426
+            1428:   17(ivec4) Load 19(ballot)
+            1429:   17(ivec4) GroupNonUniformUMin 178 PartitionedInclusiveScanNV 1427 1428
+            1430:     40(ptr) AccessChain 31(data) 1425 33
+                              Store 1430 1429
+            1431:      6(int) Load 8(invocation)
+            1432:    116(ptr) AccessChain 31(data) 34 115 35
+            1433:26(float64_t) Load 1432
+            1434:   17(ivec4) Load 19(ballot)
+            1435:26(float64_t) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1433 1434
+            1436:    116(ptr) AccessChain 31(data) 1431 115 35
+                              Store 1436 1435
+            1437:      6(int) Load 8(invocation)
+            1438:    123(ptr) AccessChain 31(data) 63 115
+            1439: 27(f64vec4) Load 1438
+            1440:122(f64vec2) VectorShuffle 1439 1439 0 1
+            1441:   17(ivec4) Load 19(ballot)
+            1442:122(f64vec2) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1440 1441
+            1443:    116(ptr) AccessChain 31(data) 1437 115 35
+            1444:26(float64_t) CompositeExtract 1442 0
+                              Store 1443 1444
+            1445:    116(ptr) AccessChain 31(data) 1437 115 189
+            1446:26(float64_t) CompositeExtract 1442 1
+                              Store 1445 1446
+            1447:      6(int) Load 8(invocation)
+            1448:    123(ptr) AccessChain 31(data) 33 115
+            1449: 27(f64vec4) Load 1448
+            1450:130(f64vec3) VectorShuffle 1449 1449 0 1 2
+            1451:   17(ivec4) Load 19(ballot)
+            1452:130(f64vec3) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1450 1451
+            1453:    116(ptr) AccessChain 31(data) 1447 115 35
+            1454:26(float64_t) CompositeExtract 1452 0
+                              Store 1453 1454
+            1455:    116(ptr) AccessChain 31(data) 1447 115 189
+            1456:26(float64_t) CompositeExtract 1452 1
+                              Store 1455 1456
+            1457:    116(ptr) AccessChain 31(data) 1447 115 202
+            1458:26(float64_t) CompositeExtract 1452 2
+                              Store 1457 1458
             1459:      6(int) Load 8(invocation)
-            1460:     71(ptr) AccessChain 31(data) 115 63
-            1461:   25(ivec4) Load 1460
+            1460:    123(ptr) AccessChain 31(data) 115 115
+            1461: 27(f64vec4) Load 1460
             1462:   17(ivec4) Load 19(ballot)
-            1463:   25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1461 1462
-            1464:     71(ptr) AccessChain 31(data) 1459 63
+            1463: 27(f64vec4) GroupNonUniformFMin 178 PartitionedInclusiveScanNV 1461 1462
+            1464:    123(ptr) AccessChain 31(data) 1459 115
                               Store 1464 1463
             1465:      6(int) Load 8(invocation)
-            1466:     90(ptr) AccessChain 31(data) 34 33 35
-            1467:      6(int) Load 1466
+            1466:     36(ptr) AccessChain 31(data) 34 34 35
+            1467:   22(float) Load 1466
             1468:   17(ivec4) Load 19(ballot)
-            1469:      6(int) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1467 1468
-            1470:     90(ptr) AccessChain 31(data) 1465 33 35
+            1469:   22(float) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1467 1468
+            1470:     36(ptr) AccessChain 31(data) 1465 34 35
                               Store 1470 1469
             1471:      6(int) Load 8(invocation)
-            1472:     40(ptr) AccessChain 31(data) 63 33
-            1473:   17(ivec4) Load 1472
-            1474:   96(ivec2) VectorShuffle 1473 1473 0 1
+            1472:     44(ptr) AccessChain 31(data) 63 34
+            1473:   23(fvec4) Load 1472
+            1474:   43(fvec2) VectorShuffle 1473 1473 0 1
             1475:   17(ivec4) Load 19(ballot)
-            1476:   96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1474 1475
-            1477:     40(ptr) AccessChain 31(data) 1471 33
-            1478:   17(ivec4) Load 1477
-            1479:   17(ivec4) VectorShuffle 1478 1476 4 5 2 3
-                              Store 1477 1479
-            1480:      6(int) Load 8(invocation)
-            1481:     40(ptr) AccessChain 31(data) 33 33
-            1482:   17(ivec4) Load 1481
-            1483:  103(ivec3) VectorShuffle 1482 1482 0 1 2
-            1484:   17(ivec4) Load 19(ballot)
-            1485:  103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1483 1484
-            1486:     40(ptr) AccessChain 31(data) 1480 33
-            1487:   17(ivec4) Load 1486
-            1488:   17(ivec4) VectorShuffle 1487 1485 4 5 6 3
-                              Store 1486 1488
-            1489:      6(int) Load 8(invocation)
-            1490:     40(ptr) AccessChain 31(data) 115 33
-            1491:   17(ivec4) Load 1490
-            1492:   17(ivec4) Load 19(ballot)
-            1493:   17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1491 1492
-            1494:     40(ptr) AccessChain 31(data) 1489 33
-                              Store 1494 1493
-            1495:      6(int) Load 8(invocation)
-            1496:     64(ptr) AccessChain 31(data) 34 63 35
-            1497:     24(int) Load 1496
-            1498:   144(bool) SLessThan 1497 34
-            1499:   17(ivec4) Load 19(ballot)
-            1500:   144(bool) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1498 1499
-            1501:     24(int) Select 1500 63 34
-            1502:     64(ptr) AccessChain 31(data) 1495 63 35
-                              Store 1502 1501
-            1503:      6(int) Load 8(invocation)
-            1504:     71(ptr) AccessChain 31(data) 63 63
-            1505:   25(ivec4) Load 1504
-            1506:   70(ivec2) VectorShuffle 1505 1505 0 1
-            1507:  152(bvec2) SLessThan 1506 727
-            1508:   17(ivec4) Load 19(ballot)
-            1509:  152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1507 1508
-            1510:   70(ivec2) Select 1509 731 727
-            1511:     71(ptr) AccessChain 31(data) 1503 63
-            1512:   25(ivec4) Load 1511
-            1513:   25(ivec4) VectorShuffle 1512 1510 4 5 2 3
-                              Store 1511 1513
-            1514:      6(int) Load 8(invocation)
-            1515:     71(ptr) AccessChain 31(data) 63 63
-            1516:   25(ivec4) Load 1515
-            1517:   78(ivec3) VectorShuffle 1516 1516 0 1 2
-            1518:  161(bvec3) SLessThan 1517 740
+            1476:   43(fvec2) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1474 1475
+            1477:     36(ptr) AccessChain 31(data) 1471 34 35
+            1478:   22(float) CompositeExtract 1476 0
+                              Store 1477 1478
+            1479:     36(ptr) AccessChain 31(data) 1471 34 189
+            1480:   22(float) CompositeExtract 1476 1
+                              Store 1479 1480
+            1481:      6(int) Load 8(invocation)
+            1482:     44(ptr) AccessChain 31(data) 33 34
+            1483:   23(fvec4) Load 1482
+            1484:   51(fvec3) VectorShuffle 1483 1483 0 1 2
+            1485:   17(ivec4) Load 19(ballot)
+            1486:   51(fvec3) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1484 1485
+            1487:     36(ptr) AccessChain 31(data) 1481 34 35
+            1488:   22(float) CompositeExtract 1486 0
+                              Store 1487 1488
+            1489:     36(ptr) AccessChain 31(data) 1481 34 189
+            1490:   22(float) CompositeExtract 1486 1
+                              Store 1489 1490
+            1491:     36(ptr) AccessChain 31(data) 1481 34 202
+            1492:   22(float) CompositeExtract 1486 2
+                              Store 1491 1492
+            1493:      6(int) Load 8(invocation)
+            1494:     44(ptr) AccessChain 31(data) 115 34
+            1495:   23(fvec4) Load 1494
+            1496:   17(ivec4) Load 19(ballot)
+            1497:   23(fvec4) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1495 1496
+            1498:     44(ptr) AccessChain 31(data) 1493 34
+                              Store 1498 1497
+            1499:      6(int) Load 8(invocation)
+            1500:     64(ptr) AccessChain 31(data) 34 63 35
+            1501:     24(int) Load 1500
+            1502:   17(ivec4) Load 19(ballot)
+            1503:     24(int) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1501 1502
+            1504:     64(ptr) AccessChain 31(data) 1499 63 35
+                              Store 1504 1503
+            1505:      6(int) Load 8(invocation)
+            1506:     71(ptr) AccessChain 31(data) 63 63
+            1507:   25(ivec4) Load 1506
+            1508:   70(ivec2) VectorShuffle 1507 1507 0 1
+            1509:   17(ivec4) Load 19(ballot)
+            1510:   70(ivec2) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1508 1509
+            1511:     64(ptr) AccessChain 31(data) 1505 63 35
+            1512:     24(int) CompositeExtract 1510 0
+                              Store 1511 1512
+            1513:     64(ptr) AccessChain 31(data) 1505 63 189
+            1514:     24(int) CompositeExtract 1510 1
+                              Store 1513 1514
+            1515:      6(int) Load 8(invocation)
+            1516:     71(ptr) AccessChain 31(data) 33 63
+            1517:   25(ivec4) Load 1516
+            1518:   78(ivec3) VectorShuffle 1517 1517 0 1 2
             1519:   17(ivec4) Load 19(ballot)
-            1520:  161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1518 1519
-            1521:   78(ivec3) Select 1520 744 740
-            1522:     71(ptr) AccessChain 31(data) 1514 63
-            1523:   25(ivec4) Load 1522
-            1524:   25(ivec4) VectorShuffle 1523 1521 4 5 6 3
-                              Store 1522 1524
-            1525:      6(int) Load 8(invocation)
-            1526:     71(ptr) AccessChain 31(data) 63 63
-            1527:   25(ivec4) Load 1526
-            1528:  169(bvec4) SLessThan 1527 752
-            1529:   17(ivec4) Load 19(ballot)
-            1530:  169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1528 1529
-            1531:   25(ivec4) Select 1530 756 752
-            1532:     71(ptr) AccessChain 31(data) 1525 63
+            1520:   78(ivec3) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1518 1519
+            1521:     64(ptr) AccessChain 31(data) 1515 63 35
+            1522:     24(int) CompositeExtract 1520 0
+                              Store 1521 1522
+            1523:     64(ptr) AccessChain 31(data) 1515 63 189
+            1524:     24(int) CompositeExtract 1520 1
+                              Store 1523 1524
+            1525:     64(ptr) AccessChain 31(data) 1515 63 202
+            1526:     24(int) CompositeExtract 1520 2
+                              Store 1525 1526
+            1527:      6(int) Load 8(invocation)
+            1528:     71(ptr) AccessChain 31(data) 115 63
+            1529:   25(ivec4) Load 1528
+            1530:   17(ivec4) Load 19(ballot)
+            1531:   25(ivec4) GroupNonUniformSMax 178 PartitionedInclusiveScanNV 1529 1530
+            1532:     71(ptr) AccessChain 31(data) 1527 63
                               Store 1532 1531
             1533:      6(int) Load 8(invocation)
-            1534:     64(ptr) AccessChain 31(data) 34 63 35
-            1535:     24(int) Load 1534
+            1534:     90(ptr) AccessChain 31(data) 34 33 35
+            1535:      6(int) Load 1534
             1536:   17(ivec4) Load 19(ballot)
-            1537:     24(int) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1535 1536
-            1538:     64(ptr) AccessChain 31(data) 1533 63 35
+            1537:      6(int) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1535 1536
+            1538:     90(ptr) AccessChain 31(data) 1533 33 35
                               Store 1538 1537
             1539:      6(int) Load 8(invocation)
-            1540:     71(ptr) AccessChain 31(data) 63 63
-            1541:   25(ivec4) Load 1540
-            1542:   70(ivec2) VectorShuffle 1541 1541 0 1
+            1540:     40(ptr) AccessChain 31(data) 63 33
+            1541:   17(ivec4) Load 1540
+            1542:   96(ivec2) VectorShuffle 1541 1541 0 1
             1543:   17(ivec4) Load 19(ballot)
-            1544:   70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1542 1543
-            1545:     71(ptr) AccessChain 31(data) 1539 63
-            1546:   25(ivec4) Load 1545
-            1547:   25(ivec4) VectorShuffle 1546 1544 4 5 2 3
-                              Store 1545 1547
-            1548:      6(int) Load 8(invocation)
-            1549:     71(ptr) AccessChain 31(data) 33 63
-            1550:   25(ivec4) Load 1549
-            1551:   78(ivec3) VectorShuffle 1550 1550 0 1 2
-            1552:   17(ivec4) Load 19(ballot)
-            1553:   78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1551 1552
-            1554:     71(ptr) AccessChain 31(data) 1548 63
-            1555:   25(ivec4) Load 1554
-            1556:   25(ivec4) VectorShuffle 1555 1553 4 5 6 3
-                              Store 1554 1556
-            1557:      6(int) Load 8(invocation)
-            1558:     71(ptr) AccessChain 31(data) 115 63
-            1559:   25(ivec4) Load 1558
-            1560:   17(ivec4) Load 19(ballot)
-            1561:   25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1559 1560
-            1562:     71(ptr) AccessChain 31(data) 1557 63
-                              Store 1562 1561
-            1563:      6(int) Load 8(invocation)
-            1564:     90(ptr) AccessChain 31(data) 34 33 35
-            1565:      6(int) Load 1564
-            1566:   17(ivec4) Load 19(ballot)
-            1567:      6(int) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1565 1566
-            1568:     90(ptr) AccessChain 31(data) 1563 33 35
-                              Store 1568 1567
-            1569:      6(int) Load 8(invocation)
-            1570:     40(ptr) AccessChain 31(data) 63 33
-            1571:   17(ivec4) Load 1570
-            1572:   96(ivec2) VectorShuffle 1571 1571 0 1
-            1573:   17(ivec4) Load 19(ballot)
-            1574:   96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1572 1573
-            1575:     40(ptr) AccessChain 31(data) 1569 33
-            1576:   17(ivec4) Load 1575
-            1577:   17(ivec4) VectorShuffle 1576 1574 4 5 2 3
-                              Store 1575 1577
-            1578:      6(int) Load 8(invocation)
-            1579:     40(ptr) AccessChain 31(data) 33 33
-            1580:   17(ivec4) Load 1579
-            1581:  103(ivec3) VectorShuffle 1580 1580 0 1 2
-            1582:   17(ivec4) Load 19(ballot)
-            1583:  103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1581 1582
-            1584:     40(ptr) AccessChain 31(data) 1578 33
-            1585:   17(ivec4) Load 1584
-            1586:   17(ivec4) VectorShuffle 1585 1583 4 5 6 3
-                              Store 1584 1586
-            1587:      6(int) Load 8(invocation)
-            1588:     40(ptr) AccessChain 31(data) 115 33
-            1589:   17(ivec4) Load 1588
-            1590:   17(ivec4) Load 19(ballot)
-            1591:   17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1589 1590
-            1592:     40(ptr) AccessChain 31(data) 1587 33
-                              Store 1592 1591
-            1593:      6(int) Load 8(invocation)
-            1594:     64(ptr) AccessChain 31(data) 34 63 35
-            1595:     24(int) Load 1594
-            1596:   144(bool) SLessThan 1595 34
-            1597:   17(ivec4) Load 19(ballot)
-            1598:   144(bool) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1596 1597
-            1599:     24(int) Select 1598 63 34
-            1600:     64(ptr) AccessChain 31(data) 1593 63 35
+            1544:   96(ivec2) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1542 1543
+            1545:     90(ptr) AccessChain 31(data) 1539 33 35
+            1546:      6(int) CompositeExtract 1544 0
+                              Store 1545 1546
+            1547:     90(ptr) AccessChain 31(data) 1539 33 189
+            1548:      6(int) CompositeExtract 1544 1
+                              Store 1547 1548
+            1549:      6(int) Load 8(invocation)
+            1550:     40(ptr) AccessChain 31(data) 33 33
+            1551:   17(ivec4) Load 1550
+            1552:  103(ivec3) VectorShuffle 1551 1551 0 1 2
+            1553:   17(ivec4) Load 19(ballot)
+            1554:  103(ivec3) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1552 1553
+            1555:     90(ptr) AccessChain 31(data) 1549 33 35
+            1556:      6(int) CompositeExtract 1554 0
+                              Store 1555 1556
+            1557:     90(ptr) AccessChain 31(data) 1549 33 189
+            1558:      6(int) CompositeExtract 1554 1
+                              Store 1557 1558
+            1559:     90(ptr) AccessChain 31(data) 1549 33 202
+            1560:      6(int) CompositeExtract 1554 2
+                              Store 1559 1560
+            1561:      6(int) Load 8(invocation)
+            1562:     40(ptr) AccessChain 31(data) 115 33
+            1563:   17(ivec4) Load 1562
+            1564:   17(ivec4) Load 19(ballot)
+            1565:   17(ivec4) GroupNonUniformUMax 178 PartitionedInclusiveScanNV 1563 1564
+            1566:     40(ptr) AccessChain 31(data) 1561 33
+                              Store 1566 1565
+            1567:      6(int) Load 8(invocation)
+            1568:    116(ptr) AccessChain 31(data) 34 115 35
+            1569:26(float64_t) Load 1568
+            1570:   17(ivec4) Load 19(ballot)
+            1571:26(float64_t) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1569 1570
+            1572:    116(ptr) AccessChain 31(data) 1567 115 35
+                              Store 1572 1571
+            1573:      6(int) Load 8(invocation)
+            1574:    123(ptr) AccessChain 31(data) 63 115
+            1575: 27(f64vec4) Load 1574
+            1576:122(f64vec2) VectorShuffle 1575 1575 0 1
+            1577:   17(ivec4) Load 19(ballot)
+            1578:122(f64vec2) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1576 1577
+            1579:    116(ptr) AccessChain 31(data) 1573 115 35
+            1580:26(float64_t) CompositeExtract 1578 0
+                              Store 1579 1580
+            1581:    116(ptr) AccessChain 31(data) 1573 115 189
+            1582:26(float64_t) CompositeExtract 1578 1
+                              Store 1581 1582
+            1583:      6(int) Load 8(invocation)
+            1584:    123(ptr) AccessChain 31(data) 33 115
+            1585: 27(f64vec4) Load 1584
+            1586:130(f64vec3) VectorShuffle 1585 1585 0 1 2
+            1587:   17(ivec4) Load 19(ballot)
+            1588:130(f64vec3) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1586 1587
+            1589:    116(ptr) AccessChain 31(data) 1583 115 35
+            1590:26(float64_t) CompositeExtract 1588 0
+                              Store 1589 1590
+            1591:    116(ptr) AccessChain 31(data) 1583 115 189
+            1592:26(float64_t) CompositeExtract 1588 1
+                              Store 1591 1592
+            1593:    116(ptr) AccessChain 31(data) 1583 115 202
+            1594:26(float64_t) CompositeExtract 1588 2
+                              Store 1593 1594
+            1595:      6(int) Load 8(invocation)
+            1596:    123(ptr) AccessChain 31(data) 115 115
+            1597: 27(f64vec4) Load 1596
+            1598:   17(ivec4) Load 19(ballot)
+            1599: 27(f64vec4) GroupNonUniformFMax 178 PartitionedInclusiveScanNV 1597 1598
+            1600:    123(ptr) AccessChain 31(data) 1595 115
                               Store 1600 1599
             1601:      6(int) Load 8(invocation)
-            1602:     71(ptr) AccessChain 31(data) 63 63
-            1603:   25(ivec4) Load 1602
-            1604:   70(ivec2) VectorShuffle 1603 1603 0 1
-            1605:  152(bvec2) SLessThan 1604 727
-            1606:   17(ivec4) Load 19(ballot)
-            1607:  152(bvec2) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1605 1606
-            1608:   70(ivec2) Select 1607 731 727
-            1609:     71(ptr) AccessChain 31(data) 1601 63
-            1610:   25(ivec4) Load 1609
-            1611:   25(ivec4) VectorShuffle 1610 1608 4 5 2 3
-                              Store 1609 1611
-            1612:      6(int) Load 8(invocation)
-            1613:     71(ptr) AccessChain 31(data) 63 63
-            1614:   25(ivec4) Load 1613
-            1615:   78(ivec3) VectorShuffle 1614 1614 0 1 2
-            1616:  161(bvec3) SLessThan 1615 740
-            1617:   17(ivec4) Load 19(ballot)
-            1618:  161(bvec3) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1616 1617
-            1619:   78(ivec3) Select 1618 744 740
-            1620:     71(ptr) AccessChain 31(data) 1612 63
-            1621:   25(ivec4) Load 1620
-            1622:   25(ivec4) VectorShuffle 1621 1619 4 5 6 3
-                              Store 1620 1622
-            1623:      6(int) Load 8(invocation)
-            1624:     71(ptr) AccessChain 31(data) 63 63
-            1625:   25(ivec4) Load 1624
-            1626:  169(bvec4) SLessThan 1625 752
-            1627:   17(ivec4) Load 19(ballot)
-            1628:  169(bvec4) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1626 1627
-            1629:   25(ivec4) Select 1628 756 752
-            1630:     71(ptr) AccessChain 31(data) 1623 63
-                              Store 1630 1629
-            1631:      6(int) Load 8(invocation)
-            1632:     64(ptr) AccessChain 31(data) 34 63 35
-            1633:     24(int) Load 1632
-            1634:   17(ivec4) Load 19(ballot)
-            1635:     24(int) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1633 1634
-            1636:     64(ptr) AccessChain 31(data) 1631 63 35
-                              Store 1636 1635
-            1637:      6(int) Load 8(invocation)
-            1638:     71(ptr) AccessChain 31(data) 63 63
-            1639:   25(ivec4) Load 1638
-            1640:   70(ivec2) VectorShuffle 1639 1639 0 1
-            1641:   17(ivec4) Load 19(ballot)
-            1642:   70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1640 1641
-            1643:     71(ptr) AccessChain 31(data) 1637 63
-            1644:   25(ivec4) Load 1643
-            1645:   25(ivec4) VectorShuffle 1644 1642 4 5 2 3
-                              Store 1643 1645
-            1646:      6(int) Load 8(invocation)
-            1647:     71(ptr) AccessChain 31(data) 33 63
-            1648:   25(ivec4) Load 1647
-            1649:   78(ivec3) VectorShuffle 1648 1648 0 1 2
-            1650:   17(ivec4) Load 19(ballot)
-            1651:   78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1649 1650
-            1652:     71(ptr) AccessChain 31(data) 1646 63
-            1653:   25(ivec4) Load 1652
-            1654:   25(ivec4) VectorShuffle 1653 1651 4 5 6 3
-                              Store 1652 1654
-            1655:      6(int) Load 8(invocation)
-            1656:     71(ptr) AccessChain 31(data) 115 63
-            1657:   25(ivec4) Load 1656
-            1658:   17(ivec4) Load 19(ballot)
-            1659:   25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1657 1658
-            1660:     71(ptr) AccessChain 31(data) 1655 63
-                              Store 1660 1659
-            1661:      6(int) Load 8(invocation)
-            1662:     90(ptr) AccessChain 31(data) 34 33 35
-            1663:      6(int) Load 1662
-            1664:   17(ivec4) Load 19(ballot)
-            1665:      6(int) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1663 1664
-            1666:     90(ptr) AccessChain 31(data) 1661 33 35
-                              Store 1666 1665
-            1667:      6(int) Load 8(invocation)
-            1668:     40(ptr) AccessChain 31(data) 63 33
-            1669:   17(ivec4) Load 1668
-            1670:   96(ivec2) VectorShuffle 1669 1669 0 1
-            1671:   17(ivec4) Load 19(ballot)
-            1672:   96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1670 1671
-            1673:     40(ptr) AccessChain 31(data) 1667 33
-            1674:   17(ivec4) Load 1673
-            1675:   17(ivec4) VectorShuffle 1674 1672 4 5 2 3
-                              Store 1673 1675
-            1676:      6(int) Load 8(invocation)
-            1677:     40(ptr) AccessChain 31(data) 33 33
-            1678:   17(ivec4) Load 1677
-            1679:  103(ivec3) VectorShuffle 1678 1678 0 1 2
-            1680:   17(ivec4) Load 19(ballot)
-            1681:  103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1679 1680
-            1682:     40(ptr) AccessChain 31(data) 1676 33
-            1683:   17(ivec4) Load 1682
-            1684:   17(ivec4) VectorShuffle 1683 1681 4 5 6 3
-                              Store 1682 1684
-            1685:      6(int) Load 8(invocation)
-            1686:     40(ptr) AccessChain 31(data) 115 33
-            1687:   17(ivec4) Load 1686
-            1688:   17(ivec4) Load 19(ballot)
-            1689:   17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1687 1688
-            1690:     40(ptr) AccessChain 31(data) 1685 33
-                              Store 1690 1689
-            1691:      6(int) Load 8(invocation)
-            1692:     64(ptr) AccessChain 31(data) 34 63 35
-            1693:     24(int) Load 1692
-            1694:   144(bool) SLessThan 1693 34
-            1695:   17(ivec4) Load 19(ballot)
-            1696:   144(bool) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1694 1695
-            1697:     24(int) Select 1696 63 34
-            1698:     64(ptr) AccessChain 31(data) 1691 63 35
-                              Store 1698 1697
-            1699:      6(int) Load 8(invocation)
-            1700:     71(ptr) AccessChain 31(data) 63 63
-            1701:   25(ivec4) Load 1700
-            1702:   70(ivec2) VectorShuffle 1701 1701 0 1
-            1703:  152(bvec2) SLessThan 1702 727
-            1704:   17(ivec4) Load 19(ballot)
-            1705:  152(bvec2) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1703 1704
-            1706:   70(ivec2) Select 1705 731 727
-            1707:     71(ptr) AccessChain 31(data) 1699 63
-            1708:   25(ivec4) Load 1707
-            1709:   25(ivec4) VectorShuffle 1708 1706 4 5 2 3
-                              Store 1707 1709
-            1710:      6(int) Load 8(invocation)
-            1711:     71(ptr) AccessChain 31(data) 63 63
-            1712:   25(ivec4) Load 1711
-            1713:   78(ivec3) VectorShuffle 1712 1712 0 1 2
-            1714:  161(bvec3) SLessThan 1713 740
-            1715:   17(ivec4) Load 19(ballot)
-            1716:  161(bvec3) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1714 1715
-            1717:   78(ivec3) Select 1716 744 740
-            1718:     71(ptr) AccessChain 31(data) 1710 63
+            1602:     64(ptr) AccessChain 31(data) 34 63 35
+            1603:     24(int) Load 1602
+            1604:   17(ivec4) Load 19(ballot)
+            1605:     24(int) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1603 1604
+            1606:     64(ptr) AccessChain 31(data) 1601 63 35
+                              Store 1606 1605
+            1607:      6(int) Load 8(invocation)
+            1608:     71(ptr) AccessChain 31(data) 63 63
+            1609:   25(ivec4) Load 1608
+            1610:   70(ivec2) VectorShuffle 1609 1609 0 1
+            1611:   17(ivec4) Load 19(ballot)
+            1612:   70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1610 1611
+            1613:     64(ptr) AccessChain 31(data) 1607 63 35
+            1614:     24(int) CompositeExtract 1612 0
+                              Store 1613 1614
+            1615:     64(ptr) AccessChain 31(data) 1607 63 189
+            1616:     24(int) CompositeExtract 1612 1
+                              Store 1615 1616
+            1617:      6(int) Load 8(invocation)
+            1618:     71(ptr) AccessChain 31(data) 33 63
+            1619:   25(ivec4) Load 1618
+            1620:   78(ivec3) VectorShuffle 1619 1619 0 1 2
+            1621:   17(ivec4) Load 19(ballot)
+            1622:   78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1620 1621
+            1623:     64(ptr) AccessChain 31(data) 1617 63 35
+            1624:     24(int) CompositeExtract 1622 0
+                              Store 1623 1624
+            1625:     64(ptr) AccessChain 31(data) 1617 63 189
+            1626:     24(int) CompositeExtract 1622 1
+                              Store 1625 1626
+            1627:     64(ptr) AccessChain 31(data) 1617 63 202
+            1628:     24(int) CompositeExtract 1622 2
+                              Store 1627 1628
+            1629:      6(int) Load 8(invocation)
+            1630:     71(ptr) AccessChain 31(data) 115 63
+            1631:   25(ivec4) Load 1630
+            1632:   17(ivec4) Load 19(ballot)
+            1633:   25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1631 1632
+            1634:     71(ptr) AccessChain 31(data) 1629 63
+                              Store 1634 1633
+            1635:      6(int) Load 8(invocation)
+            1636:     90(ptr) AccessChain 31(data) 34 33 35
+            1637:      6(int) Load 1636
+            1638:   17(ivec4) Load 19(ballot)
+            1639:      6(int) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1637 1638
+            1640:     90(ptr) AccessChain 31(data) 1635 33 35
+                              Store 1640 1639
+            1641:      6(int) Load 8(invocation)
+            1642:     40(ptr) AccessChain 31(data) 63 33
+            1643:   17(ivec4) Load 1642
+            1644:   96(ivec2) VectorShuffle 1643 1643 0 1
+            1645:   17(ivec4) Load 19(ballot)
+            1646:   96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1644 1645
+            1647:     90(ptr) AccessChain 31(data) 1641 33 35
+            1648:      6(int) CompositeExtract 1646 0
+                              Store 1647 1648
+            1649:     90(ptr) AccessChain 31(data) 1641 33 189
+            1650:      6(int) CompositeExtract 1646 1
+                              Store 1649 1650
+            1651:      6(int) Load 8(invocation)
+            1652:     40(ptr) AccessChain 31(data) 33 33
+            1653:   17(ivec4) Load 1652
+            1654:  103(ivec3) VectorShuffle 1653 1653 0 1 2
+            1655:   17(ivec4) Load 19(ballot)
+            1656:  103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1654 1655
+            1657:     90(ptr) AccessChain 31(data) 1651 33 35
+            1658:      6(int) CompositeExtract 1656 0
+                              Store 1657 1658
+            1659:     90(ptr) AccessChain 31(data) 1651 33 189
+            1660:      6(int) CompositeExtract 1656 1
+                              Store 1659 1660
+            1661:     90(ptr) AccessChain 31(data) 1651 33 202
+            1662:      6(int) CompositeExtract 1656 2
+                              Store 1661 1662
+            1663:      6(int) Load 8(invocation)
+            1664:     40(ptr) AccessChain 31(data) 115 33
+            1665:   17(ivec4) Load 1664
+            1666:   17(ivec4) Load 19(ballot)
+            1667:   17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedInclusiveScanNV 1665 1666
+            1668:     40(ptr) AccessChain 31(data) 1663 33
+                              Store 1668 1667
+            1669:      6(int) Load 8(invocation)
+            1670:     64(ptr) AccessChain 31(data) 34 63 35
+            1671:     24(int) Load 1670
+            1672:   144(bool) SLessThan 1671 34
+            1673:   17(ivec4) Load 19(ballot)
+            1674:   144(bool) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1672 1673
+            1675:     24(int) Select 1674 63 34
+            1676:     64(ptr) AccessChain 31(data) 1669 63 35
+                              Store 1676 1675
+            1677:      6(int) Load 8(invocation)
+            1678:     71(ptr) AccessChain 31(data) 63 63
+            1679:   25(ivec4) Load 1678
+            1680:   70(ivec2) VectorShuffle 1679 1679 0 1
+            1681:  152(bvec2) SLessThan 1680 801
+            1682:   17(ivec4) Load 19(ballot)
+            1683:  152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1681 1682
+            1684:   70(ivec2) Select 1683 805 801
+            1685:     64(ptr) AccessChain 31(data) 1677 63 35
+            1686:     24(int) CompositeExtract 1684 0
+                              Store 1685 1686
+            1687:     64(ptr) AccessChain 31(data) 1677 63 189
+            1688:     24(int) CompositeExtract 1684 1
+                              Store 1687 1688
+            1689:      6(int) Load 8(invocation)
+            1690:     71(ptr) AccessChain 31(data) 63 63
+            1691:   25(ivec4) Load 1690
+            1692:   78(ivec3) VectorShuffle 1691 1691 0 1 2
+            1693:  161(bvec3) SLessThan 1692 815
+            1694:   17(ivec4) Load 19(ballot)
+            1695:  161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1693 1694
+            1696:   78(ivec3) Select 1695 819 815
+            1697:     64(ptr) AccessChain 31(data) 1689 63 35
+            1698:     24(int) CompositeExtract 1696 0
+                              Store 1697 1698
+            1699:     64(ptr) AccessChain 31(data) 1689 63 189
+            1700:     24(int) CompositeExtract 1696 1
+                              Store 1699 1700
+            1701:     64(ptr) AccessChain 31(data) 1689 63 202
+            1702:     24(int) CompositeExtract 1696 2
+                              Store 1701 1702
+            1703:      6(int) Load 8(invocation)
+            1704:     71(ptr) AccessChain 31(data) 63 63
+            1705:   25(ivec4) Load 1704
+            1706:  169(bvec4) SLessThan 1705 830
+            1707:   17(ivec4) Load 19(ballot)
+            1708:  169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedInclusiveScanNV 1706 1707
+            1709:   25(ivec4) Select 1708 834 830
+            1710:     71(ptr) AccessChain 31(data) 1703 63
+                              Store 1710 1709
+            1711:      6(int) Load 8(invocation)
+            1712:     64(ptr) AccessChain 31(data) 34 63 35
+            1713:     24(int) Load 1712
+            1714:   17(ivec4) Load 19(ballot)
+            1715:     24(int) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1713 1714
+            1716:     64(ptr) AccessChain 31(data) 1711 63 35
+                              Store 1716 1715
+            1717:      6(int) Load 8(invocation)
+            1718:     71(ptr) AccessChain 31(data) 63 63
             1719:   25(ivec4) Load 1718
-            1720:   25(ivec4) VectorShuffle 1719 1717 4 5 6 3
-                              Store 1718 1720
-            1721:      6(int) Load 8(invocation)
-            1722:     71(ptr) AccessChain 31(data) 63 63
-            1723:   25(ivec4) Load 1722
-            1724:  169(bvec4) SLessThan 1723 752
-            1725:   17(ivec4) Load 19(ballot)
-            1726:  169(bvec4) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1724 1725
-            1727:   25(ivec4) Select 1726 756 752
-            1728:     71(ptr) AccessChain 31(data) 1721 63
-                              Store 1728 1727
-            1729:      6(int) Load 8(invocation)
-            1730:     36(ptr) AccessChain 31(data) 34 34 35
-            1731:   22(float) Load 1730
-            1732:   17(ivec4) Load 19(ballot)
-            1733:   22(float) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1731 1732
-            1734:     36(ptr) AccessChain 31(data) 1729 34 35
-                              Store 1734 1733
-            1735:      6(int) Load 8(invocation)
-            1736:     44(ptr) AccessChain 31(data) 63 34
-            1737:   23(fvec4) Load 1736
-            1738:   43(fvec2) VectorShuffle 1737 1737 0 1
-            1739:   17(ivec4) Load 19(ballot)
-            1740:   43(fvec2) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1738 1739
-            1741:     44(ptr) AccessChain 31(data) 1735 34
-            1742:   23(fvec4) Load 1741
-            1743:   23(fvec4) VectorShuffle 1742 1740 4 5 2 3
-                              Store 1741 1743
-            1744:      6(int) Load 8(invocation)
-            1745:     44(ptr) AccessChain 31(data) 33 34
-            1746:   23(fvec4) Load 1745
-            1747:   51(fvec3) VectorShuffle 1746 1746 0 1 2
+            1720:   70(ivec2) VectorShuffle 1719 1719 0 1
+            1721:   17(ivec4) Load 19(ballot)
+            1722:   70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1720 1721
+            1723:     64(ptr) AccessChain 31(data) 1717 63 35
+            1724:     24(int) CompositeExtract 1722 0
+                              Store 1723 1724
+            1725:     64(ptr) AccessChain 31(data) 1717 63 189
+            1726:     24(int) CompositeExtract 1722 1
+                              Store 1725 1726
+            1727:      6(int) Load 8(invocation)
+            1728:     71(ptr) AccessChain 31(data) 33 63
+            1729:   25(ivec4) Load 1728
+            1730:   78(ivec3) VectorShuffle 1729 1729 0 1 2
+            1731:   17(ivec4) Load 19(ballot)
+            1732:   78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1730 1731
+            1733:     64(ptr) AccessChain 31(data) 1727 63 35
+            1734:     24(int) CompositeExtract 1732 0
+                              Store 1733 1734
+            1735:     64(ptr) AccessChain 31(data) 1727 63 189
+            1736:     24(int) CompositeExtract 1732 1
+                              Store 1735 1736
+            1737:     64(ptr) AccessChain 31(data) 1727 63 202
+            1738:     24(int) CompositeExtract 1732 2
+                              Store 1737 1738
+            1739:      6(int) Load 8(invocation)
+            1740:     71(ptr) AccessChain 31(data) 115 63
+            1741:   25(ivec4) Load 1740
+            1742:   17(ivec4) Load 19(ballot)
+            1743:   25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1741 1742
+            1744:     71(ptr) AccessChain 31(data) 1739 63
+                              Store 1744 1743
+            1745:      6(int) Load 8(invocation)
+            1746:     90(ptr) AccessChain 31(data) 34 33 35
+            1747:      6(int) Load 1746
             1748:   17(ivec4) Load 19(ballot)
-            1749:   51(fvec3) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1747 1748
-            1750:     44(ptr) AccessChain 31(data) 1744 34
-            1751:   23(fvec4) Load 1750
-            1752:   23(fvec4) VectorShuffle 1751 1749 4 5 6 3
-                              Store 1750 1752
-            1753:      6(int) Load 8(invocation)
-            1754:     44(ptr) AccessChain 31(data) 115 34
-            1755:   23(fvec4) Load 1754
-            1756:   17(ivec4) Load 19(ballot)
-            1757:   23(fvec4) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1755 1756
-            1758:     44(ptr) AccessChain 31(data) 1753 34
-                              Store 1758 1757
-            1759:      6(int) Load 8(invocation)
-            1760:     64(ptr) AccessChain 31(data) 34 63 35
-            1761:     24(int) Load 1760
-            1762:   17(ivec4) Load 19(ballot)
-            1763:     24(int) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1761 1762
-            1764:     64(ptr) AccessChain 31(data) 1759 63 35
-                              Store 1764 1763
-            1765:      6(int) Load 8(invocation)
-            1766:     71(ptr) AccessChain 31(data) 63 63
-            1767:   25(ivec4) Load 1766
-            1768:   70(ivec2) VectorShuffle 1767 1767 0 1
-            1769:   17(ivec4) Load 19(ballot)
-            1770:   70(ivec2) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1768 1769
-            1771:     71(ptr) AccessChain 31(data) 1765 63
-            1772:   25(ivec4) Load 1771
-            1773:   25(ivec4) VectorShuffle 1772 1770 4 5 2 3
-                              Store 1771 1773
-            1774:      6(int) Load 8(invocation)
-            1775:     71(ptr) AccessChain 31(data) 33 63
-            1776:   25(ivec4) Load 1775
-            1777:   78(ivec3) VectorShuffle 1776 1776 0 1 2
-            1778:   17(ivec4) Load 19(ballot)
-            1779:   78(ivec3) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1777 1778
-            1780:     71(ptr) AccessChain 31(data) 1774 63
-            1781:   25(ivec4) Load 1780
-            1782:   25(ivec4) VectorShuffle 1781 1779 4 5 6 3
-                              Store 1780 1782
-            1783:      6(int) Load 8(invocation)
-            1784:     71(ptr) AccessChain 31(data) 115 63
-            1785:   25(ivec4) Load 1784
-            1786:   17(ivec4) Load 19(ballot)
-            1787:   25(ivec4) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1785 1786
-            1788:     71(ptr) AccessChain 31(data) 1783 63
-                              Store 1788 1787
-            1789:      6(int) Load 8(invocation)
-            1790:     90(ptr) AccessChain 31(data) 34 33 35
-            1791:      6(int) Load 1790
+            1749:      6(int) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1747 1748
+            1750:     90(ptr) AccessChain 31(data) 1745 33 35
+                              Store 1750 1749
+            1751:      6(int) Load 8(invocation)
+            1752:     40(ptr) AccessChain 31(data) 63 33
+            1753:   17(ivec4) Load 1752
+            1754:   96(ivec2) VectorShuffle 1753 1753 0 1
+            1755:   17(ivec4) Load 19(ballot)
+            1756:   96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1754 1755
+            1757:     90(ptr) AccessChain 31(data) 1751 33 35
+            1758:      6(int) CompositeExtract 1756 0
+                              Store 1757 1758
+            1759:     90(ptr) AccessChain 31(data) 1751 33 189
+            1760:      6(int) CompositeExtract 1756 1
+                              Store 1759 1760
+            1761:      6(int) Load 8(invocation)
+            1762:     40(ptr) AccessChain 31(data) 33 33
+            1763:   17(ivec4) Load 1762
+            1764:  103(ivec3) VectorShuffle 1763 1763 0 1 2
+            1765:   17(ivec4) Load 19(ballot)
+            1766:  103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1764 1765
+            1767:     90(ptr) AccessChain 31(data) 1761 33 35
+            1768:      6(int) CompositeExtract 1766 0
+                              Store 1767 1768
+            1769:     90(ptr) AccessChain 31(data) 1761 33 189
+            1770:      6(int) CompositeExtract 1766 1
+                              Store 1769 1770
+            1771:     90(ptr) AccessChain 31(data) 1761 33 202
+            1772:      6(int) CompositeExtract 1766 2
+                              Store 1771 1772
+            1773:      6(int) Load 8(invocation)
+            1774:     40(ptr) AccessChain 31(data) 115 33
+            1775:   17(ivec4) Load 1774
+            1776:   17(ivec4) Load 19(ballot)
+            1777:   17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedInclusiveScanNV 1775 1776
+            1778:     40(ptr) AccessChain 31(data) 1773 33
+                              Store 1778 1777
+            1779:      6(int) Load 8(invocation)
+            1780:     64(ptr) AccessChain 31(data) 34 63 35
+            1781:     24(int) Load 1780
+            1782:   144(bool) SLessThan 1781 34
+            1783:   17(ivec4) Load 19(ballot)
+            1784:   144(bool) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1782 1783
+            1785:     24(int) Select 1784 63 34
+            1786:     64(ptr) AccessChain 31(data) 1779 63 35
+                              Store 1786 1785
+            1787:      6(int) Load 8(invocation)
+            1788:     71(ptr) AccessChain 31(data) 63 63
+            1789:   25(ivec4) Load 1788
+            1790:   70(ivec2) VectorShuffle 1789 1789 0 1
+            1791:  152(bvec2) SLessThan 1790 801
             1792:   17(ivec4) Load 19(ballot)
-            1793:      6(int) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1791 1792
-            1794:     90(ptr) AccessChain 31(data) 1789 33 35
-                              Store 1794 1793
-            1795:      6(int) Load 8(invocation)
-            1796:     40(ptr) AccessChain 31(data) 63 33
-            1797:   17(ivec4) Load 1796
-            1798:   96(ivec2) VectorShuffle 1797 1797 0 1
-            1799:   17(ivec4) Load 19(ballot)
-            1800:   96(ivec2) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1798 1799
-            1801:     40(ptr) AccessChain 31(data) 1795 33
-            1802:   17(ivec4) Load 1801
-            1803:   17(ivec4) VectorShuffle 1802 1800 4 5 2 3
-                              Store 1801 1803
-            1804:      6(int) Load 8(invocation)
-            1805:     40(ptr) AccessChain 31(data) 33 33
-            1806:   17(ivec4) Load 1805
-            1807:  103(ivec3) VectorShuffle 1806 1806 0 1 2
-            1808:   17(ivec4) Load 19(ballot)
-            1809:  103(ivec3) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1807 1808
-            1810:     40(ptr) AccessChain 31(data) 1804 33
-            1811:   17(ivec4) Load 1810
-            1812:   17(ivec4) VectorShuffle 1811 1809 4 5 6 3
-                              Store 1810 1812
+            1793:  152(bvec2) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1791 1792
+            1794:   70(ivec2) Select 1793 805 801
+            1795:     64(ptr) AccessChain 31(data) 1787 63 35
+            1796:     24(int) CompositeExtract 1794 0
+                              Store 1795 1796
+            1797:     64(ptr) AccessChain 31(data) 1787 63 189
+            1798:     24(int) CompositeExtract 1794 1
+                              Store 1797 1798
+            1799:      6(int) Load 8(invocation)
+            1800:     71(ptr) AccessChain 31(data) 63 63
+            1801:   25(ivec4) Load 1800
+            1802:   78(ivec3) VectorShuffle 1801 1801 0 1 2
+            1803:  161(bvec3) SLessThan 1802 815
+            1804:   17(ivec4) Load 19(ballot)
+            1805:  161(bvec3) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1803 1804
+            1806:   78(ivec3) Select 1805 819 815
+            1807:     64(ptr) AccessChain 31(data) 1799 63 35
+            1808:     24(int) CompositeExtract 1806 0
+                              Store 1807 1808
+            1809:     64(ptr) AccessChain 31(data) 1799 63 189
+            1810:     24(int) CompositeExtract 1806 1
+                              Store 1809 1810
+            1811:     64(ptr) AccessChain 31(data) 1799 63 202
+            1812:     24(int) CompositeExtract 1806 2
+                              Store 1811 1812
             1813:      6(int) Load 8(invocation)
-            1814:     40(ptr) AccessChain 31(data) 115 33
-            1815:   17(ivec4) Load 1814
-            1816:   17(ivec4) Load 19(ballot)
-            1817:   17(ivec4) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1815 1816
-            1818:     40(ptr) AccessChain 31(data) 1813 33
-                              Store 1818 1817
-            1819:      6(int) Load 8(invocation)
-            1820:    116(ptr) AccessChain 31(data) 34 115 35
-            1821:26(float64_t) Load 1820
-            1822:   17(ivec4) Load 19(ballot)
-            1823:26(float64_t) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1821 1822
-            1824:    116(ptr) AccessChain 31(data) 1819 115 35
-                              Store 1824 1823
-            1825:      6(int) Load 8(invocation)
-            1826:    123(ptr) AccessChain 31(data) 63 115
-            1827: 27(f64vec4) Load 1826
-            1828:122(f64vec2) VectorShuffle 1827 1827 0 1
-            1829:   17(ivec4) Load 19(ballot)
-            1830:122(f64vec2) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1828 1829
-            1831:    123(ptr) AccessChain 31(data) 1825 115
-            1832: 27(f64vec4) Load 1831
-            1833: 27(f64vec4) VectorShuffle 1832 1830 4 5 2 3
-                              Store 1831 1833
-            1834:      6(int) Load 8(invocation)
-            1835:    123(ptr) AccessChain 31(data) 33 115
-            1836: 27(f64vec4) Load 1835
-            1837:130(f64vec3) VectorShuffle 1836 1836 0 1 2
-            1838:   17(ivec4) Load 19(ballot)
-            1839:130(f64vec3) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1837 1838
-            1840:    123(ptr) AccessChain 31(data) 1834 115
-            1841: 27(f64vec4) Load 1840
-            1842: 27(f64vec4) VectorShuffle 1841 1839 4 5 6 3
-                              Store 1840 1842
-            1843:      6(int) Load 8(invocation)
-            1844:    123(ptr) AccessChain 31(data) 115 115
-            1845: 27(f64vec4) Load 1844
-            1846:   17(ivec4) Load 19(ballot)
-            1847: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1845 1846
-            1848:    123(ptr) AccessChain 31(data) 1843 115
-                              Store 1848 1847
+            1814:     71(ptr) AccessChain 31(data) 63 63
+            1815:   25(ivec4) Load 1814
+            1816:  169(bvec4) SLessThan 1815 830
+            1817:   17(ivec4) Load 19(ballot)
+            1818:  169(bvec4) GroupNonUniformLogicalOr 178 PartitionedInclusiveScanNV 1816 1817
+            1819:   25(ivec4) Select 1818 834 830
+            1820:     71(ptr) AccessChain 31(data) 1813 63
+                              Store 1820 1819
+            1821:      6(int) Load 8(invocation)
+            1822:     64(ptr) AccessChain 31(data) 34 63 35
+            1823:     24(int) Load 1822
+            1824:   17(ivec4) Load 19(ballot)
+            1825:     24(int) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1823 1824
+            1826:     64(ptr) AccessChain 31(data) 1821 63 35
+                              Store 1826 1825
+            1827:      6(int) Load 8(invocation)
+            1828:     71(ptr) AccessChain 31(data) 63 63
+            1829:   25(ivec4) Load 1828
+            1830:   70(ivec2) VectorShuffle 1829 1829 0 1
+            1831:   17(ivec4) Load 19(ballot)
+            1832:   70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1830 1831
+            1833:     64(ptr) AccessChain 31(data) 1827 63 35
+            1834:     24(int) CompositeExtract 1832 0
+                              Store 1833 1834
+            1835:     64(ptr) AccessChain 31(data) 1827 63 189
+            1836:     24(int) CompositeExtract 1832 1
+                              Store 1835 1836
+            1837:      6(int) Load 8(invocation)
+            1838:     71(ptr) AccessChain 31(data) 33 63
+            1839:   25(ivec4) Load 1838
+            1840:   78(ivec3) VectorShuffle 1839 1839 0 1 2
+            1841:   17(ivec4) Load 19(ballot)
+            1842:   78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1840 1841
+            1843:     64(ptr) AccessChain 31(data) 1837 63 35
+            1844:     24(int) CompositeExtract 1842 0
+                              Store 1843 1844
+            1845:     64(ptr) AccessChain 31(data) 1837 63 189
+            1846:     24(int) CompositeExtract 1842 1
+                              Store 1845 1846
+            1847:     64(ptr) AccessChain 31(data) 1837 63 202
+            1848:     24(int) CompositeExtract 1842 2
+                              Store 1847 1848
             1849:      6(int) Load 8(invocation)
-            1850:     36(ptr) AccessChain 31(data) 34 34 35
-            1851:   22(float) Load 1850
+            1850:     71(ptr) AccessChain 31(data) 115 63
+            1851:   25(ivec4) Load 1850
             1852:   17(ivec4) Load 19(ballot)
-            1853:   22(float) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1851 1852
-            1854:     36(ptr) AccessChain 31(data) 1849 34 35
+            1853:   25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1851 1852
+            1854:     71(ptr) AccessChain 31(data) 1849 63
                               Store 1854 1853
             1855:      6(int) Load 8(invocation)
-            1856:     44(ptr) AccessChain 31(data) 63 34
-            1857:   23(fvec4) Load 1856
-            1858:   43(fvec2) VectorShuffle 1857 1857 0 1
-            1859:   17(ivec4) Load 19(ballot)
-            1860:   43(fvec2) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1858 1859
-            1861:     44(ptr) AccessChain 31(data) 1855 34
-            1862:   23(fvec4) Load 1861
-            1863:   23(fvec4) VectorShuffle 1862 1860 4 5 2 3
-                              Store 1861 1863
-            1864:      6(int) Load 8(invocation)
-            1865:     44(ptr) AccessChain 31(data) 33 34
-            1866:   23(fvec4) Load 1865
-            1867:   51(fvec3) VectorShuffle 1866 1866 0 1 2
-            1868:   17(ivec4) Load 19(ballot)
-            1869:   51(fvec3) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1867 1868
-            1870:     44(ptr) AccessChain 31(data) 1864 34
-            1871:   23(fvec4) Load 1870
-            1872:   23(fvec4) VectorShuffle 1871 1869 4 5 6 3
-                              Store 1870 1872
-            1873:      6(int) Load 8(invocation)
-            1874:     44(ptr) AccessChain 31(data) 115 34
-            1875:   23(fvec4) Load 1874
-            1876:   17(ivec4) Load 19(ballot)
-            1877:   23(fvec4) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1875 1876
-            1878:     44(ptr) AccessChain 31(data) 1873 34
-                              Store 1878 1877
-            1879:      6(int) Load 8(invocation)
-            1880:     64(ptr) AccessChain 31(data) 34 63 35
-            1881:     24(int) Load 1880
-            1882:   17(ivec4) Load 19(ballot)
-            1883:     24(int) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1881 1882
-            1884:     64(ptr) AccessChain 31(data) 1879 63 35
-                              Store 1884 1883
-            1885:      6(int) Load 8(invocation)
-            1886:     71(ptr) AccessChain 31(data) 63 63
-            1887:   25(ivec4) Load 1886
-            1888:   70(ivec2) VectorShuffle 1887 1887 0 1
-            1889:   17(ivec4) Load 19(ballot)
-            1890:   70(ivec2) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1888 1889
-            1891:     71(ptr) AccessChain 31(data) 1885 63
-            1892:   25(ivec4) Load 1891
-            1893:   25(ivec4) VectorShuffle 1892 1890 4 5 2 3
-                              Store 1891 1893
-            1894:      6(int) Load 8(invocation)
-            1895:     71(ptr) AccessChain 31(data) 33 63
-            1896:   25(ivec4) Load 1895
-            1897:   78(ivec3) VectorShuffle 1896 1896 0 1 2
-            1898:   17(ivec4) Load 19(ballot)
-            1899:   78(ivec3) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1897 1898
-            1900:     71(ptr) AccessChain 31(data) 1894 63
-            1901:   25(ivec4) Load 1900
-            1902:   25(ivec4) VectorShuffle 1901 1899 4 5 6 3
-                              Store 1900 1902
-            1903:      6(int) Load 8(invocation)
-            1904:     71(ptr) AccessChain 31(data) 115 63
-            1905:   25(ivec4) Load 1904
-            1906:   17(ivec4) Load 19(ballot)
-            1907:   25(ivec4) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1905 1906
-            1908:     71(ptr) AccessChain 31(data) 1903 63
-                              Store 1908 1907
+            1856:     90(ptr) AccessChain 31(data) 34 33 35
+            1857:      6(int) Load 1856
+            1858:   17(ivec4) Load 19(ballot)
+            1859:      6(int) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1857 1858
+            1860:     90(ptr) AccessChain 31(data) 1855 33 35
+                              Store 1860 1859
+            1861:      6(int) Load 8(invocation)
+            1862:     40(ptr) AccessChain 31(data) 63 33
+            1863:   17(ivec4) Load 1862
+            1864:   96(ivec2) VectorShuffle 1863 1863 0 1
+            1865:   17(ivec4) Load 19(ballot)
+            1866:   96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1864 1865
+            1867:     90(ptr) AccessChain 31(data) 1861 33 35
+            1868:      6(int) CompositeExtract 1866 0
+                              Store 1867 1868
+            1869:     90(ptr) AccessChain 31(data) 1861 33 189
+            1870:      6(int) CompositeExtract 1866 1
+                              Store 1869 1870
+            1871:      6(int) Load 8(invocation)
+            1872:     40(ptr) AccessChain 31(data) 33 33
+            1873:   17(ivec4) Load 1872
+            1874:  103(ivec3) VectorShuffle 1873 1873 0 1 2
+            1875:   17(ivec4) Load 19(ballot)
+            1876:  103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1874 1875
+            1877:     90(ptr) AccessChain 31(data) 1871 33 35
+            1878:      6(int) CompositeExtract 1876 0
+                              Store 1877 1878
+            1879:     90(ptr) AccessChain 31(data) 1871 33 189
+            1880:      6(int) CompositeExtract 1876 1
+                              Store 1879 1880
+            1881:     90(ptr) AccessChain 31(data) 1871 33 202
+            1882:      6(int) CompositeExtract 1876 2
+                              Store 1881 1882
+            1883:      6(int) Load 8(invocation)
+            1884:     40(ptr) AccessChain 31(data) 115 33
+            1885:   17(ivec4) Load 1884
+            1886:   17(ivec4) Load 19(ballot)
+            1887:   17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedInclusiveScanNV 1885 1886
+            1888:     40(ptr) AccessChain 31(data) 1883 33
+                              Store 1888 1887
+            1889:      6(int) Load 8(invocation)
+            1890:     64(ptr) AccessChain 31(data) 34 63 35
+            1891:     24(int) Load 1890
+            1892:   144(bool) SLessThan 1891 34
+            1893:   17(ivec4) Load 19(ballot)
+            1894:   144(bool) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1892 1893
+            1895:     24(int) Select 1894 63 34
+            1896:     64(ptr) AccessChain 31(data) 1889 63 35
+                              Store 1896 1895
+            1897:      6(int) Load 8(invocation)
+            1898:     71(ptr) AccessChain 31(data) 63 63
+            1899:   25(ivec4) Load 1898
+            1900:   70(ivec2) VectorShuffle 1899 1899 0 1
+            1901:  152(bvec2) SLessThan 1900 801
+            1902:   17(ivec4) Load 19(ballot)
+            1903:  152(bvec2) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1901 1902
+            1904:   70(ivec2) Select 1903 805 801
+            1905:     64(ptr) AccessChain 31(data) 1897 63 35
+            1906:     24(int) CompositeExtract 1904 0
+                              Store 1905 1906
+            1907:     64(ptr) AccessChain 31(data) 1897 63 189
+            1908:     24(int) CompositeExtract 1904 1
+                              Store 1907 1908
             1909:      6(int) Load 8(invocation)
-            1910:     90(ptr) AccessChain 31(data) 34 33 35
-            1911:      6(int) Load 1910
-            1912:   17(ivec4) Load 19(ballot)
-            1913:      6(int) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1911 1912
-            1914:     90(ptr) AccessChain 31(data) 1909 33 35
-                              Store 1914 1913
-            1915:      6(int) Load 8(invocation)
-            1916:     40(ptr) AccessChain 31(data) 63 33
-            1917:   17(ivec4) Load 1916
-            1918:   96(ivec2) VectorShuffle 1917 1917 0 1
-            1919:   17(ivec4) Load 19(ballot)
-            1920:   96(ivec2) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1918 1919
-            1921:     40(ptr) AccessChain 31(data) 1915 33
-            1922:   17(ivec4) Load 1921
-            1923:   17(ivec4) VectorShuffle 1922 1920 4 5 2 3
-                              Store 1921 1923
-            1924:      6(int) Load 8(invocation)
-            1925:     40(ptr) AccessChain 31(data) 33 33
-            1926:   17(ivec4) Load 1925
-            1927:  103(ivec3) VectorShuffle 1926 1926 0 1 2
-            1928:   17(ivec4) Load 19(ballot)
-            1929:  103(ivec3) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1927 1928
-            1930:     40(ptr) AccessChain 31(data) 1924 33
-            1931:   17(ivec4) Load 1930
-            1932:   17(ivec4) VectorShuffle 1931 1929 4 5 6 3
-                              Store 1930 1932
-            1933:      6(int) Load 8(invocation)
-            1934:     40(ptr) AccessChain 31(data) 115 33
-            1935:   17(ivec4) Load 1934
-            1936:   17(ivec4) Load 19(ballot)
-            1937:   17(ivec4) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 1935 1936
-            1938:     40(ptr) AccessChain 31(data) 1933 33
-                              Store 1938 1937
-            1939:      6(int) Load 8(invocation)
-            1940:    116(ptr) AccessChain 31(data) 34 115 35
-            1941:26(float64_t) Load 1940
-            1942:   17(ivec4) Load 19(ballot)
-            1943:26(float64_t) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1941 1942
-            1944:    116(ptr) AccessChain 31(data) 1939 115 35
-                              Store 1944 1943
-            1945:      6(int) Load 8(invocation)
-            1946:    123(ptr) AccessChain 31(data) 63 115
-            1947: 27(f64vec4) Load 1946
-            1948:122(f64vec2) VectorShuffle 1947 1947 0 1
-            1949:   17(ivec4) Load 19(ballot)
-            1950:122(f64vec2) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1948 1949
-            1951:    123(ptr) AccessChain 31(data) 1945 115
-            1952: 27(f64vec4) Load 1951
-            1953: 27(f64vec4) VectorShuffle 1952 1950 4 5 2 3
-                              Store 1951 1953
-            1954:      6(int) Load 8(invocation)
-            1955:    123(ptr) AccessChain 31(data) 33 115
-            1956: 27(f64vec4) Load 1955
-            1957:130(f64vec3) VectorShuffle 1956 1956 0 1 2
-            1958:   17(ivec4) Load 19(ballot)
-            1959:130(f64vec3) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1957 1958
-            1960:    123(ptr) AccessChain 31(data) 1954 115
-            1961: 27(f64vec4) Load 1960
-            1962: 27(f64vec4) VectorShuffle 1961 1959 4 5 6 3
-                              Store 1960 1962
-            1963:      6(int) Load 8(invocation)
-            1964:    123(ptr) AccessChain 31(data) 115 115
-            1965: 27(f64vec4) Load 1964
-            1966:   17(ivec4) Load 19(ballot)
-            1967: 27(f64vec4) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 1965 1966
-            1968:    123(ptr) AccessChain 31(data) 1963 115
-                              Store 1968 1967
-            1969:      6(int) Load 8(invocation)
-            1970:     36(ptr) AccessChain 31(data) 34 34 35
-            1971:   22(float) Load 1970
-            1972:   17(ivec4) Load 19(ballot)
-            1973:   22(float) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 1971 1972
-            1974:     36(ptr) AccessChain 31(data) 1969 34 35
-                              Store 1974 1973
-            1975:      6(int) Load 8(invocation)
-            1976:     44(ptr) AccessChain 31(data) 63 34
-            1977:   23(fvec4) Load 1976
-            1978:   43(fvec2) VectorShuffle 1977 1977 0 1
-            1979:   17(ivec4) Load 19(ballot)
-            1980:   43(fvec2) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 1978 1979
-            1981:     44(ptr) AccessChain 31(data) 1975 34
-            1982:   23(fvec4) Load 1981
-            1983:   23(fvec4) VectorShuffle 1982 1980 4 5 2 3
-                              Store 1981 1983
-            1984:      6(int) Load 8(invocation)
-            1985:     44(ptr) AccessChain 31(data) 33 34
-            1986:   23(fvec4) Load 1985
-            1987:   51(fvec3) VectorShuffle 1986 1986 0 1 2
-            1988:   17(ivec4) Load 19(ballot)
-            1989:   51(fvec3) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 1987 1988
-            1990:     44(ptr) AccessChain 31(data) 1984 34
-            1991:   23(fvec4) Load 1990
-            1992:   23(fvec4) VectorShuffle 1991 1989 4 5 6 3
-                              Store 1990 1992
+            1910:     71(ptr) AccessChain 31(data) 63 63
+            1911:   25(ivec4) Load 1910
+            1912:   78(ivec3) VectorShuffle 1911 1911 0 1 2
+            1913:  161(bvec3) SLessThan 1912 815
+            1914:   17(ivec4) Load 19(ballot)
+            1915:  161(bvec3) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1913 1914
+            1916:   78(ivec3) Select 1915 819 815
+            1917:     64(ptr) AccessChain 31(data) 1909 63 35
+            1918:     24(int) CompositeExtract 1916 0
+                              Store 1917 1918
+            1919:     64(ptr) AccessChain 31(data) 1909 63 189
+            1920:     24(int) CompositeExtract 1916 1
+                              Store 1919 1920
+            1921:     64(ptr) AccessChain 31(data) 1909 63 202
+            1922:     24(int) CompositeExtract 1916 2
+                              Store 1921 1922
+            1923:      6(int) Load 8(invocation)
+            1924:     71(ptr) AccessChain 31(data) 63 63
+            1925:   25(ivec4) Load 1924
+            1926:  169(bvec4) SLessThan 1925 830
+            1927:   17(ivec4) Load 19(ballot)
+            1928:  169(bvec4) GroupNonUniformLogicalXor 178 PartitionedInclusiveScanNV 1926 1927
+            1929:   25(ivec4) Select 1928 834 830
+            1930:     71(ptr) AccessChain 31(data) 1923 63
+                              Store 1930 1929
+            1931:      6(int) Load 8(invocation)
+            1932:     36(ptr) AccessChain 31(data) 34 34 35
+            1933:   22(float) Load 1932
+            1934:   17(ivec4) Load 19(ballot)
+            1935:   22(float) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1933 1934
+            1936:     36(ptr) AccessChain 31(data) 1931 34 35
+                              Store 1936 1935
+            1937:      6(int) Load 8(invocation)
+            1938:     44(ptr) AccessChain 31(data) 63 34
+            1939:   23(fvec4) Load 1938
+            1940:   43(fvec2) VectorShuffle 1939 1939 0 1
+            1941:   17(ivec4) Load 19(ballot)
+            1942:   43(fvec2) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1940 1941
+            1943:     36(ptr) AccessChain 31(data) 1937 34 35
+            1944:   22(float) CompositeExtract 1942 0
+                              Store 1943 1944
+            1945:     36(ptr) AccessChain 31(data) 1937 34 189
+            1946:   22(float) CompositeExtract 1942 1
+                              Store 1945 1946
+            1947:      6(int) Load 8(invocation)
+            1948:     44(ptr) AccessChain 31(data) 33 34
+            1949:   23(fvec4) Load 1948
+            1950:   51(fvec3) VectorShuffle 1949 1949 0 1 2
+            1951:   17(ivec4) Load 19(ballot)
+            1952:   51(fvec3) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1950 1951
+            1953:     36(ptr) AccessChain 31(data) 1947 34 35
+            1954:   22(float) CompositeExtract 1952 0
+                              Store 1953 1954
+            1955:     36(ptr) AccessChain 31(data) 1947 34 189
+            1956:   22(float) CompositeExtract 1952 1
+                              Store 1955 1956
+            1957:     36(ptr) AccessChain 31(data) 1947 34 202
+            1958:   22(float) CompositeExtract 1952 2
+                              Store 1957 1958
+            1959:      6(int) Load 8(invocation)
+            1960:     44(ptr) AccessChain 31(data) 115 34
+            1961:   23(fvec4) Load 1960
+            1962:   17(ivec4) Load 19(ballot)
+            1963:   23(fvec4) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 1961 1962
+            1964:     44(ptr) AccessChain 31(data) 1959 34
+                              Store 1964 1963
+            1965:      6(int) Load 8(invocation)
+            1966:     64(ptr) AccessChain 31(data) 34 63 35
+            1967:     24(int) Load 1966
+            1968:   17(ivec4) Load 19(ballot)
+            1969:     24(int) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1967 1968
+            1970:     64(ptr) AccessChain 31(data) 1965 63 35
+                              Store 1970 1969
+            1971:      6(int) Load 8(invocation)
+            1972:     71(ptr) AccessChain 31(data) 63 63
+            1973:   25(ivec4) Load 1972
+            1974:   70(ivec2) VectorShuffle 1973 1973 0 1
+            1975:   17(ivec4) Load 19(ballot)
+            1976:   70(ivec2) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1974 1975
+            1977:     64(ptr) AccessChain 31(data) 1971 63 35
+            1978:     24(int) CompositeExtract 1976 0
+                              Store 1977 1978
+            1979:     64(ptr) AccessChain 31(data) 1971 63 189
+            1980:     24(int) CompositeExtract 1976 1
+                              Store 1979 1980
+            1981:      6(int) Load 8(invocation)
+            1982:     71(ptr) AccessChain 31(data) 33 63
+            1983:   25(ivec4) Load 1982
+            1984:   78(ivec3) VectorShuffle 1983 1983 0 1 2
+            1985:   17(ivec4) Load 19(ballot)
+            1986:   78(ivec3) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1984 1985
+            1987:     64(ptr) AccessChain 31(data) 1981 63 35
+            1988:     24(int) CompositeExtract 1986 0
+                              Store 1987 1988
+            1989:     64(ptr) AccessChain 31(data) 1981 63 189
+            1990:     24(int) CompositeExtract 1986 1
+                              Store 1989 1990
+            1991:     64(ptr) AccessChain 31(data) 1981 63 202
+            1992:     24(int) CompositeExtract 1986 2
+                              Store 1991 1992
             1993:      6(int) Load 8(invocation)
-            1994:     44(ptr) AccessChain 31(data) 115 34
-            1995:   23(fvec4) Load 1994
+            1994:     71(ptr) AccessChain 31(data) 115 63
+            1995:   25(ivec4) Load 1994
             1996:   17(ivec4) Load 19(ballot)
-            1997:   23(fvec4) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 1995 1996
-            1998:     44(ptr) AccessChain 31(data) 1993 34
+            1997:   25(ivec4) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 1995 1996
+            1998:     71(ptr) AccessChain 31(data) 1993 63
                               Store 1998 1997
             1999:      6(int) Load 8(invocation)
-            2000:     64(ptr) AccessChain 31(data) 34 63 35
-            2001:     24(int) Load 2000
+            2000:     90(ptr) AccessChain 31(data) 34 33 35
+            2001:      6(int) Load 2000
             2002:   17(ivec4) Load 19(ballot)
-            2003:     24(int) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2001 2002
-            2004:     64(ptr) AccessChain 31(data) 1999 63 35
+            2003:      6(int) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 2001 2002
+            2004:     90(ptr) AccessChain 31(data) 1999 33 35
                               Store 2004 2003
             2005:      6(int) Load 8(invocation)
-            2006:     71(ptr) AccessChain 31(data) 63 63
-            2007:   25(ivec4) Load 2006
-            2008:   70(ivec2) VectorShuffle 2007 2007 0 1
+            2006:     40(ptr) AccessChain 31(data) 63 33
+            2007:   17(ivec4) Load 2006
+            2008:   96(ivec2) VectorShuffle 2007 2007 0 1
             2009:   17(ivec4) Load 19(ballot)
-            2010:   70(ivec2) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2008 2009
-            2011:     71(ptr) AccessChain 31(data) 2005 63
-            2012:   25(ivec4) Load 2011
-            2013:   25(ivec4) VectorShuffle 2012 2010 4 5 2 3
-                              Store 2011 2013
-            2014:      6(int) Load 8(invocation)
-            2015:     71(ptr) AccessChain 31(data) 33 63
-            2016:   25(ivec4) Load 2015
-            2017:   78(ivec3) VectorShuffle 2016 2016 0 1 2
-            2018:   17(ivec4) Load 19(ballot)
-            2019:   78(ivec3) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2017 2018
-            2020:     71(ptr) AccessChain 31(data) 2014 63
-            2021:   25(ivec4) Load 2020
-            2022:   25(ivec4) VectorShuffle 2021 2019 4 5 6 3
-                              Store 2020 2022
-            2023:      6(int) Load 8(invocation)
-            2024:     71(ptr) AccessChain 31(data) 115 63
-            2025:   25(ivec4) Load 2024
-            2026:   17(ivec4) Load 19(ballot)
-            2027:   25(ivec4) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2025 2026
-            2028:     71(ptr) AccessChain 31(data) 2023 63
-                              Store 2028 2027
-            2029:      6(int) Load 8(invocation)
-            2030:     90(ptr) AccessChain 31(data) 34 33 35
-            2031:      6(int) Load 2030
-            2032:   17(ivec4) Load 19(ballot)
-            2033:      6(int) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2031 2032
-            2034:     90(ptr) AccessChain 31(data) 2029 33 35
-                              Store 2034 2033
-            2035:      6(int) Load 8(invocation)
-            2036:     40(ptr) AccessChain 31(data) 63 33
-            2037:   17(ivec4) Load 2036
-            2038:   96(ivec2) VectorShuffle 2037 2037 0 1
-            2039:   17(ivec4) Load 19(ballot)
-            2040:   96(ivec2) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2038 2039
-            2041:     40(ptr) AccessChain 31(data) 2035 33
-            2042:   17(ivec4) Load 2041
-            2043:   17(ivec4) VectorShuffle 2042 2040 4 5 2 3
-                              Store 2041 2043
-            2044:      6(int) Load 8(invocation)
-            2045:     40(ptr) AccessChain 31(data) 33 33
-            2046:   17(ivec4) Load 2045
-            2047:  103(ivec3) VectorShuffle 2046 2046 0 1 2
-            2048:   17(ivec4) Load 19(ballot)
-            2049:  103(ivec3) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2047 2048
-            2050:     40(ptr) AccessChain 31(data) 2044 33
-            2051:   17(ivec4) Load 2050
-            2052:   17(ivec4) VectorShuffle 2051 2049 4 5 6 3
-                              Store 2050 2052
-            2053:      6(int) Load 8(invocation)
-            2054:     40(ptr) AccessChain 31(data) 115 33
-            2055:   17(ivec4) Load 2054
-            2056:   17(ivec4) Load 19(ballot)
-            2057:   17(ivec4) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2055 2056
-            2058:     40(ptr) AccessChain 31(data) 2053 33
-                              Store 2058 2057
-            2059:      6(int) Load 8(invocation)
-            2060:    116(ptr) AccessChain 31(data) 34 115 35
-            2061:26(float64_t) Load 2060
-            2062:   17(ivec4) Load 19(ballot)
-            2063:26(float64_t) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2061 2062
-            2064:    116(ptr) AccessChain 31(data) 2059 115 35
-                              Store 2064 2063
-            2065:      6(int) Load 8(invocation)
-            2066:    123(ptr) AccessChain 31(data) 63 115
-            2067: 27(f64vec4) Load 2066
-            2068:122(f64vec2) VectorShuffle 2067 2067 0 1
-            2069:   17(ivec4) Load 19(ballot)
-            2070:122(f64vec2) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2068 2069
-            2071:    123(ptr) AccessChain 31(data) 2065 115
-            2072: 27(f64vec4) Load 2071
-            2073: 27(f64vec4) VectorShuffle 2072 2070 4 5 2 3
-                              Store 2071 2073
-            2074:      6(int) Load 8(invocation)
-            2075:    123(ptr) AccessChain 31(data) 33 115
-            2076: 27(f64vec4) Load 2075
-            2077:130(f64vec3) VectorShuffle 2076 2076 0 1 2
-            2078:   17(ivec4) Load 19(ballot)
-            2079:130(f64vec3) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2077 2078
-            2080:    123(ptr) AccessChain 31(data) 2074 115
-            2081: 27(f64vec4) Load 2080
-            2082: 27(f64vec4) VectorShuffle 2081 2079 4 5 6 3
-                              Store 2080 2082
+            2010:   96(ivec2) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 2008 2009
+            2011:     90(ptr) AccessChain 31(data) 2005 33 35
+            2012:      6(int) CompositeExtract 2010 0
+                              Store 2011 2012
+            2013:     90(ptr) AccessChain 31(data) 2005 33 189
+            2014:      6(int) CompositeExtract 2010 1
+                              Store 2013 2014
+            2015:      6(int) Load 8(invocation)
+            2016:     40(ptr) AccessChain 31(data) 33 33
+            2017:   17(ivec4) Load 2016
+            2018:  103(ivec3) VectorShuffle 2017 2017 0 1 2
+            2019:   17(ivec4) Load 19(ballot)
+            2020:  103(ivec3) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 2018 2019
+            2021:     90(ptr) AccessChain 31(data) 2015 33 35
+            2022:      6(int) CompositeExtract 2020 0
+                              Store 2021 2022
+            2023:     90(ptr) AccessChain 31(data) 2015 33 189
+            2024:      6(int) CompositeExtract 2020 1
+                              Store 2023 2024
+            2025:     90(ptr) AccessChain 31(data) 2015 33 202
+            2026:      6(int) CompositeExtract 2020 2
+                              Store 2025 2026
+            2027:      6(int) Load 8(invocation)
+            2028:     40(ptr) AccessChain 31(data) 115 33
+            2029:   17(ivec4) Load 2028
+            2030:   17(ivec4) Load 19(ballot)
+            2031:   17(ivec4) GroupNonUniformIAdd 178 PartitionedExclusiveScanNV 2029 2030
+            2032:     40(ptr) AccessChain 31(data) 2027 33
+                              Store 2032 2031
+            2033:      6(int) Load 8(invocation)
+            2034:    116(ptr) AccessChain 31(data) 34 115 35
+            2035:26(float64_t) Load 2034
+            2036:   17(ivec4) Load 19(ballot)
+            2037:26(float64_t) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 2035 2036
+            2038:    116(ptr) AccessChain 31(data) 2033 115 35
+                              Store 2038 2037
+            2039:      6(int) Load 8(invocation)
+            2040:    123(ptr) AccessChain 31(data) 63 115
+            2041: 27(f64vec4) Load 2040
+            2042:122(f64vec2) VectorShuffle 2041 2041 0 1
+            2043:   17(ivec4) Load 19(ballot)
+            2044:122(f64vec2) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 2042 2043
+            2045:    116(ptr) AccessChain 31(data) 2039 115 35
+            2046:26(float64_t) CompositeExtract 2044 0
+                              Store 2045 2046
+            2047:    116(ptr) AccessChain 31(data) 2039 115 189
+            2048:26(float64_t) CompositeExtract 2044 1
+                              Store 2047 2048
+            2049:      6(int) Load 8(invocation)
+            2050:    123(ptr) AccessChain 31(data) 33 115
+            2051: 27(f64vec4) Load 2050
+            2052:130(f64vec3) VectorShuffle 2051 2051 0 1 2
+            2053:   17(ivec4) Load 19(ballot)
+            2054:130(f64vec3) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 2052 2053
+            2055:    116(ptr) AccessChain 31(data) 2049 115 35
+            2056:26(float64_t) CompositeExtract 2054 0
+                              Store 2055 2056
+            2057:    116(ptr) AccessChain 31(data) 2049 115 189
+            2058:26(float64_t) CompositeExtract 2054 1
+                              Store 2057 2058
+            2059:    116(ptr) AccessChain 31(data) 2049 115 202
+            2060:26(float64_t) CompositeExtract 2054 2
+                              Store 2059 2060
+            2061:      6(int) Load 8(invocation)
+            2062:    123(ptr) AccessChain 31(data) 115 115
+            2063: 27(f64vec4) Load 2062
+            2064:   17(ivec4) Load 19(ballot)
+            2065: 27(f64vec4) GroupNonUniformFAdd 178 PartitionedExclusiveScanNV 2063 2064
+            2066:    123(ptr) AccessChain 31(data) 2061 115
+                              Store 2066 2065
+            2067:      6(int) Load 8(invocation)
+            2068:     36(ptr) AccessChain 31(data) 34 34 35
+            2069:   22(float) Load 2068
+            2070:   17(ivec4) Load 19(ballot)
+            2071:   22(float) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2069 2070
+            2072:     36(ptr) AccessChain 31(data) 2067 34 35
+                              Store 2072 2071
+            2073:      6(int) Load 8(invocation)
+            2074:     44(ptr) AccessChain 31(data) 63 34
+            2075:   23(fvec4) Load 2074
+            2076:   43(fvec2) VectorShuffle 2075 2075 0 1
+            2077:   17(ivec4) Load 19(ballot)
+            2078:   43(fvec2) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2076 2077
+            2079:     36(ptr) AccessChain 31(data) 2073 34 35
+            2080:   22(float) CompositeExtract 2078 0
+                              Store 2079 2080
+            2081:     36(ptr) AccessChain 31(data) 2073 34 189
+            2082:   22(float) CompositeExtract 2078 1
+                              Store 2081 2082
             2083:      6(int) Load 8(invocation)
-            2084:    123(ptr) AccessChain 31(data) 115 115
-            2085: 27(f64vec4) Load 2084
-            2086:   17(ivec4) Load 19(ballot)
-            2087: 27(f64vec4) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2085 2086
-            2088:    123(ptr) AccessChain 31(data) 2083 115
-                              Store 2088 2087
-            2089:      6(int) Load 8(invocation)
-            2090:     36(ptr) AccessChain 31(data) 34 34 35
-            2091:   22(float) Load 2090
-            2092:   17(ivec4) Load 19(ballot)
-            2093:   22(float) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2091 2092
-            2094:     36(ptr) AccessChain 31(data) 2089 34 35
-                              Store 2094 2093
+            2084:     44(ptr) AccessChain 31(data) 33 34
+            2085:   23(fvec4) Load 2084
+            2086:   51(fvec3) VectorShuffle 2085 2085 0 1 2
+            2087:   17(ivec4) Load 19(ballot)
+            2088:   51(fvec3) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2086 2087
+            2089:     36(ptr) AccessChain 31(data) 2083 34 35
+            2090:   22(float) CompositeExtract 2088 0
+                              Store 2089 2090
+            2091:     36(ptr) AccessChain 31(data) 2083 34 189
+            2092:   22(float) CompositeExtract 2088 1
+                              Store 2091 2092
+            2093:     36(ptr) AccessChain 31(data) 2083 34 202
+            2094:   22(float) CompositeExtract 2088 2
+                              Store 2093 2094
             2095:      6(int) Load 8(invocation)
-            2096:     44(ptr) AccessChain 31(data) 63 34
+            2096:     44(ptr) AccessChain 31(data) 115 34
             2097:   23(fvec4) Load 2096
-            2098:   43(fvec2) VectorShuffle 2097 2097 0 1
-            2099:   17(ivec4) Load 19(ballot)
-            2100:   43(fvec2) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2098 2099
-            2101:     44(ptr) AccessChain 31(data) 2095 34
-            2102:   23(fvec4) Load 2101
-            2103:   23(fvec4) VectorShuffle 2102 2100 4 5 2 3
-                              Store 2101 2103
-            2104:      6(int) Load 8(invocation)
-            2105:     44(ptr) AccessChain 31(data) 33 34
-            2106:   23(fvec4) Load 2105
-            2107:   51(fvec3) VectorShuffle 2106 2106 0 1 2
-            2108:   17(ivec4) Load 19(ballot)
-            2109:   51(fvec3) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2107 2108
-            2110:     44(ptr) AccessChain 31(data) 2104 34
-            2111:   23(fvec4) Load 2110
-            2112:   23(fvec4) VectorShuffle 2111 2109 4 5 6 3
-                              Store 2110 2112
-            2113:      6(int) Load 8(invocation)
-            2114:     44(ptr) AccessChain 31(data) 115 34
-            2115:   23(fvec4) Load 2114
-            2116:   17(ivec4) Load 19(ballot)
-            2117:   23(fvec4) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2115 2116
-            2118:     44(ptr) AccessChain 31(data) 2113 34
-                              Store 2118 2117
-            2119:      6(int) Load 8(invocation)
-            2120:     64(ptr) AccessChain 31(data) 34 63 35
-            2121:     24(int) Load 2120
-            2122:   17(ivec4) Load 19(ballot)
-            2123:     24(int) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2121 2122
-            2124:     64(ptr) AccessChain 31(data) 2119 63 35
-                              Store 2124 2123
-            2125:      6(int) Load 8(invocation)
-            2126:     71(ptr) AccessChain 31(data) 63 63
-            2127:   25(ivec4) Load 2126
-            2128:   70(ivec2) VectorShuffle 2127 2127 0 1
-            2129:   17(ivec4) Load 19(ballot)
-            2130:   70(ivec2) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2128 2129
-            2131:     71(ptr) AccessChain 31(data) 2125 63
-            2132:   25(ivec4) Load 2131
-            2133:   25(ivec4) VectorShuffle 2132 2130 4 5 2 3
-                              Store 2131 2133
-            2134:      6(int) Load 8(invocation)
-            2135:     71(ptr) AccessChain 31(data) 33 63
-            2136:   25(ivec4) Load 2135
-            2137:   78(ivec3) VectorShuffle 2136 2136 0 1 2
+            2098:   17(ivec4) Load 19(ballot)
+            2099:   23(fvec4) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2097 2098
+            2100:     44(ptr) AccessChain 31(data) 2095 34
+                              Store 2100 2099
+            2101:      6(int) Load 8(invocation)
+            2102:     64(ptr) AccessChain 31(data) 34 63 35
+            2103:     24(int) Load 2102
+            2104:   17(ivec4) Load 19(ballot)
+            2105:     24(int) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2103 2104
+            2106:     64(ptr) AccessChain 31(data) 2101 63 35
+                              Store 2106 2105
+            2107:      6(int) Load 8(invocation)
+            2108:     71(ptr) AccessChain 31(data) 63 63
+            2109:   25(ivec4) Load 2108
+            2110:   70(ivec2) VectorShuffle 2109 2109 0 1
+            2111:   17(ivec4) Load 19(ballot)
+            2112:   70(ivec2) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2110 2111
+            2113:     64(ptr) AccessChain 31(data) 2107 63 35
+            2114:     24(int) CompositeExtract 2112 0
+                              Store 2113 2114
+            2115:     64(ptr) AccessChain 31(data) 2107 63 189
+            2116:     24(int) CompositeExtract 2112 1
+                              Store 2115 2116
+            2117:      6(int) Load 8(invocation)
+            2118:     71(ptr) AccessChain 31(data) 33 63
+            2119:   25(ivec4) Load 2118
+            2120:   78(ivec3) VectorShuffle 2119 2119 0 1 2
+            2121:   17(ivec4) Load 19(ballot)
+            2122:   78(ivec3) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2120 2121
+            2123:     64(ptr) AccessChain 31(data) 2117 63 35
+            2124:     24(int) CompositeExtract 2122 0
+                              Store 2123 2124
+            2125:     64(ptr) AccessChain 31(data) 2117 63 189
+            2126:     24(int) CompositeExtract 2122 1
+                              Store 2125 2126
+            2127:     64(ptr) AccessChain 31(data) 2117 63 202
+            2128:     24(int) CompositeExtract 2122 2
+                              Store 2127 2128
+            2129:      6(int) Load 8(invocation)
+            2130:     71(ptr) AccessChain 31(data) 115 63
+            2131:   25(ivec4) Load 2130
+            2132:   17(ivec4) Load 19(ballot)
+            2133:   25(ivec4) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2131 2132
+            2134:     71(ptr) AccessChain 31(data) 2129 63
+                              Store 2134 2133
+            2135:      6(int) Load 8(invocation)
+            2136:     90(ptr) AccessChain 31(data) 34 33 35
+            2137:      6(int) Load 2136
             2138:   17(ivec4) Load 19(ballot)
-            2139:   78(ivec3) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2137 2138
-            2140:     71(ptr) AccessChain 31(data) 2134 63
-            2141:   25(ivec4) Load 2140
-            2142:   25(ivec4) VectorShuffle 2141 2139 4 5 6 3
-                              Store 2140 2142
-            2143:      6(int) Load 8(invocation)
-            2144:     71(ptr) AccessChain 31(data) 115 63
-            2145:   25(ivec4) Load 2144
-            2146:   17(ivec4) Load 19(ballot)
-            2147:   25(ivec4) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2145 2146
-            2148:     71(ptr) AccessChain 31(data) 2143 63
-                              Store 2148 2147
-            2149:      6(int) Load 8(invocation)
-            2150:     90(ptr) AccessChain 31(data) 34 33 35
-            2151:      6(int) Load 2150
-            2152:   17(ivec4) Load 19(ballot)
-            2153:      6(int) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2151 2152
-            2154:     90(ptr) AccessChain 31(data) 2149 33 35
-                              Store 2154 2153
-            2155:      6(int) Load 8(invocation)
-            2156:     40(ptr) AccessChain 31(data) 63 33
-            2157:   17(ivec4) Load 2156
-            2158:   96(ivec2) VectorShuffle 2157 2157 0 1
-            2159:   17(ivec4) Load 19(ballot)
-            2160:   96(ivec2) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2158 2159
-            2161:     40(ptr) AccessChain 31(data) 2155 33
-            2162:   17(ivec4) Load 2161
-            2163:   17(ivec4) VectorShuffle 2162 2160 4 5 2 3
-                              Store 2161 2163
-            2164:      6(int) Load 8(invocation)
-            2165:     40(ptr) AccessChain 31(data) 33 33
-            2166:   17(ivec4) Load 2165
-            2167:  103(ivec3) VectorShuffle 2166 2166 0 1 2
-            2168:   17(ivec4) Load 19(ballot)
-            2169:  103(ivec3) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2167 2168
-            2170:     40(ptr) AccessChain 31(data) 2164 33
-            2171:   17(ivec4) Load 2170
-            2172:   17(ivec4) VectorShuffle 2171 2169 4 5 6 3
-                              Store 2170 2172
-            2173:      6(int) Load 8(invocation)
-            2174:     40(ptr) AccessChain 31(data) 115 33
-            2175:   17(ivec4) Load 2174
-            2176:   17(ivec4) Load 19(ballot)
-            2177:   17(ivec4) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2175 2176
-            2178:     40(ptr) AccessChain 31(data) 2173 33
-                              Store 2178 2177
-            2179:      6(int) Load 8(invocation)
-            2180:    116(ptr) AccessChain 31(data) 34 115 35
-            2181:26(float64_t) Load 2180
-            2182:   17(ivec4) Load 19(ballot)
-            2183:26(float64_t) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2181 2182
-            2184:    116(ptr) AccessChain 31(data) 2179 115 35
-                              Store 2184 2183
+            2139:      6(int) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2137 2138
+            2140:     90(ptr) AccessChain 31(data) 2135 33 35
+                              Store 2140 2139
+            2141:      6(int) Load 8(invocation)
+            2142:     40(ptr) AccessChain 31(data) 63 33
+            2143:   17(ivec4) Load 2142
+            2144:   96(ivec2) VectorShuffle 2143 2143 0 1
+            2145:   17(ivec4) Load 19(ballot)
+            2146:   96(ivec2) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2144 2145
+            2147:     90(ptr) AccessChain 31(data) 2141 33 35
+            2148:      6(int) CompositeExtract 2146 0
+                              Store 2147 2148
+            2149:     90(ptr) AccessChain 31(data) 2141 33 189
+            2150:      6(int) CompositeExtract 2146 1
+                              Store 2149 2150
+            2151:      6(int) Load 8(invocation)
+            2152:     40(ptr) AccessChain 31(data) 33 33
+            2153:   17(ivec4) Load 2152
+            2154:  103(ivec3) VectorShuffle 2153 2153 0 1 2
+            2155:   17(ivec4) Load 19(ballot)
+            2156:  103(ivec3) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2154 2155
+            2157:     90(ptr) AccessChain 31(data) 2151 33 35
+            2158:      6(int) CompositeExtract 2156 0
+                              Store 2157 2158
+            2159:     90(ptr) AccessChain 31(data) 2151 33 189
+            2160:      6(int) CompositeExtract 2156 1
+                              Store 2159 2160
+            2161:     90(ptr) AccessChain 31(data) 2151 33 202
+            2162:      6(int) CompositeExtract 2156 2
+                              Store 2161 2162
+            2163:      6(int) Load 8(invocation)
+            2164:     40(ptr) AccessChain 31(data) 115 33
+            2165:   17(ivec4) Load 2164
+            2166:   17(ivec4) Load 19(ballot)
+            2167:   17(ivec4) GroupNonUniformIMul 178 PartitionedExclusiveScanNV 2165 2166
+            2168:     40(ptr) AccessChain 31(data) 2163 33
+                              Store 2168 2167
+            2169:      6(int) Load 8(invocation)
+            2170:    116(ptr) AccessChain 31(data) 34 115 35
+            2171:26(float64_t) Load 2170
+            2172:   17(ivec4) Load 19(ballot)
+            2173:26(float64_t) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2171 2172
+            2174:    116(ptr) AccessChain 31(data) 2169 115 35
+                              Store 2174 2173
+            2175:      6(int) Load 8(invocation)
+            2176:    123(ptr) AccessChain 31(data) 63 115
+            2177: 27(f64vec4) Load 2176
+            2178:122(f64vec2) VectorShuffle 2177 2177 0 1
+            2179:   17(ivec4) Load 19(ballot)
+            2180:122(f64vec2) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2178 2179
+            2181:    116(ptr) AccessChain 31(data) 2175 115 35
+            2182:26(float64_t) CompositeExtract 2180 0
+                              Store 2181 2182
+            2183:    116(ptr) AccessChain 31(data) 2175 115 189
+            2184:26(float64_t) CompositeExtract 2180 1
+                              Store 2183 2184
             2185:      6(int) Load 8(invocation)
-            2186:    123(ptr) AccessChain 31(data) 63 115
+            2186:    123(ptr) AccessChain 31(data) 33 115
             2187: 27(f64vec4) Load 2186
-            2188:122(f64vec2) VectorShuffle 2187 2187 0 1
+            2188:130(f64vec3) VectorShuffle 2187 2187 0 1 2
             2189:   17(ivec4) Load 19(ballot)
-            2190:122(f64vec2) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2188 2189
-            2191:    123(ptr) AccessChain 31(data) 2185 115
-            2192: 27(f64vec4) Load 2191
-            2193: 27(f64vec4) VectorShuffle 2192 2190 4 5 2 3
-                              Store 2191 2193
-            2194:      6(int) Load 8(invocation)
-            2195:    123(ptr) AccessChain 31(data) 33 115
-            2196: 27(f64vec4) Load 2195
-            2197:130(f64vec3) VectorShuffle 2196 2196 0 1 2
-            2198:   17(ivec4) Load 19(ballot)
-            2199:130(f64vec3) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2197 2198
-            2200:    123(ptr) AccessChain 31(data) 2194 115
-            2201: 27(f64vec4) Load 2200
-            2202: 27(f64vec4) VectorShuffle 2201 2199 4 5 6 3
-                              Store 2200 2202
+            2190:130(f64vec3) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2188 2189
+            2191:    116(ptr) AccessChain 31(data) 2185 115 35
+            2192:26(float64_t) CompositeExtract 2190 0
+                              Store 2191 2192
+            2193:    116(ptr) AccessChain 31(data) 2185 115 189
+            2194:26(float64_t) CompositeExtract 2190 1
+                              Store 2193 2194
+            2195:    116(ptr) AccessChain 31(data) 2185 115 202
+            2196:26(float64_t) CompositeExtract 2190 2
+                              Store 2195 2196
+            2197:      6(int) Load 8(invocation)
+            2198:    123(ptr) AccessChain 31(data) 115 115
+            2199: 27(f64vec4) Load 2198
+            2200:   17(ivec4) Load 19(ballot)
+            2201: 27(f64vec4) GroupNonUniformFMul 178 PartitionedExclusiveScanNV 2199 2200
+            2202:    123(ptr) AccessChain 31(data) 2197 115
+                              Store 2202 2201
             2203:      6(int) Load 8(invocation)
-            2204:    123(ptr) AccessChain 31(data) 115 115
-            2205: 27(f64vec4) Load 2204
+            2204:     36(ptr) AccessChain 31(data) 34 34 35
+            2205:   22(float) Load 2204
             2206:   17(ivec4) Load 19(ballot)
-            2207: 27(f64vec4) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2205 2206
-            2208:    123(ptr) AccessChain 31(data) 2203 115
+            2207:   22(float) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2205 2206
+            2208:     36(ptr) AccessChain 31(data) 2203 34 35
                               Store 2208 2207
             2209:      6(int) Load 8(invocation)
-            2210:     64(ptr) AccessChain 31(data) 34 63 35
-            2211:     24(int) Load 2210
-            2212:   17(ivec4) Load 19(ballot)
-            2213:     24(int) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2211 2212
-            2214:     64(ptr) AccessChain 31(data) 2209 63 35
-                              Store 2214 2213
-            2215:      6(int) Load 8(invocation)
-            2216:     71(ptr) AccessChain 31(data) 63 63
-            2217:   25(ivec4) Load 2216
-            2218:   70(ivec2) VectorShuffle 2217 2217 0 1
-            2219:   17(ivec4) Load 19(ballot)
-            2220:   70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2218 2219
-            2221:     71(ptr) AccessChain 31(data) 2215 63
-            2222:   25(ivec4) Load 2221
-            2223:   25(ivec4) VectorShuffle 2222 2220 4 5 2 3
-                              Store 2221 2223
-            2224:      6(int) Load 8(invocation)
-            2225:     71(ptr) AccessChain 31(data) 33 63
-            2226:   25(ivec4) Load 2225
-            2227:   78(ivec3) VectorShuffle 2226 2226 0 1 2
-            2228:   17(ivec4) Load 19(ballot)
-            2229:   78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2227 2228
-            2230:     71(ptr) AccessChain 31(data) 2224 63
-            2231:   25(ivec4) Load 2230
-            2232:   25(ivec4) VectorShuffle 2231 2229 4 5 6 3
-                              Store 2230 2232
-            2233:      6(int) Load 8(invocation)
-            2234:     71(ptr) AccessChain 31(data) 115 63
-            2235:   25(ivec4) Load 2234
-            2236:   17(ivec4) Load 19(ballot)
-            2237:   25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2235 2236
-            2238:     71(ptr) AccessChain 31(data) 2233 63
-                              Store 2238 2237
-            2239:      6(int) Load 8(invocation)
-            2240:     90(ptr) AccessChain 31(data) 34 33 35
-            2241:      6(int) Load 2240
-            2242:   17(ivec4) Load 19(ballot)
-            2243:      6(int) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2241 2242
-            2244:     90(ptr) AccessChain 31(data) 2239 33 35
-                              Store 2244 2243
-            2245:      6(int) Load 8(invocation)
-            2246:     40(ptr) AccessChain 31(data) 63 33
-            2247:   17(ivec4) Load 2246
-            2248:   96(ivec2) VectorShuffle 2247 2247 0 1
-            2249:   17(ivec4) Load 19(ballot)
-            2250:   96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2248 2249
-            2251:     40(ptr) AccessChain 31(data) 2245 33
-            2252:   17(ivec4) Load 2251
-            2253:   17(ivec4) VectorShuffle 2252 2250 4 5 2 3
-                              Store 2251 2253
-            2254:      6(int) Load 8(invocation)
-            2255:     40(ptr) AccessChain 31(data) 33 33
-            2256:   17(ivec4) Load 2255
-            2257:  103(ivec3) VectorShuffle 2256 2256 0 1 2
-            2258:   17(ivec4) Load 19(ballot)
-            2259:  103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2257 2258
-            2260:     40(ptr) AccessChain 31(data) 2254 33
-            2261:   17(ivec4) Load 2260
-            2262:   17(ivec4) VectorShuffle 2261 2259 4 5 6 3
-                              Store 2260 2262
-            2263:      6(int) Load 8(invocation)
-            2264:     40(ptr) AccessChain 31(data) 115 33
-            2265:   17(ivec4) Load 2264
-            2266:   17(ivec4) Load 19(ballot)
-            2267:   17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2265 2266
-            2268:     40(ptr) AccessChain 31(data) 2263 33
-                              Store 2268 2267
-            2269:      6(int) Load 8(invocation)
-            2270:     64(ptr) AccessChain 31(data) 34 63 35
-            2271:     24(int) Load 2270
-            2272:   144(bool) SLessThan 2271 34
-            2273:   17(ivec4) Load 19(ballot)
-            2274:   144(bool) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2272 2273
-            2275:     24(int) Select 2274 63 34
-            2276:     64(ptr) AccessChain 31(data) 2269 63 35
+            2210:     44(ptr) AccessChain 31(data) 63 34
+            2211:   23(fvec4) Load 2210
+            2212:   43(fvec2) VectorShuffle 2211 2211 0 1
+            2213:   17(ivec4) Load 19(ballot)
+            2214:   43(fvec2) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2212 2213
+            2215:     36(ptr) AccessChain 31(data) 2209 34 35
+            2216:   22(float) CompositeExtract 2214 0
+                              Store 2215 2216
+            2217:     36(ptr) AccessChain 31(data) 2209 34 189
+            2218:   22(float) CompositeExtract 2214 1
+                              Store 2217 2218
+            2219:      6(int) Load 8(invocation)
+            2220:     44(ptr) AccessChain 31(data) 33 34
+            2221:   23(fvec4) Load 2220
+            2222:   51(fvec3) VectorShuffle 2221 2221 0 1 2
+            2223:   17(ivec4) Load 19(ballot)
+            2224:   51(fvec3) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2222 2223
+            2225:     36(ptr) AccessChain 31(data) 2219 34 35
+            2226:   22(float) CompositeExtract 2224 0
+                              Store 2225 2226
+            2227:     36(ptr) AccessChain 31(data) 2219 34 189
+            2228:   22(float) CompositeExtract 2224 1
+                              Store 2227 2228
+            2229:     36(ptr) AccessChain 31(data) 2219 34 202
+            2230:   22(float) CompositeExtract 2224 2
+                              Store 2229 2230
+            2231:      6(int) Load 8(invocation)
+            2232:     44(ptr) AccessChain 31(data) 115 34
+            2233:   23(fvec4) Load 2232
+            2234:   17(ivec4) Load 19(ballot)
+            2235:   23(fvec4) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2233 2234
+            2236:     44(ptr) AccessChain 31(data) 2231 34
+                              Store 2236 2235
+            2237:      6(int) Load 8(invocation)
+            2238:     64(ptr) AccessChain 31(data) 34 63 35
+            2239:     24(int) Load 2238
+            2240:   17(ivec4) Load 19(ballot)
+            2241:     24(int) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2239 2240
+            2242:     64(ptr) AccessChain 31(data) 2237 63 35
+                              Store 2242 2241
+            2243:      6(int) Load 8(invocation)
+            2244:     71(ptr) AccessChain 31(data) 63 63
+            2245:   25(ivec4) Load 2244
+            2246:   70(ivec2) VectorShuffle 2245 2245 0 1
+            2247:   17(ivec4) Load 19(ballot)
+            2248:   70(ivec2) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2246 2247
+            2249:     64(ptr) AccessChain 31(data) 2243 63 35
+            2250:     24(int) CompositeExtract 2248 0
+                              Store 2249 2250
+            2251:     64(ptr) AccessChain 31(data) 2243 63 189
+            2252:     24(int) CompositeExtract 2248 1
+                              Store 2251 2252
+            2253:      6(int) Load 8(invocation)
+            2254:     71(ptr) AccessChain 31(data) 33 63
+            2255:   25(ivec4) Load 2254
+            2256:   78(ivec3) VectorShuffle 2255 2255 0 1 2
+            2257:   17(ivec4) Load 19(ballot)
+            2258:   78(ivec3) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2256 2257
+            2259:     64(ptr) AccessChain 31(data) 2253 63 35
+            2260:     24(int) CompositeExtract 2258 0
+                              Store 2259 2260
+            2261:     64(ptr) AccessChain 31(data) 2253 63 189
+            2262:     24(int) CompositeExtract 2258 1
+                              Store 2261 2262
+            2263:     64(ptr) AccessChain 31(data) 2253 63 202
+            2264:     24(int) CompositeExtract 2258 2
+                              Store 2263 2264
+            2265:      6(int) Load 8(invocation)
+            2266:     71(ptr) AccessChain 31(data) 115 63
+            2267:   25(ivec4) Load 2266
+            2268:   17(ivec4) Load 19(ballot)
+            2269:   25(ivec4) GroupNonUniformSMin 178 PartitionedExclusiveScanNV 2267 2268
+            2270:     71(ptr) AccessChain 31(data) 2265 63
+                              Store 2270 2269
+            2271:      6(int) Load 8(invocation)
+            2272:     90(ptr) AccessChain 31(data) 34 33 35
+            2273:      6(int) Load 2272
+            2274:   17(ivec4) Load 19(ballot)
+            2275:      6(int) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2273 2274
+            2276:     90(ptr) AccessChain 31(data) 2271 33 35
                               Store 2276 2275
             2277:      6(int) Load 8(invocation)
-            2278:     71(ptr) AccessChain 31(data) 63 63
-            2279:   25(ivec4) Load 2278
-            2280:   70(ivec2) VectorShuffle 2279 2279 0 1
-            2281:  152(bvec2) SLessThan 2280 727
-            2282:   17(ivec4) Load 19(ballot)
-            2283:  152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2281 2282
-            2284:   70(ivec2) Select 2283 731 727
-            2285:     71(ptr) AccessChain 31(data) 2277 63
-            2286:   25(ivec4) Load 2285
-            2287:   25(ivec4) VectorShuffle 2286 2284 4 5 2 3
-                              Store 2285 2287
-            2288:      6(int) Load 8(invocation)
-            2289:     71(ptr) AccessChain 31(data) 63 63
-            2290:   25(ivec4) Load 2289
-            2291:   78(ivec3) VectorShuffle 2290 2290 0 1 2
-            2292:  161(bvec3) SLessThan 2291 740
-            2293:   17(ivec4) Load 19(ballot)
-            2294:  161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2292 2293
-            2295:   78(ivec3) Select 2294 744 740
-            2296:     71(ptr) AccessChain 31(data) 2288 63
-            2297:   25(ivec4) Load 2296
-            2298:   25(ivec4) VectorShuffle 2297 2295 4 5 6 3
-                              Store 2296 2298
+            2278:     40(ptr) AccessChain 31(data) 63 33
+            2279:   17(ivec4) Load 2278
+            2280:   96(ivec2) VectorShuffle 2279 2279 0 1
+            2281:   17(ivec4) Load 19(ballot)
+            2282:   96(ivec2) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2280 2281
+            2283:     90(ptr) AccessChain 31(data) 2277 33 35
+            2284:      6(int) CompositeExtract 2282 0
+                              Store 2283 2284
+            2285:     90(ptr) AccessChain 31(data) 2277 33 189
+            2286:      6(int) CompositeExtract 2282 1
+                              Store 2285 2286
+            2287:      6(int) Load 8(invocation)
+            2288:     40(ptr) AccessChain 31(data) 33 33
+            2289:   17(ivec4) Load 2288
+            2290:  103(ivec3) VectorShuffle 2289 2289 0 1 2
+            2291:   17(ivec4) Load 19(ballot)
+            2292:  103(ivec3) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2290 2291
+            2293:     90(ptr) AccessChain 31(data) 2287 33 35
+            2294:      6(int) CompositeExtract 2292 0
+                              Store 2293 2294
+            2295:     90(ptr) AccessChain 31(data) 2287 33 189
+            2296:      6(int) CompositeExtract 2292 1
+                              Store 2295 2296
+            2297:     90(ptr) AccessChain 31(data) 2287 33 202
+            2298:      6(int) CompositeExtract 2292 2
+                              Store 2297 2298
             2299:      6(int) Load 8(invocation)
-            2300:     71(ptr) AccessChain 31(data) 63 63
-            2301:   25(ivec4) Load 2300
-            2302:  169(bvec4) SLessThan 2301 752
-            2303:   17(ivec4) Load 19(ballot)
-            2304:  169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2302 2303
-            2305:   25(ivec4) Select 2304 756 752
-            2306:     71(ptr) AccessChain 31(data) 2299 63
-                              Store 2306 2305
-            2307:      6(int) Load 8(invocation)
-            2308:     64(ptr) AccessChain 31(data) 34 63 35
-            2309:     24(int) Load 2308
-            2310:   17(ivec4) Load 19(ballot)
-            2311:     24(int) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2309 2310
-            2312:     64(ptr) AccessChain 31(data) 2307 63 35
-                              Store 2312 2311
-            2313:      6(int) Load 8(invocation)
-            2314:     71(ptr) AccessChain 31(data) 63 63
-            2315:   25(ivec4) Load 2314
-            2316:   70(ivec2) VectorShuffle 2315 2315 0 1
-            2317:   17(ivec4) Load 19(ballot)
-            2318:   70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2316 2317
-            2319:     71(ptr) AccessChain 31(data) 2313 63
-            2320:   25(ivec4) Load 2319
-            2321:   25(ivec4) VectorShuffle 2320 2318 4 5 2 3
-                              Store 2319 2321
-            2322:      6(int) Load 8(invocation)
-            2323:     71(ptr) AccessChain 31(data) 33 63
-            2324:   25(ivec4) Load 2323
-            2325:   78(ivec3) VectorShuffle 2324 2324 0 1 2
-            2326:   17(ivec4) Load 19(ballot)
-            2327:   78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2325 2326
-            2328:     71(ptr) AccessChain 31(data) 2322 63
-            2329:   25(ivec4) Load 2328
-            2330:   25(ivec4) VectorShuffle 2329 2327 4 5 6 3
-                              Store 2328 2330
-            2331:      6(int) Load 8(invocation)
-            2332:     71(ptr) AccessChain 31(data) 115 63
-            2333:   25(ivec4) Load 2332
-            2334:   17(ivec4) Load 19(ballot)
-            2335:   25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2333 2334
-            2336:     71(ptr) AccessChain 31(data) 2331 63
-                              Store 2336 2335
-            2337:      6(int) Load 8(invocation)
-            2338:     90(ptr) AccessChain 31(data) 34 33 35
-            2339:      6(int) Load 2338
-            2340:   17(ivec4) Load 19(ballot)
-            2341:      6(int) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2339 2340
-            2342:     90(ptr) AccessChain 31(data) 2337 33 35
-                              Store 2342 2341
-            2343:      6(int) Load 8(invocation)
-            2344:     40(ptr) AccessChain 31(data) 63 33
-            2345:   17(ivec4) Load 2344
-            2346:   96(ivec2) VectorShuffle 2345 2345 0 1
-            2347:   17(ivec4) Load 19(ballot)
-            2348:   96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2346 2347
-            2349:     40(ptr) AccessChain 31(data) 2343 33
-            2350:   17(ivec4) Load 2349
-            2351:   17(ivec4) VectorShuffle 2350 2348 4 5 2 3
-                              Store 2349 2351
-            2352:      6(int) Load 8(invocation)
-            2353:     40(ptr) AccessChain 31(data) 33 33
-            2354:   17(ivec4) Load 2353
-            2355:  103(ivec3) VectorShuffle 2354 2354 0 1 2
-            2356:   17(ivec4) Load 19(ballot)
-            2357:  103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2355 2356
-            2358:     40(ptr) AccessChain 31(data) 2352 33
-            2359:   17(ivec4) Load 2358
-            2360:   17(ivec4) VectorShuffle 2359 2357 4 5 6 3
-                              Store 2358 2360
-            2361:      6(int) Load 8(invocation)
-            2362:     40(ptr) AccessChain 31(data) 115 33
-            2363:   17(ivec4) Load 2362
-            2364:   17(ivec4) Load 19(ballot)
-            2365:   17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2363 2364
-            2366:     40(ptr) AccessChain 31(data) 2361 33
-                              Store 2366 2365
+            2300:     40(ptr) AccessChain 31(data) 115 33
+            2301:   17(ivec4) Load 2300
+            2302:   17(ivec4) Load 19(ballot)
+            2303:   17(ivec4) GroupNonUniformUMin 178 PartitionedExclusiveScanNV 2301 2302
+            2304:     40(ptr) AccessChain 31(data) 2299 33
+                              Store 2304 2303
+            2305:      6(int) Load 8(invocation)
+            2306:    116(ptr) AccessChain 31(data) 34 115 35
+            2307:26(float64_t) Load 2306
+            2308:   17(ivec4) Load 19(ballot)
+            2309:26(float64_t) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2307 2308
+            2310:    116(ptr) AccessChain 31(data) 2305 115 35
+                              Store 2310 2309
+            2311:      6(int) Load 8(invocation)
+            2312:    123(ptr) AccessChain 31(data) 63 115
+            2313: 27(f64vec4) Load 2312
+            2314:122(f64vec2) VectorShuffle 2313 2313 0 1
+            2315:   17(ivec4) Load 19(ballot)
+            2316:122(f64vec2) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2314 2315
+            2317:    116(ptr) AccessChain 31(data) 2311 115 35
+            2318:26(float64_t) CompositeExtract 2316 0
+                              Store 2317 2318
+            2319:    116(ptr) AccessChain 31(data) 2311 115 189
+            2320:26(float64_t) CompositeExtract 2316 1
+                              Store 2319 2320
+            2321:      6(int) Load 8(invocation)
+            2322:    123(ptr) AccessChain 31(data) 33 115
+            2323: 27(f64vec4) Load 2322
+            2324:130(f64vec3) VectorShuffle 2323 2323 0 1 2
+            2325:   17(ivec4) Load 19(ballot)
+            2326:130(f64vec3) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2324 2325
+            2327:    116(ptr) AccessChain 31(data) 2321 115 35
+            2328:26(float64_t) CompositeExtract 2326 0
+                              Store 2327 2328
+            2329:    116(ptr) AccessChain 31(data) 2321 115 189
+            2330:26(float64_t) CompositeExtract 2326 1
+                              Store 2329 2330
+            2331:    116(ptr) AccessChain 31(data) 2321 115 202
+            2332:26(float64_t) CompositeExtract 2326 2
+                              Store 2331 2332
+            2333:      6(int) Load 8(invocation)
+            2334:    123(ptr) AccessChain 31(data) 115 115
+            2335: 27(f64vec4) Load 2334
+            2336:   17(ivec4) Load 19(ballot)
+            2337: 27(f64vec4) GroupNonUniformFMin 178 PartitionedExclusiveScanNV 2335 2336
+            2338:    123(ptr) AccessChain 31(data) 2333 115
+                              Store 2338 2337
+            2339:      6(int) Load 8(invocation)
+            2340:     36(ptr) AccessChain 31(data) 34 34 35
+            2341:   22(float) Load 2340
+            2342:   17(ivec4) Load 19(ballot)
+            2343:   22(float) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2341 2342
+            2344:     36(ptr) AccessChain 31(data) 2339 34 35
+                              Store 2344 2343
+            2345:      6(int) Load 8(invocation)
+            2346:     44(ptr) AccessChain 31(data) 63 34
+            2347:   23(fvec4) Load 2346
+            2348:   43(fvec2) VectorShuffle 2347 2347 0 1
+            2349:   17(ivec4) Load 19(ballot)
+            2350:   43(fvec2) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2348 2349
+            2351:     36(ptr) AccessChain 31(data) 2345 34 35
+            2352:   22(float) CompositeExtract 2350 0
+                              Store 2351 2352
+            2353:     36(ptr) AccessChain 31(data) 2345 34 189
+            2354:   22(float) CompositeExtract 2350 1
+                              Store 2353 2354
+            2355:      6(int) Load 8(invocation)
+            2356:     44(ptr) AccessChain 31(data) 33 34
+            2357:   23(fvec4) Load 2356
+            2358:   51(fvec3) VectorShuffle 2357 2357 0 1 2
+            2359:   17(ivec4) Load 19(ballot)
+            2360:   51(fvec3) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2358 2359
+            2361:     36(ptr) AccessChain 31(data) 2355 34 35
+            2362:   22(float) CompositeExtract 2360 0
+                              Store 2361 2362
+            2363:     36(ptr) AccessChain 31(data) 2355 34 189
+            2364:   22(float) CompositeExtract 2360 1
+                              Store 2363 2364
+            2365:     36(ptr) AccessChain 31(data) 2355 34 202
+            2366:   22(float) CompositeExtract 2360 2
+                              Store 2365 2366
             2367:      6(int) Load 8(invocation)
-            2368:     64(ptr) AccessChain 31(data) 34 63 35
-            2369:     24(int) Load 2368
-            2370:   144(bool) SLessThan 2369 34
-            2371:   17(ivec4) Load 19(ballot)
-            2372:   144(bool) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2370 2371
-            2373:     24(int) Select 2372 63 34
-            2374:     64(ptr) AccessChain 31(data) 2367 63 35
-                              Store 2374 2373
-            2375:      6(int) Load 8(invocation)
-            2376:     71(ptr) AccessChain 31(data) 63 63
-            2377:   25(ivec4) Load 2376
-            2378:   70(ivec2) VectorShuffle 2377 2377 0 1
-            2379:  152(bvec2) SLessThan 2378 727
-            2380:   17(ivec4) Load 19(ballot)
-            2381:  152(bvec2) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2379 2380
-            2382:   70(ivec2) Select 2381 731 727
-            2383:     71(ptr) AccessChain 31(data) 2375 63
-            2384:   25(ivec4) Load 2383
-            2385:   25(ivec4) VectorShuffle 2384 2382 4 5 2 3
-                              Store 2383 2385
-            2386:      6(int) Load 8(invocation)
-            2387:     71(ptr) AccessChain 31(data) 63 63
-            2388:   25(ivec4) Load 2387
-            2389:   78(ivec3) VectorShuffle 2388 2388 0 1 2
-            2390:  161(bvec3) SLessThan 2389 740
-            2391:   17(ivec4) Load 19(ballot)
-            2392:  161(bvec3) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2390 2391
-            2393:   78(ivec3) Select 2392 744 740
-            2394:     71(ptr) AccessChain 31(data) 2386 63
-            2395:   25(ivec4) Load 2394
-            2396:   25(ivec4) VectorShuffle 2395 2393 4 5 6 3
-                              Store 2394 2396
-            2397:      6(int) Load 8(invocation)
-            2398:     71(ptr) AccessChain 31(data) 63 63
-            2399:   25(ivec4) Load 2398
-            2400:  169(bvec4) SLessThan 2399 752
-            2401:   17(ivec4) Load 19(ballot)
-            2402:  169(bvec4) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2400 2401
-            2403:   25(ivec4) Select 2402 756 752
-            2404:     71(ptr) AccessChain 31(data) 2397 63
-                              Store 2404 2403
-            2405:      6(int) Load 8(invocation)
-            2406:     64(ptr) AccessChain 31(data) 34 63 35
-            2407:     24(int) Load 2406
-            2408:   17(ivec4) Load 19(ballot)
-            2409:     24(int) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2407 2408
-            2410:     64(ptr) AccessChain 31(data) 2405 63 35
-                              Store 2410 2409
-            2411:      6(int) Load 8(invocation)
-            2412:     71(ptr) AccessChain 31(data) 63 63
-            2413:   25(ivec4) Load 2412
-            2414:   70(ivec2) VectorShuffle 2413 2413 0 1
-            2415:   17(ivec4) Load 19(ballot)
-            2416:   70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2414 2415
-            2417:     71(ptr) AccessChain 31(data) 2411 63
-            2418:   25(ivec4) Load 2417
-            2419:   25(ivec4) VectorShuffle 2418 2416 4 5 2 3
-                              Store 2417 2419
-            2420:      6(int) Load 8(invocation)
-            2421:     71(ptr) AccessChain 31(data) 33 63
-            2422:   25(ivec4) Load 2421
-            2423:   78(ivec3) VectorShuffle 2422 2422 0 1 2
-            2424:   17(ivec4) Load 19(ballot)
-            2425:   78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2423 2424
-            2426:     71(ptr) AccessChain 31(data) 2420 63
-            2427:   25(ivec4) Load 2426
-            2428:   25(ivec4) VectorShuffle 2427 2425 4 5 6 3
-                              Store 2426 2428
-            2429:      6(int) Load 8(invocation)
-            2430:     71(ptr) AccessChain 31(data) 115 63
-            2431:   25(ivec4) Load 2430
-            2432:   17(ivec4) Load 19(ballot)
-            2433:   25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2431 2432
-            2434:     71(ptr) AccessChain 31(data) 2429 63
-                              Store 2434 2433
+            2368:     44(ptr) AccessChain 31(data) 115 34
+            2369:   23(fvec4) Load 2368
+            2370:   17(ivec4) Load 19(ballot)
+            2371:   23(fvec4) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2369 2370
+            2372:     44(ptr) AccessChain 31(data) 2367 34
+                              Store 2372 2371
+            2373:      6(int) Load 8(invocation)
+            2374:     64(ptr) AccessChain 31(data) 34 63 35
+            2375:     24(int) Load 2374
+            2376:   17(ivec4) Load 19(ballot)
+            2377:     24(int) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2375 2376
+            2378:     64(ptr) AccessChain 31(data) 2373 63 35
+                              Store 2378 2377
+            2379:      6(int) Load 8(invocation)
+            2380:     71(ptr) AccessChain 31(data) 63 63
+            2381:   25(ivec4) Load 2380
+            2382:   70(ivec2) VectorShuffle 2381 2381 0 1
+            2383:   17(ivec4) Load 19(ballot)
+            2384:   70(ivec2) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2382 2383
+            2385:     64(ptr) AccessChain 31(data) 2379 63 35
+            2386:     24(int) CompositeExtract 2384 0
+                              Store 2385 2386
+            2387:     64(ptr) AccessChain 31(data) 2379 63 189
+            2388:     24(int) CompositeExtract 2384 1
+                              Store 2387 2388
+            2389:      6(int) Load 8(invocation)
+            2390:     71(ptr) AccessChain 31(data) 33 63
+            2391:   25(ivec4) Load 2390
+            2392:   78(ivec3) VectorShuffle 2391 2391 0 1 2
+            2393:   17(ivec4) Load 19(ballot)
+            2394:   78(ivec3) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2392 2393
+            2395:     64(ptr) AccessChain 31(data) 2389 63 35
+            2396:     24(int) CompositeExtract 2394 0
+                              Store 2395 2396
+            2397:     64(ptr) AccessChain 31(data) 2389 63 189
+            2398:     24(int) CompositeExtract 2394 1
+                              Store 2397 2398
+            2399:     64(ptr) AccessChain 31(data) 2389 63 202
+            2400:     24(int) CompositeExtract 2394 2
+                              Store 2399 2400
+            2401:      6(int) Load 8(invocation)
+            2402:     71(ptr) AccessChain 31(data) 115 63
+            2403:   25(ivec4) Load 2402
+            2404:   17(ivec4) Load 19(ballot)
+            2405:   25(ivec4) GroupNonUniformSMax 178 PartitionedExclusiveScanNV 2403 2404
+            2406:     71(ptr) AccessChain 31(data) 2401 63
+                              Store 2406 2405
+            2407:      6(int) Load 8(invocation)
+            2408:     90(ptr) AccessChain 31(data) 34 33 35
+            2409:      6(int) Load 2408
+            2410:   17(ivec4) Load 19(ballot)
+            2411:      6(int) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2409 2410
+            2412:     90(ptr) AccessChain 31(data) 2407 33 35
+                              Store 2412 2411
+            2413:      6(int) Load 8(invocation)
+            2414:     40(ptr) AccessChain 31(data) 63 33
+            2415:   17(ivec4) Load 2414
+            2416:   96(ivec2) VectorShuffle 2415 2415 0 1
+            2417:   17(ivec4) Load 19(ballot)
+            2418:   96(ivec2) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2416 2417
+            2419:     90(ptr) AccessChain 31(data) 2413 33 35
+            2420:      6(int) CompositeExtract 2418 0
+                              Store 2419 2420
+            2421:     90(ptr) AccessChain 31(data) 2413 33 189
+            2422:      6(int) CompositeExtract 2418 1
+                              Store 2421 2422
+            2423:      6(int) Load 8(invocation)
+            2424:     40(ptr) AccessChain 31(data) 33 33
+            2425:   17(ivec4) Load 2424
+            2426:  103(ivec3) VectorShuffle 2425 2425 0 1 2
+            2427:   17(ivec4) Load 19(ballot)
+            2428:  103(ivec3) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2426 2427
+            2429:     90(ptr) AccessChain 31(data) 2423 33 35
+            2430:      6(int) CompositeExtract 2428 0
+                              Store 2429 2430
+            2431:     90(ptr) AccessChain 31(data) 2423 33 189
+            2432:      6(int) CompositeExtract 2428 1
+                              Store 2431 2432
+            2433:     90(ptr) AccessChain 31(data) 2423 33 202
+            2434:      6(int) CompositeExtract 2428 2
+                              Store 2433 2434
             2435:      6(int) Load 8(invocation)
-            2436:     90(ptr) AccessChain 31(data) 34 33 35
-            2437:      6(int) Load 2436
+            2436:     40(ptr) AccessChain 31(data) 115 33
+            2437:   17(ivec4) Load 2436
             2438:   17(ivec4) Load 19(ballot)
-            2439:      6(int) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2437 2438
-            2440:     90(ptr) AccessChain 31(data) 2435 33 35
+            2439:   17(ivec4) GroupNonUniformUMax 178 PartitionedExclusiveScanNV 2437 2438
+            2440:     40(ptr) AccessChain 31(data) 2435 33
                               Store 2440 2439
             2441:      6(int) Load 8(invocation)
-            2442:     40(ptr) AccessChain 31(data) 63 33
-            2443:   17(ivec4) Load 2442
-            2444:   96(ivec2) VectorShuffle 2443 2443 0 1
-            2445:   17(ivec4) Load 19(ballot)
-            2446:   96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2444 2445
-            2447:     40(ptr) AccessChain 31(data) 2441 33
-            2448:   17(ivec4) Load 2447
-            2449:   17(ivec4) VectorShuffle 2448 2446 4 5 2 3
-                              Store 2447 2449
-            2450:      6(int) Load 8(invocation)
-            2451:     40(ptr) AccessChain 31(data) 33 33
-            2452:   17(ivec4) Load 2451
-            2453:  103(ivec3) VectorShuffle 2452 2452 0 1 2
-            2454:   17(ivec4) Load 19(ballot)
-            2455:  103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2453 2454
-            2456:     40(ptr) AccessChain 31(data) 2450 33
-            2457:   17(ivec4) Load 2456
-            2458:   17(ivec4) VectorShuffle 2457 2455 4 5 6 3
-                              Store 2456 2458
-            2459:      6(int) Load 8(invocation)
-            2460:     40(ptr) AccessChain 31(data) 115 33
-            2461:   17(ivec4) Load 2460
-            2462:   17(ivec4) Load 19(ballot)
-            2463:   17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2461 2462
-            2464:     40(ptr) AccessChain 31(data) 2459 33
-                              Store 2464 2463
-            2465:      6(int) Load 8(invocation)
-            2466:     64(ptr) AccessChain 31(data) 34 63 35
-            2467:     24(int) Load 2466
-            2468:   144(bool) SLessThan 2467 34
-            2469:   17(ivec4) Load 19(ballot)
-            2470:   144(bool) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2468 2469
-            2471:     24(int) Select 2470 63 34
-            2472:     64(ptr) AccessChain 31(data) 2465 63 35
-                              Store 2472 2471
-            2473:      6(int) Load 8(invocation)
-            2474:     71(ptr) AccessChain 31(data) 63 63
-            2475:   25(ivec4) Load 2474
-            2476:   70(ivec2) VectorShuffle 2475 2475 0 1
-            2477:  152(bvec2) SLessThan 2476 727
+            2442:    116(ptr) AccessChain 31(data) 34 115 35
+            2443:26(float64_t) Load 2442
+            2444:   17(ivec4) Load 19(ballot)
+            2445:26(float64_t) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2443 2444
+            2446:    116(ptr) AccessChain 31(data) 2441 115 35
+                              Store 2446 2445
+            2447:      6(int) Load 8(invocation)
+            2448:    123(ptr) AccessChain 31(data) 63 115
+            2449: 27(f64vec4) Load 2448
+            2450:122(f64vec2) VectorShuffle 2449 2449 0 1
+            2451:   17(ivec4) Load 19(ballot)
+            2452:122(f64vec2) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2450 2451
+            2453:    116(ptr) AccessChain 31(data) 2447 115 35
+            2454:26(float64_t) CompositeExtract 2452 0
+                              Store 2453 2454
+            2455:    116(ptr) AccessChain 31(data) 2447 115 189
+            2456:26(float64_t) CompositeExtract 2452 1
+                              Store 2455 2456
+            2457:      6(int) Load 8(invocation)
+            2458:    123(ptr) AccessChain 31(data) 33 115
+            2459: 27(f64vec4) Load 2458
+            2460:130(f64vec3) VectorShuffle 2459 2459 0 1 2
+            2461:   17(ivec4) Load 19(ballot)
+            2462:130(f64vec3) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2460 2461
+            2463:    116(ptr) AccessChain 31(data) 2457 115 35
+            2464:26(float64_t) CompositeExtract 2462 0
+                              Store 2463 2464
+            2465:    116(ptr) AccessChain 31(data) 2457 115 189
+            2466:26(float64_t) CompositeExtract 2462 1
+                              Store 2465 2466
+            2467:    116(ptr) AccessChain 31(data) 2457 115 202
+            2468:26(float64_t) CompositeExtract 2462 2
+                              Store 2467 2468
+            2469:      6(int) Load 8(invocation)
+            2470:    123(ptr) AccessChain 31(data) 115 115
+            2471: 27(f64vec4) Load 2470
+            2472:   17(ivec4) Load 19(ballot)
+            2473: 27(f64vec4) GroupNonUniformFMax 178 PartitionedExclusiveScanNV 2471 2472
+            2474:    123(ptr) AccessChain 31(data) 2469 115
+                              Store 2474 2473
+            2475:      6(int) Load 8(invocation)
+            2476:     64(ptr) AccessChain 31(data) 34 63 35
+            2477:     24(int) Load 2476
             2478:   17(ivec4) Load 19(ballot)
-            2479:  152(bvec2) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2477 2478
-            2480:   70(ivec2) Select 2479 731 727
-            2481:     71(ptr) AccessChain 31(data) 2473 63
-            2482:   25(ivec4) Load 2481
-            2483:   25(ivec4) VectorShuffle 2482 2480 4 5 2 3
-                              Store 2481 2483
-            2484:      6(int) Load 8(invocation)
-            2485:     71(ptr) AccessChain 31(data) 63 63
-            2486:   25(ivec4) Load 2485
-            2487:   78(ivec3) VectorShuffle 2486 2486 0 1 2
-            2488:  161(bvec3) SLessThan 2487 740
-            2489:   17(ivec4) Load 19(ballot)
-            2490:  161(bvec3) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2488 2489
-            2491:   78(ivec3) Select 2490 744 740
-            2492:     71(ptr) AccessChain 31(data) 2484 63
+            2479:     24(int) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2477 2478
+            2480:     64(ptr) AccessChain 31(data) 2475 63 35
+                              Store 2480 2479
+            2481:      6(int) Load 8(invocation)
+            2482:     71(ptr) AccessChain 31(data) 63 63
+            2483:   25(ivec4) Load 2482
+            2484:   70(ivec2) VectorShuffle 2483 2483 0 1
+            2485:   17(ivec4) Load 19(ballot)
+            2486:   70(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2484 2485
+            2487:     64(ptr) AccessChain 31(data) 2481 63 35
+            2488:     24(int) CompositeExtract 2486 0
+                              Store 2487 2488
+            2489:     64(ptr) AccessChain 31(data) 2481 63 189
+            2490:     24(int) CompositeExtract 2486 1
+                              Store 2489 2490
+            2491:      6(int) Load 8(invocation)
+            2492:     71(ptr) AccessChain 31(data) 33 63
             2493:   25(ivec4) Load 2492
-            2494:   25(ivec4) VectorShuffle 2493 2491 4 5 6 3
-                              Store 2492 2494
-            2495:      6(int) Load 8(invocation)
-            2496:     71(ptr) AccessChain 31(data) 63 63
-            2497:   25(ivec4) Load 2496
-            2498:  169(bvec4) SLessThan 2497 752
-            2499:   17(ivec4) Load 19(ballot)
-            2500:  169(bvec4) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2498 2499
-            2501:   25(ivec4) Select 2500 756 752
-            2502:     71(ptr) AccessChain 31(data) 2495 63
-                              Store 2502 2501
+            2494:   78(ivec3) VectorShuffle 2493 2493 0 1 2
+            2495:   17(ivec4) Load 19(ballot)
+            2496:   78(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2494 2495
+            2497:     64(ptr) AccessChain 31(data) 2491 63 35
+            2498:     24(int) CompositeExtract 2496 0
+                              Store 2497 2498
+            2499:     64(ptr) AccessChain 31(data) 2491 63 189
+            2500:     24(int) CompositeExtract 2496 1
+                              Store 2499 2500
+            2501:     64(ptr) AccessChain 31(data) 2491 63 202
+            2502:     24(int) CompositeExtract 2496 2
+                              Store 2501 2502
+            2503:      6(int) Load 8(invocation)
+            2504:     71(ptr) AccessChain 31(data) 115 63
+            2505:   25(ivec4) Load 2504
+            2506:   17(ivec4) Load 19(ballot)
+            2507:   25(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2505 2506
+            2508:     71(ptr) AccessChain 31(data) 2503 63
+                              Store 2508 2507
+            2509:      6(int) Load 8(invocation)
+            2510:     90(ptr) AccessChain 31(data) 34 33 35
+            2511:      6(int) Load 2510
+            2512:   17(ivec4) Load 19(ballot)
+            2513:      6(int) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2511 2512
+            2514:     90(ptr) AccessChain 31(data) 2509 33 35
+                              Store 2514 2513
+            2515:      6(int) Load 8(invocation)
+            2516:     40(ptr) AccessChain 31(data) 63 33
+            2517:   17(ivec4) Load 2516
+            2518:   96(ivec2) VectorShuffle 2517 2517 0 1
+            2519:   17(ivec4) Load 19(ballot)
+            2520:   96(ivec2) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2518 2519
+            2521:     90(ptr) AccessChain 31(data) 2515 33 35
+            2522:      6(int) CompositeExtract 2520 0
+                              Store 2521 2522
+            2523:     90(ptr) AccessChain 31(data) 2515 33 189
+            2524:      6(int) CompositeExtract 2520 1
+                              Store 2523 2524
+            2525:      6(int) Load 8(invocation)
+            2526:     40(ptr) AccessChain 31(data) 33 33
+            2527:   17(ivec4) Load 2526
+            2528:  103(ivec3) VectorShuffle 2527 2527 0 1 2
+            2529:   17(ivec4) Load 19(ballot)
+            2530:  103(ivec3) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2528 2529
+            2531:     90(ptr) AccessChain 31(data) 2525 33 35
+            2532:      6(int) CompositeExtract 2530 0
+                              Store 2531 2532
+            2533:     90(ptr) AccessChain 31(data) 2525 33 189
+            2534:      6(int) CompositeExtract 2530 1
+                              Store 2533 2534
+            2535:     90(ptr) AccessChain 31(data) 2525 33 202
+            2536:      6(int) CompositeExtract 2530 2
+                              Store 2535 2536
+            2537:      6(int) Load 8(invocation)
+            2538:     40(ptr) AccessChain 31(data) 115 33
+            2539:   17(ivec4) Load 2538
+            2540:   17(ivec4) Load 19(ballot)
+            2541:   17(ivec4) GroupNonUniformBitwiseAnd 178 PartitionedExclusiveScanNV 2539 2540
+            2542:     40(ptr) AccessChain 31(data) 2537 33
+                              Store 2542 2541
+            2543:      6(int) Load 8(invocation)
+            2544:     64(ptr) AccessChain 31(data) 34 63 35
+            2545:     24(int) Load 2544
+            2546:   144(bool) SLessThan 2545 34
+            2547:   17(ivec4) Load 19(ballot)
+            2548:   144(bool) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2546 2547
+            2549:     24(int) Select 2548 63 34
+            2550:     64(ptr) AccessChain 31(data) 2543 63 35
+                              Store 2550 2549
+            2551:      6(int) Load 8(invocation)
+            2552:     71(ptr) AccessChain 31(data) 63 63
+            2553:   25(ivec4) Load 2552
+            2554:   70(ivec2) VectorShuffle 2553 2553 0 1
+            2555:  152(bvec2) SLessThan 2554 801
+            2556:   17(ivec4) Load 19(ballot)
+            2557:  152(bvec2) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2555 2556
+            2558:   70(ivec2) Select 2557 805 801
+            2559:     64(ptr) AccessChain 31(data) 2551 63 35
+            2560:     24(int) CompositeExtract 2558 0
+                              Store 2559 2560
+            2561:     64(ptr) AccessChain 31(data) 2551 63 189
+            2562:     24(int) CompositeExtract 2558 1
+                              Store 2561 2562
+            2563:      6(int) Load 8(invocation)
+            2564:     71(ptr) AccessChain 31(data) 63 63
+            2565:   25(ivec4) Load 2564
+            2566:   78(ivec3) VectorShuffle 2565 2565 0 1 2
+            2567:  161(bvec3) SLessThan 2566 815
+            2568:   17(ivec4) Load 19(ballot)
+            2569:  161(bvec3) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2567 2568
+            2570:   78(ivec3) Select 2569 819 815
+            2571:     64(ptr) AccessChain 31(data) 2563 63 35
+            2572:     24(int) CompositeExtract 2570 0
+                              Store 2571 2572
+            2573:     64(ptr) AccessChain 31(data) 2563 63 189
+            2574:     24(int) CompositeExtract 2570 1
+                              Store 2573 2574
+            2575:     64(ptr) AccessChain 31(data) 2563 63 202
+            2576:     24(int) CompositeExtract 2570 2
+                              Store 2575 2576
+            2577:      6(int) Load 8(invocation)
+            2578:     71(ptr) AccessChain 31(data) 63 63
+            2579:   25(ivec4) Load 2578
+            2580:  169(bvec4) SLessThan 2579 830
+            2581:   17(ivec4) Load 19(ballot)
+            2582:  169(bvec4) GroupNonUniformLogicalAnd 178 PartitionedExclusiveScanNV 2580 2581
+            2583:   25(ivec4) Select 2582 834 830
+            2584:     71(ptr) AccessChain 31(data) 2577 63
+                              Store 2584 2583
+            2585:      6(int) Load 8(invocation)
+            2586:     64(ptr) AccessChain 31(data) 34 63 35
+            2587:     24(int) Load 2586
+            2588:   17(ivec4) Load 19(ballot)
+            2589:     24(int) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2587 2588
+            2590:     64(ptr) AccessChain 31(data) 2585 63 35
+                              Store 2590 2589
+            2591:      6(int) Load 8(invocation)
+            2592:     71(ptr) AccessChain 31(data) 63 63
+            2593:   25(ivec4) Load 2592
+            2594:   70(ivec2) VectorShuffle 2593 2593 0 1
+            2595:   17(ivec4) Load 19(ballot)
+            2596:   70(ivec2) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2594 2595
+            2597:     64(ptr) AccessChain 31(data) 2591 63 35
+            2598:     24(int) CompositeExtract 2596 0
+                              Store 2597 2598
+            2599:     64(ptr) AccessChain 31(data) 2591 63 189
+            2600:     24(int) CompositeExtract 2596 1
+                              Store 2599 2600
+            2601:      6(int) Load 8(invocation)
+            2602:     71(ptr) AccessChain 31(data) 33 63
+            2603:   25(ivec4) Load 2602
+            2604:   78(ivec3) VectorShuffle 2603 2603 0 1 2
+            2605:   17(ivec4) Load 19(ballot)
+            2606:   78(ivec3) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2604 2605
+            2607:     64(ptr) AccessChain 31(data) 2601 63 35
+            2608:     24(int) CompositeExtract 2606 0
+                              Store 2607 2608
+            2609:     64(ptr) AccessChain 31(data) 2601 63 189
+            2610:     24(int) CompositeExtract 2606 1
+                              Store 2609 2610
+            2611:     64(ptr) AccessChain 31(data) 2601 63 202
+            2612:     24(int) CompositeExtract 2606 2
+                              Store 2611 2612
+            2613:      6(int) Load 8(invocation)
+            2614:     71(ptr) AccessChain 31(data) 115 63
+            2615:   25(ivec4) Load 2614
+            2616:   17(ivec4) Load 19(ballot)
+            2617:   25(ivec4) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2615 2616
+            2618:     71(ptr) AccessChain 31(data) 2613 63
+                              Store 2618 2617
+            2619:      6(int) Load 8(invocation)
+            2620:     90(ptr) AccessChain 31(data) 34 33 35
+            2621:      6(int) Load 2620
+            2622:   17(ivec4) Load 19(ballot)
+            2623:      6(int) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2621 2622
+            2624:     90(ptr) AccessChain 31(data) 2619 33 35
+                              Store 2624 2623
+            2625:      6(int) Load 8(invocation)
+            2626:     40(ptr) AccessChain 31(data) 63 33
+            2627:   17(ivec4) Load 2626
+            2628:   96(ivec2) VectorShuffle 2627 2627 0 1
+            2629:   17(ivec4) Load 19(ballot)
+            2630:   96(ivec2) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2628 2629
+            2631:     90(ptr) AccessChain 31(data) 2625 33 35
+            2632:      6(int) CompositeExtract 2630 0
+                              Store 2631 2632
+            2633:     90(ptr) AccessChain 31(data) 2625 33 189
+            2634:      6(int) CompositeExtract 2630 1
+                              Store 2633 2634
+            2635:      6(int) Load 8(invocation)
+            2636:     40(ptr) AccessChain 31(data) 33 33
+            2637:   17(ivec4) Load 2636
+            2638:  103(ivec3) VectorShuffle 2637 2637 0 1 2
+            2639:   17(ivec4) Load 19(ballot)
+            2640:  103(ivec3) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2638 2639
+            2641:     90(ptr) AccessChain 31(data) 2635 33 35
+            2642:      6(int) CompositeExtract 2640 0
+                              Store 2641 2642
+            2643:     90(ptr) AccessChain 31(data) 2635 33 189
+            2644:      6(int) CompositeExtract 2640 1
+                              Store 2643 2644
+            2645:     90(ptr) AccessChain 31(data) 2635 33 202
+            2646:      6(int) CompositeExtract 2640 2
+                              Store 2645 2646
+            2647:      6(int) Load 8(invocation)
+            2648:     40(ptr) AccessChain 31(data) 115 33
+            2649:   17(ivec4) Load 2648
+            2650:   17(ivec4) Load 19(ballot)
+            2651:   17(ivec4) GroupNonUniformBitwiseOr 178 PartitionedExclusiveScanNV 2649 2650
+            2652:     40(ptr) AccessChain 31(data) 2647 33
+                              Store 2652 2651
+            2653:      6(int) Load 8(invocation)
+            2654:     64(ptr) AccessChain 31(data) 34 63 35
+            2655:     24(int) Load 2654
+            2656:   144(bool) SLessThan 2655 34
+            2657:   17(ivec4) Load 19(ballot)
+            2658:   144(bool) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2656 2657
+            2659:     24(int) Select 2658 63 34
+            2660:     64(ptr) AccessChain 31(data) 2653 63 35
+                              Store 2660 2659
+            2661:      6(int) Load 8(invocation)
+            2662:     71(ptr) AccessChain 31(data) 63 63
+            2663:   25(ivec4) Load 2662
+            2664:   70(ivec2) VectorShuffle 2663 2663 0 1
+            2665:  152(bvec2) SLessThan 2664 801
+            2666:   17(ivec4) Load 19(ballot)
+            2667:  152(bvec2) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2665 2666
+            2668:   70(ivec2) Select 2667 805 801
+            2669:     64(ptr) AccessChain 31(data) 2661 63 35
+            2670:     24(int) CompositeExtract 2668 0
+                              Store 2669 2670
+            2671:     64(ptr) AccessChain 31(data) 2661 63 189
+            2672:     24(int) CompositeExtract 2668 1
+                              Store 2671 2672
+            2673:      6(int) Load 8(invocation)
+            2674:     71(ptr) AccessChain 31(data) 63 63
+            2675:   25(ivec4) Load 2674
+            2676:   78(ivec3) VectorShuffle 2675 2675 0 1 2
+            2677:  161(bvec3) SLessThan 2676 815
+            2678:   17(ivec4) Load 19(ballot)
+            2679:  161(bvec3) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2677 2678
+            2680:   78(ivec3) Select 2679 819 815
+            2681:     64(ptr) AccessChain 31(data) 2673 63 35
+            2682:     24(int) CompositeExtract 2680 0
+                              Store 2681 2682
+            2683:     64(ptr) AccessChain 31(data) 2673 63 189
+            2684:     24(int) CompositeExtract 2680 1
+                              Store 2683 2684
+            2685:     64(ptr) AccessChain 31(data) 2673 63 202
+            2686:     24(int) CompositeExtract 2680 2
+                              Store 2685 2686
+            2687:      6(int) Load 8(invocation)
+            2688:     71(ptr) AccessChain 31(data) 63 63
+            2689:   25(ivec4) Load 2688
+            2690:  169(bvec4) SLessThan 2689 830
+            2691:   17(ivec4) Load 19(ballot)
+            2692:  169(bvec4) GroupNonUniformLogicalOr 178 PartitionedExclusiveScanNV 2690 2691
+            2693:   25(ivec4) Select 2692 834 830
+            2694:     71(ptr) AccessChain 31(data) 2687 63
+                              Store 2694 2693
+            2695:      6(int) Load 8(invocation)
+            2696:     64(ptr) AccessChain 31(data) 34 63 35
+            2697:     24(int) Load 2696
+            2698:   17(ivec4) Load 19(ballot)
+            2699:     24(int) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2697 2698
+            2700:     64(ptr) AccessChain 31(data) 2695 63 35
+                              Store 2700 2699
+            2701:      6(int) Load 8(invocation)
+            2702:     71(ptr) AccessChain 31(data) 63 63
+            2703:   25(ivec4) Load 2702
+            2704:   70(ivec2) VectorShuffle 2703 2703 0 1
+            2705:   17(ivec4) Load 19(ballot)
+            2706:   70(ivec2) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2704 2705
+            2707:     64(ptr) AccessChain 31(data) 2701 63 35
+            2708:     24(int) CompositeExtract 2706 0
+                              Store 2707 2708
+            2709:     64(ptr) AccessChain 31(data) 2701 63 189
+            2710:     24(int) CompositeExtract 2706 1
+                              Store 2709 2710
+            2711:      6(int) Load 8(invocation)
+            2712:     71(ptr) AccessChain 31(data) 33 63
+            2713:   25(ivec4) Load 2712
+            2714:   78(ivec3) VectorShuffle 2713 2713 0 1 2
+            2715:   17(ivec4) Load 19(ballot)
+            2716:   78(ivec3) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2714 2715
+            2717:     64(ptr) AccessChain 31(data) 2711 63 35
+            2718:     24(int) CompositeExtract 2716 0
+                              Store 2717 2718
+            2719:     64(ptr) AccessChain 31(data) 2711 63 189
+            2720:     24(int) CompositeExtract 2716 1
+                              Store 2719 2720
+            2721:     64(ptr) AccessChain 31(data) 2711 63 202
+            2722:     24(int) CompositeExtract 2716 2
+                              Store 2721 2722
+            2723:      6(int) Load 8(invocation)
+            2724:     71(ptr) AccessChain 31(data) 115 63
+            2725:   25(ivec4) Load 2724
+            2726:   17(ivec4) Load 19(ballot)
+            2727:   25(ivec4) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2725 2726
+            2728:     71(ptr) AccessChain 31(data) 2723 63
+                              Store 2728 2727
+            2729:      6(int) Load 8(invocation)
+            2730:     90(ptr) AccessChain 31(data) 34 33 35
+            2731:      6(int) Load 2730
+            2732:   17(ivec4) Load 19(ballot)
+            2733:      6(int) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2731 2732
+            2734:     90(ptr) AccessChain 31(data) 2729 33 35
+                              Store 2734 2733
+            2735:      6(int) Load 8(invocation)
+            2736:     40(ptr) AccessChain 31(data) 63 33
+            2737:   17(ivec4) Load 2736
+            2738:   96(ivec2) VectorShuffle 2737 2737 0 1
+            2739:   17(ivec4) Load 19(ballot)
+            2740:   96(ivec2) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2738 2739
+            2741:     90(ptr) AccessChain 31(data) 2735 33 35
+            2742:      6(int) CompositeExtract 2740 0
+                              Store 2741 2742
+            2743:     90(ptr) AccessChain 31(data) 2735 33 189
+            2744:      6(int) CompositeExtract 2740 1
+                              Store 2743 2744
+            2745:      6(int) Load 8(invocation)
+            2746:     40(ptr) AccessChain 31(data) 33 33
+            2747:   17(ivec4) Load 2746
+            2748:  103(ivec3) VectorShuffle 2747 2747 0 1 2
+            2749:   17(ivec4) Load 19(ballot)
+            2750:  103(ivec3) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2748 2749
+            2751:     90(ptr) AccessChain 31(data) 2745 33 35
+            2752:      6(int) CompositeExtract 2750 0
+                              Store 2751 2752
+            2753:     90(ptr) AccessChain 31(data) 2745 33 189
+            2754:      6(int) CompositeExtract 2750 1
+                              Store 2753 2754
+            2755:     90(ptr) AccessChain 31(data) 2745 33 202
+            2756:      6(int) CompositeExtract 2750 2
+                              Store 2755 2756
+            2757:      6(int) Load 8(invocation)
+            2758:     40(ptr) AccessChain 31(data) 115 33
+            2759:   17(ivec4) Load 2758
+            2760:   17(ivec4) Load 19(ballot)
+            2761:   17(ivec4) GroupNonUniformBitwiseXor 178 PartitionedExclusiveScanNV 2759 2760
+            2762:     40(ptr) AccessChain 31(data) 2757 33
+                              Store 2762 2761
+            2763:      6(int) Load 8(invocation)
+            2764:     64(ptr) AccessChain 31(data) 34 63 35
+            2765:     24(int) Load 2764
+            2766:   144(bool) SLessThan 2765 34
+            2767:   17(ivec4) Load 19(ballot)
+            2768:   144(bool) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2766 2767
+            2769:     24(int) Select 2768 63 34
+            2770:     64(ptr) AccessChain 31(data) 2763 63 35
+                              Store 2770 2769
+            2771:      6(int) Load 8(invocation)
+            2772:     71(ptr) AccessChain 31(data) 63 63
+            2773:   25(ivec4) Load 2772
+            2774:   70(ivec2) VectorShuffle 2773 2773 0 1
+            2775:  152(bvec2) SLessThan 2774 801
+            2776:   17(ivec4) Load 19(ballot)
+            2777:  152(bvec2) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2775 2776
+            2778:   70(ivec2) Select 2777 805 801
+            2779:     64(ptr) AccessChain 31(data) 2771 63 35
+            2780:     24(int) CompositeExtract 2778 0
+                              Store 2779 2780
+            2781:     64(ptr) AccessChain 31(data) 2771 63 189
+            2782:     24(int) CompositeExtract 2778 1
+                              Store 2781 2782
+            2783:      6(int) Load 8(invocation)
+            2784:     71(ptr) AccessChain 31(data) 63 63
+            2785:   25(ivec4) Load 2784
+            2786:   78(ivec3) VectorShuffle 2785 2785 0 1 2
+            2787:  161(bvec3) SLessThan 2786 815
+            2788:   17(ivec4) Load 19(ballot)
+            2789:  161(bvec3) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2787 2788
+            2790:   78(ivec3) Select 2789 819 815
+            2791:     64(ptr) AccessChain 31(data) 2783 63 35
+            2792:     24(int) CompositeExtract 2790 0
+                              Store 2791 2792
+            2793:     64(ptr) AccessChain 31(data) 2783 63 189
+            2794:     24(int) CompositeExtract 2790 1
+                              Store 2793 2794
+            2795:     64(ptr) AccessChain 31(data) 2783 63 202
+            2796:     24(int) CompositeExtract 2790 2
+                              Store 2795 2796
+            2797:      6(int) Load 8(invocation)
+            2798:     71(ptr) AccessChain 31(data) 63 63
+            2799:   25(ivec4) Load 2798
+            2800:  169(bvec4) SLessThan 2799 830
+            2801:   17(ivec4) Load 19(ballot)
+            2802:  169(bvec4) GroupNonUniformLogicalXor 178 PartitionedExclusiveScanNV 2800 2801
+            2803:   25(ivec4) Select 2802 834 830
+            2804:     71(ptr) AccessChain 31(data) 2797 63
+                              Store 2804 2803
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.subgroupQuad.comp.out b/Test/baseResults/spv.subgroupQuad.comp.out
index 644fa72..143d01d 100644
--- a/Test/baseResults/spv.subgroupQuad.comp.out
+++ b/Test/baseResults/spv.subgroupQuad.comp.out
@@ -1,7 +1,7 @@
 spv.subgroupQuad.comp
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 616
+// Id's are bound by 696
 
                               Capability Shader
                               Capability Float64
@@ -39,7 +39,7 @@
                               Decorate 24(Buffers) Block
                               Decorate 27(data) DescriptorSet 0
                               Decorate 27(data) Binding 0
-                              Decorate 615 BuiltIn WorkgroupSize
+                              Decorate 695 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -67,34 +67,34 @@
               39:     19(int) Constant 1
               40:             TypeVector 17(float) 2
               41:             TypePointer StorageBuffer 18(fvec4)
-              50:     19(int) Constant 2
-              51:             TypeVector 17(float) 3
-              60:     19(int) Constant 3
-              66:             TypePointer StorageBuffer 19(int)
-              72:             TypeVector 19(int) 2
-              73:             TypePointer StorageBuffer 20(ivec4)
-              82:             TypeVector 19(int) 3
-              96:             TypePointer StorageBuffer 6(int)
-             102:             TypeVector 6(int) 2
-             103:             TypePointer StorageBuffer 21(ivec4)
-             112:             TypeVector 6(int) 3
-             126:             TypePointer StorageBuffer 22(float64_t)
-             132:             TypeVector 22(float64_t) 2
-             133:             TypePointer StorageBuffer 23(f64vec4)
-             142:             TypeVector 22(float64_t) 3
-             158:             TypeBool
-             167:   72(ivec2) ConstantComposite 29 29
-             168:             TypeVector 158(bool) 2
-             171:   72(ivec2) ConstantComposite 39 39
-             180:   82(ivec3) ConstantComposite 29 29 29
-             181:             TypeVector 158(bool) 3
-             184:   82(ivec3) ConstantComposite 39 39 39
-             192:   20(ivec4) ConstantComposite 29 29 29 29
-             193:             TypeVector 158(bool) 4
-             196:   20(ivec4) ConstantComposite 39 39 39 39
-             478:      6(int) Constant 2
-             614:      6(int) Constant 8
-             615:  112(ivec3) ConstantComposite 614 34 34
+              51:     19(int) Constant 2
+              52:             TypeVector 17(float) 3
+              61:      6(int) Constant 2
+              65:     19(int) Constant 3
+              71:             TypePointer StorageBuffer 19(int)
+              77:             TypeVector 19(int) 2
+              78:             TypePointer StorageBuffer 20(ivec4)
+              88:             TypeVector 19(int) 3
+             105:             TypePointer StorageBuffer 6(int)
+             111:             TypeVector 6(int) 2
+             112:             TypePointer StorageBuffer 21(ivec4)
+             122:             TypeVector 6(int) 3
+             139:             TypePointer StorageBuffer 22(float64_t)
+             145:             TypeVector 22(float64_t) 2
+             146:             TypePointer StorageBuffer 23(f64vec4)
+             156:             TypeVector 22(float64_t) 3
+             175:             TypeBool
+             184:   77(ivec2) ConstantComposite 29 29
+             185:             TypeVector 175(bool) 2
+             188:   77(ivec2) ConstantComposite 39 39
+             198:   88(ivec3) ConstantComposite 29 29 29
+             199:             TypeVector 175(bool) 3
+             202:   88(ivec3) ConstantComposite 39 39 39
+             213:   20(ivec4) ConstantComposite 29 29 29 29
+             214:             TypeVector 175(bool) 4
+             217:   20(ivec4) ConstantComposite 39 39 39 39
+             694:      6(int) Constant 8
+             695:  122(ivec3) ConstantComposite 694 34 34
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -114,626 +114,766 @@
               43:   18(fvec4) Load 42
               44:   40(fvec2) VectorShuffle 43 43 0 1
               45:   40(fvec2) GroupNonUniformQuadBroadcast 35 44 34
-              46:     41(ptr) AccessChain 27(data) 38 29
-              47:   18(fvec4) Load 46
-              48:   18(fvec4) VectorShuffle 47 45 4 5 2 3
-                              Store 46 48
-              49:      6(int) Load 8(invocation)
-              52:     41(ptr) AccessChain 27(data) 50 29
-              53:   18(fvec4) Load 52
-              54:   51(fvec3) VectorShuffle 53 53 0 1 2
-              55:   51(fvec3) GroupNonUniformQuadBroadcast 35 54 34
-              56:     41(ptr) AccessChain 27(data) 49 29
-              57:   18(fvec4) Load 56
-              58:   18(fvec4) VectorShuffle 57 55 4 5 6 3
-                              Store 56 58
-              59:      6(int) Load 8(invocation)
-              61:     41(ptr) AccessChain 27(data) 60 29
-              62:   18(fvec4) Load 61
-              63:   18(fvec4) GroupNonUniformQuadBroadcast 35 62 34
-              64:     41(ptr) AccessChain 27(data) 59 29
-                              Store 64 63
-              65:      6(int) Load 8(invocation)
-              67:     66(ptr) AccessChain 27(data) 29 39 30
-              68:     19(int) Load 67
-              69:     19(int) GroupNonUniformQuadBroadcast 35 68 34
-              70:     66(ptr) AccessChain 27(data) 65 39 30
-                              Store 70 69
-              71:      6(int) Load 8(invocation)
-              74:     73(ptr) AccessChain 27(data) 39 39
-              75:   20(ivec4) Load 74
-              76:   72(ivec2) VectorShuffle 75 75 0 1
-              77:   72(ivec2) GroupNonUniformQuadBroadcast 35 76 34
-              78:     73(ptr) AccessChain 27(data) 71 39
-              79:   20(ivec4) Load 78
-              80:   20(ivec4) VectorShuffle 79 77 4 5 2 3
-                              Store 78 80
-              81:      6(int) Load 8(invocation)
-              83:     73(ptr) AccessChain 27(data) 50 39
-              84:   20(ivec4) Load 83
-              85:   82(ivec3) VectorShuffle 84 84 0 1 2
-              86:   82(ivec3) GroupNonUniformQuadBroadcast 35 85 34
-              87:     73(ptr) AccessChain 27(data) 81 39
-              88:   20(ivec4) Load 87
-              89:   20(ivec4) VectorShuffle 88 86 4 5 6 3
-                              Store 87 89
-              90:      6(int) Load 8(invocation)
-              91:     73(ptr) AccessChain 27(data) 60 39
-              92:   20(ivec4) Load 91
-              93:   20(ivec4) GroupNonUniformQuadBroadcast 35 92 34
-              94:     73(ptr) AccessChain 27(data) 90 39
-                              Store 94 93
-              95:      6(int) Load 8(invocation)
-              97:     96(ptr) AccessChain 27(data) 29 50 30
-              98:      6(int) Load 97
-              99:      6(int) GroupNonUniformQuadBroadcast 35 98 34
-             100:     96(ptr) AccessChain 27(data) 95 50 30
-                              Store 100 99
-             101:      6(int) Load 8(invocation)
-             104:    103(ptr) AccessChain 27(data) 39 50
-             105:   21(ivec4) Load 104
-             106:  102(ivec2) VectorShuffle 105 105 0 1
-             107:  102(ivec2) GroupNonUniformQuadBroadcast 35 106 34
-             108:    103(ptr) AccessChain 27(data) 101 50
-             109:   21(ivec4) Load 108
-             110:   21(ivec4) VectorShuffle 109 107 4 5 2 3
-                              Store 108 110
-             111:      6(int) Load 8(invocation)
-             113:    103(ptr) AccessChain 27(data) 50 50
+              46:     31(ptr) AccessChain 27(data) 38 29 30
+              47:   17(float) CompositeExtract 45 0
+                              Store 46 47
+              48:     31(ptr) AccessChain 27(data) 38 29 34
+              49:   17(float) CompositeExtract 45 1
+                              Store 48 49
+              50:      6(int) Load 8(invocation)
+              53:     41(ptr) AccessChain 27(data) 51 29
+              54:   18(fvec4) Load 53
+              55:   52(fvec3) VectorShuffle 54 54 0 1 2
+              56:   52(fvec3) GroupNonUniformQuadBroadcast 35 55 34
+              57:     31(ptr) AccessChain 27(data) 50 29 30
+              58:   17(float) CompositeExtract 56 0
+                              Store 57 58
+              59:     31(ptr) AccessChain 27(data) 50 29 34
+              60:   17(float) CompositeExtract 56 1
+                              Store 59 60
+              62:     31(ptr) AccessChain 27(data) 50 29 61
+              63:   17(float) CompositeExtract 56 2
+                              Store 62 63
+              64:      6(int) Load 8(invocation)
+              66:     41(ptr) AccessChain 27(data) 65 29
+              67:   18(fvec4) Load 66
+              68:   18(fvec4) GroupNonUniformQuadBroadcast 35 67 34
+              69:     41(ptr) AccessChain 27(data) 64 29
+                              Store 69 68
+              70:      6(int) Load 8(invocation)
+              72:     71(ptr) AccessChain 27(data) 29 39 30
+              73:     19(int) Load 72
+              74:     19(int) GroupNonUniformQuadBroadcast 35 73 34
+              75:     71(ptr) AccessChain 27(data) 70 39 30
+                              Store 75 74
+              76:      6(int) Load 8(invocation)
+              79:     78(ptr) AccessChain 27(data) 39 39
+              80:   20(ivec4) Load 79
+              81:   77(ivec2) VectorShuffle 80 80 0 1
+              82:   77(ivec2) GroupNonUniformQuadBroadcast 35 81 34
+              83:     71(ptr) AccessChain 27(data) 76 39 30
+              84:     19(int) CompositeExtract 82 0
+                              Store 83 84
+              85:     71(ptr) AccessChain 27(data) 76 39 34
+              86:     19(int) CompositeExtract 82 1
+                              Store 85 86
+              87:      6(int) Load 8(invocation)
+              89:     78(ptr) AccessChain 27(data) 51 39
+              90:   20(ivec4) Load 89
+              91:   88(ivec3) VectorShuffle 90 90 0 1 2
+              92:   88(ivec3) GroupNonUniformQuadBroadcast 35 91 34
+              93:     71(ptr) AccessChain 27(data) 87 39 30
+              94:     19(int) CompositeExtract 92 0
+                              Store 93 94
+              95:     71(ptr) AccessChain 27(data) 87 39 34
+              96:     19(int) CompositeExtract 92 1
+                              Store 95 96
+              97:     71(ptr) AccessChain 27(data) 87 39 61
+              98:     19(int) CompositeExtract 92 2
+                              Store 97 98
+              99:      6(int) Load 8(invocation)
+             100:     78(ptr) AccessChain 27(data) 65 39
+             101:   20(ivec4) Load 100
+             102:   20(ivec4) GroupNonUniformQuadBroadcast 35 101 34
+             103:     78(ptr) AccessChain 27(data) 99 39
+                              Store 103 102
+             104:      6(int) Load 8(invocation)
+             106:    105(ptr) AccessChain 27(data) 29 51 30
+             107:      6(int) Load 106
+             108:      6(int) GroupNonUniformQuadBroadcast 35 107 34
+             109:    105(ptr) AccessChain 27(data) 104 51 30
+                              Store 109 108
+             110:      6(int) Load 8(invocation)
+             113:    112(ptr) AccessChain 27(data) 39 51
              114:   21(ivec4) Load 113
-             115:  112(ivec3) VectorShuffle 114 114 0 1 2
-             116:  112(ivec3) GroupNonUniformQuadBroadcast 35 115 34
-             117:    103(ptr) AccessChain 27(data) 111 50
-             118:   21(ivec4) Load 117
-             119:   21(ivec4) VectorShuffle 118 116 4 5 6 3
-                              Store 117 119
-             120:      6(int) Load 8(invocation)
-             121:    103(ptr) AccessChain 27(data) 60 50
-             122:   21(ivec4) Load 121
-             123:   21(ivec4) GroupNonUniformQuadBroadcast 35 122 34
-             124:    103(ptr) AccessChain 27(data) 120 50
-                              Store 124 123
-             125:      6(int) Load 8(invocation)
-             127:    126(ptr) AccessChain 27(data) 29 60 30
-             128:22(float64_t) Load 127
-             129:22(float64_t) GroupNonUniformQuadBroadcast 35 128 34
-             130:    126(ptr) AccessChain 27(data) 125 60 30
-                              Store 130 129
-             131:      6(int) Load 8(invocation)
-             134:    133(ptr) AccessChain 27(data) 39 60
-             135: 23(f64vec4) Load 134
-             136:132(f64vec2) VectorShuffle 135 135 0 1
-             137:132(f64vec2) GroupNonUniformQuadBroadcast 35 136 34
-             138:    133(ptr) AccessChain 27(data) 131 60
-             139: 23(f64vec4) Load 138
-             140: 23(f64vec4) VectorShuffle 139 137 4 5 2 3
-                              Store 138 140
-             141:      6(int) Load 8(invocation)
-             143:    133(ptr) AccessChain 27(data) 50 60
-             144: 23(f64vec4) Load 143
-             145:142(f64vec3) VectorShuffle 144 144 0 1 2
-             146:142(f64vec3) GroupNonUniformQuadBroadcast 35 145 34
-             147:    133(ptr) AccessChain 27(data) 141 60
+             115:  111(ivec2) VectorShuffle 114 114 0 1
+             116:  111(ivec2) GroupNonUniformQuadBroadcast 35 115 34
+             117:    105(ptr) AccessChain 27(data) 110 51 30
+             118:      6(int) CompositeExtract 116 0
+                              Store 117 118
+             119:    105(ptr) AccessChain 27(data) 110 51 34
+             120:      6(int) CompositeExtract 116 1
+                              Store 119 120
+             121:      6(int) Load 8(invocation)
+             123:    112(ptr) AccessChain 27(data) 51 51
+             124:   21(ivec4) Load 123
+             125:  122(ivec3) VectorShuffle 124 124 0 1 2
+             126:  122(ivec3) GroupNonUniformQuadBroadcast 35 125 34
+             127:    105(ptr) AccessChain 27(data) 121 51 30
+             128:      6(int) CompositeExtract 126 0
+                              Store 127 128
+             129:    105(ptr) AccessChain 27(data) 121 51 34
+             130:      6(int) CompositeExtract 126 1
+                              Store 129 130
+             131:    105(ptr) AccessChain 27(data) 121 51 61
+             132:      6(int) CompositeExtract 126 2
+                              Store 131 132
+             133:      6(int) Load 8(invocation)
+             134:    112(ptr) AccessChain 27(data) 65 51
+             135:   21(ivec4) Load 134
+             136:   21(ivec4) GroupNonUniformQuadBroadcast 35 135 34
+             137:    112(ptr) AccessChain 27(data) 133 51
+                              Store 137 136
+             138:      6(int) Load 8(invocation)
+             140:    139(ptr) AccessChain 27(data) 29 65 30
+             141:22(float64_t) Load 140
+             142:22(float64_t) GroupNonUniformQuadBroadcast 35 141 34
+             143:    139(ptr) AccessChain 27(data) 138 65 30
+                              Store 143 142
+             144:      6(int) Load 8(invocation)
+             147:    146(ptr) AccessChain 27(data) 39 65
              148: 23(f64vec4) Load 147
-             149: 23(f64vec4) VectorShuffle 148 146 4 5 6 3
-                              Store 147 149
-             150:      6(int) Load 8(invocation)
-             151:    133(ptr) AccessChain 27(data) 60 60
-             152: 23(f64vec4) Load 151
-             153: 23(f64vec4) GroupNonUniformQuadBroadcast 35 152 34
-             154:    133(ptr) AccessChain 27(data) 150 60
-                              Store 154 153
+             149:145(f64vec2) VectorShuffle 148 148 0 1
+             150:145(f64vec2) GroupNonUniformQuadBroadcast 35 149 34
+             151:    139(ptr) AccessChain 27(data) 144 65 30
+             152:22(float64_t) CompositeExtract 150 0
+                              Store 151 152
+             153:    139(ptr) AccessChain 27(data) 144 65 34
+             154:22(float64_t) CompositeExtract 150 1
+                              Store 153 154
              155:      6(int) Load 8(invocation)
-             156:     66(ptr) AccessChain 27(data) 29 39 30
-             157:     19(int) Load 156
-             159:   158(bool) SLessThan 157 29
-             160:   158(bool) GroupNonUniformQuadBroadcast 35 159 34
-             161:     19(int) Select 160 39 29
-             162:     66(ptr) AccessChain 27(data) 155 39 30
-                              Store 162 161
-             163:      6(int) Load 8(invocation)
-             164:     73(ptr) AccessChain 27(data) 39 39
-             165:   20(ivec4) Load 164
-             166:   72(ivec2) VectorShuffle 165 165 0 1
-             169:  168(bvec2) SLessThan 166 167
-             170:  168(bvec2) GroupNonUniformQuadBroadcast 35 169 34
-             172:   72(ivec2) Select 170 171 167
-             173:     73(ptr) AccessChain 27(data) 163 39
-             174:   20(ivec4) Load 173
-             175:   20(ivec4) VectorShuffle 174 172 4 5 2 3
-                              Store 173 175
-             176:      6(int) Load 8(invocation)
-             177:     73(ptr) AccessChain 27(data) 39 39
-             178:   20(ivec4) Load 177
-             179:   82(ivec3) VectorShuffle 178 178 0 1 2
-             182:  181(bvec3) SLessThan 179 180
-             183:  181(bvec3) GroupNonUniformQuadBroadcast 35 182 34
-             185:   82(ivec3) Select 183 184 180
-             186:     73(ptr) AccessChain 27(data) 176 39
-             187:   20(ivec4) Load 186
-             188:   20(ivec4) VectorShuffle 187 185 4 5 6 3
-                              Store 186 188
-             189:      6(int) Load 8(invocation)
-             190:     73(ptr) AccessChain 27(data) 39 39
-             191:   20(ivec4) Load 190
-             194:  193(bvec4) SLessThan 191 192
-             195:  193(bvec4) GroupNonUniformQuadBroadcast 35 194 34
-             197:   20(ivec4) Select 195 196 192
-             198:     73(ptr) AccessChain 27(data) 189 39
-                              Store 198 197
-             199:      6(int) Load 8(invocation)
-             200:     31(ptr) AccessChain 27(data) 29 29 30
-             201:   17(float) Load 200
-             202:   17(float) GroupNonUniformQuadSwap 35 201 30
-             203:     31(ptr) AccessChain 27(data) 199 29 30
-                              Store 203 202
-             204:      6(int) Load 8(invocation)
-             205:     41(ptr) AccessChain 27(data) 39 29
-             206:   18(fvec4) Load 205
-             207:   40(fvec2) VectorShuffle 206 206 0 1
-             208:   40(fvec2) GroupNonUniformQuadSwap 35 207 30
-             209:     41(ptr) AccessChain 27(data) 204 29
-             210:   18(fvec4) Load 209
-             211:   18(fvec4) VectorShuffle 210 208 4 5 2 3
-                              Store 209 211
-             212:      6(int) Load 8(invocation)
-             213:     41(ptr) AccessChain 27(data) 50 29
-             214:   18(fvec4) Load 213
-             215:   51(fvec3) VectorShuffle 214 214 0 1 2
-             216:   51(fvec3) GroupNonUniformQuadSwap 35 215 30
-             217:     41(ptr) AccessChain 27(data) 212 29
-             218:   18(fvec4) Load 217
-             219:   18(fvec4) VectorShuffle 218 216 4 5 6 3
-                              Store 217 219
+             157:    146(ptr) AccessChain 27(data) 51 65
+             158: 23(f64vec4) Load 157
+             159:156(f64vec3) VectorShuffle 158 158 0 1 2
+             160:156(f64vec3) GroupNonUniformQuadBroadcast 35 159 34
+             161:    139(ptr) AccessChain 27(data) 155 65 30
+             162:22(float64_t) CompositeExtract 160 0
+                              Store 161 162
+             163:    139(ptr) AccessChain 27(data) 155 65 34
+             164:22(float64_t) CompositeExtract 160 1
+                              Store 163 164
+             165:    139(ptr) AccessChain 27(data) 155 65 61
+             166:22(float64_t) CompositeExtract 160 2
+                              Store 165 166
+             167:      6(int) Load 8(invocation)
+             168:    146(ptr) AccessChain 27(data) 65 65
+             169: 23(f64vec4) Load 168
+             170: 23(f64vec4) GroupNonUniformQuadBroadcast 35 169 34
+             171:    146(ptr) AccessChain 27(data) 167 65
+                              Store 171 170
+             172:      6(int) Load 8(invocation)
+             173:     71(ptr) AccessChain 27(data) 29 39 30
+             174:     19(int) Load 173
+             176:   175(bool) SLessThan 174 29
+             177:   175(bool) GroupNonUniformQuadBroadcast 35 176 34
+             178:     19(int) Select 177 39 29
+             179:     71(ptr) AccessChain 27(data) 172 39 30
+                              Store 179 178
+             180:      6(int) Load 8(invocation)
+             181:     78(ptr) AccessChain 27(data) 39 39
+             182:   20(ivec4) Load 181
+             183:   77(ivec2) VectorShuffle 182 182 0 1
+             186:  185(bvec2) SLessThan 183 184
+             187:  185(bvec2) GroupNonUniformQuadBroadcast 35 186 34
+             189:   77(ivec2) Select 187 188 184
+             190:     71(ptr) AccessChain 27(data) 180 39 30
+             191:     19(int) CompositeExtract 189 0
+                              Store 190 191
+             192:     71(ptr) AccessChain 27(data) 180 39 34
+             193:     19(int) CompositeExtract 189 1
+                              Store 192 193
+             194:      6(int) Load 8(invocation)
+             195:     78(ptr) AccessChain 27(data) 39 39
+             196:   20(ivec4) Load 195
+             197:   88(ivec3) VectorShuffle 196 196 0 1 2
+             200:  199(bvec3) SLessThan 197 198
+             201:  199(bvec3) GroupNonUniformQuadBroadcast 35 200 34
+             203:   88(ivec3) Select 201 202 198
+             204:     71(ptr) AccessChain 27(data) 194 39 30
+             205:     19(int) CompositeExtract 203 0
+                              Store 204 205
+             206:     71(ptr) AccessChain 27(data) 194 39 34
+             207:     19(int) CompositeExtract 203 1
+                              Store 206 207
+             208:     71(ptr) AccessChain 27(data) 194 39 61
+             209:     19(int) CompositeExtract 203 2
+                              Store 208 209
+             210:      6(int) Load 8(invocation)
+             211:     78(ptr) AccessChain 27(data) 39 39
+             212:   20(ivec4) Load 211
+             215:  214(bvec4) SLessThan 212 213
+             216:  214(bvec4) GroupNonUniformQuadBroadcast 35 215 34
+             218:   20(ivec4) Select 216 217 213
+             219:     78(ptr) AccessChain 27(data) 210 39
+                              Store 219 218
              220:      6(int) Load 8(invocation)
-             221:     41(ptr) AccessChain 27(data) 60 29
-             222:   18(fvec4) Load 221
-             223:   18(fvec4) GroupNonUniformQuadSwap 35 222 30
-             224:     41(ptr) AccessChain 27(data) 220 29
+             221:     31(ptr) AccessChain 27(data) 29 29 30
+             222:   17(float) Load 221
+             223:   17(float) GroupNonUniformQuadSwap 35 222 30
+             224:     31(ptr) AccessChain 27(data) 220 29 30
                               Store 224 223
              225:      6(int) Load 8(invocation)
-             226:     66(ptr) AccessChain 27(data) 29 39 30
-             227:     19(int) Load 226
-             228:     19(int) GroupNonUniformQuadSwap 35 227 30
-             229:     66(ptr) AccessChain 27(data) 225 39 30
-                              Store 229 228
-             230:      6(int) Load 8(invocation)
-             231:     73(ptr) AccessChain 27(data) 39 39
-             232:   20(ivec4) Load 231
-             233:   72(ivec2) VectorShuffle 232 232 0 1
-             234:   72(ivec2) GroupNonUniformQuadSwap 35 233 30
-             235:     73(ptr) AccessChain 27(data) 230 39
-             236:   20(ivec4) Load 235
-             237:   20(ivec4) VectorShuffle 236 234 4 5 2 3
-                              Store 235 237
-             238:      6(int) Load 8(invocation)
-             239:     73(ptr) AccessChain 27(data) 50 39
-             240:   20(ivec4) Load 239
-             241:   82(ivec3) VectorShuffle 240 240 0 1 2
-             242:   82(ivec3) GroupNonUniformQuadSwap 35 241 30
-             243:     73(ptr) AccessChain 27(data) 238 39
-             244:   20(ivec4) Load 243
-             245:   20(ivec4) VectorShuffle 244 242 4 5 6 3
-                              Store 243 245
-             246:      6(int) Load 8(invocation)
-             247:     73(ptr) AccessChain 27(data) 60 39
-             248:   20(ivec4) Load 247
-             249:   20(ivec4) GroupNonUniformQuadSwap 35 248 30
-             250:     73(ptr) AccessChain 27(data) 246 39
-                              Store 250 249
-             251:      6(int) Load 8(invocation)
-             252:     96(ptr) AccessChain 27(data) 29 50 30
-             253:      6(int) Load 252
-             254:      6(int) GroupNonUniformQuadSwap 35 253 30
-             255:     96(ptr) AccessChain 27(data) 251 50 30
-                              Store 255 254
-             256:      6(int) Load 8(invocation)
-             257:    103(ptr) AccessChain 27(data) 39 50
-             258:   21(ivec4) Load 257
-             259:  102(ivec2) VectorShuffle 258 258 0 1
-             260:  102(ivec2) GroupNonUniformQuadSwap 35 259 30
-             261:    103(ptr) AccessChain 27(data) 256 50
-             262:   21(ivec4) Load 261
-             263:   21(ivec4) VectorShuffle 262 260 4 5 2 3
-                              Store 261 263
+             226:     41(ptr) AccessChain 27(data) 39 29
+             227:   18(fvec4) Load 226
+             228:   40(fvec2) VectorShuffle 227 227 0 1
+             229:   40(fvec2) GroupNonUniformQuadSwap 35 228 30
+             230:     31(ptr) AccessChain 27(data) 225 29 30
+             231:   17(float) CompositeExtract 229 0
+                              Store 230 231
+             232:     31(ptr) AccessChain 27(data) 225 29 34
+             233:   17(float) CompositeExtract 229 1
+                              Store 232 233
+             234:      6(int) Load 8(invocation)
+             235:     41(ptr) AccessChain 27(data) 51 29
+             236:   18(fvec4) Load 235
+             237:   52(fvec3) VectorShuffle 236 236 0 1 2
+             238:   52(fvec3) GroupNonUniformQuadSwap 35 237 30
+             239:     31(ptr) AccessChain 27(data) 234 29 30
+             240:   17(float) CompositeExtract 238 0
+                              Store 239 240
+             241:     31(ptr) AccessChain 27(data) 234 29 34
+             242:   17(float) CompositeExtract 238 1
+                              Store 241 242
+             243:     31(ptr) AccessChain 27(data) 234 29 61
+             244:   17(float) CompositeExtract 238 2
+                              Store 243 244
+             245:      6(int) Load 8(invocation)
+             246:     41(ptr) AccessChain 27(data) 65 29
+             247:   18(fvec4) Load 246
+             248:   18(fvec4) GroupNonUniformQuadSwap 35 247 30
+             249:     41(ptr) AccessChain 27(data) 245 29
+                              Store 249 248
+             250:      6(int) Load 8(invocation)
+             251:     71(ptr) AccessChain 27(data) 29 39 30
+             252:     19(int) Load 251
+             253:     19(int) GroupNonUniformQuadSwap 35 252 30
+             254:     71(ptr) AccessChain 27(data) 250 39 30
+                              Store 254 253
+             255:      6(int) Load 8(invocation)
+             256:     78(ptr) AccessChain 27(data) 39 39
+             257:   20(ivec4) Load 256
+             258:   77(ivec2) VectorShuffle 257 257 0 1
+             259:   77(ivec2) GroupNonUniformQuadSwap 35 258 30
+             260:     71(ptr) AccessChain 27(data) 255 39 30
+             261:     19(int) CompositeExtract 259 0
+                              Store 260 261
+             262:     71(ptr) AccessChain 27(data) 255 39 34
+             263:     19(int) CompositeExtract 259 1
+                              Store 262 263
              264:      6(int) Load 8(invocation)
-             265:    103(ptr) AccessChain 27(data) 50 50
-             266:   21(ivec4) Load 265
-             267:  112(ivec3) VectorShuffle 266 266 0 1 2
-             268:  112(ivec3) GroupNonUniformQuadSwap 35 267 30
-             269:    103(ptr) AccessChain 27(data) 264 50
-             270:   21(ivec4) Load 269
-             271:   21(ivec4) VectorShuffle 270 268 4 5 6 3
-                              Store 269 271
-             272:      6(int) Load 8(invocation)
-             273:    103(ptr) AccessChain 27(data) 60 50
-             274:   21(ivec4) Load 273
-             275:   21(ivec4) GroupNonUniformQuadSwap 35 274 30
-             276:    103(ptr) AccessChain 27(data) 272 50
-                              Store 276 275
-             277:      6(int) Load 8(invocation)
-             278:    126(ptr) AccessChain 27(data) 29 60 30
-             279:22(float64_t) Load 278
-             280:22(float64_t) GroupNonUniformQuadSwap 35 279 30
-             281:    126(ptr) AccessChain 27(data) 277 60 30
-                              Store 281 280
-             282:      6(int) Load 8(invocation)
-             283:    133(ptr) AccessChain 27(data) 39 60
-             284: 23(f64vec4) Load 283
-             285:132(f64vec2) VectorShuffle 284 284 0 1
-             286:132(f64vec2) GroupNonUniformQuadSwap 35 285 30
-             287:    133(ptr) AccessChain 27(data) 282 60
-             288: 23(f64vec4) Load 287
-             289: 23(f64vec4) VectorShuffle 288 286 4 5 2 3
-                              Store 287 289
-             290:      6(int) Load 8(invocation)
-             291:    133(ptr) AccessChain 27(data) 50 60
-             292: 23(f64vec4) Load 291
-             293:142(f64vec3) VectorShuffle 292 292 0 1 2
-             294:142(f64vec3) GroupNonUniformQuadSwap 35 293 30
-             295:    133(ptr) AccessChain 27(data) 290 60
-             296: 23(f64vec4) Load 295
-             297: 23(f64vec4) VectorShuffle 296 294 4 5 6 3
-                              Store 295 297
-             298:      6(int) Load 8(invocation)
-             299:    133(ptr) AccessChain 27(data) 60 60
-             300: 23(f64vec4) Load 299
-             301: 23(f64vec4) GroupNonUniformQuadSwap 35 300 30
-             302:    133(ptr) AccessChain 27(data) 298 60
-                              Store 302 301
-             303:      6(int) Load 8(invocation)
-             304:     66(ptr) AccessChain 27(data) 29 39 30
-             305:     19(int) Load 304
-             306:   158(bool) SLessThan 305 29
-             307:   158(bool) GroupNonUniformQuadSwap 35 306 30
-             308:     19(int) Select 307 39 29
-             309:     66(ptr) AccessChain 27(data) 303 39 30
+             265:     78(ptr) AccessChain 27(data) 51 39
+             266:   20(ivec4) Load 265
+             267:   88(ivec3) VectorShuffle 266 266 0 1 2
+             268:   88(ivec3) GroupNonUniformQuadSwap 35 267 30
+             269:     71(ptr) AccessChain 27(data) 264 39 30
+             270:     19(int) CompositeExtract 268 0
+                              Store 269 270
+             271:     71(ptr) AccessChain 27(data) 264 39 34
+             272:     19(int) CompositeExtract 268 1
+                              Store 271 272
+             273:     71(ptr) AccessChain 27(data) 264 39 61
+             274:     19(int) CompositeExtract 268 2
+                              Store 273 274
+             275:      6(int) Load 8(invocation)
+             276:     78(ptr) AccessChain 27(data) 65 39
+             277:   20(ivec4) Load 276
+             278:   20(ivec4) GroupNonUniformQuadSwap 35 277 30
+             279:     78(ptr) AccessChain 27(data) 275 39
+                              Store 279 278
+             280:      6(int) Load 8(invocation)
+             281:    105(ptr) AccessChain 27(data) 29 51 30
+             282:      6(int) Load 281
+             283:      6(int) GroupNonUniformQuadSwap 35 282 30
+             284:    105(ptr) AccessChain 27(data) 280 51 30
+                              Store 284 283
+             285:      6(int) Load 8(invocation)
+             286:    112(ptr) AccessChain 27(data) 39 51
+             287:   21(ivec4) Load 286
+             288:  111(ivec2) VectorShuffle 287 287 0 1
+             289:  111(ivec2) GroupNonUniformQuadSwap 35 288 30
+             290:    105(ptr) AccessChain 27(data) 285 51 30
+             291:      6(int) CompositeExtract 289 0
+                              Store 290 291
+             292:    105(ptr) AccessChain 27(data) 285 51 34
+             293:      6(int) CompositeExtract 289 1
+                              Store 292 293
+             294:      6(int) Load 8(invocation)
+             295:    112(ptr) AccessChain 27(data) 51 51
+             296:   21(ivec4) Load 295
+             297:  122(ivec3) VectorShuffle 296 296 0 1 2
+             298:  122(ivec3) GroupNonUniformQuadSwap 35 297 30
+             299:    105(ptr) AccessChain 27(data) 294 51 30
+             300:      6(int) CompositeExtract 298 0
+                              Store 299 300
+             301:    105(ptr) AccessChain 27(data) 294 51 34
+             302:      6(int) CompositeExtract 298 1
+                              Store 301 302
+             303:    105(ptr) AccessChain 27(data) 294 51 61
+             304:      6(int) CompositeExtract 298 2
+                              Store 303 304
+             305:      6(int) Load 8(invocation)
+             306:    112(ptr) AccessChain 27(data) 65 51
+             307:   21(ivec4) Load 306
+             308:   21(ivec4) GroupNonUniformQuadSwap 35 307 30
+             309:    112(ptr) AccessChain 27(data) 305 51
                               Store 309 308
              310:      6(int) Load 8(invocation)
-             311:     73(ptr) AccessChain 27(data) 39 39
-             312:   20(ivec4) Load 311
-             313:   72(ivec2) VectorShuffle 312 312 0 1
-             314:  168(bvec2) SLessThan 313 167
-             315:  168(bvec2) GroupNonUniformQuadSwap 35 314 30
-             316:   72(ivec2) Select 315 171 167
-             317:     73(ptr) AccessChain 27(data) 310 39
-             318:   20(ivec4) Load 317
-             319:   20(ivec4) VectorShuffle 318 316 4 5 2 3
-                              Store 317 319
-             320:      6(int) Load 8(invocation)
-             321:     73(ptr) AccessChain 27(data) 39 39
-             322:   20(ivec4) Load 321
-             323:   82(ivec3) VectorShuffle 322 322 0 1 2
-             324:  181(bvec3) SLessThan 323 180
-             325:  181(bvec3) GroupNonUniformQuadSwap 35 324 30
-             326:   82(ivec3) Select 325 184 180
-             327:     73(ptr) AccessChain 27(data) 320 39
-             328:   20(ivec4) Load 327
-             329:   20(ivec4) VectorShuffle 328 326 4 5 6 3
-                              Store 327 329
-             330:      6(int) Load 8(invocation)
-             331:     73(ptr) AccessChain 27(data) 39 39
-             332:   20(ivec4) Load 331
-             333:  193(bvec4) SLessThan 332 192
-             334:  193(bvec4) GroupNonUniformQuadSwap 35 333 30
-             335:   20(ivec4) Select 334 196 192
-             336:     73(ptr) AccessChain 27(data) 330 39
-                              Store 336 335
-             337:      6(int) Load 8(invocation)
-             338:     31(ptr) AccessChain 27(data) 29 29 30
-             339:   17(float) Load 338
-             340:   17(float) GroupNonUniformQuadSwap 35 339 34
-             341:     31(ptr) AccessChain 27(data) 337 29 30
-                              Store 341 340
-             342:      6(int) Load 8(invocation)
-             343:     41(ptr) AccessChain 27(data) 39 29
-             344:   18(fvec4) Load 343
-             345:   40(fvec2) VectorShuffle 344 344 0 1
-             346:   40(fvec2) GroupNonUniformQuadSwap 35 345 34
-             347:     41(ptr) AccessChain 27(data) 342 29
-             348:   18(fvec4) Load 347
-             349:   18(fvec4) VectorShuffle 348 346 4 5 2 3
-                              Store 347 349
-             350:      6(int) Load 8(invocation)
-             351:     41(ptr) AccessChain 27(data) 50 29
-             352:   18(fvec4) Load 351
-             353:   51(fvec3) VectorShuffle 352 352 0 1 2
-             354:   51(fvec3) GroupNonUniformQuadSwap 35 353 34
-             355:     41(ptr) AccessChain 27(data) 350 29
-             356:   18(fvec4) Load 355
-             357:   18(fvec4) VectorShuffle 356 354 4 5 6 3
-                              Store 355 357
+             311:    139(ptr) AccessChain 27(data) 29 65 30
+             312:22(float64_t) Load 311
+             313:22(float64_t) GroupNonUniformQuadSwap 35 312 30
+             314:    139(ptr) AccessChain 27(data) 310 65 30
+                              Store 314 313
+             315:      6(int) Load 8(invocation)
+             316:    146(ptr) AccessChain 27(data) 39 65
+             317: 23(f64vec4) Load 316
+             318:145(f64vec2) VectorShuffle 317 317 0 1
+             319:145(f64vec2) GroupNonUniformQuadSwap 35 318 30
+             320:    139(ptr) AccessChain 27(data) 315 65 30
+             321:22(float64_t) CompositeExtract 319 0
+                              Store 320 321
+             322:    139(ptr) AccessChain 27(data) 315 65 34
+             323:22(float64_t) CompositeExtract 319 1
+                              Store 322 323
+             324:      6(int) Load 8(invocation)
+             325:    146(ptr) AccessChain 27(data) 51 65
+             326: 23(f64vec4) Load 325
+             327:156(f64vec3) VectorShuffle 326 326 0 1 2
+             328:156(f64vec3) GroupNonUniformQuadSwap 35 327 30
+             329:    139(ptr) AccessChain 27(data) 324 65 30
+             330:22(float64_t) CompositeExtract 328 0
+                              Store 329 330
+             331:    139(ptr) AccessChain 27(data) 324 65 34
+             332:22(float64_t) CompositeExtract 328 1
+                              Store 331 332
+             333:    139(ptr) AccessChain 27(data) 324 65 61
+             334:22(float64_t) CompositeExtract 328 2
+                              Store 333 334
+             335:      6(int) Load 8(invocation)
+             336:    146(ptr) AccessChain 27(data) 65 65
+             337: 23(f64vec4) Load 336
+             338: 23(f64vec4) GroupNonUniformQuadSwap 35 337 30
+             339:    146(ptr) AccessChain 27(data) 335 65
+                              Store 339 338
+             340:      6(int) Load 8(invocation)
+             341:     71(ptr) AccessChain 27(data) 29 39 30
+             342:     19(int) Load 341
+             343:   175(bool) SLessThan 342 29
+             344:   175(bool) GroupNonUniformQuadSwap 35 343 30
+             345:     19(int) Select 344 39 29
+             346:     71(ptr) AccessChain 27(data) 340 39 30
+                              Store 346 345
+             347:      6(int) Load 8(invocation)
+             348:     78(ptr) AccessChain 27(data) 39 39
+             349:   20(ivec4) Load 348
+             350:   77(ivec2) VectorShuffle 349 349 0 1
+             351:  185(bvec2) SLessThan 350 184
+             352:  185(bvec2) GroupNonUniformQuadSwap 35 351 30
+             353:   77(ivec2) Select 352 188 184
+             354:     71(ptr) AccessChain 27(data) 347 39 30
+             355:     19(int) CompositeExtract 353 0
+                              Store 354 355
+             356:     71(ptr) AccessChain 27(data) 347 39 34
+             357:     19(int) CompositeExtract 353 1
+                              Store 356 357
              358:      6(int) Load 8(invocation)
-             359:     41(ptr) AccessChain 27(data) 60 29
-             360:   18(fvec4) Load 359
-             361:   18(fvec4) GroupNonUniformQuadSwap 35 360 34
-             362:     41(ptr) AccessChain 27(data) 358 29
-                              Store 362 361
-             363:      6(int) Load 8(invocation)
-             364:     66(ptr) AccessChain 27(data) 29 39 30
-             365:     19(int) Load 364
-             366:     19(int) GroupNonUniformQuadSwap 35 365 34
-             367:     66(ptr) AccessChain 27(data) 363 39 30
-                              Store 367 366
-             368:      6(int) Load 8(invocation)
-             369:     73(ptr) AccessChain 27(data) 39 39
-             370:   20(ivec4) Load 369
-             371:   72(ivec2) VectorShuffle 370 370 0 1
-             372:   72(ivec2) GroupNonUniformQuadSwap 35 371 34
-             373:     73(ptr) AccessChain 27(data) 368 39
-             374:   20(ivec4) Load 373
-             375:   20(ivec4) VectorShuffle 374 372 4 5 2 3
-                              Store 373 375
-             376:      6(int) Load 8(invocation)
-             377:     73(ptr) AccessChain 27(data) 50 39
-             378:   20(ivec4) Load 377
-             379:   82(ivec3) VectorShuffle 378 378 0 1 2
-             380:   82(ivec3) GroupNonUniformQuadSwap 35 379 34
-             381:     73(ptr) AccessChain 27(data) 376 39
-             382:   20(ivec4) Load 381
-             383:   20(ivec4) VectorShuffle 382 380 4 5 6 3
-                              Store 381 383
-             384:      6(int) Load 8(invocation)
-             385:     73(ptr) AccessChain 27(data) 60 39
-             386:   20(ivec4) Load 385
-             387:   20(ivec4) GroupNonUniformQuadSwap 35 386 34
-             388:     73(ptr) AccessChain 27(data) 384 39
-                              Store 388 387
-             389:      6(int) Load 8(invocation)
-             390:     96(ptr) AccessChain 27(data) 29 50 30
-             391:      6(int) Load 390
-             392:      6(int) GroupNonUniformQuadSwap 35 391 34
-             393:     96(ptr) AccessChain 27(data) 389 50 30
-                              Store 393 392
-             394:      6(int) Load 8(invocation)
-             395:    103(ptr) AccessChain 27(data) 39 50
-             396:   21(ivec4) Load 395
-             397:  102(ivec2) VectorShuffle 396 396 0 1
-             398:  102(ivec2) GroupNonUniformQuadSwap 35 397 34
-             399:    103(ptr) AccessChain 27(data) 394 50
-             400:   21(ivec4) Load 399
-             401:   21(ivec4) VectorShuffle 400 398 4 5 2 3
-                              Store 399 401
-             402:      6(int) Load 8(invocation)
-             403:    103(ptr) AccessChain 27(data) 50 50
-             404:   21(ivec4) Load 403
-             405:  112(ivec3) VectorShuffle 404 404 0 1 2
-             406:  112(ivec3) GroupNonUniformQuadSwap 35 405 34
-             407:    103(ptr) AccessChain 27(data) 402 50
-             408:   21(ivec4) Load 407
-             409:   21(ivec4) VectorShuffle 408 406 4 5 6 3
-                              Store 407 409
-             410:      6(int) Load 8(invocation)
-             411:    103(ptr) AccessChain 27(data) 60 50
-             412:   21(ivec4) Load 411
-             413:   21(ivec4) GroupNonUniformQuadSwap 35 412 34
-             414:    103(ptr) AccessChain 27(data) 410 50
-                              Store 414 413
-             415:      6(int) Load 8(invocation)
-             416:    126(ptr) AccessChain 27(data) 29 60 30
-             417:22(float64_t) Load 416
-             418:22(float64_t) GroupNonUniformQuadSwap 35 417 34
-             419:    126(ptr) AccessChain 27(data) 415 60 30
-                              Store 419 418
-             420:      6(int) Load 8(invocation)
-             421:    133(ptr) AccessChain 27(data) 39 60
-             422: 23(f64vec4) Load 421
-             423:132(f64vec2) VectorShuffle 422 422 0 1
-             424:132(f64vec2) GroupNonUniformQuadSwap 35 423 34
-             425:    133(ptr) AccessChain 27(data) 420 60
-             426: 23(f64vec4) Load 425
-             427: 23(f64vec4) VectorShuffle 426 424 4 5 2 3
-                              Store 425 427
-             428:      6(int) Load 8(invocation)
-             429:    133(ptr) AccessChain 27(data) 50 60
-             430: 23(f64vec4) Load 429
-             431:142(f64vec3) VectorShuffle 430 430 0 1 2
-             432:142(f64vec3) GroupNonUniformQuadSwap 35 431 34
-             433:    133(ptr) AccessChain 27(data) 428 60
-             434: 23(f64vec4) Load 433
-             435: 23(f64vec4) VectorShuffle 434 432 4 5 6 3
-                              Store 433 435
-             436:      6(int) Load 8(invocation)
-             437:    133(ptr) AccessChain 27(data) 60 60
-             438: 23(f64vec4) Load 437
-             439: 23(f64vec4) GroupNonUniformQuadSwap 35 438 34
-             440:    133(ptr) AccessChain 27(data) 436 60
-                              Store 440 439
-             441:      6(int) Load 8(invocation)
-             442:     66(ptr) AccessChain 27(data) 29 39 30
-             443:     19(int) Load 442
-             444:   158(bool) SLessThan 443 29
-             445:   158(bool) GroupNonUniformQuadSwap 35 444 34
-             446:     19(int) Select 445 39 29
-             447:     66(ptr) AccessChain 27(data) 441 39 30
-                              Store 447 446
-             448:      6(int) Load 8(invocation)
-             449:     73(ptr) AccessChain 27(data) 39 39
-             450:   20(ivec4) Load 449
-             451:   72(ivec2) VectorShuffle 450 450 0 1
-             452:  168(bvec2) SLessThan 451 167
-             453:  168(bvec2) GroupNonUniformQuadSwap 35 452 34
-             454:   72(ivec2) Select 453 171 167
-             455:     73(ptr) AccessChain 27(data) 448 39
-             456:   20(ivec4) Load 455
-             457:   20(ivec4) VectorShuffle 456 454 4 5 2 3
-                              Store 455 457
-             458:      6(int) Load 8(invocation)
-             459:     73(ptr) AccessChain 27(data) 39 39
-             460:   20(ivec4) Load 459
-             461:   82(ivec3) VectorShuffle 460 460 0 1 2
-             462:  181(bvec3) SLessThan 461 180
-             463:  181(bvec3) GroupNonUniformQuadSwap 35 462 34
-             464:   82(ivec3) Select 463 184 180
-             465:     73(ptr) AccessChain 27(data) 458 39
-             466:   20(ivec4) Load 465
-             467:   20(ivec4) VectorShuffle 466 464 4 5 6 3
-                              Store 465 467
+             359:     78(ptr) AccessChain 27(data) 39 39
+             360:   20(ivec4) Load 359
+             361:   88(ivec3) VectorShuffle 360 360 0 1 2
+             362:  199(bvec3) SLessThan 361 198
+             363:  199(bvec3) GroupNonUniformQuadSwap 35 362 30
+             364:   88(ivec3) Select 363 202 198
+             365:     71(ptr) AccessChain 27(data) 358 39 30
+             366:     19(int) CompositeExtract 364 0
+                              Store 365 366
+             367:     71(ptr) AccessChain 27(data) 358 39 34
+             368:     19(int) CompositeExtract 364 1
+                              Store 367 368
+             369:     71(ptr) AccessChain 27(data) 358 39 61
+             370:     19(int) CompositeExtract 364 2
+                              Store 369 370
+             371:      6(int) Load 8(invocation)
+             372:     78(ptr) AccessChain 27(data) 39 39
+             373:   20(ivec4) Load 372
+             374:  214(bvec4) SLessThan 373 213
+             375:  214(bvec4) GroupNonUniformQuadSwap 35 374 30
+             376:   20(ivec4) Select 375 217 213
+             377:     78(ptr) AccessChain 27(data) 371 39
+                              Store 377 376
+             378:      6(int) Load 8(invocation)
+             379:     31(ptr) AccessChain 27(data) 29 29 30
+             380:   17(float) Load 379
+             381:   17(float) GroupNonUniformQuadSwap 35 380 34
+             382:     31(ptr) AccessChain 27(data) 378 29 30
+                              Store 382 381
+             383:      6(int) Load 8(invocation)
+             384:     41(ptr) AccessChain 27(data) 39 29
+             385:   18(fvec4) Load 384
+             386:   40(fvec2) VectorShuffle 385 385 0 1
+             387:   40(fvec2) GroupNonUniformQuadSwap 35 386 34
+             388:     31(ptr) AccessChain 27(data) 383 29 30
+             389:   17(float) CompositeExtract 387 0
+                              Store 388 389
+             390:     31(ptr) AccessChain 27(data) 383 29 34
+             391:   17(float) CompositeExtract 387 1
+                              Store 390 391
+             392:      6(int) Load 8(invocation)
+             393:     41(ptr) AccessChain 27(data) 51 29
+             394:   18(fvec4) Load 393
+             395:   52(fvec3) VectorShuffle 394 394 0 1 2
+             396:   52(fvec3) GroupNonUniformQuadSwap 35 395 34
+             397:     31(ptr) AccessChain 27(data) 392 29 30
+             398:   17(float) CompositeExtract 396 0
+                              Store 397 398
+             399:     31(ptr) AccessChain 27(data) 392 29 34
+             400:   17(float) CompositeExtract 396 1
+                              Store 399 400
+             401:     31(ptr) AccessChain 27(data) 392 29 61
+             402:   17(float) CompositeExtract 396 2
+                              Store 401 402
+             403:      6(int) Load 8(invocation)
+             404:     41(ptr) AccessChain 27(data) 65 29
+             405:   18(fvec4) Load 404
+             406:   18(fvec4) GroupNonUniformQuadSwap 35 405 34
+             407:     41(ptr) AccessChain 27(data) 403 29
+                              Store 407 406
+             408:      6(int) Load 8(invocation)
+             409:     71(ptr) AccessChain 27(data) 29 39 30
+             410:     19(int) Load 409
+             411:     19(int) GroupNonUniformQuadSwap 35 410 34
+             412:     71(ptr) AccessChain 27(data) 408 39 30
+                              Store 412 411
+             413:      6(int) Load 8(invocation)
+             414:     78(ptr) AccessChain 27(data) 39 39
+             415:   20(ivec4) Load 414
+             416:   77(ivec2) VectorShuffle 415 415 0 1
+             417:   77(ivec2) GroupNonUniformQuadSwap 35 416 34
+             418:     71(ptr) AccessChain 27(data) 413 39 30
+             419:     19(int) CompositeExtract 417 0
+                              Store 418 419
+             420:     71(ptr) AccessChain 27(data) 413 39 34
+             421:     19(int) CompositeExtract 417 1
+                              Store 420 421
+             422:      6(int) Load 8(invocation)
+             423:     78(ptr) AccessChain 27(data) 51 39
+             424:   20(ivec4) Load 423
+             425:   88(ivec3) VectorShuffle 424 424 0 1 2
+             426:   88(ivec3) GroupNonUniformQuadSwap 35 425 34
+             427:     71(ptr) AccessChain 27(data) 422 39 30
+             428:     19(int) CompositeExtract 426 0
+                              Store 427 428
+             429:     71(ptr) AccessChain 27(data) 422 39 34
+             430:     19(int) CompositeExtract 426 1
+                              Store 429 430
+             431:     71(ptr) AccessChain 27(data) 422 39 61
+             432:     19(int) CompositeExtract 426 2
+                              Store 431 432
+             433:      6(int) Load 8(invocation)
+             434:     78(ptr) AccessChain 27(data) 65 39
+             435:   20(ivec4) Load 434
+             436:   20(ivec4) GroupNonUniformQuadSwap 35 435 34
+             437:     78(ptr) AccessChain 27(data) 433 39
+                              Store 437 436
+             438:      6(int) Load 8(invocation)
+             439:    105(ptr) AccessChain 27(data) 29 51 30
+             440:      6(int) Load 439
+             441:      6(int) GroupNonUniformQuadSwap 35 440 34
+             442:    105(ptr) AccessChain 27(data) 438 51 30
+                              Store 442 441
+             443:      6(int) Load 8(invocation)
+             444:    112(ptr) AccessChain 27(data) 39 51
+             445:   21(ivec4) Load 444
+             446:  111(ivec2) VectorShuffle 445 445 0 1
+             447:  111(ivec2) GroupNonUniformQuadSwap 35 446 34
+             448:    105(ptr) AccessChain 27(data) 443 51 30
+             449:      6(int) CompositeExtract 447 0
+                              Store 448 449
+             450:    105(ptr) AccessChain 27(data) 443 51 34
+             451:      6(int) CompositeExtract 447 1
+                              Store 450 451
+             452:      6(int) Load 8(invocation)
+             453:    112(ptr) AccessChain 27(data) 51 51
+             454:   21(ivec4) Load 453
+             455:  122(ivec3) VectorShuffle 454 454 0 1 2
+             456:  122(ivec3) GroupNonUniformQuadSwap 35 455 34
+             457:    105(ptr) AccessChain 27(data) 452 51 30
+             458:      6(int) CompositeExtract 456 0
+                              Store 457 458
+             459:    105(ptr) AccessChain 27(data) 452 51 34
+             460:      6(int) CompositeExtract 456 1
+                              Store 459 460
+             461:    105(ptr) AccessChain 27(data) 452 51 61
+             462:      6(int) CompositeExtract 456 2
+                              Store 461 462
+             463:      6(int) Load 8(invocation)
+             464:    112(ptr) AccessChain 27(data) 65 51
+             465:   21(ivec4) Load 464
+             466:   21(ivec4) GroupNonUniformQuadSwap 35 465 34
+             467:    112(ptr) AccessChain 27(data) 463 51
+                              Store 467 466
              468:      6(int) Load 8(invocation)
-             469:     73(ptr) AccessChain 27(data) 39 39
-             470:   20(ivec4) Load 469
-             471:  193(bvec4) SLessThan 470 192
-             472:  193(bvec4) GroupNonUniformQuadSwap 35 471 34
-             473:   20(ivec4) Select 472 196 192
-             474:     73(ptr) AccessChain 27(data) 468 39
-                              Store 474 473
-             475:      6(int) Load 8(invocation)
-             476:     31(ptr) AccessChain 27(data) 29 29 30
-             477:   17(float) Load 476
-             479:   17(float) GroupNonUniformQuadSwap 35 477 478
-             480:     31(ptr) AccessChain 27(data) 475 29 30
-                              Store 480 479
-             481:      6(int) Load 8(invocation)
-             482:     41(ptr) AccessChain 27(data) 39 29
-             483:   18(fvec4) Load 482
-             484:   40(fvec2) VectorShuffle 483 483 0 1
-             485:   40(fvec2) GroupNonUniformQuadSwap 35 484 478
-             486:     41(ptr) AccessChain 27(data) 481 29
-             487:   18(fvec4) Load 486
-             488:   18(fvec4) VectorShuffle 487 485 4 5 2 3
-                              Store 486 488
-             489:      6(int) Load 8(invocation)
-             490:     41(ptr) AccessChain 27(data) 50 29
-             491:   18(fvec4) Load 490
-             492:   51(fvec3) VectorShuffle 491 491 0 1 2
-             493:   51(fvec3) GroupNonUniformQuadSwap 35 492 478
-             494:     41(ptr) AccessChain 27(data) 489 29
-             495:   18(fvec4) Load 494
-             496:   18(fvec4) VectorShuffle 495 493 4 5 6 3
-                              Store 494 496
-             497:      6(int) Load 8(invocation)
-             498:     41(ptr) AccessChain 27(data) 60 29
-             499:   18(fvec4) Load 498
-             500:   18(fvec4) GroupNonUniformQuadSwap 35 499 478
-             501:     41(ptr) AccessChain 27(data) 497 29
-                              Store 501 500
-             502:      6(int) Load 8(invocation)
-             503:     66(ptr) AccessChain 27(data) 29 39 30
-             504:     19(int) Load 503
-             505:     19(int) GroupNonUniformQuadSwap 35 504 478
-             506:     66(ptr) AccessChain 27(data) 502 39 30
-                              Store 506 505
-             507:      6(int) Load 8(invocation)
-             508:     73(ptr) AccessChain 27(data) 39 39
-             509:   20(ivec4) Load 508
-             510:   72(ivec2) VectorShuffle 509 509 0 1
-             511:   72(ivec2) GroupNonUniformQuadSwap 35 510 478
-             512:     73(ptr) AccessChain 27(data) 507 39
-             513:   20(ivec4) Load 512
-             514:   20(ivec4) VectorShuffle 513 511 4 5 2 3
-                              Store 512 514
-             515:      6(int) Load 8(invocation)
-             516:     73(ptr) AccessChain 27(data) 50 39
-             517:   20(ivec4) Load 516
-             518:   82(ivec3) VectorShuffle 517 517 0 1 2
-             519:   82(ivec3) GroupNonUniformQuadSwap 35 518 478
-             520:     73(ptr) AccessChain 27(data) 515 39
-             521:   20(ivec4) Load 520
-             522:   20(ivec4) VectorShuffle 521 519 4 5 6 3
-                              Store 520 522
-             523:      6(int) Load 8(invocation)
-             524:     73(ptr) AccessChain 27(data) 60 39
-             525:   20(ivec4) Load 524
-             526:   20(ivec4) GroupNonUniformQuadSwap 35 525 478
-             527:     73(ptr) AccessChain 27(data) 523 39
-                              Store 527 526
-             528:      6(int) Load 8(invocation)
-             529:     96(ptr) AccessChain 27(data) 29 50 30
-             530:      6(int) Load 529
-             531:      6(int) GroupNonUniformQuadSwap 35 530 478
-             532:     96(ptr) AccessChain 27(data) 528 50 30
-                              Store 532 531
-             533:      6(int) Load 8(invocation)
-             534:    103(ptr) AccessChain 27(data) 39 50
-             535:   21(ivec4) Load 534
-             536:  102(ivec2) VectorShuffle 535 535 0 1
-             537:  102(ivec2) GroupNonUniformQuadSwap 35 536 478
-             538:    103(ptr) AccessChain 27(data) 533 50
-             539:   21(ivec4) Load 538
-             540:   21(ivec4) VectorShuffle 539 537 4 5 2 3
-                              Store 538 540
+             469:    139(ptr) AccessChain 27(data) 29 65 30
+             470:22(float64_t) Load 469
+             471:22(float64_t) GroupNonUniformQuadSwap 35 470 34
+             472:    139(ptr) AccessChain 27(data) 468 65 30
+                              Store 472 471
+             473:      6(int) Load 8(invocation)
+             474:    146(ptr) AccessChain 27(data) 39 65
+             475: 23(f64vec4) Load 474
+             476:145(f64vec2) VectorShuffle 475 475 0 1
+             477:145(f64vec2) GroupNonUniformQuadSwap 35 476 34
+             478:    139(ptr) AccessChain 27(data) 473 65 30
+             479:22(float64_t) CompositeExtract 477 0
+                              Store 478 479
+             480:    139(ptr) AccessChain 27(data) 473 65 34
+             481:22(float64_t) CompositeExtract 477 1
+                              Store 480 481
+             482:      6(int) Load 8(invocation)
+             483:    146(ptr) AccessChain 27(data) 51 65
+             484: 23(f64vec4) Load 483
+             485:156(f64vec3) VectorShuffle 484 484 0 1 2
+             486:156(f64vec3) GroupNonUniformQuadSwap 35 485 34
+             487:    139(ptr) AccessChain 27(data) 482 65 30
+             488:22(float64_t) CompositeExtract 486 0
+                              Store 487 488
+             489:    139(ptr) AccessChain 27(data) 482 65 34
+             490:22(float64_t) CompositeExtract 486 1
+                              Store 489 490
+             491:    139(ptr) AccessChain 27(data) 482 65 61
+             492:22(float64_t) CompositeExtract 486 2
+                              Store 491 492
+             493:      6(int) Load 8(invocation)
+             494:    146(ptr) AccessChain 27(data) 65 65
+             495: 23(f64vec4) Load 494
+             496: 23(f64vec4) GroupNonUniformQuadSwap 35 495 34
+             497:    146(ptr) AccessChain 27(data) 493 65
+                              Store 497 496
+             498:      6(int) Load 8(invocation)
+             499:     71(ptr) AccessChain 27(data) 29 39 30
+             500:     19(int) Load 499
+             501:   175(bool) SLessThan 500 29
+             502:   175(bool) GroupNonUniformQuadSwap 35 501 34
+             503:     19(int) Select 502 39 29
+             504:     71(ptr) AccessChain 27(data) 498 39 30
+                              Store 504 503
+             505:      6(int) Load 8(invocation)
+             506:     78(ptr) AccessChain 27(data) 39 39
+             507:   20(ivec4) Load 506
+             508:   77(ivec2) VectorShuffle 507 507 0 1
+             509:  185(bvec2) SLessThan 508 184
+             510:  185(bvec2) GroupNonUniformQuadSwap 35 509 34
+             511:   77(ivec2) Select 510 188 184
+             512:     71(ptr) AccessChain 27(data) 505 39 30
+             513:     19(int) CompositeExtract 511 0
+                              Store 512 513
+             514:     71(ptr) AccessChain 27(data) 505 39 34
+             515:     19(int) CompositeExtract 511 1
+                              Store 514 515
+             516:      6(int) Load 8(invocation)
+             517:     78(ptr) AccessChain 27(data) 39 39
+             518:   20(ivec4) Load 517
+             519:   88(ivec3) VectorShuffle 518 518 0 1 2
+             520:  199(bvec3) SLessThan 519 198
+             521:  199(bvec3) GroupNonUniformQuadSwap 35 520 34
+             522:   88(ivec3) Select 521 202 198
+             523:     71(ptr) AccessChain 27(data) 516 39 30
+             524:     19(int) CompositeExtract 522 0
+                              Store 523 524
+             525:     71(ptr) AccessChain 27(data) 516 39 34
+             526:     19(int) CompositeExtract 522 1
+                              Store 525 526
+             527:     71(ptr) AccessChain 27(data) 516 39 61
+             528:     19(int) CompositeExtract 522 2
+                              Store 527 528
+             529:      6(int) Load 8(invocation)
+             530:     78(ptr) AccessChain 27(data) 39 39
+             531:   20(ivec4) Load 530
+             532:  214(bvec4) SLessThan 531 213
+             533:  214(bvec4) GroupNonUniformQuadSwap 35 532 34
+             534:   20(ivec4) Select 533 217 213
+             535:     78(ptr) AccessChain 27(data) 529 39
+                              Store 535 534
+             536:      6(int) Load 8(invocation)
+             537:     31(ptr) AccessChain 27(data) 29 29 30
+             538:   17(float) Load 537
+             539:   17(float) GroupNonUniformQuadSwap 35 538 61
+             540:     31(ptr) AccessChain 27(data) 536 29 30
+                              Store 540 539
              541:      6(int) Load 8(invocation)
-             542:    103(ptr) AccessChain 27(data) 50 50
-             543:   21(ivec4) Load 542
-             544:  112(ivec3) VectorShuffle 543 543 0 1 2
-             545:  112(ivec3) GroupNonUniformQuadSwap 35 544 478
-             546:    103(ptr) AccessChain 27(data) 541 50
-             547:   21(ivec4) Load 546
-             548:   21(ivec4) VectorShuffle 547 545 4 5 6 3
-                              Store 546 548
-             549:      6(int) Load 8(invocation)
-             550:    103(ptr) AccessChain 27(data) 60 50
-             551:   21(ivec4) Load 550
-             552:   21(ivec4) GroupNonUniformQuadSwap 35 551 478
-             553:    103(ptr) AccessChain 27(data) 549 50
-                              Store 553 552
-             554:      6(int) Load 8(invocation)
-             555:    126(ptr) AccessChain 27(data) 29 60 30
-             556:22(float64_t) Load 555
-             557:22(float64_t) GroupNonUniformQuadSwap 35 556 478
-             558:    126(ptr) AccessChain 27(data) 554 60 30
-                              Store 558 557
-             559:      6(int) Load 8(invocation)
-             560:    133(ptr) AccessChain 27(data) 39 60
-             561: 23(f64vec4) Load 560
-             562:132(f64vec2) VectorShuffle 561 561 0 1
-             563:132(f64vec2) GroupNonUniformQuadSwap 35 562 478
-             564:    133(ptr) AccessChain 27(data) 559 60
-             565: 23(f64vec4) Load 564
-             566: 23(f64vec4) VectorShuffle 565 563 4 5 2 3
-                              Store 564 566
-             567:      6(int) Load 8(invocation)
-             568:    133(ptr) AccessChain 27(data) 50 60
-             569: 23(f64vec4) Load 568
-             570:142(f64vec3) VectorShuffle 569 569 0 1 2
-             571:142(f64vec3) GroupNonUniformQuadSwap 35 570 478
-             572:    133(ptr) AccessChain 27(data) 567 60
-             573: 23(f64vec4) Load 572
-             574: 23(f64vec4) VectorShuffle 573 571 4 5 6 3
-                              Store 572 574
-             575:      6(int) Load 8(invocation)
-             576:    133(ptr) AccessChain 27(data) 60 60
-             577: 23(f64vec4) Load 576
-             578: 23(f64vec4) GroupNonUniformQuadSwap 35 577 478
-             579:    133(ptr) AccessChain 27(data) 575 60
-                              Store 579 578
+             542:     41(ptr) AccessChain 27(data) 39 29
+             543:   18(fvec4) Load 542
+             544:   40(fvec2) VectorShuffle 543 543 0 1
+             545:   40(fvec2) GroupNonUniformQuadSwap 35 544 61
+             546:     31(ptr) AccessChain 27(data) 541 29 30
+             547:   17(float) CompositeExtract 545 0
+                              Store 546 547
+             548:     31(ptr) AccessChain 27(data) 541 29 34
+             549:   17(float) CompositeExtract 545 1
+                              Store 548 549
+             550:      6(int) Load 8(invocation)
+             551:     41(ptr) AccessChain 27(data) 51 29
+             552:   18(fvec4) Load 551
+             553:   52(fvec3) VectorShuffle 552 552 0 1 2
+             554:   52(fvec3) GroupNonUniformQuadSwap 35 553 61
+             555:     31(ptr) AccessChain 27(data) 550 29 30
+             556:   17(float) CompositeExtract 554 0
+                              Store 555 556
+             557:     31(ptr) AccessChain 27(data) 550 29 34
+             558:   17(float) CompositeExtract 554 1
+                              Store 557 558
+             559:     31(ptr) AccessChain 27(data) 550 29 61
+             560:   17(float) CompositeExtract 554 2
+                              Store 559 560
+             561:      6(int) Load 8(invocation)
+             562:     41(ptr) AccessChain 27(data) 65 29
+             563:   18(fvec4) Load 562
+             564:   18(fvec4) GroupNonUniformQuadSwap 35 563 61
+             565:     41(ptr) AccessChain 27(data) 561 29
+                              Store 565 564
+             566:      6(int) Load 8(invocation)
+             567:     71(ptr) AccessChain 27(data) 29 39 30
+             568:     19(int) Load 567
+             569:     19(int) GroupNonUniformQuadSwap 35 568 61
+             570:     71(ptr) AccessChain 27(data) 566 39 30
+                              Store 570 569
+             571:      6(int) Load 8(invocation)
+             572:     78(ptr) AccessChain 27(data) 39 39
+             573:   20(ivec4) Load 572
+             574:   77(ivec2) VectorShuffle 573 573 0 1
+             575:   77(ivec2) GroupNonUniformQuadSwap 35 574 61
+             576:     71(ptr) AccessChain 27(data) 571 39 30
+             577:     19(int) CompositeExtract 575 0
+                              Store 576 577
+             578:     71(ptr) AccessChain 27(data) 571 39 34
+             579:     19(int) CompositeExtract 575 1
+                              Store 578 579
              580:      6(int) Load 8(invocation)
-             581:     66(ptr) AccessChain 27(data) 29 39 30
-             582:     19(int) Load 581
-             583:   158(bool) SLessThan 582 29
-             584:   158(bool) GroupNonUniformQuadSwap 35 583 478
-             585:     19(int) Select 584 39 29
-             586:     66(ptr) AccessChain 27(data) 580 39 30
-                              Store 586 585
-             587:      6(int) Load 8(invocation)
-             588:     73(ptr) AccessChain 27(data) 39 39
-             589:   20(ivec4) Load 588
-             590:   72(ivec2) VectorShuffle 589 589 0 1
-             591:  168(bvec2) SLessThan 590 167
-             592:  168(bvec2) GroupNonUniformQuadSwap 35 591 478
-             593:   72(ivec2) Select 592 171 167
-             594:     73(ptr) AccessChain 27(data) 587 39
-             595:   20(ivec4) Load 594
-             596:   20(ivec4) VectorShuffle 595 593 4 5 2 3
-                              Store 594 596
-             597:      6(int) Load 8(invocation)
-             598:     73(ptr) AccessChain 27(data) 39 39
-             599:   20(ivec4) Load 598
-             600:   82(ivec3) VectorShuffle 599 599 0 1 2
-             601:  181(bvec3) SLessThan 600 180
-             602:  181(bvec3) GroupNonUniformQuadSwap 35 601 478
-             603:   82(ivec3) Select 602 184 180
-             604:     73(ptr) AccessChain 27(data) 597 39
-             605:   20(ivec4) Load 604
-             606:   20(ivec4) VectorShuffle 605 603 4 5 6 3
-                              Store 604 606
-             607:      6(int) Load 8(invocation)
-             608:     73(ptr) AccessChain 27(data) 39 39
-             609:   20(ivec4) Load 608
-             610:  193(bvec4) SLessThan 609 192
-             611:  193(bvec4) GroupNonUniformQuadSwap 35 610 478
-             612:   20(ivec4) Select 611 196 192
-             613:     73(ptr) AccessChain 27(data) 607 39
-                              Store 613 612
+             581:     78(ptr) AccessChain 27(data) 51 39
+             582:   20(ivec4) Load 581
+             583:   88(ivec3) VectorShuffle 582 582 0 1 2
+             584:   88(ivec3) GroupNonUniformQuadSwap 35 583 61
+             585:     71(ptr) AccessChain 27(data) 580 39 30
+             586:     19(int) CompositeExtract 584 0
+                              Store 585 586
+             587:     71(ptr) AccessChain 27(data) 580 39 34
+             588:     19(int) CompositeExtract 584 1
+                              Store 587 588
+             589:     71(ptr) AccessChain 27(data) 580 39 61
+             590:     19(int) CompositeExtract 584 2
+                              Store 589 590
+             591:      6(int) Load 8(invocation)
+             592:     78(ptr) AccessChain 27(data) 65 39
+             593:   20(ivec4) Load 592
+             594:   20(ivec4) GroupNonUniformQuadSwap 35 593 61
+             595:     78(ptr) AccessChain 27(data) 591 39
+                              Store 595 594
+             596:      6(int) Load 8(invocation)
+             597:    105(ptr) AccessChain 27(data) 29 51 30
+             598:      6(int) Load 597
+             599:      6(int) GroupNonUniformQuadSwap 35 598 61
+             600:    105(ptr) AccessChain 27(data) 596 51 30
+                              Store 600 599
+             601:      6(int) Load 8(invocation)
+             602:    112(ptr) AccessChain 27(data) 39 51
+             603:   21(ivec4) Load 602
+             604:  111(ivec2) VectorShuffle 603 603 0 1
+             605:  111(ivec2) GroupNonUniformQuadSwap 35 604 61
+             606:    105(ptr) AccessChain 27(data) 601 51 30
+             607:      6(int) CompositeExtract 605 0
+                              Store 606 607
+             608:    105(ptr) AccessChain 27(data) 601 51 34
+             609:      6(int) CompositeExtract 605 1
+                              Store 608 609
+             610:      6(int) Load 8(invocation)
+             611:    112(ptr) AccessChain 27(data) 51 51
+             612:   21(ivec4) Load 611
+             613:  122(ivec3) VectorShuffle 612 612 0 1 2
+             614:  122(ivec3) GroupNonUniformQuadSwap 35 613 61
+             615:    105(ptr) AccessChain 27(data) 610 51 30
+             616:      6(int) CompositeExtract 614 0
+                              Store 615 616
+             617:    105(ptr) AccessChain 27(data) 610 51 34
+             618:      6(int) CompositeExtract 614 1
+                              Store 617 618
+             619:    105(ptr) AccessChain 27(data) 610 51 61
+             620:      6(int) CompositeExtract 614 2
+                              Store 619 620
+             621:      6(int) Load 8(invocation)
+             622:    112(ptr) AccessChain 27(data) 65 51
+             623:   21(ivec4) Load 622
+             624:   21(ivec4) GroupNonUniformQuadSwap 35 623 61
+             625:    112(ptr) AccessChain 27(data) 621 51
+                              Store 625 624
+             626:      6(int) Load 8(invocation)
+             627:    139(ptr) AccessChain 27(data) 29 65 30
+             628:22(float64_t) Load 627
+             629:22(float64_t) GroupNonUniformQuadSwap 35 628 61
+             630:    139(ptr) AccessChain 27(data) 626 65 30
+                              Store 630 629
+             631:      6(int) Load 8(invocation)
+             632:    146(ptr) AccessChain 27(data) 39 65
+             633: 23(f64vec4) Load 632
+             634:145(f64vec2) VectorShuffle 633 633 0 1
+             635:145(f64vec2) GroupNonUniformQuadSwap 35 634 61
+             636:    139(ptr) AccessChain 27(data) 631 65 30
+             637:22(float64_t) CompositeExtract 635 0
+                              Store 636 637
+             638:    139(ptr) AccessChain 27(data) 631 65 34
+             639:22(float64_t) CompositeExtract 635 1
+                              Store 638 639
+             640:      6(int) Load 8(invocation)
+             641:    146(ptr) AccessChain 27(data) 51 65
+             642: 23(f64vec4) Load 641
+             643:156(f64vec3) VectorShuffle 642 642 0 1 2
+             644:156(f64vec3) GroupNonUniformQuadSwap 35 643 61
+             645:    139(ptr) AccessChain 27(data) 640 65 30
+             646:22(float64_t) CompositeExtract 644 0
+                              Store 645 646
+             647:    139(ptr) AccessChain 27(data) 640 65 34
+             648:22(float64_t) CompositeExtract 644 1
+                              Store 647 648
+             649:    139(ptr) AccessChain 27(data) 640 65 61
+             650:22(float64_t) CompositeExtract 644 2
+                              Store 649 650
+             651:      6(int) Load 8(invocation)
+             652:    146(ptr) AccessChain 27(data) 65 65
+             653: 23(f64vec4) Load 652
+             654: 23(f64vec4) GroupNonUniformQuadSwap 35 653 61
+             655:    146(ptr) AccessChain 27(data) 651 65
+                              Store 655 654
+             656:      6(int) Load 8(invocation)
+             657:     71(ptr) AccessChain 27(data) 29 39 30
+             658:     19(int) Load 657
+             659:   175(bool) SLessThan 658 29
+             660:   175(bool) GroupNonUniformQuadSwap 35 659 61
+             661:     19(int) Select 660 39 29
+             662:     71(ptr) AccessChain 27(data) 656 39 30
+                              Store 662 661
+             663:      6(int) Load 8(invocation)
+             664:     78(ptr) AccessChain 27(data) 39 39
+             665:   20(ivec4) Load 664
+             666:   77(ivec2) VectorShuffle 665 665 0 1
+             667:  185(bvec2) SLessThan 666 184
+             668:  185(bvec2) GroupNonUniformQuadSwap 35 667 61
+             669:   77(ivec2) Select 668 188 184
+             670:     71(ptr) AccessChain 27(data) 663 39 30
+             671:     19(int) CompositeExtract 669 0
+                              Store 670 671
+             672:     71(ptr) AccessChain 27(data) 663 39 34
+             673:     19(int) CompositeExtract 669 1
+                              Store 672 673
+             674:      6(int) Load 8(invocation)
+             675:     78(ptr) AccessChain 27(data) 39 39
+             676:   20(ivec4) Load 675
+             677:   88(ivec3) VectorShuffle 676 676 0 1 2
+             678:  199(bvec3) SLessThan 677 198
+             679:  199(bvec3) GroupNonUniformQuadSwap 35 678 61
+             680:   88(ivec3) Select 679 202 198
+             681:     71(ptr) AccessChain 27(data) 674 39 30
+             682:     19(int) CompositeExtract 680 0
+                              Store 681 682
+             683:     71(ptr) AccessChain 27(data) 674 39 34
+             684:     19(int) CompositeExtract 680 1
+                              Store 683 684
+             685:     71(ptr) AccessChain 27(data) 674 39 61
+             686:     19(int) CompositeExtract 680 2
+                              Store 685 686
+             687:      6(int) Load 8(invocation)
+             688:     78(ptr) AccessChain 27(data) 39 39
+             689:   20(ivec4) Load 688
+             690:  214(bvec4) SLessThan 689 213
+             691:  214(bvec4) GroupNonUniformQuadSwap 35 690 61
+             692:   20(ivec4) Select 691 217 213
+             693:     78(ptr) AccessChain 27(data) 687 39
+                              Store 693 692
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.subgroupShuffle.comp.out b/Test/baseResults/spv.subgroupShuffle.comp.out
index b160c5f..02cf89f 100644
--- a/Test/baseResults/spv.subgroupShuffle.comp.out
+++ b/Test/baseResults/spv.subgroupShuffle.comp.out
@@ -1,7 +1,7 @@
 spv.subgroupShuffle.comp
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 379
+// Id's are bound by 420
 
                               Capability Shader
                               Capability Float64
@@ -39,7 +39,7 @@
                               Decorate 24(Buffers) Block
                               Decorate 27(data) DescriptorSet 0
                               Decorate 27(data) Binding 0
-                              Decorate 378 BuiltIn WorkgroupSize
+                              Decorate 419 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -66,34 +66,35 @@
               39:     19(int) Constant 1
               40:             TypeVector 17(float) 2
               41:             TypePointer StorageBuffer 18(fvec4)
-              51:     19(int) Constant 2
-              52:             TypeVector 17(float) 3
-              62:     19(int) Constant 3
-              69:             TypePointer StorageBuffer 19(int)
-              76:             TypeVector 19(int) 2
-              77:             TypePointer StorageBuffer 20(ivec4)
-              87:             TypeVector 19(int) 3
-             103:             TypePointer StorageBuffer 6(int)
-             110:             TypeVector 6(int) 2
-             111:             TypePointer StorageBuffer 21(ivec4)
-             121:             TypeVector 6(int) 3
-             137:             TypePointer StorageBuffer 22(float64_t)
-             144:             TypeVector 22(float64_t) 2
-             145:             TypePointer StorageBuffer 23(f64vec4)
-             155:             TypeVector 22(float64_t) 3
-             173:             TypeBool
-             183:   76(ivec2) ConstantComposite 29 29
-             184:             TypeVector 173(bool) 2
-             188:   76(ivec2) ConstantComposite 39 39
-             197:   87(ivec3) ConstantComposite 29 29 29
-             198:             TypeVector 173(bool) 3
-             202:   87(ivec3) ConstantComposite 39 39 39
-             210:   20(ivec4) ConstantComposite 29 29 29 29
-             211:             TypeVector 173(bool) 4
-             215:   20(ivec4) ConstantComposite 39 39 39 39
-             376:      6(int) Constant 8
-             377:      6(int) Constant 1
-             378:  121(ivec3) ConstantComposite 376 376 377
+              49:      6(int) Constant 1
+              53:     19(int) Constant 2
+              54:             TypeVector 17(float) 3
+              64:      6(int) Constant 2
+              68:     19(int) Constant 3
+              75:             TypePointer StorageBuffer 19(int)
+              82:             TypeVector 19(int) 2
+              83:             TypePointer StorageBuffer 20(ivec4)
+              94:             TypeVector 19(int) 3
+             113:             TypePointer StorageBuffer 6(int)
+             120:             TypeVector 6(int) 2
+             121:             TypePointer StorageBuffer 21(ivec4)
+             132:             TypeVector 6(int) 3
+             151:             TypePointer StorageBuffer 22(float64_t)
+             158:             TypeVector 22(float64_t) 2
+             159:             TypePointer StorageBuffer 23(f64vec4)
+             170:             TypeVector 22(float64_t) 3
+             191:             TypeBool
+             201:   82(ivec2) ConstantComposite 29 29
+             202:             TypeVector 191(bool) 2
+             206:   82(ivec2) ConstantComposite 39 39
+             216:   94(ivec3) ConstantComposite 29 29 29
+             217:             TypeVector 191(bool) 3
+             221:   94(ivec3) ConstantComposite 39 39 39
+             232:   20(ivec4) ConstantComposite 29 29 29 29
+             233:             TypeVector 191(bool) 4
+             237:   20(ivec4) ConstantComposite 39 39 39 39
+             418:      6(int) Constant 8
+             419:  132(ivec3) ConstantComposite 418 418 49
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -115,348 +116,418 @@
               44:   40(fvec2) VectorShuffle 43 43 0 1
               45:      6(int) Load 8(invocation)
               46:   40(fvec2) GroupNonUniformShuffle 35 44 45
-              47:     41(ptr) AccessChain 27(data) 38 29
-              48:   18(fvec4) Load 47
-              49:   18(fvec4) VectorShuffle 48 46 4 5 2 3
-                              Store 47 49
-              50:      6(int) Load 8(invocation)
-              53:     41(ptr) AccessChain 27(data) 51 29
-              54:   18(fvec4) Load 53
-              55:   52(fvec3) VectorShuffle 54 54 0 1 2
-              56:      6(int) Load 8(invocation)
-              57:   52(fvec3) GroupNonUniformShuffle 35 55 56
-              58:     41(ptr) AccessChain 27(data) 50 29
-              59:   18(fvec4) Load 58
-              60:   18(fvec4) VectorShuffle 59 57 4 5 6 3
-                              Store 58 60
-              61:      6(int) Load 8(invocation)
-              63:     41(ptr) AccessChain 27(data) 62 29
-              64:   18(fvec4) Load 63
-              65:      6(int) Load 8(invocation)
-              66:   18(fvec4) GroupNonUniformShuffle 35 64 65
-              67:     41(ptr) AccessChain 27(data) 61 29
-                              Store 67 66
-              68:      6(int) Load 8(invocation)
-              70:     69(ptr) AccessChain 27(data) 29 39 30
-              71:     19(int) Load 70
-              72:      6(int) Load 8(invocation)
-              73:     19(int) GroupNonUniformShuffle 35 71 72
-              74:     69(ptr) AccessChain 27(data) 68 39 30
-                              Store 74 73
-              75:      6(int) Load 8(invocation)
-              78:     77(ptr) AccessChain 27(data) 39 39
-              79:   20(ivec4) Load 78
-              80:   76(ivec2) VectorShuffle 79 79 0 1
+              47:     31(ptr) AccessChain 27(data) 38 29 30
+              48:   17(float) CompositeExtract 46 0
+                              Store 47 48
+              50:     31(ptr) AccessChain 27(data) 38 29 49
+              51:   17(float) CompositeExtract 46 1
+                              Store 50 51
+              52:      6(int) Load 8(invocation)
+              55:     41(ptr) AccessChain 27(data) 53 29
+              56:   18(fvec4) Load 55
+              57:   54(fvec3) VectorShuffle 56 56 0 1 2
+              58:      6(int) Load 8(invocation)
+              59:   54(fvec3) GroupNonUniformShuffle 35 57 58
+              60:     31(ptr) AccessChain 27(data) 52 29 30
+              61:   17(float) CompositeExtract 59 0
+                              Store 60 61
+              62:     31(ptr) AccessChain 27(data) 52 29 49
+              63:   17(float) CompositeExtract 59 1
+                              Store 62 63
+              65:     31(ptr) AccessChain 27(data) 52 29 64
+              66:   17(float) CompositeExtract 59 2
+                              Store 65 66
+              67:      6(int) Load 8(invocation)
+              69:     41(ptr) AccessChain 27(data) 68 29
+              70:   18(fvec4) Load 69
+              71:      6(int) Load 8(invocation)
+              72:   18(fvec4) GroupNonUniformShuffle 35 70 71
+              73:     41(ptr) AccessChain 27(data) 67 29
+                              Store 73 72
+              74:      6(int) Load 8(invocation)
+              76:     75(ptr) AccessChain 27(data) 29 39 30
+              77:     19(int) Load 76
+              78:      6(int) Load 8(invocation)
+              79:     19(int) GroupNonUniformShuffle 35 77 78
+              80:     75(ptr) AccessChain 27(data) 74 39 30
+                              Store 80 79
               81:      6(int) Load 8(invocation)
-              82:   76(ivec2) GroupNonUniformShuffle 35 80 81
-              83:     77(ptr) AccessChain 27(data) 75 39
-              84:   20(ivec4) Load 83
-              85:   20(ivec4) VectorShuffle 84 82 4 5 2 3
-                              Store 83 85
-              86:      6(int) Load 8(invocation)
-              88:     77(ptr) AccessChain 27(data) 51 39
-              89:   20(ivec4) Load 88
-              90:   87(ivec3) VectorShuffle 89 89 0 1 2
-              91:      6(int) Load 8(invocation)
-              92:   87(ivec3) GroupNonUniformShuffle 35 90 91
-              93:     77(ptr) AccessChain 27(data) 86 39
-              94:   20(ivec4) Load 93
-              95:   20(ivec4) VectorShuffle 94 92 4 5 6 3
-                              Store 93 95
-              96:      6(int) Load 8(invocation)
-              97:     77(ptr) AccessChain 27(data) 62 39
-              98:   20(ivec4) Load 97
-              99:      6(int) Load 8(invocation)
-             100:   20(ivec4) GroupNonUniformShuffle 35 98 99
-             101:     77(ptr) AccessChain 27(data) 96 39
-                              Store 101 100
-             102:      6(int) Load 8(invocation)
-             104:    103(ptr) AccessChain 27(data) 29 51 30
-             105:      6(int) Load 104
+              84:     83(ptr) AccessChain 27(data) 39 39
+              85:   20(ivec4) Load 84
+              86:   82(ivec2) VectorShuffle 85 85 0 1
+              87:      6(int) Load 8(invocation)
+              88:   82(ivec2) GroupNonUniformShuffle 35 86 87
+              89:     75(ptr) AccessChain 27(data) 81 39 30
+              90:     19(int) CompositeExtract 88 0
+                              Store 89 90
+              91:     75(ptr) AccessChain 27(data) 81 39 49
+              92:     19(int) CompositeExtract 88 1
+                              Store 91 92
+              93:      6(int) Load 8(invocation)
+              95:     83(ptr) AccessChain 27(data) 53 39
+              96:   20(ivec4) Load 95
+              97:   94(ivec3) VectorShuffle 96 96 0 1 2
+              98:      6(int) Load 8(invocation)
+              99:   94(ivec3) GroupNonUniformShuffle 35 97 98
+             100:     75(ptr) AccessChain 27(data) 93 39 30
+             101:     19(int) CompositeExtract 99 0
+                              Store 100 101
+             102:     75(ptr) AccessChain 27(data) 93 39 49
+             103:     19(int) CompositeExtract 99 1
+                              Store 102 103
+             104:     75(ptr) AccessChain 27(data) 93 39 64
+             105:     19(int) CompositeExtract 99 2
+                              Store 104 105
              106:      6(int) Load 8(invocation)
-             107:      6(int) GroupNonUniformShuffle 35 105 106
-             108:    103(ptr) AccessChain 27(data) 102 51 30
-                              Store 108 107
+             107:     83(ptr) AccessChain 27(data) 68 39
+             108:   20(ivec4) Load 107
              109:      6(int) Load 8(invocation)
-             112:    111(ptr) AccessChain 27(data) 39 51
-             113:   21(ivec4) Load 112
-             114:  110(ivec2) VectorShuffle 113 113 0 1
-             115:      6(int) Load 8(invocation)
-             116:  110(ivec2) GroupNonUniformShuffle 35 114 115
-             117:    111(ptr) AccessChain 27(data) 109 51
-             118:   21(ivec4) Load 117
-             119:   21(ivec4) VectorShuffle 118 116 4 5 2 3
-                              Store 117 119
-             120:      6(int) Load 8(invocation)
-             122:    111(ptr) AccessChain 27(data) 51 51
+             110:   20(ivec4) GroupNonUniformShuffle 35 108 109
+             111:     83(ptr) AccessChain 27(data) 106 39
+                              Store 111 110
+             112:      6(int) Load 8(invocation)
+             114:    113(ptr) AccessChain 27(data) 29 53 30
+             115:      6(int) Load 114
+             116:      6(int) Load 8(invocation)
+             117:      6(int) GroupNonUniformShuffle 35 115 116
+             118:    113(ptr) AccessChain 27(data) 112 53 30
+                              Store 118 117
+             119:      6(int) Load 8(invocation)
+             122:    121(ptr) AccessChain 27(data) 39 53
              123:   21(ivec4) Load 122
-             124:  121(ivec3) VectorShuffle 123 123 0 1 2
+             124:  120(ivec2) VectorShuffle 123 123 0 1
              125:      6(int) Load 8(invocation)
-             126:  121(ivec3) GroupNonUniformShuffle 35 124 125
-             127:    111(ptr) AccessChain 27(data) 120 51
-             128:   21(ivec4) Load 127
-             129:   21(ivec4) VectorShuffle 128 126 4 5 6 3
-                              Store 127 129
-             130:      6(int) Load 8(invocation)
-             131:    111(ptr) AccessChain 27(data) 62 51
-             132:   21(ivec4) Load 131
-             133:      6(int) Load 8(invocation)
-             134:   21(ivec4) GroupNonUniformShuffle 35 132 133
-             135:    111(ptr) AccessChain 27(data) 130 51
-                              Store 135 134
+             126:  120(ivec2) GroupNonUniformShuffle 35 124 125
+             127:    113(ptr) AccessChain 27(data) 119 53 30
+             128:      6(int) CompositeExtract 126 0
+                              Store 127 128
+             129:    113(ptr) AccessChain 27(data) 119 53 49
+             130:      6(int) CompositeExtract 126 1
+                              Store 129 130
+             131:      6(int) Load 8(invocation)
+             133:    121(ptr) AccessChain 27(data) 53 53
+             134:   21(ivec4) Load 133
+             135:  132(ivec3) VectorShuffle 134 134 0 1 2
              136:      6(int) Load 8(invocation)
-             138:    137(ptr) AccessChain 27(data) 29 62 30
-             139:22(float64_t) Load 138
-             140:      6(int) Load 8(invocation)
-             141:22(float64_t) GroupNonUniformShuffle 35 139 140
-             142:    137(ptr) AccessChain 27(data) 136 62 30
-                              Store 142 141
-             143:      6(int) Load 8(invocation)
-             146:    145(ptr) AccessChain 27(data) 39 62
-             147: 23(f64vec4) Load 146
-             148:144(f64vec2) VectorShuffle 147 147 0 1
-             149:      6(int) Load 8(invocation)
-             150:144(f64vec2) GroupNonUniformShuffle 35 148 149
-             151:    145(ptr) AccessChain 27(data) 143 62
-             152: 23(f64vec4) Load 151
-             153: 23(f64vec4) VectorShuffle 152 150 4 5 2 3
-                              Store 151 153
+             137:  132(ivec3) GroupNonUniformShuffle 35 135 136
+             138:    113(ptr) AccessChain 27(data) 131 53 30
+             139:      6(int) CompositeExtract 137 0
+                              Store 138 139
+             140:    113(ptr) AccessChain 27(data) 131 53 49
+             141:      6(int) CompositeExtract 137 1
+                              Store 140 141
+             142:    113(ptr) AccessChain 27(data) 131 53 64
+             143:      6(int) CompositeExtract 137 2
+                              Store 142 143
+             144:      6(int) Load 8(invocation)
+             145:    121(ptr) AccessChain 27(data) 68 53
+             146:   21(ivec4) Load 145
+             147:      6(int) Load 8(invocation)
+             148:   21(ivec4) GroupNonUniformShuffle 35 146 147
+             149:    121(ptr) AccessChain 27(data) 144 53
+                              Store 149 148
+             150:      6(int) Load 8(invocation)
+             152:    151(ptr) AccessChain 27(data) 29 68 30
+             153:22(float64_t) Load 152
              154:      6(int) Load 8(invocation)
-             156:    145(ptr) AccessChain 27(data) 51 62
-             157: 23(f64vec4) Load 156
-             158:155(f64vec3) VectorShuffle 157 157 0 1 2
-             159:      6(int) Load 8(invocation)
-             160:155(f64vec3) GroupNonUniformShuffle 35 158 159
-             161:    145(ptr) AccessChain 27(data) 154 62
-             162: 23(f64vec4) Load 161
-             163: 23(f64vec4) VectorShuffle 162 160 4 5 6 3
-                              Store 161 163
-             164:      6(int) Load 8(invocation)
-             165:    145(ptr) AccessChain 27(data) 62 62
-             166: 23(f64vec4) Load 165
-             167:      6(int) Load 8(invocation)
-             168: 23(f64vec4) GroupNonUniformShuffle 35 166 167
-             169:    145(ptr) AccessChain 27(data) 164 62
-                              Store 169 168
-             170:      6(int) Load 8(invocation)
-             171:     69(ptr) AccessChain 27(data) 29 39 30
-             172:     19(int) Load 171
-             174:   173(bool) SLessThan 172 29
-             175:      6(int) Load 8(invocation)
-             176:   173(bool) GroupNonUniformShuffle 35 174 175
-             177:     19(int) Select 176 39 29
-             178:     69(ptr) AccessChain 27(data) 170 39 30
-                              Store 178 177
-             179:      6(int) Load 8(invocation)
-             180:     77(ptr) AccessChain 27(data) 39 39
-             181:   20(ivec4) Load 180
-             182:   76(ivec2) VectorShuffle 181 181 0 1
-             185:  184(bvec2) SLessThan 182 183
-             186:      6(int) Load 8(invocation)
-             187:  184(bvec2) GroupNonUniformShuffle 35 185 186
-             189:   76(ivec2) Select 187 188 183
-             190:     77(ptr) AccessChain 27(data) 179 39
-             191:   20(ivec4) Load 190
-             192:   20(ivec4) VectorShuffle 191 189 4 5 2 3
-                              Store 190 192
+             155:22(float64_t) GroupNonUniformShuffle 35 153 154
+             156:    151(ptr) AccessChain 27(data) 150 68 30
+                              Store 156 155
+             157:      6(int) Load 8(invocation)
+             160:    159(ptr) AccessChain 27(data) 39 68
+             161: 23(f64vec4) Load 160
+             162:158(f64vec2) VectorShuffle 161 161 0 1
+             163:      6(int) Load 8(invocation)
+             164:158(f64vec2) GroupNonUniformShuffle 35 162 163
+             165:    151(ptr) AccessChain 27(data) 157 68 30
+             166:22(float64_t) CompositeExtract 164 0
+                              Store 165 166
+             167:    151(ptr) AccessChain 27(data) 157 68 49
+             168:22(float64_t) CompositeExtract 164 1
+                              Store 167 168
+             169:      6(int) Load 8(invocation)
+             171:    159(ptr) AccessChain 27(data) 53 68
+             172: 23(f64vec4) Load 171
+             173:170(f64vec3) VectorShuffle 172 172 0 1 2
+             174:      6(int) Load 8(invocation)
+             175:170(f64vec3) GroupNonUniformShuffle 35 173 174
+             176:    151(ptr) AccessChain 27(data) 169 68 30
+             177:22(float64_t) CompositeExtract 175 0
+                              Store 176 177
+             178:    151(ptr) AccessChain 27(data) 169 68 49
+             179:22(float64_t) CompositeExtract 175 1
+                              Store 178 179
+             180:    151(ptr) AccessChain 27(data) 169 68 64
+             181:22(float64_t) CompositeExtract 175 2
+                              Store 180 181
+             182:      6(int) Load 8(invocation)
+             183:    159(ptr) AccessChain 27(data) 68 68
+             184: 23(f64vec4) Load 183
+             185:      6(int) Load 8(invocation)
+             186: 23(f64vec4) GroupNonUniformShuffle 35 184 185
+             187:    159(ptr) AccessChain 27(data) 182 68
+                              Store 187 186
+             188:      6(int) Load 8(invocation)
+             189:     75(ptr) AccessChain 27(data) 29 39 30
+             190:     19(int) Load 189
+             192:   191(bool) SLessThan 190 29
              193:      6(int) Load 8(invocation)
-             194:     77(ptr) AccessChain 27(data) 39 39
-             195:   20(ivec4) Load 194
-             196:   87(ivec3) VectorShuffle 195 195 0 1 2
-             199:  198(bvec3) SLessThan 196 197
-             200:      6(int) Load 8(invocation)
-             201:  198(bvec3) GroupNonUniformShuffle 35 199 200
-             203:   87(ivec3) Select 201 202 197
-             204:     77(ptr) AccessChain 27(data) 193 39
-             205:   20(ivec4) Load 204
-             206:   20(ivec4) VectorShuffle 205 203 4 5 6 3
-                              Store 204 206
-             207:      6(int) Load 8(invocation)
-             208:     77(ptr) AccessChain 27(data) 39 39
-             209:   20(ivec4) Load 208
-             212:  211(bvec4) SLessThan 209 210
-             213:      6(int) Load 8(invocation)
-             214:  211(bvec4) GroupNonUniformShuffle 35 212 213
-             216:   20(ivec4) Select 214 215 210
-             217:     77(ptr) AccessChain 27(data) 207 39
-                              Store 217 216
-             218:      6(int) Load 8(invocation)
-             219:     31(ptr) AccessChain 27(data) 29 29 30
-             220:   17(float) Load 219
-             221:      6(int) Load 8(invocation)
-             222:   17(float) GroupNonUniformShuffleXor 35 220 221
-             223:     31(ptr) AccessChain 27(data) 218 29 30
-                              Store 223 222
-             224:      6(int) Load 8(invocation)
-             225:     41(ptr) AccessChain 27(data) 39 29
-             226:   18(fvec4) Load 225
-             227:   40(fvec2) VectorShuffle 226 226 0 1
-             228:      6(int) Load 8(invocation)
-             229:   40(fvec2) GroupNonUniformShuffleXor 35 227 228
-             230:     41(ptr) AccessChain 27(data) 224 29
-             231:   18(fvec4) Load 230
-             232:   18(fvec4) VectorShuffle 231 229 4 5 2 3
-                              Store 230 232
-             233:      6(int) Load 8(invocation)
-             234:     41(ptr) AccessChain 27(data) 51 29
-             235:   18(fvec4) Load 234
-             236:   52(fvec3) VectorShuffle 235 235 0 1 2
-             237:      6(int) Load 8(invocation)
-             238:   52(fvec3) GroupNonUniformShuffleXor 35 236 237
-             239:     41(ptr) AccessChain 27(data) 233 29
-             240:   18(fvec4) Load 239
-             241:   18(fvec4) VectorShuffle 240 238 4 5 6 3
-                              Store 239 241
-             242:      6(int) Load 8(invocation)
-             243:     41(ptr) AccessChain 27(data) 62 29
-             244:   18(fvec4) Load 243
-             245:      6(int) Load 8(invocation)
-             246:   18(fvec4) GroupNonUniformShuffleXor 35 244 245
-             247:     41(ptr) AccessChain 27(data) 242 29
-                              Store 247 246
-             248:      6(int) Load 8(invocation)
-             249:     69(ptr) AccessChain 27(data) 29 39 30
-             250:     19(int) Load 249
-             251:      6(int) Load 8(invocation)
-             252:     19(int) GroupNonUniformShuffleXor 35 250 251
-             253:     69(ptr) AccessChain 27(data) 248 39 30
-                              Store 253 252
-             254:      6(int) Load 8(invocation)
-             255:     77(ptr) AccessChain 27(data) 39 39
-             256:   20(ivec4) Load 255
-             257:   76(ivec2) VectorShuffle 256 256 0 1
-             258:      6(int) Load 8(invocation)
-             259:   76(ivec2) GroupNonUniformShuffleXor 35 257 258
-             260:     77(ptr) AccessChain 27(data) 254 39
-             261:   20(ivec4) Load 260
-             262:   20(ivec4) VectorShuffle 261 259 4 5 2 3
-                              Store 260 262
-             263:      6(int) Load 8(invocation)
-             264:     77(ptr) AccessChain 27(data) 51 39
-             265:   20(ivec4) Load 264
-             266:   87(ivec3) VectorShuffle 265 265 0 1 2
-             267:      6(int) Load 8(invocation)
-             268:   87(ivec3) GroupNonUniformShuffleXor 35 266 267
-             269:     77(ptr) AccessChain 27(data) 263 39
-             270:   20(ivec4) Load 269
-             271:   20(ivec4) VectorShuffle 270 268 4 5 6 3
-                              Store 269 271
-             272:      6(int) Load 8(invocation)
-             273:     77(ptr) AccessChain 27(data) 62 39
-             274:   20(ivec4) Load 273
-             275:      6(int) Load 8(invocation)
-             276:   20(ivec4) GroupNonUniformShuffleXor 35 274 275
-             277:     77(ptr) AccessChain 27(data) 272 39
-                              Store 277 276
-             278:      6(int) Load 8(invocation)
-             279:    103(ptr) AccessChain 27(data) 29 51 30
-             280:      6(int) Load 279
-             281:      6(int) Load 8(invocation)
-             282:      6(int) GroupNonUniformShuffleXor 35 280 281
-             283:    103(ptr) AccessChain 27(data) 278 51 30
-                              Store 283 282
+             194:   191(bool) GroupNonUniformShuffle 35 192 193
+             195:     19(int) Select 194 39 29
+             196:     75(ptr) AccessChain 27(data) 188 39 30
+                              Store 196 195
+             197:      6(int) Load 8(invocation)
+             198:     83(ptr) AccessChain 27(data) 39 39
+             199:   20(ivec4) Load 198
+             200:   82(ivec2) VectorShuffle 199 199 0 1
+             203:  202(bvec2) SLessThan 200 201
+             204:      6(int) Load 8(invocation)
+             205:  202(bvec2) GroupNonUniformShuffle 35 203 204
+             207:   82(ivec2) Select 205 206 201
+             208:     75(ptr) AccessChain 27(data) 197 39 30
+             209:     19(int) CompositeExtract 207 0
+                              Store 208 209
+             210:     75(ptr) AccessChain 27(data) 197 39 49
+             211:     19(int) CompositeExtract 207 1
+                              Store 210 211
+             212:      6(int) Load 8(invocation)
+             213:     83(ptr) AccessChain 27(data) 39 39
+             214:   20(ivec4) Load 213
+             215:   94(ivec3) VectorShuffle 214 214 0 1 2
+             218:  217(bvec3) SLessThan 215 216
+             219:      6(int) Load 8(invocation)
+             220:  217(bvec3) GroupNonUniformShuffle 35 218 219
+             222:   94(ivec3) Select 220 221 216
+             223:     75(ptr) AccessChain 27(data) 212 39 30
+             224:     19(int) CompositeExtract 222 0
+                              Store 223 224
+             225:     75(ptr) AccessChain 27(data) 212 39 49
+             226:     19(int) CompositeExtract 222 1
+                              Store 225 226
+             227:     75(ptr) AccessChain 27(data) 212 39 64
+             228:     19(int) CompositeExtract 222 2
+                              Store 227 228
+             229:      6(int) Load 8(invocation)
+             230:     83(ptr) AccessChain 27(data) 39 39
+             231:   20(ivec4) Load 230
+             234:  233(bvec4) SLessThan 231 232
+             235:      6(int) Load 8(invocation)
+             236:  233(bvec4) GroupNonUniformShuffle 35 234 235
+             238:   20(ivec4) Select 236 237 232
+             239:     83(ptr) AccessChain 27(data) 229 39
+                              Store 239 238
+             240:      6(int) Load 8(invocation)
+             241:     31(ptr) AccessChain 27(data) 29 29 30
+             242:   17(float) Load 241
+             243:      6(int) Load 8(invocation)
+             244:   17(float) GroupNonUniformShuffleXor 35 242 243
+             245:     31(ptr) AccessChain 27(data) 240 29 30
+                              Store 245 244
+             246:      6(int) Load 8(invocation)
+             247:     41(ptr) AccessChain 27(data) 39 29
+             248:   18(fvec4) Load 247
+             249:   40(fvec2) VectorShuffle 248 248 0 1
+             250:      6(int) Load 8(invocation)
+             251:   40(fvec2) GroupNonUniformShuffleXor 35 249 250
+             252:     31(ptr) AccessChain 27(data) 246 29 30
+             253:   17(float) CompositeExtract 251 0
+                              Store 252 253
+             254:     31(ptr) AccessChain 27(data) 246 29 49
+             255:   17(float) CompositeExtract 251 1
+                              Store 254 255
+             256:      6(int) Load 8(invocation)
+             257:     41(ptr) AccessChain 27(data) 53 29
+             258:   18(fvec4) Load 257
+             259:   54(fvec3) VectorShuffle 258 258 0 1 2
+             260:      6(int) Load 8(invocation)
+             261:   54(fvec3) GroupNonUniformShuffleXor 35 259 260
+             262:     31(ptr) AccessChain 27(data) 256 29 30
+             263:   17(float) CompositeExtract 261 0
+                              Store 262 263
+             264:     31(ptr) AccessChain 27(data) 256 29 49
+             265:   17(float) CompositeExtract 261 1
+                              Store 264 265
+             266:     31(ptr) AccessChain 27(data) 256 29 64
+             267:   17(float) CompositeExtract 261 2
+                              Store 266 267
+             268:      6(int) Load 8(invocation)
+             269:     41(ptr) AccessChain 27(data) 68 29
+             270:   18(fvec4) Load 269
+             271:      6(int) Load 8(invocation)
+             272:   18(fvec4) GroupNonUniformShuffleXor 35 270 271
+             273:     41(ptr) AccessChain 27(data) 268 29
+                              Store 273 272
+             274:      6(int) Load 8(invocation)
+             275:     75(ptr) AccessChain 27(data) 29 39 30
+             276:     19(int) Load 275
+             277:      6(int) Load 8(invocation)
+             278:     19(int) GroupNonUniformShuffleXor 35 276 277
+             279:     75(ptr) AccessChain 27(data) 274 39 30
+                              Store 279 278
+             280:      6(int) Load 8(invocation)
+             281:     83(ptr) AccessChain 27(data) 39 39
+             282:   20(ivec4) Load 281
+             283:   82(ivec2) VectorShuffle 282 282 0 1
              284:      6(int) Load 8(invocation)
-             285:    111(ptr) AccessChain 27(data) 39 51
-             286:   21(ivec4) Load 285
-             287:  110(ivec2) VectorShuffle 286 286 0 1
-             288:      6(int) Load 8(invocation)
-             289:  110(ivec2) GroupNonUniformShuffleXor 35 287 288
-             290:    111(ptr) AccessChain 27(data) 284 51
-             291:   21(ivec4) Load 290
-             292:   21(ivec4) VectorShuffle 291 289 4 5 2 3
-                              Store 290 292
-             293:      6(int) Load 8(invocation)
-             294:    111(ptr) AccessChain 27(data) 51 51
-             295:   21(ivec4) Load 294
-             296:  121(ivec3) VectorShuffle 295 295 0 1 2
-             297:      6(int) Load 8(invocation)
-             298:  121(ivec3) GroupNonUniformShuffleXor 35 296 297
-             299:    111(ptr) AccessChain 27(data) 293 51
-             300:   21(ivec4) Load 299
-             301:   21(ivec4) VectorShuffle 300 298 4 5 6 3
-                              Store 299 301
+             285:   82(ivec2) GroupNonUniformShuffleXor 35 283 284
+             286:     75(ptr) AccessChain 27(data) 280 39 30
+             287:     19(int) CompositeExtract 285 0
+                              Store 286 287
+             288:     75(ptr) AccessChain 27(data) 280 39 49
+             289:     19(int) CompositeExtract 285 1
+                              Store 288 289
+             290:      6(int) Load 8(invocation)
+             291:     83(ptr) AccessChain 27(data) 53 39
+             292:   20(ivec4) Load 291
+             293:   94(ivec3) VectorShuffle 292 292 0 1 2
+             294:      6(int) Load 8(invocation)
+             295:   94(ivec3) GroupNonUniformShuffleXor 35 293 294
+             296:     75(ptr) AccessChain 27(data) 290 39 30
+             297:     19(int) CompositeExtract 295 0
+                              Store 296 297
+             298:     75(ptr) AccessChain 27(data) 290 39 49
+             299:     19(int) CompositeExtract 295 1
+                              Store 298 299
+             300:     75(ptr) AccessChain 27(data) 290 39 64
+             301:     19(int) CompositeExtract 295 2
+                              Store 300 301
              302:      6(int) Load 8(invocation)
-             303:    111(ptr) AccessChain 27(data) 62 51
-             304:   21(ivec4) Load 303
+             303:     83(ptr) AccessChain 27(data) 68 39
+             304:   20(ivec4) Load 303
              305:      6(int) Load 8(invocation)
-             306:   21(ivec4) GroupNonUniformShuffleXor 35 304 305
-             307:    111(ptr) AccessChain 27(data) 302 51
+             306:   20(ivec4) GroupNonUniformShuffleXor 35 304 305
+             307:     83(ptr) AccessChain 27(data) 302 39
                               Store 307 306
              308:      6(int) Load 8(invocation)
-             309:    137(ptr) AccessChain 27(data) 29 62 30
-             310:22(float64_t) Load 309
+             309:    113(ptr) AccessChain 27(data) 29 53 30
+             310:      6(int) Load 309
              311:      6(int) Load 8(invocation)
-             312:22(float64_t) GroupNonUniformShuffleXor 35 310 311
-             313:    137(ptr) AccessChain 27(data) 308 62 30
+             312:      6(int) GroupNonUniformShuffleXor 35 310 311
+             313:    113(ptr) AccessChain 27(data) 308 53 30
                               Store 313 312
              314:      6(int) Load 8(invocation)
-             315:    145(ptr) AccessChain 27(data) 39 62
-             316: 23(f64vec4) Load 315
-             317:144(f64vec2) VectorShuffle 316 316 0 1
+             315:    121(ptr) AccessChain 27(data) 39 53
+             316:   21(ivec4) Load 315
+             317:  120(ivec2) VectorShuffle 316 316 0 1
              318:      6(int) Load 8(invocation)
-             319:144(f64vec2) GroupNonUniformShuffleXor 35 317 318
-             320:    145(ptr) AccessChain 27(data) 314 62
-             321: 23(f64vec4) Load 320
-             322: 23(f64vec4) VectorShuffle 321 319 4 5 2 3
-                              Store 320 322
-             323:      6(int) Load 8(invocation)
-             324:    145(ptr) AccessChain 27(data) 51 62
-             325: 23(f64vec4) Load 324
-             326:155(f64vec3) VectorShuffle 325 325 0 1 2
-             327:      6(int) Load 8(invocation)
-             328:155(f64vec3) GroupNonUniformShuffleXor 35 326 327
-             329:    145(ptr) AccessChain 27(data) 323 62
-             330: 23(f64vec4) Load 329
-             331: 23(f64vec4) VectorShuffle 330 328 4 5 6 3
-                              Store 329 331
-             332:      6(int) Load 8(invocation)
-             333:    145(ptr) AccessChain 27(data) 62 62
-             334: 23(f64vec4) Load 333
-             335:      6(int) Load 8(invocation)
-             336: 23(f64vec4) GroupNonUniformShuffleXor 35 334 335
-             337:    145(ptr) AccessChain 27(data) 332 62
-                              Store 337 336
-             338:      6(int) Load 8(invocation)
-             339:     69(ptr) AccessChain 27(data) 29 39 30
-             340:     19(int) Load 339
-             341:   173(bool) SLessThan 340 29
+             319:  120(ivec2) GroupNonUniformShuffleXor 35 317 318
+             320:    113(ptr) AccessChain 27(data) 314 53 30
+             321:      6(int) CompositeExtract 319 0
+                              Store 320 321
+             322:    113(ptr) AccessChain 27(data) 314 53 49
+             323:      6(int) CompositeExtract 319 1
+                              Store 322 323
+             324:      6(int) Load 8(invocation)
+             325:    121(ptr) AccessChain 27(data) 53 53
+             326:   21(ivec4) Load 325
+             327:  132(ivec3) VectorShuffle 326 326 0 1 2
+             328:      6(int) Load 8(invocation)
+             329:  132(ivec3) GroupNonUniformShuffleXor 35 327 328
+             330:    113(ptr) AccessChain 27(data) 324 53 30
+             331:      6(int) CompositeExtract 329 0
+                              Store 330 331
+             332:    113(ptr) AccessChain 27(data) 324 53 49
+             333:      6(int) CompositeExtract 329 1
+                              Store 332 333
+             334:    113(ptr) AccessChain 27(data) 324 53 64
+             335:      6(int) CompositeExtract 329 2
+                              Store 334 335
+             336:      6(int) Load 8(invocation)
+             337:    121(ptr) AccessChain 27(data) 68 53
+             338:   21(ivec4) Load 337
+             339:      6(int) Load 8(invocation)
+             340:   21(ivec4) GroupNonUniformShuffleXor 35 338 339
+             341:    121(ptr) AccessChain 27(data) 336 53
+                              Store 341 340
              342:      6(int) Load 8(invocation)
-             343:   173(bool) GroupNonUniformShuffleXor 35 341 342
-             344:     19(int) Select 343 39 29
-             345:     69(ptr) AccessChain 27(data) 338 39 30
-                              Store 345 344
-             346:      6(int) Load 8(invocation)
-             347:     77(ptr) AccessChain 27(data) 39 39
-             348:   20(ivec4) Load 347
-             349:   76(ivec2) VectorShuffle 348 348 0 1
-             350:  184(bvec2) SLessThan 349 183
-             351:      6(int) Load 8(invocation)
-             352:  184(bvec2) GroupNonUniformShuffleXor 35 350 351
-             353:   76(ivec2) Select 352 188 183
-             354:     77(ptr) AccessChain 27(data) 346 39
-             355:   20(ivec4) Load 354
-             356:   20(ivec4) VectorShuffle 355 353 4 5 2 3
-                              Store 354 356
-             357:      6(int) Load 8(invocation)
-             358:     77(ptr) AccessChain 27(data) 39 39
-             359:   20(ivec4) Load 358
-             360:   87(ivec3) VectorShuffle 359 359 0 1 2
-             361:  198(bvec3) SLessThan 360 197
+             343:    151(ptr) AccessChain 27(data) 29 68 30
+             344:22(float64_t) Load 343
+             345:      6(int) Load 8(invocation)
+             346:22(float64_t) GroupNonUniformShuffleXor 35 344 345
+             347:    151(ptr) AccessChain 27(data) 342 68 30
+                              Store 347 346
+             348:      6(int) Load 8(invocation)
+             349:    159(ptr) AccessChain 27(data) 39 68
+             350: 23(f64vec4) Load 349
+             351:158(f64vec2) VectorShuffle 350 350 0 1
+             352:      6(int) Load 8(invocation)
+             353:158(f64vec2) GroupNonUniformShuffleXor 35 351 352
+             354:    151(ptr) AccessChain 27(data) 348 68 30
+             355:22(float64_t) CompositeExtract 353 0
+                              Store 354 355
+             356:    151(ptr) AccessChain 27(data) 348 68 49
+             357:22(float64_t) CompositeExtract 353 1
+                              Store 356 357
+             358:      6(int) Load 8(invocation)
+             359:    159(ptr) AccessChain 27(data) 53 68
+             360: 23(f64vec4) Load 359
+             361:170(f64vec3) VectorShuffle 360 360 0 1 2
              362:      6(int) Load 8(invocation)
-             363:  198(bvec3) GroupNonUniformShuffleXor 35 361 362
-             364:   87(ivec3) Select 363 202 197
-             365:     77(ptr) AccessChain 27(data) 357 39
-             366:   20(ivec4) Load 365
-             367:   20(ivec4) VectorShuffle 366 364 4 5 6 3
-                              Store 365 367
-             368:      6(int) Load 8(invocation)
-             369:     77(ptr) AccessChain 27(data) 39 39
-             370:   20(ivec4) Load 369
-             371:  211(bvec4) SLessThan 370 210
-             372:      6(int) Load 8(invocation)
-             373:  211(bvec4) GroupNonUniformShuffleXor 35 371 372
-             374:   20(ivec4) Select 373 215 210
-             375:     77(ptr) AccessChain 27(data) 368 39
+             363:170(f64vec3) GroupNonUniformShuffleXor 35 361 362
+             364:    151(ptr) AccessChain 27(data) 358 68 30
+             365:22(float64_t) CompositeExtract 363 0
+                              Store 364 365
+             366:    151(ptr) AccessChain 27(data) 358 68 49
+             367:22(float64_t) CompositeExtract 363 1
+                              Store 366 367
+             368:    151(ptr) AccessChain 27(data) 358 68 64
+             369:22(float64_t) CompositeExtract 363 2
+                              Store 368 369
+             370:      6(int) Load 8(invocation)
+             371:    159(ptr) AccessChain 27(data) 68 68
+             372: 23(f64vec4) Load 371
+             373:      6(int) Load 8(invocation)
+             374: 23(f64vec4) GroupNonUniformShuffleXor 35 372 373
+             375:    159(ptr) AccessChain 27(data) 370 68
                               Store 375 374
+             376:      6(int) Load 8(invocation)
+             377:     75(ptr) AccessChain 27(data) 29 39 30
+             378:     19(int) Load 377
+             379:   191(bool) SLessThan 378 29
+             380:      6(int) Load 8(invocation)
+             381:   191(bool) GroupNonUniformShuffleXor 35 379 380
+             382:     19(int) Select 381 39 29
+             383:     75(ptr) AccessChain 27(data) 376 39 30
+                              Store 383 382
+             384:      6(int) Load 8(invocation)
+             385:     83(ptr) AccessChain 27(data) 39 39
+             386:   20(ivec4) Load 385
+             387:   82(ivec2) VectorShuffle 386 386 0 1
+             388:  202(bvec2) SLessThan 387 201
+             389:      6(int) Load 8(invocation)
+             390:  202(bvec2) GroupNonUniformShuffleXor 35 388 389
+             391:   82(ivec2) Select 390 206 201
+             392:     75(ptr) AccessChain 27(data) 384 39 30
+             393:     19(int) CompositeExtract 391 0
+                              Store 392 393
+             394:     75(ptr) AccessChain 27(data) 384 39 49
+             395:     19(int) CompositeExtract 391 1
+                              Store 394 395
+             396:      6(int) Load 8(invocation)
+             397:     83(ptr) AccessChain 27(data) 39 39
+             398:   20(ivec4) Load 397
+             399:   94(ivec3) VectorShuffle 398 398 0 1 2
+             400:  217(bvec3) SLessThan 399 216
+             401:      6(int) Load 8(invocation)
+             402:  217(bvec3) GroupNonUniformShuffleXor 35 400 401
+             403:   94(ivec3) Select 402 221 216
+             404:     75(ptr) AccessChain 27(data) 396 39 30
+             405:     19(int) CompositeExtract 403 0
+                              Store 404 405
+             406:     75(ptr) AccessChain 27(data) 396 39 49
+             407:     19(int) CompositeExtract 403 1
+                              Store 406 407
+             408:     75(ptr) AccessChain 27(data) 396 39 64
+             409:     19(int) CompositeExtract 403 2
+                              Store 408 409
+             410:      6(int) Load 8(invocation)
+             411:     83(ptr) AccessChain 27(data) 39 39
+             412:   20(ivec4) Load 411
+             413:  233(bvec4) SLessThan 412 232
+             414:      6(int) Load 8(invocation)
+             415:  233(bvec4) GroupNonUniformShuffleXor 35 413 414
+             416:   20(ivec4) Select 415 237 232
+             417:     83(ptr) AccessChain 27(data) 410 39
+                              Store 417 416
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.subgroupShuffleRelative.comp.out b/Test/baseResults/spv.subgroupShuffleRelative.comp.out
index 68cd101..e8486b6 100644
--- a/Test/baseResults/spv.subgroupShuffleRelative.comp.out
+++ b/Test/baseResults/spv.subgroupShuffleRelative.comp.out
@@ -1,7 +1,7 @@
 spv.subgroupShuffleRelative.comp
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 379
+// Id's are bound by 420
 
                               Capability Shader
                               Capability Float64
@@ -39,7 +39,7 @@
                               Decorate 24(Buffers) Block
                               Decorate 27(data) DescriptorSet 0
                               Decorate 27(data) Binding 0
-                              Decorate 378 BuiltIn WorkgroupSize
+                              Decorate 419 BuiltIn WorkgroupSize
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -66,34 +66,35 @@
               39:     19(int) Constant 1
               40:             TypeVector 17(float) 2
               41:             TypePointer StorageBuffer 18(fvec4)
-              51:     19(int) Constant 2
-              52:             TypeVector 17(float) 3
-              62:     19(int) Constant 3
-              69:             TypePointer StorageBuffer 19(int)
-              76:             TypeVector 19(int) 2
-              77:             TypePointer StorageBuffer 20(ivec4)
-              87:             TypeVector 19(int) 3
-             103:             TypePointer StorageBuffer 6(int)
-             110:             TypeVector 6(int) 2
-             111:             TypePointer StorageBuffer 21(ivec4)
-             121:             TypeVector 6(int) 3
-             137:             TypePointer StorageBuffer 22(float64_t)
-             144:             TypeVector 22(float64_t) 2
-             145:             TypePointer StorageBuffer 23(f64vec4)
-             155:             TypeVector 22(float64_t) 3
-             173:             TypeBool
-             183:   76(ivec2) ConstantComposite 29 29
-             184:             TypeVector 173(bool) 2
-             188:   76(ivec2) ConstantComposite 39 39
-             197:   87(ivec3) ConstantComposite 29 29 29
-             198:             TypeVector 173(bool) 3
-             202:   87(ivec3) ConstantComposite 39 39 39
-             210:   20(ivec4) ConstantComposite 29 29 29 29
-             211:             TypeVector 173(bool) 4
-             215:   20(ivec4) ConstantComposite 39 39 39 39
-             376:      6(int) Constant 8
-             377:      6(int) Constant 1
-             378:  121(ivec3) ConstantComposite 376 376 377
+              49:      6(int) Constant 1
+              53:     19(int) Constant 2
+              54:             TypeVector 17(float) 3
+              64:      6(int) Constant 2
+              68:     19(int) Constant 3
+              75:             TypePointer StorageBuffer 19(int)
+              82:             TypeVector 19(int) 2
+              83:             TypePointer StorageBuffer 20(ivec4)
+              94:             TypeVector 19(int) 3
+             113:             TypePointer StorageBuffer 6(int)
+             120:             TypeVector 6(int) 2
+             121:             TypePointer StorageBuffer 21(ivec4)
+             132:             TypeVector 6(int) 3
+             151:             TypePointer StorageBuffer 22(float64_t)
+             158:             TypeVector 22(float64_t) 2
+             159:             TypePointer StorageBuffer 23(f64vec4)
+             170:             TypeVector 22(float64_t) 3
+             191:             TypeBool
+             201:   82(ivec2) ConstantComposite 29 29
+             202:             TypeVector 191(bool) 2
+             206:   82(ivec2) ConstantComposite 39 39
+             216:   94(ivec3) ConstantComposite 29 29 29
+             217:             TypeVector 191(bool) 3
+             221:   94(ivec3) ConstantComposite 39 39 39
+             232:   20(ivec4) ConstantComposite 29 29 29 29
+             233:             TypeVector 191(bool) 4
+             237:   20(ivec4) ConstantComposite 39 39 39 39
+             418:      6(int) Constant 8
+             419:  132(ivec3) ConstantComposite 418 418 49
          4(main):           2 Function None 3
                5:             Label
    8(invocation):      7(ptr) Variable Function
@@ -115,348 +116,418 @@
               44:   40(fvec2) VectorShuffle 43 43 0 1
               45:      6(int) Load 8(invocation)
               46:   40(fvec2) GroupNonUniformShuffleUp 35 44 45
-              47:     41(ptr) AccessChain 27(data) 38 29
-              48:   18(fvec4) Load 47
-              49:   18(fvec4) VectorShuffle 48 46 4 5 2 3
-                              Store 47 49
-              50:      6(int) Load 8(invocation)
-              53:     41(ptr) AccessChain 27(data) 51 29
-              54:   18(fvec4) Load 53
-              55:   52(fvec3) VectorShuffle 54 54 0 1 2
-              56:      6(int) Load 8(invocation)
-              57:   52(fvec3) GroupNonUniformShuffleUp 35 55 56
-              58:     41(ptr) AccessChain 27(data) 50 29
-              59:   18(fvec4) Load 58
-              60:   18(fvec4) VectorShuffle 59 57 4 5 6 3
-                              Store 58 60
-              61:      6(int) Load 8(invocation)
-              63:     41(ptr) AccessChain 27(data) 62 29
-              64:   18(fvec4) Load 63
-              65:      6(int) Load 8(invocation)
-              66:   18(fvec4) GroupNonUniformShuffleUp 35 64 65
-              67:     41(ptr) AccessChain 27(data) 61 29
-                              Store 67 66
-              68:      6(int) Load 8(invocation)
-              70:     69(ptr) AccessChain 27(data) 29 39 30
-              71:     19(int) Load 70
-              72:      6(int) Load 8(invocation)
-              73:     19(int) GroupNonUniformShuffleUp 35 71 72
-              74:     69(ptr) AccessChain 27(data) 68 39 30
-                              Store 74 73
-              75:      6(int) Load 8(invocation)
-              78:     77(ptr) AccessChain 27(data) 39 39
-              79:   20(ivec4) Load 78
-              80:   76(ivec2) VectorShuffle 79 79 0 1
+              47:     31(ptr) AccessChain 27(data) 38 29 30
+              48:   17(float) CompositeExtract 46 0
+                              Store 47 48
+              50:     31(ptr) AccessChain 27(data) 38 29 49
+              51:   17(float) CompositeExtract 46 1
+                              Store 50 51
+              52:      6(int) Load 8(invocation)
+              55:     41(ptr) AccessChain 27(data) 53 29
+              56:   18(fvec4) Load 55
+              57:   54(fvec3) VectorShuffle 56 56 0 1 2
+              58:      6(int) Load 8(invocation)
+              59:   54(fvec3) GroupNonUniformShuffleUp 35 57 58
+              60:     31(ptr) AccessChain 27(data) 52 29 30
+              61:   17(float) CompositeExtract 59 0
+                              Store 60 61
+              62:     31(ptr) AccessChain 27(data) 52 29 49
+              63:   17(float) CompositeExtract 59 1
+                              Store 62 63
+              65:     31(ptr) AccessChain 27(data) 52 29 64
+              66:   17(float) CompositeExtract 59 2
+                              Store 65 66
+              67:      6(int) Load 8(invocation)
+              69:     41(ptr) AccessChain 27(data) 68 29
+              70:   18(fvec4) Load 69
+              71:      6(int) Load 8(invocation)
+              72:   18(fvec4) GroupNonUniformShuffleUp 35 70 71
+              73:     41(ptr) AccessChain 27(data) 67 29
+                              Store 73 72
+              74:      6(int) Load 8(invocation)
+              76:     75(ptr) AccessChain 27(data) 29 39 30
+              77:     19(int) Load 76
+              78:      6(int) Load 8(invocation)
+              79:     19(int) GroupNonUniformShuffleUp 35 77 78
+              80:     75(ptr) AccessChain 27(data) 74 39 30
+                              Store 80 79
               81:      6(int) Load 8(invocation)
-              82:   76(ivec2) GroupNonUniformShuffleUp 35 80 81
-              83:     77(ptr) AccessChain 27(data) 75 39
-              84:   20(ivec4) Load 83
-              85:   20(ivec4) VectorShuffle 84 82 4 5 2 3
-                              Store 83 85
-              86:      6(int) Load 8(invocation)
-              88:     77(ptr) AccessChain 27(data) 51 39
-              89:   20(ivec4) Load 88
-              90:   87(ivec3) VectorShuffle 89 89 0 1 2
-              91:      6(int) Load 8(invocation)
-              92:   87(ivec3) GroupNonUniformShuffleUp 35 90 91
-              93:     77(ptr) AccessChain 27(data) 86 39
-              94:   20(ivec4) Load 93
-              95:   20(ivec4) VectorShuffle 94 92 4 5 6 3
-                              Store 93 95
-              96:      6(int) Load 8(invocation)
-              97:     77(ptr) AccessChain 27(data) 62 39
-              98:   20(ivec4) Load 97
-              99:      6(int) Load 8(invocation)
-             100:   20(ivec4) GroupNonUniformShuffleUp 35 98 99
-             101:     77(ptr) AccessChain 27(data) 96 39
-                              Store 101 100
-             102:      6(int) Load 8(invocation)
-             104:    103(ptr) AccessChain 27(data) 29 51 30
-             105:      6(int) Load 104
+              84:     83(ptr) AccessChain 27(data) 39 39
+              85:   20(ivec4) Load 84
+              86:   82(ivec2) VectorShuffle 85 85 0 1
+              87:      6(int) Load 8(invocation)
+              88:   82(ivec2) GroupNonUniformShuffleUp 35 86 87
+              89:     75(ptr) AccessChain 27(data) 81 39 30
+              90:     19(int) CompositeExtract 88 0
+                              Store 89 90
+              91:     75(ptr) AccessChain 27(data) 81 39 49
+              92:     19(int) CompositeExtract 88 1
+                              Store 91 92
+              93:      6(int) Load 8(invocation)
+              95:     83(ptr) AccessChain 27(data) 53 39
+              96:   20(ivec4) Load 95
+              97:   94(ivec3) VectorShuffle 96 96 0 1 2
+              98:      6(int) Load 8(invocation)
+              99:   94(ivec3) GroupNonUniformShuffleUp 35 97 98
+             100:     75(ptr) AccessChain 27(data) 93 39 30
+             101:     19(int) CompositeExtract 99 0
+                              Store 100 101
+             102:     75(ptr) AccessChain 27(data) 93 39 49
+             103:     19(int) CompositeExtract 99 1
+                              Store 102 103
+             104:     75(ptr) AccessChain 27(data) 93 39 64
+             105:     19(int) CompositeExtract 99 2
+                              Store 104 105
              106:      6(int) Load 8(invocation)
-             107:      6(int) GroupNonUniformShuffleUp 35 105 106
-             108:    103(ptr) AccessChain 27(data) 102 51 30
-                              Store 108 107
+             107:     83(ptr) AccessChain 27(data) 68 39
+             108:   20(ivec4) Load 107
              109:      6(int) Load 8(invocation)
-             112:    111(ptr) AccessChain 27(data) 39 51
-             113:   21(ivec4) Load 112
-             114:  110(ivec2) VectorShuffle 113 113 0 1
-             115:      6(int) Load 8(invocation)
-             116:  110(ivec2) GroupNonUniformShuffleUp 35 114 115
-             117:    111(ptr) AccessChain 27(data) 109 51
-             118:   21(ivec4) Load 117
-             119:   21(ivec4) VectorShuffle 118 116 4 5 2 3
-                              Store 117 119
-             120:      6(int) Load 8(invocation)
-             122:    111(ptr) AccessChain 27(data) 51 51
+             110:   20(ivec4) GroupNonUniformShuffleUp 35 108 109
+             111:     83(ptr) AccessChain 27(data) 106 39
+                              Store 111 110
+             112:      6(int) Load 8(invocation)
+             114:    113(ptr) AccessChain 27(data) 29 53 30
+             115:      6(int) Load 114
+             116:      6(int) Load 8(invocation)
+             117:      6(int) GroupNonUniformShuffleUp 35 115 116
+             118:    113(ptr) AccessChain 27(data) 112 53 30
+                              Store 118 117
+             119:      6(int) Load 8(invocation)
+             122:    121(ptr) AccessChain 27(data) 39 53
              123:   21(ivec4) Load 122
-             124:  121(ivec3) VectorShuffle 123 123 0 1 2
+             124:  120(ivec2) VectorShuffle 123 123 0 1
              125:      6(int) Load 8(invocation)
-             126:  121(ivec3) GroupNonUniformShuffleUp 35 124 125
-             127:    111(ptr) AccessChain 27(data) 120 51
-             128:   21(ivec4) Load 127
-             129:   21(ivec4) VectorShuffle 128 126 4 5 6 3
-                              Store 127 129
-             130:      6(int) Load 8(invocation)
-             131:    111(ptr) AccessChain 27(data) 62 51
-             132:   21(ivec4) Load 131
-             133:      6(int) Load 8(invocation)
-             134:   21(ivec4) GroupNonUniformShuffleUp 35 132 133
-             135:    111(ptr) AccessChain 27(data) 130 51
-                              Store 135 134
+             126:  120(ivec2) GroupNonUniformShuffleUp 35 124 125
+             127:    113(ptr) AccessChain 27(data) 119 53 30
+             128:      6(int) CompositeExtract 126 0
+                              Store 127 128
+             129:    113(ptr) AccessChain 27(data) 119 53 49
+             130:      6(int) CompositeExtract 126 1
+                              Store 129 130
+             131:      6(int) Load 8(invocation)
+             133:    121(ptr) AccessChain 27(data) 53 53
+             134:   21(ivec4) Load 133
+             135:  132(ivec3) VectorShuffle 134 134 0 1 2
              136:      6(int) Load 8(invocation)
-             138:    137(ptr) AccessChain 27(data) 29 62 30
-             139:22(float64_t) Load 138
-             140:      6(int) Load 8(invocation)
-             141:22(float64_t) GroupNonUniformShuffleUp 35 139 140
-             142:    137(ptr) AccessChain 27(data) 136 62 30
-                              Store 142 141
-             143:      6(int) Load 8(invocation)
-             146:    145(ptr) AccessChain 27(data) 39 62
-             147: 23(f64vec4) Load 146
-             148:144(f64vec2) VectorShuffle 147 147 0 1
-             149:      6(int) Load 8(invocation)
-             150:144(f64vec2) GroupNonUniformShuffleUp 35 148 149
-             151:    145(ptr) AccessChain 27(data) 143 62
-             152: 23(f64vec4) Load 151
-             153: 23(f64vec4) VectorShuffle 152 150 4 5 2 3
-                              Store 151 153
+             137:  132(ivec3) GroupNonUniformShuffleUp 35 135 136
+             138:    113(ptr) AccessChain 27(data) 131 53 30
+             139:      6(int) CompositeExtract 137 0
+                              Store 138 139
+             140:    113(ptr) AccessChain 27(data) 131 53 49
+             141:      6(int) CompositeExtract 137 1
+                              Store 140 141
+             142:    113(ptr) AccessChain 27(data) 131 53 64
+             143:      6(int) CompositeExtract 137 2
+                              Store 142 143
+             144:      6(int) Load 8(invocation)
+             145:    121(ptr) AccessChain 27(data) 68 53
+             146:   21(ivec4) Load 145
+             147:      6(int) Load 8(invocation)
+             148:   21(ivec4) GroupNonUniformShuffleUp 35 146 147
+             149:    121(ptr) AccessChain 27(data) 144 53
+                              Store 149 148
+             150:      6(int) Load 8(invocation)
+             152:    151(ptr) AccessChain 27(data) 29 68 30
+             153:22(float64_t) Load 152
              154:      6(int) Load 8(invocation)
-             156:    145(ptr) AccessChain 27(data) 51 62
-             157: 23(f64vec4) Load 156
-             158:155(f64vec3) VectorShuffle 157 157 0 1 2
-             159:      6(int) Load 8(invocation)
-             160:155(f64vec3) GroupNonUniformShuffleUp 35 158 159
-             161:    145(ptr) AccessChain 27(data) 154 62
-             162: 23(f64vec4) Load 161
-             163: 23(f64vec4) VectorShuffle 162 160 4 5 6 3
-                              Store 161 163
-             164:      6(int) Load 8(invocation)
-             165:    145(ptr) AccessChain 27(data) 62 62
-             166: 23(f64vec4) Load 165
-             167:      6(int) Load 8(invocation)
-             168: 23(f64vec4) GroupNonUniformShuffleUp 35 166 167
-             169:    145(ptr) AccessChain 27(data) 164 62
-                              Store 169 168
-             170:      6(int) Load 8(invocation)
-             171:     69(ptr) AccessChain 27(data) 29 39 30
-             172:     19(int) Load 171
-             174:   173(bool) SLessThan 172 29
-             175:      6(int) Load 8(invocation)
-             176:   173(bool) GroupNonUniformShuffleUp 35 174 175
-             177:     19(int) Select 176 39 29
-             178:     69(ptr) AccessChain 27(data) 170 39 30
-                              Store 178 177
-             179:      6(int) Load 8(invocation)
-             180:     77(ptr) AccessChain 27(data) 39 39
-             181:   20(ivec4) Load 180
-             182:   76(ivec2) VectorShuffle 181 181 0 1
-             185:  184(bvec2) SLessThan 182 183
-             186:      6(int) Load 8(invocation)
-             187:  184(bvec2) GroupNonUniformShuffleUp 35 185 186
-             189:   76(ivec2) Select 187 188 183
-             190:     77(ptr) AccessChain 27(data) 179 39
-             191:   20(ivec4) Load 190
-             192:   20(ivec4) VectorShuffle 191 189 4 5 2 3
-                              Store 190 192
+             155:22(float64_t) GroupNonUniformShuffleUp 35 153 154
+             156:    151(ptr) AccessChain 27(data) 150 68 30
+                              Store 156 155
+             157:      6(int) Load 8(invocation)
+             160:    159(ptr) AccessChain 27(data) 39 68
+             161: 23(f64vec4) Load 160
+             162:158(f64vec2) VectorShuffle 161 161 0 1
+             163:      6(int) Load 8(invocation)
+             164:158(f64vec2) GroupNonUniformShuffleUp 35 162 163
+             165:    151(ptr) AccessChain 27(data) 157 68 30
+             166:22(float64_t) CompositeExtract 164 0
+                              Store 165 166
+             167:    151(ptr) AccessChain 27(data) 157 68 49
+             168:22(float64_t) CompositeExtract 164 1
+                              Store 167 168
+             169:      6(int) Load 8(invocation)
+             171:    159(ptr) AccessChain 27(data) 53 68
+             172: 23(f64vec4) Load 171
+             173:170(f64vec3) VectorShuffle 172 172 0 1 2
+             174:      6(int) Load 8(invocation)
+             175:170(f64vec3) GroupNonUniformShuffleUp 35 173 174
+             176:    151(ptr) AccessChain 27(data) 169 68 30
+             177:22(float64_t) CompositeExtract 175 0
+                              Store 176 177
+             178:    151(ptr) AccessChain 27(data) 169 68 49
+             179:22(float64_t) CompositeExtract 175 1
+                              Store 178 179
+             180:    151(ptr) AccessChain 27(data) 169 68 64
+             181:22(float64_t) CompositeExtract 175 2
+                              Store 180 181
+             182:      6(int) Load 8(invocation)
+             183:    159(ptr) AccessChain 27(data) 68 68
+             184: 23(f64vec4) Load 183
+             185:      6(int) Load 8(invocation)
+             186: 23(f64vec4) GroupNonUniformShuffleUp 35 184 185
+             187:    159(ptr) AccessChain 27(data) 182 68
+                              Store 187 186
+             188:      6(int) Load 8(invocation)
+             189:     75(ptr) AccessChain 27(data) 29 39 30
+             190:     19(int) Load 189
+             192:   191(bool) SLessThan 190 29
              193:      6(int) Load 8(invocation)
-             194:     77(ptr) AccessChain 27(data) 39 39
-             195:   20(ivec4) Load 194
-             196:   87(ivec3) VectorShuffle 195 195 0 1 2
-             199:  198(bvec3) SLessThan 196 197
-             200:      6(int) Load 8(invocation)
-             201:  198(bvec3) GroupNonUniformShuffleUp 35 199 200
-             203:   87(ivec3) Select 201 202 197
-             204:     77(ptr) AccessChain 27(data) 193 39
-             205:   20(ivec4) Load 204
-             206:   20(ivec4) VectorShuffle 205 203 4 5 6 3
-                              Store 204 206
-             207:      6(int) Load 8(invocation)
-             208:     77(ptr) AccessChain 27(data) 39 39
-             209:   20(ivec4) Load 208
-             212:  211(bvec4) SLessThan 209 210
-             213:      6(int) Load 8(invocation)
-             214:  211(bvec4) GroupNonUniformShuffleUp 35 212 213
-             216:   20(ivec4) Select 214 215 210
-             217:     77(ptr) AccessChain 27(data) 207 39
-                              Store 217 216
-             218:      6(int) Load 8(invocation)
-             219:     31(ptr) AccessChain 27(data) 29 29 30
-             220:   17(float) Load 219
-             221:      6(int) Load 8(invocation)
-             222:   17(float) GroupNonUniformShuffleDown 35 220 221
-             223:     31(ptr) AccessChain 27(data) 218 29 30
-                              Store 223 222
-             224:      6(int) Load 8(invocation)
-             225:     41(ptr) AccessChain 27(data) 39 29
-             226:   18(fvec4) Load 225
-             227:   40(fvec2) VectorShuffle 226 226 0 1
-             228:      6(int) Load 8(invocation)
-             229:   40(fvec2) GroupNonUniformShuffleDown 35 227 228
-             230:     41(ptr) AccessChain 27(data) 224 29
-             231:   18(fvec4) Load 230
-             232:   18(fvec4) VectorShuffle 231 229 4 5 2 3
-                              Store 230 232
-             233:      6(int) Load 8(invocation)
-             234:     41(ptr) AccessChain 27(data) 51 29
-             235:   18(fvec4) Load 234
-             236:   52(fvec3) VectorShuffle 235 235 0 1 2
-             237:      6(int) Load 8(invocation)
-             238:   52(fvec3) GroupNonUniformShuffleDown 35 236 237
-             239:     41(ptr) AccessChain 27(data) 233 29
-             240:   18(fvec4) Load 239
-             241:   18(fvec4) VectorShuffle 240 238 4 5 6 3
-                              Store 239 241
-             242:      6(int) Load 8(invocation)
-             243:     41(ptr) AccessChain 27(data) 62 29
-             244:   18(fvec4) Load 243
-             245:      6(int) Load 8(invocation)
-             246:   18(fvec4) GroupNonUniformShuffleDown 35 244 245
-             247:     41(ptr) AccessChain 27(data) 242 29
-                              Store 247 246
-             248:      6(int) Load 8(invocation)
-             249:     69(ptr) AccessChain 27(data) 29 39 30
-             250:     19(int) Load 249
-             251:      6(int) Load 8(invocation)
-             252:     19(int) GroupNonUniformShuffleDown 35 250 251
-             253:     69(ptr) AccessChain 27(data) 248 39 30
-                              Store 253 252
-             254:      6(int) Load 8(invocation)
-             255:     77(ptr) AccessChain 27(data) 39 39
-             256:   20(ivec4) Load 255
-             257:   76(ivec2) VectorShuffle 256 256 0 1
-             258:      6(int) Load 8(invocation)
-             259:   76(ivec2) GroupNonUniformShuffleDown 35 257 258
-             260:     77(ptr) AccessChain 27(data) 254 39
-             261:   20(ivec4) Load 260
-             262:   20(ivec4) VectorShuffle 261 259 4 5 2 3
-                              Store 260 262
-             263:      6(int) Load 8(invocation)
-             264:     77(ptr) AccessChain 27(data) 51 39
-             265:   20(ivec4) Load 264
-             266:   87(ivec3) VectorShuffle 265 265 0 1 2
-             267:      6(int) Load 8(invocation)
-             268:   87(ivec3) GroupNonUniformShuffleDown 35 266 267
-             269:     77(ptr) AccessChain 27(data) 263 39
-             270:   20(ivec4) Load 269
-             271:   20(ivec4) VectorShuffle 270 268 4 5 6 3
-                              Store 269 271
-             272:      6(int) Load 8(invocation)
-             273:     77(ptr) AccessChain 27(data) 62 39
-             274:   20(ivec4) Load 273
-             275:      6(int) Load 8(invocation)
-             276:   20(ivec4) GroupNonUniformShuffleDown 35 274 275
-             277:     77(ptr) AccessChain 27(data) 272 39
-                              Store 277 276
-             278:      6(int) Load 8(invocation)
-             279:    103(ptr) AccessChain 27(data) 29 51 30
-             280:      6(int) Load 279
-             281:      6(int) Load 8(invocation)
-             282:      6(int) GroupNonUniformShuffleDown 35 280 281
-             283:    103(ptr) AccessChain 27(data) 278 51 30
-                              Store 283 282
+             194:   191(bool) GroupNonUniformShuffleUp 35 192 193
+             195:     19(int) Select 194 39 29
+             196:     75(ptr) AccessChain 27(data) 188 39 30
+                              Store 196 195
+             197:      6(int) Load 8(invocation)
+             198:     83(ptr) AccessChain 27(data) 39 39
+             199:   20(ivec4) Load 198
+             200:   82(ivec2) VectorShuffle 199 199 0 1
+             203:  202(bvec2) SLessThan 200 201
+             204:      6(int) Load 8(invocation)
+             205:  202(bvec2) GroupNonUniformShuffleUp 35 203 204
+             207:   82(ivec2) Select 205 206 201
+             208:     75(ptr) AccessChain 27(data) 197 39 30
+             209:     19(int) CompositeExtract 207 0
+                              Store 208 209
+             210:     75(ptr) AccessChain 27(data) 197 39 49
+             211:     19(int) CompositeExtract 207 1
+                              Store 210 211
+             212:      6(int) Load 8(invocation)
+             213:     83(ptr) AccessChain 27(data) 39 39
+             214:   20(ivec4) Load 213
+             215:   94(ivec3) VectorShuffle 214 214 0 1 2
+             218:  217(bvec3) SLessThan 215 216
+             219:      6(int) Load 8(invocation)
+             220:  217(bvec3) GroupNonUniformShuffleUp 35 218 219
+             222:   94(ivec3) Select 220 221 216
+             223:     75(ptr) AccessChain 27(data) 212 39 30
+             224:     19(int) CompositeExtract 222 0
+                              Store 223 224
+             225:     75(ptr) AccessChain 27(data) 212 39 49
+             226:     19(int) CompositeExtract 222 1
+                              Store 225 226
+             227:     75(ptr) AccessChain 27(data) 212 39 64
+             228:     19(int) CompositeExtract 222 2
+                              Store 227 228
+             229:      6(int) Load 8(invocation)
+             230:     83(ptr) AccessChain 27(data) 39 39
+             231:   20(ivec4) Load 230
+             234:  233(bvec4) SLessThan 231 232
+             235:      6(int) Load 8(invocation)
+             236:  233(bvec4) GroupNonUniformShuffleUp 35 234 235
+             238:   20(ivec4) Select 236 237 232
+             239:     83(ptr) AccessChain 27(data) 229 39
+                              Store 239 238
+             240:      6(int) Load 8(invocation)
+             241:     31(ptr) AccessChain 27(data) 29 29 30
+             242:   17(float) Load 241
+             243:      6(int) Load 8(invocation)
+             244:   17(float) GroupNonUniformShuffleDown 35 242 243
+             245:     31(ptr) AccessChain 27(data) 240 29 30
+                              Store 245 244
+             246:      6(int) Load 8(invocation)
+             247:     41(ptr) AccessChain 27(data) 39 29
+             248:   18(fvec4) Load 247
+             249:   40(fvec2) VectorShuffle 248 248 0 1
+             250:      6(int) Load 8(invocation)
+             251:   40(fvec2) GroupNonUniformShuffleDown 35 249 250
+             252:     31(ptr) AccessChain 27(data) 246 29 30
+             253:   17(float) CompositeExtract 251 0
+                              Store 252 253
+             254:     31(ptr) AccessChain 27(data) 246 29 49
+             255:   17(float) CompositeExtract 251 1
+                              Store 254 255
+             256:      6(int) Load 8(invocation)
+             257:     41(ptr) AccessChain 27(data) 53 29
+             258:   18(fvec4) Load 257
+             259:   54(fvec3) VectorShuffle 258 258 0 1 2
+             260:      6(int) Load 8(invocation)
+             261:   54(fvec3) GroupNonUniformShuffleDown 35 259 260
+             262:     31(ptr) AccessChain 27(data) 256 29 30
+             263:   17(float) CompositeExtract 261 0
+                              Store 262 263
+             264:     31(ptr) AccessChain 27(data) 256 29 49
+             265:   17(float) CompositeExtract 261 1
+                              Store 264 265
+             266:     31(ptr) AccessChain 27(data) 256 29 64
+             267:   17(float) CompositeExtract 261 2
+                              Store 266 267
+             268:      6(int) Load 8(invocation)
+             269:     41(ptr) AccessChain 27(data) 68 29
+             270:   18(fvec4) Load 269
+             271:      6(int) Load 8(invocation)
+             272:   18(fvec4) GroupNonUniformShuffleDown 35 270 271
+             273:     41(ptr) AccessChain 27(data) 268 29
+                              Store 273 272
+             274:      6(int) Load 8(invocation)
+             275:     75(ptr) AccessChain 27(data) 29 39 30
+             276:     19(int) Load 275
+             277:      6(int) Load 8(invocation)
+             278:     19(int) GroupNonUniformShuffleDown 35 276 277
+             279:     75(ptr) AccessChain 27(data) 274 39 30
+                              Store 279 278
+             280:      6(int) Load 8(invocation)
+             281:     83(ptr) AccessChain 27(data) 39 39
+             282:   20(ivec4) Load 281
+             283:   82(ivec2) VectorShuffle 282 282 0 1
              284:      6(int) Load 8(invocation)
-             285:    111(ptr) AccessChain 27(data) 39 51
-             286:   21(ivec4) Load 285
-             287:  110(ivec2) VectorShuffle 286 286 0 1
-             288:      6(int) Load 8(invocation)
-             289:  110(ivec2) GroupNonUniformShuffleDown 35 287 288
-             290:    111(ptr) AccessChain 27(data) 284 51
-             291:   21(ivec4) Load 290
-             292:   21(ivec4) VectorShuffle 291 289 4 5 2 3
-                              Store 290 292
-             293:      6(int) Load 8(invocation)
-             294:    111(ptr) AccessChain 27(data) 51 51
-             295:   21(ivec4) Load 294
-             296:  121(ivec3) VectorShuffle 295 295 0 1 2
-             297:      6(int) Load 8(invocation)
-             298:  121(ivec3) GroupNonUniformShuffleDown 35 296 297
-             299:    111(ptr) AccessChain 27(data) 293 51
-             300:   21(ivec4) Load 299
-             301:   21(ivec4) VectorShuffle 300 298 4 5 6 3
-                              Store 299 301
+             285:   82(ivec2) GroupNonUniformShuffleDown 35 283 284
+             286:     75(ptr) AccessChain 27(data) 280 39 30
+             287:     19(int) CompositeExtract 285 0
+                              Store 286 287
+             288:     75(ptr) AccessChain 27(data) 280 39 49
+             289:     19(int) CompositeExtract 285 1
+                              Store 288 289
+             290:      6(int) Load 8(invocation)
+             291:     83(ptr) AccessChain 27(data) 53 39
+             292:   20(ivec4) Load 291
+             293:   94(ivec3) VectorShuffle 292 292 0 1 2
+             294:      6(int) Load 8(invocation)
+             295:   94(ivec3) GroupNonUniformShuffleDown 35 293 294
+             296:     75(ptr) AccessChain 27(data) 290 39 30
+             297:     19(int) CompositeExtract 295 0
+                              Store 296 297
+             298:     75(ptr) AccessChain 27(data) 290 39 49
+             299:     19(int) CompositeExtract 295 1
+                              Store 298 299
+             300:     75(ptr) AccessChain 27(data) 290 39 64
+             301:     19(int) CompositeExtract 295 2
+                              Store 300 301
              302:      6(int) Load 8(invocation)
-             303:    111(ptr) AccessChain 27(data) 62 51
-             304:   21(ivec4) Load 303
+             303:     83(ptr) AccessChain 27(data) 68 39
+             304:   20(ivec4) Load 303
              305:      6(int) Load 8(invocation)
-             306:   21(ivec4) GroupNonUniformShuffleDown 35 304 305
-             307:    111(ptr) AccessChain 27(data) 302 51
+             306:   20(ivec4) GroupNonUniformShuffleDown 35 304 305
+             307:     83(ptr) AccessChain 27(data) 302 39
                               Store 307 306
              308:      6(int) Load 8(invocation)
-             309:    137(ptr) AccessChain 27(data) 29 62 30
-             310:22(float64_t) Load 309
+             309:    113(ptr) AccessChain 27(data) 29 53 30
+             310:      6(int) Load 309
              311:      6(int) Load 8(invocation)
-             312:22(float64_t) GroupNonUniformShuffleDown 35 310 311
-             313:    137(ptr) AccessChain 27(data) 308 62 30
+             312:      6(int) GroupNonUniformShuffleDown 35 310 311
+             313:    113(ptr) AccessChain 27(data) 308 53 30
                               Store 313 312
              314:      6(int) Load 8(invocation)
-             315:    145(ptr) AccessChain 27(data) 39 62
-             316: 23(f64vec4) Load 315
-             317:144(f64vec2) VectorShuffle 316 316 0 1
+             315:    121(ptr) AccessChain 27(data) 39 53
+             316:   21(ivec4) Load 315
+             317:  120(ivec2) VectorShuffle 316 316 0 1
              318:      6(int) Load 8(invocation)
-             319:144(f64vec2) GroupNonUniformShuffleDown 35 317 318
-             320:    145(ptr) AccessChain 27(data) 314 62
-             321: 23(f64vec4) Load 320
-             322: 23(f64vec4) VectorShuffle 321 319 4 5 2 3
-                              Store 320 322
-             323:      6(int) Load 8(invocation)
-             324:    145(ptr) AccessChain 27(data) 51 62
-             325: 23(f64vec4) Load 324
-             326:155(f64vec3) VectorShuffle 325 325 0 1 2
-             327:      6(int) Load 8(invocation)
-             328:155(f64vec3) GroupNonUniformShuffleDown 35 326 327
-             329:    145(ptr) AccessChain 27(data) 323 62
-             330: 23(f64vec4) Load 329
-             331: 23(f64vec4) VectorShuffle 330 328 4 5 6 3
-                              Store 329 331
-             332:      6(int) Load 8(invocation)
-             333:    145(ptr) AccessChain 27(data) 62 62
-             334: 23(f64vec4) Load 333
-             335:      6(int) Load 8(invocation)
-             336: 23(f64vec4) GroupNonUniformShuffleDown 35 334 335
-             337:    145(ptr) AccessChain 27(data) 332 62
-                              Store 337 336
-             338:      6(int) Load 8(invocation)
-             339:     69(ptr) AccessChain 27(data) 29 39 30
-             340:     19(int) Load 339
-             341:   173(bool) SLessThan 340 29
+             319:  120(ivec2) GroupNonUniformShuffleDown 35 317 318
+             320:    113(ptr) AccessChain 27(data) 314 53 30
+             321:      6(int) CompositeExtract 319 0
+                              Store 320 321
+             322:    113(ptr) AccessChain 27(data) 314 53 49
+             323:      6(int) CompositeExtract 319 1
+                              Store 322 323
+             324:      6(int) Load 8(invocation)
+             325:    121(ptr) AccessChain 27(data) 53 53
+             326:   21(ivec4) Load 325
+             327:  132(ivec3) VectorShuffle 326 326 0 1 2
+             328:      6(int) Load 8(invocation)
+             329:  132(ivec3) GroupNonUniformShuffleDown 35 327 328
+             330:    113(ptr) AccessChain 27(data) 324 53 30
+             331:      6(int) CompositeExtract 329 0
+                              Store 330 331
+             332:    113(ptr) AccessChain 27(data) 324 53 49
+             333:      6(int) CompositeExtract 329 1
+                              Store 332 333
+             334:    113(ptr) AccessChain 27(data) 324 53 64
+             335:      6(int) CompositeExtract 329 2
+                              Store 334 335
+             336:      6(int) Load 8(invocation)
+             337:    121(ptr) AccessChain 27(data) 68 53
+             338:   21(ivec4) Load 337
+             339:      6(int) Load 8(invocation)
+             340:   21(ivec4) GroupNonUniformShuffleDown 35 338 339
+             341:    121(ptr) AccessChain 27(data) 336 53
+                              Store 341 340
              342:      6(int) Load 8(invocation)
-             343:   173(bool) GroupNonUniformShuffleDown 35 341 342
-             344:     19(int) Select 343 39 29
-             345:     69(ptr) AccessChain 27(data) 338 39 30
-                              Store 345 344
-             346:      6(int) Load 8(invocation)
-             347:     77(ptr) AccessChain 27(data) 39 39
-             348:   20(ivec4) Load 347
-             349:   76(ivec2) VectorShuffle 348 348 0 1
-             350:  184(bvec2) SLessThan 349 183
-             351:      6(int) Load 8(invocation)
-             352:  184(bvec2) GroupNonUniformShuffleDown 35 350 351
-             353:   76(ivec2) Select 352 188 183
-             354:     77(ptr) AccessChain 27(data) 346 39
-             355:   20(ivec4) Load 354
-             356:   20(ivec4) VectorShuffle 355 353 4 5 2 3
-                              Store 354 356
-             357:      6(int) Load 8(invocation)
-             358:     77(ptr) AccessChain 27(data) 39 39
-             359:   20(ivec4) Load 358
-             360:   87(ivec3) VectorShuffle 359 359 0 1 2
-             361:  198(bvec3) SLessThan 360 197
+             343:    151(ptr) AccessChain 27(data) 29 68 30
+             344:22(float64_t) Load 343
+             345:      6(int) Load 8(invocation)
+             346:22(float64_t) GroupNonUniformShuffleDown 35 344 345
+             347:    151(ptr) AccessChain 27(data) 342 68 30
+                              Store 347 346
+             348:      6(int) Load 8(invocation)
+             349:    159(ptr) AccessChain 27(data) 39 68
+             350: 23(f64vec4) Load 349
+             351:158(f64vec2) VectorShuffle 350 350 0 1
+             352:      6(int) Load 8(invocation)
+             353:158(f64vec2) GroupNonUniformShuffleDown 35 351 352
+             354:    151(ptr) AccessChain 27(data) 348 68 30
+             355:22(float64_t) CompositeExtract 353 0
+                              Store 354 355
+             356:    151(ptr) AccessChain 27(data) 348 68 49
+             357:22(float64_t) CompositeExtract 353 1
+                              Store 356 357
+             358:      6(int) Load 8(invocation)
+             359:    159(ptr) AccessChain 27(data) 53 68
+             360: 23(f64vec4) Load 359
+             361:170(f64vec3) VectorShuffle 360 360 0 1 2
              362:      6(int) Load 8(invocation)
-             363:  198(bvec3) GroupNonUniformShuffleDown 35 361 362
-             364:   87(ivec3) Select 363 202 197
-             365:     77(ptr) AccessChain 27(data) 357 39
-             366:   20(ivec4) Load 365
-             367:   20(ivec4) VectorShuffle 366 364 4 5 6 3
-                              Store 365 367
-             368:      6(int) Load 8(invocation)
-             369:     77(ptr) AccessChain 27(data) 39 39
-             370:   20(ivec4) Load 369
-             371:  211(bvec4) SLessThan 370 210
-             372:      6(int) Load 8(invocation)
-             373:  211(bvec4) GroupNonUniformShuffleDown 35 371 372
-             374:   20(ivec4) Select 373 215 210
-             375:     77(ptr) AccessChain 27(data) 368 39
+             363:170(f64vec3) GroupNonUniformShuffleDown 35 361 362
+             364:    151(ptr) AccessChain 27(data) 358 68 30
+             365:22(float64_t) CompositeExtract 363 0
+                              Store 364 365
+             366:    151(ptr) AccessChain 27(data) 358 68 49
+             367:22(float64_t) CompositeExtract 363 1
+                              Store 366 367
+             368:    151(ptr) AccessChain 27(data) 358 68 64
+             369:22(float64_t) CompositeExtract 363 2
+                              Store 368 369
+             370:      6(int) Load 8(invocation)
+             371:    159(ptr) AccessChain 27(data) 68 68
+             372: 23(f64vec4) Load 371
+             373:      6(int) Load 8(invocation)
+             374: 23(f64vec4) GroupNonUniformShuffleDown 35 372 373
+             375:    159(ptr) AccessChain 27(data) 370 68
                               Store 375 374
+             376:      6(int) Load 8(invocation)
+             377:     75(ptr) AccessChain 27(data) 29 39 30
+             378:     19(int) Load 377
+             379:   191(bool) SLessThan 378 29
+             380:      6(int) Load 8(invocation)
+             381:   191(bool) GroupNonUniformShuffleDown 35 379 380
+             382:     19(int) Select 381 39 29
+             383:     75(ptr) AccessChain 27(data) 376 39 30
+                              Store 383 382
+             384:      6(int) Load 8(invocation)
+             385:     83(ptr) AccessChain 27(data) 39 39
+             386:   20(ivec4) Load 385
+             387:   82(ivec2) VectorShuffle 386 386 0 1
+             388:  202(bvec2) SLessThan 387 201
+             389:      6(int) Load 8(invocation)
+             390:  202(bvec2) GroupNonUniformShuffleDown 35 388 389
+             391:   82(ivec2) Select 390 206 201
+             392:     75(ptr) AccessChain 27(data) 384 39 30
+             393:     19(int) CompositeExtract 391 0
+                              Store 392 393
+             394:     75(ptr) AccessChain 27(data) 384 39 49
+             395:     19(int) CompositeExtract 391 1
+                              Store 394 395
+             396:      6(int) Load 8(invocation)
+             397:     83(ptr) AccessChain 27(data) 39 39
+             398:   20(ivec4) Load 397
+             399:   94(ivec3) VectorShuffle 398 398 0 1 2
+             400:  217(bvec3) SLessThan 399 216
+             401:      6(int) Load 8(invocation)
+             402:  217(bvec3) GroupNonUniformShuffleDown 35 400 401
+             403:   94(ivec3) Select 402 221 216
+             404:     75(ptr) AccessChain 27(data) 396 39 30
+             405:     19(int) CompositeExtract 403 0
+                              Store 404 405
+             406:     75(ptr) AccessChain 27(data) 396 39 49
+             407:     19(int) CompositeExtract 403 1
+                              Store 406 407
+             408:     75(ptr) AccessChain 27(data) 396 39 64
+             409:     19(int) CompositeExtract 403 2
+                              Store 408 409
+             410:      6(int) Load 8(invocation)
+             411:     83(ptr) AccessChain 27(data) 39 39
+             412:   20(ivec4) Load 411
+             413:  233(bvec4) SLessThan 412 232
+             414:      6(int) Load 8(invocation)
+             415:  233(bvec4) GroupNonUniformShuffleDown 35 413 414
+             416:   20(ivec4) Select 415 237 232
+             417:     83(ptr) AccessChain 27(data) 410 39
+                              Store 417 416
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.swizzle.frag.out b/Test/baseResults/spv.swizzle.frag.out
index 7e42c3e..2aa31e8 100644
--- a/Test/baseResults/spv.swizzle.frag.out
+++ b/Test/baseResults/spv.swizzle.frag.out
@@ -1,12 +1,12 @@
 spv.swizzle.frag
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 108
+// Id's are bound by 117
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 14 30 69 107
+                              EntryPoint Fragment 4  "main" 14 30 78 116
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 140
                               Name 4  "main"
@@ -18,16 +18,16 @@
                               Name 20  "w2"
                               Name 22  "w_flow"
                               Name 30  "t"
-                              Name 49  "w_undef"
-                              Name 56  "p"
-                              Name 69  "gl_FragColor"
-                              Name 81  "c"
-                              Name 83  "rep"
-                              Name 107  "blend"
+                              Name 56  "w_undef"
+                              Name 65  "p"
+                              Name 78  "gl_FragColor"
+                              Name 90  "c"
+                              Name 92  "rep"
+                              Name 116  "blend"
                               Decorate 14(u) Location 1
                               Decorate 30(t) Location 2
-                              Decorate 69(gl_FragColor) Location 0
-                              Decorate 107(blend) Location 0
+                              Decorate 78(gl_FragColor) Location 0
+                              Decorate 116(blend) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -42,21 +42,22 @@
               28:             TypeVector 6(float) 2
               29:             TypePointer Input 28(fvec2)
            30(t):     29(ptr) Variable Input
-              35:     25(int) Constant 0
-              40:     25(int) Constant 1
-              54:             TypeBool
-              55:             TypePointer Private 54(bool)
-           56(p):     55(ptr) Variable Private
-              60:             TypePointer Input 6(float)
-              68:             TypePointer Output 10(fvec4)
-69(gl_FragColor):     68(ptr) Variable Output
-              80:             TypePointer Function 28(fvec2)
-              84:    6(float) Constant 0
-              85:    6(float) Constant 1065353216
-              86:   10(fvec4) ConstantComposite 84 84 84 85
-              92:    6(float) Constant 3212836864
-             102:    6(float) Constant 1079613850
-      107(blend):     60(ptr) Variable Input
+              32:     25(int) Constant 3
+              35:     25(int) Constant 1
+              39:     25(int) Constant 0
+              63:             TypeBool
+              64:             TypePointer Private 63(bool)
+           65(p):     64(ptr) Variable Private
+              69:             TypePointer Input 6(float)
+              77:             TypePointer Output 10(fvec4)
+78(gl_FragColor):     77(ptr) Variable Output
+              89:             TypePointer Function 28(fvec2)
+              93:    6(float) Constant 0
+              94:    6(float) Constant 1065353216
+              95:   10(fvec4) ConstantComposite 93 93 93 94
+             101:    6(float) Constant 3212836864
+             111:    6(float) Constant 1079613850
+      116(blend):     69(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
    8(blendscale):      7(ptr) Variable Function
@@ -65,9 +66,9 @@
    18(w_reorder):     11(ptr) Variable Function
           20(w2):     11(ptr) Variable Function
       22(w_flow):     11(ptr) Variable Function
-     49(w_undef):     11(ptr) Variable Function
-           81(c):     80(ptr) Variable Function
-         83(rep):     11(ptr) Variable Function
+     56(w_undef):     11(ptr) Variable Function
+           90(c):     89(ptr) Variable Function
+         92(rep):     11(ptr) Variable Function
                               Store 8(blendscale) 9
               15:   10(fvec4) Load 14(u)
                               Store 12(w) 15
@@ -83,88 +84,100 @@
               27:      7(ptr) AccessChain 18(w_reorder) 26
                               Store 27 24
               31:   28(fvec2) Load 30(t)
-              32:   10(fvec4) Load 12(w)
-              33:   10(fvec4) VectorShuffle 32 31 0 5 2 4
-                              Store 12(w) 33
-              34:    6(float) Load 8(blendscale)
-              36:      7(ptr) AccessChain 18(w_reorder) 35
-                              Store 36 34
-              37:   10(fvec4) Load 14(u)
-              38:   10(fvec4) VectorShuffle 37 37 2 3 0 1
-                              Store 20(w2) 38
-              39:    6(float) Load 8(blendscale)
-              41:      7(ptr) AccessChain 18(w_reorder) 40
-                              Store 41 39
-              42:   10(fvec4) Load 20(w2)
-              43:   28(fvec2) VectorShuffle 42 42 0 2
-              44:   10(fvec4) Load 16(w_dep)
-              45:   10(fvec4) VectorShuffle 44 43 4 5 2 3
-                              Store 16(w_dep) 45
-              46:   28(fvec2) Load 30(t)
-              47:   10(fvec4) Load 16(w_dep)
-              48:   10(fvec4) VectorShuffle 47 46 0 1 4 5
-                              Store 16(w_dep) 48
-              50:   10(fvec4) Load 14(u)
-              51:   28(fvec2) VectorShuffle 50 50 2 3
-              52:   10(fvec4) Load 49(w_undef)
-              53:   10(fvec4) VectorShuffle 52 51 4 5 2 3
-                              Store 49(w_undef) 53
-              57:    54(bool) Load 56(p)
-                              SelectionMerge 59 None
-                              BranchConditional 57 58 64
-              58:               Label
-              61:     60(ptr)   AccessChain 30(t) 35
-              62:    6(float)   Load 61
-              63:      7(ptr)   AccessChain 22(w_flow) 35
-                                Store 63 62
-                                Branch 59
-              64:               Label
-              65:     60(ptr)   AccessChain 30(t) 40
-              66:    6(float)   Load 65
-              67:      7(ptr)   AccessChain 22(w_flow) 35
-                                Store 67 66
-                                Branch 59
-              59:             Label
-              70:   10(fvec4) Load 18(w_reorder)
-              71:   10(fvec4) Load 49(w_undef)
-              72:   10(fvec4) Load 12(w)
-              73:   10(fvec4) Load 20(w2)
-              74:   10(fvec4) FMul 72 73
-              75:   10(fvec4) Load 16(w_dep)
-              76:   10(fvec4) FMul 74 75
-              77:   10(fvec4) Load 22(w_flow)
-              78:   10(fvec4) FMul 76 77
-              79:   10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 70 71 78
-                              Store 69(gl_FragColor) 79
-              82:   28(fvec2) Load 30(t)
-                              Store 81(c) 82
-                              Store 83(rep) 86
-              87:      7(ptr) AccessChain 81(c) 35
-              88:    6(float) Load 87
-              89:    54(bool) FOrdLessThan 88 84
-                              SelectionMerge 91 None
-                              BranchConditional 89 90 91
-              90:               Label
-              93:      7(ptr)   AccessChain 81(c) 35
-              94:    6(float)   Load 93
-              95:    6(float)   FMul 94 92
-              96:      7(ptr)   AccessChain 81(c) 35
-                                Store 96 95
-                                Branch 91
-              91:             Label
-              97:      7(ptr) AccessChain 81(c) 35
-              98:    6(float) Load 97
-              99:    54(bool) FOrdLessThanEqual 98 85
-                              SelectionMerge 101 None
-                              BranchConditional 99 100 101
-             100:               Label
-             103:      7(ptr)   AccessChain 83(rep) 35
-                                Store 103 102
-                                Branch 101
-             101:             Label
-             104:   10(fvec4) Load 83(rep)
-             105:   10(fvec4) Load 69(gl_FragColor)
-             106:   10(fvec4) FAdd 105 104
-                              Store 69(gl_FragColor) 106
+              33:      7(ptr) AccessChain 12(w) 32
+              34:    6(float) CompositeExtract 31 0
+                              Store 33 34
+              36:      7(ptr) AccessChain 12(w) 35
+              37:    6(float) CompositeExtract 31 1
+                              Store 36 37
+              38:    6(float) Load 8(blendscale)
+              40:      7(ptr) AccessChain 18(w_reorder) 39
+                              Store 40 38
+              41:   10(fvec4) Load 14(u)
+              42:   10(fvec4) VectorShuffle 41 41 2 3 0 1
+                              Store 20(w2) 42
+              43:    6(float) Load 8(blendscale)
+              44:      7(ptr) AccessChain 18(w_reorder) 35
+                              Store 44 43
+              45:   10(fvec4) Load 20(w2)
+              46:   28(fvec2) VectorShuffle 45 45 0 2
+              47:      7(ptr) AccessChain 16(w_dep) 39
+              48:    6(float) CompositeExtract 46 0
+                              Store 47 48
+              49:      7(ptr) AccessChain 16(w_dep) 35
+              50:    6(float) CompositeExtract 46 1
+                              Store 49 50
+              51:   28(fvec2) Load 30(t)
+              52:      7(ptr) AccessChain 16(w_dep) 26
+              53:    6(float) CompositeExtract 51 0
+                              Store 52 53
+              54:      7(ptr) AccessChain 16(w_dep) 32
+              55:    6(float) CompositeExtract 51 1
+                              Store 54 55
+              57:   10(fvec4) Load 14(u)
+              58:   28(fvec2) VectorShuffle 57 57 2 3
+              59:      7(ptr) AccessChain 56(w_undef) 39
+              60:    6(float) CompositeExtract 58 0
+                              Store 59 60
+              61:      7(ptr) AccessChain 56(w_undef) 35
+              62:    6(float) CompositeExtract 58 1
+                              Store 61 62
+              66:    63(bool) Load 65(p)
+                              SelectionMerge 68 None
+                              BranchConditional 66 67 73
+              67:               Label
+              70:     69(ptr)   AccessChain 30(t) 39
+              71:    6(float)   Load 70
+              72:      7(ptr)   AccessChain 22(w_flow) 39
+                                Store 72 71
+                                Branch 68
+              73:               Label
+              74:     69(ptr)   AccessChain 30(t) 35
+              75:    6(float)   Load 74
+              76:      7(ptr)   AccessChain 22(w_flow) 39
+                                Store 76 75
+                                Branch 68
+              68:             Label
+              79:   10(fvec4) Load 18(w_reorder)
+              80:   10(fvec4) Load 56(w_undef)
+              81:   10(fvec4) Load 12(w)
+              82:   10(fvec4) Load 20(w2)
+              83:   10(fvec4) FMul 81 82
+              84:   10(fvec4) Load 16(w_dep)
+              85:   10(fvec4) FMul 83 84
+              86:   10(fvec4) Load 22(w_flow)
+              87:   10(fvec4) FMul 85 86
+              88:   10(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 79 80 87
+                              Store 78(gl_FragColor) 88
+              91:   28(fvec2) Load 30(t)
+                              Store 90(c) 91
+                              Store 92(rep) 95
+              96:      7(ptr) AccessChain 90(c) 39
+              97:    6(float) Load 96
+              98:    63(bool) FOrdLessThan 97 93
+                              SelectionMerge 100 None
+                              BranchConditional 98 99 100
+              99:               Label
+             102:      7(ptr)   AccessChain 90(c) 39
+             103:    6(float)   Load 102
+             104:    6(float)   FMul 103 101
+             105:      7(ptr)   AccessChain 90(c) 39
+                                Store 105 104
+                                Branch 100
+             100:             Label
+             106:      7(ptr) AccessChain 90(c) 39
+             107:    6(float) Load 106
+             108:    63(bool) FOrdLessThanEqual 107 94
+                              SelectionMerge 110 None
+                              BranchConditional 108 109 110
+             109:               Label
+             112:      7(ptr)   AccessChain 92(rep) 39
+                                Store 112 111
+                                Branch 110
+             110:             Label
+             113:   10(fvec4) Load 92(rep)
+             114:   10(fvec4) Load 78(gl_FragColor)
+             115:   10(fvec4) FAdd 114 113
+                              Store 78(gl_FragColor) 115
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.uniformArray.frag.out b/Test/baseResults/spv.uniformArray.frag.out
index 8134383..fa66f2b 100644
--- a/Test/baseResults/spv.uniformArray.frag.out
+++ b/Test/baseResults/spv.uniformArray.frag.out
@@ -1,27 +1,27 @@
 spv.uniformArray.frag
 // Module Version 10000
 // Generated by (magic number): 8000a
-// Id's are bound by 53
+// Id's are bound by 60
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 14 25 35 47
+                              EntryPoint Fragment 4  "main" 14 25 43 54
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 140
                               Name 4  "main"
                               Name 9  "texColor"
                               Name 14  "color"
                               Name 25  "inColor"
-                              Name 35  "alpha"
-                              Name 47  "gl_FragColor"
-                              Name 52  "texSampler2D"
+                              Name 43  "alpha"
+                              Name 54  "gl_FragColor"
+                              Name 59  "texSampler2D"
                               Decorate 14(color) Location 1
                               Decorate 25(inColor) Location 0
-                              Decorate 35(alpha) Location 7
-                              Decorate 47(gl_FragColor) Location 0
-                              Decorate 52(texSampler2D) DescriptorSet 0
-                              Decorate 52(texSampler2D) Binding 0
+                              Decorate 43(alpha) Location 7
+                              Decorate 54(gl_FragColor) Location 0
+                              Decorate 59(texSampler2D) DescriptorSet 0
+                              Decorate 59(texSampler2D) Binding 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -38,20 +38,23 @@
               23:             TypeVector 6(float) 3
               24:             TypePointer Input 23(fvec3)
      25(inColor):     24(ptr) Variable Input
-              32:     10(int) Constant 16
-              33:             TypeArray 6(float) 32
-              34:             TypePointer Input 33
-       35(alpha):     34(ptr) Variable Input
-              36:     15(int) Constant 12
-              37:             TypePointer Input 6(float)
-              40:     10(int) Constant 3
-              41:             TypePointer Function 6(float)
-              46:             TypePointer Output 7(fvec4)
-47(gl_FragColor):     46(ptr) Variable Output
-              49:             TypeImage 6(float) 2D sampled format:Unknown
-              50:             TypeSampledImage 49
-              51:             TypePointer UniformConstant 50
-52(texSampler2D):     51(ptr) Variable UniformConstant
+              30:     10(int) Constant 0
+              31:             TypePointer Function 6(float)
+              34:     10(int) Constant 1
+              37:     10(int) Constant 2
+              40:     10(int) Constant 16
+              41:             TypeArray 6(float) 40
+              42:             TypePointer Input 41
+       43(alpha):     42(ptr) Variable Input
+              44:     15(int) Constant 12
+              45:             TypePointer Input 6(float)
+              48:     10(int) Constant 3
+              53:             TypePointer Output 7(fvec4)
+54(gl_FragColor):     53(ptr) Variable Output
+              56:             TypeImage 6(float) 2D sampled format:Unknown
+              57:             TypeSampledImage 56
+              58:             TypePointer UniformConstant 57
+59(texSampler2D):     58(ptr) Variable UniformConstant
          4(main):           2 Function None 3
                5:             Label
      9(texColor):      8(ptr) Variable Function
@@ -65,17 +68,23 @@
               27:    7(fvec4) Load 9(texColor)
               28:   23(fvec3) VectorShuffle 27 27 0 1 2
               29:   23(fvec3) FAdd 28 26
-              30:    7(fvec4) Load 9(texColor)
-              31:    7(fvec4) VectorShuffle 30 29 4 5 6 3
-                              Store 9(texColor) 31
-              38:     37(ptr) AccessChain 35(alpha) 36
-              39:    6(float) Load 38
-              42:     41(ptr) AccessChain 9(texColor) 40
-              43:    6(float) Load 42
-              44:    6(float) FAdd 43 39
-              45:     41(ptr) AccessChain 9(texColor) 40
-                              Store 45 44
-              48:    7(fvec4) Load 9(texColor)
-                              Store 47(gl_FragColor) 48
+              32:     31(ptr) AccessChain 9(texColor) 30
+              33:    6(float) CompositeExtract 29 0
+                              Store 32 33
+              35:     31(ptr) AccessChain 9(texColor) 34
+              36:    6(float) CompositeExtract 29 1
+                              Store 35 36
+              38:     31(ptr) AccessChain 9(texColor) 37
+              39:    6(float) CompositeExtract 29 2
+                              Store 38 39
+              46:     45(ptr) AccessChain 43(alpha) 44
+              47:    6(float) Load 46
+              49:     31(ptr) AccessChain 9(texColor) 48
+              50:    6(float) Load 49
+              51:    6(float) FAdd 50 47
+              52:     31(ptr) AccessChain 9(texColor) 48
+                              Store 52 51
+              55:    7(fvec4) Load 9(texColor)
+                              Store 54(gl_FragColor) 55
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.vulkan110.int16.frag.out b/Test/baseResults/spv.vulkan110.int16.frag.out
index 39b36cb..47388a2 100644
--- a/Test/baseResults/spv.vulkan110.int16.frag.out
+++ b/Test/baseResults/spv.vulkan110.int16.frag.out
@@ -1,7 +1,7 @@
 spv.vulkan110.int16.frag
 // Module Version 10300
 // Generated by (magic number): 8000a
-// Id's are bound by 523
+// Id's are bound by 535
 
                               Capability Shader
                               Capability Float16
@@ -65,35 +65,35 @@
                               Name 442  "u64"
                               Name 445  "u16v4"
                               Name 457  "bv"
-                              Name 518  "Block"
-                              MemberName 518(Block) 0  "i16"
-                              MemberName 518(Block) 1  "i16v2"
-                              MemberName 518(Block) 2  "i16v3"
-                              MemberName 518(Block) 3  "i16v4"
-                              MemberName 518(Block) 4  "u16"
-                              MemberName 518(Block) 5  "u16v2"
-                              MemberName 518(Block) 6  "u16v3"
-                              MemberName 518(Block) 7  "u16v4"
-                              Name 520  "block"
-                              Name 521  "si16"
-                              Name 522  "su16"
+                              Name 530  "Block"
+                              MemberName 530(Block) 0  "i16"
+                              MemberName 530(Block) 1  "i16v2"
+                              MemberName 530(Block) 2  "i16v3"
+                              MemberName 530(Block) 3  "i16v4"
+                              MemberName 530(Block) 4  "u16"
+                              MemberName 530(Block) 5  "u16v2"
+                              MemberName 530(Block) 6  "u16v3"
+                              MemberName 530(Block) 7  "u16v4"
+                              Name 532  "block"
+                              Name 533  "si16"
+                              Name 534  "su16"
                               MemberDecorate 24(Uniforms) 0 Offset 0
                               Decorate 24(Uniforms) Block
                               Decorate 26 DescriptorSet 0
                               Decorate 26 Binding 0
-                              MemberDecorate 518(Block) 0 Offset 0
-                              MemberDecorate 518(Block) 1 Offset 4
-                              MemberDecorate 518(Block) 2 Offset 8
-                              MemberDecorate 518(Block) 3 Offset 16
-                              MemberDecorate 518(Block) 4 Offset 24
-                              MemberDecorate 518(Block) 5 Offset 28
-                              MemberDecorate 518(Block) 6 Offset 32
-                              MemberDecorate 518(Block) 7 Offset 40
-                              Decorate 518(Block) Block
-                              Decorate 520(block) DescriptorSet 0
-                              Decorate 520(block) Binding 1
-                              Decorate 521(si16) SpecId 100
-                              Decorate 522(su16) SpecId 101
+                              MemberDecorate 530(Block) 0 Offset 0
+                              MemberDecorate 530(Block) 1 Offset 4
+                              MemberDecorate 530(Block) 2 Offset 8
+                              MemberDecorate 530(Block) 3 Offset 16
+                              MemberDecorate 530(Block) 4 Offset 24
+                              MemberDecorate 530(Block) 5 Offset 28
+                              MemberDecorate 530(Block) 6 Offset 32
+                              MemberDecorate 530(Block) 7 Offset 40
+                              Decorate 530(Block) Block
+                              Decorate 532(block) DescriptorSet 0
+                              Decorate 532(block) Binding 1
+                              Decorate 533(si16) SpecId 100
+                              Decorate 534(su16) SpecId 101
                2:             TypeVoid
                3:             TypeFunction 2
               14:             TypeInt 16 1
@@ -185,11 +185,11 @@
              443:             TypeVector 36(int16_t) 4
              444:             TypePointer Function 443(i16vec4)
              456:             TypePointer Function 425(bvec3)
-      518(Block):             TypeStruct 14(int16_t) 52(i16vec2) 197(i16vec3) 432(i16vec4) 36(int16_t) 57(i16vec2) 193(i16vec3) 443(i16vec4)
-             519:             TypePointer Uniform 518(Block)
-      520(block):    519(ptr) Variable Uniform
-       521(si16): 14(int16_t) SpecConstant 4294967286
-       522(su16): 36(int16_t) SpecConstant 20
+      530(Block):             TypeStruct 14(int16_t) 52(i16vec2) 197(i16vec3) 432(i16vec4) 36(int16_t) 57(i16vec2) 193(i16vec3) 443(i16vec4)
+             531:             TypePointer Uniform 530(Block)
+      532(block):    531(ptr) Variable Uniform
+       533(si16): 14(int16_t) SpecConstant 4294967286
+       534(su16): 36(int16_t) SpecConstant 20
          4(main):           2 Function None 3
                5:             Label
                               Return
@@ -674,68 +674,86 @@
              463: 14(int16_t) Load 346(i16)
              464: 52(i16vec2) CompositeConstruct 463 463
              465:  174(bvec2) SLessThan 462 464
-             466:  425(bvec3) Load 457(bv)
-             467:  425(bvec3) VectorShuffle 466 465 3 4 2
-                              Store 457(bv) 467
-             468:193(i16vec3) Load 356(u16v)
-             469: 36(int16_t) Load 358(u16)
-             470:193(i16vec3) CompositeConstruct 469 469 469
-             471:  425(bvec3) ULessThanEqual 468 470
-                              Store 457(bv) 471
-             472: 52(i16vec2) Load 343(i16v)
-             473: 14(int16_t) Load 346(i16)
-             474: 52(i16vec2) CompositeConstruct 473 473
-             475:  174(bvec2) SLessThanEqual 472 474
-             476:  425(bvec3) Load 457(bv)
-             477:  425(bvec3) VectorShuffle 476 475 3 4 2
-                              Store 457(bv) 477
-             478:193(i16vec3) Load 356(u16v)
-             479: 36(int16_t) Load 358(u16)
-             480:193(i16vec3) CompositeConstruct 479 479 479
-             481:  425(bvec3) UGreaterThan 478 480
-                              Store 457(bv) 481
-             482: 52(i16vec2) Load 343(i16v)
-             483: 14(int16_t) Load 346(i16)
-             484: 52(i16vec2) CompositeConstruct 483 483
-             485:  174(bvec2) SGreaterThan 482 484
-             486:  425(bvec3) Load 457(bv)
-             487:  425(bvec3) VectorShuffle 486 485 3 4 2
-                              Store 457(bv) 487
-             488:193(i16vec3) Load 356(u16v)
-             489: 36(int16_t) Load 358(u16)
-             490:193(i16vec3) CompositeConstruct 489 489 489
-             491:  425(bvec3) UGreaterThanEqual 488 490
-                              Store 457(bv) 491
-             492: 52(i16vec2) Load 343(i16v)
-             493: 14(int16_t) Load 346(i16)
-             494: 52(i16vec2) CompositeConstruct 493 493
-             495:  174(bvec2) SGreaterThanEqual 492 494
-             496:  425(bvec3) Load 457(bv)
-             497:  425(bvec3) VectorShuffle 496 495 3 4 2
+             466:    280(ptr) AccessChain 457(bv) 282
+             467:   173(bool) CompositeExtract 465 0
+                              Store 466 467
+             468:    280(ptr) AccessChain 457(bv) 264
+             469:   173(bool) CompositeExtract 465 1
+                              Store 468 469
+             470:193(i16vec3) Load 356(u16v)
+             471: 36(int16_t) Load 358(u16)
+             472:193(i16vec3) CompositeConstruct 471 471 471
+             473:  425(bvec3) ULessThanEqual 470 472
+                              Store 457(bv) 473
+             474: 52(i16vec2) Load 343(i16v)
+             475: 14(int16_t) Load 346(i16)
+             476: 52(i16vec2) CompositeConstruct 475 475
+             477:  174(bvec2) SLessThanEqual 474 476
+             478:    280(ptr) AccessChain 457(bv) 282
+             479:   173(bool) CompositeExtract 477 0
+                              Store 478 479
+             480:    280(ptr) AccessChain 457(bv) 264
+             481:   173(bool) CompositeExtract 477 1
+                              Store 480 481
+             482:193(i16vec3) Load 356(u16v)
+             483: 36(int16_t) Load 358(u16)
+             484:193(i16vec3) CompositeConstruct 483 483 483
+             485:  425(bvec3) UGreaterThan 482 484
+                              Store 457(bv) 485
+             486: 52(i16vec2) Load 343(i16v)
+             487: 14(int16_t) Load 346(i16)
+             488: 52(i16vec2) CompositeConstruct 487 487
+             489:  174(bvec2) SGreaterThan 486 488
+             490:    280(ptr) AccessChain 457(bv) 282
+             491:   173(bool) CompositeExtract 489 0
+                              Store 490 491
+             492:    280(ptr) AccessChain 457(bv) 264
+             493:   173(bool) CompositeExtract 489 1
+                              Store 492 493
+             494:193(i16vec3) Load 356(u16v)
+             495: 36(int16_t) Load 358(u16)
+             496:193(i16vec3) CompositeConstruct 495 495 495
+             497:  425(bvec3) UGreaterThanEqual 494 496
                               Store 457(bv) 497
-             498:193(i16vec3) Load 356(u16v)
-             499: 36(int16_t) Load 358(u16)
-             500:193(i16vec3) CompositeConstruct 499 499 499
-             501:  425(bvec3) IEqual 498 500
-                              Store 457(bv) 501
-             502: 52(i16vec2) Load 343(i16v)
-             503: 14(int16_t) Load 346(i16)
-             504: 52(i16vec2) CompositeConstruct 503 503
-             505:  174(bvec2) IEqual 502 504
-             506:  425(bvec3) Load 457(bv)
-             507:  425(bvec3) VectorShuffle 506 505 3 4 2
-                              Store 457(bv) 507
-             508:193(i16vec3) Load 356(u16v)
-             509: 36(int16_t) Load 358(u16)
-             510:193(i16vec3) CompositeConstruct 509 509 509
-             511:  425(bvec3) INotEqual 508 510
-                              Store 457(bv) 511
-             512: 52(i16vec2) Load 343(i16v)
-             513: 14(int16_t) Load 346(i16)
-             514: 52(i16vec2) CompositeConstruct 513 513
-             515:  174(bvec2) INotEqual 512 514
-             516:  425(bvec3) Load 457(bv)
-             517:  425(bvec3) VectorShuffle 516 515 3 4 2
-                              Store 457(bv) 517
+             498: 52(i16vec2) Load 343(i16v)
+             499: 14(int16_t) Load 346(i16)
+             500: 52(i16vec2) CompositeConstruct 499 499
+             501:  174(bvec2) SGreaterThanEqual 498 500
+             502:    280(ptr) AccessChain 457(bv) 282
+             503:   173(bool) CompositeExtract 501 0
+                              Store 502 503
+             504:    280(ptr) AccessChain 457(bv) 264
+             505:   173(bool) CompositeExtract 501 1
+                              Store 504 505
+             506:193(i16vec3) Load 356(u16v)
+             507: 36(int16_t) Load 358(u16)
+             508:193(i16vec3) CompositeConstruct 507 507 507
+             509:  425(bvec3) IEqual 506 508
+                              Store 457(bv) 509
+             510: 52(i16vec2) Load 343(i16v)
+             511: 14(int16_t) Load 346(i16)
+             512: 52(i16vec2) CompositeConstruct 511 511
+             513:  174(bvec2) IEqual 510 512
+             514:    280(ptr) AccessChain 457(bv) 282
+             515:   173(bool) CompositeExtract 513 0
+                              Store 514 515
+             516:    280(ptr) AccessChain 457(bv) 264
+             517:   173(bool) CompositeExtract 513 1
+                              Store 516 517
+             518:193(i16vec3) Load 356(u16v)
+             519: 36(int16_t) Load 358(u16)
+             520:193(i16vec3) CompositeConstruct 519 519 519
+             521:  425(bvec3) INotEqual 518 520
+                              Store 457(bv) 521
+             522: 52(i16vec2) Load 343(i16v)
+             523: 14(int16_t) Load 346(i16)
+             524: 52(i16vec2) CompositeConstruct 523 523
+             525:  174(bvec2) INotEqual 522 524
+             526:    280(ptr) AccessChain 457(bv) 282
+             527:   173(bool) CompositeExtract 525 0
+                              Store 526 527
+             528:    280(ptr) AccessChain 457(bv) 264
+             529:   173(bool) CompositeExtract 525 1
+                              Store 528 529
                               Return
                               FunctionEnd
diff --git a/Test/hlsl.imagefetch-subvec4.comp b/Test/hlsl.imagefetch-subvec4.comp
index 2a83dd2..a5d70c2 100644
--- a/Test/hlsl.imagefetch-subvec4.comp
+++ b/Test/hlsl.imagefetch-subvec4.comp
@@ -1,8 +1,41 @@
-Texture3D<int> IN: register(t0);
-RWTexture3D<uint> OUT: register(u1);
+Texture1D<float>            i1D:            register(t0);
+Texture2D<float>            i2D:            register(t1);
+Texture3D<float>            i3D:            register(t2);
+Texture1DArray<float>       i1DArray:       register(t3);
+Texture2DArray<float>       i2DArray:       register(t4);
+Texture2DMS<float>          i2DMS:          register(t5);
+Texture2DMSArray<float>     i2DMSArray:     register(t6);
+
+Texture1D<int>              ii1D:           register(t7);
+Texture2D<int>              ii2D:           register(t8);
+Texture3D<int>              ii3D:           register(t9);
+Texture1DArray<int>         ii1DArray:      register(t10);
+Texture2DArray<int>         ii2DArray:      register(t11);
+Texture2DMS<int>            ii2DMS:         register(t12);
+Texture2DMSArray<int>       ii2DMSArray:    register(t13);
+
+RWTexture3D<float> OUT: register(u0);
 
 [numthreads(8,8,8)]
 void main(uint3 tid: SV_DispatchThreadID)
 {
-    OUT[tid] = IN[tid];
+    float f = 0.0;
+    f += i1D[tid.x];
+    f += i2D[tid.xy];
+    f += i3D[tid];
+    f += i1DArray[tid.xy];
+    f += i2DArray[tid];
+    f += i2DMS.Load(tid.xy, 1);
+    f += i2DMSArray.Load(tid, 3);
+
+    int i = 0.0;
+    i += ii1D[tid.x];
+    i += ii2D[tid.xy];
+    i += ii3D[tid];
+    i += ii1DArray[tid.xy];
+    i += ii2DArray[tid];
+    i += ii2DMS.Load(tid.xy, 1);
+    i += ii2DMSArray.Load(tid, 3);
+
+    OUT[tid] = f + float(i);
 }
diff --git a/Test/hlsl.imageload-subvec4.comp b/Test/hlsl.imageload-subvec4.comp
new file mode 100644
index 0000000..b465cdb
--- /dev/null
+++ b/Test/hlsl.imageload-subvec4.comp
@@ -0,0 +1,33 @@
+RWTexture1D<float>          i1D:            register(u0);
+RWTexture2D<float>          i2D:            register(u1);
+RWTexture3D<float>          i3D:            register(u2);
+RWTexture1DArray<float>     i1DArray:       register(u3);
+RWTexture2DArray<float>     i2DArray:       register(u4);
+
+RWTexture1D<int>            ii1D:           register(u5);
+RWTexture2D<int>            ii2D:           register(u6);
+RWTexture3D<int>            ii3D:           register(u7);
+RWTexture1DArray<int>       ii1DArray:      register(u8);
+RWTexture2DArray<int>       ii2DArray:      register(u9);
+
+RWTexture3D<float> OUT: register(u10);
+
+[numthreads(8,8,8)]
+void main(uint3 tid: SV_DispatchThreadID)
+{
+    float f = 0.0;
+    f += i1D[tid.x];
+    f += i2D[tid.xy];
+    f += i3D[tid];
+    f += i1DArray[tid.xy];
+    f += i2DArray[tid];
+
+    int i = 0.0;
+    i += ii1D[tid.x];
+    i += ii2D[tid.xy];
+    i += ii3D[tid];
+    i += ii1DArray[tid.xy];
+    i += ii2DArray[tid];
+
+    OUT[tid] = f + float(i);
+}
diff --git a/Test/spv.1.4.load.bool.array.interface.block.frag b/Test/spv.1.4.load.bool.array.interface.block.frag
new file mode 100644
index 0000000..2203741
--- /dev/null
+++ b/Test/spv.1.4.load.bool.array.interface.block.frag
@@ -0,0 +1,17 @@
+#version 450 core
+
+layout(std140, set=0, binding=0) uniform ub {
+    bool bi[2][3];
+};
+layout(std430, set=0, binding=1) buffer ssbo {
+    bool bo[2][3];
+};
+
+layout(location=0) out vec4 color;
+
+void main()
+{
+    bo = bi;
+    color = vec4(0);
+}
+
diff --git a/Test/spv.AnyHitShaderMotion.rahit b/Test/spv.AnyHitShaderMotion.rahit
new file mode 100644
index 0000000..6972577
--- /dev/null
+++ b/Test/spv.AnyHitShaderMotion.rahit
@@ -0,0 +1,6 @@
+#version 460
+#extension GL_NV_ray_tracing_motion_blur : enable
+void main()
+{
+	float time = gl_CurrentRayTimeNV + 0.5f;
+}
diff --git a/Test/spv.ClosestHitShaderMotion.rchit b/Test/spv.ClosestHitShaderMotion.rchit
new file mode 100644
index 0000000..42a1838
--- /dev/null
+++ b/Test/spv.ClosestHitShaderMotion.rchit
@@ -0,0 +1,10 @@
+#version 460
+#extension GL_EXT_ray_tracing : enable
+#extension GL_NV_ray_tracing_motion_blur : enable
+layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT;
+layout(location = 0) rayPayloadInEXT vec4 incomingPayloadEXT;
+void main()
+{
+	float time = gl_CurrentRayTimeNV + 0.5f;
+	traceRayMotionNV(accEXT, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1.0, 0);
+}
diff --git a/Test/spv.IntersectShaderMotion.rint b/Test/spv.IntersectShaderMotion.rint
new file mode 100644
index 0000000..6972577
--- /dev/null
+++ b/Test/spv.IntersectShaderMotion.rint
@@ -0,0 +1,6 @@
+#version 460
+#extension GL_NV_ray_tracing_motion_blur : enable
+void main()
+{
+	float time = gl_CurrentRayTimeNV + 0.5f;
+}
diff --git a/Test/spv.MissShaderMotion.rmiss b/Test/spv.MissShaderMotion.rmiss
new file mode 100644
index 0000000..3a3dcb1
--- /dev/null
+++ b/Test/spv.MissShaderMotion.rmiss
@@ -0,0 +1,10 @@
+#version 460
+#extension GL_EXT_ray_tracing : enable
+#extension GL_NV_ray_tracing_motion_blur : enable
+layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT;
+layout(location = 0) rayPayloadEXT vec4  localPayloadEXT;
+void main()
+{
+	float time = gl_CurrentRayTimeNV + 0.5f;
+	traceRayMotionNV(accEXT, 0u, 1u, 2u, 3u, 0u, vec3(0.5f), 0.5f, vec3(1.0f), 0.75f, 1.0f, 0);
+}
diff --git a/Test/spv.RayGenShaderMotion.rgen b/Test/spv.RayGenShaderMotion.rgen
new file mode 100644
index 0000000..c38fffe
--- /dev/null
+++ b/Test/spv.RayGenShaderMotion.rgen
@@ -0,0 +1,13 @@
+#version 460
+#extension GL_EXT_ray_tracing : enable
+#extension GL_NV_ray_tracing_motion_blur : enable
+layout(binding = 0, set = 0) uniform accelerationStructureEXT accEXT;
+layout(location = 0) rayPayloadEXT vec4 payloadEXT;
+void main()
+{
+    uint lx = gl_LaunchIDEXT.x;
+    uint ly = gl_LaunchIDEXT.y;
+    uint sx = gl_LaunchSizeEXT.x;
+    uint sy = gl_LaunchSizeEXT.y;
+    traceRayMotionNV(accEXT,  lx, ly, sx, sy, 0u, vec3(0.5), 0.5f, vec3(1.0), 0.75f, 0.5, 0);
+}
diff --git a/Test/spv.atomicAdd.bufferReference.comp b/Test/spv.atomicAdd.bufferReference.comp
new file mode 100644
index 0000000..fdd031d
--- /dev/null
+++ b/Test/spv.atomicAdd.bufferReference.comp
@@ -0,0 +1,50 @@
+#version 450 core
+#pragma use_vulkan_memory_model
+#extension GL_KHR_shader_subgroup_basic : enable
+#extension GL_KHR_shader_subgroup_shuffle : enable
+#extension GL_KHR_shader_subgroup_ballot : enable
+#extension GL_KHR_memory_scope_semantics : enable
+#extension GL_ARB_gpu_shader_int64 : enable
+#extension GL_EXT_buffer_reference : enable
+// DIM/NUM_WORKGROUP_EACH_DIM overriden by spec constants
+layout(constant_id = 0) const int DIM = 1;
+layout(constant_id = 1) const int NUM_WORKGROUP_EACH_DIM = 1;
+shared bool sharedSkip;
+layout(local_size_x_id = 0, local_size_y_id = 0, local_size_z = 1) in;
+layout(buffer_reference) buffer PayloadRef { uint x[]; };
+layout(buffer_reference) buffer GuardRef { uint x[]; };
+layout(set=0, binding=2) buffer Fail { uint x[]; } fail;
+layout (push_constant, std430) uniform PC {
+   layout(offset = 0) PayloadRef payloadref;
+layout(offset = 8) GuardRef guard;
+};
+void main()
+{
+   bool pass = true;
+   bool skip = false;
+   sharedSkip = false;
+   nonprivate PayloadRef payload = payloadref;
+   ivec2 globalId          = ivec2(gl_GlobalInvocationID.xy);
+   ivec2 partnerGlobalId   = ivec2(DIM*NUM_WORKGROUP_EACH_DIM-1) - ivec2(gl_GlobalInvocationID.xy);
+   uint bufferCoord        = globalId.y * DIM*NUM_WORKGROUP_EACH_DIM + globalId.x;
+   uint partnerBufferCoord = partnerGlobalId.y * DIM*NUM_WORKGROUP_EACH_DIM + partnerGlobalId.x;
+   ivec2 imageCoord        = globalId;
+   ivec2 partnerImageCoord = partnerGlobalId;
+   ivec2 globalId00          = ivec2(DIM) * ivec2(gl_WorkGroupID.xy);
+   ivec2 partnerGlobalId00   = ivec2(DIM) * (ivec2(NUM_WORKGROUP_EACH_DIM-1) - ivec2(gl_WorkGroupID.xy));
+   uint bufferCoord00        = globalId00.y * DIM*NUM_WORKGROUP_EACH_DIM + globalId00.x;
+   uint partnerBufferCoord00 = partnerGlobalId00.y * DIM*NUM_WORKGROUP_EACH_DIM + partnerGlobalId00.x;
+   ivec2 imageCoord00        = globalId00;
+   ivec2 partnerImageCoord00 = partnerGlobalId00;
+   payload.x[bufferCoord] = bufferCoord + (payload.x[partnerBufferCoord]>>31);
+   controlBarrier(gl_ScopeWorkgroup, gl_ScopeWorkgroup, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquireRelease | gl_SemanticsMakeAvailable);
+   if (all(equal(gl_LocalInvocationID.xy, ivec2(0,0)))) {
+       atomicStore(guard.x[bufferCoord], uint(1u), gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsRelease | gl_SemanticsMakeAvailable);
+       skip = atomicLoad(guard.x[partnerBufferCoord00], gl_ScopeDevice, gl_StorageSemanticsBuffer, gl_SemanticsAcquire | gl_SemanticsMakeVisible) == 0;
+       sharedSkip = skip;
+   }
+   controlBarrier(gl_ScopeWorkgroup, gl_ScopeWorkgroup, gl_StorageSemanticsBuffer | gl_StorageSemanticsShared, gl_SemanticsAcquireRelease | gl_SemanticsMakeVisible);
+   skip = sharedSkip;
+   uint r = payload.x[partnerBufferCoord];
+   if (!skip && r != uint(partnerBufferCoord)) { fail.x[bufferCoord] = 1; }
+}
\ No newline at end of file
diff --git a/Test/spv.invariantAll.vert b/Test/spv.invariantAll.vert
new file mode 100644
index 0000000..e094aa0
--- /dev/null
+++ b/Test/spv.invariantAll.vert
@@ -0,0 +1,10 @@
+#version 450 core
+#pragma STDGL invariant(all)
+
+layout(location=0) out highp float v;
+
+void main()
+{
+    gl_Position = vec4(v, v, 0, 1);
+}
+
diff --git a/Test/spv.load.bool.array.interface.block.frag b/Test/spv.load.bool.array.interface.block.frag
new file mode 100644
index 0000000..2203741
--- /dev/null
+++ b/Test/spv.load.bool.array.interface.block.frag
@@ -0,0 +1,17 @@
+#version 450 core
+
+layout(std140, set=0, binding=0) uniform ub {
+    bool bi[2][3];
+};
+layout(std430, set=0, binding=1) buffer ssbo {
+    bool bo[2][3];
+};
+
+layout(location=0) out vec4 color;
+
+void main()
+{
+    bo = bi;
+    color = vec4(0);
+}
+
diff --git a/Test/spv.scalarlayout.frag b/Test/spv.scalarlayout.frag
index c7ecf50..e0e1b18 100644
--- a/Test/spv.scalarlayout.frag
+++ b/Test/spv.scalarlayout.frag
@@ -27,6 +27,8 @@
     S          i[2];  // offset = 160 (aligned to multiple of 8) stride = 48

 };

 

+layout (std430) uniform;

+

 void main()

 {

 }

diff --git a/glslang/HLSL/hlslParseHelper.cpp b/glslang/HLSL/hlslParseHelper.cpp
index d62f392..02aac3c 100644
--- a/glslang/HLSL/hlslParseHelper.cpp
+++ b/glslang/HLSL/hlslParseHelper.cpp
@@ -6689,12 +6689,6 @@
 
 //
 // Merge characteristics of the 'src' qualifier into the 'dst'.
-// If there is duplication, issue error messages, unless 'force'
-// is specified, which means to just override default settings.
-//
-// Also, when force is false, it will be assumed that 'src' follows
-// 'dst', for the purpose of error checking order for versions
-// that require specific orderings of qualifiers.
 //
 void HlslParseContext::mergeQualifiers(TQualifier& dst, const TQualifier& src)
 {
@@ -6712,8 +6706,7 @@
     mergeObjectLayoutQualifiers(dst, src, false);
 
     // individual qualifiers
-    bool repeated = false;
-#define MERGE_SINGLETON(field) repeated |= dst.field && src.field; dst.field |= src.field;
+#define MERGE_SINGLETON(field) dst.field |= src.field;
     MERGE_SINGLETON(invariant);
     MERGE_SINGLETON(noContraction);
     MERGE_SINGLETON(centroid);
diff --git a/glslang/Include/BaseTypes.h b/glslang/Include/BaseTypes.h
index 1d9da12..c8203c2 100644
--- a/glslang/Include/BaseTypes.h
+++ b/glslang/Include/BaseTypes.h
@@ -270,6 +270,7 @@
     EbvWorldToObject,
     EbvWorldToObject3x4,
     EbvIncomingRayFlags,
+    EbvCurrentRayTimeNV,
     // barycentrics
     EbvBaryCoordNV,
     EbvBaryCoordNoPerspNV,
@@ -475,6 +476,7 @@
     case EbvIncomingRayFlags:           return "IncomingRayFlagsNV";
     case EbvObjectToWorld:              return "ObjectToWorldNV";
     case EbvWorldToObject:              return "WorldToObjectNV";
+    case EbvCurrentRayTimeNV:           return "CurrentRayTimeNV";
 
     case EbvBaryCoordNV:                return "BaryCoordNV";
     case EbvBaryCoordNoPerspNV:         return "BaryCoordNoPerspNV";
diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h
index 172c09c..1e6ab4a 100644
--- a/glslang/Include/intermediate.h
+++ b/glslang/Include/intermediate.h
@@ -926,6 +926,7 @@
     EOpMul32x16,
 
     EOpTraceNV,
+    EOpTraceRayMotionNV,
     EOpTraceKHR,
     EOpReportIntersection,
     EOpIgnoreIntersectionNV,
diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp
index 486b6c3..823406c 100644
--- a/glslang/MachineIndependent/Initialize.cpp
+++ b/glslang/MachineIndependent/Initialize.cpp
@@ -1864,6 +1864,22 @@
 
                 "\n");
         }
+        if (profile != EEsProfile && version == 450) {
+            commonBuiltins.append(
+                "uint atomicCounterAddARB(atomic_uint, uint);"
+                "uint atomicCounterSubtractARB(atomic_uint, uint);"
+                "uint atomicCounterMinARB(atomic_uint, uint);"
+                "uint atomicCounterMaxARB(atomic_uint, uint);"
+                "uint atomicCounterAndARB(atomic_uint, uint);"
+                "uint atomicCounterOrARB(atomic_uint, uint);"
+                "uint atomicCounterXorARB(atomic_uint, uint);"
+                "uint atomicCounterExchangeARB(atomic_uint, uint);"
+                "uint atomicCounterCompSwapARB(atomic_uint, uint, uint);"
+
+                "\n");
+        }
+
+
         if (profile != EEsProfile && version >= 460) {
             commonBuiltins.append(
                 "uint atomicCounterAdd(atomic_uint, uint);"
@@ -4661,7 +4677,7 @@
             "\n");
         }
 
-    // Builtins for GL_NV_ray_tracing/GL_EXT_ray_tracing/GL_EXT_ray_query
+    // Builtins for GL_NV_ray_tracing/GL_NV_ray_tracing_motion_blur/GL_EXT_ray_tracing/GL_EXT_ray_query
     if (profile != EEsProfile && version >= 460) {
          commonBuiltins.append("void rayQueryInitializeEXT(rayQueryEXT, accelerationStructureEXT, uint, uint, vec3, float, vec3, float);"
             "void rayQueryTerminateEXT(rayQueryEXT);"
@@ -4690,6 +4706,7 @@
 
         stageBuiltins[EShLangRayGen].append(
             "void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
+            "void traceRayMotionNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);"
             "void traceRayEXT(accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
             "void executeCallableNV(uint, int);"
             "void executeCallableEXT(uint, int);"
@@ -4704,12 +4721,14 @@
             "\n");
         stageBuiltins[EShLangClosestHit].append(
             "void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
+            "void traceRayMotionNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);"
             "void traceRayEXT(accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
             "void executeCallableNV(uint, int);"
             "void executeCallableEXT(uint, int);"
             "\n");
         stageBuiltins[EShLangMiss].append(
             "void traceNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
+            "void traceRayMotionNV(accelerationStructureNV,uint,uint,uint,uint,uint,vec3,float,vec3,float,float,int);"
             "void traceRayEXT(accelerationStructureEXT,uint,uint,uint,uint,uint,vec3,float,vec3,float,int);"
             "void executeCallableNV(uint, int);"
             "void executeCallableEXT(uint, int);"
@@ -5918,6 +5937,7 @@
             "in    mat3x4 gl_WorldToObject3x4EXT;"
             "in    uint   gl_IncomingRayFlagsNV;"
             "in    uint   gl_IncomingRayFlagsEXT;"
+            "in    float  gl_CurrentRayTimeNV;"
             "\n";
         const char *hitDecls =
             "in    uvec3  gl_LaunchIDNV;"
@@ -5953,6 +5973,7 @@
             "in    mat3x4 gl_WorldToObject3x4EXT;"
             "in    uint   gl_IncomingRayFlagsNV;"
             "in    uint   gl_IncomingRayFlagsEXT;"
+            "in    float  gl_CurrentRayTimeNV;"
             "\n";
         const char *missDecls =
             "in    uvec3  gl_LaunchIDNV;"
@@ -5971,6 +5992,7 @@
             "in    float  gl_RayTmaxEXT;"
             "in    uint   gl_IncomingRayFlagsNV;"
             "in    uint   gl_IncomingRayFlagsEXT;"
+            "in    float  gl_CurrentRayTimeNV;"
             "\n";
 
         const char *callableDecls =
@@ -7283,6 +7305,9 @@
 
             snprintf(builtInConstant, maxSize, "const int  gl_MaxFragmentUniformVectors = %d;", resources.maxFragmentUniformVectors);
             s.append(builtInConstant);
+
+            snprintf(builtInConstant, maxSize, "const int  gl_MaxVaryingVectors = %d;", resources.maxVaryingVectors);
+            s.append(builtInConstant);
         }
 
         snprintf(builtInConstant, maxSize, "const int  gl_MaxVertexAttribs = %d;", resources.maxVertexAttribs);
@@ -8258,6 +8283,19 @@
             symbolTable.setFunctionExtensions("atomicCounter"         , 1, &E_GL_ARB_shader_atomic_counters);
         }
 
+        // E_GL_ARB_shader_atomic_counter_ops
+        if (profile != EEsProfile && version == 450) {
+            symbolTable.setFunctionExtensions("atomicCounterAddARB"     , 1, &E_GL_ARB_shader_atomic_counter_ops);
+            symbolTable.setFunctionExtensions("atomicCounterSubtractARB", 1, &E_GL_ARB_shader_atomic_counter_ops);
+            symbolTable.setFunctionExtensions("atomicCounterMinARB"     , 1, &E_GL_ARB_shader_atomic_counter_ops);
+            symbolTable.setFunctionExtensions("atomicCounterMaxARB"     , 1, &E_GL_ARB_shader_atomic_counter_ops);
+            symbolTable.setFunctionExtensions("atomicCounterAndARB"     , 1, &E_GL_ARB_shader_atomic_counter_ops);
+            symbolTable.setFunctionExtensions("atomicCounterOrARB"      , 1, &E_GL_ARB_shader_atomic_counter_ops);
+            symbolTable.setFunctionExtensions("atomicCounterXorARB"     , 1, &E_GL_ARB_shader_atomic_counter_ops);
+            symbolTable.setFunctionExtensions("atomicCounterExchangeARB", 1, &E_GL_ARB_shader_atomic_counter_ops);
+            symbolTable.setFunctionExtensions("atomicCounterCompSwapARB", 1, &E_GL_ARB_shader_atomic_counter_ops);
+        }
+
         // E_GL_ARB_derivative_control
         if (profile != EEsProfile && version < 450) {
             symbolTable.setFunctionExtensions("dFdxFine",     1, &E_GL_ARB_derivative_control);
@@ -8786,11 +8824,13 @@
             symbolTable.setVariableExtensions("gl_WorldToObject3x4EXT", 1, &E_GL_EXT_ray_tracing);
             symbolTable.setVariableExtensions("gl_IncomingRayFlagsNV", 1, &E_GL_NV_ray_tracing);
             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_DeviceIndex", 1, &E_GL_EXT_device_group);
 
 
             symbolTable.setFunctionExtensions("traceNV", 1, &E_GL_NV_ray_tracing);
+            symbolTable.setFunctionExtensions("traceRayMotionNV", 1, &E_GL_NV_ray_tracing_motion_blur);
             symbolTable.setFunctionExtensions("traceRayEXT", 1, &E_GL_EXT_ray_tracing);
             symbolTable.setFunctionExtensions("reportIntersectionNV", 1, &E_GL_NV_ray_tracing);
             symbolTable.setFunctionExtensions("reportIntersectionEXT", 1, &E_GL_EXT_ray_tracing);
@@ -8834,6 +8874,7 @@
             BuiltInVariable("gl_IncomingRayFlagsNV",     EbvIncomingRayFlags,   symbolTable);
             BuiltInVariable("gl_IncomingRayFlagsEXT",    EbvIncomingRayFlags,   symbolTable);
             BuiltInVariable("gl_DeviceIndex",            EbvDeviceIndex,        symbolTable);
+            BuiltInVariable("gl_CurrentRayTimeNV",       EbvCurrentRayTimeNV,   symbolTable);
 
             // GL_ARB_shader_ballot
             symbolTable.setVariableExtensions("gl_SubGroupSizeARB",       1, &E_GL_ARB_shader_ballot);
@@ -9258,6 +9299,18 @@
     symbolTable.relateToOperator("clockRealtimeEXT",     EOpReadClockDeviceKHR);
     symbolTable.relateToOperator("clockRealtime2x32EXT", EOpReadClockDeviceKHR);
 
+    if (profile != EEsProfile && version == 450) {
+        symbolTable.relateToOperator("atomicCounterAddARB",      EOpAtomicCounterAdd);
+        symbolTable.relateToOperator("atomicCounterSubtractARB", EOpAtomicCounterSubtract);
+        symbolTable.relateToOperator("atomicCounterMinARB",      EOpAtomicCounterMin);
+        symbolTable.relateToOperator("atomicCounterMaxARB",      EOpAtomicCounterMax);
+        symbolTable.relateToOperator("atomicCounterAndARB",      EOpAtomicCounterAnd);
+        symbolTable.relateToOperator("atomicCounterOrARB",       EOpAtomicCounterOr);
+        symbolTable.relateToOperator("atomicCounterXorARB",      EOpAtomicCounterXor);
+        symbolTable.relateToOperator("atomicCounterExchangeARB", EOpAtomicCounterExchange);
+        symbolTable.relateToOperator("atomicCounterCompSwapARB", EOpAtomicCounterCompSwap);
+    }
+
     if (profile != EEsProfile && version >= 460) {
         symbolTable.relateToOperator("atomicCounterAdd",      EOpAtomicCounterAdd);
         symbolTable.relateToOperator("atomicCounterSubtract", EOpAtomicCounterSubtract);
@@ -9665,6 +9718,7 @@
     case EShLangMiss:
         if (profile != EEsProfile && version >= 460) {
             symbolTable.relateToOperator("traceNV", EOpTraceNV);
+            symbolTable.relateToOperator("traceRayMotionNV", EOpTraceRayMotionNV);
             symbolTable.relateToOperator("traceRayEXT", EOpTraceKHR);
             symbolTable.relateToOperator("executeCallableNV", EOpExecuteCallableNV);
             symbolTable.relateToOperator("executeCallableEXT", EOpExecuteCallableKHR);
diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp
index d1123d4..0278445 100644
--- a/glslang/MachineIndependent/Intermediate.cpp
+++ b/glslang/MachineIndependent/Intermediate.cpp
@@ -1739,7 +1739,7 @@
         case EbtUint:
             switch (from) {
             case EbtInt:
-                return version >= 400 || getSource() == EShSourceHlsl;
+                return version >= 400 || getSource() == EShSourceHlsl || IsRequestedExtension(E_GL_ARB_gpu_shader5);
             case EbtBool:
                 return getSource() == EShSourceHlsl;
             case EbtInt16:
@@ -2676,7 +2676,11 @@
 // 'swizzleOkay' says whether or not it is okay to consider a swizzle
 // a valid part of the dereference chain.
 //
-const TIntermTyped* TIntermediate::findLValueBase(const TIntermTyped* node, bool swizzleOkay)
+// 'BufferReferenceOk' says if type is buffer_reference, the routine stop to find the most left node.
+//
+//
+
+const TIntermTyped* TIntermediate::findLValueBase(const TIntermTyped* node, bool swizzleOkay , bool bufferReferenceOk)
 {
     do {
         const TIntermBinary* binary = node->getAsBinaryNode();
@@ -2694,6 +2698,8 @@
                 return nullptr;
         }
         node = node->getAsBinaryNode()->getLeft();
+        if (bufferReferenceOk && node->isReference())
+            return node;
     } while (true);
 }
 
diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp
index c2b9edc..b957bb8 100644
--- a/glslang/MachineIndependent/ParseHelper.cpp
+++ b/glslang/MachineIndependent/ParseHelper.cpp
@@ -327,6 +327,16 @@
     block.getQualifier().layoutMatrix = ElmRowMajor;
 }
 
+void TParseContext::setInvariant(const TSourceLoc& loc, const char* builtin) {
+    TSymbol* symbol = symbolTable.find(builtin);
+    if (symbol && symbol->getType().getQualifier().isPipeOutput()) {
+        if (intermediate.inIoAccessed(builtin))
+            warn(loc, "changing qualification after use", "invariant", builtin);
+        TSymbol* csymbol = symbolTable.copyUp(symbol);
+        csymbol->getWritableType().getQualifier().invariant = true;
+    }
+}
+
 void TParseContext::handlePragma(const TSourceLoc& loc, const TVector<TString>& tokens)
 {
 #ifndef GLSLANG_WEB
@@ -404,8 +414,33 @@
         intermediate.setUseVariablePointers();
     } else if (tokens[0].compare("once") == 0) {
         warn(loc, "not implemented", "#pragma once", "");
-    } else if (tokens[0].compare("glslang_binary_double_output") == 0)
+    } else if (tokens[0].compare("glslang_binary_double_output") == 0) {
         intermediate.setBinaryDoubleOutput();
+    } else if (spvVersion.spv > 0 && tokens[0].compare("STDGL") == 0 &&
+               tokens[1].compare("invariant") == 0 && tokens[3].compare("all") == 0) {
+        intermediate.setInvariantAll();
+        // Set all builtin out variables invariant if declared
+        setInvariant(loc, "gl_Position");
+        setInvariant(loc, "gl_PointSize");
+        setInvariant(loc, "gl_ClipDistance");
+        setInvariant(loc, "gl_CullDistance");
+        setInvariant(loc, "gl_TessLevelOuter");
+        setInvariant(loc, "gl_TessLevelInner");
+        setInvariant(loc, "gl_PrimitiveID");
+        setInvariant(loc, "gl_Layer");
+        setInvariant(loc, "gl_ViewportIndex");
+        setInvariant(loc, "gl_FragDepth");
+        setInvariant(loc, "gl_SampleMask");
+        setInvariant(loc, "gl_ClipVertex");
+        setInvariant(loc, "gl_FrontColor");
+        setInvariant(loc, "gl_BackColor");
+        setInvariant(loc, "gl_FrontSecondaryColor");
+        setInvariant(loc, "gl_BackSecondaryColor");
+        setInvariant(loc, "gl_TexCoord");
+        setInvariant(loc, "gl_FogFragCoord");
+        setInvariant(loc, "gl_FragColor");
+        setInvariant(loc, "gl_FragData");
+    }
 #endif
 }
 
@@ -2273,6 +2308,10 @@
         if (!(*argp)[10]->getAsConstantUnion())
             error(loc, "argument must be compile-time constant", "payload number", "a");
         break;
+    case EOpTraceRayMotionNV:
+        if (!(*argp)[11]->getAsConstantUnion())
+            error(loc, "argument must be compile-time constant", "payload number", "a");
+        break;
     case EOpTraceKHR:
         if (!(*argp)[10]->getAsConstantUnion())
             error(loc, "argument must be compile-time constant", "payload number", "a");
@@ -2409,6 +2448,14 @@
                    arg0->getType().isFloatingDomain()) {
             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)
+            error(loc,"Atomic memory function can only be used for shader storage block member or shared variable.",
+            fnCandidate.getName().c_str(), "");
+
         break;
     }
 
@@ -3651,6 +3698,8 @@
         profileRequires(loc, ENoProfile, 130, nullptr, "out for stage outputs");
         profileRequires(loc, EEsProfile, 300, nullptr, "out for stage outputs");
         qualifier.storage = EvqVaryingOut;
+        if (intermediate.isInvariantAll())
+            qualifier.invariant = true;
         break;
     case EvqInOut:
         qualifier.storage = EvqVaryingIn;
@@ -3667,7 +3716,7 @@
         if (blockName == nullptr &&
             qualifier.layoutPacking == ElpStd430)
         {
-            error(loc, "it is invalid to declare std430 qualifier on uniform", "", "");
+            requireExtensions(loc, 1, &E_GL_EXT_scalar_block_layout, "default std430 layout for uniform");
         }
         break;
     default:
diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h
index c9e6334..de44884 100644
--- a/glslang/MachineIndependent/ParseHelper.h
+++ b/glslang/MachineIndependent/ParseHelper.h
@@ -241,6 +241,7 @@
     // override this to set the language-specific name
     virtual const char* getAtomicCounterBlockName() const { return ""; }
     virtual void setAtomicCounterBlockDefaults(TType&) const {}
+    virtual void setInvariant(const TSourceLoc& loc, const char* builtin) {}
     virtual void finalizeAtomicCounterBlockLayout(TVariable&) {}
     bool isAtomicCounterBlock(const TSymbol& symbol) {
         const TVariable* var = symbol.getAsVariable();
@@ -511,6 +512,7 @@
     virtual const char* getAtomicCounterBlockName() const override;
     virtual void finalizeAtomicCounterBlockLayout(TVariable&) override;
     virtual void setAtomicCounterBlockDefaults(TType& block) const override;
+    virtual void setInvariant(const TSourceLoc& loc, const char* builtin) override;
 
 public:
     //
diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp
index 2698dd9..097ee84 100644
--- a/glslang/MachineIndependent/Versions.cpp
+++ b/glslang/MachineIndependent/Versions.cpp
@@ -165,7 +165,9 @@
         EShTargetLanguageVersion minSpvVersion;
     } extensionData;
 
-    const extensionData exts[] = { {E_GL_EXT_ray_tracing, EShTargetSpv_1_4} };
+    const extensionData exts[] = { {E_GL_EXT_ray_tracing, EShTargetSpv_1_4},
+                                   {E_GL_NV_ray_tracing_motion_blur, EShTargetSpv_1_4}
+                                 };
 
     for (size_t ii = 0; ii < sizeof(exts) / sizeof(exts[0]); ii++) {
         // Add only extensions which require > spv1.0 to save space in map
@@ -198,6 +200,7 @@
     extensionBehavior[E_GL_ARB_explicit_uniform_location]    = EBhDisable;
     extensionBehavior[E_GL_ARB_shader_image_load_store]      = EBhDisable;
     extensionBehavior[E_GL_ARB_shader_atomic_counters]       = EBhDisable;
+    extensionBehavior[E_GL_ARB_shader_atomic_counter_ops]    = EBhDisable;
     extensionBehavior[E_GL_ARB_shader_draw_parameters]       = EBhDisable;
     extensionBehavior[E_GL_ARB_shader_group_vote]            = EBhDisable;
     extensionBehavior[E_GL_ARB_derivative_control]           = EBhDisable;
@@ -281,6 +284,7 @@
     extensionBehavior[E_GL_NV_shader_subgroup_partitioned]           = EBhDisable;
     extensionBehavior[E_GL_NV_shading_rate_image]                    = EBhDisable;
     extensionBehavior[E_GL_NV_ray_tracing]                           = EBhDisable;
+    extensionBehavior[E_GL_NV_ray_tracing_motion_blur]               = EBhDisable;
     extensionBehavior[E_GL_NV_fragment_shader_barycentric]           = EBhDisable;
     extensionBehavior[E_GL_NV_compute_shader_derivatives]            = EBhDisable;
     extensionBehavior[E_GL_NV_shader_texture_footprint]              = EBhDisable;
@@ -518,6 +522,7 @@
             "#define GL_NV_shader_subgroup_partitioned 1\n"
             "#define GL_NV_shading_rate_image 1\n"
             "#define GL_NV_ray_tracing 1\n"
+            "#define GL_NV_ray_tracing_motion_blur 1\n"
             "#define GL_NV_fragment_shader_barycentric 1\n"
             "#define GL_NV_compute_shader_derivatives 1\n"
             "#define GL_NV_shader_texture_footprint 1\n"
diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h
index 2e8cc29..949a7a1 100644
--- a/glslang/MachineIndependent/Versions.h
+++ b/glslang/MachineIndependent/Versions.h
@@ -136,6 +136,7 @@
 const char* const E_GL_ARB_explicit_uniform_location    = "GL_ARB_explicit_uniform_location";
 const char* const E_GL_ARB_shader_image_load_store      = "GL_ARB_shader_image_load_store";
 const char* const E_GL_ARB_shader_atomic_counters       = "GL_ARB_shader_atomic_counters";
+const char* const E_GL_ARB_shader_atomic_counter_ops    = "GL_ARB_shader_atomic_counter_ops";
 const char* const E_GL_ARB_shader_draw_parameters       = "GL_ARB_shader_draw_parameters";
 const char* const E_GL_ARB_shader_group_vote            = "GL_ARB_shader_group_vote";
 const char* const E_GL_ARB_derivative_control           = "GL_ARB_derivative_control";
@@ -247,6 +248,7 @@
 const char* const E_GL_NV_shader_subgroup_partitioned           = "GL_NV_shader_subgroup_partitioned";
 const char* const E_GL_NV_shading_rate_image                    = "GL_NV_shading_rate_image";
 const char* const E_GL_NV_ray_tracing                           = "GL_NV_ray_tracing";
+const char* const E_GL_NV_ray_tracing_motion_blur               = "GL_NV_ray_tracing_motion_blur";
 const char* const E_GL_NV_fragment_shader_barycentric           = "GL_NV_fragment_shader_barycentric";
 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";
diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp
index 105adc4..a0fade1 100644
--- a/glslang/MachineIndependent/intermOut.cpp
+++ b/glslang/MachineIndependent/intermOut.cpp
@@ -1089,6 +1089,7 @@
     case EOpSubpassLoadMS: out.debug << "subpassLoadMS"; break;
 
     case EOpTraceNV:                          out.debug << "traceNV"; break;
+    case EOpTraceRayMotionNV:                 out.debug << "traceRayMotionNV"; break;
     case EOpTraceKHR:                         out.debug << "traceRayKHR"; break;
     case EOpReportIntersection:               out.debug << "reportIntersectionNV"; break;
     case EOpIgnoreIntersectionNV:             out.debug << "ignoreIntersectionNV"; break;
diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp
index 42b416d..9656e2e 100644
--- a/glslang/MachineIndependent/linkValidate.cpp
+++ b/glslang/MachineIndependent/linkValidate.cpp
@@ -316,6 +316,7 @@
     MERGE_TRUE(useUnknownFormat);
     MERGE_TRUE(hlslOffsets);
     MERGE_TRUE(useStorageBuffer);
+    MERGE_TRUE(invariantAll);
     MERGE_TRUE(hlslIoMapping);
 
     // TODO: sourceFile
diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h
index 5cc9930..6aa9399 100644
--- a/glslang/MachineIndependent/localintermediate.h
+++ b/glslang/MachineIndependent/localintermediate.h
@@ -291,6 +291,7 @@
         numEntryPoints(0), numErrors(0), numPushConstants(0), recursive(false),
         invertY(false),
         useStorageBuffer(false),
+        invariantAll(false),
         nanMinMaxClamp(false),
         depthReplacing(false),
         uniqueId(0),
@@ -538,7 +539,7 @@
     TIntermTyped* foldSwizzle(TIntermTyped* node, TSwizzleSelectors<TVectorSelector>& fields, const TSourceLoc&);
 
     // Tree ops
-    static const TIntermTyped* findLValueBase(const TIntermTyped*, bool swizzleOkay);
+    static const TIntermTyped* findLValueBase(const TIntermTyped*, bool swizzleOkay , bool BufferReferenceOk = false);
 
     // Linkage related
     void addSymbolLinkageNodes(TIntermAggregate*& linkage, EShLanguage, TSymbolTable&);
@@ -560,6 +561,8 @@
 
     void setUseStorageBuffer() { useStorageBuffer = true; }
     bool usingStorageBuffer() const { return useStorageBuffer; }
+    void setInvariantAll() { invariantAll = true; }
+    bool isInvariantAll() const { return invariantAll; }
     void setDepthReplacing() { depthReplacing = true; }
     bool isDepthReplacing() const { return depthReplacing; }
     bool setLocalSize(int dim, int size)
@@ -926,6 +929,11 @@
         return false;
     }
 
+    bool IsRequestedExtension(const char* extension) const
+    {
+        return (requestedExtensions.find(extension) != requestedExtensions.end());
+    }
+
     void addToCallGraph(TInfoSink&, const TString& caller, const TString& callee);
     void merge(TInfoSink&, TIntermediate&);
     void finalCheck(TInfoSink&, bool keepUncalled);
@@ -1063,6 +1071,7 @@
     bool recursive;
     bool invertY;
     bool useStorageBuffer;
+    bool invariantAll;
     bool nanMinMaxClamp;            // true if desiring min/max/clamp to favor non-NaN over NaN
     bool depthReplacing;
     int localSize[3];
diff --git a/gtests/AST.FromFile.cpp b/gtests/AST.FromFile.cpp
index 77f0aaf..6e7a659 100644
--- a/gtests/AST.FromFile.cpp
+++ b/gtests/AST.FromFile.cpp
@@ -282,6 +282,9 @@
         "terminate.vert",
         "negativeWorkGroupSize.comp",
         "textureoffset_sampler2darrayshadow.vert",
+        "atomicAdd.comp",
+        "GL_ARB_gpu_shader5.u2i.vert",
+        "atomicCounterARBOps.vert"
     })),
     FileNameAsCustomTestSuffix
 );
diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp
index 33deef5..5e1cbda 100644
--- a/gtests/Hlsl.FromFile.cpp
+++ b/gtests/Hlsl.FromFile.cpp
@@ -235,6 +235,7 @@
         {"hlsl.groupid.comp", "main"},
         {"hlsl.identifier.sample.frag", "main"},
         {"hlsl.if.frag", "PixelShaderFunction"},
+        {"hlsl.imageload-subvec4.comp", "main"},
         {"hlsl.imagefetch-subvec4.comp", "main"},
         {"hlsl.implicitBool.frag", "main"},
         {"hlsl.inf.vert", "main"},
diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp
index 20683a6..29740f3 100644
--- a/gtests/Spv.FromFile.cpp
+++ b/gtests/Spv.FromFile.cpp
@@ -77,6 +77,7 @@
 using GlslIoMap = GlslangTest<::testing::TestWithParam<IoMapData>>;
 using CompileVulkanToSpirvTestAMD = GlslangTest<::testing::TestWithParam<std::string>>;
 using CompileVulkanToSpirvTestNV = GlslangTest<::testing::TestWithParam<std::string>>;
+using CompileVulkanToSpirv14TestNV = GlslangTest<::testing::TestWithParam<std::string>>;
 using CompileUpgradeTextureToSampledTextureAndDropSamplersTest = GlslangTest<::testing::TestWithParam<std::string>>;
 
 // Compiling GLSL to SPIR-V under Vulkan semantics. Expected to successfully
@@ -204,6 +205,13 @@
                             Target::Spv);
 }
 
+TEST_P(CompileVulkanToSpirv14TestNV, FromFile)
+{
+    loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(),
+                            Source::GLSL, Semantics::Vulkan, glslang::EShTargetVulkan_1_1, glslang::EShTargetSpv_1_4,
+                            Target::Spv);
+}
+
 TEST_P(CompileUpgradeTextureToSampledTextureAndDropSamplersTest, FromFile)
 {
     loadCompileUpgradeTextureToSampledTextureAndDropSamplersAndCheck(GlobalTestSettings.testRoot,
@@ -352,6 +360,7 @@
         "spv.functionParameterTypes.frag",
         "spv.GeometryShaderPassthrough.geom",
         "spv.funcall.array.frag",
+        "spv.load.bool.array.interface.block.frag",
         "spv.interpOps.frag",
         "spv.int64.frag",
         "spv.intcoopmat.comp",
@@ -363,6 +372,7 @@
         "spv.intrinsicsSpirvLiteral.vert",
         "spv.intrinsicsSpirvStorageClass.rchit",
         "spv.intrinsicsSpirvType.rgen",
+        "spv.invariantAll.vert",
         "spv.layer.tese",
         "spv.layoutNested.vert",
         "spv.length.frag",
@@ -465,6 +475,7 @@
         "spv.smBuiltins.frag",
         "spv.builtin.PrimitiveShadingRateEXT.vert",
         "spv.builtin.ShadingRateEXT.frag",
+        "spv.atomicAdd.bufferReference.comp"
     })),
     FileNameAsCustomTestSuffix
 );
@@ -565,6 +576,7 @@
         "spv.1.4.OpCopyLogicalBool.comp",
         "spv.1.4.OpCopyLogical.funcall.frag",
         "spv.1.4.funcall.array.frag",
+        "spv.1.4.load.bool.array.interface.block.frag",
         "spv.1.4.image.frag",
         "spv.1.4.sparseTexture.frag",
         "spv.1.4.texture.frag",
@@ -762,6 +774,17 @@
 );
 
 INSTANTIATE_TEST_SUITE_P(
+    Glsl, CompileVulkanToSpirv14TestNV,
+    ::testing::ValuesIn(std::vector<std::string>({
+    "spv.RayGenShaderMotion.rgen",
+    "spv.IntersectShaderMotion.rint",
+    "spv.AnyHitShaderMotion.rahit",
+    "spv.ClosestHitShaderMotion.rchit",
+    "spv.MissShaderMotion.rmiss",
+})),
+FileNameAsCustomTestSuffix
+);
+INSTANTIATE_TEST_SUITE_P(
     Glsl, CompileUpgradeTextureToSampledTextureAndDropSamplersTest,
     ::testing::ValuesIn(std::vector<std::string>({
       "spv.texture.sampler.transform.frag",
diff --git a/known_good.json b/known_good.json
index 177fab1..e1c2ce8 100644
--- a/known_good.json
+++ b/known_good.json
@@ -5,14 +5,14 @@
       "site" : "github",
       "subrepo" : "KhronosGroup/SPIRV-Tools",
       "subdir" : "External/spirv-tools",
-      "commit" : "4d22f58a812ea02e1ad53c9ccba12cb48f2bd0b2"
+      "commit" : "1fbed83c8aab8517d821fcb4164c08567951938f"
     },
     {
       "name" : "spirv-tools/external/spirv-headers",
       "site" : "github",
       "subrepo" : "KhronosGroup/SPIRV-Headers",
       "subdir" : "External/spirv-tools/external/spirv-headers",
-      "commit" : "f5417a4b6633c3217c9a1bc2f0c70b1454975ba7"
+      "commit" : "449bc986ba6f4c5e10e32828783f9daef2a77644"
     }
   ]
 }