Merge remote-tracking branch 'LocalGitHub/master'
diff --git a/README.md b/README.md
index 9d5efb5..504447e 100644
--- a/README.md
+++ b/README.md
@@ -1,50 +1,7 @@
-Also see the Khronos landing page for glslang as a reference front end:
+Private version of glslang for Khronos-internal development.
 
-https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/
-
-The above page includes where to get binaries, and is kept up to date
-regarding the feature level of glslang.
-
-glslang
-=======
-
-[![Build Status](https://travis-ci.org/KhronosGroup/glslang.svg?branch=master)](https://travis-ci.org/KhronosGroup/glslang)
-[![Build status](https://ci.appveyor.com/api/projects/status/q6fi9cb0qnhkla68/branch/master?svg=true)](https://ci.appveyor.com/project/Khronoswebmaster/glslang/branch/master)
-
-An OpenGL and OpenGL ES shader front end and validator.
-
-There are several components:
-
-1. A GLSL/ESSL front-end for reference validation and translation of GLSL/ESSL into an AST.
-
-2. An HLSL front-end for translation of a broad generic HLL into the AST. See [issue 362](https://github.com/KhronosGroup/glslang/issues/362) and [issue 701](https://github.com/KhronosGroup/glslang/issues/701) for current status.
-
-3. A SPIR-V back end for translating the AST to SPIR-V.
-
-4. A standalone wrapper, `glslangValidator`, that can be used as a command-line tool for the above.
-
-How to add a feature protected by a version/extension/stage/profile:  See the
-comment in `glslang/MachineIndependent/Versions.cpp`.
-
-Tasks waiting to be done are documented as GitHub issues.
-
-Execution of Standalone Wrapper
--------------------------------
-
-To use the standalone binary form, execute `glslangValidator`, and it will print
-a usage statement.  Basic operation is to give it a file containing a shader,
-and it will print out warnings/errors and optionally an AST.
-
-The applied stage-specific rules are based on the file extension:
-* `.vert` for a vertex shader
-* `.tesc` for a tessellation control shader
-* `.tese` for a tessellation evaluation shader
-* `.geom` for a geometry shader
-* `.frag` for a fragment shader
-* `.comp` for a compute shader
-
-There is also a non-shader extension
-* `.conf` for a configuration file of limits, see usage statement for example
+MRs to add functionality must be accompanied by simple regression tests, which are supplied with the gtests framework.
+See instructions below.
 
 Building
 --------
@@ -54,7 +11,7 @@
 * [CMake][cmake]: for generating compilation targets.
 * [Python 2.7][python]: for executing SPIRV-Tools scripts. (Optional if not using SPIRV-Tools.)
 * [bison][bison]: _optional_, but needed when changing the grammar (glslang.y).
-* [googletest][googletest]: _optional_, but should use if making any changes to glslang.
+* [googletest][googletest]: needed if making any changes to glslang.
 
 ### Build steps
 
@@ -63,9 +20,9 @@
 ```bash
 cd <parent of where you want glslang to be>
 # If using SSH
-git clone git@github.com:KhronosGroup/glslang.git
+git clone git@gitlab.khronos.org:GLSL/glslang.git
 # Or if using HTTPS
-git clone https://github.com/KhronosGroup/glslang.git
+git clone https://gitlab.khronos.org/GLSL/glslang.git
 ```
 
 #### 2) Check-Out External Projects
diff --git a/SPIRV/GLSL.ext.AMD.h b/SPIRV/GLSL.ext.AMD.h
index 7e97be3..d4f57ef 100644
--- a/SPIRV/GLSL.ext.AMD.h
+++ b/SPIRV/GLSL.ext.AMD.h
@@ -104,14 +104,7 @@
 // SPV_AMD_shader_image_load_store_lod
 static const char* const E_SPV_AMD_shader_image_load_store_lod = "SPV_AMD_shader_image_load_store_lod";
 
-static const Capability CapabilityImageReadWriteLodAMD = static_cast<Capability>(5015);
-
 // SPV_AMD_shader_fragment_mask
 static const char* const E_SPV_AMD_shader_fragment_mask = "SPV_AMD_shader_fragment_mask";
 
-static const Capability CapabilityFragmentMaskAMD = static_cast<Capability>(5010);
-
-static const Op OpFragmentMaskFetchAMD = static_cast<Op>(5011);
-static const Op OpFragmentFetchAMD     = static_cast<Op>(5012);
-
 #endif  // #ifndef GLSLextAMD_H
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
old mode 100755
new mode 100644
index b0e51df..aa29267
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -1,6 +1,7 @@
 //
 // Copyright (C) 2014-2016 LunarG, Inc.
 // Copyright (C) 2015-2016 Google, Inc.
+// Copyright (C) 2017 ARM Limited.
 //
 // All rights reserved.
 //
@@ -174,10 +175,12 @@
     spv::Id createUnaryOperation(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand,glslang::TBasicType typeProxy);
     spv::Id createUnaryMatrixOperation(spv::Op op, spv::Decoration precision, spv::Decoration noContraction, spv::Id typeId, spv::Id operand,glslang::TBasicType typeProxy);
     spv::Id createConversion(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id destTypeId, spv::Id operand, glslang::TBasicType typeProxy);
+    spv::Id createConversionOperation(glslang::TOperator op, spv::Id operand, int vectorSize);
     spv::Id makeSmearedConstant(spv::Id constant, int vectorSize);
     spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
     spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
     spv::Id CreateInvocationsVectorOperation(spv::Op op, spv::GroupOperation groupOperation, spv::Id typeId, std::vector<spv::Id>& operands);
+    spv::Id createSubgroupOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
     spv::Id createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy);
     spv::Id createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId);
     spv::Id getSymbolId(const glslang::TIntermSymbol* node);
@@ -581,6 +584,46 @@
         builder.addCapability(spv::CapabilitySubgroupBallotKHR);
         return spv::BuiltInSubgroupLtMaskKHR;
 
+    case glslang::EbvNumSubgroups:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        return spv::BuiltInNumSubgroups;
+
+    case glslang::EbvSubgroupID:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        return spv::BuiltInSubgroupId;
+
+    case glslang::EbvSubgroupSize2:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        return spv::BuiltInSubgroupSize;
+
+    case glslang::EbvSubgroupInvocation2:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        return spv::BuiltInSubgroupLocalInvocationId;
+
+    case glslang::EbvSubgroupEqMask2:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        builder.addCapability(spv::CapabilityGroupNonUniformBallot);
+        return spv::BuiltInSubgroupEqMask;
+
+    case glslang::EbvSubgroupGeMask2:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        builder.addCapability(spv::CapabilityGroupNonUniformBallot);
+        return spv::BuiltInSubgroupGeMask;
+
+    case glslang::EbvSubgroupGtMask2:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        builder.addCapability(spv::CapabilityGroupNonUniformBallot);
+        return spv::BuiltInSubgroupGtMask;
+
+    case glslang::EbvSubgroupLeMask2:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        builder.addCapability(spv::CapabilityGroupNonUniformBallot);
+        return spv::BuiltInSubgroupLeMask;
+
+    case glslang::EbvSubgroupLtMask2:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        builder.addCapability(spv::CapabilityGroupNonUniformBallot);
+        return spv::BuiltInSubgroupLtMask;
 #ifdef AMD_EXTENSIONS
     case glslang::EbvBaryCoordNoPersp:
         builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter);
@@ -652,7 +695,7 @@
             builder.addCapability(spv::CapabilityPerViewAttributesNV);
         }
         return spv::BuiltInViewportMaskPerViewNV;
-#endif 
+#endif
     default:
         return spv::BuiltInMax;
     }
@@ -889,6 +932,7 @@
       inEntryPoint(false), entryPointTerminated(false), linkageOnly(false),
       glslangIntermediate(glslangIntermediate)
 {
+    builder.setTargetVersion(glslangIntermediate->getSpv().spv);
     spv::ExecutionModel executionModel = TranslateExecutionModel(glslangIntermediate->getStage());
 
     builder.clearAccessChain();
@@ -1417,16 +1461,14 @@
                 one = builder.makeFloatConstant(1.0F);
             else if (node->getBasicType() == glslang::EbtDouble)
                 one = builder.makeDoubleConstant(1.0);
-#ifdef AMD_EXTENSIONS
             else if (node->getBasicType() == glslang::EbtFloat16)
                 one = builder.makeFloat16Constant(1.0F);
-#endif
-            else if (node->getBasicType() == glslang::EbtInt64 || node->getBasicType() == glslang::EbtUint64)
-                one = builder.makeInt64Constant(1);
-#ifdef AMD_EXTENSIONS
+            else if (node->getBasicType() == glslang::EbtInt8  || node->getBasicType() == glslang::EbtUint8)
+                one = builder.makeInt8Constant(1);
             else if (node->getBasicType() == glslang::EbtInt16 || node->getBasicType() == glslang::EbtUint16)
                 one = builder.makeInt16Constant(1);
-#endif
+            else if (node->getBasicType() == glslang::EbtInt64 || node->getBasicType() == glslang::EbtUint64)
+                one = builder.makeInt64Constant(1);
             else
                 one = builder.makeIntConstant(1);
             glslang::TOperator op;
@@ -1631,7 +1673,6 @@
     case glslang::EOpConstructBMat4x2:
     case glslang::EOpConstructBMat4x3:
     case glslang::EOpConstructBMat4x4:
-#ifdef AMD_EXTENSIONS
     case glslang::EOpConstructF16Mat2x2:
     case glslang::EOpConstructF16Mat2x3:
     case glslang::EOpConstructF16Mat2x4:
@@ -1641,7 +1682,6 @@
     case glslang::EOpConstructF16Mat4x2:
     case glslang::EOpConstructF16Mat4x3:
     case glslang::EOpConstructF16Mat4x4:
-#endif
         isMatrix = true;
         // fall through
     case glslang::EOpConstructFloat:
@@ -1652,16 +1692,30 @@
     case glslang::EOpConstructDVec2:
     case glslang::EOpConstructDVec3:
     case glslang::EOpConstructDVec4:
-#ifdef AMD_EXTENSIONS
     case glslang::EOpConstructFloat16:
     case glslang::EOpConstructF16Vec2:
     case glslang::EOpConstructF16Vec3:
     case glslang::EOpConstructF16Vec4:
-#endif
     case glslang::EOpConstructBool:
     case glslang::EOpConstructBVec2:
     case glslang::EOpConstructBVec3:
     case glslang::EOpConstructBVec4:
+    case glslang::EOpConstructInt8:
+    case glslang::EOpConstructI8Vec2:
+    case glslang::EOpConstructI8Vec3:
+    case glslang::EOpConstructI8Vec4:
+    case glslang::EOpConstructUint8:
+    case glslang::EOpConstructU8Vec2:
+    case glslang::EOpConstructU8Vec3:
+    case glslang::EOpConstructU8Vec4:
+    case glslang::EOpConstructInt16:
+    case glslang::EOpConstructI16Vec2:
+    case glslang::EOpConstructI16Vec3:
+    case glslang::EOpConstructI16Vec4:
+    case glslang::EOpConstructUint16:
+    case glslang::EOpConstructU16Vec2:
+    case glslang::EOpConstructU16Vec3:
+    case glslang::EOpConstructU16Vec4:
     case glslang::EOpConstructInt:
     case glslang::EOpConstructIVec2:
     case glslang::EOpConstructIVec3:
@@ -1678,16 +1732,6 @@
     case glslang::EOpConstructU64Vec2:
     case glslang::EOpConstructU64Vec3:
     case glslang::EOpConstructU64Vec4:
-#ifdef AMD_EXTENSIONS
-    case glslang::EOpConstructInt16:
-    case glslang::EOpConstructI16Vec2:
-    case glslang::EOpConstructI16Vec3:
-    case glslang::EOpConstructI16Vec4:
-    case glslang::EOpConstructUint16:
-    case glslang::EOpConstructU16Vec2:
-    case glslang::EOpConstructU16Vec3:
-    case glslang::EOpConstructU16Vec4:
-#endif
     case glslang::EOpConstructStruct:
     case glslang::EOpConstructTextureSampler:
     {
@@ -1767,6 +1811,11 @@
     case glslang::EOpGroupMemoryBarrierWithGroupSync:
     case glslang::EOpWorkgroupMemoryBarrier:
     case glslang::EOpWorkgroupMemoryBarrierWithGroupSync:
+    case glslang::EOpSubgroupBarrier:
+    case glslang::EOpSubgroupMemoryBarrier:
+    case glslang::EOpSubgroupMemoryBarrierBuffer:
+    case glslang::EOpSubgroupMemoryBarrierImage:
+    case glslang::EOpSubgroupMemoryBarrierShared:
         noReturnValue = true;
         // These all have 0 operands and will naturally finish up in the code below for 0 operands
         break;
@@ -1990,7 +2039,7 @@
 
         // smear condition to vector, if necessary (AST is always scalar)
         if (builder.isVector(trueValue))
-            condition = builder.smearScalar(spv::NoPrecision, condition, 
+            condition = builder.smearScalar(spv::NoPrecision, condition,
                                             builder.makeVectorType(builder.makeBoolType(),
                                                                    builder.getNumComponents(trueValue)));
 
@@ -2248,7 +2297,6 @@
     spv::StorageClass storageClass = TranslateStorageClass(node->getType());
     spv::Id spvType = convertGlslangToSpvType(node->getType());
 
-#ifdef AMD_EXTENSIONS
     const bool contains16BitType = node->getType().containsBasicType(glslang::EbtFloat16) ||
                                    node->getType().containsBasicType(glslang::EbtInt16)   ||
                                    node->getType().containsBasicType(glslang::EbtUint16);
@@ -2266,7 +2314,6 @@
                 builder.addCapability(spv::CapabilityStorageUniformBufferBlock16);
         }
     }
-#endif
 
     const char* name = node->getName().c_str();
     if (glslang::IsAnonymous(name))
@@ -2343,12 +2390,13 @@
     case glslang::EbtDouble:
         spvType = builder.makeFloatType(64);
         break;
-#ifdef AMD_EXTENSIONS
     case glslang::EbtFloat16:
+        builder.addCapability(spv::CapabilityFloat16);
+#if AMD_EXTENSIONS
         builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float);
+#endif
         spvType = builder.makeFloatType(16);
         break;
-#endif
     case glslang::EbtBool:
         // "transparent" bool doesn't exist in SPIR-V.  The GLSL convention is
         // a 32-bit int where non-0 means true.
@@ -2357,6 +2405,26 @@
         else
             spvType = builder.makeBoolType();
         break;
+   case glslang::EbtInt8:
+        builder.addCapability(spv::CapabilityInt8);
+        spvType = builder.makeIntType(8);
+        break;
+    case glslang::EbtUint8:
+        builder.addCapability(spv::CapabilityInt8);
+        spvType = builder.makeUintType(8);
+   case glslang::EbtInt16:
+        builder.addCapability(spv::CapabilityInt16);
+#ifdef AMD_EXTENSIONS
+        builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16);
+#endif
+        spvType = builder.makeIntType(16);
+        break;
+    case glslang::EbtUint16:
+        builder.addCapability(spv::CapabilityInt16);
+#ifdef AMD_EXTENSIONS
+        builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16);
+#endif
+        spvType = builder.makeUintType(16);
     case glslang::EbtInt:
         spvType = builder.makeIntType(32);
         break;
@@ -2369,16 +2437,6 @@
     case glslang::EbtUint64:
         spvType = builder.makeUintType(64);
         break;
-#ifdef AMD_EXTENSIONS
-    case glslang::EbtInt16:
-        builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16);
-        spvType = builder.makeIntType(16);
-        break;
-    case glslang::EbtUint16:
-        builder.addExtension(spv::E_SPV_AMD_gpu_shader_int16);
-        spvType = builder.makeUintType(16);
-        break;
-#endif
     case glslang::EbtAtomicUint:
         builder.addCapability(spv::CapabilityAtomicStorage);
         spvType = builder.makeUintType(32);
@@ -3687,13 +3745,8 @@
                                                       spv::Id typeId, spv::Id left, spv::Id right,
                                                       glslang::TBasicType typeProxy, bool reduceComparison)
 {
-#ifdef AMD_EXTENSIONS
-    bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64 || typeProxy == glslang::EbtUint16;
-    bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16;
-#else
-    bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
-    bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
-#endif
+    bool isUnsigned = isTypeUnsignedInt(typeProxy);
+    bool isFloat = isTypeFloat(typeProxy);
     bool isBool = typeProxy == glslang::EbtBool;
 
     spv::Op binOp = spv::OpNop;
@@ -4018,13 +4071,8 @@
     spv::Op unaryOp = spv::OpNop;
     int extBuiltins = -1;
     int libCall = -1;
-#ifdef AMD_EXTENSIONS
-    bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64 || typeProxy == glslang::EbtUint16;
-    bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16;
-#else
-    bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
-    bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
-#endif
+    bool isUnsigned = isTypeUnsignedInt(typeProxy);
+    bool isFloat = isTypeFloat(typeProxy);
 
     switch (op) {
     case glslang::EOpNegative:
@@ -4161,12 +4209,10 @@
     case glslang::EOpDoubleBitsToUint64:
     case glslang::EOpInt64BitsToDouble:
     case glslang::EOpUint64BitsToDouble:
-#ifdef AMD_EXTENSIONS
     case glslang::EOpFloat16BitsToInt16:
     case glslang::EOpFloat16BitsToUint16:
     case glslang::EOpInt16BitsToFloat16:
     case glslang::EOpUint16BitsToFloat16:
-#endif
         unaryOp = spv::OpBitcast;
         break;
 
@@ -4211,10 +4257,12 @@
     case glslang::EOpUnpackInt2x32:
     case glslang::EOpPackUint2x32:
     case glslang::EOpUnpackUint2x32:
-        unaryOp = spv::OpBitcast;
-        break;
-
-#ifdef AMD_EXTENSIONS
+    case glslang::EOpPack16:
+    case glslang::EOpPack32:
+    case glslang::EOpPack64:
+    case glslang::EOpUnpack32:
+    case glslang::EOpUnpack16:
+    case glslang::EOpUnpack8:
     case glslang::EOpPackInt2x16:
     case glslang::EOpUnpackInt2x16:
     case glslang::EOpPackUint2x16:
@@ -4227,7 +4275,6 @@
     case glslang::EOpUnpackFloat2x16:
         unaryOp = spv::OpBitcast;
         break;
-#endif
 
     case glslang::EOpDPdx:
         unaryOp = spv::OpDPdx;
@@ -4342,7 +4389,45 @@
         operands.push_back(operand);
         return createInvocationsOperation(op, typeId, operands, typeProxy);
     }
-
+    case glslang::EOpSubgroupAll:
+    case glslang::EOpSubgroupAny:
+    case glslang::EOpSubgroupAllEqual:
+    case glslang::EOpSubgroupBroadcastFirst:
+    case glslang::EOpSubgroupBallot:
+    case glslang::EOpSubgroupInverseBallot:
+    case glslang::EOpSubgroupBallotBitCount:
+    case glslang::EOpSubgroupBallotInclusiveBitCount:
+    case glslang::EOpSubgroupBallotExclusiveBitCount:
+    case glslang::EOpSubgroupBallotFindLSB:
+    case glslang::EOpSubgroupBallotFindMSB:
+    case glslang::EOpSubgroupAdd:
+    case glslang::EOpSubgroupMul:
+    case glslang::EOpSubgroupMin:
+    case glslang::EOpSubgroupMax:
+    case glslang::EOpSubgroupAnd:
+    case glslang::EOpSubgroupOr:
+    case glslang::EOpSubgroupXor:
+    case glslang::EOpSubgroupInclusiveAdd:
+    case glslang::EOpSubgroupInclusiveMul:
+    case glslang::EOpSubgroupInclusiveMin:
+    case glslang::EOpSubgroupInclusiveMax:
+    case glslang::EOpSubgroupInclusiveAnd:
+    case glslang::EOpSubgroupInclusiveOr:
+    case glslang::EOpSubgroupInclusiveXor:
+    case glslang::EOpSubgroupExclusiveAdd:
+    case glslang::EOpSubgroupExclusiveMul:
+    case glslang::EOpSubgroupExclusiveMin:
+    case glslang::EOpSubgroupExclusiveMax:
+    case glslang::EOpSubgroupExclusiveAnd:
+    case glslang::EOpSubgroupExclusiveOr:
+    case glslang::EOpSubgroupExclusiveXor:
+    case glslang::EOpSubgroupQuadSwapHorizontal:
+    case glslang::EOpSubgroupQuadSwapVertical:
+    case glslang::EOpSubgroupQuadSwapDiagonal: {
+        std::vector<spv::Id> operands;
+        operands.push_back(operand);
+        return createSubgroupOperation(op, typeId, operands, typeProxy);
+    }
 #ifdef AMD_EXTENSIONS
     case glslang::EOpMbcnt:
         extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot);
@@ -4408,32 +4493,150 @@
     return builder.setPrecision(builder.createCompositeConstruct(typeId, results), precision);
 }
 
+spv::Id TGlslangToSpvTraverser::createConversionOperation(glslang::TOperator op, spv::Id operand, int vectorSize)
+{
+    spv::Op convOp = spv::OpNop;
+    spv::Id type = 0;
+
+    spv::Id result = 0;
+
+    switch(op) {
+    case glslang::EOpConvInt8ToUint16:
+        convOp = spv::OpSConvert;
+        type   = builder.makeIntType(16);
+        break;
+    case glslang::EOpConvInt8ToUint:
+        convOp = spv::OpSConvert;
+        type   = builder.makeIntType(32);
+        break;
+    case glslang::EOpConvInt8ToUint64:
+        convOp = spv::OpSConvert;
+        type   = builder.makeIntType(64);
+        break;
+    case glslang::EOpConvInt16ToUint8:
+        convOp = spv::OpSConvert;
+        type   = builder.makeIntType(8);
+        break;
+    case glslang::EOpConvInt16ToUint:
+        convOp = spv::OpSConvert;
+        type   = builder.makeIntType(32);
+        break;
+    case glslang::EOpConvInt16ToUint64:
+        convOp = spv::OpSConvert;
+        type   = builder.makeIntType(64);
+        break;
+    case glslang::EOpConvIntToUint8:
+        convOp = spv::OpSConvert;
+        type   = builder.makeIntType(8);
+        break;
+    case glslang::EOpConvIntToUint16:
+        convOp = spv::OpSConvert;
+        type   = builder.makeIntType(16);
+        break;
+    case glslang::EOpConvIntToUint64:
+        convOp = spv::OpSConvert;
+        type   = builder.makeIntType(64);
+        break;
+    case glslang::EOpConvInt64ToUint8:
+        convOp = spv::OpSConvert;
+        type   = builder.makeIntType(8);
+        break;
+    case glslang::EOpConvInt64ToUint16:
+        convOp = spv::OpSConvert;
+        type   = builder.makeIntType(16);
+        break;
+    case glslang::EOpConvInt64ToUint:
+        convOp = spv::OpSConvert;
+        type   = builder.makeIntType(32);
+        break;
+    case glslang::EOpConvUint8ToInt16:
+        convOp = spv::OpUConvert;
+        type   = builder.makeIntType(16);
+        break;
+    case glslang::EOpConvUint8ToInt:
+        convOp = spv::OpUConvert;
+        type   = builder.makeIntType(32);
+        break;
+    case glslang::EOpConvUint8ToInt64:
+        convOp = spv::OpUConvert;
+        type   = builder.makeIntType(64);
+        break;
+    case glslang::EOpConvUint16ToInt8:
+        convOp = spv::OpUConvert;
+        type   = builder.makeIntType(8);
+        break;
+    case glslang::EOpConvUint16ToInt:
+        convOp = spv::OpUConvert;
+        type   = builder.makeIntType(32);
+        break;
+    case glslang::EOpConvUint16ToInt64:
+        convOp = spv::OpUConvert;
+        type   = builder.makeIntType(64);
+        break;
+    case glslang::EOpConvUintToInt8:
+        convOp = spv::OpUConvert;
+        type   = builder.makeIntType(8);
+        break;
+    case glslang::EOpConvUintToInt16:
+        convOp = spv::OpUConvert;
+        type   = builder.makeIntType(16);
+        break;
+    case glslang::EOpConvUintToInt64:
+        convOp = spv::OpUConvert;
+        type   = builder.makeIntType(64);
+        break;
+    case glslang::EOpConvUint64ToInt8:
+        convOp = spv::OpUConvert;
+        type   = builder.makeIntType(8);
+        break;
+    case glslang::EOpConvUint64ToInt16:
+        convOp = spv::OpUConvert;
+        type   = builder.makeIntType(16);
+        break;
+    case glslang::EOpConvUint64ToInt:
+        convOp = spv::OpUConvert;
+        type   = builder.makeIntType(32);
+        break;
+
+    default:
+        assert(false && "Default missing");
+        break;
+    }
+
+    if (vectorSize > 0)
+        type = builder.makeVectorType(type, vectorSize);
+
+    result = builder.createUnaryOp(convOp, type, operand);
+    return result;
+}
+
 spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id destType, spv::Id operand, glslang::TBasicType typeProxy)
 {
     spv::Op convOp = spv::OpNop;
     spv::Id zero = 0;
     spv::Id one = 0;
-    spv::Id type = 0;
 
     int vectorSize = builder.isVectorType(destType) ? builder.getNumTypeComponents(destType) : 0;
 
     switch (op) {
-    case glslang::EOpConvIntToBool:
-    case glslang::EOpConvUintToBool:
-    case glslang::EOpConvInt64ToBool:
-    case glslang::EOpConvUint64ToBool:
-#ifdef AMD_EXTENSIONS
+    case glslang::EOpConvInt8ToBool:
+    case glslang::EOpConvUint8ToBool:
+        zero = builder.makeUint8Constant(0);
+        zero = makeSmearedConstant(zero, vectorSize);
+        return builder.createBinOp(spv::OpINotEqual, destType, operand, zero);
     case glslang::EOpConvInt16ToBool:
     case glslang::EOpConvUint16ToBool:
-#endif
-        if (op == glslang::EOpConvInt64ToBool || op == glslang::EOpConvUint64ToBool)
-            zero = builder.makeUint64Constant(0);
-#ifdef AMD_EXTENSIONS
-        else if (op == glslang::EOpConvInt16ToBool || op == glslang::EOpConvUint16ToBool)
-            zero = builder.makeUint16Constant(0);
-#endif
-        else
-            zero = builder.makeUintConstant(0);
+        zero = builder.makeUint16Constant(0);
+        zero = makeSmearedConstant(zero, vectorSize);
+        return builder.createBinOp(spv::OpINotEqual, destType, operand, zero);
+    case glslang::EOpConvIntToBool:
+    case glslang::EOpConvUintToBool:
+        zero = builder.makeUintConstant(0);
+        zero = makeSmearedConstant(zero, vectorSize);
+        return builder.createBinOp(spv::OpINotEqual, destType, operand, zero);
+    case glslang::EOpConvInt64ToBool:
+    case glslang::EOpConvUint64ToBool:
+        zero = builder.makeUint64Constant(0);
         zero = makeSmearedConstant(zero, vectorSize);
         return builder.createBinOp(spv::OpINotEqual, destType, operand, zero);
 
@@ -4447,12 +4650,10 @@
         zero = makeSmearedConstant(zero, vectorSize);
         return builder.createBinOp(spv::OpFOrdNotEqual, destType, operand, zero);
 
-#ifdef AMD_EXTENSIONS
     case glslang::EOpConvFloat16ToBool:
         zero = builder.makeFloat16Constant(0.0F);
         zero = makeSmearedConstant(zero, vectorSize);
         return builder.createBinOp(spv::OpFOrdNotEqual, destType, operand, zero);
-#endif
 
     case glslang::EOpConvBoolToFloat:
         convOp = spv::OpSelect;
@@ -4466,34 +4667,45 @@
         one  = builder.makeDoubleConstant(1.0);
         break;
 
-#ifdef AMD_EXTENSIONS
     case glslang::EOpConvBoolToFloat16:
         convOp = spv::OpSelect;
         zero = builder.makeFloat16Constant(0.0F);
         one = builder.makeFloat16Constant(1.0F);
         break;
-#endif
+
+    case glslang::EOpConvBoolToInt8:
+        zero = builder.makeInt8Constant(0);
+        one  = builder.makeInt8Constant(1);
+        convOp = spv::OpSelect;
+        break;
+
+    case glslang::EOpConvBoolToUint8:
+        zero = builder.makeUint8Constant(0);
+        one  = builder.makeUint8Constant(1);
+        convOp = spv::OpSelect;
+        break;
+
+    case glslang::EOpConvBoolToInt16:
+        zero = builder.makeInt16Constant(0);
+        one  = builder.makeInt16Constant(1);
+        convOp = spv::OpSelect;
+        break;
+
+    case glslang::EOpConvBoolToUint16:
+        zero = builder.makeUint16Constant(0);
+        one  = builder.makeUint16Constant(1);
+        convOp = spv::OpSelect;
+        break;
 
     case glslang::EOpConvBoolToInt:
     case glslang::EOpConvBoolToInt64:
-#ifdef AMD_EXTENSIONS
-    case glslang::EOpConvBoolToInt16:
-#endif
         if (op == glslang::EOpConvBoolToInt64)
             zero = builder.makeInt64Constant(0);
-#ifdef AMD_EXTENSIONS
-        else if (op == glslang::EOpConvBoolToInt16)
-            zero = builder.makeInt16Constant(0);
-#endif
         else
             zero = builder.makeIntConstant(0);
 
         if (op == glslang::EOpConvBoolToInt64)
             one = builder.makeInt64Constant(1);
-#ifdef AMD_EXTENSIONS
-        else if (op == glslang::EOpConvBoolToInt16)
-            one = builder.makeInt16Constant(1);
-#endif
         else
             one = builder.makeIntConstant(1);
 
@@ -4502,104 +4714,94 @@
 
     case glslang::EOpConvBoolToUint:
     case glslang::EOpConvBoolToUint64:
-#ifdef AMD_EXTENSIONS
-    case glslang::EOpConvBoolToUint16:
-#endif
         if (op == glslang::EOpConvBoolToUint64)
             zero = builder.makeUint64Constant(0);
-#ifdef AMD_EXTENSIONS
-        else if (op == glslang::EOpConvBoolToUint16)
-            zero = builder.makeUint16Constant(0);
-#endif
         else
             zero = builder.makeUintConstant(0);
 
         if (op == glslang::EOpConvBoolToUint64)
             one = builder.makeUint64Constant(1);
-#ifdef AMD_EXTENSIONS
-        else if (op == glslang::EOpConvBoolToUint16)
-            one = builder.makeUint16Constant(1);
-#endif
         else
             one = builder.makeUintConstant(1);
 
         convOp = spv::OpSelect;
         break;
 
+    case glslang::EOpConvInt8ToFloat16:
+    case glslang::EOpConvInt8ToFloat:
+    case glslang::EOpConvInt8ToDouble:
+    case glslang::EOpConvInt16ToFloat16:
+    case glslang::EOpConvInt16ToFloat:
+    case glslang::EOpConvInt16ToDouble:
+    case glslang::EOpConvIntToFloat16:
     case glslang::EOpConvIntToFloat:
     case glslang::EOpConvIntToDouble:
     case glslang::EOpConvInt64ToFloat:
     case glslang::EOpConvInt64ToDouble:
-#ifdef AMD_EXTENSIONS
-    case glslang::EOpConvInt16ToFloat:
-    case glslang::EOpConvInt16ToDouble:
-    case glslang::EOpConvInt16ToFloat16:
-    case glslang::EOpConvIntToFloat16:
     case glslang::EOpConvInt64ToFloat16:
-#endif
         convOp = spv::OpConvertSToF;
         break;
 
+    case glslang::EOpConvUint8ToFloat16:
+    case glslang::EOpConvUint8ToFloat:
+    case glslang::EOpConvUint8ToDouble:
+    case glslang::EOpConvUint16ToFloat16:
+    case glslang::EOpConvUint16ToFloat:
+    case glslang::EOpConvUint16ToDouble:
+    case glslang::EOpConvUintToFloat16:
     case glslang::EOpConvUintToFloat:
     case glslang::EOpConvUintToDouble:
     case glslang::EOpConvUint64ToFloat:
     case glslang::EOpConvUint64ToDouble:
-#ifdef AMD_EXTENSIONS
-    case glslang::EOpConvUint16ToFloat:
-    case glslang::EOpConvUint16ToDouble:
-    case glslang::EOpConvUint16ToFloat16:
-    case glslang::EOpConvUintToFloat16:
     case glslang::EOpConvUint64ToFloat16:
-#endif
         convOp = spv::OpConvertUToF;
         break;
 
     case glslang::EOpConvDoubleToFloat:
     case glslang::EOpConvFloatToDouble:
-#ifdef AMD_EXTENSIONS
     case glslang::EOpConvDoubleToFloat16:
     case glslang::EOpConvFloat16ToDouble:
     case glslang::EOpConvFloatToFloat16:
     case glslang::EOpConvFloat16ToFloat:
-#endif
         convOp = spv::OpFConvert;
         if (builder.isMatrixType(destType))
             return createUnaryMatrixOperation(convOp, precision, noContraction, destType, operand, typeProxy);
         break;
 
-    case glslang::EOpConvFloatToInt:
-    case glslang::EOpConvDoubleToInt:
-    case glslang::EOpConvFloatToInt64:
-    case glslang::EOpConvDoubleToInt64:
-#ifdef AMD_EXTENSIONS
+    case glslang::EOpConvFloat16ToInt8:
+    case glslang::EOpConvFloatToInt8:
+    case glslang::EOpConvDoubleToInt8:
+    case glslang::EOpConvFloat16ToInt16:
     case glslang::EOpConvFloatToInt16:
     case glslang::EOpConvDoubleToInt16:
-    case glslang::EOpConvFloat16ToInt16:
     case glslang::EOpConvFloat16ToInt:
+    case glslang::EOpConvFloatToInt:
+    case glslang::EOpConvDoubleToInt:
     case glslang::EOpConvFloat16ToInt64:
-#endif
+    case glslang::EOpConvFloatToInt64:
+    case glslang::EOpConvDoubleToInt64:
         convOp = spv::OpConvertFToS;
         break;
 
+    case glslang::EOpConvUint8ToInt8:
+    case glslang::EOpConvInt8ToUint8:
+    case glslang::EOpConvUint16ToInt16:
+    case glslang::EOpConvInt16ToUint16:
     case glslang::EOpConvUintToInt:
     case glslang::EOpConvIntToUint:
     case glslang::EOpConvUint64ToInt64:
     case glslang::EOpConvInt64ToUint64:
-#ifdef AMD_EXTENSIONS
-    case glslang::EOpConvUint16ToInt16:
-    case glslang::EOpConvInt16ToUint16:
-#endif
         if (builder.isInSpecConstCodeGenMode()) {
             // Build zero scalar or vector for OpIAdd.
-            if (op == glslang::EOpConvUint64ToInt64 || op == glslang::EOpConvInt64ToUint64)
-                zero = builder.makeUint64Constant(0);
-#ifdef AMD_EXTENSIONS
-            else if (op == glslang::EOpConvUint16ToInt16 || op == glslang::EOpConvInt16ToUint16)
+            if(op == glslang::EOpConvUint8ToInt8 || op == glslang::EOpConvInt8ToUint8) {
+                zero = builder.makeUint8Constant(0);
+            } else if (op == glslang::EOpConvUint16ToInt16 || op == glslang::EOpConvInt16ToUint16) {
                 zero = builder.makeUint16Constant(0);
-#endif
-            else
+            } else if (op == glslang::EOpConvUint64ToInt64 || op == glslang::EOpConvInt64ToUint64) {
+                zero = builder.makeUint64Constant(0);
+            } else {
                 zero = builder.makeUintConstant(0);
-
+            }
             zero = makeSmearedConstant(zero, vectorSize);
             // Use OpIAdd, instead of OpBitcast to do the conversion when
             // generating for OpSpecConstantOp instruction.
@@ -4609,126 +4811,117 @@
         convOp = spv::OpBitcast;
         break;
 
+    case glslang::EOpConvFloat16ToUint8:
+    case glslang::EOpConvFloatToUint8:
+    case glslang::EOpConvDoubleToUint8:
+    case glslang::EOpConvFloat16ToUint16:
+    case glslang::EOpConvFloatToUint16:
+    case glslang::EOpConvDoubleToUint16:
+    case glslang::EOpConvFloat16ToUint:
     case glslang::EOpConvFloatToUint:
     case glslang::EOpConvDoubleToUint:
     case glslang::EOpConvFloatToUint64:
     case glslang::EOpConvDoubleToUint64:
-#ifdef AMD_EXTENSIONS
-    case glslang::EOpConvFloatToUint16:
-    case glslang::EOpConvDoubleToUint16:
-    case glslang::EOpConvFloat16ToUint16:
-    case glslang::EOpConvFloat16ToUint:
     case glslang::EOpConvFloat16ToUint64:
-#endif
         convOp = spv::OpConvertFToU;
         break;
 
-    case glslang::EOpConvIntToInt64:
-    case glslang::EOpConvInt64ToInt:
-#ifdef AMD_EXTENSIONS
-    case glslang::EOpConvIntToInt16:
+    case glslang::EOpConvInt8ToInt16:
+    case glslang::EOpConvInt8ToInt:
+    case glslang::EOpConvInt8ToInt64:
+    case glslang::EOpConvInt16ToInt8:
     case glslang::EOpConvInt16ToInt:
-    case glslang::EOpConvInt64ToInt16:
     case glslang::EOpConvInt16ToInt64:
-#endif
+    case glslang::EOpConvIntToInt8:
+    case glslang::EOpConvIntToInt16:
+    case glslang::EOpConvIntToInt64:
+    case glslang::EOpConvInt64ToInt8:
+    case glslang::EOpConvInt64ToInt16:
+    case glslang::EOpConvInt64ToInt:
         convOp = spv::OpSConvert;
         break;
 
-    case glslang::EOpConvUintToUint64:
-    case glslang::EOpConvUint64ToUint:
-#ifdef AMD_EXTENSIONS
-    case glslang::EOpConvUintToUint16:
+    case glslang::EOpConvUint8ToUint16:
+    case glslang::EOpConvUint8ToUint:
+    case glslang::EOpConvUint8ToUint64:
+    case glslang::EOpConvUint16ToUint8:
     case glslang::EOpConvUint16ToUint:
-    case glslang::EOpConvUint64ToUint16:
     case glslang::EOpConvUint16ToUint64:
-#endif
+    case glslang::EOpConvUintToUint8:
+    case glslang::EOpConvUintToUint16:
+    case glslang::EOpConvUintToUint64:
+    case glslang::EOpConvUint64ToUint8:
+    case glslang::EOpConvUint64ToUint16:
+    case glslang::EOpConvUint64ToUint:
         convOp = spv::OpUConvert;
         break;
 
-    case glslang::EOpConvIntToUint64:
-    case glslang::EOpConvInt64ToUint:
-    case glslang::EOpConvUint64ToInt:
-    case glslang::EOpConvUintToInt64:
-#ifdef AMD_EXTENSIONS
+    case glslang::EOpConvInt8ToUint16:
+    case glslang::EOpConvInt8ToUint:
+    case glslang::EOpConvInt8ToUint64:
+    case glslang::EOpConvInt16ToUint8:
     case glslang::EOpConvInt16ToUint:
-    case glslang::EOpConvUintToInt16:
     case glslang::EOpConvInt16ToUint64:
-    case glslang::EOpConvUint64ToInt16:
-    case glslang::EOpConvUint16ToInt:
+    case glslang::EOpConvIntToUint8:
     case glslang::EOpConvIntToUint16:
-    case glslang::EOpConvUint16ToInt64:
+    case glslang::EOpConvIntToUint64:
+    case glslang::EOpConvInt64ToUint8:
     case glslang::EOpConvInt64ToUint16:
-#endif
+    case glslang::EOpConvInt64ToUint:
+    case glslang::EOpConvUint8ToInt16:
+    case glslang::EOpConvUint8ToInt:
+    case glslang::EOpConvUint8ToInt64:
+    case glslang::EOpConvUint16ToInt8:
+    case glslang::EOpConvUint16ToInt:
+    case glslang::EOpConvUint16ToInt64:
+    case glslang::EOpConvUintToInt8:
+    case glslang::EOpConvUintToInt16:
+    case glslang::EOpConvUintToInt64:
+    case glslang::EOpConvUint64ToInt8:
+    case glslang::EOpConvUint64ToInt16:
+    case glslang::EOpConvUint64ToInt:
         // OpSConvert/OpUConvert + OpBitCast
-        switch (op) {
-        case glslang::EOpConvIntToUint64:
-#ifdef AMD_EXTENSIONS
-        case glslang::EOpConvInt16ToUint64:
-#endif
-            convOp = spv::OpSConvert;
-            type   = builder.makeIntType(64);
-            break;
-        case glslang::EOpConvInt64ToUint:
-#ifdef AMD_EXTENSIONS
-        case glslang::EOpConvInt16ToUint:
-#endif
-            convOp = spv::OpSConvert;
-            type   = builder.makeIntType(32);
-            break;
-        case glslang::EOpConvUint64ToInt:
-#ifdef AMD_EXTENSIONS
-        case glslang::EOpConvUint16ToInt:
-#endif
-            convOp = spv::OpUConvert;
-            type   = builder.makeUintType(32);
-            break;
-        case glslang::EOpConvUintToInt64:
-#ifdef AMD_EXTENSIONS
-        case glslang::EOpConvUint16ToInt64:
-#endif
-            convOp = spv::OpUConvert;
-            type   = builder.makeUintType(64);
-            break;
-#ifdef AMD_EXTENSIONS
-        case glslang::EOpConvUintToInt16:
-        case glslang::EOpConvUint64ToInt16:
-            convOp = spv::OpUConvert;
-            type   = builder.makeUintType(16);
-            break;
-        case glslang::EOpConvIntToUint16:
-        case glslang::EOpConvInt64ToUint16:
-            convOp = spv::OpSConvert;
-            type   = builder.makeIntType(16);
-            break;
-#endif
-        default:
-            assert(0);
-            break;
-        }
-
-        if (vectorSize > 0)
-            type = builder.makeVectorType(type, vectorSize);
-
-        operand = builder.createUnaryOp(convOp, type, operand);
+        operand = createConversionOperation(op, operand, vectorSize);
 
         if (builder.isInSpecConstCodeGenMode()) {
             // Build zero scalar or vector for OpIAdd.
-#ifdef AMD_EXTENSIONS
-            if (op == glslang::EOpConvIntToUint64 || op == glslang::EOpConvUintToInt64 ||
-                op == glslang::EOpConvInt16ToUint64 || op == glslang::EOpConvUint16ToInt64)
-                zero = builder.makeUint64Constant(0);
-            else if (op == glslang::EOpConvIntToUint16 || op == glslang::EOpConvUintToInt16 ||
-                     op == glslang::EOpConvInt64ToUint16 || op == glslang::EOpConvUint64ToInt16)
+            switch(op) {
+            case glslang::EOpConvInt16ToUint8:
+            case glslang::EOpConvIntToUint8:
+            case glslang::EOpConvInt64ToUint8:
+            case glslang::EOpConvUint16ToInt8:
+            case glslang::EOpConvUintToInt8:
+            case glslang::EOpConvUint64ToInt8:
+                zero = builder.makeUint8Constant(0);
+                break;
+            case glslang::EOpConvInt8ToUint16:
+            case glslang::EOpConvIntToUint16:
+            case glslang::EOpConvInt64ToUint16:
+            case glslang::EOpConvUint8ToInt16:
+            case glslang::EOpConvUintToInt16:
+            case glslang::EOpConvUint64ToInt16:
                 zero = builder.makeUint16Constant(0);
-            else
+                break;
+            case glslang::EOpConvInt8ToUint:
+            case glslang::EOpConvInt16ToUint:
+            case glslang::EOpConvInt64ToUint:
+            case glslang::EOpConvUint8ToInt:
+            case glslang::EOpConvUint16ToInt:
+            case glslang::EOpConvUint64ToInt:
                 zero = builder.makeUintConstant(0);
-#else
-            if (op == glslang::EOpConvIntToUint64 || op == glslang::EOpConvUintToInt64)
+                break;
+            case glslang::EOpConvInt8ToUint64:
+            case glslang::EOpConvInt16ToUint64:
+            case glslang::EOpConvIntToUint64:
+            case glslang::EOpConvUint8ToInt64:
+            case glslang::EOpConvUint16ToInt64:
+            case glslang::EOpConvUintToInt64:
                 zero = builder.makeUint64Constant(0);
-            else
-                zero = builder.makeUintConstant(0);
-#endif
-
+                break;
+            default:
+                assert(false && "Default missing");
+                break;
+            }
             zero = makeSmearedConstant(zero, vectorSize);
             // Use OpIAdd, instead of OpBitcast to do the conversion when
             // generating for OpSpecConstantOp instruction.
@@ -4870,10 +5063,8 @@
 // Create group invocation operations.
 spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy)
 {
-#ifdef AMD_EXTENSIONS
-    bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
-    bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16;
-#endif
+    bool isUnsigned = isTypeUnsignedInt(typeProxy);
+    bool isFloat = isTypeFloat(typeProxy);
 
     spv::Op opCode = spv::OpNop;
     std::vector<spv::Id> spvGroupOperands;
@@ -5134,15 +5325,263 @@
     return builder.createCompositeConstruct(typeId, results);
 }
 
+// Create subgroup invocation operations.
+spv::Id TGlslangToSpvTraverser::createSubgroupOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy)
+{
+    // Add the required capabilities.
+    switch (op) {
+    case glslang::EOpSubgroupElect:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        break;
+    case glslang::EOpSubgroupAll:
+    case glslang::EOpSubgroupAny:
+    case glslang::EOpSubgroupAllEqual:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        builder.addCapability(spv::CapabilityGroupNonUniformVote);
+        break;
+    case glslang::EOpSubgroupBroadcast:
+    case glslang::EOpSubgroupBroadcastFirst:
+    case glslang::EOpSubgroupBallot:
+    case glslang::EOpSubgroupInverseBallot:
+    case glslang::EOpSubgroupBallotBitExtract:
+    case glslang::EOpSubgroupBallotBitCount:
+    case glslang::EOpSubgroupBallotInclusiveBitCount:
+    case glslang::EOpSubgroupBallotExclusiveBitCount:
+    case glslang::EOpSubgroupBallotFindLSB:
+    case glslang::EOpSubgroupBallotFindMSB:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        builder.addCapability(spv::CapabilityGroupNonUniformBallot);
+        break;
+    case glslang::EOpSubgroupShuffle:
+    case glslang::EOpSubgroupShuffleXor:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        builder.addCapability(spv::CapabilityGroupNonUniformShuffle);
+        break;
+    case glslang::EOpSubgroupShuffleUp:
+    case glslang::EOpSubgroupShuffleDown:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        builder.addCapability(spv::CapabilityGroupNonUniformShuffleRelative);
+        break;
+    case glslang::EOpSubgroupAdd:
+    case glslang::EOpSubgroupMul:
+    case glslang::EOpSubgroupMin:
+    case glslang::EOpSubgroupMax:
+    case glslang::EOpSubgroupAnd:
+    case glslang::EOpSubgroupOr:
+    case glslang::EOpSubgroupXor:
+    case glslang::EOpSubgroupInclusiveAdd:
+    case glslang::EOpSubgroupInclusiveMul:
+    case glslang::EOpSubgroupInclusiveMin:
+    case glslang::EOpSubgroupInclusiveMax:
+    case glslang::EOpSubgroupInclusiveAnd:
+    case glslang::EOpSubgroupInclusiveOr:
+    case glslang::EOpSubgroupInclusiveXor:
+    case glslang::EOpSubgroupExclusiveAdd:
+    case glslang::EOpSubgroupExclusiveMul:
+    case glslang::EOpSubgroupExclusiveMin:
+    case glslang::EOpSubgroupExclusiveMax:
+    case glslang::EOpSubgroupExclusiveAnd:
+    case glslang::EOpSubgroupExclusiveOr:
+    case glslang::EOpSubgroupExclusiveXor:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        builder.addCapability(spv::CapabilityGroupNonUniformArithmetic);
+        break;
+    case glslang::EOpSubgroupClusteredAdd:
+    case glslang::EOpSubgroupClusteredMul:
+    case glslang::EOpSubgroupClusteredMin:
+    case glslang::EOpSubgroupClusteredMax:
+    case glslang::EOpSubgroupClusteredAnd:
+    case glslang::EOpSubgroupClusteredOr:
+    case glslang::EOpSubgroupClusteredXor:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        builder.addCapability(spv::CapabilityGroupNonUniformClustered);
+        break;
+    case glslang::EOpSubgroupQuadBroadcast:
+    case glslang::EOpSubgroupQuadSwapHorizontal:
+    case glslang::EOpSubgroupQuadSwapVertical:
+    case glslang::EOpSubgroupQuadSwapDiagonal:
+        builder.addCapability(spv::CapabilityGroupNonUniform);
+        builder.addCapability(spv::CapabilityGroupNonUniformQuad);
+        break;
+    default: assert(0 && "Unhandled subgroup operation!");
+    }
+
+    const bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
+    const bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
+    const bool isBool = typeProxy == glslang::EbtBool;
+
+    spv::Op opCode = spv::OpNop;
+
+    // Figure out which opcode to use.
+    switch (op) {
+    case glslang::EOpSubgroupElect:                   opCode = spv::OpGroupNonUniformElect; break;
+    case glslang::EOpSubgroupAll:                     opCode = spv::OpGroupNonUniformAll; break;
+    case glslang::EOpSubgroupAny:                     opCode = spv::OpGroupNonUniformAny; break;
+    case glslang::EOpSubgroupAllEqual:                opCode = spv::OpGroupNonUniformAllEqual; break;
+    case glslang::EOpSubgroupBroadcast:               opCode = spv::OpGroupNonUniformBroadcast; break;
+    case glslang::EOpSubgroupBroadcastFirst:          opCode = spv::OpGroupNonUniformBroadcastFirst; break;
+    case glslang::EOpSubgroupBallot:                  opCode = spv::OpGroupNonUniformBallot; break;
+    case glslang::EOpSubgroupInverseBallot:           opCode = spv::OpGroupNonUniformInverseBallot; break;
+    case glslang::EOpSubgroupBallotBitExtract:        opCode = spv::OpGroupNonUniformBallotBitExtract; break;
+    case glslang::EOpSubgroupBallotBitCount:
+    case glslang::EOpSubgroupBallotInclusiveBitCount:
+    case glslang::EOpSubgroupBallotExclusiveBitCount: opCode = spv::OpGroupNonUniformBallotBitCount; break;
+    case glslang::EOpSubgroupBallotFindLSB:           opCode = spv::OpGroupNonUniformBallotFindLSB; break;
+    case glslang::EOpSubgroupBallotFindMSB:           opCode = spv::OpGroupNonUniformBallotFindMSB; break;
+    case glslang::EOpSubgroupShuffle:                 opCode = spv::OpGroupNonUniformShuffle; break;
+    case glslang::EOpSubgroupShuffleXor:              opCode = spv::OpGroupNonUniformShuffleXor; break;
+    case glslang::EOpSubgroupShuffleUp:               opCode = spv::OpGroupNonUniformShuffleUp; break;
+    case glslang::EOpSubgroupShuffleDown:             opCode = spv::OpGroupNonUniformShuffleDown; break;
+    case glslang::EOpSubgroupAdd:
+    case glslang::EOpSubgroupInclusiveAdd:
+    case glslang::EOpSubgroupExclusiveAdd:
+    case glslang::EOpSubgroupClusteredAdd:
+        if (isFloat) {
+            opCode = spv::OpGroupNonUniformFAdd;
+        } else {
+            opCode = spv::OpGroupNonUniformIAdd;
+        }
+        break;
+    case glslang::EOpSubgroupMul:
+    case glslang::EOpSubgroupInclusiveMul:
+    case glslang::EOpSubgroupExclusiveMul:
+    case glslang::EOpSubgroupClusteredMul:
+        if (isFloat) {
+            opCode = spv::OpGroupNonUniformFMul;
+        } else {
+            opCode = spv::OpGroupNonUniformIMul;
+        }
+        break;
+    case glslang::EOpSubgroupMin:
+    case glslang::EOpSubgroupInclusiveMin:
+    case glslang::EOpSubgroupExclusiveMin:
+    case glslang::EOpSubgroupClusteredMin:
+        if (isFloat) {
+            opCode = spv::OpGroupNonUniformFMin;
+        } else if (isUnsigned) {
+            opCode = spv::OpGroupNonUniformUMin;
+        } else {
+            opCode = spv::OpGroupNonUniformSMin;
+        }
+        break;
+    case glslang::EOpSubgroupMax:
+    case glslang::EOpSubgroupInclusiveMax:
+    case glslang::EOpSubgroupExclusiveMax:
+    case glslang::EOpSubgroupClusteredMax:
+        if (isFloat) {
+            opCode = spv::OpGroupNonUniformFMax;
+        } else if (isUnsigned) {
+            opCode = spv::OpGroupNonUniformUMax;
+        } else {
+            opCode = spv::OpGroupNonUniformSMax;
+        }
+        break;
+    case glslang::EOpSubgroupAnd:
+    case glslang::EOpSubgroupInclusiveAnd:
+    case glslang::EOpSubgroupExclusiveAnd:
+    case glslang::EOpSubgroupClusteredAnd:
+        if (isBool) {
+            opCode = spv::OpGroupNonUniformLogicalAnd;
+        } else {
+            opCode = spv::OpGroupNonUniformBitwiseAnd;
+        }
+        break;
+    case glslang::EOpSubgroupOr:
+    case glslang::EOpSubgroupInclusiveOr:
+    case glslang::EOpSubgroupExclusiveOr:
+    case glslang::EOpSubgroupClusteredOr:
+        if (isBool) {
+            opCode = spv::OpGroupNonUniformLogicalOr;
+        } else {
+            opCode = spv::OpGroupNonUniformBitwiseOr;
+        }
+        break;
+    case glslang::EOpSubgroupXor:
+    case glslang::EOpSubgroupInclusiveXor:
+    case glslang::EOpSubgroupExclusiveXor:
+    case glslang::EOpSubgroupClusteredXor:
+        if (isBool) {
+            opCode = spv::OpGroupNonUniformLogicalXor;
+        } else {
+            opCode = spv::OpGroupNonUniformBitwiseXor;
+        }
+        break;
+    case glslang::EOpSubgroupQuadBroadcast:      opCode = spv::OpGroupNonUniformQuadBroadcast; break;
+    case glslang::EOpSubgroupQuadSwapHorizontal:
+    case glslang::EOpSubgroupQuadSwapVertical:
+    case glslang::EOpSubgroupQuadSwapDiagonal:   opCode = spv::OpGroupNonUniformQuadSwap; break;
+    default: assert(0 && "Unhandled subgroup operation!");
+    }
+
+    std::vector<spv::Id> spvGroupOperands;
+
+    // Every operation begins with the Execution Scope operand.
+    spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup));
+
+    // Next, for all operations that use a Group Operation, push that as an operand.
+    switch (op) {
+    default: break;
+    case glslang::EOpSubgroupBallotBitCount:
+    case glslang::EOpSubgroupAdd:
+    case glslang::EOpSubgroupMul:
+    case glslang::EOpSubgroupMin:
+    case glslang::EOpSubgroupMax:
+    case glslang::EOpSubgroupAnd:
+    case glslang::EOpSubgroupOr:
+    case glslang::EOpSubgroupXor:
+        spvGroupOperands.push_back(spv::GroupOperationReduce);
+        break;
+    case glslang::EOpSubgroupBallotInclusiveBitCount:
+    case glslang::EOpSubgroupInclusiveAdd:
+    case glslang::EOpSubgroupInclusiveMul:
+    case glslang::EOpSubgroupInclusiveMin:
+    case glslang::EOpSubgroupInclusiveMax:
+    case glslang::EOpSubgroupInclusiveAnd:
+    case glslang::EOpSubgroupInclusiveOr:
+    case glslang::EOpSubgroupInclusiveXor:
+        spvGroupOperands.push_back(spv::GroupOperationInclusiveScan);
+        break;
+    case glslang::EOpSubgroupBallotExclusiveBitCount:
+    case glslang::EOpSubgroupExclusiveAdd:
+    case glslang::EOpSubgroupExclusiveMul:
+    case glslang::EOpSubgroupExclusiveMin:
+    case glslang::EOpSubgroupExclusiveMax:
+    case glslang::EOpSubgroupExclusiveAnd:
+    case glslang::EOpSubgroupExclusiveOr:
+    case glslang::EOpSubgroupExclusiveXor:
+        spvGroupOperands.push_back(spv::GroupOperationExclusiveScan);
+        break;
+    case glslang::EOpSubgroupClusteredAdd:
+    case glslang::EOpSubgroupClusteredMul:
+    case glslang::EOpSubgroupClusteredMin:
+    case glslang::EOpSubgroupClusteredMax:
+    case glslang::EOpSubgroupClusteredAnd:
+    case glslang::EOpSubgroupClusteredOr:
+    case glslang::EOpSubgroupClusteredXor:
+        spvGroupOperands.push_back(spv::GroupOperationClusteredReduce);
+        break;
+    }
+
+    // Push back the operands next.
+    for (auto opIt : operands) {
+        spvGroupOperands.push_back(opIt);
+    }
+
+    // Some opcodes have additional operands.
+    switch (op) {
+    default: break;
+    case glslang::EOpSubgroupQuadSwapHorizontal: spvGroupOperands.push_back(builder.makeUintConstant(0)); break;
+    case glslang::EOpSubgroupQuadSwapVertical:   spvGroupOperands.push_back(builder.makeUintConstant(1)); break;
+    case glslang::EOpSubgroupQuadSwapDiagonal:   spvGroupOperands.push_back(builder.makeUintConstant(2)); break;
+    }
+
+    return builder.createOp(opCode, typeId, spvGroupOperands);
+}
+
 spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy)
 {
-#ifdef AMD_EXTENSIONS
-    bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64 || typeProxy == glslang::EbtUint16;
-    bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16;
-#else
-    bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64;
-    bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble;
-#endif
+    bool isUnsigned = isTypeUnsignedInt(typeProxy);
+    bool isFloat = isTypeFloat(typeProxy);
 
     spv::Op opCode = spv::OpNop;
     int extBuiltins = -1;
@@ -5279,11 +5718,7 @@
             libCall = spv::GLSLstd450FrexpStruct;
             assert(builder.isPointerType(typeId1));
             typeId1 = builder.getContainedTypeId(typeId1);
-#ifdef AMD_EXTENSIONS
             int width = builder.getScalarTypeWidth(typeId1);
-#else
-            int width = 32;
-#endif
             if (builder.getNumComponents(operands[0]) == 1)
                 frexpIntType = builder.makeIntegerType(width, true);
             else
@@ -5299,6 +5734,22 @@
     case glslang::EOpReadInvocation:
         return createInvocationsOperation(op, typeId, operands, typeProxy);
 
+    case glslang::EOpSubgroupBroadcast:
+    case glslang::EOpSubgroupBallotBitExtract:
+    case glslang::EOpSubgroupShuffle:
+    case glslang::EOpSubgroupShuffleXor:
+    case glslang::EOpSubgroupShuffleUp:
+    case glslang::EOpSubgroupShuffleDown:
+    case glslang::EOpSubgroupClusteredAdd:
+    case glslang::EOpSubgroupClusteredMul:
+    case glslang::EOpSubgroupClusteredMin:
+    case glslang::EOpSubgroupClusteredMax:
+    case glslang::EOpSubgroupClusteredAnd:
+    case glslang::EOpSubgroupClusteredOr:
+    case glslang::EOpSubgroupClusteredXor:
+    case glslang::EOpSubgroupQuadBroadcast:
+        return createSubgroupOperation(op, typeId, operands, typeProxy);
+
 #ifdef AMD_EXTENSIONS
     case glslang::EOpSwizzleInvocations:
         extBuiltins = getExtBuiltins(spv::E_SPV_AMD_shader_ballot);
@@ -5466,6 +5917,25 @@
         // Control barrier with non-"None" semantic is also a memory barrier.
         builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeWorkgroup, spv::MemorySemanticsWorkgroupMemoryMask);
         return 0;
+    case glslang::EOpSubgroupBarrier:
+        builder.createControlBarrier(spv::ScopeSubgroup, spv::ScopeDevice, spv::MemorySemanticsMaskNone);
+        return spv::NoResult;
+    case glslang::EOpSubgroupMemoryBarrier:
+        builder.createMemoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsAllMemory);
+        return spv::NoResult;
+    case glslang::EOpSubgroupMemoryBarrierBuffer:
+        builder.createMemoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsUniformMemoryMask);
+        return spv::NoResult;
+    case glslang::EOpSubgroupMemoryBarrierImage:
+        builder.createMemoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsImageMemoryMask);
+        return spv::NoResult;
+    case glslang::EOpSubgroupMemoryBarrierShared:
+        builder.createMemoryBarrier(spv::ScopeSubgroup, spv::MemorySemanticsWorkgroupMemoryMask);
+        return spv::NoResult;
+    case glslang::EOpSubgroupElect: {
+        std::vector<spv::Id> operands;
+        return createSubgroupOperation(op, typeId, operands, glslang::EbtVoid);
+    }
 #ifdef AMD_EXTENSIONS
     case glslang::EOpTime:
     {
@@ -5711,6 +6181,18 @@
         for (unsigned int i = 0; i < (unsigned int)glslangType.getVectorSize(); ++i) {
             bool zero = nextConst >= consts.size();
             switch (glslangType.getBasicType()) {
+            case glslang::EbtInt8:
+                spvConsts.push_back(builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const()));
+                break;
+            case glslang::EbtUint8:
+                spvConsts.push_back(builder.makeUint8Constant(zero ? 0 : consts[nextConst].getU8Const()));
+                break;
+            case glslang::EbtInt16:
+                spvConsts.push_back(builder.makeInt16Constant(zero ? 0 : consts[nextConst].getI16Const()));
+                break;
+            case glslang::EbtUint16:
+                spvConsts.push_back(builder.makeUint16Constant(zero ? 0 : consts[nextConst].getU16Const()));
+                break;
             case glslang::EbtInt:
                 spvConsts.push_back(builder.makeIntConstant(zero ? 0 : consts[nextConst].getIConst()));
                 break;
@@ -5723,25 +6205,15 @@
             case glslang::EbtUint64:
                 spvConsts.push_back(builder.makeUint64Constant(zero ? 0 : consts[nextConst].getU64Const()));
                 break;
-#ifdef AMD_EXTENSIONS
-            case glslang::EbtInt16:
-                spvConsts.push_back(builder.makeInt16Constant(zero ? 0 : (short)consts[nextConst].getIConst()));
-                break;
-            case glslang::EbtUint16:
-                spvConsts.push_back(builder.makeUint16Constant(zero ? 0 : (unsigned short)consts[nextConst].getUConst()));
-                break;
-#endif
             case glslang::EbtFloat:
                 spvConsts.push_back(builder.makeFloatConstant(zero ? 0.0F : (float)consts[nextConst].getDConst()));
                 break;
             case glslang::EbtDouble:
                 spvConsts.push_back(builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst()));
                 break;
-#ifdef AMD_EXTENSIONS
             case glslang::EbtFloat16:
                 spvConsts.push_back(builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst()));
                 break;
-#endif
             case glslang::EbtBool:
                 spvConsts.push_back(builder.makeBoolConstant(zero ? false : consts[nextConst].getBConst()));
                 break;
@@ -5756,6 +6228,18 @@
         bool zero = nextConst >= consts.size();
         spv::Id scalar = 0;
         switch (glslangType.getBasicType()) {
+        case glslang::EbtInt8:
+            scalar = builder.makeInt8Constant(zero ? 0 : consts[nextConst].getI8Const(), specConstant);
+            break;
+        case glslang::EbtUint8:
+            scalar = builder.makeUint8Constant(zero ? 0 : consts[nextConst].getU8Const(), specConstant);
+            break;
+        case glslang::EbtInt16:
+            scalar = builder.makeInt16Constant(zero ? 0 : consts[nextConst].getI16Const(), specConstant);
+            break;
+        case glslang::EbtUint16:
+            scalar = builder.makeUint16Constant(zero ? 0 : consts[nextConst].getU16Const(), specConstant);
+            break;
         case glslang::EbtInt:
             scalar = builder.makeIntConstant(zero ? 0 : consts[nextConst].getIConst(), specConstant);
             break;
@@ -5768,25 +6252,15 @@
         case glslang::EbtUint64:
             scalar = builder.makeUint64Constant(zero ? 0 : consts[nextConst].getU64Const(), specConstant);
             break;
-#ifdef AMD_EXTENSIONS
-        case glslang::EbtInt16:
-            scalar = builder.makeInt16Constant(zero ? 0 : (short)consts[nextConst].getIConst(), specConstant);
-            break;
-        case glslang::EbtUint16:
-            scalar = builder.makeUint16Constant(zero ? 0 : (unsigned short)consts[nextConst].getUConst(), specConstant);
-            break;
-#endif
         case glslang::EbtFloat:
             scalar = builder.makeFloatConstant(zero ? 0.0F : (float)consts[nextConst].getDConst(), specConstant);
             break;
         case glslang::EbtDouble:
             scalar = builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst(), specConstant);
             break;
-#ifdef AMD_EXTENSIONS
         case glslang::EbtFloat16:
             scalar = builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst(), specConstant);
             break;
-#endif
         case glslang::EbtBool:
             scalar = builder.makeBoolConstant(zero ? false : consts[nextConst].getBConst(), specConstant);
             break;
diff --git a/SPIRV/SPVRemapper.cpp b/SPIRV/SPVRemapper.cpp
index 4d96df6..412f649 100755
--- a/SPIRV/SPVRemapper.cpp
+++ b/SPIRV/SPVRemapper.cpp
@@ -256,7 +256,7 @@
 
     spv::Id spirvbin_t::localId(spv::Id id, spv::Id newId)
     {
-        assert(id != spv::NoResult && newId != spv::NoResult);
+        //assert(id != spv::NoResult && newId != spv::NoResult);
 
         if (id > bound()) {
             error(std::string("ID out of range: ") + std::to_string(id));
@@ -431,7 +431,7 @@
                 if (spv::InstructionDesc[opCode].hasResult()) {
                     const spv::Id resultId = asId(word++);
                     idPosR[resultId] = start;
-
+                    
                     if (typeId != spv::NoResult) {
                         const unsigned idTypeSize = typeSizeInWords(typeId);
 
diff --git a/SPIRV/SPVRemapper.h b/SPIRV/SPVRemapper.h
index 97e3f31..5abdd4a 100755
--- a/SPIRV/SPVRemapper.h
+++ b/SPIRV/SPVRemapper.h
@@ -179,7 +179,6 @@
    range_t  constRange(spv::Op opCode)     const;
    unsigned typeSizeInWords(spv::Id id)    const;
    unsigned idTypeSizeInWords(spv::Id id)  const;
-
    spv::Id&        asId(unsigned word)                { return spv[word]; }
    const spv::Id&  asId(unsigned word)          const { return spv[word]; }
    spv::Op         asOpCode(unsigned word)      const { return opOpCode(spv[word]); }
diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp
index c795ca8..035f531 100644
--- a/SPIRV/SpvBuilder.cpp
+++ b/SPIRV/SpvBuilder.cpp
@@ -46,9 +46,7 @@
 
 #include "SpvBuilder.h"
 
-#ifdef AMD_EXTENSIONS
-    #include "hex_float.h"
-#endif
+#include "hex_float.h"
 
 #ifndef _WIN32
     #include <cstdio>
@@ -57,6 +55,7 @@
 namespace spv {
 
 Builder::Builder(unsigned int magicNumber, SpvBuildLogger* buildLogger) :
+    targetVersion(0x00010000),
     source(SourceLanguageUnknown),
     sourceVersion(0),
     sourceFileStringId(NoResult),
@@ -193,6 +192,9 @@
 
     // deal with capabilities
     switch (width) {
+    case 8:
+        addCapability(CapabilityInt8);
+        break;
     case 16:
         addCapability(CapabilityInt16);
         break;
@@ -818,7 +820,6 @@
     return c->getResultId();
 }
 
-#ifdef AMD_EXTENSIONS
 Id Builder::makeFloat16Constant(float f16, bool specConstant)
 {
     Op opcode = specConstant ? OpSpecConstant : OpConstant;
@@ -846,7 +847,6 @@
 
     return c->getResultId();
 }
-#endif
 
 Id Builder::findCompositeConstant(Op typeClass, const std::vector<Id>& comps) const
 {
@@ -2403,7 +2403,7 @@
 {
     // Header, before first instructions:
     out.push_back(MagicNumber);
-    out.push_back(Version);
+    out.push_back(targetVersion);
     out.push_back(builderNumber);
     out.push_back(uniqueId + 1);
     out.push_back(0);
@@ -2433,7 +2433,6 @@
 
     // Debug instructions
     dumpInstructions(out, strings);
-    dumpModuleProcesses(out);
     dumpSourceInstructions(out);
     for (int e = 0; e < (int)sourceExtensions.size(); ++e) {
         Instruction sourceExtInst(0, 0, OpSourceExtension);
@@ -2441,7 +2440,7 @@
         sourceExtInst.dump(out);
     }
     dumpInstructions(out, names);
-    dumpInstructions(out, lines);
+    dumpModuleProcesses(out);
 
     // Annotation instructions
     dumpInstructions(out, decorations);
diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h
index 59b1da2..a83e8ca 100755
--- a/SPIRV/SpvBuilder.h
+++ b/SPIRV/SpvBuilder.h
@@ -1,6 +1,7 @@
 //
 // Copyright (C) 2014-2015 LunarG, Inc.
 // Copyright (C) 2015-2016 Google, Inc.
+// Copyright (C) 2017 ARM Limited.
 //
 // All rights reserved.
 //
@@ -65,6 +66,7 @@
 
     static const int maxMatrixSize = 4;
 
+    void setTargetVersion(unsigned int v) { targetVersion = v; }
     void setSource(spv::SourceLanguage lang, int version)
     {
         source = lang;
@@ -211,19 +213,17 @@
 
     // For making new constants (will return old constant if the requested one was already made).
     Id makeBoolConstant(bool b, bool specConstant = false);
+    Id makeInt8Constant(int i, bool specConstant = false)         { return makeIntConstant(makeIntType(8),  (unsigned)i, specConstant); }
+    Id makeUint8Constant(unsigned u, bool specConstant = false)   { return makeIntConstant(makeUintType(8),           u, specConstant); }
+    Id makeInt16Constant(int i, bool specConstant = false)         { return makeIntConstant(makeIntType(16),  (unsigned)i, specConstant); }
+    Id makeUint16Constant(unsigned u, bool specConstant = false)   { return makeIntConstant(makeUintType(16),           u, specConstant); }
     Id makeIntConstant(int i, bool specConstant = false)         { return makeIntConstant(makeIntType(32),  (unsigned)i, specConstant); }
     Id makeUintConstant(unsigned u, bool specConstant = false)   { return makeIntConstant(makeUintType(32),           u, specConstant); }
     Id makeInt64Constant(long long i, bool specConstant = false)            { return makeInt64Constant(makeIntType(64),  (unsigned long long)i, specConstant); }
     Id makeUint64Constant(unsigned long long u, bool specConstant = false)  { return makeInt64Constant(makeUintType(64),                     u, specConstant); }
-#ifdef AMD_EXTENSIONS
-    Id makeInt16Constant(short i, bool specConstant = false)        { return makeIntConstant(makeIntType(16),      (unsigned)((unsigned short)i), specConstant); }
-    Id makeUint16Constant(unsigned short u, bool specConstant = false)  { return makeIntConstant(makeUintType(16), (unsigned)u, specConstant); }
-#endif
     Id makeFloatConstant(float f, bool specConstant = false);
     Id makeDoubleConstant(double d, bool specConstant = false);
-#ifdef AMD_EXTENSIONS
     Id makeFloat16Constant(float f16, bool specConstant = false);
-#endif
 
     // Turn the array of constants into a proper spv constant of the requested type.
     Id makeCompositeConstant(Id type, const std::vector<Id>& comps, bool specConst = false);
@@ -330,7 +330,7 @@
     // Generally, the type of 'scalar' does not need to be the same type as the components in 'vector'.
     // The type of the created vector is a vector of components of the same type as the scalar.
     //
-    // Note: One of the arguments will change, with the result coming back that way rather than 
+    // Note: One of the arguments will change, with the result coming back that way rather than
     // through the return value.
     void promoteScalar(Decoration precision, Id& left, Id& right);
 
@@ -585,6 +585,7 @@
     void dumpInstructions(std::vector<unsigned int>&, const std::vector<std::unique_ptr<Instruction> >&) const;
     void dumpModuleProcesses(std::vector<unsigned int>&) const;
 
+    unsigned int targetVersion;
     SourceLanguage source;
     int sourceVersion;
     spv::Id sourceFileStringId;
@@ -611,7 +612,6 @@
     std::vector<std::unique_ptr<Instruction> > entryPoints;
     std::vector<std::unique_ptr<Instruction> > executionModes;
     std::vector<std::unique_ptr<Instruction> > names;
-    std::vector<std::unique_ptr<Instruction> > lines;
     std::vector<std::unique_ptr<Instruction> > decorations;
     std::vector<std::unique_ptr<Instruction> > constantsTypesGlobals;
     std::vector<std::unique_ptr<Instruction> > externals;
diff --git a/SPIRV/disassemble.cpp b/SPIRV/disassemble.cpp
index c950a66..c07dfc7 100644
--- a/SPIRV/disassemble.cpp
+++ b/SPIRV/disassemble.cpp
@@ -54,6 +54,7 @@
 #ifdef AMD_EXTENSIONS
         #include "GLSL.ext.AMD.h"
 #endif
+
 #ifdef NV_EXTENSIONS
         #include "GLSL.ext.NV.h"
 #endif
@@ -80,12 +81,15 @@
 // used to identify the extended instruction library imported when printing
 enum ExtInstSet {
     GLSL450Inst,
+
 #ifdef AMD_EXTENSIONS
     GLSLextAMDInst,
 #endif
+
 #ifdef NV_EXTENSIONS
     GLSLextNVInst,
 #endif
+
     OpenCLExtInst,
 };
 
@@ -653,7 +657,6 @@
 }
 #endif
 
-
 #ifdef NV_EXTENSIONS
 static const char* GLSLextNVGetDebugNames(const char* name, unsigned entrypoint)
 {
diff --git a/SPIRV/doc.cpp b/SPIRV/doc.cpp
old mode 100755
new mode 100644
index f9d5254..3343a65
--- a/SPIRV/doc.cpp
+++ b/SPIRV/doc.cpp
@@ -722,7 +722,7 @@
     }
 }
 
-const int GroupOperationCeiling = 3;
+const int GroupOperationCeiling = 4;
 
 const char* GroupOperationString(int gop)
 {
@@ -732,6 +732,7 @@
     case 0:  return "Reduce";
     case 1:  return "InclusiveScan";
     case 2:  return "ExclusiveScan";
+    case 3:  return "ClusteredReduce";
 
     case GroupOperationCeiling:
     default: return "Bad";
@@ -830,6 +831,14 @@
     case 55: return "StorageImageReadWithoutFormat";
     case 56: return "StorageImageWriteWithoutFormat";
     case 57: return "MultiViewport";
+    case 61: return "GroupNonUniform";
+    case 62: return "GroupNonUniformVote";
+    case 63: return "GroupNonUniformArithmetic";
+    case 64: return "GroupNonUniformBallot";
+    case 65: return "GroupNonUniformShuffle";
+    case 66: return "GroupNonUniformShuffleRelative";
+    case 67: return "GroupNonUniformClustered";
+    case 68: return "GroupNonUniformQuad";
 
     case 4423: return "SubgroupBallotKHR";
     case 4427: return "DrawParameters";
@@ -1191,7 +1200,41 @@
     case 318: return "OpAtomicFlagTestAndSet";
     case 319: return "OpAtomicFlagClear";
     case 320: return "OpImageSparseRead";
-
+    case OpModuleProcessed: return "OpModuleProcesses";
+    case 333: return "OpGroupNonUniformElect";
+    case 334: return "OpGroupNonUniformAll";
+    case 335: return "OpGroupNonUniformAny";
+    case 336: return "OpGroupNonUniformAllEqual";
+    case 337: return "OpGroupNonUniformBroadcast";
+    case 338: return "OpGroupNonUniformBroadcastFirst";
+    case 339: return "OpGroupNonUniformBallot";
+    case 340: return "OpGroupNonUniformInverseBallot";
+    case 341: return "OpGroupNonUniformBallotBitExtract";
+    case 342: return "OpGroupNonUniformBallotBitCount";
+    case 343: return "OpGroupNonUniformBallotFindLSB";
+    case 344: return "OpGroupNonUniformBallotFindMSB";
+    case 345: return "OpGroupNonUniformShuffle";
+    case 346: return "OpGroupNonUniformShuffleXor";
+    case 347: return "OpGroupNonUniformShuffleUp";
+    case 348: return "OpGroupNonUniformShuffleDown";
+    case 349: return "OpGroupNonUniformIAdd";
+    case 350: return "OpGroupNonUniformFAdd";
+    case 351: return "OpGroupNonUniformIMul";
+    case 352: return "OpGroupNonUniformFMul";
+    case 353: return "OpGroupNonUniformSMin";
+    case 354: return "OpGroupNonUniformUMin";
+    case 355: return "OpGroupNonUniformFMin";
+    case 356: return "OpGroupNonUniformSMax";
+    case 357: return "OpGroupNonUniformUMax";
+    case 358: return "OpGroupNonUniformFMax";
+    case 359: return "OpGroupNonUniformBitwiseAnd";
+    case 360: return "OpGroupNonUniformBitwiseOr";
+    case 361: return "OpGroupNonUniformBitwiseXor";
+    case 362: return "OpGroupNonUniformLogicalAnd";
+    case 363: return "OpGroupNonUniformLogicalOr";
+    case 364: return "OpGroupNonUniformLogicalXor";
+    case 365: return "OpGroupNonUniformQuadBroadcast";
+    case 366: return "OpGroupNonUniformQuadSwap";
     case 4421: return "OpSubgroupBallotKHR";
     case 4422: return "OpSubgroupFirstInvocationKHR";
     case 4428: return "OpSubgroupAllKHR";
@@ -1343,6 +1386,7 @@
     InstructionDesc[OpReleaseEvent].setResultAndType(false, false);
     InstructionDesc[OpGroupWaitEvents].setResultAndType(false, false);
     InstructionDesc[OpAtomicFlagClear].setResultAndType(false, false);
+    InstructionDesc[OpModuleProcessed].setResultAndType(false, false);
 
     // Specific additional context-dependent operands
 
@@ -2813,6 +2857,182 @@
     InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Wait Events'");
     InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Ret Event'");
 
+    InstructionDesc[OpGroupNonUniformElect].capabilities.push_back(CapabilityGroupNonUniform);
+    InstructionDesc[OpGroupNonUniformElect].operands.push(OperandScope, "'Execution'");
+
+    InstructionDesc[OpGroupNonUniformAll].capabilities.push_back(CapabilityGroupNonUniformVote);
+    InstructionDesc[OpGroupNonUniformAll].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformAll].operands.push(OperandId, "X");
+
+    InstructionDesc[OpGroupNonUniformAny].capabilities.push_back(CapabilityGroupNonUniformVote);
+    InstructionDesc[OpGroupNonUniformAny].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformAny].operands.push(OperandId, "X");
+
+    InstructionDesc[OpGroupNonUniformAllEqual].capabilities.push_back(CapabilityGroupNonUniformVote);
+    InstructionDesc[OpGroupNonUniformAllEqual].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformAllEqual].operands.push(OperandId, "X");
+
+    InstructionDesc[OpGroupNonUniformBroadcast].capabilities.push_back(CapabilityGroupNonUniformBallot);
+    InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandId, "ID");
+
+    InstructionDesc[OpGroupNonUniformBroadcastFirst].capabilities.push_back(CapabilityGroupNonUniformBallot);
+    InstructionDesc[OpGroupNonUniformBroadcastFirst].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformBroadcastFirst].operands.push(OperandId, "X");
+
+    InstructionDesc[OpGroupNonUniformBallot].capabilities.push_back(CapabilityGroupNonUniformBallot);
+    InstructionDesc[OpGroupNonUniformBallot].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformBallot].operands.push(OperandId, "X");
+
+    InstructionDesc[OpGroupNonUniformInverseBallot].capabilities.push_back(CapabilityGroupNonUniformBallot);
+    InstructionDesc[OpGroupNonUniformInverseBallot].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformInverseBallot].operands.push(OperandId, "X");
+
+    InstructionDesc[OpGroupNonUniformBallotBitExtract].capabilities.push_back(CapabilityGroupNonUniformBallot);
+    InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandId, "Bit");
+
+    InstructionDesc[OpGroupNonUniformBallotBitCount].capabilities.push_back(CapabilityGroupNonUniformBallot);
+    InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandId, "X");
+
+    InstructionDesc[OpGroupNonUniformBallotFindLSB].capabilities.push_back(CapabilityGroupNonUniformBallot);
+    InstructionDesc[OpGroupNonUniformBallotFindLSB].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformBallotFindLSB].operands.push(OperandId, "X");
+
+    InstructionDesc[OpGroupNonUniformBallotFindMSB].capabilities.push_back(CapabilityGroupNonUniformBallot);
+    InstructionDesc[OpGroupNonUniformBallotFindMSB].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformBallotFindMSB].operands.push(OperandId, "X");
+
+    InstructionDesc[OpGroupNonUniformShuffle].capabilities.push_back(CapabilityGroupNonUniformShuffle);
+    InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandId, "'Id'");
+
+    InstructionDesc[OpGroupNonUniformShuffleXor].capabilities.push_back(CapabilityGroupNonUniformShuffle);
+    InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandId, "Mask");
+
+    InstructionDesc[OpGroupNonUniformShuffleUp].capabilities.push_back(CapabilityGroupNonUniformShuffleRelative);
+    InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandId, "Offset");
+
+    InstructionDesc[OpGroupNonUniformShuffleDown].capabilities.push_back(CapabilityGroupNonUniformShuffleRelative);
+    InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandId, "Offset");
+
+    InstructionDesc[OpGroupNonUniformIAdd].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformFAdd].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformIMul].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformFMul].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformSMin].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformUMin].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformFMin].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformSMax].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformUMax].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformFMax].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformBitwiseAnd].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformBitwiseOr].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformBitwiseXor].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformLogicalAnd].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformLogicalOr].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformLogicalXor].capabilities.push_back(CapabilityGroupNonUniformArithmetic);
+    InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandGroupOperation, "'Operation'");
+    InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandId, "'ClusterSize'", true);
+
+    InstructionDesc[OpGroupNonUniformQuadBroadcast].capabilities.push_back(CapabilityGroupNonUniformQuad);
+    InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandId, "'Id'");
+
+    InstructionDesc[OpGroupNonUniformQuadSwap].capabilities.push_back(CapabilityGroupNonUniformQuad);
+    InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandScope, "'Execution'");
+    InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandId, "X");
+    InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandLiteralNumber, "'Direction'");
+    
     InstructionDesc[OpSubgroupBallotKHR].operands.push(OperandId, "'Predicate'");
 
     InstructionDesc[OpSubgroupFirstInvocationKHR].operands.push(OperandId, "'Value'");
@@ -2833,6 +3053,8 @@
     InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(OperandId, "'Value'");
     InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(OperandId, "'Index'");
 
+    InstructionDesc[OpModuleProcessed].operands.push(OperandLiteralString, "'process'");
+
 #ifdef AMD_EXTENSIONS
     InstructionDesc[OpGroupIAddNonUniformAMD].capabilities.push_back(CapabilityGroups);
     InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandScope, "'Execution'");
diff --git a/SPIRV/spirv.hpp b/SPIRV/spirv.hpp
index 8bddf7e..d528dea 100755
--- a/SPIRV/spirv.hpp
+++ b/SPIRV/spirv.hpp
@@ -46,12 +46,12 @@
 
 typedef unsigned int Id;
 
-#define SPV_VERSION 0x10000
-#define SPV_REVISION 12
+#define SPV_VERSION 0x10300
+#define SPV_REVISION 1
 
 static const unsigned int MagicNumber = 0x07230203;
-static const unsigned int Version = 0x00010000;
-static const unsigned int Revision = 12;
+static const unsigned int Version = 0x00010300;
+static const unsigned int Revision = 1;
 static const unsigned int OpCodeMask = 0xffff;
 static const unsigned int WordCountShift = 16;
 
@@ -122,7 +122,15 @@
     ExecutionModeOutputTriangleStrip = 29,
     ExecutionModeVecTypeHint = 30,
     ExecutionModeContractionOff = 31,
+    ExecutionModeInitializer = 33,
+    ExecutionModeFinalizer = 34,
+    ExecutionModeSubgroupSize = 35,
+    ExecutionModeSubgroupsPerWorkgroup = 36,
+    ExecutionModeSubgroupsPerWorkgroupId = 37,
+    ExecutionModeLocalSizeId = 38,
+    ExecutionModeLocalSizeHintId = 39,
     ExecutionModePostDepthCoverage = 4446,
+    ExecutionModeStencilRefReplacingEXT = 5027,
     ExecutionModeMax = 0x7fffffff,
 };
 
@@ -377,6 +385,9 @@
     DecorationNoContraction = 42,
     DecorationInputAttachmentIndex = 43,
     DecorationAlignment = 44,
+    DecorationMaxByteOffset = 45,
+    DecorationAlignmentId = 46,
+    DecorationMaxByteOffsetId = 47,
     DecorationExplicitInterpAMD = 4999,
     DecorationOverrideCoverageNV = 5248,
     DecorationPassthroughNV = 5250,
@@ -427,10 +438,15 @@
     BuiltInSubgroupLocalInvocationId = 41,
     BuiltInVertexIndex = 42,
     BuiltInInstanceIndex = 43,
+    BuiltInSubgroupEqMask = 4416,
     BuiltInSubgroupEqMaskKHR = 4416,
+    BuiltInSubgroupGeMask = 4417,
     BuiltInSubgroupGeMaskKHR = 4417,
+    BuiltInSubgroupGtMask = 4418,
     BuiltInSubgroupGtMaskKHR = 4418,
+    BuiltInSubgroupLeMask = 4419,
     BuiltInSubgroupLeMaskKHR = 4419,
+    BuiltInSubgroupLtMask = 4420,
     BuiltInSubgroupLtMaskKHR = 4420,
     BuiltInBaseVertex = 4424,
     BuiltInBaseInstance = 4425,
@@ -468,6 +484,8 @@
 enum LoopControlShift {
     LoopControlUnrollShift = 0,
     LoopControlDontUnrollShift = 1,
+    LoopControlDependencyInfiniteShift = 2,
+    LoopControlDependencyLengthShift = 3,
     LoopControlMax = 0x7fffffff,
 };
 
@@ -475,6 +493,8 @@
     LoopControlMaskNone = 0,
     LoopControlUnrollMask = 0x00000001,
     LoopControlDontUnrollMask = 0x00000002,
+    LoopControlDependencyInfiniteMask = 0x00000004,
+    LoopControlDependencyLengthMask = 0x00000008,
 };
 
 enum FunctionControlShift {
@@ -548,6 +568,7 @@
     GroupOperationReduce = 0,
     GroupOperationInclusiveScan = 1,
     GroupOperationExclusiveScan = 2,
+    GroupOperationClusteredReduce = 3,
     GroupOperationMax = 0x7fffffff,
 };
 
@@ -625,6 +646,17 @@
     CapabilityStorageImageReadWithoutFormat = 55,
     CapabilityStorageImageWriteWithoutFormat = 56,
     CapabilityMultiViewport = 57,
+    CapabilitySubgroupDispatch = 58,
+    CapabilityNamedBarrier = 59,
+    CapabilityPipeStorage = 60,
+    CapabilityGroupNonUniform = 61,
+    CapabilityGroupNonUniformVote = 62,
+    CapabilityGroupNonUniformArithmetic = 63,
+    CapabilityGroupNonUniformBallot = 64,
+    CapabilityGroupNonUniformShuffle = 65,
+    CapabilityGroupNonUniformShuffleRelative = 66,
+    CapabilityGroupNonUniformClustered = 67,
+    CapabilityGroupNonUniformQuad = 68,
     CapabilitySubgroupBallotKHR = 4423,
     CapabilityDrawParameters = 4427,
     CapabilitySubgroupVoteKHR = 4431,
@@ -641,7 +673,9 @@
     CapabilityAtomicStorageOps = 4445,
     CapabilitySampleMaskPostDepthCoverage = 4447,
     CapabilityImageGatherBiasLodAMD = 5009,
+    CapabilityFragmentMaskAMD = 5010,
     CapabilityStencilExportEXT = 5013,
+    CapabilityImageReadWriteLodAMD = 5015,
     CapabilitySampleMaskOverrideCoverageNV = 5249,
     CapabilityGeometryShaderPassthroughNV = 5251,
     CapabilityShaderViewportIndexLayerEXT = 5254,
@@ -947,6 +981,52 @@
     OpAtomicFlagTestAndSet = 318,
     OpAtomicFlagClear = 319,
     OpImageSparseRead = 320,
+    OpSizeOf = 321,
+    OpTypePipeStorage = 322,
+    OpConstantPipeStorage = 323,
+    OpCreatePipeFromPipeStorage = 324,
+    OpGetKernelLocalSizeForSubgroupCount = 325,
+    OpGetKernelMaxNumSubgroups = 326,
+    OpTypeNamedBarrier = 327,
+    OpNamedBarrierInitialize = 328,
+    OpMemoryNamedBarrier = 329,
+    OpModuleProcessed = 330,
+    OpExecutionModeId = 331,
+    OpDecorateId = 332,
+    OpGroupNonUniformElect = 333,
+    OpGroupNonUniformAll = 334,
+    OpGroupNonUniformAny = 335,
+    OpGroupNonUniformAllEqual = 336,
+    OpGroupNonUniformBroadcast = 337,
+    OpGroupNonUniformBroadcastFirst = 338,
+    OpGroupNonUniformBallot = 339,
+    OpGroupNonUniformInverseBallot = 340,
+    OpGroupNonUniformBallotBitExtract = 341,
+    OpGroupNonUniformBallotBitCount = 342,
+    OpGroupNonUniformBallotFindLSB = 343,
+    OpGroupNonUniformBallotFindMSB = 344,
+    OpGroupNonUniformShuffle = 345,
+    OpGroupNonUniformShuffleXor = 346,
+    OpGroupNonUniformShuffleUp = 347,
+    OpGroupNonUniformShuffleDown = 348,
+    OpGroupNonUniformIAdd = 349,
+    OpGroupNonUniformFAdd = 350,
+    OpGroupNonUniformIMul = 351,
+    OpGroupNonUniformFMul = 352,
+    OpGroupNonUniformSMin = 353,
+    OpGroupNonUniformUMin = 354,
+    OpGroupNonUniformFMin = 355,
+    OpGroupNonUniformSMax = 356,
+    OpGroupNonUniformUMax = 357,
+    OpGroupNonUniformFMax = 358,
+    OpGroupNonUniformBitwiseAnd = 359,
+    OpGroupNonUniformBitwiseOr = 360,
+    OpGroupNonUniformBitwiseXor = 361,
+    OpGroupNonUniformLogicalAnd = 362,
+    OpGroupNonUniformLogicalOr = 363,
+    OpGroupNonUniformLogicalXor = 364,
+    OpGroupNonUniformQuadBroadcast = 365,
+    OpGroupNonUniformQuadSwap = 366,
     OpSubgroupBallotKHR = 4421,
     OpSubgroupFirstInvocationKHR = 4422,
     OpSubgroupAllKHR = 4428,
@@ -961,6 +1041,8 @@
     OpGroupFMaxNonUniformAMD = 5005,
     OpGroupUMaxNonUniformAMD = 5006,
     OpGroupSMaxNonUniformAMD = 5007,
+    OpFragmentMaskFetchAMD = 5011,
+    OpFragmentFetchAMD = 5012,
     OpMax = 0x7fffffff,
 };
 
diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp
index 19302cb..977ee62 100644
--- a/StandAlone/StandAlone.cpp
+++ b/StandAlone/StandAlone.cpp
@@ -155,7 +155,7 @@
 int ClientInputSemanticsVersion = 100;   // maps to, say, #define VULKAN 100
 int VulkanClientVersion = 100;           // would map to, say, Vulkan 1.0
 int OpenGLClientVersion = 450;           // doesn't influence anything yet, but maps to OpenGL 4.50
-unsigned int TargetVersion = 0x00001000; // maps to, say, SPIR-V 1.0
+unsigned int TargetVersion = 0x00010000; // maps to, say, SPIR-V 1.0
 std::vector<std::string> Processes;      // what should be recorded by OpModuleProcessed, or equivalent
 
 // Per descriptor-set binding base data
@@ -501,6 +501,10 @@
                             if (strcmp(argv[1], "vulkan1.0") == 0) {
                                 setVulkanSpv();
                                 VulkanClientVersion = 100;
+                            } else if (strcmp(argv[1], "vulkan1.1") == 0) {
+                                setVulkanSpv();
+                                TargetVersion = 0x00010300;
+                                VulkanClientVersion = 110;
                             } else if (strcmp(argv[1], "opengl") == 0) {
                                 setOpenGlSpv();
                                 OpenGLClientVersion = 450;
@@ -1328,8 +1332,9 @@
            "                                       using -S.\n"
            "  --suppress-warnings                  suppress GLSL warnings\n"
            "                                       (except as required by #extension : warn)\n"
-           "  --target-env {vulkan1.0|opengl}      set the execution environment code will\n"
-           "                                       execute in (as opposed to language\n"
+           "  --target-env {vulkan1.0 | vulkan1.1 | opengl} \n"
+           "                                       set execution environment that emitted code\n"
+           "                                       will execute in (as opposed to the language\n"
            "                                       semantics selected by --client) defaults:\n"
            "                                        'vulkan1.0' under '--client vulkan<ver>'\n"
            "                                        'opengl' under '--client opengl<ver>'\n"
diff --git a/Test/baseResults/findFunction.frag.out b/Test/baseResults/findFunction.frag.out
new file mode 100644
index 0000000..ec4f3e4
--- /dev/null
+++ b/Test/baseResults/findFunction.frag.out
@@ -0,0 +1,233 @@
+findFunction.frag
+ERROR: 0:39: 'func' : ambiguous best function under implicit type conversion 
+ERROR: 0:40: 'func' : no matching overloaded function found 
+ERROR: 0:40: '=' :  cannot convert from ' const float' to ' temp int64_t'
+ERROR: 0:41: 'func' : no matching overloaded function found 
+ERROR: 0:41: '=' :  cannot convert from ' const float' to ' temp int64_t'
+ERROR: 0:44: 'func' : no matching overloaded function found 
+ERROR: 0:44: '=' :  cannot convert from ' const float' to ' temp int64_t'
+ERROR: 0:45: 'func' : ambiguous best function under implicit type conversion 
+ERROR: 8 compilation errors.  No code generated.
+
+
+Shader version: 450
+Requested GL_KHX_shader_explicit_arithmetic_types
+ERROR: node is still EOpNull!
+0:5  Function Definition: func(i81;i161;i161; ( global int64_t)
+0:5    Function Parameters: 
+0:5      'a' ( in int8_t)
+0:5      'b' ( in int16_t)
+0:5      'c' ( in int16_t)
+0:7    Sequence
+0:7      Branch: Return with expression
+0:7        Convert int16_t to int64 ( temp int64_t)
+0:7          inclusive-or ( temp int16_t)
+0:7            Convert int8_t to int16_t ( temp int16_t)
+0:7              'a' ( in int8_t)
+0:7            add ( temp int16_t)
+0:7              'b' ( in int16_t)
+0:7              'c' ( in int16_t)
+0:10  Function Definition: func(i81;i161;i1; ( global int64_t)
+0:10    Function Parameters: 
+0:10      'a' ( in int8_t)
+0:10      'b' ( in int16_t)
+0:10      'c' ( in int)
+0:12    Sequence
+0:12      Branch: Return with expression
+0:12        Convert int to int64 ( temp int64_t)
+0:12          inclusive-or ( temp int)
+0:12            Convert int8_t to int ( temp int)
+0:12              'a' ( in int8_t)
+0:12            subtract ( temp int)
+0:12              Convert int16_t to int ( temp int)
+0:12                'b' ( in int16_t)
+0:12              'c' ( in int)
+0:15  Function Definition: func(i1;i1;i1; ( global int64_t)
+0:15    Function Parameters: 
+0:15      'a' ( in int)
+0:15      'b' ( in int)
+0:15      'c' ( in int)
+0:17    Sequence
+0:17      Branch: Return with expression
+0:17        Convert int to int64 ( temp int64_t)
+0:17          add ( temp int)
+0:17            divide ( temp int)
+0:17              'a' ( in int)
+0:17              'b' ( in int)
+0:17            'c' ( in int)
+0:20  Function Definition: func(f161;f161;f1; ( global int64_t)
+0:20    Function Parameters: 
+0:20      'a' ( in float16_t)
+0:20      'b' ( in float16_t)
+0:20      'c' ( in float)
+0:22    Sequence
+0:22      Branch: Return with expression
+0:22        Convert float to int64 ( temp int64_t)
+0:22          subtract ( temp float)
+0:22            Convert float16_t to float ( temp float)
+0:22              'a' ( in float16_t)
+0:22            component-wise multiply ( temp float)
+0:22              Convert float16_t to float ( temp float)
+0:22                'b' ( in float16_t)
+0:22              'c' ( in float)
+0:25  Function Definition: func(f161;i161;f1; ( global int64_t)
+0:25    Function Parameters: 
+0:25      'a' ( in float16_t)
+0:25      'b' ( in int16_t)
+0:25      'c' ( in float)
+0:27    Sequence
+0:27      Branch: Return with expression
+0:27        Convert float to int64 ( temp int64_t)
+0:27          subtract ( temp float)
+0:27            Convert float16_t to float ( temp float)
+0:27              'a' ( in float16_t)
+0:27            component-wise multiply ( temp float)
+0:27              Convert int16_t to float ( temp float)
+0:27                'b' ( in int16_t)
+0:27              'c' ( in float)
+0:30  Function Definition: main( ( global void)
+0:30    Function Parameters: 
+0:?     Sequence
+0:38      Sequence
+0:38        move second child to first child ( temp int64_t)
+0:38          'b1' ( temp int64_t)
+0:38          Function Call: func(i81;i161;i1; ( global int64_t)
+0:38            'x' ( temp int8_t)
+0:38            'y' ( temp int16_t)
+0:38            'z' ( temp int)
+0:39      Sequence
+0:39        move second child to first child ( temp int64_t)
+0:39          'b2' ( temp int64_t)
+0:39          Function Call: func(f161;i161;f1; ( global int64_t)
+0:39            Convert int16_t to float16_t ( temp float16_t)
+0:39              'y' ( temp int16_t)
+0:39            'y' ( temp int16_t)
+0:39            Convert int to float ( temp float)
+0:39              'z' ( temp int)
+0:42      Sequence
+0:42        move second child to first child ( temp int64_t)
+0:42          'b5' ( temp int64_t)
+0:42          Function Call: func(f161;i161;f1; ( global int64_t)
+0:42            Convert int16_t to float16_t ( temp float16_t)
+0:42              'y' ( temp int16_t)
+0:42            'y' ( temp int16_t)
+0:42            Convert float16_t to float ( temp float)
+0:42              'f16' ( temp float16_t)
+0:43      Sequence
+0:43        move second child to first child ( temp int64_t)
+0:43          'b7' ( temp int64_t)
+0:43          Function Call: func(f161;f161;f1; ( global int64_t)
+0:43            'f16' ( temp float16_t)
+0:43            'f16' ( temp float16_t)
+0:43            Convert int16_t to float ( temp float)
+0:43              'y' ( temp int16_t)
+0:45      Sequence
+0:45        move second child to first child ( temp int64_t)
+0:45          'b9' ( temp int64_t)
+0:45          Function Call: func(f161;f161;f1; ( global int64_t)
+0:45            'f16' ( temp float16_t)
+0:45            Convert int8_t to float16_t ( temp float16_t)
+0:45              'x' ( temp int8_t)
+0:45            Convert float16_t to float ( temp float)
+0:45              'f16' ( temp float16_t)
+0:?   Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+Requested GL_KHX_shader_explicit_arithmetic_types
+ERROR: node is still EOpNull!
+0:10  Function Definition: func(i81;i161;i1; ( global int64_t)
+0:10    Function Parameters: 
+0:10      'a' ( in int8_t)
+0:10      'b' ( in int16_t)
+0:10      'c' ( in int)
+0:12    Sequence
+0:12      Branch: Return with expression
+0:12        Convert int to int64 ( temp int64_t)
+0:12          inclusive-or ( temp int)
+0:12            Convert int8_t to int ( temp int)
+0:12              'a' ( in int8_t)
+0:12            subtract ( temp int)
+0:12              Convert int16_t to int ( temp int)
+0:12                'b' ( in int16_t)
+0:12              'c' ( in int)
+0:20  Function Definition: func(f161;f161;f1; ( global int64_t)
+0:20    Function Parameters: 
+0:20      'a' ( in float16_t)
+0:20      'b' ( in float16_t)
+0:20      'c' ( in float)
+0:22    Sequence
+0:22      Branch: Return with expression
+0:22        Convert float to int64 ( temp int64_t)
+0:22          subtract ( temp float)
+0:22            Convert float16_t to float ( temp float)
+0:22              'a' ( in float16_t)
+0:22            component-wise multiply ( temp float)
+0:22              Convert float16_t to float ( temp float)
+0:22                'b' ( in float16_t)
+0:22              'c' ( in float)
+0:25  Function Definition: func(f161;i161;f1; ( global int64_t)
+0:25    Function Parameters: 
+0:25      'a' ( in float16_t)
+0:25      'b' ( in int16_t)
+0:25      'c' ( in float)
+0:27    Sequence
+0:27      Branch: Return with expression
+0:27        Convert float to int64 ( temp int64_t)
+0:27          subtract ( temp float)
+0:27            Convert float16_t to float ( temp float)
+0:27              'a' ( in float16_t)
+0:27            component-wise multiply ( temp float)
+0:27              Convert int16_t to float ( temp float)
+0:27                'b' ( in int16_t)
+0:27              'c' ( in float)
+0:30  Function Definition: main( ( global void)
+0:30    Function Parameters: 
+0:?     Sequence
+0:38      Sequence
+0:38        move second child to first child ( temp int64_t)
+0:38          'b1' ( temp int64_t)
+0:38          Function Call: func(i81;i161;i1; ( global int64_t)
+0:38            'x' ( temp int8_t)
+0:38            'y' ( temp int16_t)
+0:38            'z' ( temp int)
+0:39      Sequence
+0:39        move second child to first child ( temp int64_t)
+0:39          'b2' ( temp int64_t)
+0:39          Function Call: func(f161;i161;f1; ( global int64_t)
+0:39            Convert int16_t to float16_t ( temp float16_t)
+0:39              'y' ( temp int16_t)
+0:39            'y' ( temp int16_t)
+0:39            Convert int to float ( temp float)
+0:39              'z' ( temp int)
+0:42      Sequence
+0:42        move second child to first child ( temp int64_t)
+0:42          'b5' ( temp int64_t)
+0:42          Function Call: func(f161;i161;f1; ( global int64_t)
+0:42            Convert int16_t to float16_t ( temp float16_t)
+0:42              'y' ( temp int16_t)
+0:42            'y' ( temp int16_t)
+0:42            Convert float16_t to float ( temp float)
+0:42              'f16' ( temp float16_t)
+0:43      Sequence
+0:43        move second child to first child ( temp int64_t)
+0:43          'b7' ( temp int64_t)
+0:43          Function Call: func(f161;f161;f1; ( global int64_t)
+0:43            'f16' ( temp float16_t)
+0:43            'f16' ( temp float16_t)
+0:43            Convert int16_t to float ( temp float)
+0:43              'y' ( temp int16_t)
+0:45      Sequence
+0:45        move second child to first child ( temp int64_t)
+0:45          'b9' ( temp int64_t)
+0:45          Function Call: func(f161;f161;f1; ( global int64_t)
+0:45            'f16' ( temp float16_t)
+0:45            Convert int8_t to float16_t ( temp float16_t)
+0:45              'x' ( temp int8_t)
+0:45            Convert float16_t to float ( temp float)
+0:45              'f16' ( temp float16_t)
+0:?   Linker Objects
+
diff --git a/Test/baseResults/hlsl.wavebroadcast.comp.out b/Test/baseResults/hlsl.wavebroadcast.comp.out
new file mode 100644
index 0000000..45bca74
--- /dev/null
+++ b/Test/baseResults/hlsl.wavebroadcast.comp.out
@@ -0,0 +1,2731 @@
+hlsl.wavebroadcast.comp
+Shader version: 500
+local_size = (32, 16, 1)
+0:? Sequence
+0:13  Function Definition: @CSMain(vu3; ( temp void)
+0:13    Function Parameters: 
+0:13      'dti' ( in 3-component vector of uint)
+0:?     Sequence
+0:14      move second child to first child ( temp 4-component vector of uint)
+0:14        u: direct index for structure ( temp 4-component vector of uint)
+0:14          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:14              Constant:
+0:14                0 (const uint)
+0:14            direct index ( temp uint)
+0:14              'dti' ( in 3-component vector of uint)
+0:14              Constant:
+0:14                0 (const int)
+0:14          Constant:
+0:14            0 (const int)
+0:14        subgroupShuffle ( temp 4-component vector of uint)
+0:14          u: direct index for structure ( temp 4-component vector of uint)
+0:14            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:14                Constant:
+0:14                  0 (const uint)
+0:14              direct index ( temp uint)
+0:14                'dti' ( in 3-component vector of uint)
+0:14                Constant:
+0:14                  0 (const int)
+0:14            Constant:
+0:14              0 (const int)
+0:14          Constant:
+0:14            13 (const uint)
+0:15      move second child to first child ( temp uint)
+0:15        direct index ( temp uint)
+0:15          u: direct index for structure ( temp 4-component vector of uint)
+0:15            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:15                Constant:
+0:15                  0 (const uint)
+0:15              direct index ( temp uint)
+0:15                'dti' ( in 3-component vector of uint)
+0:15                Constant:
+0:15                  0 (const int)
+0:15            Constant:
+0:15              0 (const int)
+0:15          Constant:
+0:15            0 (const int)
+0:15        subgroupShuffle ( temp uint)
+0:15          direct index ( temp uint)
+0:15            u: direct index for structure ( temp 4-component vector of uint)
+0:15              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:15                  Constant:
+0:15                    0 (const uint)
+0:15                direct index ( temp uint)
+0:15                  'dti' ( in 3-component vector of uint)
+0:15                  Constant:
+0:15                    0 (const int)
+0:15              Constant:
+0:15                0 (const int)
+0:15            Constant:
+0:15              0 (const int)
+0:15          Constant:
+0:15            13 (const uint)
+0:16      move second child to first child ( temp 2-component vector of uint)
+0:16        vector swizzle ( temp 2-component vector of uint)
+0:16          u: direct index for structure ( temp 4-component vector of uint)
+0:16            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:16                Constant:
+0:16                  0 (const uint)
+0:16              direct index ( temp uint)
+0:16                'dti' ( in 3-component vector of uint)
+0:16                Constant:
+0:16                  0 (const int)
+0:16            Constant:
+0:16              0 (const int)
+0:16          Sequence
+0:16            Constant:
+0:16              0 (const int)
+0:16            Constant:
+0:16              1 (const int)
+0:16        subgroupShuffle ( temp 2-component vector of uint)
+0:16          vector swizzle ( temp 2-component vector of uint)
+0:16            u: direct index for structure ( temp 4-component vector of uint)
+0:16              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:16                  Constant:
+0:16                    0 (const uint)
+0:16                direct index ( temp uint)
+0:16                  'dti' ( in 3-component vector of uint)
+0:16                  Constant:
+0:16                    0 (const int)
+0:16              Constant:
+0:16                0 (const int)
+0:16            Sequence
+0:16              Constant:
+0:16                0 (const int)
+0:16              Constant:
+0:16                1 (const int)
+0:16          Constant:
+0:16            13 (const uint)
+0:17      move second child to first child ( temp 3-component vector of uint)
+0:17        vector swizzle ( temp 3-component vector of uint)
+0:17          u: direct index for structure ( temp 4-component vector of uint)
+0:17            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:17                Constant:
+0:17                  0 (const uint)
+0:17              direct index ( temp uint)
+0:17                'dti' ( in 3-component vector of uint)
+0:17                Constant:
+0:17                  0 (const int)
+0:17            Constant:
+0:17              0 (const int)
+0:17          Sequence
+0:17            Constant:
+0:17              0 (const int)
+0:17            Constant:
+0:17              1 (const int)
+0:17            Constant:
+0:17              2 (const int)
+0:17        subgroupShuffle ( temp 3-component vector of uint)
+0:17          vector swizzle ( temp 3-component vector of uint)
+0:17            u: direct index for structure ( temp 4-component vector of uint)
+0:17              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:17                  Constant:
+0:17                    0 (const uint)
+0:17                direct index ( temp uint)
+0:17                  'dti' ( in 3-component vector of uint)
+0:17                  Constant:
+0:17                    0 (const int)
+0:17              Constant:
+0:17                0 (const int)
+0:17            Sequence
+0:17              Constant:
+0:17                0 (const int)
+0:17              Constant:
+0:17                1 (const int)
+0:17              Constant:
+0:17                2 (const int)
+0:17          Constant:
+0:17            13 (const uint)
+0:19      move second child to first child ( temp 4-component vector of int)
+0:19        i: direct index for structure ( temp 4-component vector of int)
+0:19          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:19              Constant:
+0:19                0 (const uint)
+0:19            direct index ( temp uint)
+0:19              'dti' ( in 3-component vector of uint)
+0:19              Constant:
+0:19                0 (const int)
+0:19          Constant:
+0:19            1 (const int)
+0:19        subgroupShuffle ( temp 4-component vector of int)
+0:19          i: direct index for structure ( temp 4-component vector of int)
+0:19            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:19                Constant:
+0:19                  0 (const uint)
+0:19              direct index ( temp uint)
+0:19                'dti' ( in 3-component vector of uint)
+0:19                Constant:
+0:19                  0 (const int)
+0:19            Constant:
+0:19              1 (const int)
+0:19          Constant:
+0:19            13 (const uint)
+0:20      move second child to first child ( temp int)
+0:20        direct index ( temp int)
+0:20          i: direct index for structure ( temp 4-component vector of int)
+0:20            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:20                Constant:
+0:20                  0 (const uint)
+0:20              direct index ( temp uint)
+0:20                'dti' ( in 3-component vector of uint)
+0:20                Constant:
+0:20                  0 (const int)
+0:20            Constant:
+0:20              1 (const int)
+0:20          Constant:
+0:20            0 (const int)
+0:20        subgroupShuffle ( temp int)
+0:20          direct index ( temp int)
+0:20            i: direct index for structure ( temp 4-component vector of int)
+0:20              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:20                  Constant:
+0:20                    0 (const uint)
+0:20                direct index ( temp uint)
+0:20                  'dti' ( in 3-component vector of uint)
+0:20                  Constant:
+0:20                    0 (const int)
+0:20              Constant:
+0:20                1 (const int)
+0:20            Constant:
+0:20              0 (const int)
+0:20          Constant:
+0:20            13 (const uint)
+0:21      move second child to first child ( temp 2-component vector of int)
+0:21        vector swizzle ( temp 2-component vector of int)
+0:21          i: direct index for structure ( temp 4-component vector of int)
+0:21            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:21                Constant:
+0:21                  0 (const uint)
+0:21              direct index ( temp uint)
+0:21                'dti' ( in 3-component vector of uint)
+0:21                Constant:
+0:21                  0 (const int)
+0:21            Constant:
+0:21              1 (const int)
+0:21          Sequence
+0:21            Constant:
+0:21              0 (const int)
+0:21            Constant:
+0:21              1 (const int)
+0:21        subgroupShuffle ( temp 2-component vector of int)
+0:21          vector swizzle ( temp 2-component vector of int)
+0:21            i: direct index for structure ( temp 4-component vector of int)
+0:21              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:21                  Constant:
+0:21                    0 (const uint)
+0:21                direct index ( temp uint)
+0:21                  'dti' ( in 3-component vector of uint)
+0:21                  Constant:
+0:21                    0 (const int)
+0:21              Constant:
+0:21                1 (const int)
+0:21            Sequence
+0:21              Constant:
+0:21                0 (const int)
+0:21              Constant:
+0:21                1 (const int)
+0:21          Constant:
+0:21            13 (const uint)
+0:22      move second child to first child ( temp 3-component vector of int)
+0:22        vector swizzle ( temp 3-component vector of int)
+0:22          i: direct index for structure ( temp 4-component vector of int)
+0:22            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:22                Constant:
+0:22                  0 (const uint)
+0:22              direct index ( temp uint)
+0:22                'dti' ( in 3-component vector of uint)
+0:22                Constant:
+0:22                  0 (const int)
+0:22            Constant:
+0:22              1 (const int)
+0:22          Sequence
+0:22            Constant:
+0:22              0 (const int)
+0:22            Constant:
+0:22              1 (const int)
+0:22            Constant:
+0:22              2 (const int)
+0:22        subgroupShuffle ( temp 3-component vector of int)
+0:22          vector swizzle ( temp 3-component vector of int)
+0:22            i: direct index for structure ( temp 4-component vector of int)
+0:22              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:22                  Constant:
+0:22                    0 (const uint)
+0:22                direct index ( temp uint)
+0:22                  'dti' ( in 3-component vector of uint)
+0:22                  Constant:
+0:22                    0 (const int)
+0:22              Constant:
+0:22                1 (const int)
+0:22            Sequence
+0:22              Constant:
+0:22                0 (const int)
+0:22              Constant:
+0:22                1 (const int)
+0:22              Constant:
+0:22                2 (const int)
+0:22          Constant:
+0:22            13 (const uint)
+0:24      move second child to first child ( temp 4-component vector of float)
+0:24        f: direct index for structure ( temp 4-component vector of float)
+0:24          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:24              Constant:
+0:24                0 (const uint)
+0:24            direct index ( temp uint)
+0:24              'dti' ( in 3-component vector of uint)
+0:24              Constant:
+0:24                0 (const int)
+0:24          Constant:
+0:24            2 (const int)
+0:24        subgroupShuffle ( temp 4-component vector of float)
+0:24          f: direct index for structure ( temp 4-component vector of float)
+0:24            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:24                Constant:
+0:24                  0 (const uint)
+0:24              direct index ( temp uint)
+0:24                'dti' ( in 3-component vector of uint)
+0:24                Constant:
+0:24                  0 (const int)
+0:24            Constant:
+0:24              2 (const int)
+0:24          Constant:
+0:24            13 (const uint)
+0:25      move second child to first child ( temp float)
+0:25        direct index ( temp float)
+0:25          f: direct index for structure ( temp 4-component vector of float)
+0:25            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:25                Constant:
+0:25                  0 (const uint)
+0:25              direct index ( temp uint)
+0:25                'dti' ( in 3-component vector of uint)
+0:25                Constant:
+0:25                  0 (const int)
+0:25            Constant:
+0:25              2 (const int)
+0:25          Constant:
+0:25            0 (const int)
+0:25        subgroupShuffle ( temp float)
+0:25          direct index ( temp float)
+0:25            f: direct index for structure ( temp 4-component vector of float)
+0:25              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:25                  Constant:
+0:25                    0 (const uint)
+0:25                direct index ( temp uint)
+0:25                  'dti' ( in 3-component vector of uint)
+0:25                  Constant:
+0:25                    0 (const int)
+0:25              Constant:
+0:25                2 (const int)
+0:25            Constant:
+0:25              0 (const int)
+0:25          Constant:
+0:25            13 (const uint)
+0:26      move second child to first child ( temp 2-component vector of float)
+0:26        vector swizzle ( temp 2-component vector of float)
+0:26          f: direct index for structure ( temp 4-component vector of float)
+0:26            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:26                Constant:
+0:26                  0 (const uint)
+0:26              direct index ( temp uint)
+0:26                'dti' ( in 3-component vector of uint)
+0:26                Constant:
+0:26                  0 (const int)
+0:26            Constant:
+0:26              2 (const int)
+0:26          Sequence
+0:26            Constant:
+0:26              0 (const int)
+0:26            Constant:
+0:26              1 (const int)
+0:26        subgroupShuffle ( temp 2-component vector of float)
+0:26          vector swizzle ( temp 2-component vector of float)
+0:26            f: direct index for structure ( temp 4-component vector of float)
+0:26              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:26                  Constant:
+0:26                    0 (const uint)
+0:26                direct index ( temp uint)
+0:26                  'dti' ( in 3-component vector of uint)
+0:26                  Constant:
+0:26                    0 (const int)
+0:26              Constant:
+0:26                2 (const int)
+0:26            Sequence
+0:26              Constant:
+0:26                0 (const int)
+0:26              Constant:
+0:26                1 (const int)
+0:26          Constant:
+0:26            13 (const uint)
+0:27      move second child to first child ( temp 3-component vector of float)
+0:27        vector swizzle ( temp 3-component vector of float)
+0:27          f: direct index for structure ( temp 4-component vector of float)
+0:27            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:27                Constant:
+0:27                  0 (const uint)
+0:27              direct index ( temp uint)
+0:27                'dti' ( in 3-component vector of uint)
+0:27                Constant:
+0:27                  0 (const int)
+0:27            Constant:
+0:27              2 (const int)
+0:27          Sequence
+0:27            Constant:
+0:27              0 (const int)
+0:27            Constant:
+0:27              1 (const int)
+0:27            Constant:
+0:27              2 (const int)
+0:27        subgroupShuffle ( temp 3-component vector of float)
+0:27          vector swizzle ( temp 3-component vector of float)
+0:27            f: direct index for structure ( temp 4-component vector of float)
+0:27              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:27                  Constant:
+0:27                    0 (const uint)
+0:27                direct index ( temp uint)
+0:27                  'dti' ( in 3-component vector of uint)
+0:27                  Constant:
+0:27                    0 (const int)
+0:27              Constant:
+0:27                2 (const int)
+0:27            Sequence
+0:27              Constant:
+0:27                0 (const int)
+0:27              Constant:
+0:27                1 (const int)
+0:27              Constant:
+0:27                2 (const int)
+0:27          Constant:
+0:27            13 (const uint)
+0:29      move second child to first child ( temp 4-component vector of double)
+0:29        d: direct index for structure ( temp 4-component vector of double)
+0:29          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:29              Constant:
+0:29                0 (const uint)
+0:29            direct index ( temp uint)
+0:29              'dti' ( in 3-component vector of uint)
+0:29              Constant:
+0:29                0 (const int)
+0:29          Constant:
+0:29            3 (const int)
+0:29        subgroupBroadcastFirst ( temp 4-component vector of double)
+0:29          d: direct index for structure ( temp 4-component vector of double)
+0:29            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:29                Constant:
+0:29                  0 (const uint)
+0:29              direct index ( temp uint)
+0:29                'dti' ( in 3-component vector of uint)
+0:29                Constant:
+0:29                  0 (const int)
+0:29            Constant:
+0:29              3 (const int)
+0:30      move second child to first child ( temp double)
+0:30        direct index ( temp double)
+0:30          d: direct index for structure ( temp 4-component vector of double)
+0:30            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:30                Constant:
+0:30                  0 (const uint)
+0:30              direct index ( temp uint)
+0:30                'dti' ( in 3-component vector of uint)
+0:30                Constant:
+0:30                  0 (const int)
+0:30            Constant:
+0:30              3 (const int)
+0:30          Constant:
+0:30            0 (const int)
+0:30        subgroupBroadcastFirst ( temp double)
+0:30          direct index ( temp double)
+0:30            d: direct index for structure ( temp 4-component vector of double)
+0:30              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:30                  Constant:
+0:30                    0 (const uint)
+0:30                direct index ( temp uint)
+0:30                  'dti' ( in 3-component vector of uint)
+0:30                  Constant:
+0:30                    0 (const int)
+0:30              Constant:
+0:30                3 (const int)
+0:30            Constant:
+0:30              0 (const int)
+0:31      move second child to first child ( temp 2-component vector of double)
+0:31        vector swizzle ( temp 2-component vector of double)
+0:31          d: direct index for structure ( temp 4-component vector of double)
+0:31            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:31                Constant:
+0:31                  0 (const uint)
+0:31              direct index ( temp uint)
+0:31                'dti' ( in 3-component vector of uint)
+0:31                Constant:
+0:31                  0 (const int)
+0:31            Constant:
+0:31              3 (const int)
+0:31          Sequence
+0:31            Constant:
+0:31              0 (const int)
+0:31            Constant:
+0:31              1 (const int)
+0:31        subgroupBroadcastFirst ( temp 2-component vector of double)
+0:31          vector swizzle ( temp 2-component vector of double)
+0:31            d: direct index for structure ( temp 4-component vector of double)
+0:31              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:31                  Constant:
+0:31                    0 (const uint)
+0:31                direct index ( temp uint)
+0:31                  'dti' ( in 3-component vector of uint)
+0:31                  Constant:
+0:31                    0 (const int)
+0:31              Constant:
+0:31                3 (const int)
+0:31            Sequence
+0:31              Constant:
+0:31                0 (const int)
+0:31              Constant:
+0:31                1 (const int)
+0:32      move second child to first child ( temp 3-component vector of double)
+0:32        vector swizzle ( temp 3-component vector of double)
+0:32          d: direct index for structure ( temp 4-component vector of double)
+0:32            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:32                Constant:
+0:32                  0 (const uint)
+0:32              direct index ( temp uint)
+0:32                'dti' ( in 3-component vector of uint)
+0:32                Constant:
+0:32                  0 (const int)
+0:32            Constant:
+0:32              3 (const int)
+0:32          Sequence
+0:32            Constant:
+0:32              0 (const int)
+0:32            Constant:
+0:32              1 (const int)
+0:32            Constant:
+0:32              2 (const int)
+0:32        subgroupBroadcastFirst ( temp 3-component vector of double)
+0:32          vector swizzle ( temp 3-component vector of double)
+0:32            d: direct index for structure ( temp 4-component vector of double)
+0:32              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:32                  Constant:
+0:32                    0 (const uint)
+0:32                direct index ( temp uint)
+0:32                  'dti' ( in 3-component vector of uint)
+0:32                  Constant:
+0:32                    0 (const int)
+0:32              Constant:
+0:32                3 (const int)
+0:32            Sequence
+0:32              Constant:
+0:32                0 (const int)
+0:32              Constant:
+0:32                1 (const int)
+0:32              Constant:
+0:32                2 (const int)
+0:34      move second child to first child ( temp 4-component vector of uint)
+0:34        u: direct index for structure ( temp 4-component vector of uint)
+0:34          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:34              Constant:
+0:34                0 (const uint)
+0:34            direct index ( temp uint)
+0:34              'dti' ( in 3-component vector of uint)
+0:34              Constant:
+0:34                0 (const int)
+0:34          Constant:
+0:34            0 (const int)
+0:34        subgroupBroadcastFirst ( temp 4-component vector of uint)
+0:34          u: direct index for structure ( temp 4-component vector of uint)
+0:34            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:34                Constant:
+0:34                  0 (const uint)
+0:34              direct index ( temp uint)
+0:34                'dti' ( in 3-component vector of uint)
+0:34                Constant:
+0:34                  0 (const int)
+0:34            Constant:
+0:34              0 (const int)
+0:35      move second child to first child ( temp uint)
+0:35        direct index ( temp uint)
+0:35          u: direct index for structure ( temp 4-component vector of uint)
+0:35            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:35                Constant:
+0:35                  0 (const uint)
+0:35              direct index ( temp uint)
+0:35                'dti' ( in 3-component vector of uint)
+0:35                Constant:
+0:35                  0 (const int)
+0:35            Constant:
+0:35              0 (const int)
+0:35          Constant:
+0:35            0 (const int)
+0:35        subgroupBroadcastFirst ( temp uint)
+0:35          direct index ( temp uint)
+0:35            u: direct index for structure ( temp 4-component vector of uint)
+0:35              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:35                  Constant:
+0:35                    0 (const uint)
+0:35                direct index ( temp uint)
+0:35                  'dti' ( in 3-component vector of uint)
+0:35                  Constant:
+0:35                    0 (const int)
+0:35              Constant:
+0:35                0 (const int)
+0:35            Constant:
+0:35              0 (const int)
+0:36      move second child to first child ( temp 2-component vector of uint)
+0:36        vector swizzle ( temp 2-component vector of uint)
+0:36          u: direct index for structure ( temp 4-component vector of uint)
+0:36            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:36                Constant:
+0:36                  0 (const uint)
+0:36              direct index ( temp uint)
+0:36                'dti' ( in 3-component vector of uint)
+0:36                Constant:
+0:36                  0 (const int)
+0:36            Constant:
+0:36              0 (const int)
+0:36          Sequence
+0:36            Constant:
+0:36              0 (const int)
+0:36            Constant:
+0:36              1 (const int)
+0:36        subgroupBroadcastFirst ( temp 2-component vector of uint)
+0:36          vector swizzle ( temp 2-component vector of uint)
+0:36            u: direct index for structure ( temp 4-component vector of uint)
+0:36              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:36                  Constant:
+0:36                    0 (const uint)
+0:36                direct index ( temp uint)
+0:36                  'dti' ( in 3-component vector of uint)
+0:36                  Constant:
+0:36                    0 (const int)
+0:36              Constant:
+0:36                0 (const int)
+0:36            Sequence
+0:36              Constant:
+0:36                0 (const int)
+0:36              Constant:
+0:36                1 (const int)
+0:37      move second child to first child ( temp 3-component vector of uint)
+0:37        vector swizzle ( temp 3-component vector of uint)
+0:37          u: direct index for structure ( temp 4-component vector of uint)
+0:37            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:37                Constant:
+0:37                  0 (const uint)
+0:37              direct index ( temp uint)
+0:37                'dti' ( in 3-component vector of uint)
+0:37                Constant:
+0:37                  0 (const int)
+0:37            Constant:
+0:37              0 (const int)
+0:37          Sequence
+0:37            Constant:
+0:37              0 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:37            Constant:
+0:37              2 (const int)
+0:37        subgroupBroadcastFirst ( temp 3-component vector of uint)
+0:37          vector swizzle ( temp 3-component vector of uint)
+0:37            u: direct index for structure ( temp 4-component vector of uint)
+0:37              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:37                  Constant:
+0:37                    0 (const uint)
+0:37                direct index ( temp uint)
+0:37                  'dti' ( in 3-component vector of uint)
+0:37                  Constant:
+0:37                    0 (const int)
+0:37              Constant:
+0:37                0 (const int)
+0:37            Sequence
+0:37              Constant:
+0:37                0 (const int)
+0:37              Constant:
+0:37                1 (const int)
+0:37              Constant:
+0:37                2 (const int)
+0:39      move second child to first child ( temp 4-component vector of int)
+0:39        i: direct index for structure ( temp 4-component vector of int)
+0:39          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:39              Constant:
+0:39                0 (const uint)
+0:39            direct index ( temp uint)
+0:39              'dti' ( in 3-component vector of uint)
+0:39              Constant:
+0:39                0 (const int)
+0:39          Constant:
+0:39            1 (const int)
+0:39        subgroupBroadcastFirst ( temp 4-component vector of int)
+0:39          i: direct index for structure ( temp 4-component vector of int)
+0:39            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:39                Constant:
+0:39                  0 (const uint)
+0:39              direct index ( temp uint)
+0:39                'dti' ( in 3-component vector of uint)
+0:39                Constant:
+0:39                  0 (const int)
+0:39            Constant:
+0:39              1 (const int)
+0:40      move second child to first child ( temp int)
+0:40        direct index ( temp int)
+0:40          i: direct index for structure ( temp 4-component vector of int)
+0:40            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:40                Constant:
+0:40                  0 (const uint)
+0:40              direct index ( temp uint)
+0:40                'dti' ( in 3-component vector of uint)
+0:40                Constant:
+0:40                  0 (const int)
+0:40            Constant:
+0:40              1 (const int)
+0:40          Constant:
+0:40            0 (const int)
+0:40        subgroupBroadcastFirst ( temp int)
+0:40          direct index ( temp int)
+0:40            i: direct index for structure ( temp 4-component vector of int)
+0:40              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:40                  Constant:
+0:40                    0 (const uint)
+0:40                direct index ( temp uint)
+0:40                  'dti' ( in 3-component vector of uint)
+0:40                  Constant:
+0:40                    0 (const int)
+0:40              Constant:
+0:40                1 (const int)
+0:40            Constant:
+0:40              0 (const int)
+0:41      move second child to first child ( temp 2-component vector of int)
+0:41        vector swizzle ( temp 2-component vector of int)
+0:41          i: direct index for structure ( temp 4-component vector of int)
+0:41            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:41                Constant:
+0:41                  0 (const uint)
+0:41              direct index ( temp uint)
+0:41                'dti' ( in 3-component vector of uint)
+0:41                Constant:
+0:41                  0 (const int)
+0:41            Constant:
+0:41              1 (const int)
+0:41          Sequence
+0:41            Constant:
+0:41              0 (const int)
+0:41            Constant:
+0:41              1 (const int)
+0:41        subgroupBroadcastFirst ( temp 2-component vector of int)
+0:41          vector swizzle ( temp 2-component vector of int)
+0:41            i: direct index for structure ( temp 4-component vector of int)
+0:41              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:41                  Constant:
+0:41                    0 (const uint)
+0:41                direct index ( temp uint)
+0:41                  'dti' ( in 3-component vector of uint)
+0:41                  Constant:
+0:41                    0 (const int)
+0:41              Constant:
+0:41                1 (const int)
+0:41            Sequence
+0:41              Constant:
+0:41                0 (const int)
+0:41              Constant:
+0:41                1 (const int)
+0:42      move second child to first child ( temp 3-component vector of int)
+0:42        vector swizzle ( temp 3-component vector of int)
+0:42          i: direct index for structure ( temp 4-component vector of int)
+0:42            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:42                Constant:
+0:42                  0 (const uint)
+0:42              direct index ( temp uint)
+0:42                'dti' ( in 3-component vector of uint)
+0:42                Constant:
+0:42                  0 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:42          Sequence
+0:42            Constant:
+0:42              0 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:42            Constant:
+0:42              2 (const int)
+0:42        subgroupBroadcastFirst ( temp 3-component vector of int)
+0:42          vector swizzle ( temp 3-component vector of int)
+0:42            i: direct index for structure ( temp 4-component vector of int)
+0:42              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:42                  Constant:
+0:42                    0 (const uint)
+0:42                direct index ( temp uint)
+0:42                  'dti' ( in 3-component vector of uint)
+0:42                  Constant:
+0:42                    0 (const int)
+0:42              Constant:
+0:42                1 (const int)
+0:42            Sequence
+0:42              Constant:
+0:42                0 (const int)
+0:42              Constant:
+0:42                1 (const int)
+0:42              Constant:
+0:42                2 (const int)
+0:44      move second child to first child ( temp 4-component vector of float)
+0:44        f: direct index for structure ( temp 4-component vector of float)
+0:44          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:44              Constant:
+0:44                0 (const uint)
+0:44            direct index ( temp uint)
+0:44              'dti' ( in 3-component vector of uint)
+0:44              Constant:
+0:44                0 (const int)
+0:44          Constant:
+0:44            2 (const int)
+0:44        subgroupBroadcastFirst ( temp 4-component vector of float)
+0:44          f: direct index for structure ( temp 4-component vector of float)
+0:44            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:44                Constant:
+0:44                  0 (const uint)
+0:44              direct index ( temp uint)
+0:44                'dti' ( in 3-component vector of uint)
+0:44                Constant:
+0:44                  0 (const int)
+0:44            Constant:
+0:44              2 (const int)
+0:45      move second child to first child ( temp float)
+0:45        direct index ( temp float)
+0:45          f: direct index for structure ( temp 4-component vector of float)
+0:45            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:45                Constant:
+0:45                  0 (const uint)
+0:45              direct index ( temp uint)
+0:45                'dti' ( in 3-component vector of uint)
+0:45                Constant:
+0:45                  0 (const int)
+0:45            Constant:
+0:45              2 (const int)
+0:45          Constant:
+0:45            0 (const int)
+0:45        subgroupBroadcastFirst ( temp float)
+0:45          direct index ( temp float)
+0:45            f: direct index for structure ( temp 4-component vector of float)
+0:45              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:45                  Constant:
+0:45                    0 (const uint)
+0:45                direct index ( temp uint)
+0:45                  'dti' ( in 3-component vector of uint)
+0:45                  Constant:
+0:45                    0 (const int)
+0:45              Constant:
+0:45                2 (const int)
+0:45            Constant:
+0:45              0 (const int)
+0:46      move second child to first child ( temp 2-component vector of float)
+0:46        vector swizzle ( temp 2-component vector of float)
+0:46          f: direct index for structure ( temp 4-component vector of float)
+0:46            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:46                Constant:
+0:46                  0 (const uint)
+0:46              direct index ( temp uint)
+0:46                'dti' ( in 3-component vector of uint)
+0:46                Constant:
+0:46                  0 (const int)
+0:46            Constant:
+0:46              2 (const int)
+0:46          Sequence
+0:46            Constant:
+0:46              0 (const int)
+0:46            Constant:
+0:46              1 (const int)
+0:46        subgroupBroadcastFirst ( temp 2-component vector of float)
+0:46          vector swizzle ( temp 2-component vector of float)
+0:46            f: direct index for structure ( temp 4-component vector of float)
+0:46              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:46                  Constant:
+0:46                    0 (const uint)
+0:46                direct index ( temp uint)
+0:46                  'dti' ( in 3-component vector of uint)
+0:46                  Constant:
+0:46                    0 (const int)
+0:46              Constant:
+0:46                2 (const int)
+0:46            Sequence
+0:46              Constant:
+0:46                0 (const int)
+0:46              Constant:
+0:46                1 (const int)
+0:47      move second child to first child ( temp 3-component vector of float)
+0:47        vector swizzle ( temp 3-component vector of float)
+0:47          f: direct index for structure ( temp 4-component vector of float)
+0:47            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:47                Constant:
+0:47                  0 (const uint)
+0:47              direct index ( temp uint)
+0:47                'dti' ( in 3-component vector of uint)
+0:47                Constant:
+0:47                  0 (const int)
+0:47            Constant:
+0:47              2 (const int)
+0:47          Sequence
+0:47            Constant:
+0:47              0 (const int)
+0:47            Constant:
+0:47              1 (const int)
+0:47            Constant:
+0:47              2 (const int)
+0:47        subgroupBroadcastFirst ( temp 3-component vector of float)
+0:47          vector swizzle ( temp 3-component vector of float)
+0:47            f: direct index for structure ( temp 4-component vector of float)
+0:47              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:47                  Constant:
+0:47                    0 (const uint)
+0:47                direct index ( temp uint)
+0:47                  'dti' ( in 3-component vector of uint)
+0:47                  Constant:
+0:47                    0 (const int)
+0:47              Constant:
+0:47                2 (const int)
+0:47            Sequence
+0:47              Constant:
+0:47                0 (const int)
+0:47              Constant:
+0:47                1 (const int)
+0:47              Constant:
+0:47                2 (const int)
+0:49      move second child to first child ( temp 4-component vector of double)
+0:49        d: direct index for structure ( temp 4-component vector of double)
+0:49          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:49              Constant:
+0:49                0 (const uint)
+0:49            direct index ( temp uint)
+0:49              'dti' ( in 3-component vector of uint)
+0:49              Constant:
+0:49                0 (const int)
+0:49          Constant:
+0:49            3 (const int)
+0:49        subgroupBroadcastFirst ( temp 4-component vector of double)
+0:49          d: direct index for structure ( temp 4-component vector of double)
+0:49            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:49                Constant:
+0:49                  0 (const uint)
+0:49              direct index ( temp uint)
+0:49                'dti' ( in 3-component vector of uint)
+0:49                Constant:
+0:49                  0 (const int)
+0:49            Constant:
+0:49              3 (const int)
+0:50      move second child to first child ( temp double)
+0:50        direct index ( temp double)
+0:50          d: direct index for structure ( temp 4-component vector of double)
+0:50            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:50                Constant:
+0:50                  0 (const uint)
+0:50              direct index ( temp uint)
+0:50                'dti' ( in 3-component vector of uint)
+0:50                Constant:
+0:50                  0 (const int)
+0:50            Constant:
+0:50              3 (const int)
+0:50          Constant:
+0:50            0 (const int)
+0:50        subgroupBroadcastFirst ( temp double)
+0:50          direct index ( temp double)
+0:50            d: direct index for structure ( temp 4-component vector of double)
+0:50              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:50                  Constant:
+0:50                    0 (const uint)
+0:50                direct index ( temp uint)
+0:50                  'dti' ( in 3-component vector of uint)
+0:50                  Constant:
+0:50                    0 (const int)
+0:50              Constant:
+0:50                3 (const int)
+0:50            Constant:
+0:50              0 (const int)
+0:51      move second child to first child ( temp 2-component vector of double)
+0:51        vector swizzle ( temp 2-component vector of double)
+0:51          d: direct index for structure ( temp 4-component vector of double)
+0:51            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:51                Constant:
+0:51                  0 (const uint)
+0:51              direct index ( temp uint)
+0:51                'dti' ( in 3-component vector of uint)
+0:51                Constant:
+0:51                  0 (const int)
+0:51            Constant:
+0:51              3 (const int)
+0:51          Sequence
+0:51            Constant:
+0:51              0 (const int)
+0:51            Constant:
+0:51              1 (const int)
+0:51        subgroupBroadcastFirst ( temp 2-component vector of double)
+0:51          vector swizzle ( temp 2-component vector of double)
+0:51            d: direct index for structure ( temp 4-component vector of double)
+0:51              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:51                  Constant:
+0:51                    0 (const uint)
+0:51                direct index ( temp uint)
+0:51                  'dti' ( in 3-component vector of uint)
+0:51                  Constant:
+0:51                    0 (const int)
+0:51              Constant:
+0:51                3 (const int)
+0:51            Sequence
+0:51              Constant:
+0:51                0 (const int)
+0:51              Constant:
+0:51                1 (const int)
+0:52      move second child to first child ( temp 3-component vector of double)
+0:52        vector swizzle ( temp 3-component vector of double)
+0:52          d: direct index for structure ( temp 4-component vector of double)
+0:52            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:52                Constant:
+0:52                  0 (const uint)
+0:52              direct index ( temp uint)
+0:52                'dti' ( in 3-component vector of uint)
+0:52                Constant:
+0:52                  0 (const int)
+0:52            Constant:
+0:52              3 (const int)
+0:52          Sequence
+0:52            Constant:
+0:52              0 (const int)
+0:52            Constant:
+0:52              1 (const int)
+0:52            Constant:
+0:52              2 (const int)
+0:52        subgroupBroadcastFirst ( temp 3-component vector of double)
+0:52          vector swizzle ( temp 3-component vector of double)
+0:52            d: direct index for structure ( temp 4-component vector of double)
+0:52              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:52                  Constant:
+0:52                    0 (const uint)
+0:52                direct index ( temp uint)
+0:52                  'dti' ( in 3-component vector of uint)
+0:52                  Constant:
+0:52                    0 (const int)
+0:52              Constant:
+0:52                3 (const int)
+0:52            Sequence
+0:52              Constant:
+0:52                0 (const int)
+0:52              Constant:
+0:52                1 (const int)
+0:52              Constant:
+0:52                2 (const int)
+0:13  Function Definition: CSMain( ( temp void)
+0:13    Function Parameters: 
+0:?     Sequence
+0:13      move second child to first child ( temp 3-component vector of uint)
+0:?         'dti' ( temp 3-component vector of uint)
+0:?         'dti' ( in 3-component vector of uint GlobalInvocationID)
+0:13      Function Call: @CSMain(vu3; ( temp void)
+0:?         'dti' ( temp 3-component vector of uint)
+0:?   Linker Objects
+0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:?     'dti' ( in 3-component vector of uint GlobalInvocationID)
+
+
+Linked compute stage:
+
+
+Shader version: 500
+local_size = (32, 16, 1)
+0:? Sequence
+0:13  Function Definition: @CSMain(vu3; ( temp void)
+0:13    Function Parameters: 
+0:13      'dti' ( in 3-component vector of uint)
+0:?     Sequence
+0:14      move second child to first child ( temp 4-component vector of uint)
+0:14        u: direct index for structure ( temp 4-component vector of uint)
+0:14          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:14              Constant:
+0:14                0 (const uint)
+0:14            direct index ( temp uint)
+0:14              'dti' ( in 3-component vector of uint)
+0:14              Constant:
+0:14                0 (const int)
+0:14          Constant:
+0:14            0 (const int)
+0:14        subgroupShuffle ( temp 4-component vector of uint)
+0:14          u: direct index for structure ( temp 4-component vector of uint)
+0:14            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:14                Constant:
+0:14                  0 (const uint)
+0:14              direct index ( temp uint)
+0:14                'dti' ( in 3-component vector of uint)
+0:14                Constant:
+0:14                  0 (const int)
+0:14            Constant:
+0:14              0 (const int)
+0:14          Constant:
+0:14            13 (const uint)
+0:15      move second child to first child ( temp uint)
+0:15        direct index ( temp uint)
+0:15          u: direct index for structure ( temp 4-component vector of uint)
+0:15            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:15                Constant:
+0:15                  0 (const uint)
+0:15              direct index ( temp uint)
+0:15                'dti' ( in 3-component vector of uint)
+0:15                Constant:
+0:15                  0 (const int)
+0:15            Constant:
+0:15              0 (const int)
+0:15          Constant:
+0:15            0 (const int)
+0:15        subgroupShuffle ( temp uint)
+0:15          direct index ( temp uint)
+0:15            u: direct index for structure ( temp 4-component vector of uint)
+0:15              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:15                  Constant:
+0:15                    0 (const uint)
+0:15                direct index ( temp uint)
+0:15                  'dti' ( in 3-component vector of uint)
+0:15                  Constant:
+0:15                    0 (const int)
+0:15              Constant:
+0:15                0 (const int)
+0:15            Constant:
+0:15              0 (const int)
+0:15          Constant:
+0:15            13 (const uint)
+0:16      move second child to first child ( temp 2-component vector of uint)
+0:16        vector swizzle ( temp 2-component vector of uint)
+0:16          u: direct index for structure ( temp 4-component vector of uint)
+0:16            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:16                Constant:
+0:16                  0 (const uint)
+0:16              direct index ( temp uint)
+0:16                'dti' ( in 3-component vector of uint)
+0:16                Constant:
+0:16                  0 (const int)
+0:16            Constant:
+0:16              0 (const int)
+0:16          Sequence
+0:16            Constant:
+0:16              0 (const int)
+0:16            Constant:
+0:16              1 (const int)
+0:16        subgroupShuffle ( temp 2-component vector of uint)
+0:16          vector swizzle ( temp 2-component vector of uint)
+0:16            u: direct index for structure ( temp 4-component vector of uint)
+0:16              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:16                  Constant:
+0:16                    0 (const uint)
+0:16                direct index ( temp uint)
+0:16                  'dti' ( in 3-component vector of uint)
+0:16                  Constant:
+0:16                    0 (const int)
+0:16              Constant:
+0:16                0 (const int)
+0:16            Sequence
+0:16              Constant:
+0:16                0 (const int)
+0:16              Constant:
+0:16                1 (const int)
+0:16          Constant:
+0:16            13 (const uint)
+0:17      move second child to first child ( temp 3-component vector of uint)
+0:17        vector swizzle ( temp 3-component vector of uint)
+0:17          u: direct index for structure ( temp 4-component vector of uint)
+0:17            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:17                Constant:
+0:17                  0 (const uint)
+0:17              direct index ( temp uint)
+0:17                'dti' ( in 3-component vector of uint)
+0:17                Constant:
+0:17                  0 (const int)
+0:17            Constant:
+0:17              0 (const int)
+0:17          Sequence
+0:17            Constant:
+0:17              0 (const int)
+0:17            Constant:
+0:17              1 (const int)
+0:17            Constant:
+0:17              2 (const int)
+0:17        subgroupShuffle ( temp 3-component vector of uint)
+0:17          vector swizzle ( temp 3-component vector of uint)
+0:17            u: direct index for structure ( temp 4-component vector of uint)
+0:17              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:17                  Constant:
+0:17                    0 (const uint)
+0:17                direct index ( temp uint)
+0:17                  'dti' ( in 3-component vector of uint)
+0:17                  Constant:
+0:17                    0 (const int)
+0:17              Constant:
+0:17                0 (const int)
+0:17            Sequence
+0:17              Constant:
+0:17                0 (const int)
+0:17              Constant:
+0:17                1 (const int)
+0:17              Constant:
+0:17                2 (const int)
+0:17          Constant:
+0:17            13 (const uint)
+0:19      move second child to first child ( temp 4-component vector of int)
+0:19        i: direct index for structure ( temp 4-component vector of int)
+0:19          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:19              Constant:
+0:19                0 (const uint)
+0:19            direct index ( temp uint)
+0:19              'dti' ( in 3-component vector of uint)
+0:19              Constant:
+0:19                0 (const int)
+0:19          Constant:
+0:19            1 (const int)
+0:19        subgroupShuffle ( temp 4-component vector of int)
+0:19          i: direct index for structure ( temp 4-component vector of int)
+0:19            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:19                Constant:
+0:19                  0 (const uint)
+0:19              direct index ( temp uint)
+0:19                'dti' ( in 3-component vector of uint)
+0:19                Constant:
+0:19                  0 (const int)
+0:19            Constant:
+0:19              1 (const int)
+0:19          Constant:
+0:19            13 (const uint)
+0:20      move second child to first child ( temp int)
+0:20        direct index ( temp int)
+0:20          i: direct index for structure ( temp 4-component vector of int)
+0:20            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:20                Constant:
+0:20                  0 (const uint)
+0:20              direct index ( temp uint)
+0:20                'dti' ( in 3-component vector of uint)
+0:20                Constant:
+0:20                  0 (const int)
+0:20            Constant:
+0:20              1 (const int)
+0:20          Constant:
+0:20            0 (const int)
+0:20        subgroupShuffle ( temp int)
+0:20          direct index ( temp int)
+0:20            i: direct index for structure ( temp 4-component vector of int)
+0:20              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:20                  Constant:
+0:20                    0 (const uint)
+0:20                direct index ( temp uint)
+0:20                  'dti' ( in 3-component vector of uint)
+0:20                  Constant:
+0:20                    0 (const int)
+0:20              Constant:
+0:20                1 (const int)
+0:20            Constant:
+0:20              0 (const int)
+0:20          Constant:
+0:20            13 (const uint)
+0:21      move second child to first child ( temp 2-component vector of int)
+0:21        vector swizzle ( temp 2-component vector of int)
+0:21          i: direct index for structure ( temp 4-component vector of int)
+0:21            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:21                Constant:
+0:21                  0 (const uint)
+0:21              direct index ( temp uint)
+0:21                'dti' ( in 3-component vector of uint)
+0:21                Constant:
+0:21                  0 (const int)
+0:21            Constant:
+0:21              1 (const int)
+0:21          Sequence
+0:21            Constant:
+0:21              0 (const int)
+0:21            Constant:
+0:21              1 (const int)
+0:21        subgroupShuffle ( temp 2-component vector of int)
+0:21          vector swizzle ( temp 2-component vector of int)
+0:21            i: direct index for structure ( temp 4-component vector of int)
+0:21              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:21                  Constant:
+0:21                    0 (const uint)
+0:21                direct index ( temp uint)
+0:21                  'dti' ( in 3-component vector of uint)
+0:21                  Constant:
+0:21                    0 (const int)
+0:21              Constant:
+0:21                1 (const int)
+0:21            Sequence
+0:21              Constant:
+0:21                0 (const int)
+0:21              Constant:
+0:21                1 (const int)
+0:21          Constant:
+0:21            13 (const uint)
+0:22      move second child to first child ( temp 3-component vector of int)
+0:22        vector swizzle ( temp 3-component vector of int)
+0:22          i: direct index for structure ( temp 4-component vector of int)
+0:22            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:22                Constant:
+0:22                  0 (const uint)
+0:22              direct index ( temp uint)
+0:22                'dti' ( in 3-component vector of uint)
+0:22                Constant:
+0:22                  0 (const int)
+0:22            Constant:
+0:22              1 (const int)
+0:22          Sequence
+0:22            Constant:
+0:22              0 (const int)
+0:22            Constant:
+0:22              1 (const int)
+0:22            Constant:
+0:22              2 (const int)
+0:22        subgroupShuffle ( temp 3-component vector of int)
+0:22          vector swizzle ( temp 3-component vector of int)
+0:22            i: direct index for structure ( temp 4-component vector of int)
+0:22              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:22                  Constant:
+0:22                    0 (const uint)
+0:22                direct index ( temp uint)
+0:22                  'dti' ( in 3-component vector of uint)
+0:22                  Constant:
+0:22                    0 (const int)
+0:22              Constant:
+0:22                1 (const int)
+0:22            Sequence
+0:22              Constant:
+0:22                0 (const int)
+0:22              Constant:
+0:22                1 (const int)
+0:22              Constant:
+0:22                2 (const int)
+0:22          Constant:
+0:22            13 (const uint)
+0:24      move second child to first child ( temp 4-component vector of float)
+0:24        f: direct index for structure ( temp 4-component vector of float)
+0:24          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:24              Constant:
+0:24                0 (const uint)
+0:24            direct index ( temp uint)
+0:24              'dti' ( in 3-component vector of uint)
+0:24              Constant:
+0:24                0 (const int)
+0:24          Constant:
+0:24            2 (const int)
+0:24        subgroupShuffle ( temp 4-component vector of float)
+0:24          f: direct index for structure ( temp 4-component vector of float)
+0:24            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:24                Constant:
+0:24                  0 (const uint)
+0:24              direct index ( temp uint)
+0:24                'dti' ( in 3-component vector of uint)
+0:24                Constant:
+0:24                  0 (const int)
+0:24            Constant:
+0:24              2 (const int)
+0:24          Constant:
+0:24            13 (const uint)
+0:25      move second child to first child ( temp float)
+0:25        direct index ( temp float)
+0:25          f: direct index for structure ( temp 4-component vector of float)
+0:25            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:25                Constant:
+0:25                  0 (const uint)
+0:25              direct index ( temp uint)
+0:25                'dti' ( in 3-component vector of uint)
+0:25                Constant:
+0:25                  0 (const int)
+0:25            Constant:
+0:25              2 (const int)
+0:25          Constant:
+0:25            0 (const int)
+0:25        subgroupShuffle ( temp float)
+0:25          direct index ( temp float)
+0:25            f: direct index for structure ( temp 4-component vector of float)
+0:25              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:25                  Constant:
+0:25                    0 (const uint)
+0:25                direct index ( temp uint)
+0:25                  'dti' ( in 3-component vector of uint)
+0:25                  Constant:
+0:25                    0 (const int)
+0:25              Constant:
+0:25                2 (const int)
+0:25            Constant:
+0:25              0 (const int)
+0:25          Constant:
+0:25            13 (const uint)
+0:26      move second child to first child ( temp 2-component vector of float)
+0:26        vector swizzle ( temp 2-component vector of float)
+0:26          f: direct index for structure ( temp 4-component vector of float)
+0:26            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:26                Constant:
+0:26                  0 (const uint)
+0:26              direct index ( temp uint)
+0:26                'dti' ( in 3-component vector of uint)
+0:26                Constant:
+0:26                  0 (const int)
+0:26            Constant:
+0:26              2 (const int)
+0:26          Sequence
+0:26            Constant:
+0:26              0 (const int)
+0:26            Constant:
+0:26              1 (const int)
+0:26        subgroupShuffle ( temp 2-component vector of float)
+0:26          vector swizzle ( temp 2-component vector of float)
+0:26            f: direct index for structure ( temp 4-component vector of float)
+0:26              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:26                  Constant:
+0:26                    0 (const uint)
+0:26                direct index ( temp uint)
+0:26                  'dti' ( in 3-component vector of uint)
+0:26                  Constant:
+0:26                    0 (const int)
+0:26              Constant:
+0:26                2 (const int)
+0:26            Sequence
+0:26              Constant:
+0:26                0 (const int)
+0:26              Constant:
+0:26                1 (const int)
+0:26          Constant:
+0:26            13 (const uint)
+0:27      move second child to first child ( temp 3-component vector of float)
+0:27        vector swizzle ( temp 3-component vector of float)
+0:27          f: direct index for structure ( temp 4-component vector of float)
+0:27            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:27                Constant:
+0:27                  0 (const uint)
+0:27              direct index ( temp uint)
+0:27                'dti' ( in 3-component vector of uint)
+0:27                Constant:
+0:27                  0 (const int)
+0:27            Constant:
+0:27              2 (const int)
+0:27          Sequence
+0:27            Constant:
+0:27              0 (const int)
+0:27            Constant:
+0:27              1 (const int)
+0:27            Constant:
+0:27              2 (const int)
+0:27        subgroupShuffle ( temp 3-component vector of float)
+0:27          vector swizzle ( temp 3-component vector of float)
+0:27            f: direct index for structure ( temp 4-component vector of float)
+0:27              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:27                  Constant:
+0:27                    0 (const uint)
+0:27                direct index ( temp uint)
+0:27                  'dti' ( in 3-component vector of uint)
+0:27                  Constant:
+0:27                    0 (const int)
+0:27              Constant:
+0:27                2 (const int)
+0:27            Sequence
+0:27              Constant:
+0:27                0 (const int)
+0:27              Constant:
+0:27                1 (const int)
+0:27              Constant:
+0:27                2 (const int)
+0:27          Constant:
+0:27            13 (const uint)
+0:29      move second child to first child ( temp 4-component vector of double)
+0:29        d: direct index for structure ( temp 4-component vector of double)
+0:29          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:29              Constant:
+0:29                0 (const uint)
+0:29            direct index ( temp uint)
+0:29              'dti' ( in 3-component vector of uint)
+0:29              Constant:
+0:29                0 (const int)
+0:29          Constant:
+0:29            3 (const int)
+0:29        subgroupBroadcastFirst ( temp 4-component vector of double)
+0:29          d: direct index for structure ( temp 4-component vector of double)
+0:29            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:29                Constant:
+0:29                  0 (const uint)
+0:29              direct index ( temp uint)
+0:29                'dti' ( in 3-component vector of uint)
+0:29                Constant:
+0:29                  0 (const int)
+0:29            Constant:
+0:29              3 (const int)
+0:30      move second child to first child ( temp double)
+0:30        direct index ( temp double)
+0:30          d: direct index for structure ( temp 4-component vector of double)
+0:30            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:30                Constant:
+0:30                  0 (const uint)
+0:30              direct index ( temp uint)
+0:30                'dti' ( in 3-component vector of uint)
+0:30                Constant:
+0:30                  0 (const int)
+0:30            Constant:
+0:30              3 (const int)
+0:30          Constant:
+0:30            0 (const int)
+0:30        subgroupBroadcastFirst ( temp double)
+0:30          direct index ( temp double)
+0:30            d: direct index for structure ( temp 4-component vector of double)
+0:30              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:30                  Constant:
+0:30                    0 (const uint)
+0:30                direct index ( temp uint)
+0:30                  'dti' ( in 3-component vector of uint)
+0:30                  Constant:
+0:30                    0 (const int)
+0:30              Constant:
+0:30                3 (const int)
+0:30            Constant:
+0:30              0 (const int)
+0:31      move second child to first child ( temp 2-component vector of double)
+0:31        vector swizzle ( temp 2-component vector of double)
+0:31          d: direct index for structure ( temp 4-component vector of double)
+0:31            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:31                Constant:
+0:31                  0 (const uint)
+0:31              direct index ( temp uint)
+0:31                'dti' ( in 3-component vector of uint)
+0:31                Constant:
+0:31                  0 (const int)
+0:31            Constant:
+0:31              3 (const int)
+0:31          Sequence
+0:31            Constant:
+0:31              0 (const int)
+0:31            Constant:
+0:31              1 (const int)
+0:31        subgroupBroadcastFirst ( temp 2-component vector of double)
+0:31          vector swizzle ( temp 2-component vector of double)
+0:31            d: direct index for structure ( temp 4-component vector of double)
+0:31              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:31                  Constant:
+0:31                    0 (const uint)
+0:31                direct index ( temp uint)
+0:31                  'dti' ( in 3-component vector of uint)
+0:31                  Constant:
+0:31                    0 (const int)
+0:31              Constant:
+0:31                3 (const int)
+0:31            Sequence
+0:31              Constant:
+0:31                0 (const int)
+0:31              Constant:
+0:31                1 (const int)
+0:32      move second child to first child ( temp 3-component vector of double)
+0:32        vector swizzle ( temp 3-component vector of double)
+0:32          d: direct index for structure ( temp 4-component vector of double)
+0:32            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:32                Constant:
+0:32                  0 (const uint)
+0:32              direct index ( temp uint)
+0:32                'dti' ( in 3-component vector of uint)
+0:32                Constant:
+0:32                  0 (const int)
+0:32            Constant:
+0:32              3 (const int)
+0:32          Sequence
+0:32            Constant:
+0:32              0 (const int)
+0:32            Constant:
+0:32              1 (const int)
+0:32            Constant:
+0:32              2 (const int)
+0:32        subgroupBroadcastFirst ( temp 3-component vector of double)
+0:32          vector swizzle ( temp 3-component vector of double)
+0:32            d: direct index for structure ( temp 4-component vector of double)
+0:32              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:32                  Constant:
+0:32                    0 (const uint)
+0:32                direct index ( temp uint)
+0:32                  'dti' ( in 3-component vector of uint)
+0:32                  Constant:
+0:32                    0 (const int)
+0:32              Constant:
+0:32                3 (const int)
+0:32            Sequence
+0:32              Constant:
+0:32                0 (const int)
+0:32              Constant:
+0:32                1 (const int)
+0:32              Constant:
+0:32                2 (const int)
+0:34      move second child to first child ( temp 4-component vector of uint)
+0:34        u: direct index for structure ( temp 4-component vector of uint)
+0:34          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:34              Constant:
+0:34                0 (const uint)
+0:34            direct index ( temp uint)
+0:34              'dti' ( in 3-component vector of uint)
+0:34              Constant:
+0:34                0 (const int)
+0:34          Constant:
+0:34            0 (const int)
+0:34        subgroupBroadcastFirst ( temp 4-component vector of uint)
+0:34          u: direct index for structure ( temp 4-component vector of uint)
+0:34            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:34                Constant:
+0:34                  0 (const uint)
+0:34              direct index ( temp uint)
+0:34                'dti' ( in 3-component vector of uint)
+0:34                Constant:
+0:34                  0 (const int)
+0:34            Constant:
+0:34              0 (const int)
+0:35      move second child to first child ( temp uint)
+0:35        direct index ( temp uint)
+0:35          u: direct index for structure ( temp 4-component vector of uint)
+0:35            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:35                Constant:
+0:35                  0 (const uint)
+0:35              direct index ( temp uint)
+0:35                'dti' ( in 3-component vector of uint)
+0:35                Constant:
+0:35                  0 (const int)
+0:35            Constant:
+0:35              0 (const int)
+0:35          Constant:
+0:35            0 (const int)
+0:35        subgroupBroadcastFirst ( temp uint)
+0:35          direct index ( temp uint)
+0:35            u: direct index for structure ( temp 4-component vector of uint)
+0:35              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:35                  Constant:
+0:35                    0 (const uint)
+0:35                direct index ( temp uint)
+0:35                  'dti' ( in 3-component vector of uint)
+0:35                  Constant:
+0:35                    0 (const int)
+0:35              Constant:
+0:35                0 (const int)
+0:35            Constant:
+0:35              0 (const int)
+0:36      move second child to first child ( temp 2-component vector of uint)
+0:36        vector swizzle ( temp 2-component vector of uint)
+0:36          u: direct index for structure ( temp 4-component vector of uint)
+0:36            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:36                Constant:
+0:36                  0 (const uint)
+0:36              direct index ( temp uint)
+0:36                'dti' ( in 3-component vector of uint)
+0:36                Constant:
+0:36                  0 (const int)
+0:36            Constant:
+0:36              0 (const int)
+0:36          Sequence
+0:36            Constant:
+0:36              0 (const int)
+0:36            Constant:
+0:36              1 (const int)
+0:36        subgroupBroadcastFirst ( temp 2-component vector of uint)
+0:36          vector swizzle ( temp 2-component vector of uint)
+0:36            u: direct index for structure ( temp 4-component vector of uint)
+0:36              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:36                  Constant:
+0:36                    0 (const uint)
+0:36                direct index ( temp uint)
+0:36                  'dti' ( in 3-component vector of uint)
+0:36                  Constant:
+0:36                    0 (const int)
+0:36              Constant:
+0:36                0 (const int)
+0:36            Sequence
+0:36              Constant:
+0:36                0 (const int)
+0:36              Constant:
+0:36                1 (const int)
+0:37      move second child to first child ( temp 3-component vector of uint)
+0:37        vector swizzle ( temp 3-component vector of uint)
+0:37          u: direct index for structure ( temp 4-component vector of uint)
+0:37            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:37                Constant:
+0:37                  0 (const uint)
+0:37              direct index ( temp uint)
+0:37                'dti' ( in 3-component vector of uint)
+0:37                Constant:
+0:37                  0 (const int)
+0:37            Constant:
+0:37              0 (const int)
+0:37          Sequence
+0:37            Constant:
+0:37              0 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:37            Constant:
+0:37              2 (const int)
+0:37        subgroupBroadcastFirst ( temp 3-component vector of uint)
+0:37          vector swizzle ( temp 3-component vector of uint)
+0:37            u: direct index for structure ( temp 4-component vector of uint)
+0:37              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:37                  Constant:
+0:37                    0 (const uint)
+0:37                direct index ( temp uint)
+0:37                  'dti' ( in 3-component vector of uint)
+0:37                  Constant:
+0:37                    0 (const int)
+0:37              Constant:
+0:37                0 (const int)
+0:37            Sequence
+0:37              Constant:
+0:37                0 (const int)
+0:37              Constant:
+0:37                1 (const int)
+0:37              Constant:
+0:37                2 (const int)
+0:39      move second child to first child ( temp 4-component vector of int)
+0:39        i: direct index for structure ( temp 4-component vector of int)
+0:39          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:39              Constant:
+0:39                0 (const uint)
+0:39            direct index ( temp uint)
+0:39              'dti' ( in 3-component vector of uint)
+0:39              Constant:
+0:39                0 (const int)
+0:39          Constant:
+0:39            1 (const int)
+0:39        subgroupBroadcastFirst ( temp 4-component vector of int)
+0:39          i: direct index for structure ( temp 4-component vector of int)
+0:39            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:39                Constant:
+0:39                  0 (const uint)
+0:39              direct index ( temp uint)
+0:39                'dti' ( in 3-component vector of uint)
+0:39                Constant:
+0:39                  0 (const int)
+0:39            Constant:
+0:39              1 (const int)
+0:40      move second child to first child ( temp int)
+0:40        direct index ( temp int)
+0:40          i: direct index for structure ( temp 4-component vector of int)
+0:40            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:40                Constant:
+0:40                  0 (const uint)
+0:40              direct index ( temp uint)
+0:40                'dti' ( in 3-component vector of uint)
+0:40                Constant:
+0:40                  0 (const int)
+0:40            Constant:
+0:40              1 (const int)
+0:40          Constant:
+0:40            0 (const int)
+0:40        subgroupBroadcastFirst ( temp int)
+0:40          direct index ( temp int)
+0:40            i: direct index for structure ( temp 4-component vector of int)
+0:40              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:40                  Constant:
+0:40                    0 (const uint)
+0:40                direct index ( temp uint)
+0:40                  'dti' ( in 3-component vector of uint)
+0:40                  Constant:
+0:40                    0 (const int)
+0:40              Constant:
+0:40                1 (const int)
+0:40            Constant:
+0:40              0 (const int)
+0:41      move second child to first child ( temp 2-component vector of int)
+0:41        vector swizzle ( temp 2-component vector of int)
+0:41          i: direct index for structure ( temp 4-component vector of int)
+0:41            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:41                Constant:
+0:41                  0 (const uint)
+0:41              direct index ( temp uint)
+0:41                'dti' ( in 3-component vector of uint)
+0:41                Constant:
+0:41                  0 (const int)
+0:41            Constant:
+0:41              1 (const int)
+0:41          Sequence
+0:41            Constant:
+0:41              0 (const int)
+0:41            Constant:
+0:41              1 (const int)
+0:41        subgroupBroadcastFirst ( temp 2-component vector of int)
+0:41          vector swizzle ( temp 2-component vector of int)
+0:41            i: direct index for structure ( temp 4-component vector of int)
+0:41              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:41                  Constant:
+0:41                    0 (const uint)
+0:41                direct index ( temp uint)
+0:41                  'dti' ( in 3-component vector of uint)
+0:41                  Constant:
+0:41                    0 (const int)
+0:41              Constant:
+0:41                1 (const int)
+0:41            Sequence
+0:41              Constant:
+0:41                0 (const int)
+0:41              Constant:
+0:41                1 (const int)
+0:42      move second child to first child ( temp 3-component vector of int)
+0:42        vector swizzle ( temp 3-component vector of int)
+0:42          i: direct index for structure ( temp 4-component vector of int)
+0:42            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:42                Constant:
+0:42                  0 (const uint)
+0:42              direct index ( temp uint)
+0:42                'dti' ( in 3-component vector of uint)
+0:42                Constant:
+0:42                  0 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:42          Sequence
+0:42            Constant:
+0:42              0 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:42            Constant:
+0:42              2 (const int)
+0:42        subgroupBroadcastFirst ( temp 3-component vector of int)
+0:42          vector swizzle ( temp 3-component vector of int)
+0:42            i: direct index for structure ( temp 4-component vector of int)
+0:42              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:42                  Constant:
+0:42                    0 (const uint)
+0:42                direct index ( temp uint)
+0:42                  'dti' ( in 3-component vector of uint)
+0:42                  Constant:
+0:42                    0 (const int)
+0:42              Constant:
+0:42                1 (const int)
+0:42            Sequence
+0:42              Constant:
+0:42                0 (const int)
+0:42              Constant:
+0:42                1 (const int)
+0:42              Constant:
+0:42                2 (const int)
+0:44      move second child to first child ( temp 4-component vector of float)
+0:44        f: direct index for structure ( temp 4-component vector of float)
+0:44          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:44              Constant:
+0:44                0 (const uint)
+0:44            direct index ( temp uint)
+0:44              'dti' ( in 3-component vector of uint)
+0:44              Constant:
+0:44                0 (const int)
+0:44          Constant:
+0:44            2 (const int)
+0:44        subgroupBroadcastFirst ( temp 4-component vector of float)
+0:44          f: direct index for structure ( temp 4-component vector of float)
+0:44            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:44                Constant:
+0:44                  0 (const uint)
+0:44              direct index ( temp uint)
+0:44                'dti' ( in 3-component vector of uint)
+0:44                Constant:
+0:44                  0 (const int)
+0:44            Constant:
+0:44              2 (const int)
+0:45      move second child to first child ( temp float)
+0:45        direct index ( temp float)
+0:45          f: direct index for structure ( temp 4-component vector of float)
+0:45            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:45                Constant:
+0:45                  0 (const uint)
+0:45              direct index ( temp uint)
+0:45                'dti' ( in 3-component vector of uint)
+0:45                Constant:
+0:45                  0 (const int)
+0:45            Constant:
+0:45              2 (const int)
+0:45          Constant:
+0:45            0 (const int)
+0:45        subgroupBroadcastFirst ( temp float)
+0:45          direct index ( temp float)
+0:45            f: direct index for structure ( temp 4-component vector of float)
+0:45              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:45                  Constant:
+0:45                    0 (const uint)
+0:45                direct index ( temp uint)
+0:45                  'dti' ( in 3-component vector of uint)
+0:45                  Constant:
+0:45                    0 (const int)
+0:45              Constant:
+0:45                2 (const int)
+0:45            Constant:
+0:45              0 (const int)
+0:46      move second child to first child ( temp 2-component vector of float)
+0:46        vector swizzle ( temp 2-component vector of float)
+0:46          f: direct index for structure ( temp 4-component vector of float)
+0:46            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:46                Constant:
+0:46                  0 (const uint)
+0:46              direct index ( temp uint)
+0:46                'dti' ( in 3-component vector of uint)
+0:46                Constant:
+0:46                  0 (const int)
+0:46            Constant:
+0:46              2 (const int)
+0:46          Sequence
+0:46            Constant:
+0:46              0 (const int)
+0:46            Constant:
+0:46              1 (const int)
+0:46        subgroupBroadcastFirst ( temp 2-component vector of float)
+0:46          vector swizzle ( temp 2-component vector of float)
+0:46            f: direct index for structure ( temp 4-component vector of float)
+0:46              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:46                  Constant:
+0:46                    0 (const uint)
+0:46                direct index ( temp uint)
+0:46                  'dti' ( in 3-component vector of uint)
+0:46                  Constant:
+0:46                    0 (const int)
+0:46              Constant:
+0:46                2 (const int)
+0:46            Sequence
+0:46              Constant:
+0:46                0 (const int)
+0:46              Constant:
+0:46                1 (const int)
+0:47      move second child to first child ( temp 3-component vector of float)
+0:47        vector swizzle ( temp 3-component vector of float)
+0:47          f: direct index for structure ( temp 4-component vector of float)
+0:47            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:47                Constant:
+0:47                  0 (const uint)
+0:47              direct index ( temp uint)
+0:47                'dti' ( in 3-component vector of uint)
+0:47                Constant:
+0:47                  0 (const int)
+0:47            Constant:
+0:47              2 (const int)
+0:47          Sequence
+0:47            Constant:
+0:47              0 (const int)
+0:47            Constant:
+0:47              1 (const int)
+0:47            Constant:
+0:47              2 (const int)
+0:47        subgroupBroadcastFirst ( temp 3-component vector of float)
+0:47          vector swizzle ( temp 3-component vector of float)
+0:47            f: direct index for structure ( temp 4-component vector of float)
+0:47              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:47                  Constant:
+0:47                    0 (const uint)
+0:47                direct index ( temp uint)
+0:47                  'dti' ( in 3-component vector of uint)
+0:47                  Constant:
+0:47                    0 (const int)
+0:47              Constant:
+0:47                2 (const int)
+0:47            Sequence
+0:47              Constant:
+0:47                0 (const int)
+0:47              Constant:
+0:47                1 (const int)
+0:47              Constant:
+0:47                2 (const int)
+0:49      move second child to first child ( temp 4-component vector of double)
+0:49        d: direct index for structure ( temp 4-component vector of double)
+0:49          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:49              Constant:
+0:49                0 (const uint)
+0:49            direct index ( temp uint)
+0:49              'dti' ( in 3-component vector of uint)
+0:49              Constant:
+0:49                0 (const int)
+0:49          Constant:
+0:49            3 (const int)
+0:49        subgroupBroadcastFirst ( temp 4-component vector of double)
+0:49          d: direct index for structure ( temp 4-component vector of double)
+0:49            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:49                Constant:
+0:49                  0 (const uint)
+0:49              direct index ( temp uint)
+0:49                'dti' ( in 3-component vector of uint)
+0:49                Constant:
+0:49                  0 (const int)
+0:49            Constant:
+0:49              3 (const int)
+0:50      move second child to first child ( temp double)
+0:50        direct index ( temp double)
+0:50          d: direct index for structure ( temp 4-component vector of double)
+0:50            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:50                Constant:
+0:50                  0 (const uint)
+0:50              direct index ( temp uint)
+0:50                'dti' ( in 3-component vector of uint)
+0:50                Constant:
+0:50                  0 (const int)
+0:50            Constant:
+0:50              3 (const int)
+0:50          Constant:
+0:50            0 (const int)
+0:50        subgroupBroadcastFirst ( temp double)
+0:50          direct index ( temp double)
+0:50            d: direct index for structure ( temp 4-component vector of double)
+0:50              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:50                  Constant:
+0:50                    0 (const uint)
+0:50                direct index ( temp uint)
+0:50                  'dti' ( in 3-component vector of uint)
+0:50                  Constant:
+0:50                    0 (const int)
+0:50              Constant:
+0:50                3 (const int)
+0:50            Constant:
+0:50              0 (const int)
+0:51      move second child to first child ( temp 2-component vector of double)
+0:51        vector swizzle ( temp 2-component vector of double)
+0:51          d: direct index for structure ( temp 4-component vector of double)
+0:51            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:51                Constant:
+0:51                  0 (const uint)
+0:51              direct index ( temp uint)
+0:51                'dti' ( in 3-component vector of uint)
+0:51                Constant:
+0:51                  0 (const int)
+0:51            Constant:
+0:51              3 (const int)
+0:51          Sequence
+0:51            Constant:
+0:51              0 (const int)
+0:51            Constant:
+0:51              1 (const int)
+0:51        subgroupBroadcastFirst ( temp 2-component vector of double)
+0:51          vector swizzle ( temp 2-component vector of double)
+0:51            d: direct index for structure ( temp 4-component vector of double)
+0:51              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:51                  Constant:
+0:51                    0 (const uint)
+0:51                direct index ( temp uint)
+0:51                  'dti' ( in 3-component vector of uint)
+0:51                  Constant:
+0:51                    0 (const int)
+0:51              Constant:
+0:51                3 (const int)
+0:51            Sequence
+0:51              Constant:
+0:51                0 (const int)
+0:51              Constant:
+0:51                1 (const int)
+0:52      move second child to first child ( temp 3-component vector of double)
+0:52        vector swizzle ( temp 3-component vector of double)
+0:52          d: direct index for structure ( temp 4-component vector of double)
+0:52            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:52                Constant:
+0:52                  0 (const uint)
+0:52              direct index ( temp uint)
+0:52                'dti' ( in 3-component vector of uint)
+0:52                Constant:
+0:52                  0 (const int)
+0:52            Constant:
+0:52              3 (const int)
+0:52          Sequence
+0:52            Constant:
+0:52              0 (const int)
+0:52            Constant:
+0:52              1 (const int)
+0:52            Constant:
+0:52              2 (const int)
+0:52        subgroupBroadcastFirst ( temp 3-component vector of double)
+0:52          vector swizzle ( temp 3-component vector of double)
+0:52            d: direct index for structure ( temp 4-component vector of double)
+0:52              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:52                  Constant:
+0:52                    0 (const uint)
+0:52                direct index ( temp uint)
+0:52                  'dti' ( in 3-component vector of uint)
+0:52                  Constant:
+0:52                    0 (const int)
+0:52              Constant:
+0:52                3 (const int)
+0:52            Sequence
+0:52              Constant:
+0:52                0 (const int)
+0:52              Constant:
+0:52                1 (const int)
+0:52              Constant:
+0:52                2 (const int)
+0:13  Function Definition: CSMain( ( temp void)
+0:13    Function Parameters: 
+0:?     Sequence
+0:13      move second child to first child ( temp 3-component vector of uint)
+0:?         'dti' ( temp 3-component vector of uint)
+0:?         'dti' ( in 3-component vector of uint GlobalInvocationID)
+0:13      Function Call: @CSMain(vu3; ( temp void)
+0:?         'dti' ( temp 3-component vector of uint)
+0:?   Linker Objects
+0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:?     'dti' ( in 3-component vector of uint GlobalInvocationID)
+
+// Module Version 10000
+// Generated by (magic number): 80002
+// Id's are bound by 359
+
+                              Capability Shader
+                              Capability Float64
+                              Capability GroupNonUniform
+                              Capability GroupNonUniformBallot
+                              Capability GroupNonUniformShuffle
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "CSMain" 354
+                              ExecutionMode 4 LocalSize 32 16 1
+                              Source HLSL 500
+                              Name 4  "CSMain"
+                              Name 11  "@CSMain(vu3;"
+                              Name 10  "dti"
+                              Name 20  "Types"
+                              MemberName 20(Types) 0  "u"
+                              MemberName 20(Types) 1  "i"
+                              MemberName 20(Types) 2  "f"
+                              MemberName 20(Types) 3  "d"
+                              Name 22  "data"
+                              MemberName 22(data) 0  "@data"
+                              Name 24  "data"
+                              Name 352  "dti"
+                              Name 354  "dti"
+                              Name 356  "param"
+                              MemberDecorate 20(Types) 0 Offset 0
+                              MemberDecorate 20(Types) 1 Offset 16
+                              MemberDecorate 20(Types) 2 Offset 32
+                              MemberDecorate 20(Types) 3 Offset 64
+                              Decorate 21 ArrayStride 96
+                              MemberDecorate 22(data) 0 Offset 0
+                              Decorate 22(data) BufferBlock
+                              Decorate 24(data) DescriptorSet 0
+                              Decorate 354(dti) 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:             TypeVector 6(int) 4
+              14:             TypeInt 32 1
+              15:             TypeVector 14(int) 4
+              16:             TypeFloat 32
+              17:             TypeVector 16(float) 4
+              18:             TypeFloat 64
+              19:             TypeVector 18(float) 4
+       20(Types):             TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(fvec4)
+              21:             TypeRuntimeArray 20(Types)
+        22(data):             TypeStruct 21
+              23:             TypePointer Uniform 22(data)
+        24(data):     23(ptr) Variable Uniform
+              25:     14(int) Constant 0
+              26:      6(int) Constant 0
+              27:             TypePointer Function 6(int)
+              32:             TypePointer Uniform 13(ivec4)
+              35:      6(int) Constant 13
+              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(fvec4)
+             171:             TypePointer Uniform 18(float)
+             180:             TypeVector 18(float) 2
+             192:             TypeVector 18(float) 3
+             353:             TypePointer Input 7(ivec3)
+        354(dti):    353(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)
+                              Return
+                              FunctionEnd
+11(@CSMain(vu3;):           2 Function None 9
+         10(dti):      8(ptr) FunctionParameter
+              12:             Label
+              28:     27(ptr) AccessChain 10(dti) 26
+              29:      6(int) Load 28
+              30:     27(ptr) AccessChain 10(dti) 26
+              31:      6(int) Load 30
+              33:     32(ptr) AccessChain 24(data) 25 31 25
+              34:   13(ivec4) Load 33
+              37:   13(ivec4) GroupNonUniformShuffle 36 34 35
+              38:     32(ptr) AccessChain 24(data) 25 29 25
+                              Store 38 37
+              39:     27(ptr) AccessChain 10(dti) 26
+              40:      6(int) Load 39
+              41:     27(ptr) AccessChain 10(dti) 26
+              42:      6(int) Load 41
+              44:     43(ptr) AccessChain 24(data) 25 42 25 26
+              45:      6(int) Load 44
+              46:      6(int) GroupNonUniformShuffle 36 45 35
+              47:     43(ptr) AccessChain 24(data) 25 40 25 26
+                              Store 47 46
+              48:     27(ptr) AccessChain 10(dti) 26
+              49:      6(int) Load 48
+              50:     27(ptr) AccessChain 10(dti) 26
+              51:      6(int) Load 50
+              53:     32(ptr) AccessChain 24(data) 25 51 25
+              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
+              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
+             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
+             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(fvec4) Load 163
+             165:   19(fvec4) 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(float) Load 172
+             174:   18(float) 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(fvec4) Load 181
+             183:  180(fvec2) VectorShuffle 182 182 0 1
+             184:  180(fvec2) GroupNonUniformBroadcastFirst 36 183
+             185:    162(ptr) AccessChain 24(data) 25 177 159
+             186:   19(fvec4) Load 185
+             187:   19(fvec4) VectorShuffle 186 184 4 5 2 3
+                              Store 185 187
+             188:     27(ptr) AccessChain 10(dti) 26
+             189:      6(int) Load 188
+             190:     27(ptr) AccessChain 10(dti) 26
+             191:      6(int) Load 190
+             193:    162(ptr) AccessChain 24(data) 25 191 159
+             194:   19(fvec4) Load 193
+             195:  192(fvec3) VectorShuffle 194 194 0 1 2
+             196:  192(fvec3) GroupNonUniformBroadcastFirst 36 195
+             197:    162(ptr) AccessChain 24(data) 25 189 159
+             198:   19(fvec4) Load 197
+             199:   19(fvec4) 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
+             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
+             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
+             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(fvec4) Load 318
+             320:   19(fvec4) 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(float) Load 326
+             328:   18(float) GroupNonUniformBroadcastFirst 36 327
+             329:    171(ptr) AccessChain 24(data) 25 323 159 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:    162(ptr) AccessChain 24(data) 25 333 159
+             335:   19(fvec4) Load 334
+             336:  180(fvec2) VectorShuffle 335 335 0 1
+             337:  180(fvec2) GroupNonUniformBroadcastFirst 36 336
+             338:    162(ptr) AccessChain 24(data) 25 331 159
+             339:   19(fvec4) Load 338
+             340:   19(fvec4) 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(fvec4) Load 345
+             347:  192(fvec3) VectorShuffle 346 346 0 1 2
+             348:  192(fvec3) GroupNonUniformBroadcastFirst 36 347
+             349:    162(ptr) AccessChain 24(data) 25 342 159
+             350:   19(fvec4) Load 349
+             351:   19(fvec4) VectorShuffle 350 348 4 5 6 3
+                              Store 349 351
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.waveordered.comp.out b/Test/baseResults/hlsl.waveordered.comp.out
new file mode 100644
index 0000000..15102d3
--- /dev/null
+++ b/Test/baseResults/hlsl.waveordered.comp.out
@@ -0,0 +1,180 @@
+hlsl.waveordered.comp
+Shader version: 500
+local_size = (32, 16, 1)
+0:? Sequence
+0:5  Function Definition: @CSMain( ( temp void)
+0:5    Function Parameters: 
+0:?     Sequence
+0:6      move second child to first child ( temp uint)
+0:6        indirect index (layout( row_major std430) buffer uint)
+0:6          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
+0:6            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
+0:6            Constant:
+0:6              0 (const uint)
+0:6          add ( temp uint)
+0:6            add ( temp uint)
+0:6              component-wise multiply ( temp uint)
+0:6                add ( temp uint)
+0:6                  component-wise multiply ( temp uint)
+0:6                    direct index ( temp uint)
+0:6                      '@gl_NumWorkGroups' ( in 3-component vector of uint NumWorkGroups)
+0:6                      Constant:
+0:6                        1 (const int)
+0:6                    direct index ( temp uint)
+0:6                      '@gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
+0:6                      Constant:
+0:6                        2 (const int)
+0:6                  direct index ( temp uint)
+0:6                    '@gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
+0:6                    Constant:
+0:6                      1 (const int)
+0:6                component-wise multiply ( temp uint)
+0:6                  '@gl_NumSubgroups' ( in uint unknown built-in variable)
+0:6                  direct index ( temp uint)
+0:6                    '@gl_NumWorkGroups' ( in 3-component vector of uint NumWorkGroups)
+0:6                    Constant:
+0:6                      0 (const int)
+0:6              direct index ( temp uint)
+0:6                '@gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
+0:6                Constant:
+0:6                  0 (const int)
+0:6            '@gl_SubgroupID' ( in uint unknown built-in variable)
+0:6        Constant:
+0:6          1 (const uint)
+0:5  Function Definition: CSMain( ( temp void)
+0:5    Function Parameters: 
+0:?     Sequence
+0:5      Function Call: @CSMain( ( temp void)
+0:?   Linker Objects
+0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
+
+
+Linked compute stage:
+
+
+Shader version: 500
+local_size = (32, 16, 1)
+0:? Sequence
+0:5  Function Definition: @CSMain( ( temp void)
+0:5    Function Parameters: 
+0:?     Sequence
+0:6      move second child to first child ( temp uint)
+0:6        indirect index (layout( row_major std430) buffer uint)
+0:6          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
+0:6            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
+0:6            Constant:
+0:6              0 (const uint)
+0:6          add ( temp uint)
+0:6            add ( temp uint)
+0:6              component-wise multiply ( temp uint)
+0:6                add ( temp uint)
+0:6                  component-wise multiply ( temp uint)
+0:6                    direct index ( temp uint)
+0:6                      '@gl_NumWorkGroups' ( in 3-component vector of uint NumWorkGroups)
+0:6                      Constant:
+0:6                        1 (const int)
+0:6                    direct index ( temp uint)
+0:6                      '@gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
+0:6                      Constant:
+0:6                        2 (const int)
+0:6                  direct index ( temp uint)
+0:6                    '@gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
+0:6                    Constant:
+0:6                      1 (const int)
+0:6                component-wise multiply ( temp uint)
+0:6                  '@gl_NumSubgroups' ( in uint unknown built-in variable)
+0:6                  direct index ( temp uint)
+0:6                    '@gl_NumWorkGroups' ( in 3-component vector of uint NumWorkGroups)
+0:6                    Constant:
+0:6                      0 (const int)
+0:6              direct index ( temp uint)
+0:6                '@gl_WorkGroupID' ( in 3-component vector of uint WorkGroupID)
+0:6                Constant:
+0:6                  0 (const int)
+0:6            '@gl_SubgroupID' ( in uint unknown built-in variable)
+0:6        Constant:
+0:6          1 (const uint)
+0:5  Function Definition: CSMain( ( temp void)
+0:5    Function Parameters: 
+0:?     Sequence
+0:5      Function Call: @CSMain( ( temp void)
+0:?   Linker Objects
+0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
+
+// Module Version 10000
+// Generated by (magic number): 80002
+// Id's are bound by 46
+
+                              Capability Shader
+                              Capability GroupNonUniform
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "CSMain" 17 22 30 40
+                              ExecutionMode 4 LocalSize 32 16 1
+                              Source HLSL 500
+                              Name 4  "CSMain"
+                              Name 6  "@CSMain("
+                              Name 10  "data"
+                              MemberName 10(data) 0  "@data"
+                              Name 12  "data"
+                              Name 17  "@gl_NumWorkGroups"
+                              Name 22  "@gl_WorkGroupID"
+                              Name 30  "@gl_NumSubgroups"
+                              Name 40  "@gl_SubgroupID"
+                              Decorate 9 ArrayStride 4
+                              MemberDecorate 10(data) 0 Offset 0
+                              Decorate 10(data) BufferBlock
+                              Decorate 12(data) DescriptorSet 0
+                              Decorate 17(@gl_NumWorkGroups) BuiltIn NumWorkgroups
+                              Decorate 22(@gl_WorkGroupID) BuiltIn WorkgroupId
+                              Decorate 30(@gl_NumSubgroups) BuiltIn NumSubgroups
+                              Decorate 40(@gl_SubgroupID) BuiltIn SubgroupId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               8:             TypeInt 32 0
+               9:             TypeRuntimeArray 8(int)
+        10(data):             TypeStruct 9
+              11:             TypePointer Uniform 10(data)
+        12(data):     11(ptr) Variable Uniform
+              13:             TypeInt 32 1
+              14:     13(int) Constant 0
+              15:             TypeVector 8(int) 3
+              16:             TypePointer Input 15(ivec3)
+17(@gl_NumWorkGroups):     16(ptr) Variable Input
+              18:      8(int) Constant 1
+              19:             TypePointer Input 8(int)
+22(@gl_WorkGroupID):     16(ptr) Variable Input
+              23:      8(int) Constant 2
+30(@gl_NumSubgroups):     19(ptr) Variable Input
+              32:      8(int) Constant 0
+40(@gl_SubgroupID):     19(ptr) Variable Input
+              43:             TypePointer Uniform 8(int)
+       4(CSMain):           2 Function None 3
+               5:             Label
+              45:           2 FunctionCall 6(@CSMain()
+                              Return
+                              FunctionEnd
+     6(@CSMain():           2 Function None 3
+               7:             Label
+              20:     19(ptr) AccessChain 17(@gl_NumWorkGroups) 18
+              21:      8(int) Load 20
+              24:     19(ptr) AccessChain 22(@gl_WorkGroupID) 23
+              25:      8(int) Load 24
+              26:      8(int) IMul 21 25
+              27:     19(ptr) AccessChain 22(@gl_WorkGroupID) 18
+              28:      8(int) Load 27
+              29:      8(int) IAdd 26 28
+              31:      8(int) Load 30(@gl_NumSubgroups)
+              33:     19(ptr) AccessChain 17(@gl_NumWorkGroups) 32
+              34:      8(int) Load 33
+              35:      8(int) IMul 31 34
+              36:      8(int) IMul 29 35
+              37:     19(ptr) AccessChain 22(@gl_WorkGroupID) 32
+              38:      8(int) Load 37
+              39:      8(int) IAdd 36 38
+              41:      8(int) Load 40(@gl_SubgroupID)
+              42:      8(int) IAdd 39 41
+              44:     43(ptr) AccessChain 12(data) 14 42
+                              Store 44 18
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.waveordered.frag.out b/Test/baseResults/hlsl.waveordered.frag.out
new file mode 100644
index 0000000..abe8634
--- /dev/null
+++ b/Test/baseResults/hlsl.waveordered.frag.out
@@ -0,0 +1,86 @@
+hlsl.waveordered.frag
+ERROR: 0:3: 'WaveGetOrderedIndex' : WaveGetOrderedIndex() unsupported in a pixel/fragment shader 
+ERROR: 1 compilation errors.  No code generated.
+
+
+Shader version: 500
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:2  Function Definition: @PixelShaderFunction( ( temp 4-component vector of float)
+0:2    Function Parameters: 
+0:?     Sequence
+0:3      Test condition and select ( temp void)
+0:3        Condition
+0:3        Compare Equal ( temp bool)
+0:3          Constant:
+0:3            0 (const uint)
+0:3          ERROR: Bad aggregation op
+ ( temp uint)
+0:3        true case
+0:?         Sequence
+0:5          Branch: Return with expression
+0:?             Constant:
+0:?               1.000000
+0:?               2.000000
+0:?               3.000000
+0:?               4.000000
+0:3        false case
+0:?         Sequence
+0:9          Branch: Return with expression
+0:?             Constant:
+0:?               4.000000
+0:?               3.000000
+0:?               2.000000
+0:?               1.000000
+0:2  Function Definition: PixelShaderFunction( ( temp void)
+0:2    Function Parameters: 
+0:?     Sequence
+0:2      move second child to first child ( temp 4-component vector of float)
+0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+0:2        Function Call: @PixelShaderFunction( ( temp 4-component vector of float)
+0:?   Linker Objects
+0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 500
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:2  Function Definition: @PixelShaderFunction( ( temp 4-component vector of float)
+0:2    Function Parameters: 
+0:?     Sequence
+0:3      Test condition and select ( temp void)
+0:3        Condition
+0:3        Compare Equal ( temp bool)
+0:3          Constant:
+0:3            0 (const uint)
+0:3          ERROR: Bad aggregation op
+ ( temp uint)
+0:3        true case
+0:?         Sequence
+0:5          Branch: Return with expression
+0:?             Constant:
+0:?               1.000000
+0:?               2.000000
+0:?               3.000000
+0:?               4.000000
+0:3        false case
+0:?         Sequence
+0:9          Branch: Return with expression
+0:?             Constant:
+0:?               4.000000
+0:?               3.000000
+0:?               2.000000
+0:?               1.000000
+0:2  Function Definition: PixelShaderFunction( ( temp void)
+0:2    Function Parameters: 
+0:?     Sequence
+0:2      move second child to first child ( temp 4-component vector of float)
+0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+0:2        Function Call: @PixelShaderFunction( ( temp 4-component vector of float)
+0:?   Linker Objects
+0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/hlsl.waveordered2.comp.out b/Test/baseResults/hlsl.waveordered2.comp.out
new file mode 100644
index 0000000..b6f0d58
--- /dev/null
+++ b/Test/baseResults/hlsl.waveordered2.comp.out
@@ -0,0 +1,68 @@
+hlsl.waveordered2.comp
+ERROR: 0:7: 'GlobalOrderedCountIncrement' : GlobalOrderedCountIncrement() unsupported 
+ERROR: 1 compilation errors.  No code generated.
+
+
+Shader version: 500
+local_size = (32, 16, 1)
+ERROR: node is still EOpNull!
+0:5  Function Definition: @CSMain( ( temp void)
+0:5    Function Parameters: 
+0:?     Sequence
+0:6      Sequence
+0:6        move second child to first child ( temp uint)
+0:6          'i' ( temp uint)
+0:6          Constant:
+0:6            42 (const uint)
+0:7      move second child to first child ( temp uint)
+0:7        indirect index (layout( row_major std430) buffer uint)
+0:7          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
+0:7            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
+0:7            Constant:
+0:7              0 (const uint)
+0:7          ERROR: Bad unary op
+ ( temp uint)
+0:7            'i' ( temp uint)
+0:7        Constant:
+0:7          1 (const uint)
+0:5  Function Definition: CSMain( ( temp void)
+0:5    Function Parameters: 
+0:?     Sequence
+0:5      Function Call: @CSMain( ( temp void)
+0:?   Linker Objects
+0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
+
+
+Linked compute stage:
+
+
+Shader version: 500
+local_size = (32, 16, 1)
+ERROR: node is still EOpNull!
+0:5  Function Definition: @CSMain( ( temp void)
+0:5    Function Parameters: 
+0:?     Sequence
+0:6      Sequence
+0:6        move second child to first child ( temp uint)
+0:6          'i' ( temp uint)
+0:6          Constant:
+0:6            42 (const uint)
+0:7      move second child to first child ( temp uint)
+0:7        indirect index (layout( row_major std430) buffer uint)
+0:7          @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
+0:7            'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
+0:7            Constant:
+0:7              0 (const uint)
+0:7          ERROR: Bad unary op
+ ( temp uint)
+0:7            'i' ( temp uint)
+0:7        Constant:
+0:7          1 (const uint)
+0:5  Function Definition: CSMain( ( temp void)
+0:5    Function Parameters: 
+0:?     Sequence
+0:5      Function Call: @CSMain( ( temp void)
+0:?   Linker Objects
+0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/hlsl.waveordered2.frag.out b/Test/baseResults/hlsl.waveordered2.frag.out
new file mode 100644
index 0000000..6d44c53
--- /dev/null
+++ b/Test/baseResults/hlsl.waveordered2.frag.out
@@ -0,0 +1,98 @@
+hlsl.waveordered2.frag
+ERROR: 0:4: 'GlobalOrderedCountIncrement' : GlobalOrderedCountIncrement() unsupported 
+ERROR: 1 compilation errors.  No code generated.
+
+
+Shader version: 500
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:2  Function Definition: @PixelShaderFunction( ( temp 4-component vector of float)
+0:2    Function Parameters: 
+0:?     Sequence
+0:3      Sequence
+0:3        move second child to first child ( temp uint)
+0:3          'i' ( temp uint)
+0:3          Constant:
+0:3            42 (const uint)
+0:4      Test condition and select ( temp void)
+0:4        Condition
+0:4        Compare Equal ( temp bool)
+0:4          Constant:
+0:4            0 (const uint)
+0:4          ERROR: Bad unary op
+ ( temp uint)
+0:4            'i' ( temp uint)
+0:4        true case
+0:?         Sequence
+0:6          Branch: Return with expression
+0:?             Constant:
+0:?               1.000000
+0:?               2.000000
+0:?               3.000000
+0:?               4.000000
+0:4        false case
+0:?         Sequence
+0:10          Branch: Return with expression
+0:?             Constant:
+0:?               4.000000
+0:?               3.000000
+0:?               2.000000
+0:?               1.000000
+0:2  Function Definition: PixelShaderFunction( ( temp void)
+0:2    Function Parameters: 
+0:?     Sequence
+0:2      move second child to first child ( temp 4-component vector of float)
+0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+0:2        Function Call: @PixelShaderFunction( ( temp 4-component vector of float)
+0:?   Linker Objects
+0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 500
+gl_FragCoord origin is upper left
+ERROR: node is still EOpNull!
+0:2  Function Definition: @PixelShaderFunction( ( temp 4-component vector of float)
+0:2    Function Parameters: 
+0:?     Sequence
+0:3      Sequence
+0:3        move second child to first child ( temp uint)
+0:3          'i' ( temp uint)
+0:3          Constant:
+0:3            42 (const uint)
+0:4      Test condition and select ( temp void)
+0:4        Condition
+0:4        Compare Equal ( temp bool)
+0:4          Constant:
+0:4            0 (const uint)
+0:4          ERROR: Bad unary op
+ ( temp uint)
+0:4            'i' ( temp uint)
+0:4        true case
+0:?         Sequence
+0:6          Branch: Return with expression
+0:?             Constant:
+0:?               1.000000
+0:?               2.000000
+0:?               3.000000
+0:?               4.000000
+0:4        false case
+0:?         Sequence
+0:10          Branch: Return with expression
+0:?             Constant:
+0:?               4.000000
+0:?               3.000000
+0:?               2.000000
+0:?               1.000000
+0:2  Function Definition: PixelShaderFunction( ( temp void)
+0:2    Function Parameters: 
+0:?     Sequence
+0:2      move second child to first child ( temp 4-component vector of float)
+0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+0:2        Function Call: @PixelShaderFunction( ( temp 4-component vector of float)
+0:?   Linker Objects
+0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/baseResults/hlsl.waveprefix.comp.out b/Test/baseResults/hlsl.waveprefix.comp.out
new file mode 100644
index 0000000..10ce0f9
--- /dev/null
+++ b/Test/baseResults/hlsl.waveprefix.comp.out
@@ -0,0 +1,2681 @@
+hlsl.waveprefix.comp
+Shader version: 500
+local_size = (32, 16, 1)
+0:? Sequence
+0:13  Function Definition: @CSMain(vu3; ( temp void)
+0:13    Function Parameters: 
+0:13      'dti' ( in 3-component vector of uint)
+0:?     Sequence
+0:14      move second child to first child ( temp 4-component vector of uint)
+0:14        u: direct index for structure ( temp 4-component vector of uint)
+0:14          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:14              Constant:
+0:14                0 (const uint)
+0:14            direct index ( temp uint)
+0:14              'dti' ( in 3-component vector of uint)
+0:14              Constant:
+0:14                0 (const int)
+0:14          Constant:
+0:14            0 (const int)
+0:14        subgroupInclusiveAdd ( temp 4-component vector of uint)
+0:14          u: direct index for structure ( temp 4-component vector of uint)
+0:14            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:14                Constant:
+0:14                  0 (const uint)
+0:14              direct index ( temp uint)
+0:14                'dti' ( in 3-component vector of uint)
+0:14                Constant:
+0:14                  0 (const int)
+0:14            Constant:
+0:14              0 (const int)
+0:15      move second child to first child ( temp uint)
+0:15        direct index ( temp uint)
+0:15          u: direct index for structure ( temp 4-component vector of uint)
+0:15            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:15                Constant:
+0:15                  0 (const uint)
+0:15              direct index ( temp uint)
+0:15                'dti' ( in 3-component vector of uint)
+0:15                Constant:
+0:15                  0 (const int)
+0:15            Constant:
+0:15              0 (const int)
+0:15          Constant:
+0:15            0 (const int)
+0:15        subgroupInclusiveAdd ( temp uint)
+0:15          direct index ( temp uint)
+0:15            u: direct index for structure ( temp 4-component vector of uint)
+0:15              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:15                  Constant:
+0:15                    0 (const uint)
+0:15                direct index ( temp uint)
+0:15                  'dti' ( in 3-component vector of uint)
+0:15                  Constant:
+0:15                    0 (const int)
+0:15              Constant:
+0:15                0 (const int)
+0:15            Constant:
+0:15              0 (const int)
+0:16      move second child to first child ( temp 2-component vector of uint)
+0:16        vector swizzle ( temp 2-component vector of uint)
+0:16          u: direct index for structure ( temp 4-component vector of uint)
+0:16            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:16                Constant:
+0:16                  0 (const uint)
+0:16              direct index ( temp uint)
+0:16                'dti' ( in 3-component vector of uint)
+0:16                Constant:
+0:16                  0 (const int)
+0:16            Constant:
+0:16              0 (const int)
+0:16          Sequence
+0:16            Constant:
+0:16              0 (const int)
+0:16            Constant:
+0:16              1 (const int)
+0:16        subgroupInclusiveAdd ( temp 2-component vector of uint)
+0:16          vector swizzle ( temp 2-component vector of uint)
+0:16            u: direct index for structure ( temp 4-component vector of uint)
+0:16              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:16                  Constant:
+0:16                    0 (const uint)
+0:16                direct index ( temp uint)
+0:16                  'dti' ( in 3-component vector of uint)
+0:16                  Constant:
+0:16                    0 (const int)
+0:16              Constant:
+0:16                0 (const int)
+0:16            Sequence
+0:16              Constant:
+0:16                0 (const int)
+0:16              Constant:
+0:16                1 (const int)
+0:17      move second child to first child ( temp 3-component vector of uint)
+0:17        vector swizzle ( temp 3-component vector of uint)
+0:17          u: direct index for structure ( temp 4-component vector of uint)
+0:17            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:17                Constant:
+0:17                  0 (const uint)
+0:17              direct index ( temp uint)
+0:17                'dti' ( in 3-component vector of uint)
+0:17                Constant:
+0:17                  0 (const int)
+0:17            Constant:
+0:17              0 (const int)
+0:17          Sequence
+0:17            Constant:
+0:17              0 (const int)
+0:17            Constant:
+0:17              1 (const int)
+0:17            Constant:
+0:17              2 (const int)
+0:17        subgroupInclusiveAdd ( temp 3-component vector of uint)
+0:17          vector swizzle ( temp 3-component vector of uint)
+0:17            u: direct index for structure ( temp 4-component vector of uint)
+0:17              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:17                  Constant:
+0:17                    0 (const uint)
+0:17                direct index ( temp uint)
+0:17                  'dti' ( in 3-component vector of uint)
+0:17                  Constant:
+0:17                    0 (const int)
+0:17              Constant:
+0:17                0 (const int)
+0:17            Sequence
+0:17              Constant:
+0:17                0 (const int)
+0:17              Constant:
+0:17                1 (const int)
+0:17              Constant:
+0:17                2 (const int)
+0:19      move second child to first child ( temp 4-component vector of int)
+0:19        i: direct index for structure ( temp 4-component vector of int)
+0:19          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:19              Constant:
+0:19                0 (const uint)
+0:19            direct index ( temp uint)
+0:19              'dti' ( in 3-component vector of uint)
+0:19              Constant:
+0:19                0 (const int)
+0:19          Constant:
+0:19            1 (const int)
+0:19        subgroupInclusiveAdd ( temp 4-component vector of int)
+0:19          i: direct index for structure ( temp 4-component vector of int)
+0:19            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:19                Constant:
+0:19                  0 (const uint)
+0:19              direct index ( temp uint)
+0:19                'dti' ( in 3-component vector of uint)
+0:19                Constant:
+0:19                  0 (const int)
+0:19            Constant:
+0:19              1 (const int)
+0:20      move second child to first child ( temp int)
+0:20        direct index ( temp int)
+0:20          i: direct index for structure ( temp 4-component vector of int)
+0:20            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:20                Constant:
+0:20                  0 (const uint)
+0:20              direct index ( temp uint)
+0:20                'dti' ( in 3-component vector of uint)
+0:20                Constant:
+0:20                  0 (const int)
+0:20            Constant:
+0:20              1 (const int)
+0:20          Constant:
+0:20            0 (const int)
+0:20        subgroupInclusiveAdd ( temp int)
+0:20          direct index ( temp int)
+0:20            i: direct index for structure ( temp 4-component vector of int)
+0:20              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:20                  Constant:
+0:20                    0 (const uint)
+0:20                direct index ( temp uint)
+0:20                  'dti' ( in 3-component vector of uint)
+0:20                  Constant:
+0:20                    0 (const int)
+0:20              Constant:
+0:20                1 (const int)
+0:20            Constant:
+0:20              0 (const int)
+0:21      move second child to first child ( temp 2-component vector of int)
+0:21        vector swizzle ( temp 2-component vector of int)
+0:21          i: direct index for structure ( temp 4-component vector of int)
+0:21            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:21                Constant:
+0:21                  0 (const uint)
+0:21              direct index ( temp uint)
+0:21                'dti' ( in 3-component vector of uint)
+0:21                Constant:
+0:21                  0 (const int)
+0:21            Constant:
+0:21              1 (const int)
+0:21          Sequence
+0:21            Constant:
+0:21              0 (const int)
+0:21            Constant:
+0:21              1 (const int)
+0:21        subgroupInclusiveAdd ( temp 2-component vector of int)
+0:21          vector swizzle ( temp 2-component vector of int)
+0:21            i: direct index for structure ( temp 4-component vector of int)
+0:21              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:21                  Constant:
+0:21                    0 (const uint)
+0:21                direct index ( temp uint)
+0:21                  'dti' ( in 3-component vector of uint)
+0:21                  Constant:
+0:21                    0 (const int)
+0:21              Constant:
+0:21                1 (const int)
+0:21            Sequence
+0:21              Constant:
+0:21                0 (const int)
+0:21              Constant:
+0:21                1 (const int)
+0:22      move second child to first child ( temp 3-component vector of int)
+0:22        vector swizzle ( temp 3-component vector of int)
+0:22          i: direct index for structure ( temp 4-component vector of int)
+0:22            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:22                Constant:
+0:22                  0 (const uint)
+0:22              direct index ( temp uint)
+0:22                'dti' ( in 3-component vector of uint)
+0:22                Constant:
+0:22                  0 (const int)
+0:22            Constant:
+0:22              1 (const int)
+0:22          Sequence
+0:22            Constant:
+0:22              0 (const int)
+0:22            Constant:
+0:22              1 (const int)
+0:22            Constant:
+0:22              2 (const int)
+0:22        subgroupInclusiveAdd ( temp 3-component vector of int)
+0:22          vector swizzle ( temp 3-component vector of int)
+0:22            i: direct index for structure ( temp 4-component vector of int)
+0:22              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:22                  Constant:
+0:22                    0 (const uint)
+0:22                direct index ( temp uint)
+0:22                  'dti' ( in 3-component vector of uint)
+0:22                  Constant:
+0:22                    0 (const int)
+0:22              Constant:
+0:22                1 (const int)
+0:22            Sequence
+0:22              Constant:
+0:22                0 (const int)
+0:22              Constant:
+0:22                1 (const int)
+0:22              Constant:
+0:22                2 (const int)
+0:24      move second child to first child ( temp 4-component vector of float)
+0:24        f: direct index for structure ( temp 4-component vector of float)
+0:24          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:24              Constant:
+0:24                0 (const uint)
+0:24            direct index ( temp uint)
+0:24              'dti' ( in 3-component vector of uint)
+0:24              Constant:
+0:24                0 (const int)
+0:24          Constant:
+0:24            2 (const int)
+0:24        subgroupInclusiveAdd ( temp 4-component vector of float)
+0:24          f: direct index for structure ( temp 4-component vector of float)
+0:24            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:24                Constant:
+0:24                  0 (const uint)
+0:24              direct index ( temp uint)
+0:24                'dti' ( in 3-component vector of uint)
+0:24                Constant:
+0:24                  0 (const int)
+0:24            Constant:
+0:24              2 (const int)
+0:25      move second child to first child ( temp float)
+0:25        direct index ( temp float)
+0:25          f: direct index for structure ( temp 4-component vector of float)
+0:25            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:25                Constant:
+0:25                  0 (const uint)
+0:25              direct index ( temp uint)
+0:25                'dti' ( in 3-component vector of uint)
+0:25                Constant:
+0:25                  0 (const int)
+0:25            Constant:
+0:25              2 (const int)
+0:25          Constant:
+0:25            0 (const int)
+0:25        subgroupInclusiveAdd ( temp float)
+0:25          direct index ( temp float)
+0:25            f: direct index for structure ( temp 4-component vector of float)
+0:25              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:25                  Constant:
+0:25                    0 (const uint)
+0:25                direct index ( temp uint)
+0:25                  'dti' ( in 3-component vector of uint)
+0:25                  Constant:
+0:25                    0 (const int)
+0:25              Constant:
+0:25                2 (const int)
+0:25            Constant:
+0:25              0 (const int)
+0:26      move second child to first child ( temp 2-component vector of float)
+0:26        vector swizzle ( temp 2-component vector of float)
+0:26          f: direct index for structure ( temp 4-component vector of float)
+0:26            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:26                Constant:
+0:26                  0 (const uint)
+0:26              direct index ( temp uint)
+0:26                'dti' ( in 3-component vector of uint)
+0:26                Constant:
+0:26                  0 (const int)
+0:26            Constant:
+0:26              2 (const int)
+0:26          Sequence
+0:26            Constant:
+0:26              0 (const int)
+0:26            Constant:
+0:26              1 (const int)
+0:26        subgroupInclusiveAdd ( temp 2-component vector of float)
+0:26          vector swizzle ( temp 2-component vector of float)
+0:26            f: direct index for structure ( temp 4-component vector of float)
+0:26              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:26                  Constant:
+0:26                    0 (const uint)
+0:26                direct index ( temp uint)
+0:26                  'dti' ( in 3-component vector of uint)
+0:26                  Constant:
+0:26                    0 (const int)
+0:26              Constant:
+0:26                2 (const int)
+0:26            Sequence
+0:26              Constant:
+0:26                0 (const int)
+0:26              Constant:
+0:26                1 (const int)
+0:27      move second child to first child ( temp 3-component vector of float)
+0:27        vector swizzle ( temp 3-component vector of float)
+0:27          f: direct index for structure ( temp 4-component vector of float)
+0:27            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:27                Constant:
+0:27                  0 (const uint)
+0:27              direct index ( temp uint)
+0:27                'dti' ( in 3-component vector of uint)
+0:27                Constant:
+0:27                  0 (const int)
+0:27            Constant:
+0:27              2 (const int)
+0:27          Sequence
+0:27            Constant:
+0:27              0 (const int)
+0:27            Constant:
+0:27              1 (const int)
+0:27            Constant:
+0:27              2 (const int)
+0:27        subgroupInclusiveAdd ( temp 3-component vector of float)
+0:27          vector swizzle ( temp 3-component vector of float)
+0:27            f: direct index for structure ( temp 4-component vector of float)
+0:27              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:27                  Constant:
+0:27                    0 (const uint)
+0:27                direct index ( temp uint)
+0:27                  'dti' ( in 3-component vector of uint)
+0:27                  Constant:
+0:27                    0 (const int)
+0:27              Constant:
+0:27                2 (const int)
+0:27            Sequence
+0:27              Constant:
+0:27                0 (const int)
+0:27              Constant:
+0:27                1 (const int)
+0:27              Constant:
+0:27                2 (const int)
+0:29      move second child to first child ( temp 4-component vector of double)
+0:29        d: direct index for structure ( temp 4-component vector of double)
+0:29          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:29              Constant:
+0:29                0 (const uint)
+0:29            direct index ( temp uint)
+0:29              'dti' ( in 3-component vector of uint)
+0:29              Constant:
+0:29                0 (const int)
+0:29          Constant:
+0:29            3 (const int)
+0:29        subgroupInclusiveAdd ( temp 4-component vector of double)
+0:29          d: direct index for structure ( temp 4-component vector of double)
+0:29            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:29                Constant:
+0:29                  0 (const uint)
+0:29              direct index ( temp uint)
+0:29                'dti' ( in 3-component vector of uint)
+0:29                Constant:
+0:29                  0 (const int)
+0:29            Constant:
+0:29              3 (const int)
+0:30      move second child to first child ( temp double)
+0:30        direct index ( temp double)
+0:30          d: direct index for structure ( temp 4-component vector of double)
+0:30            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:30                Constant:
+0:30                  0 (const uint)
+0:30              direct index ( temp uint)
+0:30                'dti' ( in 3-component vector of uint)
+0:30                Constant:
+0:30                  0 (const int)
+0:30            Constant:
+0:30              3 (const int)
+0:30          Constant:
+0:30            0 (const int)
+0:30        subgroupInclusiveAdd ( temp double)
+0:30          direct index ( temp double)
+0:30            d: direct index for structure ( temp 4-component vector of double)
+0:30              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:30                  Constant:
+0:30                    0 (const uint)
+0:30                direct index ( temp uint)
+0:30                  'dti' ( in 3-component vector of uint)
+0:30                  Constant:
+0:30                    0 (const int)
+0:30              Constant:
+0:30                3 (const int)
+0:30            Constant:
+0:30              0 (const int)
+0:31      move second child to first child ( temp 2-component vector of double)
+0:31        vector swizzle ( temp 2-component vector of double)
+0:31          d: direct index for structure ( temp 4-component vector of double)
+0:31            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:31                Constant:
+0:31                  0 (const uint)
+0:31              direct index ( temp uint)
+0:31                'dti' ( in 3-component vector of uint)
+0:31                Constant:
+0:31                  0 (const int)
+0:31            Constant:
+0:31              3 (const int)
+0:31          Sequence
+0:31            Constant:
+0:31              0 (const int)
+0:31            Constant:
+0:31              1 (const int)
+0:31        subgroupInclusiveAdd ( temp 2-component vector of double)
+0:31          vector swizzle ( temp 2-component vector of double)
+0:31            d: direct index for structure ( temp 4-component vector of double)
+0:31              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:31                  Constant:
+0:31                    0 (const uint)
+0:31                direct index ( temp uint)
+0:31                  'dti' ( in 3-component vector of uint)
+0:31                  Constant:
+0:31                    0 (const int)
+0:31              Constant:
+0:31                3 (const int)
+0:31            Sequence
+0:31              Constant:
+0:31                0 (const int)
+0:31              Constant:
+0:31                1 (const int)
+0:32      move second child to first child ( temp 3-component vector of double)
+0:32        vector swizzle ( temp 3-component vector of double)
+0:32          d: direct index for structure ( temp 4-component vector of double)
+0:32            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:32                Constant:
+0:32                  0 (const uint)
+0:32              direct index ( temp uint)
+0:32                'dti' ( in 3-component vector of uint)
+0:32                Constant:
+0:32                  0 (const int)
+0:32            Constant:
+0:32              3 (const int)
+0:32          Sequence
+0:32            Constant:
+0:32              0 (const int)
+0:32            Constant:
+0:32              1 (const int)
+0:32            Constant:
+0:32              2 (const int)
+0:32        subgroupInclusiveAdd ( temp 3-component vector of double)
+0:32          vector swizzle ( temp 3-component vector of double)
+0:32            d: direct index for structure ( temp 4-component vector of double)
+0:32              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:32                  Constant:
+0:32                    0 (const uint)
+0:32                direct index ( temp uint)
+0:32                  'dti' ( in 3-component vector of uint)
+0:32                  Constant:
+0:32                    0 (const int)
+0:32              Constant:
+0:32                3 (const int)
+0:32            Sequence
+0:32              Constant:
+0:32                0 (const int)
+0:32              Constant:
+0:32                1 (const int)
+0:32              Constant:
+0:32                2 (const int)
+0:34      move second child to first child ( temp 4-component vector of uint)
+0:34        u: direct index for structure ( temp 4-component vector of uint)
+0:34          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:34              Constant:
+0:34                0 (const uint)
+0:34            direct index ( temp uint)
+0:34              'dti' ( in 3-component vector of uint)
+0:34              Constant:
+0:34                0 (const int)
+0:34          Constant:
+0:34            0 (const int)
+0:34        subgroupInclusiveMul ( temp 4-component vector of uint)
+0:34          u: direct index for structure ( temp 4-component vector of uint)
+0:34            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:34                Constant:
+0:34                  0 (const uint)
+0:34              direct index ( temp uint)
+0:34                'dti' ( in 3-component vector of uint)
+0:34                Constant:
+0:34                  0 (const int)
+0:34            Constant:
+0:34              0 (const int)
+0:35      move second child to first child ( temp uint)
+0:35        direct index ( temp uint)
+0:35          u: direct index for structure ( temp 4-component vector of uint)
+0:35            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:35                Constant:
+0:35                  0 (const uint)
+0:35              direct index ( temp uint)
+0:35                'dti' ( in 3-component vector of uint)
+0:35                Constant:
+0:35                  0 (const int)
+0:35            Constant:
+0:35              0 (const int)
+0:35          Constant:
+0:35            0 (const int)
+0:35        subgroupInclusiveMul ( temp uint)
+0:35          direct index ( temp uint)
+0:35            u: direct index for structure ( temp 4-component vector of uint)
+0:35              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:35                  Constant:
+0:35                    0 (const uint)
+0:35                direct index ( temp uint)
+0:35                  'dti' ( in 3-component vector of uint)
+0:35                  Constant:
+0:35                    0 (const int)
+0:35              Constant:
+0:35                0 (const int)
+0:35            Constant:
+0:35              0 (const int)
+0:36      move second child to first child ( temp 2-component vector of uint)
+0:36        vector swizzle ( temp 2-component vector of uint)
+0:36          u: direct index for structure ( temp 4-component vector of uint)
+0:36            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:36                Constant:
+0:36                  0 (const uint)
+0:36              direct index ( temp uint)
+0:36                'dti' ( in 3-component vector of uint)
+0:36                Constant:
+0:36                  0 (const int)
+0:36            Constant:
+0:36              0 (const int)
+0:36          Sequence
+0:36            Constant:
+0:36              0 (const int)
+0:36            Constant:
+0:36              1 (const int)
+0:36        subgroupInclusiveMul ( temp 2-component vector of uint)
+0:36          vector swizzle ( temp 2-component vector of uint)
+0:36            u: direct index for structure ( temp 4-component vector of uint)
+0:36              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:36                  Constant:
+0:36                    0 (const uint)
+0:36                direct index ( temp uint)
+0:36                  'dti' ( in 3-component vector of uint)
+0:36                  Constant:
+0:36                    0 (const int)
+0:36              Constant:
+0:36                0 (const int)
+0:36            Sequence
+0:36              Constant:
+0:36                0 (const int)
+0:36              Constant:
+0:36                1 (const int)
+0:37      move second child to first child ( temp 3-component vector of uint)
+0:37        vector swizzle ( temp 3-component vector of uint)
+0:37          u: direct index for structure ( temp 4-component vector of uint)
+0:37            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:37                Constant:
+0:37                  0 (const uint)
+0:37              direct index ( temp uint)
+0:37                'dti' ( in 3-component vector of uint)
+0:37                Constant:
+0:37                  0 (const int)
+0:37            Constant:
+0:37              0 (const int)
+0:37          Sequence
+0:37            Constant:
+0:37              0 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:37            Constant:
+0:37              2 (const int)
+0:37        subgroupInclusiveMul ( temp 3-component vector of uint)
+0:37          vector swizzle ( temp 3-component vector of uint)
+0:37            u: direct index for structure ( temp 4-component vector of uint)
+0:37              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:37                  Constant:
+0:37                    0 (const uint)
+0:37                direct index ( temp uint)
+0:37                  'dti' ( in 3-component vector of uint)
+0:37                  Constant:
+0:37                    0 (const int)
+0:37              Constant:
+0:37                0 (const int)
+0:37            Sequence
+0:37              Constant:
+0:37                0 (const int)
+0:37              Constant:
+0:37                1 (const int)
+0:37              Constant:
+0:37                2 (const int)
+0:39      move second child to first child ( temp 4-component vector of int)
+0:39        i: direct index for structure ( temp 4-component vector of int)
+0:39          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:39              Constant:
+0:39                0 (const uint)
+0:39            direct index ( temp uint)
+0:39              'dti' ( in 3-component vector of uint)
+0:39              Constant:
+0:39                0 (const int)
+0:39          Constant:
+0:39            1 (const int)
+0:39        subgroupInclusiveMul ( temp 4-component vector of int)
+0:39          i: direct index for structure ( temp 4-component vector of int)
+0:39            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:39                Constant:
+0:39                  0 (const uint)
+0:39              direct index ( temp uint)
+0:39                'dti' ( in 3-component vector of uint)
+0:39                Constant:
+0:39                  0 (const int)
+0:39            Constant:
+0:39              1 (const int)
+0:40      move second child to first child ( temp int)
+0:40        direct index ( temp int)
+0:40          i: direct index for structure ( temp 4-component vector of int)
+0:40            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:40                Constant:
+0:40                  0 (const uint)
+0:40              direct index ( temp uint)
+0:40                'dti' ( in 3-component vector of uint)
+0:40                Constant:
+0:40                  0 (const int)
+0:40            Constant:
+0:40              1 (const int)
+0:40          Constant:
+0:40            0 (const int)
+0:40        subgroupInclusiveMul ( temp int)
+0:40          direct index ( temp int)
+0:40            i: direct index for structure ( temp 4-component vector of int)
+0:40              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:40                  Constant:
+0:40                    0 (const uint)
+0:40                direct index ( temp uint)
+0:40                  'dti' ( in 3-component vector of uint)
+0:40                  Constant:
+0:40                    0 (const int)
+0:40              Constant:
+0:40                1 (const int)
+0:40            Constant:
+0:40              0 (const int)
+0:41      move second child to first child ( temp 2-component vector of int)
+0:41        vector swizzle ( temp 2-component vector of int)
+0:41          i: direct index for structure ( temp 4-component vector of int)
+0:41            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:41                Constant:
+0:41                  0 (const uint)
+0:41              direct index ( temp uint)
+0:41                'dti' ( in 3-component vector of uint)
+0:41                Constant:
+0:41                  0 (const int)
+0:41            Constant:
+0:41              1 (const int)
+0:41          Sequence
+0:41            Constant:
+0:41              0 (const int)
+0:41            Constant:
+0:41              1 (const int)
+0:41        subgroupInclusiveMul ( temp 2-component vector of int)
+0:41          vector swizzle ( temp 2-component vector of int)
+0:41            i: direct index for structure ( temp 4-component vector of int)
+0:41              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:41                  Constant:
+0:41                    0 (const uint)
+0:41                direct index ( temp uint)
+0:41                  'dti' ( in 3-component vector of uint)
+0:41                  Constant:
+0:41                    0 (const int)
+0:41              Constant:
+0:41                1 (const int)
+0:41            Sequence
+0:41              Constant:
+0:41                0 (const int)
+0:41              Constant:
+0:41                1 (const int)
+0:42      move second child to first child ( temp 3-component vector of int)
+0:42        vector swizzle ( temp 3-component vector of int)
+0:42          i: direct index for structure ( temp 4-component vector of int)
+0:42            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:42                Constant:
+0:42                  0 (const uint)
+0:42              direct index ( temp uint)
+0:42                'dti' ( in 3-component vector of uint)
+0:42                Constant:
+0:42                  0 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:42          Sequence
+0:42            Constant:
+0:42              0 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:42            Constant:
+0:42              2 (const int)
+0:42        subgroupInclusiveMul ( temp 3-component vector of int)
+0:42          vector swizzle ( temp 3-component vector of int)
+0:42            i: direct index for structure ( temp 4-component vector of int)
+0:42              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:42                  Constant:
+0:42                    0 (const uint)
+0:42                direct index ( temp uint)
+0:42                  'dti' ( in 3-component vector of uint)
+0:42                  Constant:
+0:42                    0 (const int)
+0:42              Constant:
+0:42                1 (const int)
+0:42            Sequence
+0:42              Constant:
+0:42                0 (const int)
+0:42              Constant:
+0:42                1 (const int)
+0:42              Constant:
+0:42                2 (const int)
+0:44      move second child to first child ( temp 4-component vector of float)
+0:44        f: direct index for structure ( temp 4-component vector of float)
+0:44          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:44              Constant:
+0:44                0 (const uint)
+0:44            direct index ( temp uint)
+0:44              'dti' ( in 3-component vector of uint)
+0:44              Constant:
+0:44                0 (const int)
+0:44          Constant:
+0:44            2 (const int)
+0:44        subgroupInclusiveMul ( temp 4-component vector of float)
+0:44          f: direct index for structure ( temp 4-component vector of float)
+0:44            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:44                Constant:
+0:44                  0 (const uint)
+0:44              direct index ( temp uint)
+0:44                'dti' ( in 3-component vector of uint)
+0:44                Constant:
+0:44                  0 (const int)
+0:44            Constant:
+0:44              2 (const int)
+0:45      move second child to first child ( temp float)
+0:45        direct index ( temp float)
+0:45          f: direct index for structure ( temp 4-component vector of float)
+0:45            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:45                Constant:
+0:45                  0 (const uint)
+0:45              direct index ( temp uint)
+0:45                'dti' ( in 3-component vector of uint)
+0:45                Constant:
+0:45                  0 (const int)
+0:45            Constant:
+0:45              2 (const int)
+0:45          Constant:
+0:45            0 (const int)
+0:45        subgroupInclusiveMul ( temp float)
+0:45          direct index ( temp float)
+0:45            f: direct index for structure ( temp 4-component vector of float)
+0:45              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:45                  Constant:
+0:45                    0 (const uint)
+0:45                direct index ( temp uint)
+0:45                  'dti' ( in 3-component vector of uint)
+0:45                  Constant:
+0:45                    0 (const int)
+0:45              Constant:
+0:45                2 (const int)
+0:45            Constant:
+0:45              0 (const int)
+0:46      move second child to first child ( temp 2-component vector of float)
+0:46        vector swizzle ( temp 2-component vector of float)
+0:46          f: direct index for structure ( temp 4-component vector of float)
+0:46            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:46                Constant:
+0:46                  0 (const uint)
+0:46              direct index ( temp uint)
+0:46                'dti' ( in 3-component vector of uint)
+0:46                Constant:
+0:46                  0 (const int)
+0:46            Constant:
+0:46              2 (const int)
+0:46          Sequence
+0:46            Constant:
+0:46              0 (const int)
+0:46            Constant:
+0:46              1 (const int)
+0:46        subgroupInclusiveMul ( temp 2-component vector of float)
+0:46          vector swizzle ( temp 2-component vector of float)
+0:46            f: direct index for structure ( temp 4-component vector of float)
+0:46              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:46                  Constant:
+0:46                    0 (const uint)
+0:46                direct index ( temp uint)
+0:46                  'dti' ( in 3-component vector of uint)
+0:46                  Constant:
+0:46                    0 (const int)
+0:46              Constant:
+0:46                2 (const int)
+0:46            Sequence
+0:46              Constant:
+0:46                0 (const int)
+0:46              Constant:
+0:46                1 (const int)
+0:47      move second child to first child ( temp 3-component vector of float)
+0:47        vector swizzle ( temp 3-component vector of float)
+0:47          f: direct index for structure ( temp 4-component vector of float)
+0:47            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:47                Constant:
+0:47                  0 (const uint)
+0:47              direct index ( temp uint)
+0:47                'dti' ( in 3-component vector of uint)
+0:47                Constant:
+0:47                  0 (const int)
+0:47            Constant:
+0:47              2 (const int)
+0:47          Sequence
+0:47            Constant:
+0:47              0 (const int)
+0:47            Constant:
+0:47              1 (const int)
+0:47            Constant:
+0:47              2 (const int)
+0:47        subgroupInclusiveMul ( temp 3-component vector of float)
+0:47          vector swizzle ( temp 3-component vector of float)
+0:47            f: direct index for structure ( temp 4-component vector of float)
+0:47              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:47                  Constant:
+0:47                    0 (const uint)
+0:47                direct index ( temp uint)
+0:47                  'dti' ( in 3-component vector of uint)
+0:47                  Constant:
+0:47                    0 (const int)
+0:47              Constant:
+0:47                2 (const int)
+0:47            Sequence
+0:47              Constant:
+0:47                0 (const int)
+0:47              Constant:
+0:47                1 (const int)
+0:47              Constant:
+0:47                2 (const int)
+0:49      move second child to first child ( temp 4-component vector of double)
+0:49        d: direct index for structure ( temp 4-component vector of double)
+0:49          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:49              Constant:
+0:49                0 (const uint)
+0:49            direct index ( temp uint)
+0:49              'dti' ( in 3-component vector of uint)
+0:49              Constant:
+0:49                0 (const int)
+0:49          Constant:
+0:49            3 (const int)
+0:49        subgroupInclusiveMul ( temp 4-component vector of double)
+0:49          d: direct index for structure ( temp 4-component vector of double)
+0:49            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:49                Constant:
+0:49                  0 (const uint)
+0:49              direct index ( temp uint)
+0:49                'dti' ( in 3-component vector of uint)
+0:49                Constant:
+0:49                  0 (const int)
+0:49            Constant:
+0:49              3 (const int)
+0:50      move second child to first child ( temp double)
+0:50        direct index ( temp double)
+0:50          d: direct index for structure ( temp 4-component vector of double)
+0:50            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:50                Constant:
+0:50                  0 (const uint)
+0:50              direct index ( temp uint)
+0:50                'dti' ( in 3-component vector of uint)
+0:50                Constant:
+0:50                  0 (const int)
+0:50            Constant:
+0:50              3 (const int)
+0:50          Constant:
+0:50            0 (const int)
+0:50        subgroupInclusiveMul ( temp double)
+0:50          direct index ( temp double)
+0:50            d: direct index for structure ( temp 4-component vector of double)
+0:50              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:50                  Constant:
+0:50                    0 (const uint)
+0:50                direct index ( temp uint)
+0:50                  'dti' ( in 3-component vector of uint)
+0:50                  Constant:
+0:50                    0 (const int)
+0:50              Constant:
+0:50                3 (const int)
+0:50            Constant:
+0:50              0 (const int)
+0:51      move second child to first child ( temp 2-component vector of double)
+0:51        vector swizzle ( temp 2-component vector of double)
+0:51          d: direct index for structure ( temp 4-component vector of double)
+0:51            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:51                Constant:
+0:51                  0 (const uint)
+0:51              direct index ( temp uint)
+0:51                'dti' ( in 3-component vector of uint)
+0:51                Constant:
+0:51                  0 (const int)
+0:51            Constant:
+0:51              3 (const int)
+0:51          Sequence
+0:51            Constant:
+0:51              0 (const int)
+0:51            Constant:
+0:51              1 (const int)
+0:51        subgroupInclusiveMul ( temp 2-component vector of double)
+0:51          vector swizzle ( temp 2-component vector of double)
+0:51            d: direct index for structure ( temp 4-component vector of double)
+0:51              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:51                  Constant:
+0:51                    0 (const uint)
+0:51                direct index ( temp uint)
+0:51                  'dti' ( in 3-component vector of uint)
+0:51                  Constant:
+0:51                    0 (const int)
+0:51              Constant:
+0:51                3 (const int)
+0:51            Sequence
+0:51              Constant:
+0:51                0 (const int)
+0:51              Constant:
+0:51                1 (const int)
+0:52      move second child to first child ( temp 3-component vector of double)
+0:52        vector swizzle ( temp 3-component vector of double)
+0:52          d: direct index for structure ( temp 4-component vector of double)
+0:52            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:52                Constant:
+0:52                  0 (const uint)
+0:52              direct index ( temp uint)
+0:52                'dti' ( in 3-component vector of uint)
+0:52                Constant:
+0:52                  0 (const int)
+0:52            Constant:
+0:52              3 (const int)
+0:52          Sequence
+0:52            Constant:
+0:52              0 (const int)
+0:52            Constant:
+0:52              1 (const int)
+0:52            Constant:
+0:52              2 (const int)
+0:52        subgroupInclusiveMul ( temp 3-component vector of double)
+0:52          vector swizzle ( temp 3-component vector of double)
+0:52            d: direct index for structure ( temp 4-component vector of double)
+0:52              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:52                  Constant:
+0:52                    0 (const uint)
+0:52                direct index ( temp uint)
+0:52                  'dti' ( in 3-component vector of uint)
+0:52                  Constant:
+0:52                    0 (const int)
+0:52              Constant:
+0:52                3 (const int)
+0:52            Sequence
+0:52              Constant:
+0:52                0 (const int)
+0:52              Constant:
+0:52                1 (const int)
+0:52              Constant:
+0:52                2 (const int)
+0:13  Function Definition: CSMain( ( temp void)
+0:13    Function Parameters: 
+0:?     Sequence
+0:13      move second child to first child ( temp 3-component vector of uint)
+0:?         'dti' ( temp 3-component vector of uint)
+0:?         'dti' ( in 3-component vector of uint GlobalInvocationID)
+0:13      Function Call: @CSMain(vu3; ( temp void)
+0:?         'dti' ( temp 3-component vector of uint)
+0:?   Linker Objects
+0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:?     'dti' ( in 3-component vector of uint GlobalInvocationID)
+
+
+Linked compute stage:
+
+
+Shader version: 500
+local_size = (32, 16, 1)
+0:? Sequence
+0:13  Function Definition: @CSMain(vu3; ( temp void)
+0:13    Function Parameters: 
+0:13      'dti' ( in 3-component vector of uint)
+0:?     Sequence
+0:14      move second child to first child ( temp 4-component vector of uint)
+0:14        u: direct index for structure ( temp 4-component vector of uint)
+0:14          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:14              Constant:
+0:14                0 (const uint)
+0:14            direct index ( temp uint)
+0:14              'dti' ( in 3-component vector of uint)
+0:14              Constant:
+0:14                0 (const int)
+0:14          Constant:
+0:14            0 (const int)
+0:14        subgroupInclusiveAdd ( temp 4-component vector of uint)
+0:14          u: direct index for structure ( temp 4-component vector of uint)
+0:14            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:14                Constant:
+0:14                  0 (const uint)
+0:14              direct index ( temp uint)
+0:14                'dti' ( in 3-component vector of uint)
+0:14                Constant:
+0:14                  0 (const int)
+0:14            Constant:
+0:14              0 (const int)
+0:15      move second child to first child ( temp uint)
+0:15        direct index ( temp uint)
+0:15          u: direct index for structure ( temp 4-component vector of uint)
+0:15            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:15                Constant:
+0:15                  0 (const uint)
+0:15              direct index ( temp uint)
+0:15                'dti' ( in 3-component vector of uint)
+0:15                Constant:
+0:15                  0 (const int)
+0:15            Constant:
+0:15              0 (const int)
+0:15          Constant:
+0:15            0 (const int)
+0:15        subgroupInclusiveAdd ( temp uint)
+0:15          direct index ( temp uint)
+0:15            u: direct index for structure ( temp 4-component vector of uint)
+0:15              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:15                  Constant:
+0:15                    0 (const uint)
+0:15                direct index ( temp uint)
+0:15                  'dti' ( in 3-component vector of uint)
+0:15                  Constant:
+0:15                    0 (const int)
+0:15              Constant:
+0:15                0 (const int)
+0:15            Constant:
+0:15              0 (const int)
+0:16      move second child to first child ( temp 2-component vector of uint)
+0:16        vector swizzle ( temp 2-component vector of uint)
+0:16          u: direct index for structure ( temp 4-component vector of uint)
+0:16            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:16                Constant:
+0:16                  0 (const uint)
+0:16              direct index ( temp uint)
+0:16                'dti' ( in 3-component vector of uint)
+0:16                Constant:
+0:16                  0 (const int)
+0:16            Constant:
+0:16              0 (const int)
+0:16          Sequence
+0:16            Constant:
+0:16              0 (const int)
+0:16            Constant:
+0:16              1 (const int)
+0:16        subgroupInclusiveAdd ( temp 2-component vector of uint)
+0:16          vector swizzle ( temp 2-component vector of uint)
+0:16            u: direct index for structure ( temp 4-component vector of uint)
+0:16              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:16                  Constant:
+0:16                    0 (const uint)
+0:16                direct index ( temp uint)
+0:16                  'dti' ( in 3-component vector of uint)
+0:16                  Constant:
+0:16                    0 (const int)
+0:16              Constant:
+0:16                0 (const int)
+0:16            Sequence
+0:16              Constant:
+0:16                0 (const int)
+0:16              Constant:
+0:16                1 (const int)
+0:17      move second child to first child ( temp 3-component vector of uint)
+0:17        vector swizzle ( temp 3-component vector of uint)
+0:17          u: direct index for structure ( temp 4-component vector of uint)
+0:17            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:17                Constant:
+0:17                  0 (const uint)
+0:17              direct index ( temp uint)
+0:17                'dti' ( in 3-component vector of uint)
+0:17                Constant:
+0:17                  0 (const int)
+0:17            Constant:
+0:17              0 (const int)
+0:17          Sequence
+0:17            Constant:
+0:17              0 (const int)
+0:17            Constant:
+0:17              1 (const int)
+0:17            Constant:
+0:17              2 (const int)
+0:17        subgroupInclusiveAdd ( temp 3-component vector of uint)
+0:17          vector swizzle ( temp 3-component vector of uint)
+0:17            u: direct index for structure ( temp 4-component vector of uint)
+0:17              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:17                  Constant:
+0:17                    0 (const uint)
+0:17                direct index ( temp uint)
+0:17                  'dti' ( in 3-component vector of uint)
+0:17                  Constant:
+0:17                    0 (const int)
+0:17              Constant:
+0:17                0 (const int)
+0:17            Sequence
+0:17              Constant:
+0:17                0 (const int)
+0:17              Constant:
+0:17                1 (const int)
+0:17              Constant:
+0:17                2 (const int)
+0:19      move second child to first child ( temp 4-component vector of int)
+0:19        i: direct index for structure ( temp 4-component vector of int)
+0:19          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:19              Constant:
+0:19                0 (const uint)
+0:19            direct index ( temp uint)
+0:19              'dti' ( in 3-component vector of uint)
+0:19              Constant:
+0:19                0 (const int)
+0:19          Constant:
+0:19            1 (const int)
+0:19        subgroupInclusiveAdd ( temp 4-component vector of int)
+0:19          i: direct index for structure ( temp 4-component vector of int)
+0:19            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:19                Constant:
+0:19                  0 (const uint)
+0:19              direct index ( temp uint)
+0:19                'dti' ( in 3-component vector of uint)
+0:19                Constant:
+0:19                  0 (const int)
+0:19            Constant:
+0:19              1 (const int)
+0:20      move second child to first child ( temp int)
+0:20        direct index ( temp int)
+0:20          i: direct index for structure ( temp 4-component vector of int)
+0:20            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:20                Constant:
+0:20                  0 (const uint)
+0:20              direct index ( temp uint)
+0:20                'dti' ( in 3-component vector of uint)
+0:20                Constant:
+0:20                  0 (const int)
+0:20            Constant:
+0:20              1 (const int)
+0:20          Constant:
+0:20            0 (const int)
+0:20        subgroupInclusiveAdd ( temp int)
+0:20          direct index ( temp int)
+0:20            i: direct index for structure ( temp 4-component vector of int)
+0:20              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:20                  Constant:
+0:20                    0 (const uint)
+0:20                direct index ( temp uint)
+0:20                  'dti' ( in 3-component vector of uint)
+0:20                  Constant:
+0:20                    0 (const int)
+0:20              Constant:
+0:20                1 (const int)
+0:20            Constant:
+0:20              0 (const int)
+0:21      move second child to first child ( temp 2-component vector of int)
+0:21        vector swizzle ( temp 2-component vector of int)
+0:21          i: direct index for structure ( temp 4-component vector of int)
+0:21            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:21                Constant:
+0:21                  0 (const uint)
+0:21              direct index ( temp uint)
+0:21                'dti' ( in 3-component vector of uint)
+0:21                Constant:
+0:21                  0 (const int)
+0:21            Constant:
+0:21              1 (const int)
+0:21          Sequence
+0:21            Constant:
+0:21              0 (const int)
+0:21            Constant:
+0:21              1 (const int)
+0:21        subgroupInclusiveAdd ( temp 2-component vector of int)
+0:21          vector swizzle ( temp 2-component vector of int)
+0:21            i: direct index for structure ( temp 4-component vector of int)
+0:21              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:21                  Constant:
+0:21                    0 (const uint)
+0:21                direct index ( temp uint)
+0:21                  'dti' ( in 3-component vector of uint)
+0:21                  Constant:
+0:21                    0 (const int)
+0:21              Constant:
+0:21                1 (const int)
+0:21            Sequence
+0:21              Constant:
+0:21                0 (const int)
+0:21              Constant:
+0:21                1 (const int)
+0:22      move second child to first child ( temp 3-component vector of int)
+0:22        vector swizzle ( temp 3-component vector of int)
+0:22          i: direct index for structure ( temp 4-component vector of int)
+0:22            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:22                Constant:
+0:22                  0 (const uint)
+0:22              direct index ( temp uint)
+0:22                'dti' ( in 3-component vector of uint)
+0:22                Constant:
+0:22                  0 (const int)
+0:22            Constant:
+0:22              1 (const int)
+0:22          Sequence
+0:22            Constant:
+0:22              0 (const int)
+0:22            Constant:
+0:22              1 (const int)
+0:22            Constant:
+0:22              2 (const int)
+0:22        subgroupInclusiveAdd ( temp 3-component vector of int)
+0:22          vector swizzle ( temp 3-component vector of int)
+0:22            i: direct index for structure ( temp 4-component vector of int)
+0:22              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:22                  Constant:
+0:22                    0 (const uint)
+0:22                direct index ( temp uint)
+0:22                  'dti' ( in 3-component vector of uint)
+0:22                  Constant:
+0:22                    0 (const int)
+0:22              Constant:
+0:22                1 (const int)
+0:22            Sequence
+0:22              Constant:
+0:22                0 (const int)
+0:22              Constant:
+0:22                1 (const int)
+0:22              Constant:
+0:22                2 (const int)
+0:24      move second child to first child ( temp 4-component vector of float)
+0:24        f: direct index for structure ( temp 4-component vector of float)
+0:24          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:24              Constant:
+0:24                0 (const uint)
+0:24            direct index ( temp uint)
+0:24              'dti' ( in 3-component vector of uint)
+0:24              Constant:
+0:24                0 (const int)
+0:24          Constant:
+0:24            2 (const int)
+0:24        subgroupInclusiveAdd ( temp 4-component vector of float)
+0:24          f: direct index for structure ( temp 4-component vector of float)
+0:24            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:24                Constant:
+0:24                  0 (const uint)
+0:24              direct index ( temp uint)
+0:24                'dti' ( in 3-component vector of uint)
+0:24                Constant:
+0:24                  0 (const int)
+0:24            Constant:
+0:24              2 (const int)
+0:25      move second child to first child ( temp float)
+0:25        direct index ( temp float)
+0:25          f: direct index for structure ( temp 4-component vector of float)
+0:25            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:25                Constant:
+0:25                  0 (const uint)
+0:25              direct index ( temp uint)
+0:25                'dti' ( in 3-component vector of uint)
+0:25                Constant:
+0:25                  0 (const int)
+0:25            Constant:
+0:25              2 (const int)
+0:25          Constant:
+0:25            0 (const int)
+0:25        subgroupInclusiveAdd ( temp float)
+0:25          direct index ( temp float)
+0:25            f: direct index for structure ( temp 4-component vector of float)
+0:25              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:25                  Constant:
+0:25                    0 (const uint)
+0:25                direct index ( temp uint)
+0:25                  'dti' ( in 3-component vector of uint)
+0:25                  Constant:
+0:25                    0 (const int)
+0:25              Constant:
+0:25                2 (const int)
+0:25            Constant:
+0:25              0 (const int)
+0:26      move second child to first child ( temp 2-component vector of float)
+0:26        vector swizzle ( temp 2-component vector of float)
+0:26          f: direct index for structure ( temp 4-component vector of float)
+0:26            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:26                Constant:
+0:26                  0 (const uint)
+0:26              direct index ( temp uint)
+0:26                'dti' ( in 3-component vector of uint)
+0:26                Constant:
+0:26                  0 (const int)
+0:26            Constant:
+0:26              2 (const int)
+0:26          Sequence
+0:26            Constant:
+0:26              0 (const int)
+0:26            Constant:
+0:26              1 (const int)
+0:26        subgroupInclusiveAdd ( temp 2-component vector of float)
+0:26          vector swizzle ( temp 2-component vector of float)
+0:26            f: direct index for structure ( temp 4-component vector of float)
+0:26              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:26                  Constant:
+0:26                    0 (const uint)
+0:26                direct index ( temp uint)
+0:26                  'dti' ( in 3-component vector of uint)
+0:26                  Constant:
+0:26                    0 (const int)
+0:26              Constant:
+0:26                2 (const int)
+0:26            Sequence
+0:26              Constant:
+0:26                0 (const int)
+0:26              Constant:
+0:26                1 (const int)
+0:27      move second child to first child ( temp 3-component vector of float)
+0:27        vector swizzle ( temp 3-component vector of float)
+0:27          f: direct index for structure ( temp 4-component vector of float)
+0:27            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:27                Constant:
+0:27                  0 (const uint)
+0:27              direct index ( temp uint)
+0:27                'dti' ( in 3-component vector of uint)
+0:27                Constant:
+0:27                  0 (const int)
+0:27            Constant:
+0:27              2 (const int)
+0:27          Sequence
+0:27            Constant:
+0:27              0 (const int)
+0:27            Constant:
+0:27              1 (const int)
+0:27            Constant:
+0:27              2 (const int)
+0:27        subgroupInclusiveAdd ( temp 3-component vector of float)
+0:27          vector swizzle ( temp 3-component vector of float)
+0:27            f: direct index for structure ( temp 4-component vector of float)
+0:27              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:27                  Constant:
+0:27                    0 (const uint)
+0:27                direct index ( temp uint)
+0:27                  'dti' ( in 3-component vector of uint)
+0:27                  Constant:
+0:27                    0 (const int)
+0:27              Constant:
+0:27                2 (const int)
+0:27            Sequence
+0:27              Constant:
+0:27                0 (const int)
+0:27              Constant:
+0:27                1 (const int)
+0:27              Constant:
+0:27                2 (const int)
+0:29      move second child to first child ( temp 4-component vector of double)
+0:29        d: direct index for structure ( temp 4-component vector of double)
+0:29          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:29              Constant:
+0:29                0 (const uint)
+0:29            direct index ( temp uint)
+0:29              'dti' ( in 3-component vector of uint)
+0:29              Constant:
+0:29                0 (const int)
+0:29          Constant:
+0:29            3 (const int)
+0:29        subgroupInclusiveAdd ( temp 4-component vector of double)
+0:29          d: direct index for structure ( temp 4-component vector of double)
+0:29            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:29                Constant:
+0:29                  0 (const uint)
+0:29              direct index ( temp uint)
+0:29                'dti' ( in 3-component vector of uint)
+0:29                Constant:
+0:29                  0 (const int)
+0:29            Constant:
+0:29              3 (const int)
+0:30      move second child to first child ( temp double)
+0:30        direct index ( temp double)
+0:30          d: direct index for structure ( temp 4-component vector of double)
+0:30            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:30                Constant:
+0:30                  0 (const uint)
+0:30              direct index ( temp uint)
+0:30                'dti' ( in 3-component vector of uint)
+0:30                Constant:
+0:30                  0 (const int)
+0:30            Constant:
+0:30              3 (const int)
+0:30          Constant:
+0:30            0 (const int)
+0:30        subgroupInclusiveAdd ( temp double)
+0:30          direct index ( temp double)
+0:30            d: direct index for structure ( temp 4-component vector of double)
+0:30              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:30                  Constant:
+0:30                    0 (const uint)
+0:30                direct index ( temp uint)
+0:30                  'dti' ( in 3-component vector of uint)
+0:30                  Constant:
+0:30                    0 (const int)
+0:30              Constant:
+0:30                3 (const int)
+0:30            Constant:
+0:30              0 (const int)
+0:31      move second child to first child ( temp 2-component vector of double)
+0:31        vector swizzle ( temp 2-component vector of double)
+0:31          d: direct index for structure ( temp 4-component vector of double)
+0:31            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:31                Constant:
+0:31                  0 (const uint)
+0:31              direct index ( temp uint)
+0:31                'dti' ( in 3-component vector of uint)
+0:31                Constant:
+0:31                  0 (const int)
+0:31            Constant:
+0:31              3 (const int)
+0:31          Sequence
+0:31            Constant:
+0:31              0 (const int)
+0:31            Constant:
+0:31              1 (const int)
+0:31        subgroupInclusiveAdd ( temp 2-component vector of double)
+0:31          vector swizzle ( temp 2-component vector of double)
+0:31            d: direct index for structure ( temp 4-component vector of double)
+0:31              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:31                  Constant:
+0:31                    0 (const uint)
+0:31                direct index ( temp uint)
+0:31                  'dti' ( in 3-component vector of uint)
+0:31                  Constant:
+0:31                    0 (const int)
+0:31              Constant:
+0:31                3 (const int)
+0:31            Sequence
+0:31              Constant:
+0:31                0 (const int)
+0:31              Constant:
+0:31                1 (const int)
+0:32      move second child to first child ( temp 3-component vector of double)
+0:32        vector swizzle ( temp 3-component vector of double)
+0:32          d: direct index for structure ( temp 4-component vector of double)
+0:32            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:32                Constant:
+0:32                  0 (const uint)
+0:32              direct index ( temp uint)
+0:32                'dti' ( in 3-component vector of uint)
+0:32                Constant:
+0:32                  0 (const int)
+0:32            Constant:
+0:32              3 (const int)
+0:32          Sequence
+0:32            Constant:
+0:32              0 (const int)
+0:32            Constant:
+0:32              1 (const int)
+0:32            Constant:
+0:32              2 (const int)
+0:32        subgroupInclusiveAdd ( temp 3-component vector of double)
+0:32          vector swizzle ( temp 3-component vector of double)
+0:32            d: direct index for structure ( temp 4-component vector of double)
+0:32              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:32                  Constant:
+0:32                    0 (const uint)
+0:32                direct index ( temp uint)
+0:32                  'dti' ( in 3-component vector of uint)
+0:32                  Constant:
+0:32                    0 (const int)
+0:32              Constant:
+0:32                3 (const int)
+0:32            Sequence
+0:32              Constant:
+0:32                0 (const int)
+0:32              Constant:
+0:32                1 (const int)
+0:32              Constant:
+0:32                2 (const int)
+0:34      move second child to first child ( temp 4-component vector of uint)
+0:34        u: direct index for structure ( temp 4-component vector of uint)
+0:34          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:34              Constant:
+0:34                0 (const uint)
+0:34            direct index ( temp uint)
+0:34              'dti' ( in 3-component vector of uint)
+0:34              Constant:
+0:34                0 (const int)
+0:34          Constant:
+0:34            0 (const int)
+0:34        subgroupInclusiveMul ( temp 4-component vector of uint)
+0:34          u: direct index for structure ( temp 4-component vector of uint)
+0:34            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:34                Constant:
+0:34                  0 (const uint)
+0:34              direct index ( temp uint)
+0:34                'dti' ( in 3-component vector of uint)
+0:34                Constant:
+0:34                  0 (const int)
+0:34            Constant:
+0:34              0 (const int)
+0:35      move second child to first child ( temp uint)
+0:35        direct index ( temp uint)
+0:35          u: direct index for structure ( temp 4-component vector of uint)
+0:35            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:35                Constant:
+0:35                  0 (const uint)
+0:35              direct index ( temp uint)
+0:35                'dti' ( in 3-component vector of uint)
+0:35                Constant:
+0:35                  0 (const int)
+0:35            Constant:
+0:35              0 (const int)
+0:35          Constant:
+0:35            0 (const int)
+0:35        subgroupInclusiveMul ( temp uint)
+0:35          direct index ( temp uint)
+0:35            u: direct index for structure ( temp 4-component vector of uint)
+0:35              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:35                  Constant:
+0:35                    0 (const uint)
+0:35                direct index ( temp uint)
+0:35                  'dti' ( in 3-component vector of uint)
+0:35                  Constant:
+0:35                    0 (const int)
+0:35              Constant:
+0:35                0 (const int)
+0:35            Constant:
+0:35              0 (const int)
+0:36      move second child to first child ( temp 2-component vector of uint)
+0:36        vector swizzle ( temp 2-component vector of uint)
+0:36          u: direct index for structure ( temp 4-component vector of uint)
+0:36            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:36                Constant:
+0:36                  0 (const uint)
+0:36              direct index ( temp uint)
+0:36                'dti' ( in 3-component vector of uint)
+0:36                Constant:
+0:36                  0 (const int)
+0:36            Constant:
+0:36              0 (const int)
+0:36          Sequence
+0:36            Constant:
+0:36              0 (const int)
+0:36            Constant:
+0:36              1 (const int)
+0:36        subgroupInclusiveMul ( temp 2-component vector of uint)
+0:36          vector swizzle ( temp 2-component vector of uint)
+0:36            u: direct index for structure ( temp 4-component vector of uint)
+0:36              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:36                  Constant:
+0:36                    0 (const uint)
+0:36                direct index ( temp uint)
+0:36                  'dti' ( in 3-component vector of uint)
+0:36                  Constant:
+0:36                    0 (const int)
+0:36              Constant:
+0:36                0 (const int)
+0:36            Sequence
+0:36              Constant:
+0:36                0 (const int)
+0:36              Constant:
+0:36                1 (const int)
+0:37      move second child to first child ( temp 3-component vector of uint)
+0:37        vector swizzle ( temp 3-component vector of uint)
+0:37          u: direct index for structure ( temp 4-component vector of uint)
+0:37            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:37                Constant:
+0:37                  0 (const uint)
+0:37              direct index ( temp uint)
+0:37                'dti' ( in 3-component vector of uint)
+0:37                Constant:
+0:37                  0 (const int)
+0:37            Constant:
+0:37              0 (const int)
+0:37          Sequence
+0:37            Constant:
+0:37              0 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:37            Constant:
+0:37              2 (const int)
+0:37        subgroupInclusiveMul ( temp 3-component vector of uint)
+0:37          vector swizzle ( temp 3-component vector of uint)
+0:37            u: direct index for structure ( temp 4-component vector of uint)
+0:37              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:37                  Constant:
+0:37                    0 (const uint)
+0:37                direct index ( temp uint)
+0:37                  'dti' ( in 3-component vector of uint)
+0:37                  Constant:
+0:37                    0 (const int)
+0:37              Constant:
+0:37                0 (const int)
+0:37            Sequence
+0:37              Constant:
+0:37                0 (const int)
+0:37              Constant:
+0:37                1 (const int)
+0:37              Constant:
+0:37                2 (const int)
+0:39      move second child to first child ( temp 4-component vector of int)
+0:39        i: direct index for structure ( temp 4-component vector of int)
+0:39          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:39              Constant:
+0:39                0 (const uint)
+0:39            direct index ( temp uint)
+0:39              'dti' ( in 3-component vector of uint)
+0:39              Constant:
+0:39                0 (const int)
+0:39          Constant:
+0:39            1 (const int)
+0:39        subgroupInclusiveMul ( temp 4-component vector of int)
+0:39          i: direct index for structure ( temp 4-component vector of int)
+0:39            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:39                Constant:
+0:39                  0 (const uint)
+0:39              direct index ( temp uint)
+0:39                'dti' ( in 3-component vector of uint)
+0:39                Constant:
+0:39                  0 (const int)
+0:39            Constant:
+0:39              1 (const int)
+0:40      move second child to first child ( temp int)
+0:40        direct index ( temp int)
+0:40          i: direct index for structure ( temp 4-component vector of int)
+0:40            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:40                Constant:
+0:40                  0 (const uint)
+0:40              direct index ( temp uint)
+0:40                'dti' ( in 3-component vector of uint)
+0:40                Constant:
+0:40                  0 (const int)
+0:40            Constant:
+0:40              1 (const int)
+0:40          Constant:
+0:40            0 (const int)
+0:40        subgroupInclusiveMul ( temp int)
+0:40          direct index ( temp int)
+0:40            i: direct index for structure ( temp 4-component vector of int)
+0:40              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:40                  Constant:
+0:40                    0 (const uint)
+0:40                direct index ( temp uint)
+0:40                  'dti' ( in 3-component vector of uint)
+0:40                  Constant:
+0:40                    0 (const int)
+0:40              Constant:
+0:40                1 (const int)
+0:40            Constant:
+0:40              0 (const int)
+0:41      move second child to first child ( temp 2-component vector of int)
+0:41        vector swizzle ( temp 2-component vector of int)
+0:41          i: direct index for structure ( temp 4-component vector of int)
+0:41            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:41                Constant:
+0:41                  0 (const uint)
+0:41              direct index ( temp uint)
+0:41                'dti' ( in 3-component vector of uint)
+0:41                Constant:
+0:41                  0 (const int)
+0:41            Constant:
+0:41              1 (const int)
+0:41          Sequence
+0:41            Constant:
+0:41              0 (const int)
+0:41            Constant:
+0:41              1 (const int)
+0:41        subgroupInclusiveMul ( temp 2-component vector of int)
+0:41          vector swizzle ( temp 2-component vector of int)
+0:41            i: direct index for structure ( temp 4-component vector of int)
+0:41              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:41                  Constant:
+0:41                    0 (const uint)
+0:41                direct index ( temp uint)
+0:41                  'dti' ( in 3-component vector of uint)
+0:41                  Constant:
+0:41                    0 (const int)
+0:41              Constant:
+0:41                1 (const int)
+0:41            Sequence
+0:41              Constant:
+0:41                0 (const int)
+0:41              Constant:
+0:41                1 (const int)
+0:42      move second child to first child ( temp 3-component vector of int)
+0:42        vector swizzle ( temp 3-component vector of int)
+0:42          i: direct index for structure ( temp 4-component vector of int)
+0:42            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:42                Constant:
+0:42                  0 (const uint)
+0:42              direct index ( temp uint)
+0:42                'dti' ( in 3-component vector of uint)
+0:42                Constant:
+0:42                  0 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:42          Sequence
+0:42            Constant:
+0:42              0 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:42            Constant:
+0:42              2 (const int)
+0:42        subgroupInclusiveMul ( temp 3-component vector of int)
+0:42          vector swizzle ( temp 3-component vector of int)
+0:42            i: direct index for structure ( temp 4-component vector of int)
+0:42              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:42                  Constant:
+0:42                    0 (const uint)
+0:42                direct index ( temp uint)
+0:42                  'dti' ( in 3-component vector of uint)
+0:42                  Constant:
+0:42                    0 (const int)
+0:42              Constant:
+0:42                1 (const int)
+0:42            Sequence
+0:42              Constant:
+0:42                0 (const int)
+0:42              Constant:
+0:42                1 (const int)
+0:42              Constant:
+0:42                2 (const int)
+0:44      move second child to first child ( temp 4-component vector of float)
+0:44        f: direct index for structure ( temp 4-component vector of float)
+0:44          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:44              Constant:
+0:44                0 (const uint)
+0:44            direct index ( temp uint)
+0:44              'dti' ( in 3-component vector of uint)
+0:44              Constant:
+0:44                0 (const int)
+0:44          Constant:
+0:44            2 (const int)
+0:44        subgroupInclusiveMul ( temp 4-component vector of float)
+0:44          f: direct index for structure ( temp 4-component vector of float)
+0:44            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:44                Constant:
+0:44                  0 (const uint)
+0:44              direct index ( temp uint)
+0:44                'dti' ( in 3-component vector of uint)
+0:44                Constant:
+0:44                  0 (const int)
+0:44            Constant:
+0:44              2 (const int)
+0:45      move second child to first child ( temp float)
+0:45        direct index ( temp float)
+0:45          f: direct index for structure ( temp 4-component vector of float)
+0:45            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:45                Constant:
+0:45                  0 (const uint)
+0:45              direct index ( temp uint)
+0:45                'dti' ( in 3-component vector of uint)
+0:45                Constant:
+0:45                  0 (const int)
+0:45            Constant:
+0:45              2 (const int)
+0:45          Constant:
+0:45            0 (const int)
+0:45        subgroupInclusiveMul ( temp float)
+0:45          direct index ( temp float)
+0:45            f: direct index for structure ( temp 4-component vector of float)
+0:45              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:45                  Constant:
+0:45                    0 (const uint)
+0:45                direct index ( temp uint)
+0:45                  'dti' ( in 3-component vector of uint)
+0:45                  Constant:
+0:45                    0 (const int)
+0:45              Constant:
+0:45                2 (const int)
+0:45            Constant:
+0:45              0 (const int)
+0:46      move second child to first child ( temp 2-component vector of float)
+0:46        vector swizzle ( temp 2-component vector of float)
+0:46          f: direct index for structure ( temp 4-component vector of float)
+0:46            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:46                Constant:
+0:46                  0 (const uint)
+0:46              direct index ( temp uint)
+0:46                'dti' ( in 3-component vector of uint)
+0:46                Constant:
+0:46                  0 (const int)
+0:46            Constant:
+0:46              2 (const int)
+0:46          Sequence
+0:46            Constant:
+0:46              0 (const int)
+0:46            Constant:
+0:46              1 (const int)
+0:46        subgroupInclusiveMul ( temp 2-component vector of float)
+0:46          vector swizzle ( temp 2-component vector of float)
+0:46            f: direct index for structure ( temp 4-component vector of float)
+0:46              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:46                  Constant:
+0:46                    0 (const uint)
+0:46                direct index ( temp uint)
+0:46                  'dti' ( in 3-component vector of uint)
+0:46                  Constant:
+0:46                    0 (const int)
+0:46              Constant:
+0:46                2 (const int)
+0:46            Sequence
+0:46              Constant:
+0:46                0 (const int)
+0:46              Constant:
+0:46                1 (const int)
+0:47      move second child to first child ( temp 3-component vector of float)
+0:47        vector swizzle ( temp 3-component vector of float)
+0:47          f: direct index for structure ( temp 4-component vector of float)
+0:47            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:47                Constant:
+0:47                  0 (const uint)
+0:47              direct index ( temp uint)
+0:47                'dti' ( in 3-component vector of uint)
+0:47                Constant:
+0:47                  0 (const int)
+0:47            Constant:
+0:47              2 (const int)
+0:47          Sequence
+0:47            Constant:
+0:47              0 (const int)
+0:47            Constant:
+0:47              1 (const int)
+0:47            Constant:
+0:47              2 (const int)
+0:47        subgroupInclusiveMul ( temp 3-component vector of float)
+0:47          vector swizzle ( temp 3-component vector of float)
+0:47            f: direct index for structure ( temp 4-component vector of float)
+0:47              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:47                  Constant:
+0:47                    0 (const uint)
+0:47                direct index ( temp uint)
+0:47                  'dti' ( in 3-component vector of uint)
+0:47                  Constant:
+0:47                    0 (const int)
+0:47              Constant:
+0:47                2 (const int)
+0:47            Sequence
+0:47              Constant:
+0:47                0 (const int)
+0:47              Constant:
+0:47                1 (const int)
+0:47              Constant:
+0:47                2 (const int)
+0:49      move second child to first child ( temp 4-component vector of double)
+0:49        d: direct index for structure ( temp 4-component vector of double)
+0:49          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:49              Constant:
+0:49                0 (const uint)
+0:49            direct index ( temp uint)
+0:49              'dti' ( in 3-component vector of uint)
+0:49              Constant:
+0:49                0 (const int)
+0:49          Constant:
+0:49            3 (const int)
+0:49        subgroupInclusiveMul ( temp 4-component vector of double)
+0:49          d: direct index for structure ( temp 4-component vector of double)
+0:49            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:49                Constant:
+0:49                  0 (const uint)
+0:49              direct index ( temp uint)
+0:49                'dti' ( in 3-component vector of uint)
+0:49                Constant:
+0:49                  0 (const int)
+0:49            Constant:
+0:49              3 (const int)
+0:50      move second child to first child ( temp double)
+0:50        direct index ( temp double)
+0:50          d: direct index for structure ( temp 4-component vector of double)
+0:50            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:50                Constant:
+0:50                  0 (const uint)
+0:50              direct index ( temp uint)
+0:50                'dti' ( in 3-component vector of uint)
+0:50                Constant:
+0:50                  0 (const int)
+0:50            Constant:
+0:50              3 (const int)
+0:50          Constant:
+0:50            0 (const int)
+0:50        subgroupInclusiveMul ( temp double)
+0:50          direct index ( temp double)
+0:50            d: direct index for structure ( temp 4-component vector of double)
+0:50              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:50                  Constant:
+0:50                    0 (const uint)
+0:50                direct index ( temp uint)
+0:50                  'dti' ( in 3-component vector of uint)
+0:50                  Constant:
+0:50                    0 (const int)
+0:50              Constant:
+0:50                3 (const int)
+0:50            Constant:
+0:50              0 (const int)
+0:51      move second child to first child ( temp 2-component vector of double)
+0:51        vector swizzle ( temp 2-component vector of double)
+0:51          d: direct index for structure ( temp 4-component vector of double)
+0:51            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:51                Constant:
+0:51                  0 (const uint)
+0:51              direct index ( temp uint)
+0:51                'dti' ( in 3-component vector of uint)
+0:51                Constant:
+0:51                  0 (const int)
+0:51            Constant:
+0:51              3 (const int)
+0:51          Sequence
+0:51            Constant:
+0:51              0 (const int)
+0:51            Constant:
+0:51              1 (const int)
+0:51        subgroupInclusiveMul ( temp 2-component vector of double)
+0:51          vector swizzle ( temp 2-component vector of double)
+0:51            d: direct index for structure ( temp 4-component vector of double)
+0:51              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:51                  Constant:
+0:51                    0 (const uint)
+0:51                direct index ( temp uint)
+0:51                  'dti' ( in 3-component vector of uint)
+0:51                  Constant:
+0:51                    0 (const int)
+0:51              Constant:
+0:51                3 (const int)
+0:51            Sequence
+0:51              Constant:
+0:51                0 (const int)
+0:51              Constant:
+0:51                1 (const int)
+0:52      move second child to first child ( temp 3-component vector of double)
+0:52        vector swizzle ( temp 3-component vector of double)
+0:52          d: direct index for structure ( temp 4-component vector of double)
+0:52            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:52                Constant:
+0:52                  0 (const uint)
+0:52              direct index ( temp uint)
+0:52                'dti' ( in 3-component vector of uint)
+0:52                Constant:
+0:52                  0 (const int)
+0:52            Constant:
+0:52              3 (const int)
+0:52          Sequence
+0:52            Constant:
+0:52              0 (const int)
+0:52            Constant:
+0:52              1 (const int)
+0:52            Constant:
+0:52              2 (const int)
+0:52        subgroupInclusiveMul ( temp 3-component vector of double)
+0:52          vector swizzle ( temp 3-component vector of double)
+0:52            d: direct index for structure ( temp 4-component vector of double)
+0:52              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:52                  Constant:
+0:52                    0 (const uint)
+0:52                direct index ( temp uint)
+0:52                  'dti' ( in 3-component vector of uint)
+0:52                  Constant:
+0:52                    0 (const int)
+0:52              Constant:
+0:52                3 (const int)
+0:52            Sequence
+0:52              Constant:
+0:52                0 (const int)
+0:52              Constant:
+0:52                1 (const int)
+0:52              Constant:
+0:52                2 (const int)
+0:13  Function Definition: CSMain( ( temp void)
+0:13    Function Parameters: 
+0:?     Sequence
+0:13      move second child to first child ( temp 3-component vector of uint)
+0:?         'dti' ( temp 3-component vector of uint)
+0:?         'dti' ( in 3-component vector of uint GlobalInvocationID)
+0:13      Function Call: @CSMain(vu3; ( temp void)
+0:?         'dti' ( temp 3-component vector of uint)
+0:?   Linker Objects
+0:?     'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:?     'dti' ( in 3-component vector of uint GlobalInvocationID)
+
+// Module Version 10000
+// Generated by (magic number): 80002
+// Id's are bound by 358
+
+                              Capability Shader
+                              Capability Float64
+                              Capability GroupNonUniform
+                              Capability GroupNonUniformArithmetic
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "CSMain" 353
+                              ExecutionMode 4 LocalSize 32 16 1
+                              Source HLSL 500
+                              Name 4  "CSMain"
+                              Name 11  "@CSMain(vu3;"
+                              Name 10  "dti"
+                              Name 20  "Types"
+                              MemberName 20(Types) 0  "u"
+                              MemberName 20(Types) 1  "i"
+                              MemberName 20(Types) 2  "f"
+                              MemberName 20(Types) 3  "d"
+                              Name 22  "data"
+                              MemberName 22(data) 0  "@data"
+                              Name 24  "data"
+                              Name 351  "dti"
+                              Name 353  "dti"
+                              Name 355  "param"
+                              MemberDecorate 20(Types) 0 Offset 0
+                              MemberDecorate 20(Types) 1 Offset 16
+                              MemberDecorate 20(Types) 2 Offset 32
+                              MemberDecorate 20(Types) 3 Offset 64
+                              Decorate 21 ArrayStride 96
+                              MemberDecorate 22(data) 0 Offset 0
+                              Decorate 22(data) BufferBlock
+                              Decorate 24(data) DescriptorSet 0
+                              Decorate 353(dti) 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:             TypeVector 6(int) 4
+              14:             TypeInt 32 1
+              15:             TypeVector 14(int) 4
+              16:             TypeFloat 32
+              17:             TypeVector 16(float) 4
+              18:             TypeFloat 64
+              19:             TypeVector 18(float) 4
+       20(Types):             TypeStruct 13(ivec4) 15(ivec4) 17(fvec4) 19(fvec4)
+              21:             TypeRuntimeArray 20(Types)
+        22(data):             TypeStruct 21
+              23:             TypePointer Uniform 22(data)
+        24(data):     23(ptr) Variable Uniform
+              25:     14(int) Constant 0
+              26:      6(int) Constant 0
+              27:             TypePointer Function 6(int)
+              32:             TypePointer Uniform 13(ivec4)
+              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(fvec4)
+             170:             TypePointer Uniform 18(float)
+             179:             TypeVector 18(float) 2
+             191:             TypeVector 18(float) 3
+             352:             TypePointer Input 7(ivec3)
+        353(dti):    352(ptr) Variable Input
+       4(CSMain):           2 Function None 3
+               5:             Label
+        351(dti):      8(ptr) Variable Function
+      355(param):      8(ptr) Variable Function
+             354:    7(ivec3) Load 353(dti)
+                              Store 351(dti) 354
+             356:    7(ivec3) Load 351(dti)
+                              Store 355(param) 356
+             357:           2 FunctionCall 11(@CSMain(vu3;) 355(param)
+                              Return
+                              FunctionEnd
+11(@CSMain(vu3;):           2 Function None 9
+         10(dti):      8(ptr) FunctionParameter
+              12:             Label
+              28:     27(ptr) AccessChain 10(dti) 26
+              29:      6(int) Load 28
+              30:     27(ptr) AccessChain 10(dti) 26
+              31:      6(int) Load 30
+              33:     32(ptr) AccessChain 24(data) 25 31 25
+              34:   13(ivec4) Load 33
+              36:   13(ivec4) GroupNonUniformIAdd 35 InclusiveScan 34
+              37:     32(ptr) AccessChain 24(data) 25 29 25
+                              Store 37 36
+              38:     27(ptr) AccessChain 10(dti) 26
+              39:      6(int) Load 38
+              40:     27(ptr) AccessChain 10(dti) 26
+              41:      6(int) Load 40
+              43:     42(ptr) AccessChain 24(data) 25 41 25 26
+              44:      6(int) Load 43
+              45:      6(int) GroupNonUniformIAdd 35 InclusiveScan 44
+              46:     42(ptr) AccessChain 24(data) 25 39 25 26
+                              Store 46 45
+              47:     27(ptr) AccessChain 10(dti) 26
+              48:      6(int) Load 47
+              49:     27(ptr) AccessChain 10(dti) 26
+              50:      6(int) Load 49
+              52:     32(ptr) AccessChain 24(data) 25 50 25
+              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
+              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
+             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
+             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(fvec4) Load 162
+             164:   19(fvec4) 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(float) Load 171
+             173:   18(float) 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(fvec4) Load 180
+             182:  179(fvec2) VectorShuffle 181 181 0 1
+             183:  179(fvec2) GroupNonUniformFAdd 35 InclusiveScan 182
+             184:    161(ptr) AccessChain 24(data) 25 176 158
+             185:   19(fvec4) Load 184
+             186:   19(fvec4) VectorShuffle 185 183 4 5 2 3
+                              Store 184 186
+             187:     27(ptr) AccessChain 10(dti) 26
+             188:      6(int) Load 187
+             189:     27(ptr) AccessChain 10(dti) 26
+             190:      6(int) Load 189
+             192:    161(ptr) AccessChain 24(data) 25 190 158
+             193:   19(fvec4) Load 192
+             194:  191(fvec3) VectorShuffle 193 193 0 1 2
+             195:  191(fvec3) GroupNonUniformFAdd 35 InclusiveScan 194
+             196:    161(ptr) AccessChain 24(data) 25 188 158
+             197:   19(fvec4) Load 196
+             198:   19(fvec4) 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
+             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
+             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
+             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(fvec4) Load 317
+             319:   19(fvec4) 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(float) Load 325
+             327:   18(float) GroupNonUniformFMul 35 InclusiveScan 326
+             328:    170(ptr) AccessChain 24(data) 25 322 158 26
+                              Store 328 327
+             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(fvec4) Load 333
+             335:  179(fvec2) VectorShuffle 334 334 0 1
+             336:  179(fvec2) GroupNonUniformFMul 35 InclusiveScan 335
+             337:    161(ptr) AccessChain 24(data) 25 330 158
+             338:   19(fvec4) Load 337
+             339:   19(fvec4) 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(fvec4) Load 344
+             346:  191(fvec3) VectorShuffle 345 345 0 1 2
+             347:  191(fvec3) GroupNonUniformFMul 35 InclusiveScan 346
+             348:    161(ptr) AccessChain 24(data) 25 341 158
+             349:   19(fvec4) Load 348
+             350:   19(fvec4) VectorShuffle 349 347 4 5 6 3
+                              Store 348 350
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.wavequad.comp.out b/Test/baseResults/hlsl.wavequad.comp.out
new file mode 100644
index 0000000..79d16d3
--- /dev/null
+++ b/Test/baseResults/hlsl.wavequad.comp.out
@@ -0,0 +1,8027 @@
+hlsl.wavequad.comp
+Shader version: 500
+local_size = (32, 16, 1)
+0:? Sequence
+0:13  Function Definition: @CSMain(vu3; ( temp void)
+0:13    Function Parameters: 
+0:13      'dti' ( in 3-component vector of uint)
+0:?     Sequence
+0:14      move second child to first child ( temp 4-component vector of uint)
+0:14        u: direct index for structure ( temp 4-component vector of uint)
+0:14          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:14              Constant:
+0:14                0 (const uint)
+0:14            direct index ( temp uint)
+0:14              'dti' ( in 3-component vector of uint)
+0:14              Constant:
+0:14                0 (const int)
+0:14          Constant:
+0:14            0 (const int)
+0:14        subgroupQuadBroadcast ( temp 4-component vector of uint)
+0:14          u: direct index for structure ( temp 4-component vector of uint)
+0:14            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:14                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:14                Constant:
+0:14                  0 (const uint)
+0:14              direct index ( temp uint)
+0:14                'dti' ( in 3-component vector of uint)
+0:14                Constant:
+0:14                  0 (const int)
+0:14            Constant:
+0:14              0 (const int)
+0:14          Constant:
+0:14            0 (const uint)
+0:15      move second child to first child ( temp uint)
+0:15        direct index ( temp uint)
+0:15          u: direct index for structure ( temp 4-component vector of uint)
+0:15            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:15                Constant:
+0:15                  0 (const uint)
+0:15              direct index ( temp uint)
+0:15                'dti' ( in 3-component vector of uint)
+0:15                Constant:
+0:15                  0 (const int)
+0:15            Constant:
+0:15              0 (const int)
+0:15          Constant:
+0:15            0 (const int)
+0:15        subgroupQuadBroadcast ( temp uint)
+0:15          direct index ( temp uint)
+0:15            u: direct index for structure ( temp 4-component vector of uint)
+0:15              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:15                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:15                  Constant:
+0:15                    0 (const uint)
+0:15                direct index ( temp uint)
+0:15                  'dti' ( in 3-component vector of uint)
+0:15                  Constant:
+0:15                    0 (const int)
+0:15              Constant:
+0:15                0 (const int)
+0:15            Constant:
+0:15              0 (const int)
+0:15          Constant:
+0:15            0 (const uint)
+0:16      move second child to first child ( temp 2-component vector of uint)
+0:16        vector swizzle ( temp 2-component vector of uint)
+0:16          u: direct index for structure ( temp 4-component vector of uint)
+0:16            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:16                Constant:
+0:16                  0 (const uint)
+0:16              direct index ( temp uint)
+0:16                'dti' ( in 3-component vector of uint)
+0:16                Constant:
+0:16                  0 (const int)
+0:16            Constant:
+0:16              0 (const int)
+0:16          Sequence
+0:16            Constant:
+0:16              0 (const int)
+0:16            Constant:
+0:16              1 (const int)
+0:16        subgroupQuadBroadcast ( temp 2-component vector of uint)
+0:16          vector swizzle ( temp 2-component vector of uint)
+0:16            u: direct index for structure ( temp 4-component vector of uint)
+0:16              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:16                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:16                  Constant:
+0:16                    0 (const uint)
+0:16                direct index ( temp uint)
+0:16                  'dti' ( in 3-component vector of uint)
+0:16                  Constant:
+0:16                    0 (const int)
+0:16              Constant:
+0:16                0 (const int)
+0:16            Sequence
+0:16              Constant:
+0:16                0 (const int)
+0:16              Constant:
+0:16                1 (const int)
+0:16          Constant:
+0:16            0 (const uint)
+0:17      move second child to first child ( temp 3-component vector of uint)
+0:17        vector swizzle ( temp 3-component vector of uint)
+0:17          u: direct index for structure ( temp 4-component vector of uint)
+0:17            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:17                Constant:
+0:17                  0 (const uint)
+0:17              direct index ( temp uint)
+0:17                'dti' ( in 3-component vector of uint)
+0:17                Constant:
+0:17                  0 (const int)
+0:17            Constant:
+0:17              0 (const int)
+0:17          Sequence
+0:17            Constant:
+0:17              0 (const int)
+0:17            Constant:
+0:17              1 (const int)
+0:17            Constant:
+0:17              2 (const int)
+0:17        subgroupQuadBroadcast ( temp 3-component vector of uint)
+0:17          vector swizzle ( temp 3-component vector of uint)
+0:17            u: direct index for structure ( temp 4-component vector of uint)
+0:17              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:17                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:17                  Constant:
+0:17                    0 (const uint)
+0:17                direct index ( temp uint)
+0:17                  'dti' ( in 3-component vector of uint)
+0:17                  Constant:
+0:17                    0 (const int)
+0:17              Constant:
+0:17                0 (const int)
+0:17            Sequence
+0:17              Constant:
+0:17                0 (const int)
+0:17              Constant:
+0:17                1 (const int)
+0:17              Constant:
+0:17                2 (const int)
+0:17          Constant:
+0:17            0 (const uint)
+0:19      move second child to first child ( temp 4-component vector of int)
+0:19        i: direct index for structure ( temp 4-component vector of int)
+0:19          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:19              Constant:
+0:19                0 (const uint)
+0:19            direct index ( temp uint)
+0:19              'dti' ( in 3-component vector of uint)
+0:19              Constant:
+0:19                0 (const int)
+0:19          Constant:
+0:19            1 (const int)
+0:19        subgroupQuadBroadcast ( temp 4-component vector of int)
+0:19          i: direct index for structure ( temp 4-component vector of int)
+0:19            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:19                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:19                Constant:
+0:19                  0 (const uint)
+0:19              direct index ( temp uint)
+0:19                'dti' ( in 3-component vector of uint)
+0:19                Constant:
+0:19                  0 (const int)
+0:19            Constant:
+0:19              1 (const int)
+0:19          Constant:
+0:19            0 (const uint)
+0:20      move second child to first child ( temp int)
+0:20        direct index ( temp int)
+0:20          i: direct index for structure ( temp 4-component vector of int)
+0:20            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:20                Constant:
+0:20                  0 (const uint)
+0:20              direct index ( temp uint)
+0:20                'dti' ( in 3-component vector of uint)
+0:20                Constant:
+0:20                  0 (const int)
+0:20            Constant:
+0:20              1 (const int)
+0:20          Constant:
+0:20            0 (const int)
+0:20        subgroupQuadBroadcast ( temp int)
+0:20          direct index ( temp int)
+0:20            i: direct index for structure ( temp 4-component vector of int)
+0:20              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:20                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:20                  Constant:
+0:20                    0 (const uint)
+0:20                direct index ( temp uint)
+0:20                  'dti' ( in 3-component vector of uint)
+0:20                  Constant:
+0:20                    0 (const int)
+0:20              Constant:
+0:20                1 (const int)
+0:20            Constant:
+0:20              0 (const int)
+0:20          Constant:
+0:20            0 (const uint)
+0:21      move second child to first child ( temp 2-component vector of int)
+0:21        vector swizzle ( temp 2-component vector of int)
+0:21          i: direct index for structure ( temp 4-component vector of int)
+0:21            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:21                Constant:
+0:21                  0 (const uint)
+0:21              direct index ( temp uint)
+0:21                'dti' ( in 3-component vector of uint)
+0:21                Constant:
+0:21                  0 (const int)
+0:21            Constant:
+0:21              1 (const int)
+0:21          Sequence
+0:21            Constant:
+0:21              0 (const int)
+0:21            Constant:
+0:21              1 (const int)
+0:21        subgroupQuadBroadcast ( temp 2-component vector of int)
+0:21          vector swizzle ( temp 2-component vector of int)
+0:21            i: direct index for structure ( temp 4-component vector of int)
+0:21              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:21                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:21                  Constant:
+0:21                    0 (const uint)
+0:21                direct index ( temp uint)
+0:21                  'dti' ( in 3-component vector of uint)
+0:21                  Constant:
+0:21                    0 (const int)
+0:21              Constant:
+0:21                1 (const int)
+0:21            Sequence
+0:21              Constant:
+0:21                0 (const int)
+0:21              Constant:
+0:21                1 (const int)
+0:21          Constant:
+0:21            0 (const uint)
+0:22      move second child to first child ( temp 3-component vector of int)
+0:22        vector swizzle ( temp 3-component vector of int)
+0:22          i: direct index for structure ( temp 4-component vector of int)
+0:22            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:22                Constant:
+0:22                  0 (const uint)
+0:22              direct index ( temp uint)
+0:22                'dti' ( in 3-component vector of uint)
+0:22                Constant:
+0:22                  0 (const int)
+0:22            Constant:
+0:22              1 (const int)
+0:22          Sequence
+0:22            Constant:
+0:22              0 (const int)
+0:22            Constant:
+0:22              1 (const int)
+0:22            Constant:
+0:22              2 (const int)
+0:22        subgroupQuadBroadcast ( temp 3-component vector of int)
+0:22          vector swizzle ( temp 3-component vector of int)
+0:22            i: direct index for structure ( temp 4-component vector of int)
+0:22              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:22                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:22                  Constant:
+0:22                    0 (const uint)
+0:22                direct index ( temp uint)
+0:22                  'dti' ( in 3-component vector of uint)
+0:22                  Constant:
+0:22                    0 (const int)
+0:22              Constant:
+0:22                1 (const int)
+0:22            Sequence
+0:22              Constant:
+0:22                0 (const int)
+0:22              Constant:
+0:22                1 (const int)
+0:22              Constant:
+0:22                2 (const int)
+0:22          Constant:
+0:22            0 (const uint)
+0:24      move second child to first child ( temp 4-component vector of float)
+0:24        f: direct index for structure ( temp 4-component vector of float)
+0:24          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:24              Constant:
+0:24                0 (const uint)
+0:24            direct index ( temp uint)
+0:24              'dti' ( in 3-component vector of uint)
+0:24              Constant:
+0:24                0 (const int)
+0:24          Constant:
+0:24            2 (const int)
+0:24        subgroupQuadBroadcast ( temp 4-component vector of float)
+0:24          f: direct index for structure ( temp 4-component vector of float)
+0:24            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:24                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:24                Constant:
+0:24                  0 (const uint)
+0:24              direct index ( temp uint)
+0:24                'dti' ( in 3-component vector of uint)
+0:24                Constant:
+0:24                  0 (const int)
+0:24            Constant:
+0:24              2 (const int)
+0:24          Constant:
+0:24            0 (const uint)
+0:25      move second child to first child ( temp float)
+0:25        direct index ( temp float)
+0:25          f: direct index for structure ( temp 4-component vector of float)
+0:25            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:25                Constant:
+0:25                  0 (const uint)
+0:25              direct index ( temp uint)
+0:25                'dti' ( in 3-component vector of uint)
+0:25                Constant:
+0:25                  0 (const int)
+0:25            Constant:
+0:25              2 (const int)
+0:25          Constant:
+0:25            0 (const int)
+0:25        subgroupQuadBroadcast ( temp float)
+0:25          direct index ( temp float)
+0:25            f: direct index for structure ( temp 4-component vector of float)
+0:25              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:25                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:25                  Constant:
+0:25                    0 (const uint)
+0:25                direct index ( temp uint)
+0:25                  'dti' ( in 3-component vector of uint)
+0:25                  Constant:
+0:25                    0 (const int)
+0:25              Constant:
+0:25                2 (const int)
+0:25            Constant:
+0:25              0 (const int)
+0:25          Constant:
+0:25            0 (const uint)
+0:26      move second child to first child ( temp 2-component vector of float)
+0:26        vector swizzle ( temp 2-component vector of float)
+0:26          f: direct index for structure ( temp 4-component vector of float)
+0:26            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:26                Constant:
+0:26                  0 (const uint)
+0:26              direct index ( temp uint)
+0:26                'dti' ( in 3-component vector of uint)
+0:26                Constant:
+0:26                  0 (const int)
+0:26            Constant:
+0:26              2 (const int)
+0:26          Sequence
+0:26            Constant:
+0:26              0 (const int)
+0:26            Constant:
+0:26              1 (const int)
+0:26        subgroupQuadBroadcast ( temp 2-component vector of float)
+0:26          vector swizzle ( temp 2-component vector of float)
+0:26            f: direct index for structure ( temp 4-component vector of float)
+0:26              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:26                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:26                  Constant:
+0:26                    0 (const uint)
+0:26                direct index ( temp uint)
+0:26                  'dti' ( in 3-component vector of uint)
+0:26                  Constant:
+0:26                    0 (const int)
+0:26              Constant:
+0:26                2 (const int)
+0:26            Sequence
+0:26              Constant:
+0:26                0 (const int)
+0:26              Constant:
+0:26                1 (const int)
+0:26          Constant:
+0:26            0 (const uint)
+0:27      move second child to first child ( temp 3-component vector of float)
+0:27        vector swizzle ( temp 3-component vector of float)
+0:27          f: direct index for structure ( temp 4-component vector of float)
+0:27            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:27                Constant:
+0:27                  0 (const uint)
+0:27              direct index ( temp uint)
+0:27                'dti' ( in 3-component vector of uint)
+0:27                Constant:
+0:27                  0 (const int)
+0:27            Constant:
+0:27              2 (const int)
+0:27          Sequence
+0:27            Constant:
+0:27              0 (const int)
+0:27            Constant:
+0:27              1 (const int)
+0:27            Constant:
+0:27              2 (const int)
+0:27        subgroupQuadBroadcast ( temp 3-component vector of float)
+0:27          vector swizzle ( temp 3-component vector of float)
+0:27            f: direct index for structure ( temp 4-component vector of float)
+0:27              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:27                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:27                  Constant:
+0:27                    0 (const uint)
+0:27                direct index ( temp uint)
+0:27                  'dti' ( in 3-component vector of uint)
+0:27                  Constant:
+0:27                    0 (const int)
+0:27              Constant:
+0:27                2 (const int)
+0:27            Sequence
+0:27              Constant:
+0:27                0 (const int)
+0:27              Constant:
+0:27                1 (const int)
+0:27              Constant:
+0:27                2 (const int)
+0:27          Constant:
+0:27            0 (const uint)
+0:29      move second child to first child ( temp 4-component vector of double)
+0:29        d: direct index for structure ( temp 4-component vector of double)
+0:29          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:29              Constant:
+0:29                0 (const uint)
+0:29            direct index ( temp uint)
+0:29              'dti' ( in 3-component vector of uint)
+0:29              Constant:
+0:29                0 (const int)
+0:29          Constant:
+0:29            3 (const int)
+0:29        subgroupQuadBroadcast ( temp 4-component vector of double)
+0:29          d: direct index for structure ( temp 4-component vector of double)
+0:29            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:29                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:29                Constant:
+0:29                  0 (const uint)
+0:29              direct index ( temp uint)
+0:29                'dti' ( in 3-component vector of uint)
+0:29                Constant:
+0:29                  0 (const int)
+0:29            Constant:
+0:29              3 (const int)
+0:29          Constant:
+0:29            0 (const uint)
+0:30      move second child to first child ( temp double)
+0:30        direct index ( temp double)
+0:30          d: direct index for structure ( temp 4-component vector of double)
+0:30            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:30                Constant:
+0:30                  0 (const uint)
+0:30              direct index ( temp uint)
+0:30                'dti' ( in 3-component vector of uint)
+0:30                Constant:
+0:30                  0 (const int)
+0:30            Constant:
+0:30              3 (const int)
+0:30          Constant:
+0:30            0 (const int)
+0:30        subgroupQuadBroadcast ( temp double)
+0:30          direct index ( temp double)
+0:30            d: direct index for structure ( temp 4-component vector of double)
+0:30              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:30                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:30                  Constant:
+0:30                    0 (const uint)
+0:30                direct index ( temp uint)
+0:30                  'dti' ( in 3-component vector of uint)
+0:30                  Constant:
+0:30                    0 (const int)
+0:30              Constant:
+0:30                3 (const int)
+0:30            Constant:
+0:30              0 (const int)
+0:30          Constant:
+0:30            0 (const uint)
+0:31      move second child to first child ( temp 2-component vector of double)
+0:31        vector swizzle ( temp 2-component vector of double)
+0:31          d: direct index for structure ( temp 4-component vector of double)
+0:31            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:31                Constant:
+0:31                  0 (const uint)
+0:31              direct index ( temp uint)
+0:31                'dti' ( in 3-component vector of uint)
+0:31                Constant:
+0:31                  0 (const int)
+0:31            Constant:
+0:31              3 (const int)
+0:31          Sequence
+0:31            Constant:
+0:31              0 (const int)
+0:31            Constant:
+0:31              1 (const int)
+0:31        subgroupQuadBroadcast ( temp 2-component vector of double)
+0:31          vector swizzle ( temp 2-component vector of double)
+0:31            d: direct index for structure ( temp 4-component vector of double)
+0:31              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:31                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:31                  Constant:
+0:31                    0 (const uint)
+0:31                direct index ( temp uint)
+0:31                  'dti' ( in 3-component vector of uint)
+0:31                  Constant:
+0:31                    0 (const int)
+0:31              Constant:
+0:31                3 (const int)
+0:31            Sequence
+0:31              Constant:
+0:31                0 (const int)
+0:31              Constant:
+0:31                1 (const int)
+0:31          Constant:
+0:31            0 (const uint)
+0:32      move second child to first child ( temp 3-component vector of double)
+0:32        vector swizzle ( temp 3-component vector of double)
+0:32          d: direct index for structure ( temp 4-component vector of double)
+0:32            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:32                Constant:
+0:32                  0 (const uint)
+0:32              direct index ( temp uint)
+0:32                'dti' ( in 3-component vector of uint)
+0:32                Constant:
+0:32                  0 (const int)
+0:32            Constant:
+0:32              3 (const int)
+0:32          Sequence
+0:32            Constant:
+0:32              0 (const int)
+0:32            Constant:
+0:32              1 (const int)
+0:32            Constant:
+0:32              2 (const int)
+0:32        subgroupQuadBroadcast ( temp 3-component vector of double)
+0:32          vector swizzle ( temp 3-component vector of double)
+0:32            d: direct index for structure ( temp 4-component vector of double)
+0:32              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:32                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:32                  Constant:
+0:32                    0 (const uint)
+0:32                direct index ( temp uint)
+0:32                  'dti' ( in 3-component vector of uint)
+0:32                  Constant:
+0:32                    0 (const int)
+0:32              Constant:
+0:32                3 (const int)
+0:32            Sequence
+0:32              Constant:
+0:32                0 (const int)
+0:32              Constant:
+0:32                1 (const int)
+0:32              Constant:
+0:32                2 (const int)
+0:32          Constant:
+0:32            0 (const uint)
+0:34      move second child to first child ( temp 4-component vector of uint)
+0:34        u: direct index for structure ( temp 4-component vector of uint)
+0:34          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:34              Constant:
+0:34                0 (const uint)
+0:34            direct index ( temp uint)
+0:34              'dti' ( in 3-component vector of uint)
+0:34              Constant:
+0:34                0 (const int)
+0:34          Constant:
+0:34            0 (const int)
+0:34        subgroupQuadBroadcast ( temp 4-component vector of uint)
+0:34          u: direct index for structure ( temp 4-component vector of uint)
+0:34            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:34                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:34                Constant:
+0:34                  0 (const uint)
+0:34              direct index ( temp uint)
+0:34                'dti' ( in 3-component vector of uint)
+0:34                Constant:
+0:34                  0 (const int)
+0:34            Constant:
+0:34              0 (const int)
+0:34          Constant:
+0:34            1 (const uint)
+0:35      move second child to first child ( temp uint)
+0:35        direct index ( temp uint)
+0:35          u: direct index for structure ( temp 4-component vector of uint)
+0:35            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:35                Constant:
+0:35                  0 (const uint)
+0:35              direct index ( temp uint)
+0:35                'dti' ( in 3-component vector of uint)
+0:35                Constant:
+0:35                  0 (const int)
+0:35            Constant:
+0:35              0 (const int)
+0:35          Constant:
+0:35            0 (const int)
+0:35        subgroupQuadBroadcast ( temp uint)
+0:35          direct index ( temp uint)
+0:35            u: direct index for structure ( temp 4-component vector of uint)
+0:35              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:35                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:35                  Constant:
+0:35                    0 (const uint)
+0:35                direct index ( temp uint)
+0:35                  'dti' ( in 3-component vector of uint)
+0:35                  Constant:
+0:35                    0 (const int)
+0:35              Constant:
+0:35                0 (const int)
+0:35            Constant:
+0:35              0 (const int)
+0:35          Constant:
+0:35            1 (const uint)
+0:36      move second child to first child ( temp 2-component vector of uint)
+0:36        vector swizzle ( temp 2-component vector of uint)
+0:36          u: direct index for structure ( temp 4-component vector of uint)
+0:36            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:36                Constant:
+0:36                  0 (const uint)
+0:36              direct index ( temp uint)
+0:36                'dti' ( in 3-component vector of uint)
+0:36                Constant:
+0:36                  0 (const int)
+0:36            Constant:
+0:36              0 (const int)
+0:36          Sequence
+0:36            Constant:
+0:36              0 (const int)
+0:36            Constant:
+0:36              1 (const int)
+0:36        subgroupQuadBroadcast ( temp 2-component vector of uint)
+0:36          vector swizzle ( temp 2-component vector of uint)
+0:36            u: direct index for structure ( temp 4-component vector of uint)
+0:36              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:36                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:36                  Constant:
+0:36                    0 (const uint)
+0:36                direct index ( temp uint)
+0:36                  'dti' ( in 3-component vector of uint)
+0:36                  Constant:
+0:36                    0 (const int)
+0:36              Constant:
+0:36                0 (const int)
+0:36            Sequence
+0:36              Constant:
+0:36                0 (const int)
+0:36              Constant:
+0:36                1 (const int)
+0:36          Constant:
+0:36            1 (const uint)
+0:37      move second child to first child ( temp 3-component vector of uint)
+0:37        vector swizzle ( temp 3-component vector of uint)
+0:37          u: direct index for structure ( temp 4-component vector of uint)
+0:37            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:37                Constant:
+0:37                  0 (const uint)
+0:37              direct index ( temp uint)
+0:37                'dti' ( in 3-component vector of uint)
+0:37                Constant:
+0:37                  0 (const int)
+0:37            Constant:
+0:37              0 (const int)
+0:37          Sequence
+0:37            Constant:
+0:37              0 (const int)
+0:37            Constant:
+0:37              1 (const int)
+0:37            Constant:
+0:37              2 (const int)
+0:37        subgroupQuadBroadcast ( temp 3-component vector of uint)
+0:37          vector swizzle ( temp 3-component vector of uint)
+0:37            u: direct index for structure ( temp 4-component vector of uint)
+0:37              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:37                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:37                  Constant:
+0:37                    0 (const uint)
+0:37                direct index ( temp uint)
+0:37                  'dti' ( in 3-component vector of uint)
+0:37                  Constant:
+0:37                    0 (const int)
+0:37              Constant:
+0:37                0 (const int)
+0:37            Sequence
+0:37              Constant:
+0:37                0 (const int)
+0:37              Constant:
+0:37                1 (const int)
+0:37              Constant:
+0:37                2 (const int)
+0:37          Constant:
+0:37            1 (const uint)
+0:39      move second child to first child ( temp 4-component vector of int)
+0:39        i: direct index for structure ( temp 4-component vector of int)
+0:39          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:39              Constant:
+0:39                0 (const uint)
+0:39            direct index ( temp uint)
+0:39              'dti' ( in 3-component vector of uint)
+0:39              Constant:
+0:39                0 (const int)
+0:39          Constant:
+0:39            1 (const int)
+0:39        subgroupQuadBroadcast ( temp 4-component vector of int)
+0:39          i: direct index for structure ( temp 4-component vector of int)
+0:39            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:39                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:39                Constant:
+0:39                  0 (const uint)
+0:39              direct index ( temp uint)
+0:39                'dti' ( in 3-component vector of uint)
+0:39                Constant:
+0:39                  0 (const int)
+0:39            Constant:
+0:39              1 (const int)
+0:39          Constant:
+0:39            1 (const uint)
+0:40      move second child to first child ( temp int)
+0:40        direct index ( temp int)
+0:40          i: direct index for structure ( temp 4-component vector of int)
+0:40            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:40                Constant:
+0:40                  0 (const uint)
+0:40              direct index ( temp uint)
+0:40                'dti' ( in 3-component vector of uint)
+0:40                Constant:
+0:40                  0 (const int)
+0:40            Constant:
+0:40              1 (const int)
+0:40          Constant:
+0:40            0 (const int)
+0:40        subgroupQuadBroadcast ( temp int)
+0:40          direct index ( temp int)
+0:40            i: direct index for structure ( temp 4-component vector of int)
+0:40              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:40                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:40                  Constant:
+0:40                    0 (const uint)
+0:40                direct index ( temp uint)
+0:40                  'dti' ( in 3-component vector of uint)
+0:40                  Constant:
+0:40                    0 (const int)
+0:40              Constant:
+0:40                1 (const int)
+0:40            Constant:
+0:40              0 (const int)
+0:40          Constant:
+0:40            1 (const uint)
+0:41      move second child to first child ( temp 2-component vector of int)
+0:41        vector swizzle ( temp 2-component vector of int)
+0:41          i: direct index for structure ( temp 4-component vector of int)
+0:41            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:41                Constant:
+0:41                  0 (const uint)
+0:41              direct index ( temp uint)
+0:41                'dti' ( in 3-component vector of uint)
+0:41                Constant:
+0:41                  0 (const int)
+0:41            Constant:
+0:41              1 (const int)
+0:41          Sequence
+0:41            Constant:
+0:41              0 (const int)
+0:41            Constant:
+0:41              1 (const int)
+0:41        subgroupQuadBroadcast ( temp 2-component vector of int)
+0:41          vector swizzle ( temp 2-component vector of int)
+0:41            i: direct index for structure ( temp 4-component vector of int)
+0:41              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:41                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:41                  Constant:
+0:41                    0 (const uint)
+0:41                direct index ( temp uint)
+0:41                  'dti' ( in 3-component vector of uint)
+0:41                  Constant:
+0:41                    0 (const int)
+0:41              Constant:
+0:41                1 (const int)
+0:41            Sequence
+0:41              Constant:
+0:41                0 (const int)
+0:41              Constant:
+0:41                1 (const int)
+0:41          Constant:
+0:41            1 (const uint)
+0:42      move second child to first child ( temp 3-component vector of int)
+0:42        vector swizzle ( temp 3-component vector of int)
+0:42          i: direct index for structure ( temp 4-component vector of int)
+0:42            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:42                Constant:
+0:42                  0 (const uint)
+0:42              direct index ( temp uint)
+0:42                'dti' ( in 3-component vector of uint)
+0:42                Constant:
+0:42                  0 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:42          Sequence
+0:42            Constant:
+0:42              0 (const int)
+0:42            Constant:
+0:42              1 (const int)
+0:42            Constant:
+0:42              2 (const int)
+0:42        subgroupQuadBroadcast ( temp 3-component vector of int)
+0:42          vector swizzle ( temp 3-component vector of int)
+0:42            i: direct index for structure ( temp 4-component vector of int)
+0:42              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:42                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:42                  Constant:
+0:42                    0 (const uint)
+0:42                direct index ( temp uint)
+0:42                  'dti' ( in 3-component vector of uint)
+0:42                  Constant:
+0:42                    0 (const int)
+0:42              Constant:
+0:42                1 (const int)
+0:42            Sequence
+0:42              Constant:
+0:42                0 (const int)
+0:42              Constant:
+0:42                1 (const int)
+0:42              Constant:
+0:42                2 (const int)
+0:42          Constant:
+0:42            1 (const uint)
+0:44      move second child to first child ( temp 4-component vector of float)
+0:44        f: direct index for structure ( temp 4-component vector of float)
+0:44          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:44              Constant:
+0:44                0 (const uint)
+0:44            direct index ( temp uint)
+0:44              'dti' ( in 3-component vector of uint)
+0:44              Constant:
+0:44                0 (const int)
+0:44          Constant:
+0:44            2 (const int)
+0:44        subgroupQuadBroadcast ( temp 4-component vector of float)
+0:44          f: direct index for structure ( temp 4-component vector of float)
+0:44            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:44                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:44                Constant:
+0:44                  0 (const uint)
+0:44              direct index ( temp uint)
+0:44                'dti' ( in 3-component vector of uint)
+0:44                Constant:
+0:44                  0 (const int)
+0:44            Constant:
+0:44              2 (const int)
+0:44          Constant:
+0:44            1 (const uint)
+0:45      move second child to first child ( temp float)
+0:45        direct index ( temp float)
+0:45          f: direct index for structure ( temp 4-component vector of float)
+0:45            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:45                Constant:
+0:45                  0 (const uint)
+0:45              direct index ( temp uint)
+0:45                'dti' ( in 3-component vector of uint)
+0:45                Constant:
+0:45                  0 (const int)
+0:45            Constant:
+0:45              2 (const int)
+0:45          Constant:
+0:45            0 (const int)
+0:45        subgroupQuadBroadcast ( temp float)
+0:45          direct index ( temp float)
+0:45            f: direct index for structure ( temp 4-component vector of float)
+0:45              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:45                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:45                  Constant:
+0:45                    0 (const uint)
+0:45                direct index ( temp uint)
+0:45                  'dti' ( in 3-component vector of uint)
+0:45                  Constant:
+0:45                    0 (const int)
+0:45              Constant:
+0:45                2 (const int)
+0:45            Constant:
+0:45              0 (const int)
+0:45          Constant:
+0:45            1 (const uint)
+0:46      move second child to first child ( temp 2-component vector of float)
+0:46        vector swizzle ( temp 2-component vector of float)
+0:46          f: direct index for structure ( temp 4-component vector of float)
+0:46            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:46                Constant:
+0:46                  0 (const uint)
+0:46              direct index ( temp uint)
+0:46                'dti' ( in 3-component vector of uint)
+0:46                Constant:
+0:46                  0 (const int)
+0:46            Constant:
+0:46              2 (const int)
+0:46          Sequence
+0:46            Constant:
+0:46              0 (const int)
+0:46            Constant:
+0:46              1 (const int)
+0:46        subgroupQuadBroadcast ( temp 2-component vector of float)
+0:46          vector swizzle ( temp 2-component vector of float)
+0:46            f: direct index for structure ( temp 4-component vector of float)
+0:46              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:46                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:46                  Constant:
+0:46                    0 (const uint)
+0:46                direct index ( temp uint)
+0:46                  'dti' ( in 3-component vector of uint)
+0:46                  Constant:
+0:46                    0 (const int)
+0:46              Constant:
+0:46                2 (const int)
+0:46            Sequence
+0:46              Constant:
+0:46                0 (const int)
+0:46              Constant:
+0:46                1 (const int)
+0:46          Constant:
+0:46            1 (const uint)
+0:47      move second child to first child ( temp 3-component vector of float)
+0:47        vector swizzle ( temp 3-component vector of float)
+0:47          f: direct index for structure ( temp 4-component vector of float)
+0:47            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:47                Constant:
+0:47                  0 (const uint)
+0:47              direct index ( temp uint)
+0:47                'dti' ( in 3-component vector of uint)
+0:47                Constant:
+0:47                  0 (const int)
+0:47            Constant:
+0:47              2 (const int)
+0:47          Sequence
+0:47            Constant:
+0:47              0 (const int)
+0:47            Constant:
+0:47              1 (const int)
+0:47            Constant:
+0:47              2 (const int)
+0:47        subgroupQuadBroadcast ( temp 3-component vector of float)
+0:47          vector swizzle ( temp 3-component vector of float)
+0:47            f: direct index for structure ( temp 4-component vector of float)
+0:47              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:47                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:47                  Constant:
+0:47                    0 (const uint)
+0:47                direct index ( temp uint)
+0:47                  'dti' ( in 3-component vector of uint)
+0:47                  Constant:
+0:47                    0 (const int)
+0:47              Constant:
+0:47                2 (const int)
+0:47            Sequence
+0:47              Constant:
+0:47                0 (const int)
+0:47              Constant:
+0:47                1 (const int)
+0:47              Constant:
+0:47                2 (const int)
+0:47          Constant:
+0:47            1 (const uint)
+0:49      move second child to first child ( temp 4-component vector of double)
+0:49        d: direct index for structure ( temp 4-component vector of double)
+0:49          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:49              Constant:
+0:49                0 (const uint)
+0:49            direct index ( temp uint)
+0:49              'dti' ( in 3-component vector of uint)
+0:49              Constant:
+0:49                0 (const int)
+0:49          Constant:
+0:49            3 (const int)
+0:49        subgroupQuadBroadcast ( temp 4-component vector of double)
+0:49          d: direct index for structure ( temp 4-component vector of double)
+0:49            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:49                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:49                Constant:
+0:49                  0 (const uint)
+0:49              direct index ( temp uint)
+0:49                'dti' ( in 3-component vector of uint)
+0:49                Constant:
+0:49                  0 (const int)
+0:49            Constant:
+0:49              3 (const int)
+0:49          Constant:
+0:49            1 (const uint)
+0:50      move second child to first child ( temp double)
+0:50        direct index ( temp double)
+0:50          d: direct index for structure ( temp 4-component vector of double)
+0:50            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:50                Constant:
+0:50                  0 (const uint)
+0:50              direct index ( temp uint)
+0:50                'dti' ( in 3-component vector of uint)
+0:50                Constant:
+0:50                  0 (const int)
+0:50            Constant:
+0:50              3 (const int)
+0:50          Constant:
+0:50            0 (const int)
+0:50        subgroupQuadBroadcast ( temp double)
+0:50          direct index ( temp double)
+0:50            d: direct index for structure ( temp 4-component vector of double)
+0:50              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:50                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:50                  Constant:
+0:50                    0 (const uint)
+0:50                direct index ( temp uint)
+0:50                  'dti' ( in 3-component vector of uint)
+0:50                  Constant:
+0:50                    0 (const int)
+0:50              Constant:
+0:50                3 (const int)
+0:50            Constant:
+0:50              0 (const int)
+0:50          Constant:
+0:50            1 (const uint)
+0:51      move second child to first child ( temp 2-component vector of double)
+0:51        vector swizzle ( temp 2-component vector of double)
+0:51          d: direct index for structure ( temp 4-component vector of double)
+0:51            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:51                Constant:
+0:51                  0 (const uint)
+0:51              direct index ( temp uint)
+0:51                'dti' ( in 3-component vector of uint)
+0:51                Constant:
+0:51                  0 (const int)
+0:51            Constant:
+0:51              3 (const int)
+0:51          Sequence
+0:51            Constant:
+0:51              0 (const int)
+0:51            Constant:
+0:51              1 (const int)
+0:51        subgroupQuadBroadcast ( temp 2-component vector of double)
+0:51          vector swizzle ( temp 2-component vector of double)
+0:51            d: direct index for structure ( temp 4-component vector of double)
+0:51              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:51                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:51                  Constant:
+0:51                    0 (const uint)
+0:51                direct index ( temp uint)
+0:51                  'dti' ( in 3-component vector of uint)
+0:51                  Constant:
+0:51                    0 (const int)
+0:51              Constant:
+0:51                3 (const int)
+0:51            Sequence
+0:51              Constant:
+0:51                0 (const int)
+0:51              Constant:
+0:51                1 (const int)
+0:51          Constant:
+0:51            1 (const uint)
+0:52      move second child to first child ( temp 3-component vector of double)
+0:52        vector swizzle ( temp 3-component vector of double)
+0:52          d: direct index for structure ( temp 4-component vector of double)
+0:52            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:52                Constant:
+0:52                  0 (const uint)
+0:52              direct index ( temp uint)
+0:52                'dti' ( in 3-component vector of uint)
+0:52                Constant:
+0:52                  0 (const int)
+0:52            Constant:
+0:52              3 (const int)
+0:52          Sequence
+0:52            Constant:
+0:52              0 (const int)
+0:52            Constant:
+0:52              1 (const int)
+0:52            Constant:
+0:52              2 (const int)
+0:52        subgroupQuadBroadcast ( temp 3-component vector of double)
+0:52          vector swizzle ( temp 3-component vector of double)
+0:52            d: direct index for structure ( temp 4-component vector of double)
+0:52              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:52                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:52                  Constant:
+0:52                    0 (const uint)
+0:52                direct index ( temp uint)
+0:52                  'dti' ( in 3-component vector of uint)
+0:52                  Constant:
+0:52                    0 (const int)
+0:52              Constant:
+0:52                3 (const int)
+0:52            Sequence
+0:52              Constant:
+0:52                0 (const int)
+0:52              Constant:
+0:52                1 (const int)
+0:52              Constant:
+0:52                2 (const int)
+0:52          Constant:
+0:52            1 (const uint)
+0:54      move second child to first child ( temp 4-component vector of uint)
+0:54        u: direct index for structure ( temp 4-component vector of uint)
+0:54          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:54            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:54              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:54              Constant:
+0:54                0 (const uint)
+0:54            direct index ( temp uint)
+0:54              'dti' ( in 3-component vector of uint)
+0:54              Constant:
+0:54                0 (const int)
+0:54          Constant:
+0:54            0 (const int)
+0:54        subgroupQuadBroadcast ( temp 4-component vector of uint)
+0:54          u: direct index for structure ( temp 4-component vector of uint)
+0:54            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:54              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:54                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:54                Constant:
+0:54                  0 (const uint)
+0:54              direct index ( temp uint)
+0:54                'dti' ( in 3-component vector of uint)
+0:54                Constant:
+0:54                  0 (const int)
+0:54            Constant:
+0:54              0 (const int)
+0:54          Constant:
+0:54            2 (const uint)
+0:55      move second child to first child ( temp uint)
+0:55        direct index ( temp uint)
+0:55          u: direct index for structure ( temp 4-component vector of uint)
+0:55            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:55              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:55                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:55                Constant:
+0:55                  0 (const uint)
+0:55              direct index ( temp uint)
+0:55                'dti' ( in 3-component vector of uint)
+0:55                Constant:
+0:55                  0 (const int)
+0:55            Constant:
+0:55              0 (const int)
+0:55          Constant:
+0:55            0 (const int)
+0:55        subgroupQuadBroadcast ( temp uint)
+0:55          direct index ( temp uint)
+0:55            u: direct index for structure ( temp 4-component vector of uint)
+0:55              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:55                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:55                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:55                  Constant:
+0:55                    0 (const uint)
+0:55                direct index ( temp uint)
+0:55                  'dti' ( in 3-component vector of uint)
+0:55                  Constant:
+0:55                    0 (const int)
+0:55              Constant:
+0:55                0 (const int)
+0:55            Constant:
+0:55              0 (const int)
+0:55          Constant:
+0:55            2 (const uint)
+0:56      move second child to first child ( temp 2-component vector of uint)
+0:56        vector swizzle ( temp 2-component vector of uint)
+0:56          u: direct index for structure ( temp 4-component vector of uint)
+0:56            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:56              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:56                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:56                Constant:
+0:56                  0 (const uint)
+0:56              direct index ( temp uint)
+0:56                'dti' ( in 3-component vector of uint)
+0:56                Constant:
+0:56                  0 (const int)
+0:56            Constant:
+0:56              0 (const int)
+0:56          Sequence
+0:56            Constant:
+0:56              0 (const int)
+0:56            Constant:
+0:56              1 (const int)
+0:56        subgroupQuadBroadcast ( temp 2-component vector of uint)
+0:56          vector swizzle ( temp 2-component vector of uint)
+0:56            u: direct index for structure ( temp 4-component vector of uint)
+0:56              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:56                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:56                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:56                  Constant:
+0:56                    0 (const uint)
+0:56                direct index ( temp uint)
+0:56                  'dti' ( in 3-component vector of uint)
+0:56                  Constant:
+0:56                    0 (const int)
+0:56              Constant:
+0:56                0 (const int)
+0:56            Sequence
+0:56              Constant:
+0:56                0 (const int)
+0:56              Constant:
+0:56                1 (const int)
+0:56          Constant:
+0:56            2 (const uint)
+0:57      move second child to first child ( temp 3-component vector of uint)
+0:57        vector swizzle ( temp 3-component vector of uint)
+0:57          u: direct index for structure ( temp 4-component vector of uint)
+0:57            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:57              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:57                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:57                Constant:
+0:57                  0 (const uint)
+0:57              direct index ( temp uint)
+0:57                'dti' ( in 3-component vector of uint)
+0:57                Constant:
+0:57                  0 (const int)
+0:57            Constant:
+0:57              0 (const int)
+0:57          Sequence
+0:57            Constant:
+0:57              0 (const int)
+0:57            Constant:
+0:57              1 (const int)
+0:57            Constant:
+0:57              2 (const int)
+0:57        subgroupQuadBroadcast ( temp 3-component vector of uint)
+0:57          vector swizzle ( temp 3-component vector of uint)
+0:57            u: direct index for structure ( temp 4-component vector of uint)
+0:57              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:57                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:57                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:57                  Constant:
+0:57                    0 (const uint)
+0:57                direct index ( temp uint)
+0:57                  'dti' ( in 3-component vector of uint)
+0:57                  Constant:
+0:57                    0 (const int)
+0:57              Constant:
+0:57                0 (const int)
+0:57            Sequence
+0:57              Constant:
+0:57                0 (const int)
+0:57              Constant:
+0:57                1 (const int)
+0:57              Constant:
+0:57                2 (const int)
+0:57          Constant:
+0:57            2 (const uint)
+0:59      move second child to first child ( temp 4-component vector of int)
+0:59        i: direct index for structure ( temp 4-component vector of int)
+0:59          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:59            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:59              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:59              Constant:
+0:59                0 (const uint)
+0:59            direct index ( temp uint)
+0:59              'dti' ( in 3-component vector of uint)
+0:59              Constant:
+0:59                0 (const int)
+0:59          Constant:
+0:59            1 (const int)
+0:59        subgroupQuadBroadcast ( temp 4-component vector of int)
+0:59          i: direct index for structure ( temp 4-component vector of int)
+0:59            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:59              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:59                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:59                Constant:
+0:59                  0 (const uint)
+0:59              direct index ( temp uint)
+0:59                'dti' ( in 3-component vector of uint)
+0:59                Constant:
+0:59                  0 (const int)
+0:59            Constant:
+0:59              1 (const int)
+0:59          Constant:
+0:59            2 (const uint)
+0:60      move second child to first child ( temp int)
+0:60        direct index ( temp int)
+0:60          i: direct index for structure ( temp 4-component vector of int)
+0:60            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:60              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:60                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:60                Constant:
+0:60                  0 (const uint)
+0:60              direct index ( temp uint)
+0:60                'dti' ( in 3-component vector of uint)
+0:60                Constant:
+0:60                  0 (const int)
+0:60            Constant:
+0:60              1 (const int)
+0:60          Constant:
+0:60            0 (const int)
+0:60        subgroupQuadBroadcast ( temp int)
+0:60          direct index ( temp int)
+0:60            i: direct index for structure ( temp 4-component vector of int)
+0:60              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:60                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:60                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:60                  Constant:
+0:60                    0 (const uint)
+0:60                direct index ( temp uint)
+0:60                  'dti' ( in 3-component vector of uint)
+0:60                  Constant:
+0:60                    0 (const int)
+0:60              Constant:
+0:60                1 (const int)
+0:60            Constant:
+0:60              0 (const int)
+0:60          Constant:
+0:60            2 (const uint)
+0:61      move second child to first child ( temp 2-component vector of int)
+0:61        vector swizzle ( temp 2-component vector of int)
+0:61          i: direct index for structure ( temp 4-component vector of int)
+0:61            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:61              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:61                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:61                Constant:
+0:61                  0 (const uint)
+0:61              direct index ( temp uint)
+0:61                'dti' ( in 3-component vector of uint)
+0:61                Constant:
+0:61                  0 (const int)
+0:61            Constant:
+0:61              1 (const int)
+0:61          Sequence
+0:61            Constant:
+0:61              0 (const int)
+0:61            Constant:
+0:61              1 (const int)
+0:61        subgroupQuadBroadcast ( temp 2-component vector of int)
+0:61          vector swizzle ( temp 2-component vector of int)
+0:61            i: direct index for structure ( temp 4-component vector of int)
+0:61              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:61                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:61                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:61                  Constant:
+0:61                    0 (const uint)
+0:61                direct index ( temp uint)
+0:61                  'dti' ( in 3-component vector of uint)
+0:61                  Constant:
+0:61                    0 (const int)
+0:61              Constant:
+0:61                1 (const int)
+0:61            Sequence
+0:61              Constant:
+0:61                0 (const int)
+0:61              Constant:
+0:61                1 (const int)
+0:61          Constant:
+0:61            2 (const uint)
+0:62      move second child to first child ( temp 3-component vector of int)
+0:62        vector swizzle ( temp 3-component vector of int)
+0:62          i: direct index for structure ( temp 4-component vector of int)
+0:62            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:62              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:62                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:62                Constant:
+0:62                  0 (const uint)
+0:62              direct index ( temp uint)
+0:62                'dti' ( in 3-component vector of uint)
+0:62                Constant:
+0:62                  0 (const int)
+0:62            Constant:
+0:62              1 (const int)
+0:62          Sequence
+0:62            Constant:
+0:62              0 (const int)
+0:62            Constant:
+0:62              1 (const int)
+0:62            Constant:
+0:62              2 (const int)
+0:62        subgroupQuadBroadcast ( temp 3-component vector of int)
+0:62          vector swizzle ( temp 3-component vector of int)
+0:62            i: direct index for structure ( temp 4-component vector of int)
+0:62              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:62                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:62                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:62                  Constant:
+0:62                    0 (const uint)
+0:62                direct index ( temp uint)
+0:62                  'dti' ( in 3-component vector of uint)
+0:62                  Constant:
+0:62                    0 (const int)
+0:62              Constant:
+0:62                1 (const int)
+0:62            Sequence
+0:62              Constant:
+0:62                0 (const int)
+0:62              Constant:
+0:62                1 (const int)
+0:62              Constant:
+0:62                2 (const int)
+0:62          Constant:
+0:62            2 (const uint)
+0:64      move second child to first child ( temp 4-component vector of float)
+0:64        f: direct index for structure ( temp 4-component vector of float)
+0:64          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:64            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:64              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:64              Constant:
+0:64                0 (const uint)
+0:64            direct index ( temp uint)
+0:64              'dti' ( in 3-component vector of uint)
+0:64              Constant:
+0:64                0 (const int)
+0:64          Constant:
+0:64            2 (const int)
+0:64        subgroupQuadBroadcast ( temp 4-component vector of float)
+0:64          f: direct index for structure ( temp 4-component vector of float)
+0:64            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:64              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:64                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:64                Constant:
+0:64                  0 (const uint)
+0:64              direct index ( temp uint)
+0:64                'dti' ( in 3-component vector of uint)
+0:64                Constant:
+0:64                  0 (const int)
+0:64            Constant:
+0:64              2 (const int)
+0:64          Constant:
+0:64            2 (const uint)
+0:65      move second child to first child ( temp float)
+0:65        direct index ( temp float)
+0:65          f: direct index for structure ( temp 4-component vector of float)
+0:65            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:65              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:65                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:65                Constant:
+0:65                  0 (const uint)
+0:65              direct index ( temp uint)
+0:65                'dti' ( in 3-component vector of uint)
+0:65                Constant:
+0:65                  0 (const int)
+0:65            Constant:
+0:65              2 (const int)
+0:65          Constant:
+0:65            0 (const int)
+0:65        subgroupQuadBroadcast ( temp float)
+0:65          direct index ( temp float)
+0:65            f: direct index for structure ( temp 4-component vector of float)
+0:65              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:65                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:65                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:65                  Constant:
+0:65                    0 (const uint)
+0:65                direct index ( temp uint)
+0:65                  'dti' ( in 3-component vector of uint)
+0:65                  Constant:
+0:65                    0 (const int)
+0:65              Constant:
+0:65                2 (const int)
+0:65            Constant:
+0:65              0 (const int)
+0:65          Constant:
+0:65            2 (const uint)
+0:66      move second child to first child ( temp 2-component vector of float)
+0:66        vector swizzle ( temp 2-component vector of float)
+0:66          f: direct index for structure ( temp 4-component vector of float)
+0:66            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:66              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:66                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:66                Constant:
+0:66                  0 (const uint)
+0:66              direct index ( temp uint)
+0:66                'dti' ( in 3-component vector of uint)
+0:66                Constant:
+0:66                  0 (const int)
+0:66            Constant:
+0:66              2 (const int)
+0:66          Sequence
+0:66            Constant:
+0:66              0 (const int)
+0:66            Constant:
+0:66              1 (const int)
+0:66        subgroupQuadBroadcast ( temp 2-component vector of float)
+0:66          vector swizzle ( temp 2-component vector of float)
+0:66            f: direct index for structure ( temp 4-component vector of float)
+0:66              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:66                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:66                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:66                  Constant:
+0:66                    0 (const uint)
+0:66                direct index ( temp uint)
+0:66                  'dti' ( in 3-component vector of uint)
+0:66                  Constant:
+0:66                    0 (const int)
+0:66              Constant:
+0:66                2 (const int)
+0:66            Sequence
+0:66              Constant:
+0:66                0 (const int)
+0:66              Constant:
+0:66                1 (const int)
+0:66          Constant:
+0:66            2 (const uint)
+0:67      move second child to first child ( temp 3-component vector of float)
+0:67        vector swizzle ( temp 3-component vector of float)
+0:67          f: direct index for structure ( temp 4-component vector of float)
+0:67            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:67              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:67                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:67                Constant:
+0:67                  0 (const uint)
+0:67              direct index ( temp uint)
+0:67                'dti' ( in 3-component vector of uint)
+0:67                Constant:
+0:67                  0 (const int)
+0:67            Constant:
+0:67              2 (const int)
+0:67          Sequence
+0:67            Constant:
+0:67              0 (const int)
+0:67            Constant:
+0:67              1 (const int)
+0:67            Constant:
+0:67              2 (const int)
+0:67        subgroupQuadBroadcast ( temp 3-component vector of float)
+0:67          vector swizzle ( temp 3-component vector of float)
+0:67            f: direct index for structure ( temp 4-component vector of float)
+0:67              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:67                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:67                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:67                  Constant:
+0:67                    0 (const uint)
+0:67                direct index ( temp uint)
+0:67                  'dti' ( in 3-component vector of uint)
+0:67                  Constant:
+0:67                    0 (const int)
+0:67              Constant:
+0:67                2 (const int)
+0:67            Sequence
+0:67              Constant:
+0:67                0 (const int)
+0:67              Constant:
+0:67                1 (const int)
+0:67              Constant:
+0:67                2 (const int)
+0:67          Constant:
+0:67            2 (const uint)
+0:69      move second child to first child ( temp 4-component vector of double)
+0:69        d: direct index for structure ( temp 4-component vector of double)
+0:69          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:69            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:69              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:69              Constant:
+0:69                0 (const uint)
+0:69            direct index ( temp uint)
+0:69              'dti' ( in 3-component vector of uint)
+0:69              Constant:
+0:69                0 (const int)
+0:69          Constant:
+0:69            3 (const int)
+0:69        subgroupQuadBroadcast ( temp 4-component vector of double)
+0:69          d: direct index for structure ( temp 4-component vector of double)
+0:69            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:69              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:69                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:69                Constant:
+0:69                  0 (const uint)
+0:69              direct index ( temp uint)
+0:69                'dti' ( in 3-component vector of uint)
+0:69                Constant:
+0:69                  0 (const int)
+0:69            Constant:
+0:69              3 (const int)
+0:69          Constant:
+0:69            2 (const uint)
+0:70      move second child to first child ( temp double)
+0:70        direct index ( temp double)
+0:70          d: direct index for structure ( temp 4-component vector of double)
+0:70            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:70              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:70                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:70                Constant:
+0:70                  0 (const uint)
+0:70              direct index ( temp uint)
+0:70                'dti' ( in 3-component vector of uint)
+0:70                Constant:
+0:70                  0 (const int)
+0:70            Constant:
+0:70              3 (const int)
+0:70          Constant:
+0:70            0 (const int)
+0:70        subgroupQuadBroadcast ( temp double)
+0:70          direct index ( temp double)
+0:70            d: direct index for structure ( temp 4-component vector of double)
+0:70              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:70                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:70                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:70                  Constant:
+0:70                    0 (const uint)
+0:70                direct index ( temp uint)
+0:70                  'dti' ( in 3-component vector of uint)
+0:70                  Constant:
+0:70                    0 (const int)
+0:70              Constant:
+0:70                3 (const int)
+0:70            Constant:
+0:70              0 (const int)
+0:70          Constant:
+0:70            2 (const uint)
+0:71      move second child to first child ( temp 2-component vector of double)
+0:71        vector swizzle ( temp 2-component vector of double)
+0:71          d: direct index for structure ( temp 4-component vector of double)
+0:71            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:71              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:71                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:71                Constant:
+0:71                  0 (const uint)
+0:71              direct index ( temp uint)
+0:71                'dti' ( in 3-component vector of uint)
+0:71                Constant:
+0:71                  0 (const int)
+0:71            Constant:
+0:71              3 (const int)
+0:71          Sequence
+0:71            Constant:
+0:71              0 (const int)
+0:71            Constant:
+0:71              1 (const int)
+0:71        subgroupQuadBroadcast ( temp 2-component vector of double)
+0:71          vector swizzle ( temp 2-component vector of double)
+0:71            d: direct index for structure ( temp 4-component vector of double)
+0:71              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:71                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:71                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:71                  Constant:
+0:71                    0 (const uint)
+0:71                direct index ( temp uint)
+0:71                  'dti' ( in 3-component vector of uint)
+0:71                  Constant:
+0:71                    0 (const int)
+0:71              Constant:
+0:71                3 (const int)
+0:71            Sequence
+0:71              Constant:
+0:71                0 (const int)
+0:71              Constant:
+0:71                1 (const int)
+0:71          Constant:
+0:71            2 (const uint)
+0:72      move second child to first child ( temp 3-component vector of double)
+0:72        vector swizzle ( temp 3-component vector of double)
+0:72          d: direct index for structure ( temp 4-component vector of double)
+0:72            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:72              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:72                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:72                Constant:
+0:72                  0 (const uint)
+0:72              direct index ( temp uint)
+0:72                'dti' ( in 3-component vector of uint)
+0:72                Constant:
+0:72                  0 (const int)
+0:72            Constant:
+0:72              3 (const int)
+0:72          Sequence
+0:72            Constant:
+0:72              0 (const int)
+0:72            Constant:
+0:72              1 (const int)
+0:72            Constant:
+0:72              2 (const int)
+0:72        subgroupQuadBroadcast ( temp 3-component vector of double)
+0:72          vector swizzle ( temp 3-component vector of double)
+0:72            d: direct index for structure ( temp 4-component vector of double)
+0:72              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:72                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:72                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:72                  Constant:
+0:72                    0 (const uint)
+0:72                direct index ( temp uint)
+0:72                  'dti' ( in 3-component vector of uint)
+0:72                  Constant:
+0:72                    0 (const int)
+0:72              Constant:
+0:72                3 (const int)
+0:72            Sequence
+0:72              Constant:
+0:72                0 (const int)
+0:72              Constant:
+0:72                1 (const int)
+0:72              Constant:
+0:72                2 (const int)
+0:72          Constant:
+0:72            2 (const uint)
+0:74      move second child to first child ( temp 4-component vector of uint)
+0:74        u: direct index for structure ( temp 4-component vector of uint)
+0:74          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:74            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:74              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:74              Constant:
+0:74                0 (const uint)
+0:74            direct index ( temp uint)
+0:74              'dti' ( in 3-component vector of uint)
+0:74              Constant:
+0:74                0 (const int)
+0:74          Constant:
+0:74            0 (const int)
+0:74        subgroupQuadBroadcast ( temp 4-component vector of uint)
+0:74          u: direct index for structure ( temp 4-component vector of uint)
+0:74            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:74              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:74                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:74                Constant:
+0:74                  0 (const uint)
+0:74              direct index ( temp uint)
+0:74                'dti' ( in 3-component vector of uint)
+0:74                Constant:
+0:74                  0 (const int)
+0:74            Constant:
+0:74              0 (const int)
+0:74          Constant:
+0:74            3 (const uint)
+0:75      move second child to first child ( temp uint)
+0:75        direct index ( temp uint)
+0:75          u: direct index for structure ( temp 4-component vector of uint)
+0:75            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:75              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:75                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:75                Constant:
+0:75                  0 (const uint)
+0:75              direct index ( temp uint)
+0:75                'dti' ( in 3-component vector of uint)
+0:75                Constant:
+0:75                  0 (const int)
+0:75            Constant:
+0:75              0 (const int)
+0:75          Constant:
+0:75            0 (const int)
+0:75        subgroupQuadBroadcast ( temp uint)
+0:75          direct index ( temp uint)
+0:75            u: direct index for structure ( temp 4-component vector of uint)
+0:75              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:75                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:75                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:75                  Constant:
+0:75                    0 (const uint)
+0:75                direct index ( temp uint)
+0:75                  'dti' ( in 3-component vector of uint)
+0:75                  Constant:
+0:75                    0 (const int)
+0:75              Constant:
+0:75                0 (const int)
+0:75            Constant:
+0:75              0 (const int)
+0:75          Constant:
+0:75            3 (const uint)
+0:76      move second child to first child ( temp 2-component vector of uint)
+0:76        vector swizzle ( temp 2-component vector of uint)
+0:76          u: direct index for structure ( temp 4-component vector of uint)
+0:76            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:76              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:76                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:76                Constant:
+0:76                  0 (const uint)
+0:76              direct index ( temp uint)
+0:76                'dti' ( in 3-component vector of uint)
+0:76                Constant:
+0:76                  0 (const int)
+0:76            Constant:
+0:76              0 (const int)
+0:76          Sequence
+0:76            Constant:
+0:76              0 (const int)
+0:76            Constant:
+0:76              1 (const int)
+0:76        subgroupQuadBroadcast ( temp 2-component vector of uint)
+0:76          vector swizzle ( temp 2-component vector of uint)
+0:76            u: direct index for structure ( temp 4-component vector of uint)
+0:76              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:76                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:76                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:76                  Constant:
+0:76                    0 (const uint)
+0:76                direct index ( temp uint)
+0:76                  'dti' ( in 3-component vector of uint)
+0:76                  Constant:
+0:76                    0 (const int)
+0:76              Constant:
+0:76                0 (const int)
+0:76            Sequence
+0:76              Constant:
+0:76                0 (const int)
+0:76              Constant:
+0:76                1 (const int)
+0:76          Constant:
+0:76            3 (const uint)
+0:77      move second child to first child ( temp 3-component vector of uint)
+0:77        vector swizzle ( temp 3-component vector of uint)
+0:77          u: direct index for structure ( temp 4-component vector of uint)
+0:77            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:77              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:77                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:77                Constant:
+0:77                  0 (const uint)
+0:77              direct index ( temp uint)
+0:77                'dti' ( in 3-component vector of uint)
+0:77                Constant:
+0:77                  0 (const int)
+0:77            Constant:
+0:77              0 (const int)
+0:77          Sequence
+0:77            Constant:
+0:77              0 (const int)
+0:77            Constant:
+0:77              1 (const int)
+0:77            Constant:
+0:77              2 (const int)
+0:77        subgroupQuadBroadcast ( temp 3-component vector of uint)
+0:77          vector swizzle ( temp 3-component vector of uint)
+0:77            u: direct index for structure ( temp 4-component vector of uint)
+0:77              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:77                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:77                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:77                  Constant:
+0:77                    0 (const uint)
+0:77                direct index ( temp uint)
+0:77                  'dti' ( in 3-component vector of uint)
+0:77                  Constant:
+0:77                    0 (const int)
+0:77              Constant:
+0:77                0 (const int)
+0:77            Sequence
+0:77              Constant:
+0:77                0 (const int)
+0:77              Constant:
+0:77                1 (const int)
+0:77              Constant:
+0:77                2 (const int)
+0:77          Constant:
+0:77            3 (const uint)
+0:79      move second child to first child ( temp 4-component vector of int)
+0:79        i: direct index for structure ( temp 4-component vector of int)
+0:79          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:79            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:79              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:79              Constant:
+0:79                0 (const uint)
+0:79            direct index ( temp uint)
+0:79              'dti' ( in 3-component vector of uint)
+0:79              Constant:
+0:79                0 (const int)
+0:79          Constant:
+0:79            1 (const int)
+0:79        subgroupQuadBroadcast ( temp 4-component vector of int)
+0:79          i: direct index for structure ( temp 4-component vector of int)
+0:79            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:79              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:79                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:79                Constant:
+0:79                  0 (const uint)
+0:79              direct index ( temp uint)
+0:79                'dti' ( in 3-component vector of uint)
+0:79                Constant:
+0:79                  0 (const int)
+0:79            Constant:
+0:79              1 (const int)
+0:79          Constant:
+0:79            3 (const uint)
+0:80      move second child to first child ( temp int)
+0:80        direct index ( temp int)
+0:80          i: direct index for structure ( temp 4-component vector of int)
+0:80            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:80              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:80                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:80                Constant:
+0:80                  0 (const uint)
+0:80              direct index ( temp uint)
+0:80                'dti' ( in 3-component vector of uint)
+0:80                Constant:
+0:80                  0 (const int)
+0:80            Constant:
+0:80              1 (const int)
+0:80          Constant:
+0:80            0 (const int)
+0:80        subgroupQuadBroadcast ( temp int)
+0:80          direct index ( temp int)
+0:80            i: direct index for structure ( temp 4-component vector of int)
+0:80              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:80                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:80                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:80                  Constant:
+0:80                    0 (const uint)
+0:80                direct index ( temp uint)
+0:80                  'dti' ( in 3-component vector of uint)
+0:80                  Constant:
+0:80                    0 (const int)
+0:80              Constant:
+0:80                1 (const int)
+0:80            Constant:
+0:80              0 (const int)
+0:80          Constant:
+0:80            3 (const uint)
+0:81      move second child to first child ( temp 2-component vector of int)
+0:81        vector swizzle ( temp 2-component vector of int)
+0:81          i: direct index for structure ( temp 4-component vector of int)
+0:81            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:81              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:81                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:81                Constant:
+0:81                  0 (const uint)
+0:81              direct index ( temp uint)
+0:81                'dti' ( in 3-component vector of uint)
+0:81                Constant:
+0:81                  0 (const int)
+0:81            Constant:
+0:81              1 (const int)
+0:81          Sequence
+0:81            Constant:
+0:81              0 (const int)
+0:81            Constant:
+0:81              1 (const int)
+0:81        subgroupQuadBroadcast ( temp 2-component vector of int)
+0:81          vector swizzle ( temp 2-component vector of int)
+0:81            i: direct index for structure ( temp 4-component vector of int)
+0:81              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:81                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:81                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:81                  Constant:
+0:81                    0 (const uint)
+0:81                direct index ( temp uint)
+0:81                  'dti' ( in 3-component vector of uint)
+0:81                  Constant:
+0:81                    0 (const int)
+0:81              Constant:
+0:81                1 (const int)
+0:81            Sequence
+0:81              Constant:
+0:81                0 (const int)
+0:81              Constant:
+0:81                1 (const int)
+0:81          Constant:
+0:81            3 (const uint)
+0:82      move second child to first child ( temp 3-component vector of int)
+0:82        vector swizzle ( temp 3-component vector of int)
+0:82          i: direct index for structure ( temp 4-component vector of int)
+0:82            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:82              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:82                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:82                Constant:
+0:82                  0 (const uint)
+0:82              direct index ( temp uint)
+0:82                'dti' ( in 3-component vector of uint)
+0:82                Constant:
+0:82                  0 (const int)
+0:82            Constant:
+0:82              1 (const int)
+0:82          Sequence
+0:82            Constant:
+0:82              0 (const int)
+0:82            Constant:
+0:82              1 (const int)
+0:82            Constant:
+0:82              2 (const int)
+0:82        subgroupQuadBroadcast ( temp 3-component vector of int)
+0:82          vector swizzle ( temp 3-component vector of int)
+0:82            i: direct index for structure ( temp 4-component vector of int)
+0:82              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:82                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:82                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:82                  Constant:
+0:82                    0 (const uint)
+0:82                direct index ( temp uint)
+0:82                  'dti' ( in 3-component vector of uint)
+0:82                  Constant:
+0:82                    0 (const int)
+0:82              Constant:
+0:82                1 (const int)
+0:82            Sequence
+0:82              Constant:
+0:82                0 (const int)
+0:82              Constant:
+0:82                1 (const int)
+0:82              Constant:
+0:82                2 (const int)
+0:82          Constant:
+0:82            3 (const uint)
+0:84      move second child to first child ( temp 4-component vector of float)
+0:84        f: direct index for structure ( temp 4-component vector of float)
+0:84          indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:84            @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:84              'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:84              Constant:
+0:84                0 (const uint)
+0:84            direct index ( temp uint)
+0:84              'dti' ( in 3-component vector of uint)
+0:84              Constant:
+0:84                0 (const int)
+0:84          Constant:
+0:84            2 (const int)
+0:84        subgroupQuadBroadcast ( temp 4-component vector of float)
+0:84          f: direct index for structure ( temp 4-component vector of float)
+0:84            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:84              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:84                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:84                Constant:
+0:84                  0 (const uint)
+0:84              direct index ( temp uint)
+0:84                'dti' ( in 3-component vector of uint)
+0:84                Constant:
+0:84                  0 (const int)
+0:84            Constant:
+0:84              2 (const int)
+0:84          Constant:
+0:84            3 (const uint)
+0:85      move second child to first child ( temp float)
+0:85        direct index ( temp float)
+0:85          f: direct index for structure ( temp 4-component vector of float)
+0:85            indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:85              @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:85                'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:85                Constant:
+0:85                  0 (const uint)
+0:85              direct index ( temp uint)
+0:85                'dti' ( in 3-component vector of uint)
+0:85                Constant:
+0:85                  0 (const int)
+0:85            Constant:
+0:85              2 (const int)
+0:85          Constant:
+0:85            0 (const int)
+0:85        subgroupQuadBroadcast ( temp float)
+0:85          direct index ( temp float)
+0:85            f: direct index for structure ( temp 4-component vector of float)
+0:85              indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:85                @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d})
+0:85                  'data' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of structure{ temp 4-component vector of uint u,  temp 4-component vector of int i,  temp 4-component vector of float f,  temp 4-component vector of double d} @data})
+0:85                  Constant:
+0:85                    0 (const uint)
+0:85                direct index ( temp uint)
+0:85                  'dti' ( in 3-component vector of uint)
+0:85                  Constant:
+0:85                    0 (const int)
+0:85              Constant:
+0:85                2 (const int)
+0:85            Constant:
+0:85              0 (const int)
+0:85          Constant:
+0:85            3 (const uint)
+0:86      move second child to first child ( temp 2-component vector of float)
+0:86        vector swizzle ( temp 2-component vect