diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index 9c8b8b9..49bb0a1 100755
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -114,6 +114,7 @@
     void dumpSpv(std::vector<unsigned int>& out);
 
 protected:
+    spv::Decoration TranslateInterpolationDecoration(const glslang::TQualifier& qualifier);
     spv::Decoration TranslateAuxiliaryStorageDecoration(const glslang::TQualifier& qualifier);
     spv::BuiltIn TranslateBuiltInDecoration(glslang::TBuiltInVariable, bool memberDeclaration);
     spv::ImageFormat TranslateImageFormat(const glslang::TType& type);
@@ -381,7 +382,7 @@
 // Translate glslang type to SPIR-V interpolation decorations.
 // Returns spv::DecorationMax when no decoration
 // should be applied.
-spv::Decoration TranslateInterpolationDecoration(const glslang::TQualifier& qualifier)
+spv::Decoration TGlslangToSpvTraverser::TranslateInterpolationDecoration(const glslang::TQualifier& qualifier)
 {
     if (qualifier.smooth)
         // Smooth decoration doesn't exist in SPIR-V 1.0
@@ -391,8 +392,10 @@
     else if (qualifier.flat)
         return spv::DecorationFlat;
 #ifdef AMD_EXTENSIONS
-    else if (qualifier.explicitInterp)
+    else if (qualifier.explicitInterp) {
+        builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter);
         return spv::DecorationExplicitInterpAMD;
+    }
 #endif
     else
         return spv::DecorationMax;
@@ -572,13 +575,33 @@
         return spv::BuiltInSubgroupLtMaskKHR;
 
 #ifdef AMD_EXTENSIONS
-    case glslang::EbvBaryCoordNoPersp:          return spv::BuiltInBaryCoordNoPerspAMD;
-    case glslang::EbvBaryCoordNoPerspCentroid:  return spv::BuiltInBaryCoordNoPerspCentroidAMD;
-    case glslang::EbvBaryCoordNoPerspSample:    return spv::BuiltInBaryCoordNoPerspSampleAMD;
-    case glslang::EbvBaryCoordSmooth:           return spv::BuiltInBaryCoordSmoothAMD;
-    case glslang::EbvBaryCoordSmoothCentroid:   return spv::BuiltInBaryCoordSmoothCentroidAMD;
-    case glslang::EbvBaryCoordSmoothSample:     return spv::BuiltInBaryCoordSmoothSampleAMD;
-    case glslang::EbvBaryCoordPullModel:        return spv::BuiltInBaryCoordPullModelAMD;
+    case glslang::EbvBaryCoordNoPersp:
+        builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter);
+        return spv::BuiltInBaryCoordNoPerspAMD;
+
+    case glslang::EbvBaryCoordNoPerspCentroid:
+        builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter);
+        return spv::BuiltInBaryCoordNoPerspCentroidAMD;
+
+    case glslang::EbvBaryCoordNoPerspSample:
+        builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter);
+        return spv::BuiltInBaryCoordNoPerspSampleAMD;
+
+    case glslang::EbvBaryCoordSmooth:
+        builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter);
+        return spv::BuiltInBaryCoordSmoothAMD;
+
+    case glslang::EbvBaryCoordSmoothCentroid:
+        builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter);
+        return spv::BuiltInBaryCoordSmoothCentroidAMD;
+
+    case glslang::EbvBaryCoordSmoothSample:
+        builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter);
+        return spv::BuiltInBaryCoordSmoothSampleAMD;
+
+    case glslang::EbvBaryCoordPullModel:
+        builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter);
+        return spv::BuiltInBaryCoordPullModelAMD;
 #endif
     default:                               return spv::BuiltInMax;
     }
@@ -2745,9 +2768,10 @@
 
     // Check for queries
     if (cracked.query) {
-        // a sampled image needs to have the image extracted first
-        if (builder.isSampledImage(params.sampler))
+        // OpImageQueryLod works on a sampled image, for other queries the image has to be extracted first
+        if (node->getOp() != glslang::EOpTextureQueryLod && builder.isSampledImage(params.sampler))
             params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler);
+
         switch (node->getOp()) {
         case glslang::EOpImageQuerySize:
         case glslang::EOpTextureQuerySize:
@@ -4109,6 +4133,10 @@
         builder.addCapability(spv::CapabilitySubgroupBallotKHR);
     } else {
         builder.addCapability(spv::CapabilityGroups);
+        if (op == glslang::EOpMinInvocationsNonUniform ||
+            op == glslang::EOpMaxInvocationsNonUniform ||
+            op == glslang::EOpAddInvocationsNonUniform)
+            builder.addExtension(spv::E_SPV_AMD_shader_ballot);
 
         spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup));
 #ifdef AMD_EXTENSIONS
diff --git a/SPIRV/SPVRemapper.h b/SPIRV/SPVRemapper.h
index 43ec1ae..b3c686a 100755
--- a/SPIRV/SPVRemapper.h
+++ b/SPIRV/SPVRemapper.h
@@ -75,6 +75,7 @@
 
 #if !defined (use_cpp11)
 #include <cstdio>
+#include <cstdint>
 
 namespace spv {
 class spirvbin_t : public spirvbin_base_t
diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp
index c19f368..4703edc 100644
--- a/SPIRV/SpvBuilder.cpp
+++ b/SPIRV/SpvBuilder.cpp
@@ -797,7 +797,7 @@
 
     spvutils::HexFloat<spvutils::FloatProxy<float>> fVal(f16);
     spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>> f16Val(0);
-    fVal.castTo(f16Val, spvutils::round_direction::kToZero);
+    fVal.castTo(f16Val, spvutils::kRoundToZero);
 
     unsigned value = f16Val.value().getAsFloat().get_value();
 
diff --git a/SPIRV/hex_float.h b/SPIRV/hex_float.h
index ac7e002..31b9f9e 100644
--- a/SPIRV/hex_float.h
+++ b/SPIRV/hex_float.h
@@ -23,6 +23,19 @@
 #include <limits>
 #include <sstream>
 
+#if defined(_MSC_VER) && _MSC_VER < 1700
+namespace std {
+bool isnan(double f)
+{
+  return ::_isnan(f) != 0;
+}
+bool isinf(double f)
+{
+  return ::_finite(f) == 0;
+}
+}
+#endif
+
 #include "bitutils.h"
 
 namespace spvutils {
@@ -30,7 +43,7 @@
 class Float16 {
  public:
   Float16(uint16_t v) : val(v) {}
-  Float16() = default;
+  Float16() {}
   static bool isNan(const Float16& val) {
     return ((val.val & 0x7C00) == 0x7C00) && ((val.val & 0x3FF) != 0);
   }
@@ -56,12 +69,12 @@
 // a value is Nan.
 template <typename T>
 struct FloatProxyTraits {
-  using uint_type = void;
+  typedef void uint_type;
 };
 
 template <>
 struct FloatProxyTraits<float> {
-  using uint_type = uint32_t;
+  typedef uint32_t uint_type;
   static bool isNan(float f) { return std::isnan(f); }
   // Returns true if the given value is any kind of infinity.
   static bool isInfinity(float f) { return std::isinf(f); }
@@ -73,7 +86,7 @@
 
 template <>
 struct FloatProxyTraits<double> {
-  using uint_type = uint64_t;
+  typedef uint64_t uint_type;
   static bool isNan(double f) { return std::isnan(f); }
   // Returns true if the given value is any kind of infinity.
   static bool isInfinity(double f) { return std::isinf(f); }
@@ -85,7 +98,7 @@
 
 template <>
 struct FloatProxyTraits<Float16> {
-  using uint_type = uint16_t;
+  typedef uint16_t uint_type;
   static bool isNan(Float16 f) { return Float16::isNan(f); }
   // Returns true if the given value is any kind of infinity.
   static bool isInfinity(Float16 f) { return Float16::isInfinity(f); }
@@ -101,11 +114,11 @@
 template <typename T>
 class FloatProxy {
  public:
-  using uint_type = typename FloatProxyTraits<T>::uint_type;
+  typedef typename FloatProxyTraits<T>::uint_type uint_type;
 
   // Since this is to act similar to the normal floats,
   // do not initialize the data by default.
-  FloatProxy() = default;
+  FloatProxy() {}
 
   // Intentionally non-explicit. This is a proxy type so
   // implicit conversions allow us to use it more transparently.
@@ -164,13 +177,13 @@
 template <typename T>
 struct HexFloatTraits {
   // Integer type that can store this hex-float.
-  using uint_type = void;
+  typedef void uint_type;
   // Signed integer type that can store this hex-float.
-  using int_type = void;
+  typedef void int_type;
   // The numerical type that this HexFloat represents.
-  using underlying_type = void;
+  typedef void underlying_type;
   // The type needed to construct the underlying type.
-  using native_type = void;
+  typedef void native_type;
   // The number of bits that are actually relevant in the uint_type.
   // This allows us to deal with, for example, 24-bit values in a 32-bit
   // integer.
@@ -188,10 +201,10 @@
 // 1 sign bit, 8 exponent bits, 23 fractional bits.
 template <>
 struct HexFloatTraits<FloatProxy<float>> {
-  using uint_type = uint32_t;
-  using int_type = int32_t;
-  using underlying_type = FloatProxy<float>;
-  using native_type = float;
+  typedef uint32_t uint_type;
+  typedef int32_t int_type;
+  typedef FloatProxy<float> underlying_type;
+  typedef float native_type;
   static const uint_type num_used_bits = 32;
   static const uint_type num_exponent_bits = 8;
   static const uint_type num_fraction_bits = 23;
@@ -202,10 +215,10 @@
 // 1 sign bit, 11 exponent bits, 52 fractional bits.
 template <>
 struct HexFloatTraits<FloatProxy<double>> {
-  using uint_type = uint64_t;
-  using int_type = int64_t;
-  using underlying_type = FloatProxy<double>;
-  using native_type = double;
+  typedef uint64_t uint_type;
+  typedef int64_t int_type;
+  typedef FloatProxy<double> underlying_type;
+  typedef double native_type;
   static const uint_type num_used_bits = 64;
   static const uint_type num_exponent_bits = 11;
   static const uint_type num_fraction_bits = 52;
@@ -216,22 +229,21 @@
 // 1 sign bit, 5 exponent bits, 10 fractional bits.
 template <>
 struct HexFloatTraits<FloatProxy<Float16>> {
-  using uint_type = uint16_t;
-  using int_type = int16_t;
-  using underlying_type = uint16_t;
-  using native_type = uint16_t;
+  typedef uint16_t uint_type;
+  typedef int16_t int_type;
+  typedef uint16_t underlying_type;
+  typedef uint16_t native_type;
   static const uint_type num_used_bits = 16;
   static const uint_type num_exponent_bits = 5;
   static const uint_type num_fraction_bits = 10;
   static const uint_type exponent_bias = 15;
 };
 
-enum class round_direction {
-  kToZero,
-  kToNearestEven,
-  kToPositiveInfinity,
-  kToNegativeInfinity,
-  max = kToNegativeInfinity
+enum round_direction {
+  kRoundToZero,
+  kRoundToNearestEven,
+  kRoundToPositiveInfinity,
+  kRoundToNegativeInfinity
 };
 
 // Template class that houses a floating pointer number.
@@ -240,10 +252,10 @@
 template <typename T, typename Traits = HexFloatTraits<T>>
 class HexFloat {
  public:
-  using uint_type = typename Traits::uint_type;
-  using int_type = typename Traits::int_type;
-  using underlying_type = typename Traits::underlying_type;
-  using native_type = typename Traits::native_type;
+  typedef typename Traits::uint_type uint_type;
+  typedef typename Traits::int_type int_type;
+  typedef typename Traits::underlying_type underlying_type;
+  typedef typename Traits::native_type native_type;
 
   explicit HexFloat(T f) : value_(f) {}
 
@@ -444,33 +456,23 @@
   // constant_number < 0? 0: constant_number
   // These convert the negative left-shifts into right shifts.
 
-  template <int_type N, typename enable = void>
-  struct negatable_left_shift {
-    static uint_type val(uint_type val) {
-      return static_cast<uint_type>(val >> -N);
-    }
-  };
+  template <typename int_type>
+  uint_type negatable_left_shift(int_type N, uint_type val)
+  {
+    if(N >= 0)
+      return val << N;
 
-  template <int_type N>
-  struct negatable_left_shift<N, typename std::enable_if<N >= 0>::type> {
-    static uint_type val(uint_type val) {
-      return static_cast<uint_type>(val << N);
-    }
-  };
+    return val >> -N;
+  }
 
-  template <int_type N, typename enable = void>
-  struct negatable_right_shift {
-    static uint_type val(uint_type val) {
-      return static_cast<uint_type>(val << -N);
-    }
-  };
+  template <typename int_type>
+  uint_type negatable_right_shift(int_type N, uint_type val)
+  {
+    if(N >= 0)
+      return val >> N;
 
-  template <int_type N>
-  struct negatable_right_shift<N, typename std::enable_if<N >= 0>::type> {
-    static uint_type val(uint_type val) {
-      return static_cast<uint_type>(val >> N);
-    }
-  };
+    return val << -N;
+  }
 
   // Returns the significand, rounded to fit in a significand in
   // other_T. This is shifted so that the most significant
@@ -479,7 +481,7 @@
   template <typename other_T>
   typename other_T::uint_type getRoundedNormalizedSignificand(
       round_direction dir, bool* carry_bit) {
-    using other_uint_type = typename other_T::uint_type;
+    typedef typename other_T::uint_type other_uint_type;
     static const int_type num_throwaway_bits =
         static_cast<int_type>(num_fraction_bits) -
         static_cast<int_type>(other_T::num_fraction_bits);
@@ -487,11 +489,11 @@
     static const uint_type last_significant_bit =
         (num_throwaway_bits < 0)
             ? 0
-            : negatable_left_shift<num_throwaway_bits>::val(1u);
+            : negatable_left_shift(num_throwaway_bits, 1u);
     static const uint_type first_rounded_bit =
         (num_throwaway_bits < 1)
             ? 0
-            : negatable_left_shift<num_throwaway_bits - 1>::val(1u);
+            : negatable_left_shift(num_throwaway_bits - 1, 1u);
 
     static const uint_type throwaway_mask_bits =
         num_throwaway_bits > 0 ? num_throwaway_bits : 0;
@@ -513,22 +515,22 @@
     // do.
     if ((significand & throwaway_mask) == 0) {
       return static_cast<other_uint_type>(
-          negatable_right_shift<num_throwaway_bits>::val(significand));
+          negatable_right_shift(num_throwaway_bits, significand));
     }
 
     bool round_away_from_zero = false;
     // We actually have to narrow the significand here, so we have to follow the
     // rounding rules.
     switch (dir) {
-      case round_direction::kToZero:
+      case kRoundToZero:
         break;
-      case round_direction::kToPositiveInfinity:
+      case kRoundToPositiveInfinity:
         round_away_from_zero = !isNegative();
         break;
-      case round_direction::kToNegativeInfinity:
+      case kRoundToNegativeInfinity:
         round_away_from_zero = isNegative();
         break;
-      case round_direction::kToNearestEven:
+      case kRoundToNearestEven:
         // Have to round down, round bit is 0
         if ((first_rounded_bit & significand) == 0) {
           break;
@@ -550,11 +552,11 @@
 
     if (round_away_from_zero) {
       return static_cast<other_uint_type>(
-          negatable_right_shift<num_throwaway_bits>::val(incrementSignificand(
+          negatable_right_shift(num_throwaway_bits, incrementSignificand(
               significand, last_significant_bit, carry_bit)));
     } else {
       return static_cast<other_uint_type>(
-          negatable_right_shift<num_throwaway_bits>::val(significand));
+          negatable_right_shift(num_throwaway_bits, significand));
     }
   }
 
@@ -608,9 +610,9 @@
     if (is_nan) {
       typename other_T::uint_type shifted_significand;
       shifted_significand = static_cast<typename other_T::uint_type>(
-          negatable_left_shift<
+          negatable_left_shift(
               static_cast<int_type>(other_T::num_fraction_bits) -
-              static_cast<int_type>(num_fraction_bits)>::val(significand));
+              static_cast<int_type>(num_fraction_bits), significand));
 
       // We are some sort of Nan. We try to keep the bit-pattern of the Nan
       // as close as possible. If we had to shift off bits so we are 0, then we
@@ -623,9 +625,9 @@
     }
 
     bool round_underflow_up =
-        isNegative() ? round_dir == round_direction::kToNegativeInfinity
-                     : round_dir == round_direction::kToPositiveInfinity;
-    using other_int_type = typename other_T::int_type;
+        isNegative() ? round_dir == kRoundToNegativeInfinity
+                     : round_dir == kRoundToPositiveInfinity;
+    typedef typename other_T::int_type other_int_type;
     // setFromSignUnbiasedExponentAndNormalizedSignificand will
     // zero out any underflowing value (but retain the sign).
     other.setFromSignUnbiasedExponentAndNormalizedSignificand(
@@ -664,9 +666,9 @@
 // Outputs the given HexFloat to the stream.
 template <typename T, typename Traits>
 std::ostream& operator<<(std::ostream& os, const HexFloat<T, Traits>& value) {
-  using HF = HexFloat<T, Traits>;
-  using uint_type = typename HF::uint_type;
-  using int_type = typename HF::int_type;
+  typedef HexFloat<T, Traits> HF;
+  typedef typename HF::uint_type uint_type;
+  typedef typename HF::int_type int_type;
 
   static_assert(HF::num_used_bits != 0,
                 "num_used_bits must be non-zero for a valid float");
@@ -745,7 +747,7 @@
     if (next_char == '-' || next_char == '+') {
       // Fail the parse.  Emulate standard behaviour by setting the value to
       // the zero value, and set the fail bit on the stream.
-      value = HexFloat<T, Traits>(typename HexFloat<T, Traits>::uint_type{0});
+      value = HexFloat<T, Traits>(typename HexFloat<T, Traits>::uint_type(0));
       is.setstate(std::ios_base::failbit);
       return true;
     }
@@ -777,7 +779,7 @@
   value.set_value(val);
   // In the failure case, map -0.0 to 0.0.
   if (is.fail() && value.getUnsignedBits() == 0u) {
-    value = HexFloat<T, Traits>(typename HexFloat<T, Traits>::uint_type{0});
+    value = HexFloat<T, Traits>(typename HexFloat<T, Traits>::uint_type(0));
   }
   if (val.isInfinity()) {
     // Fail the parse.  Emulate standard behaviour by setting the value to
@@ -812,7 +814,7 @@
 
   // Then convert to 16-bit float, saturating at infinities, and
   // rounding toward zero.
-  float_val.castTo(value, round_direction::kToZero);
+  float_val.castTo(value, kRoundToZero);
 
   // Overflow on 16-bit behaves the same as for 32- and 64-bit: set the
   // fail bit and set the lowest or highest value.
diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp
index 5d30ac2..0ac72d3 100644
--- a/StandAlone/StandAlone.cpp
+++ b/StandAlone/StandAlone.cpp
@@ -82,6 +82,7 @@
     EOptionCascadingErrors    = (1 << 18),
     EOptionAutoMapBindings    = (1 << 19),
     EOptionFlattenUniformArrays = (1 << 20),
+    EOptionNoStorageFormat    = (1 << 21),
 };
 
 //
@@ -290,6 +291,9 @@
                                lowerword == "flatten-uniform-array"  ||
                                lowerword == "fua") {
                         Options |= EOptionFlattenUniformArrays;
+                    } else if (lowerword == "no-storage-format" || // synonyms
+                               lowerword == "nsf") {
+                        Options |= EOptionNoStorageFormat;
                     } else {
                         usage();
                     }
@@ -542,6 +546,7 @@
         shader->setShiftTextureBinding(baseTextureBinding[compUnit.stage]);
         shader->setShiftUboBinding(baseUboBinding[compUnit.stage]);
         shader->setFlattenUniformArrays((Options & EOptionFlattenUniformArrays) != 0);
+        shader->setNoStorageFormat((Options & EOptionNoStorageFormat) != 0);
 
         if (Options & EOptionAutoMapBindings)
             shader->setAutoMapBindings(true);
@@ -584,6 +589,12 @@
     if (! (Options & EOptionOutputPreprocessed) && ! program.link(messages))
         LinkFailed = true;
 
+    // Map IO
+    if (Options & EOptionSpv) {
+        if (!program.mapIO())
+            LinkFailed = true;
+    }
+    
     // Report
     if (! (Options & EOptionSuppressInfolog) &&
         ! (Options & EOptionMemoryLeakMode)) {
@@ -591,10 +602,6 @@
         PutsIfNonEmpty(program.getInfoDebugLog());
     }
 
-    // Map IO
-    if (Options & EOptionSpv)
-        program.mapIO();
-    
     // Reflect
     if (Options & EOptionDumpReflection) {
         program.buildReflection();
@@ -666,11 +673,11 @@
     // they are all getting linked together.)
     glslang::TWorkItem* workItem;
     while (Worklist.remove(workItem)) {
-        ShaderCompUnit compUnit = {
+        ShaderCompUnit compUnit(
             FindLanguage(workItem->name),
             workItem->name,
             ReadFileData(workItem->name.c_str())
-        };
+        );
 
         if (! compUnit.text) {
             usage();
@@ -943,6 +950,9 @@
            "\n"
            "  --flatten-uniform-arrays                flatten uniform texture & sampler arrays to scalars\n"
            "  --fua                                   synonym for --flatten-uniform-arrays\n"
+           "\n"
+           "  --no-storage-format                     use Unknown image format\n"
+           "  --nsf                                   synonym for --no-storage-format\n"
            );
 
     exit(EFailUsage);
diff --git a/Test/baseResults/hlsl.array.flatten.frag.out b/Test/baseResults/hlsl.array.flatten.frag.out
index 185c2cc..cbfb0ef 100644
--- a/Test/baseResults/hlsl.array.flatten.frag.out
+++ b/Test/baseResults/hlsl.array.flatten.frag.out
@@ -6,7 +6,7 @@
 0:17    Function Parameters: 
 0:?     Sequence
 0:18      Branch: Return with expression
-0:18        texture (global 4-component vector of float)
+0:18        texture (temp 4-component vector of float)
 0:18          Construct combined texture-sampler (temp sampler1D)
 0:?             'g_tex[1]' (uniform texture1D)
 0:?             'g_samp[1]' (uniform sampler)
@@ -18,7 +18,7 @@
 0:22      'l_samp' (in 3-element array of sampler)
 0:?     Sequence
 0:23      Branch: Return with expression
-0:23        texture (global 4-component vector of float)
+0:23        texture (temp 4-component vector of float)
 0:23          Construct combined texture-sampler (temp sampler1D)
 0:23            direct index (temp texture1D)
 0:23              'l_tex' (in 3-element array of texture1D)
@@ -165,7 +165,7 @@
 0:17    Function Parameters: 
 0:?     Sequence
 0:18      Branch: Return with expression
-0:18        texture (global 4-component vector of float)
+0:18        texture (temp 4-component vector of float)
 0:18          Construct combined texture-sampler (temp sampler1D)
 0:?             'g_tex[1]' (uniform texture1D)
 0:?             'g_samp[1]' (uniform sampler)
@@ -177,7 +177,7 @@
 0:22      'l_samp' (in 3-element array of sampler)
 0:?     Sequence
 0:23      Branch: Return with expression
-0:23        texture (global 4-component vector of float)
+0:23        texture (temp 4-component vector of float)
 0:23          Construct combined texture-sampler (temp sampler1D)
 0:23            direct index (temp texture1D)
 0:23              'l_tex' (in 3-element array of texture1D)
diff --git a/Test/baseResults/hlsl.array.multidim.frag.out b/Test/baseResults/hlsl.array.multidim.frag.out
new file mode 100644
index 0000000..a2df1a8
--- /dev/null
+++ b/Test/baseResults/hlsl.array.multidim.frag.out
@@ -0,0 +1,210 @@
+hlsl.array.multidim.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:10  Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:10    Function Parameters: 
+0:?     Sequence
+0:14      move second child to first child (temp 4-component vector of float)
+0:14        direct index (temp 4-component vector of float)
+0:14          direct index (temp 3-element array of 4-component vector of float)
+0:14            'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
+0:14            Constant:
+0:14              1 (const int)
+0:14          Constant:
+0:14            2 (const int)
+0:14        Construct vec4 (temp 4-component vector of float)
+0:14          direct index (layout(offset=0 ) temp float)
+0:14            direct index (layout(offset=0 ) temp 3-element array of float)
+0:14              direct index (layout(offset=0 ) temp 4-element array of 3-element array of float)
+0:14                float_array: direct index for structure (layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float)
+0:14                  'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})
+0:14                  Constant:
+0:14                    0 (const uint)
+0:14                Constant:
+0:14                  2 (const int)
+0:14              Constant:
+0:14                3 (const int)
+0:14            Constant:
+0:14              1 (const int)
+0:15      move second child to first child (temp 3-element array of 4-component vector of float)
+0:15        direct index (temp 3-element array of 4-component vector of float)
+0:15          'float4_array_2' (temp 5-element array of 3-element array of 4-component vector of float)
+0:15          Constant:
+0:15            1 (const int)
+0:15        direct index (temp 3-element array of 4-component vector of float)
+0:15          'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
+0:15          Constant:
+0:15            0 (const int)
+0:18      move second child to first child (temp 4-component vector of float)
+0:18        Color: direct index for structure (temp 4-component vector of float)
+0:18          'psout' (temp structure{temp 4-component vector of float Color})
+0:18          Constant:
+0:18            0 (const int)
+0:18        direct index (temp 4-component vector of float)
+0:18          direct index (temp 3-element array of 4-component vector of float)
+0:18            'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
+0:18            Constant:
+0:18              1 (const int)
+0:18          Constant:
+0:18            2 (const int)
+0:19      Sequence
+0:19        Sequence
+0:19          move second child to first child (temp 4-component vector of float)
+0:?             'Color' (layout(location=0 ) out 4-component vector of float)
+0:19            Color: direct index for structure (temp 4-component vector of float)
+0:19              'psout' (temp structure{temp 4-component vector of float Color})
+0:19              Constant:
+0:19                0 (const int)
+0:19        Branch: Return
+0:?   Linker Objects
+0:?     'Color' (layout(location=0 ) out 4-component vector of float)
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:10  Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:10    Function Parameters: 
+0:?     Sequence
+0:14      move second child to first child (temp 4-component vector of float)
+0:14        direct index (temp 4-component vector of float)
+0:14          direct index (temp 3-element array of 4-component vector of float)
+0:14            'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
+0:14            Constant:
+0:14              1 (const int)
+0:14          Constant:
+0:14            2 (const int)
+0:14        Construct vec4 (temp 4-component vector of float)
+0:14          direct index (layout(offset=0 ) temp float)
+0:14            direct index (layout(offset=0 ) temp 3-element array of float)
+0:14              direct index (layout(offset=0 ) temp 4-element array of 3-element array of float)
+0:14                float_array: direct index for structure (layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float)
+0:14                  'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})
+0:14                  Constant:
+0:14                    0 (const uint)
+0:14                Constant:
+0:14                  2 (const int)
+0:14              Constant:
+0:14                3 (const int)
+0:14            Constant:
+0:14              1 (const int)
+0:15      move second child to first child (temp 3-element array of 4-component vector of float)
+0:15        direct index (temp 3-element array of 4-component vector of float)
+0:15          'float4_array_2' (temp 5-element array of 3-element array of 4-component vector of float)
+0:15          Constant:
+0:15            1 (const int)
+0:15        direct index (temp 3-element array of 4-component vector of float)
+0:15          'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
+0:15          Constant:
+0:15            0 (const int)
+0:18      move second child to first child (temp 4-component vector of float)
+0:18        Color: direct index for structure (temp 4-component vector of float)
+0:18          'psout' (temp structure{temp 4-component vector of float Color})
+0:18          Constant:
+0:18            0 (const int)
+0:18        direct index (temp 4-component vector of float)
+0:18          direct index (temp 3-element array of 4-component vector of float)
+0:18            'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float)
+0:18            Constant:
+0:18              1 (const int)
+0:18          Constant:
+0:18            2 (const int)
+0:19      Sequence
+0:19        Sequence
+0:19          move second child to first child (temp 4-component vector of float)
+0:?             'Color' (layout(location=0 ) out 4-component vector of float)
+0:19            Color: direct index for structure (temp 4-component vector of float)
+0:19              'psout' (temp structure{temp 4-component vector of float Color})
+0:19              Constant:
+0:19                0 (const int)
+0:19        Branch: Return
+0:?   Linker Objects
+0:?     'Color' (layout(location=0 ) out 4-component vector of float)
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 52
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 48
+                              ExecutionMode 4 OriginUpperLeft
+                              Name 4  "main"
+                              Name 14  "float4_array_1"
+                              Name 23  "$Global"
+                              MemberName 23($Global) 0  "float_array"
+                              Name 25  ""
+                              Name 36  "float4_array_2"
+                              Name 41  "PS_OUTPUT"
+                              MemberName 41(PS_OUTPUT) 0  "Color"
+                              Name 43  "psout"
+                              Name 48  "Color"
+                              Decorate 18 ArrayStride 16
+                              Decorate 20 ArrayStride 48
+                              Decorate 22 ArrayStride 192
+                              MemberDecorate 23($Global) 0 Offset 0
+                              Decorate 23($Global) Block
+                              Decorate 25 DescriptorSet 0
+                              Decorate 48(Color) Location 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypeInt 32 0
+               9:      8(int) Constant 3
+              10:             TypeArray 7(fvec4) 9
+              11:      8(int) Constant 2
+              12:             TypeArray 10 11
+              13:             TypePointer Function 12
+              15:             TypeInt 32 1
+              16:     15(int) Constant 1
+              17:     15(int) Constant 2
+              18:             TypeArray 6(float) 9
+              19:      8(int) Constant 4
+              20:             TypeArray 18 19
+              21:      8(int) Constant 5
+              22:             TypeArray 20 21
+     23($Global):             TypeStruct 22
+              24:             TypePointer Uniform 23($Global)
+              25:     24(ptr) Variable Uniform
+              26:     15(int) Constant 0
+              27:     15(int) Constant 3
+              28:             TypePointer Uniform 6(float)
+              32:             TypePointer Function 7(fvec4)
+              34:             TypeArray 10 21
+              35:             TypePointer Function 34
+              37:             TypePointer Function 10
+   41(PS_OUTPUT):             TypeStruct 7(fvec4)
+              42:             TypePointer Function 41(PS_OUTPUT)
+              47:             TypePointer Output 7(fvec4)
+       48(Color):     47(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+14(float4_array_1):     13(ptr) Variable Function
+36(float4_array_2):     35(ptr) Variable Function
+       43(psout):     42(ptr) Variable Function
+              29:     28(ptr) AccessChain 25 26 17 27 16
+              30:    6(float) Load 29
+              31:    7(fvec4) CompositeConstruct 30 30 30 30
+              33:     32(ptr) AccessChain 14(float4_array_1) 16 17
+                              Store 33 31
+              38:     37(ptr) AccessChain 14(float4_array_1) 26
+              39:          10 Load 38
+              40:     37(ptr) AccessChain 36(float4_array_2) 16
+                              Store 40 39
+              44:     32(ptr) AccessChain 14(float4_array_1) 16 17
+              45:    7(fvec4) Load 44
+              46:     32(ptr) AccessChain 43(psout) 26
+                              Store 46 45
+              49:     32(ptr) AccessChain 43(psout) 26
+              50:    7(fvec4) Load 49
+                              Store 48(Color) 50
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.basic.comp.out b/Test/baseResults/hlsl.basic.comp.out
new file mode 100755
index 0000000..c6dc3e5
--- /dev/null
+++ b/Test/baseResults/hlsl.basic.comp.out
@@ -0,0 +1,58 @@
+hlsl.basic.comp
+Shader version: 450
+local_size = (1, 1, 1)
+0:? Sequence
+0:4  Function Definition: main(i1; (temp void)
+0:4    Function Parameters: 
+0:4      'dti' (in int LocalInvocationID)
+0:?     Sequence
+0:5      'dti' (in int LocalInvocationID)
+0:?   Linker Objects
+0:?     'a' (shared 100-element array of 4-component vector of float)
+0:?     'dti' (in int LocalInvocationID)
+
+
+Linked compute stage:
+
+
+Shader version: 450
+local_size = (1, 1, 1)
+0:? Sequence
+0:4  Function Definition: main(i1; (temp void)
+0:4    Function Parameters: 
+0:4      'dti' (in int LocalInvocationID)
+0:?     Sequence
+0:5      'dti' (in int LocalInvocationID)
+0:?   Linker Objects
+0:?     'a' (shared 100-element array of 4-component vector of float)
+0:?     'dti' (in int LocalInvocationID)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 16
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint GLCompute 4  "main" 8
+                              ExecutionMode 4 LocalSize 1 1 1
+                              Name 4  "main"
+                              Name 8  "dti"
+                              Name 15  "a"
+                              Decorate 8(dti) BuiltIn LocalInvocationId
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Input 6(int)
+          8(dti):      7(ptr) Variable Input
+               9:             TypeFloat 32
+              10:             TypeVector 9(float) 4
+              11:             TypeInt 32 0
+              12:     11(int) Constant 100
+              13:             TypeArray 10(fvec4) 12
+              14:             TypePointer Workgroup 13
+           15(a):     14(ptr) Variable Workgroup
+         4(main):           2 Function None 3
+               5:             Label
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out
index 9d061d2..ff18441 100644
--- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out
+++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out
@@ -345,7 +345,7 @@
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 150
+// Id's are bound by 141
 
                               Capability Shader
                               Capability Sampled1D
@@ -353,51 +353,51 @@
                               Capability ImageQuery
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 141 145
+                              EntryPoint Fragment 4  "main" 132 136
                               ExecutionMode 4 OriginUpperLeft
                               Name 4  "main"
                               Name 8  "txval10"
                               Name 11  "g_tTex1df4a"
                               Name 15  "g_sSamp"
-                              Name 26  "txval11"
-                              Name 29  "g_tTex1di4a"
-                              Name 38  "txval12"
-                              Name 42  "g_tTex1du4a"
-                              Name 51  "txval20"
-                              Name 54  "g_tTex2df4a"
-                              Name 63  "txval21"
-                              Name 66  "g_tTex2di4a"
-                              Name 76  "txval22"
-                              Name 79  "g_tTex2du4a"
-                              Name 90  "txval40"
-                              Name 93  "g_tTexcdf4a"
-                              Name 103  "txval41"
-                              Name 106  "g_tTexcdi4a"
-                              Name 115  "txval42"
-                              Name 118  "g_tTexcdu4a"
-                              Name 131  "PS_OUTPUT"
-                              MemberName 131(PS_OUTPUT) 0  "Color"
-                              MemberName 131(PS_OUTPUT) 1  "Depth"
-                              Name 133  "psout"
-                              Name 141  "Color"
-                              Name 145  "Depth"
-                              Name 149  "g_tTex1df4"
+                              Name 25  "txval11"
+                              Name 28  "g_tTex1di4a"
+                              Name 36  "txval12"
+                              Name 40  "g_tTex1du4a"
+                              Name 48  "txval20"
+                              Name 51  "g_tTex2df4a"
+                              Name 59  "txval21"
+                              Name 62  "g_tTex2di4a"
+                              Name 71  "txval22"
+                              Name 74  "g_tTex2du4a"
+                              Name 84  "txval40"
+                              Name 87  "g_tTexcdf4a"
+                              Name 96  "txval41"
+                              Name 99  "g_tTexcdi4a"
+                              Name 107  "txval42"
+                              Name 110  "g_tTexcdu4a"
+                              Name 122  "PS_OUTPUT"
+                              MemberName 122(PS_OUTPUT) 0  "Color"
+                              MemberName 122(PS_OUTPUT) 1  "Depth"
+                              Name 124  "psout"
+                              Name 132  "Color"
+                              Name 136  "Depth"
+                              Name 140  "g_tTex1df4"
                               Decorate 11(g_tTex1df4a) DescriptorSet 0
                               Decorate 11(g_tTex1df4a) Binding 1
                               Decorate 15(g_sSamp) DescriptorSet 0
                               Decorate 15(g_sSamp) Binding 0
-                              Decorate 29(g_tTex1di4a) DescriptorSet 0
-                              Decorate 42(g_tTex1du4a) DescriptorSet 0
-                              Decorate 54(g_tTex2df4a) DescriptorSet 0
-                              Decorate 66(g_tTex2di4a) DescriptorSet 0
-                              Decorate 79(g_tTex2du4a) DescriptorSet 0
-                              Decorate 93(g_tTexcdf4a) DescriptorSet 0
-                              Decorate 106(g_tTexcdi4a) DescriptorSet 0
-                              Decorate 118(g_tTexcdu4a) DescriptorSet 0
-                              Decorate 141(Color) Location 0
-                              Decorate 145(Depth) BuiltIn FragDepth
-                              Decorate 149(g_tTex1df4) DescriptorSet 0
-                              Decorate 149(g_tTex1df4) Binding 0
+                              Decorate 28(g_tTex1di4a) DescriptorSet 0
+                              Decorate 40(g_tTex1du4a) DescriptorSet 0
+                              Decorate 51(g_tTex2df4a) DescriptorSet 0
+                              Decorate 62(g_tTex2di4a) DescriptorSet 0
+                              Decorate 74(g_tTex2du4a) DescriptorSet 0
+                              Decorate 87(g_tTexcdf4a) DescriptorSet 0
+                              Decorate 99(g_tTexcdi4a) DescriptorSet 0
+                              Decorate 110(g_tTexcdu4a) DescriptorSet 0
+                              Decorate 132(Color) Location 0
+                              Decorate 136(Depth) BuiltIn FragDepth
+                              Decorate 140(g_tTex1df4) DescriptorSet 0
+                              Decorate 140(g_tTex1df4) Binding 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -410,153 +410,144 @@
      15(g_sSamp):     14(ptr) Variable UniformConstant
               17:             TypeSampledImage 9
               19:    6(float) Constant 1036831949
-              21:             TypeVector 6(float) 2
-              23:             TypeInt 32 1
-              24:     23(int) Constant 0
-              27:             TypeImage 23(int) 1D array sampled format:Unknown
-              28:             TypePointer UniformConstant 27
- 29(g_tTex1di4a):     28(ptr) Variable UniformConstant
-              32:             TypeSampledImage 27
-              34:    6(float) Constant 1045220557
-              39:             TypeInt 32 0
-              40:             TypeImage 39(int) 1D array sampled format:Unknown
-              41:             TypePointer UniformConstant 40
- 42(g_tTex1du4a):     41(ptr) Variable UniformConstant
-              45:             TypeSampledImage 40
-              47:    6(float) Constant 1050253722
-              52:             TypeImage 6(float) 2D array sampled format:Unknown
-              53:             TypePointer UniformConstant 52
- 54(g_tTex2df4a):     53(ptr) Variable UniformConstant
-              57:             TypeSampledImage 52
-              59:   21(fvec2) ConstantComposite 19 34
-              64:             TypeImage 23(int) 2D array sampled format:Unknown
-              65:             TypePointer UniformConstant 64
- 66(g_tTex2di4a):     65(ptr) Variable UniformConstant
-              69:             TypeSampledImage 64
-              71:    6(float) Constant 1053609165
-              72:   21(fvec2) ConstantComposite 47 71
-              77:             TypeImage 39(int) 2D array sampled format:Unknown
-              78:             TypePointer UniformConstant 77
- 79(g_tTex2du4a):     78(ptr) Variable UniformConstant
-              82:             TypeSampledImage 77
-              84:    6(float) Constant 1056964608
-              85:    6(float) Constant 1058642330
-              86:   21(fvec2) ConstantComposite 84 85
-              91:             TypeImage 6(float) Cube array sampled format:Unknown
-              92:             TypePointer UniformConstant 91
- 93(g_tTexcdf4a):     92(ptr) Variable UniformConstant
-              96:             TypeSampledImage 91
-              98:             TypeVector 6(float) 3
-              99:   98(fvec3) ConstantComposite 19 34 47
-             104:             TypeImage 23(int) Cube array sampled format:Unknown
-             105:             TypePointer UniformConstant 104
-106(g_tTexcdi4a):    105(ptr) Variable UniformConstant
-             109:             TypeSampledImage 104
-             111:   98(fvec3) ConstantComposite 71 84 85
-             116:             TypeImage 39(int) Cube array sampled format:Unknown
-             117:             TypePointer UniformConstant 116
-118(g_tTexcdu4a):    117(ptr) Variable UniformConstant
-             121:             TypeSampledImage 116
-             123:    6(float) Constant 1060320051
-             124:    6(float) Constant 1061997773
-             125:    6(float) Constant 1063675494
-             126:   98(fvec3) ConstantComposite 123 124 125
-             130:             TypeVector 6(float) 4
-  131(PS_OUTPUT):             TypeStruct 130(fvec4) 6(float)
-             132:             TypePointer Function 131(PS_OUTPUT)
-             134:    6(float) Constant 1065353216
-             135:  130(fvec4) ConstantComposite 134 134 134 134
-             136:             TypePointer Function 130(fvec4)
-             138:     23(int) Constant 1
-             140:             TypePointer Output 130(fvec4)
-      141(Color):    140(ptr) Variable Output
-             144:             TypePointer Output 6(float)
-      145(Depth):    144(ptr) Variable Output
- 149(g_tTex1df4):     10(ptr) Variable UniformConstant
+              20:             TypeVector 6(float) 2
+              22:             TypeInt 32 1
+              23:     22(int) Constant 0
+              26:             TypeImage 22(int) 1D array sampled format:Unknown
+              27:             TypePointer UniformConstant 26
+ 28(g_tTex1di4a):     27(ptr) Variable UniformConstant
+              31:             TypeSampledImage 26
+              33:    6(float) Constant 1045220557
+              37:             TypeInt 32 0
+              38:             TypeImage 37(int) 1D array sampled format:Unknown
+              39:             TypePointer UniformConstant 38
+ 40(g_tTex1du4a):     39(ptr) Variable UniformConstant
+              43:             TypeSampledImage 38
+              45:    6(float) Constant 1050253722
+              49:             TypeImage 6(float) 2D array sampled format:Unknown
+              50:             TypePointer UniformConstant 49
+ 51(g_tTex2df4a):     50(ptr) Variable UniformConstant
+              54:             TypeSampledImage 49
+              56:   20(fvec2) ConstantComposite 19 33
+              60:             TypeImage 22(int) 2D array sampled format:Unknown
+              61:             TypePointer UniformConstant 60
+ 62(g_tTex2di4a):     61(ptr) Variable UniformConstant
+              65:             TypeSampledImage 60
+              67:    6(float) Constant 1053609165
+              68:   20(fvec2) ConstantComposite 45 67
+              72:             TypeImage 37(int) 2D array sampled format:Unknown
+              73:             TypePointer UniformConstant 72
+ 74(g_tTex2du4a):     73(ptr) Variable UniformConstant
+              77:             TypeSampledImage 72
+              79:    6(float) Constant 1056964608
+              80:    6(float) Constant 1058642330
+              81:   20(fvec2) ConstantComposite 79 80
+              85:             TypeImage 6(float) Cube array sampled format:Unknown
+              86:             TypePointer UniformConstant 85
+ 87(g_tTexcdf4a):     86(ptr) Variable UniformConstant
+              90:             TypeSampledImage 85
+              92:             TypeVector 6(float) 3
+              93:   92(fvec3) ConstantComposite 19 33 45
+              97:             TypeImage 22(int) Cube array sampled format:Unknown
+              98:             TypePointer UniformConstant 97
+ 99(g_tTexcdi4a):     98(ptr) Variable UniformConstant
+             102:             TypeSampledImage 97
+             104:   92(fvec3) ConstantComposite 67 79 80
+             108:             TypeImage 37(int) Cube array sampled format:Unknown
+             109:             TypePointer UniformConstant 108
+110(g_tTexcdu4a):    109(ptr) Variable UniformConstant
+             113:             TypeSampledImage 108
+             115:    6(float) Constant 1060320051
+             116:    6(float) Constant 1061997773
+             117:    6(float) Constant 1063675494
+             118:   92(fvec3) ConstantComposite 115 116 117
+             121:             TypeVector 6(float) 4
+  122(PS_OUTPUT):             TypeStruct 121(fvec4) 6(float)
+             123:             TypePointer Function 122(PS_OUTPUT)
+             125:    6(float) Constant 1065353216
+             126:  121(fvec4) ConstantComposite 125 125 125 125
+             127:             TypePointer Function 121(fvec4)
+             129:     22(int) Constant 1
+             131:             TypePointer Output 121(fvec4)
+      132(Color):    131(ptr) Variable Output
+             135:             TypePointer Output 6(float)
+      136(Depth):    135(ptr) Variable Output
+ 140(g_tTex1df4):     10(ptr) Variable UniformConstant
          4(main):           2 Function None 3
                5:             Label
       8(txval10):      7(ptr) Variable Function
-     26(txval11):      7(ptr) Variable Function
-     38(txval12):      7(ptr) Variable Function
-     51(txval20):      7(ptr) Variable Function
-     63(txval21):      7(ptr) Variable Function
-     76(txval22):      7(ptr) Variable Function
-     90(txval40):      7(ptr) Variable Function
-    103(txval41):      7(ptr) Variable Function
-    115(txval42):      7(ptr) Variable Function
-      133(psout):    132(ptr) Variable Function
+     25(txval11):      7(ptr) Variable Function
+     36(txval12):      7(ptr) Variable Function
+     48(txval20):      7(ptr) Variable Function
+     59(txval21):      7(ptr) Variable Function
+     71(txval22):      7(ptr) Variable Function
+     84(txval40):      7(ptr) Variable Function
+     96(txval41):      7(ptr) Variable Function
+    107(txval42):      7(ptr) Variable Function
+      124(psout):    123(ptr) Variable Function
               12:           9 Load 11(g_tTex1df4a)
               16:          13 Load 15(g_sSamp)
               18:          17 SampledImage 12 16
-              20:           9 Image 18
-              22:   21(fvec2) ImageQueryLod 20 19
-              25:    6(float) CompositeExtract 22 0
-                              Store 8(txval10) 25
-              30:          27 Load 29(g_tTex1di4a)
-              31:          13 Load 15(g_sSamp)
-              33:          32 SampledImage 30 31
-              35:          27 Image 33
-              36:   21(fvec2) ImageQueryLod 35 34
-              37:    6(float) CompositeExtract 36 0
-                              Store 26(txval11) 37
-              43:          40 Load 42(g_tTex1du4a)
-              44:          13 Load 15(g_sSamp)
-              46:          45 SampledImage 43 44
-              48:          40 Image 46
-              49:   21(fvec2) ImageQueryLod 48 47
-              50:    6(float) CompositeExtract 49 0
-                              Store 38(txval12) 50
-              55:          52 Load 54(g_tTex2df4a)
-              56:          13 Load 15(g_sSamp)
-              58:          57 SampledImage 55 56
-              60:          52 Image 58
-              61:   21(fvec2) ImageQueryLod 60 59
-              62:    6(float) CompositeExtract 61 0
-                              Store 51(txval20) 62
-              67:          64 Load 66(g_tTex2di4a)
-              68:          13 Load 15(g_sSamp)
-              70:          69 SampledImage 67 68
-              73:          64 Image 70
-              74:   21(fvec2) ImageQueryLod 73 72
-              75:    6(float) CompositeExtract 74 0
-                              Store 63(txval21) 75
-              80:          77 Load 79(g_tTex2du4a)
-              81:          13 Load 15(g_sSamp)
-              83:          82 SampledImage 80 81
-              87:          77 Image 83
-              88:   21(fvec2) ImageQueryLod 87 86
-              89:    6(float) CompositeExtract 88 0
-                              Store 76(txval22) 89
-              94:          91 Load 93(g_tTexcdf4a)
-              95:          13 Load 15(g_sSamp)
-              97:          96 SampledImage 94 95
-             100:          91 Image 97
-             101:   21(fvec2) ImageQueryLod 100 99
-             102:    6(float) CompositeExtract 101 0
-                              Store 90(txval40) 102
-             107:         104 Load 106(g_tTexcdi4a)
-             108:          13 Load 15(g_sSamp)
-             110:         109 SampledImage 107 108
-             112:         104 Image 110
-             113:   21(fvec2) ImageQueryLod 112 111
-             114:    6(float) CompositeExtract 113 0
-                              Store 103(txval41) 114
-             119:         116 Load 118(g_tTexcdu4a)
-             120:          13 Load 15(g_sSamp)
-             122:         121 SampledImage 119 120
-             127:         116 Image 122
-             128:   21(fvec2) ImageQueryLod 127 126
-             129:    6(float) CompositeExtract 128 0
-                              Store 115(txval42) 129
-             137:    136(ptr) AccessChain 133(psout) 24
-                              Store 137 135
-             139:      7(ptr) AccessChain 133(psout) 138
-                              Store 139 134
-             142:    136(ptr) AccessChain 133(psout) 24
-             143:  130(fvec4) Load 142
-                              Store 141(Color) 143
-             146:      7(ptr) AccessChain 133(psout) 138
-             147:    6(float) Load 146
-                              Store 145(Depth) 147
+              21:   20(fvec2) ImageQueryLod 18 19
+              24:    6(float) CompositeExtract 21 0
+                              Store 8(txval10) 24
+              29:          26 Load 28(g_tTex1di4a)
+              30:          13 Load 15(g_sSamp)
+              32:          31 SampledImage 29 30
+              34:   20(fvec2) ImageQueryLod 32 33
+              35:    6(float) CompositeExtract 34 0
+                              Store 25(txval11) 35
+              41:          38 Load 40(g_tTex1du4a)
+              42:          13 Load 15(g_sSamp)
+              44:          43 SampledImage 41 42
+              46:   20(fvec2) ImageQueryLod 44 45
+              47:    6(float) CompositeExtract 46 0
+                              Store 36(txval12) 47
+              52:          49 Load 51(g_tTex2df4a)
+              53:          13 Load 15(g_sSamp)
+              55:          54 SampledImage 52 53
+              57:   20(fvec2) ImageQueryLod 55 56
+              58:    6(float) CompositeExtract 57 0
+                              Store 48(txval20) 58
+              63:          60 Load 62(g_tTex2di4a)
+              64:          13 Load 15(g_sSamp)
+              66:          65 SampledImage 63 64
+              69:   20(fvec2) ImageQueryLod 66 68
+              70:    6(float) CompositeExtract 69 0
+                              Store 59(txval21) 70
+              75:          72 Load 74(g_tTex2du4a)
+              76:          13 Load 15(g_sSamp)
+              78:          77 SampledImage 75 76
+              82:   20(fvec2) ImageQueryLod 78 81
+              83:    6(float) CompositeExtract 82 0
+                              Store 71(txval22) 83
+              88:          85 Load 87(g_tTexcdf4a)
+              89:          13 Load 15(g_sSamp)
+              91:          90 SampledImage 88 89
+              94:   20(fvec2) ImageQueryLod 91 93
+              95:    6(float) CompositeExtract 94 0
+                              Store 84(txval40) 95
+             100:          97 Load 99(g_tTexcdi4a)
+             101:          13 Load 15(g_sSamp)
+             103:         102 SampledImage 100 101
+             105:   20(fvec2) ImageQueryLod 103 104
+             106:    6(float) CompositeExtract 105 0
+                              Store 96(txval41) 106
+             111:         108 Load 110(g_tTexcdu4a)
+             112:          13 Load 15(g_sSamp)
+             114:         113 SampledImage 111 112
+             119:   20(fvec2) ImageQueryLod 114 118
+             120:    6(float) CompositeExtract 119 0
+                              Store 107(txval42) 120
+             128:    127(ptr) AccessChain 124(psout) 23
+                              Store 128 126
+             130:      7(ptr) AccessChain 124(psout) 129
+                              Store 130 125
+             133:    127(ptr) AccessChain 124(psout) 23
+             134:  121(fvec4) Load 133
+                              Store 132(Color) 134
+             137:      7(ptr) AccessChain 124(psout) 129
+             138:    6(float) Load 137
+                              Store 136(Depth) 138
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out
index 83fe24b..b2716a4 100644
--- a/Test/baseResults/hlsl.inoutquals.frag.out
+++ b/Test/baseResults/hlsl.inoutquals.frag.out
@@ -18,9 +18,10 @@
 0:11        'x' (in float)
 0:11        Constant:
 0:11          -1.000000
-0:15  Function Definition: main(vf4; (temp structure{temp 4-component vector of float Color, temp float Depth})
+0:15  Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:15    Function Parameters: 
 0:15      'inpos' (noperspective in 4-component vector of float FragCoord)
+0:15      'sampleMask' (out int SampleMaskIn)
 0:?     Sequence
 0:18      Sequence
 0:18        move second child to first child (temp float)
@@ -74,6 +75,7 @@
 0:?     'Color' (layout(location=0 ) out 4-component vector of float)
 0:?     'Depth' (out float FragDepth)
 0:?     'inpos' (noperspective in 4-component vector of float FragCoord)
+0:?     'sampleMask' (out int SampleMaskIn)
 
 
 Linked fragment stage:
@@ -98,9 +100,10 @@
 0:11        'x' (in float)
 0:11        Constant:
 0:11          -1.000000
-0:15  Function Definition: main(vf4; (temp structure{temp 4-component vector of float Color, temp float Depth})
+0:15  Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:15    Function Parameters: 
 0:15      'inpos' (noperspective in 4-component vector of float FragCoord)
+0:15      'sampleMask' (out int SampleMaskIn)
 0:?     Sequence
 0:18      Sequence
 0:18        move second child to first child (temp float)
@@ -154,15 +157,17 @@
 0:?     'Color' (layout(location=0 ) out 4-component vector of float)
 0:?     'Depth' (out float FragDepth)
 0:?     'inpos' (noperspective in 4-component vector of float FragCoord)
+0:?     'sampleMask' (out int SampleMaskIn)
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 61
+// Id's are bound by 63
 
                               Capability Shader
+                              Capability SampleRateShading
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 45 53 57
+                              EntryPoint Fragment 4  "main" 45 53 57 62
                               ExecutionMode 4 OriginUpperLeft
                               Name 4  "main"
                               Name 12  "MyFunc(f1;f1;f1;"
@@ -182,10 +187,12 @@
                               Name 45  "inpos"
                               Name 53  "Color"
                               Name 57  "Depth"
+                              Name 62  "sampleMask"
                               Decorate 45(inpos) NoPerspective
                               Decorate 45(inpos) BuiltIn FragCoord
                               Decorate 53(Color) Location 0
                               Decorate 57(Depth) BuiltIn FragDepth
+                              Decorate 62(sampleMask) BuiltIn SampleMask
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -211,6 +218,8 @@
        53(Color):     52(ptr) Variable Output
               56:             TypePointer Output 6(float)
        57(Depth):     56(ptr) Variable Output
+              61:             TypePointer Output 34(int)
+  62(sampleMask):     61(ptr) Variable Output
          4(main):           2 Function None 3
                5:             Label
            17(x):      7(ptr) Variable Function
diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out
index f733975..cd366fc 100644
--- a/Test/baseResults/hlsl.intrinsics.comp.out
+++ b/Test/baseResults/hlsl.intrinsics.comp.out
@@ -13,64 +13,64 @@
 0:21      all (global bool)
 0:21        'inF0' (in float)
 0:24      AtomicAdd (global void)
-0:24        'gs_ua' (global uint)
-0:24        'gs_ub' (global uint)
+0:24        'gs_ua' (shared uint)
+0:24        'gs_ub' (shared uint)
 0:25      move second child to first child (temp uint)
 0:25        'out_u1' (temp uint)
 0:25        AtomicAdd (temp uint)
-0:25          'gs_ua' (global uint)
-0:25          'gs_ub' (global uint)
+0:25          'gs_ua' (shared uint)
+0:25          'gs_ub' (shared uint)
 0:26      AtomicAnd (global void)
-0:26        'gs_ua' (global uint)
-0:26        'gs_ub' (global uint)
+0:26        'gs_ua' (shared uint)
+0:26        'gs_ub' (shared uint)
 0:27      move second child to first child (temp uint)
 0:27        'out_u1' (temp uint)
 0:27        AtomicAnd (temp uint)
-0:27          'gs_ua' (global uint)
-0:27          'gs_ub' (global uint)
+0:27          'gs_ua' (shared uint)
+0:27          'gs_ub' (shared uint)
 0:28      move second child to first child (temp uint)
 0:28        'out_u1' (temp uint)
 0:28        AtomicCompSwap (temp uint)
-0:28          'gs_ua' (global uint)
-0:28          'gs_ub' (global uint)
-0:28          'gs_uc' (global uint)
+0:28          'gs_ua' (shared uint)
+0:28          'gs_ub' (shared uint)
+0:28          'gs_uc' (shared uint)
 0:29      move second child to first child (temp uint)
 0:29        'out_u1' (temp uint)
 0:29        AtomicExchange (temp uint)
-0:29          'gs_ua' (global uint)
-0:29          'gs_ub' (global uint)
+0:29          'gs_ua' (shared uint)
+0:29          'gs_ub' (shared uint)
 0:30      AtomicMax (global void)
-0:30        'gs_ua' (global uint)
-0:30        'gs_ub' (global uint)
+0:30        'gs_ua' (shared uint)
+0:30        'gs_ub' (shared uint)
 0:31      move second child to first child (temp uint)
 0:31        'out_u1' (temp uint)
 0:31        AtomicMax (temp uint)
-0:31          'gs_ua' (global uint)
-0:31          'gs_ub' (global uint)
+0:31          'gs_ua' (shared uint)
+0:31          'gs_ub' (shared uint)
 0:32      AtomicMin (global void)
-0:32        'gs_ua' (global uint)
-0:32        'gs_ub' (global uint)
+0:32        'gs_ua' (shared uint)
+0:32        'gs_ub' (shared uint)
 0:33      move second child to first child (temp uint)
 0:33        'out_u1' (temp uint)
 0:33        AtomicMin (temp uint)
-0:33          'gs_ua' (global uint)
-0:33          'gs_ub' (global uint)
+0:33          'gs_ua' (shared uint)
+0:33          'gs_ub' (shared uint)
 0:34      AtomicOr (global void)
-0:34        'gs_ua' (global uint)
-0:34        'gs_ub' (global uint)
+0:34        'gs_ua' (shared uint)
+0:34        'gs_ub' (shared uint)
 0:35      move second child to first child (temp uint)
 0:35        'out_u1' (temp uint)
 0:35        AtomicOr (temp uint)
-0:35          'gs_ua' (global uint)
-0:35          'gs_ub' (global uint)
+0:35          'gs_ua' (shared uint)
+0:35          'gs_ub' (shared uint)
 0:36      AtomicXor (global void)
-0:36        'gs_ua' (global uint)
-0:36        'gs_ub' (global uint)
+0:36        'gs_ua' (shared uint)
+0:36        'gs_ub' (shared uint)
 0:37      move second child to first child (temp uint)
 0:37        'out_u1' (temp uint)
 0:37        AtomicXor (temp uint)
-0:37          'gs_ua' (global uint)
-0:37          'gs_ub' (global uint)
+0:37          'gs_ua' (shared uint)
+0:37          'gs_ub' (shared uint)
 0:41      Branch: Return with expression
 0:41        Constant:
 0:41          0.000000
@@ -94,64 +94,64 @@
 0:55      all (global bool)
 0:55        'inF0' (in 2-component vector of float)
 0:58      AtomicAdd (global void)
-0:58        'gs_ua2' (global 2-component vector of uint)
-0:58        'gs_ub2' (global 2-component vector of uint)
+0:58        'gs_ua2' (shared 2-component vector of uint)
+0:58        'gs_ub2' (shared 2-component vector of uint)
 0:59      move second child to first child (temp 2-component vector of uint)
 0:59        'out_u2' (temp 2-component vector of uint)
 0:59        AtomicAdd (temp 2-component vector of uint)
-0:59          'gs_ua2' (global 2-component vector of uint)
-0:59          'gs_ub2' (global 2-component vector of uint)
+0:59          'gs_ua2' (shared 2-component vector of uint)
+0:59          'gs_ub2' (shared 2-component vector of uint)
 0:60      AtomicAnd (global void)
-0:60        'gs_ua2' (global 2-component vector of uint)
-0:60        'gs_ub2' (global 2-component vector of uint)
+0:60        'gs_ua2' (shared 2-component vector of uint)
+0:60        'gs_ub2' (shared 2-component vector of uint)
 0:61      move second child to first child (temp 2-component vector of uint)
 0:61        'out_u2' (temp 2-component vector of uint)
 0:61        AtomicAnd (temp 2-component vector of uint)
-0:61          'gs_ua2' (global 2-component vector of uint)
-0:61          'gs_ub2' (global 2-component vector of uint)
+0:61          'gs_ua2' (shared 2-component vector of uint)
+0:61          'gs_ub2' (shared 2-component vector of uint)
 0:62      move second child to first child (temp 2-component vector of uint)
 0:62        'out_u2' (temp 2-component vector of uint)
 0:62        AtomicCompSwap (temp 2-component vector of uint)
-0:62          'gs_ua2' (global 2-component vector of uint)
-0:62          'gs_ub2' (global 2-component vector of uint)
-0:62          'gs_uc2' (global 2-component vector of uint)
+0:62          'gs_ua2' (shared 2-component vector of uint)
+0:62          'gs_ub2' (shared 2-component vector of uint)
+0:62          'gs_uc2' (shared 2-component vector of uint)
 0:63      move second child to first child (temp 2-component vector of uint)
 0:63        'out_u2' (temp 2-component vector of uint)
 0:63        AtomicExchange (temp 2-component vector of uint)
-0:63          'gs_ua2' (global 2-component vector of uint)
-0:63          'gs_ub2' (global 2-component vector of uint)
+0:63          'gs_ua2' (shared 2-component vector of uint)
+0:63          'gs_ub2' (shared 2-component vector of uint)
 0:64      AtomicMax (global void)
-0:64        'gs_ua2' (global 2-component vector of uint)
-0:64        'gs_ub2' (global 2-component vector of uint)
+0:64        'gs_ua2' (shared 2-component vector of uint)
+0:64        'gs_ub2' (shared 2-component vector of uint)
 0:65      move second child to first child (temp 2-component vector of uint)
 0:65        'out_u2' (temp 2-component vector of uint)
 0:65        AtomicMax (temp 2-component vector of uint)
-0:65          'gs_ua2' (global 2-component vector of uint)
-0:65          'gs_ub2' (global 2-component vector of uint)
+0:65          'gs_ua2' (shared 2-component vector of uint)
+0:65          'gs_ub2' (shared 2-component vector of uint)
 0:66      AtomicMin (global void)
-0:66        'gs_ua2' (global 2-component vector of uint)
-0:66        'gs_ub2' (global 2-component vector of uint)
+0:66        'gs_ua2' (shared 2-component vector of uint)
+0:66        'gs_ub2' (shared 2-component vector of uint)
 0:67      move second child to first child (temp 2-component vector of uint)
 0:67        'out_u2' (temp 2-component vector of uint)
 0:67        AtomicMin (temp 2-component vector of uint)
-0:67          'gs_ua2' (global 2-component vector of uint)
-0:67          'gs_ub2' (global 2-component vector of uint)
+0:67          'gs_ua2' (shared 2-component vector of uint)
+0:67          'gs_ub2' (shared 2-component vector of uint)
 0:68      AtomicOr (global void)
-0:68        'gs_ua2' (global 2-component vector of uint)
-0:68        'gs_ub2' (global 2-component vector of uint)
+0:68        'gs_ua2' (shared 2-component vector of uint)
+0:68        'gs_ub2' (shared 2-component vector of uint)
 0:69      move second child to first child (temp 2-component vector of uint)
 0:69        'out_u2' (temp 2-component vector of uint)
 0:69        AtomicOr (temp 2-component vector of uint)
-0:69          'gs_ua2' (global 2-component vector of uint)
-0:69          'gs_ub2' (global 2-component vector of uint)
+0:69          'gs_ua2' (shared 2-component vector of uint)
+0:69          'gs_ub2' (shared 2-component vector of uint)
 0:70      AtomicXor (global void)
-0:70        'gs_ua2' (global 2-component vector of uint)
-0:70        'gs_ub2' (global 2-component vector of uint)
+0:70        'gs_ua2' (shared 2-component vector of uint)
+0:70        'gs_ub2' (shared 2-component vector of uint)
 0:71      move second child to first child (temp 2-component vector of uint)
 0:71        'out_u2' (temp 2-component vector of uint)
 0:71        AtomicXor (temp 2-component vector of uint)
-0:71          'gs_ua2' (global 2-component vector of uint)
-0:71          'gs_ub2' (global 2-component vector of uint)
+0:71          'gs_ua2' (shared 2-component vector of uint)
+0:71          'gs_ub2' (shared 2-component vector of uint)
 0:74      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -167,64 +167,64 @@
 0:82      all (global bool)
 0:82        'inF0' (in 3-component vector of float)
 0:85      AtomicAdd (global void)
-0:85        'gs_ua3' (global 3-component vector of uint)
-0:85        'gs_ub3' (global 3-component vector of uint)
+0:85        'gs_ua3' (shared 3-component vector of uint)
+0:85        'gs_ub3' (shared 3-component vector of uint)
 0:86      move second child to first child (temp 3-component vector of uint)
 0:86        'out_u3' (temp 3-component vector of uint)
 0:86        AtomicAdd (temp 3-component vector of uint)
-0:86          'gs_ua3' (global 3-component vector of uint)
-0:86          'gs_ub3' (global 3-component vector of uint)
+0:86          'gs_ua3' (shared 3-component vector of uint)
+0:86          'gs_ub3' (shared 3-component vector of uint)
 0:87      AtomicAnd (global void)
-0:87        'gs_ua3' (global 3-component vector of uint)
-0:87        'gs_ub3' (global 3-component vector of uint)
+0:87        'gs_ua3' (shared 3-component vector of uint)
+0:87        'gs_ub3' (shared 3-component vector of uint)
 0:88      move second child to first child (temp 3-component vector of uint)
 0:88        'out_u3' (temp 3-component vector of uint)
 0:88        AtomicAnd (temp 3-component vector of uint)
-0:88          'gs_ua3' (global 3-component vector of uint)
-0:88          'gs_ub3' (global 3-component vector of uint)
+0:88          'gs_ua3' (shared 3-component vector of uint)
+0:88          'gs_ub3' (shared 3-component vector of uint)
 0:89      move second child to first child (temp 3-component vector of uint)
 0:89        'out_u3' (temp 3-component vector of uint)
 0:89        AtomicCompSwap (temp 3-component vector of uint)
-0:89          'gs_ua3' (global 3-component vector of uint)
-0:89          'gs_ub3' (global 3-component vector of uint)
-0:89          'gs_uc3' (global 3-component vector of uint)
+0:89          'gs_ua3' (shared 3-component vector of uint)
+0:89          'gs_ub3' (shared 3-component vector of uint)
+0:89          'gs_uc3' (shared 3-component vector of uint)
 0:90      move second child to first child (temp 3-component vector of uint)
 0:90        'out_u3' (temp 3-component vector of uint)
 0:90        AtomicExchange (temp 3-component vector of uint)
-0:90          'gs_ua3' (global 3-component vector of uint)
-0:90          'gs_ub3' (global 3-component vector of uint)
+0:90          'gs_ua3' (shared 3-component vector of uint)
+0:90          'gs_ub3' (shared 3-component vector of uint)
 0:91      AtomicMax (global void)
-0:91        'gs_ua3' (global 3-component vector of uint)
-0:91        'gs_ub3' (global 3-component vector of uint)
+0:91        'gs_ua3' (shared 3-component vector of uint)
+0:91        'gs_ub3' (shared 3-component vector of uint)
 0:92      move second child to first child (temp 3-component vector of uint)
 0:92        'out_u3' (temp 3-component vector of uint)
 0:92        AtomicMax (temp 3-component vector of uint)
-0:92          'gs_ua3' (global 3-component vector of uint)
-0:92          'gs_ub3' (global 3-component vector of uint)
+0:92          'gs_ua3' (shared 3-component vector of uint)
+0:92          'gs_ub3' (shared 3-component vector of uint)
 0:93      AtomicMin (global void)
-0:93        'gs_ua3' (global 3-component vector of uint)
-0:93        'gs_ub3' (global 3-component vector of uint)
+0:93        'gs_ua3' (shared 3-component vector of uint)
+0:93        'gs_ub3' (shared 3-component vector of uint)
 0:94      move second child to first child (temp 3-component vector of uint)
 0:94        'out_u3' (temp 3-component vector of uint)
 0:94        AtomicMin (temp 3-component vector of uint)
-0:94          'gs_ua3' (global 3-component vector of uint)
-0:94          'gs_ub3' (global 3-component vector of uint)
+0:94          'gs_ua3' (shared 3-component vector of uint)
+0:94          'gs_ub3' (shared 3-component vector of uint)
 0:95      AtomicOr (global void)
-0:95        'gs_ua3' (global 3-component vector of uint)
-0:95        'gs_ub3' (global 3-component vector of uint)
+0:95        'gs_ua3' (shared 3-component vector of uint)
+0:95        'gs_ub3' (shared 3-component vector of uint)
 0:96      move second child to first child (temp 3-component vector of uint)
 0:96        'out_u3' (temp 3-component vector of uint)
 0:96        AtomicOr (temp 3-component vector of uint)
-0:96          'gs_ua3' (global 3-component vector of uint)
-0:96          'gs_ub3' (global 3-component vector of uint)
+0:96          'gs_ua3' (shared 3-component vector of uint)
+0:96          'gs_ub3' (shared 3-component vector of uint)
 0:97      AtomicXor (global void)
-0:97        'gs_ua3' (global 3-component vector of uint)
-0:97        'gs_ub3' (global 3-component vector of uint)
+0:97        'gs_ua3' (shared 3-component vector of uint)
+0:97        'gs_ub3' (shared 3-component vector of uint)
 0:98      move second child to first child (temp 3-component vector of uint)
 0:98        'out_u3' (temp 3-component vector of uint)
 0:98        AtomicXor (temp 3-component vector of uint)
-0:98          'gs_ua3' (global 3-component vector of uint)
-0:98          'gs_ub3' (global 3-component vector of uint)
+0:98          'gs_ua3' (shared 3-component vector of uint)
+0:98          'gs_ub3' (shared 3-component vector of uint)
 0:101      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -241,64 +241,64 @@
 0:109      all (global bool)
 0:109        'inF0' (layout(location=0 ) in 4-component vector of float)
 0:112      AtomicAdd (global void)
-0:112        'gs_ua4' (global 4-component vector of uint)
-0:112        'gs_ub4' (global 4-component vector of uint)
+0:112        'gs_ua4' (shared 4-component vector of uint)
+0:112        'gs_ub4' (shared 4-component vector of uint)
 0:113      move second child to first child (temp 4-component vector of uint)
 0:113        'out_u4' (temp 4-component vector of uint)
 0:113        AtomicAdd (temp 4-component vector of uint)
-0:113          'gs_ua4' (global 4-component vector of uint)
-0:113          'gs_ub4' (global 4-component vector of uint)
+0:113          'gs_ua4' (shared 4-component vector of uint)
+0:113          'gs_ub4' (shared 4-component vector of uint)
 0:114      AtomicAnd (global void)
-0:114        'gs_ua4' (global 4-component vector of uint)
-0:114        'gs_ub4' (global 4-component vector of uint)
+0:114        'gs_ua4' (shared 4-component vector of uint)
+0:114        'gs_ub4' (shared 4-component vector of uint)
 0:115      move second child to first child (temp 4-component vector of uint)
 0:115        'out_u4' (temp 4-component vector of uint)
 0:115        AtomicAnd (temp 4-component vector of uint)
-0:115          'gs_ua4' (global 4-component vector of uint)
-0:115          'gs_ub4' (global 4-component vector of uint)
+0:115          'gs_ua4' (shared 4-component vector of uint)
+0:115          'gs_ub4' (shared 4-component vector of uint)
 0:116      move second child to first child (temp 4-component vector of uint)
 0:116        'out_u4' (temp 4-component vector of uint)
 0:116        AtomicCompSwap (temp 4-component vector of uint)
-0:116          'gs_ua4' (global 4-component vector of uint)
-0:116          'gs_ub4' (global 4-component vector of uint)
-0:116          'gs_uc4' (global 4-component vector of uint)
+0:116          'gs_ua4' (shared 4-component vector of uint)
+0:116          'gs_ub4' (shared 4-component vector of uint)
+0:116          'gs_uc4' (shared 4-component vector of uint)
 0:117      move second child to first child (temp 4-component vector of uint)
 0:117        'out_u4' (temp 4-component vector of uint)
 0:117        AtomicExchange (temp 4-component vector of uint)
-0:117          'gs_ua4' (global 4-component vector of uint)
-0:117          'gs_ub4' (global 4-component vector of uint)
+0:117          'gs_ua4' (shared 4-component vector of uint)
+0:117          'gs_ub4' (shared 4-component vector of uint)
 0:118      AtomicMax (global void)
-0:118        'gs_ua4' (global 4-component vector of uint)
-0:118        'gs_ub4' (global 4-component vector of uint)
+0:118        'gs_ua4' (shared 4-component vector of uint)
+0:118        'gs_ub4' (shared 4-component vector of uint)
 0:119      move second child to first child (temp 4-component vector of uint)
 0:119        'out_u4' (temp 4-component vector of uint)
 0:119        AtomicMax (temp 4-component vector of uint)
-0:119          'gs_ua4' (global 4-component vector of uint)
-0:119          'gs_ub4' (global 4-component vector of uint)
+0:119          'gs_ua4' (shared 4-component vector of uint)
+0:119          'gs_ub4' (shared 4-component vector of uint)
 0:120      AtomicMin (global void)
-0:120        'gs_ua4' (global 4-component vector of uint)
-0:120        'gs_ub4' (global 4-component vector of uint)
+0:120        'gs_ua4' (shared 4-component vector of uint)
+0:120        'gs_ub4' (shared 4-component vector of uint)
 0:121      move second child to first child (temp 4-component vector of uint)
 0:121        'out_u4' (temp 4-component vector of uint)
 0:121        AtomicMin (temp 4-component vector of uint)
-0:121          'gs_ua4' (global 4-component vector of uint)
-0:121          'gs_ub4' (global 4-component vector of uint)
+0:121          'gs_ua4' (shared 4-component vector of uint)
+0:121          'gs_ub4' (shared 4-component vector of uint)
 0:122      AtomicOr (global void)
-0:122        'gs_ua4' (global 4-component vector of uint)
-0:122        'gs_ub4' (global 4-component vector of uint)
+0:122        'gs_ua4' (shared 4-component vector of uint)
+0:122        'gs_ub4' (shared 4-component vector of uint)
 0:123      move second child to first child (temp 4-component vector of uint)
 0:123        'out_u4' (temp 4-component vector of uint)
 0:123        AtomicOr (temp 4-component vector of uint)
-0:123          'gs_ua4' (global 4-component vector of uint)
-0:123          'gs_ub4' (global 4-component vector of uint)
+0:123          'gs_ua4' (shared 4-component vector of uint)
+0:123          'gs_ub4' (shared 4-component vector of uint)
 0:124      AtomicXor (global void)
-0:124        'gs_ua4' (global 4-component vector of uint)
-0:124        'gs_ub4' (global 4-component vector of uint)
+0:124        'gs_ua4' (shared 4-component vector of uint)
+0:124        'gs_ub4' (shared 4-component vector of uint)
 0:125      move second child to first child (temp 4-component vector of uint)
 0:125        'out_u4' (temp 4-component vector of uint)
 0:125        AtomicXor (temp 4-component vector of uint)
-0:125          'gs_ua4' (global 4-component vector of uint)
-0:125          'gs_ub4' (global 4-component vector of uint)
+0:125          'gs_ua4' (shared 4-component vector of uint)
+0:125          'gs_ub4' (shared 4-component vector of uint)
 0:128      Sequence
 0:128        move second child to first child (temp 4-component vector of float)
 0:?           '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
@@ -309,18 +309,18 @@
 0:?             4.000000
 0:128        Branch: Return
 0:?   Linker Objects
-0:?     'gs_ua' (global uint)
-0:?     'gs_ub' (global uint)
-0:?     'gs_uc' (global uint)
-0:?     'gs_ua2' (global 2-component vector of uint)
-0:?     'gs_ub2' (global 2-component vector of uint)
-0:?     'gs_uc2' (global 2-component vector of uint)
-0:?     'gs_ua3' (global 3-component vector of uint)
-0:?     'gs_ub3' (global 3-component vector of uint)
-0:?     'gs_uc3' (global 3-component vector of uint)
-0:?     'gs_ua4' (global 4-component vector of uint)
-0:?     'gs_ub4' (global 4-component vector of uint)
-0:?     'gs_uc4' (global 4-component vector of uint)
+0:?     'gs_ua' (shared uint)
+0:?     'gs_ub' (shared uint)
+0:?     'gs_uc' (shared uint)
+0:?     'gs_ua2' (shared 2-component vector of uint)
+0:?     'gs_ub2' (shared 2-component vector of uint)
+0:?     'gs_uc2' (shared 2-component vector of uint)
+0:?     'gs_ua3' (shared 3-component vector of uint)
+0:?     'gs_ub3' (shared 3-component vector of uint)
+0:?     'gs_uc3' (shared 3-component vector of uint)
+0:?     'gs_ua4' (shared 4-component vector of uint)
+0:?     'gs_ub4' (shared 4-component vector of uint)
+0:?     'gs_uc4' (shared 4-component vector of uint)
 0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
 0:?     'inF0' (layout(location=0 ) in 4-component vector of float)
 0:?     'inF1' (layout(location=1 ) in 4-component vector of float)
@@ -346,64 +346,64 @@
 0:21      all (global bool)
 0:21        'inF0' (in float)
 0:24      AtomicAdd (global void)
-0:24        'gs_ua' (global uint)
-0:24        'gs_ub' (global uint)
+0:24        'gs_ua' (shared uint)
+0:24        'gs_ub' (shared uint)
 0:25      move second child to first child (temp uint)
 0:25        'out_u1' (temp uint)
 0:25        AtomicAdd (temp uint)
-0:25          'gs_ua' (global uint)
-0:25          'gs_ub' (global uint)
+0:25          'gs_ua' (shared uint)
+0:25          'gs_ub' (shared uint)
 0:26      AtomicAnd (global void)
-0:26        'gs_ua' (global uint)
-0:26        'gs_ub' (global uint)
+0:26        'gs_ua' (shared uint)
+0:26        'gs_ub' (shared uint)
 0:27      move second child to first child (temp uint)
 0:27        'out_u1' (temp uint)
 0:27        AtomicAnd (temp uint)
-0:27          'gs_ua' (global uint)
-0:27          'gs_ub' (global uint)
+0:27          'gs_ua' (shared uint)
+0:27          'gs_ub' (shared uint)
 0:28      move second child to first child (temp uint)
 0:28        'out_u1' (temp uint)
 0:28        AtomicCompSwap (temp uint)
-0:28          'gs_ua' (global uint)
-0:28          'gs_ub' (global uint)
-0:28          'gs_uc' (global uint)
+0:28          'gs_ua' (shared uint)
+0:28          'gs_ub' (shared uint)
+0:28          'gs_uc' (shared uint)
 0:29      move second child to first child (temp uint)
 0:29        'out_u1' (temp uint)
 0:29        AtomicExchange (temp uint)
-0:29          'gs_ua' (global uint)
-0:29          'gs_ub' (global uint)
+0:29          'gs_ua' (shared uint)
+0:29          'gs_ub' (shared uint)
 0:30      AtomicMax (global void)
-0:30        'gs_ua' (global uint)
-0:30        'gs_ub' (global uint)
+0:30        'gs_ua' (shared uint)
+0:30        'gs_ub' (shared uint)
 0:31      move second child to first child (temp uint)
 0:31        'out_u1' (temp uint)
 0:31        AtomicMax (temp uint)
-0:31          'gs_ua' (global uint)
-0:31          'gs_ub' (global uint)
+0:31          'gs_ua' (shared uint)
+0:31          'gs_ub' (shared uint)
 0:32      AtomicMin (global void)
-0:32        'gs_ua' (global uint)
-0:32        'gs_ub' (global uint)
+0:32        'gs_ua' (shared uint)
+0:32        'gs_ub' (shared uint)
 0:33      move second child to first child (temp uint)
 0:33        'out_u1' (temp uint)
 0:33        AtomicMin (temp uint)
-0:33          'gs_ua' (global uint)
-0:33          'gs_ub' (global uint)
+0:33          'gs_ua' (shared uint)
+0:33          'gs_ub' (shared uint)
 0:34      AtomicOr (global void)
-0:34        'gs_ua' (global uint)
-0:34        'gs_ub' (global uint)
+0:34        'gs_ua' (shared uint)
+0:34        'gs_ub' (shared uint)
 0:35      move second child to first child (temp uint)
 0:35        'out_u1' (temp uint)
 0:35        AtomicOr (temp uint)
-0:35          'gs_ua' (global uint)
-0:35          'gs_ub' (global uint)
+0:35          'gs_ua' (shared uint)
+0:35          'gs_ub' (shared uint)
 0:36      AtomicXor (global void)
-0:36        'gs_ua' (global uint)
-0:36        'gs_ub' (global uint)
+0:36        'gs_ua' (shared uint)
+0:36        'gs_ub' (shared uint)
 0:37      move second child to first child (temp uint)
 0:37        'out_u1' (temp uint)
 0:37        AtomicXor (temp uint)
-0:37          'gs_ua' (global uint)
-0:37          'gs_ub' (global uint)
+0:37          'gs_ua' (shared uint)
+0:37          'gs_ub' (shared uint)
 0:41      Branch: Return with expression
 0:41        Constant:
 0:41          0.000000
@@ -427,64 +427,64 @@
 0:55      all (global bool)
 0:55        'inF0' (in 2-component vector of float)
 0:58      AtomicAdd (global void)
-0:58        'gs_ua2' (global 2-component vector of uint)
-0:58        'gs_ub2' (global 2-component vector of uint)
+0:58        'gs_ua2' (shared 2-component vector of uint)
+0:58        'gs_ub2' (shared 2-component vector of uint)
 0:59      move second child to first child (temp 2-component vector of uint)
 0:59        'out_u2' (temp 2-component vector of uint)
 0:59        AtomicAdd (temp 2-component vector of uint)
-0:59          'gs_ua2' (global 2-component vector of uint)
-0:59          'gs_ub2' (global 2-component vector of uint)
+0:59          'gs_ua2' (shared 2-component vector of uint)
+0:59          'gs_ub2' (shared 2-component vector of uint)
 0:60      AtomicAnd (global void)
-0:60        'gs_ua2' (global 2-component vector of uint)
-0:60        'gs_ub2' (global 2-component vector of uint)
+0:60        'gs_ua2' (shared 2-component vector of uint)
+0:60        'gs_ub2' (shared 2-component vector of uint)
 0:61      move second child to first child (temp 2-component vector of uint)
 0:61        'out_u2' (temp 2-component vector of uint)
 0:61        AtomicAnd (temp 2-component vector of uint)
-0:61          'gs_ua2' (global 2-component vector of uint)
-0:61          'gs_ub2' (global 2-component vector of uint)
+0:61          'gs_ua2' (shared 2-component vector of uint)
+0:61          'gs_ub2' (shared 2-component vector of uint)
 0:62      move second child to first child (temp 2-component vector of uint)
 0:62        'out_u2' (temp 2-component vector of uint)
 0:62        AtomicCompSwap (temp 2-component vector of uint)
-0:62          'gs_ua2' (global 2-component vector of uint)
-0:62          'gs_ub2' (global 2-component vector of uint)
-0:62          'gs_uc2' (global 2-component vector of uint)
+0:62          'gs_ua2' (shared 2-component vector of uint)
+0:62          'gs_ub2' (shared 2-component vector of uint)
+0:62          'gs_uc2' (shared 2-component vector of uint)
 0:63      move second child to first child (temp 2-component vector of uint)
 0:63        'out_u2' (temp 2-component vector of uint)
 0:63        AtomicExchange (temp 2-component vector of uint)
-0:63          'gs_ua2' (global 2-component vector of uint)
-0:63          'gs_ub2' (global 2-component vector of uint)
+0:63          'gs_ua2' (shared 2-component vector of uint)
+0:63          'gs_ub2' (shared 2-component vector of uint)
 0:64      AtomicMax (global void)
-0:64        'gs_ua2' (global 2-component vector of uint)
-0:64        'gs_ub2' (global 2-component vector of uint)
+0:64        'gs_ua2' (shared 2-component vector of uint)
+0:64        'gs_ub2' (shared 2-component vector of uint)
 0:65      move second child to first child (temp 2-component vector of uint)
 0:65        'out_u2' (temp 2-component vector of uint)
 0:65        AtomicMax (temp 2-component vector of uint)
-0:65          'gs_ua2' (global 2-component vector of uint)
-0:65          'gs_ub2' (global 2-component vector of uint)
+0:65          'gs_ua2' (shared 2-component vector of uint)
+0:65          'gs_ub2' (shared 2-component vector of uint)
 0:66      AtomicMin (global void)
-0:66        'gs_ua2' (global 2-component vector of uint)
-0:66        'gs_ub2' (global 2-component vector of uint)
+0:66        'gs_ua2' (shared 2-component vector of uint)
+0:66        'gs_ub2' (shared 2-component vector of uint)
 0:67      move second child to first child (temp 2-component vector of uint)
 0:67        'out_u2' (temp 2-component vector of uint)
 0:67        AtomicMin (temp 2-component vector of uint)
-0:67          'gs_ua2' (global 2-component vector of uint)
-0:67          'gs_ub2' (global 2-component vector of uint)
+0:67          'gs_ua2' (shared 2-component vector of uint)
+0:67          'gs_ub2' (shared 2-component vector of uint)
 0:68      AtomicOr (global void)
-0:68        'gs_ua2' (global 2-component vector of uint)
-0:68        'gs_ub2' (global 2-component vector of uint)
+0:68        'gs_ua2' (shared 2-component vector of uint)
+0:68        'gs_ub2' (shared 2-component vector of uint)
 0:69      move second child to first child (temp 2-component vector of uint)
 0:69        'out_u2' (temp 2-component vector of uint)
 0:69        AtomicOr (temp 2-component vector of uint)
-0:69          'gs_ua2' (global 2-component vector of uint)
-0:69          'gs_ub2' (global 2-component vector of uint)
+0:69          'gs_ua2' (shared 2-component vector of uint)
+0:69          'gs_ub2' (shared 2-component vector of uint)
 0:70      AtomicXor (global void)
-0:70        'gs_ua2' (global 2-component vector of uint)
-0:70        'gs_ub2' (global 2-component vector of uint)
+0:70        'gs_ua2' (shared 2-component vector of uint)
+0:70        'gs_ub2' (shared 2-component vector of uint)
 0:71      move second child to first child (temp 2-component vector of uint)
 0:71        'out_u2' (temp 2-component vector of uint)
 0:71        AtomicXor (temp 2-component vector of uint)
-0:71          'gs_ua2' (global 2-component vector of uint)
-0:71          'gs_ub2' (global 2-component vector of uint)
+0:71          'gs_ua2' (shared 2-component vector of uint)
+0:71          'gs_ub2' (shared 2-component vector of uint)
 0:74      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -500,64 +500,64 @@
 0:82      all (global bool)
 0:82        'inF0' (in 3-component vector of float)
 0:85      AtomicAdd (global void)
-0:85        'gs_ua3' (global 3-component vector of uint)
-0:85        'gs_ub3' (global 3-component vector of uint)
+0:85        'gs_ua3' (shared 3-component vector of uint)
+0:85        'gs_ub3' (shared 3-component vector of uint)
 0:86      move second child to first child (temp 3-component vector of uint)
 0:86        'out_u3' (temp 3-component vector of uint)
 0:86        AtomicAdd (temp 3-component vector of uint)
-0:86          'gs_ua3' (global 3-component vector of uint)
-0:86          'gs_ub3' (global 3-component vector of uint)
+0:86          'gs_ua3' (shared 3-component vector of uint)
+0:86          'gs_ub3' (shared 3-component vector of uint)
 0:87      AtomicAnd (global void)
-0:87        'gs_ua3' (global 3-component vector of uint)
-0:87        'gs_ub3' (global 3-component vector of uint)
+0:87        'gs_ua3' (shared 3-component vector of uint)
+0:87        'gs_ub3' (shared 3-component vector of uint)
 0:88      move second child to first child (temp 3-component vector of uint)
 0:88        'out_u3' (temp 3-component vector of uint)
 0:88        AtomicAnd (temp 3-component vector of uint)
-0:88          'gs_ua3' (global 3-component vector of uint)
-0:88          'gs_ub3' (global 3-component vector of uint)
+0:88          'gs_ua3' (shared 3-component vector of uint)
+0:88          'gs_ub3' (shared 3-component vector of uint)
 0:89      move second child to first child (temp 3-component vector of uint)
 0:89        'out_u3' (temp 3-component vector of uint)
 0:89        AtomicCompSwap (temp 3-component vector of uint)
-0:89          'gs_ua3' (global 3-component vector of uint)
-0:89          'gs_ub3' (global 3-component vector of uint)
-0:89          'gs_uc3' (global 3-component vector of uint)
+0:89          'gs_ua3' (shared 3-component vector of uint)
+0:89          'gs_ub3' (shared 3-component vector of uint)
+0:89          'gs_uc3' (shared 3-component vector of uint)
 0:90      move second child to first child (temp 3-component vector of uint)
 0:90        'out_u3' (temp 3-component vector of uint)
 0:90        AtomicExchange (temp 3-component vector of uint)
-0:90          'gs_ua3' (global 3-component vector of uint)
-0:90          'gs_ub3' (global 3-component vector of uint)
+0:90          'gs_ua3' (shared 3-component vector of uint)
+0:90          'gs_ub3' (shared 3-component vector of uint)
 0:91      AtomicMax (global void)
-0:91        'gs_ua3' (global 3-component vector of uint)
-0:91        'gs_ub3' (global 3-component vector of uint)
+0:91        'gs_ua3' (shared 3-component vector of uint)
+0:91        'gs_ub3' (shared 3-component vector of uint)
 0:92      move second child to first child (temp 3-component vector of uint)
 0:92        'out_u3' (temp 3-component vector of uint)
 0:92        AtomicMax (temp 3-component vector of uint)
-0:92          'gs_ua3' (global 3-component vector of uint)
-0:92          'gs_ub3' (global 3-component vector of uint)
+0:92          'gs_ua3' (shared 3-component vector of uint)
+0:92          'gs_ub3' (shared 3-component vector of uint)
 0:93      AtomicMin (global void)
-0:93        'gs_ua3' (global 3-component vector of uint)
-0:93        'gs_ub3' (global 3-component vector of uint)
+0:93        'gs_ua3' (shared 3-component vector of uint)
+0:93        'gs_ub3' (shared 3-component vector of uint)
 0:94      move second child to first child (temp 3-component vector of uint)
 0:94        'out_u3' (temp 3-component vector of uint)
 0:94        AtomicMin (temp 3-component vector of uint)
-0:94          'gs_ua3' (global 3-component vector of uint)
-0:94          'gs_ub3' (global 3-component vector of uint)
+0:94          'gs_ua3' (shared 3-component vector of uint)
+0:94          'gs_ub3' (shared 3-component vector of uint)
 0:95      AtomicOr (global void)
-0:95        'gs_ua3' (global 3-component vector of uint)
-0:95        'gs_ub3' (global 3-component vector of uint)
+0:95        'gs_ua3' (shared 3-component vector of uint)
+0:95        'gs_ub3' (shared 3-component vector of uint)
 0:96      move second child to first child (temp 3-component vector of uint)
 0:96        'out_u3' (temp 3-component vector of uint)
 0:96        AtomicOr (temp 3-component vector of uint)
-0:96          'gs_ua3' (global 3-component vector of uint)
-0:96          'gs_ub3' (global 3-component vector of uint)
+0:96          'gs_ua3' (shared 3-component vector of uint)
+0:96          'gs_ub3' (shared 3-component vector of uint)
 0:97      AtomicXor (global void)
-0:97        'gs_ua3' (global 3-component vector of uint)
-0:97        'gs_ub3' (global 3-component vector of uint)
+0:97        'gs_ua3' (shared 3-component vector of uint)
+0:97        'gs_ub3' (shared 3-component vector of uint)
 0:98      move second child to first child (temp 3-component vector of uint)
 0:98        'out_u3' (temp 3-component vector of uint)
 0:98        AtomicXor (temp 3-component vector of uint)
-0:98          'gs_ua3' (global 3-component vector of uint)
-0:98          'gs_ub3' (global 3-component vector of uint)
+0:98          'gs_ua3' (shared 3-component vector of uint)
+0:98          'gs_ub3' (shared 3-component vector of uint)
 0:101      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -574,64 +574,64 @@
 0:109      all (global bool)
 0:109        'inF0' (layout(location=0 ) in 4-component vector of float)
 0:112      AtomicAdd (global void)
-0:112        'gs_ua4' (global 4-component vector of uint)
-0:112        'gs_ub4' (global 4-component vector of uint)
+0:112        'gs_ua4' (shared 4-component vector of uint)
+0:112        'gs_ub4' (shared 4-component vector of uint)
 0:113      move second child to first child (temp 4-component vector of uint)
 0:113        'out_u4' (temp 4-component vector of uint)
 0:113        AtomicAdd (temp 4-component vector of uint)
-0:113          'gs_ua4' (global 4-component vector of uint)
-0:113          'gs_ub4' (global 4-component vector of uint)
+0:113          'gs_ua4' (shared 4-component vector of uint)
+0:113          'gs_ub4' (shared 4-component vector of uint)
 0:114      AtomicAnd (global void)
-0:114        'gs_ua4' (global 4-component vector of uint)
-0:114        'gs_ub4' (global 4-component vector of uint)
+0:114        'gs_ua4' (shared 4-component vector of uint)
+0:114        'gs_ub4' (shared 4-component vector of uint)
 0:115      move second child to first child (temp 4-component vector of uint)
 0:115        'out_u4' (temp 4-component vector of uint)
 0:115        AtomicAnd (temp 4-component vector of uint)
-0:115          'gs_ua4' (global 4-component vector of uint)
-0:115          'gs_ub4' (global 4-component vector of uint)
+0:115          'gs_ua4' (shared 4-component vector of uint)
+0:115          'gs_ub4' (shared 4-component vector of uint)
 0:116      move second child to first child (temp 4-component vector of uint)
 0:116        'out_u4' (temp 4-component vector of uint)
 0:116        AtomicCompSwap (temp 4-component vector of uint)
-0:116          'gs_ua4' (global 4-component vector of uint)
-0:116          'gs_ub4' (global 4-component vector of uint)
-0:116          'gs_uc4' (global 4-component vector of uint)
+0:116          'gs_ua4' (shared 4-component vector of uint)
+0:116          'gs_ub4' (shared 4-component vector of uint)
+0:116          'gs_uc4' (shared 4-component vector of uint)
 0:117      move second child to first child (temp 4-component vector of uint)
 0:117        'out_u4' (temp 4-component vector of uint)
 0:117        AtomicExchange (temp 4-component vector of uint)
-0:117          'gs_ua4' (global 4-component vector of uint)
-0:117          'gs_ub4' (global 4-component vector of uint)
+0:117          'gs_ua4' (shared 4-component vector of uint)
+0:117          'gs_ub4' (shared 4-component vector of uint)
 0:118      AtomicMax (global void)
-0:118        'gs_ua4' (global 4-component vector of uint)
-0:118        'gs_ub4' (global 4-component vector of uint)
+0:118        'gs_ua4' (shared 4-component vector of uint)
+0:118        'gs_ub4' (shared 4-component vector of uint)
 0:119      move second child to first child (temp 4-component vector of uint)
 0:119        'out_u4' (temp 4-component vector of uint)
 0:119        AtomicMax (temp 4-component vector of uint)
-0:119          'gs_ua4' (global 4-component vector of uint)
-0:119          'gs_ub4' (global 4-component vector of uint)
+0:119          'gs_ua4' (shared 4-component vector of uint)
+0:119          'gs_ub4' (shared 4-component vector of uint)
 0:120      AtomicMin (global void)
-0:120        'gs_ua4' (global 4-component vector of uint)
-0:120        'gs_ub4' (global 4-component vector of uint)
+0:120        'gs_ua4' (shared 4-component vector of uint)
+0:120        'gs_ub4' (shared 4-component vector of uint)
 0:121      move second child to first child (temp 4-component vector of uint)
 0:121        'out_u4' (temp 4-component vector of uint)
 0:121        AtomicMin (temp 4-component vector of uint)
-0:121          'gs_ua4' (global 4-component vector of uint)
-0:121          'gs_ub4' (global 4-component vector of uint)
+0:121          'gs_ua4' (shared 4-component vector of uint)
+0:121          'gs_ub4' (shared 4-component vector of uint)
 0:122      AtomicOr (global void)
-0:122        'gs_ua4' (global 4-component vector of uint)
-0:122        'gs_ub4' (global 4-component vector of uint)
+0:122        'gs_ua4' (shared 4-component vector of uint)
+0:122        'gs_ub4' (shared 4-component vector of uint)
 0:123      move second child to first child (temp 4-component vector of uint)
 0:123        'out_u4' (temp 4-component vector of uint)
 0:123        AtomicOr (temp 4-component vector of uint)
-0:123          'gs_ua4' (global 4-component vector of uint)
-0:123          'gs_ub4' (global 4-component vector of uint)
+0:123          'gs_ua4' (shared 4-component vector of uint)
+0:123          'gs_ub4' (shared 4-component vector of uint)
 0:124      AtomicXor (global void)
-0:124        'gs_ua4' (global 4-component vector of uint)
-0:124        'gs_ub4' (global 4-component vector of uint)
+0:124        'gs_ua4' (shared 4-component vector of uint)
+0:124        'gs_ub4' (shared 4-component vector of uint)
 0:125      move second child to first child (temp 4-component vector of uint)
 0:125        'out_u4' (temp 4-component vector of uint)
 0:125        AtomicXor (temp 4-component vector of uint)
-0:125          'gs_ua4' (global 4-component vector of uint)
-0:125          'gs_ub4' (global 4-component vector of uint)
+0:125          'gs_ua4' (shared 4-component vector of uint)
+0:125          'gs_ub4' (shared 4-component vector of uint)
 0:128      Sequence
 0:128        move second child to first child (temp 4-component vector of float)
 0:?           '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
@@ -642,18 +642,18 @@
 0:?             4.000000
 0:128        Branch: Return
 0:?   Linker Objects
-0:?     'gs_ua' (global uint)
-0:?     'gs_ub' (global uint)
-0:?     'gs_uc' (global uint)
-0:?     'gs_ua2' (global 2-component vector of uint)
-0:?     'gs_ub2' (global 2-component vector of uint)
-0:?     'gs_uc2' (global 2-component vector of uint)
-0:?     'gs_ua3' (global 3-component vector of uint)
-0:?     'gs_ub3' (global 3-component vector of uint)
-0:?     'gs_uc3' (global 3-component vector of uint)
-0:?     'gs_ua4' (global 4-component vector of uint)
-0:?     'gs_ub4' (global 4-component vector of uint)
-0:?     'gs_uc4' (global 4-component vector of uint)
+0:?     'gs_ua' (shared uint)
+0:?     'gs_ub' (shared uint)
+0:?     'gs_uc' (shared uint)
+0:?     'gs_ua2' (shared 2-component vector of uint)
+0:?     'gs_ub2' (shared 2-component vector of uint)
+0:?     'gs_uc2' (shared 2-component vector of uint)
+0:?     'gs_ua3' (shared 3-component vector of uint)
+0:?     'gs_ub3' (shared 3-component vector of uint)
+0:?     'gs_uc3' (shared 3-component vector of uint)
+0:?     'gs_ua4' (shared 4-component vector of uint)
+0:?     'gs_ub4' (shared 4-component vector of uint)
+0:?     'gs_uc4' (shared 4-component vector of uint)
 0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
 0:?     'inF0' (layout(location=0 ) in 4-component vector of float)
 0:?     'inF1' (layout(location=1 ) in 4-component vector of float)
@@ -740,35 +740,35 @@
               39:             TypePointer Function 38(ivec3)
               40:             TypeFunction 36(fvec3) 37(ptr) 37(ptr) 37(ptr) 39(ptr) 39(ptr)
               49:             TypeBool
-              51:             TypePointer Private 8(int)
-       52(gs_ua):     51(ptr) Variable Private
-       53(gs_ub):     51(ptr) Variable Private
+              51:             TypePointer Workgroup 8(int)
+       52(gs_ua):     51(ptr) Variable Workgroup
+       53(gs_ub):     51(ptr) Variable Workgroup
               55:      8(int) Constant 1
               56:      8(int) Constant 0
-       66(gs_uc):     51(ptr) Variable Private
+       66(gs_uc):     51(ptr) Variable Workgroup
               87:    6(float) Constant 0
-              94:             TypePointer Private 26(ivec2)
-      95(gs_ua2):     94(ptr) Variable Private
-      96(gs_ub2):     94(ptr) Variable Private
-     107(gs_uc2):     94(ptr) Variable Private
+              94:             TypePointer Workgroup 26(ivec2)
+      95(gs_ua2):     94(ptr) Variable Workgroup
+      96(gs_ub2):     94(ptr) Variable Workgroup
+     107(gs_uc2):     94(ptr) Variable Workgroup
              128:    6(float) Constant 1065353216
              129:    6(float) Constant 1073741824
              130:   24(fvec2) ConstantComposite 128 129
-             135:             TypePointer Private 38(ivec3)
-     136(gs_ua3):    135(ptr) Variable Private
-     137(gs_ub3):    135(ptr) Variable Private
-     148(gs_uc3):    135(ptr) Variable Private
+             135:             TypePointer Workgroup 38(ivec3)
+     136(gs_ua3):    135(ptr) Variable Workgroup
+     137(gs_ub3):    135(ptr) Variable Workgroup
+     148(gs_uc3):    135(ptr) Variable Workgroup
              169:    6(float) Constant 1077936128
              170:   36(fvec3) ConstantComposite 128 129 169
              173:             TypeVector 6(float) 4
              174:             TypePointer Input 173(fvec4)
        175(inF0):    174(ptr) Variable Input
              178:             TypeVector 8(int) 4
-             179:             TypePointer Private 178(ivec4)
-     180(gs_ua4):    179(ptr) Variable Private
-     181(gs_ub4):    179(ptr) Variable Private
+             179:             TypePointer Workgroup 178(ivec4)
+     180(gs_ua4):    179(ptr) Variable Workgroup
+     181(gs_ub4):    179(ptr) Variable Workgroup
              184:             TypePointer Function 178(ivec4)
-     193(gs_uc4):    179(ptr) Variable Private
+     193(gs_uc4):    179(ptr) Variable Workgroup
              214:             TypePointer Output 173(fvec4)
 215(@entryPointOutput):    214(ptr) Variable Output
              216:    6(float) Constant 1082130432
diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out
index 4009d8d..d5a0f99 100644
--- a/Test/baseResults/hlsl.intrinsics.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.frag.out
@@ -2782,18 +2782,18 @@
 0:492                0 (const int)
 0:492        Branch: Return
 0:?   Linker Objects
-0:?     'gs_ua' (global uint)
-0:?     'gs_ub' (global uint)
-0:?     'gs_uc' (global uint)
-0:?     'gs_ua2' (global 2-component vector of uint)
-0:?     'gs_ub2' (global 2-component vector of uint)
-0:?     'gs_uc2' (global 2-component vector of uint)
-0:?     'gs_ua3' (global 3-component vector of uint)
-0:?     'gs_ub3' (global 3-component vector of uint)
-0:?     'gs_uc3' (global 3-component vector of uint)
-0:?     'gs_ua4' (global 4-component vector of uint)
-0:?     'gs_ub4' (global 4-component vector of uint)
-0:?     'gs_uc4' (global 4-component vector of uint)
+0:?     'gs_ua' (shared uint)
+0:?     'gs_ub' (shared uint)
+0:?     'gs_uc' (shared uint)
+0:?     'gs_ua2' (shared 2-component vector of uint)
+0:?     'gs_ub2' (shared 2-component vector of uint)
+0:?     'gs_uc2' (shared 2-component vector of uint)
+0:?     'gs_ua3' (shared 3-component vector of uint)
+0:?     'gs_ub3' (shared 3-component vector of uint)
+0:?     'gs_uc3' (shared 3-component vector of uint)
+0:?     'gs_ua4' (shared 4-component vector of uint)
+0:?     'gs_ub4' (shared 4-component vector of uint)
+0:?     'gs_uc4' (shared 4-component vector of uint)
 0:?     'color' (layout(location=0 ) out 4-component vector of float)
 
 
@@ -5583,18 +5583,18 @@
 0:492                0 (const int)
 0:492        Branch: Return
 0:?   Linker Objects
-0:?     'gs_ua' (global uint)
-0:?     'gs_ub' (global uint)
-0:?     'gs_uc' (global uint)
-0:?     'gs_ua2' (global 2-component vector of uint)
-0:?     'gs_ub2' (global 2-component vector of uint)
-0:?     'gs_uc2' (global 2-component vector of uint)
-0:?     'gs_ua3' (global 3-component vector of uint)
-0:?     'gs_ub3' (global 3-component vector of uint)
-0:?     'gs_uc3' (global 3-component vector of uint)
-0:?     'gs_ua4' (global 4-component vector of uint)
-0:?     'gs_ub4' (global 4-component vector of uint)
-0:?     'gs_uc4' (global 4-component vector of uint)
+0:?     'gs_ua' (shared uint)
+0:?     'gs_ub' (shared uint)
+0:?     'gs_uc' (shared uint)
+0:?     'gs_ua2' (shared 2-component vector of uint)
+0:?     'gs_ub2' (shared 2-component vector of uint)
+0:?     'gs_uc2' (shared 2-component vector of uint)
+0:?     'gs_ua3' (shared 3-component vector of uint)
+0:?     'gs_ub3' (shared 3-component vector of uint)
+0:?     'gs_uc3' (shared 3-component vector of uint)
+0:?     'gs_ua4' (shared 4-component vector of uint)
+0:?     'gs_ub4' (shared 4-component vector of uint)
+0:?     'gs_uc4' (shared 4-component vector of uint)
 0:?     'color' (layout(location=0 ) out 4-component vector of float)
 
 // Module Version 10000
@@ -6250,22 +6250,22 @@
             1802:   48(fvec4) ConstantComposite 284 284 284 284
             1804:             TypePointer Output 48(fvec4)
      1805(color):   1804(ptr) Variable Output
-            1809:             TypePointer Private 8(int)
-     1810(gs_ua):   1809(ptr) Variable Private
-     1811(gs_ub):   1809(ptr) Variable Private
-     1812(gs_uc):   1809(ptr) Variable Private
-            1813:             TypePointer Private 26(ivec2)
-    1814(gs_ua2):   1813(ptr) Variable Private
-    1815(gs_ub2):   1813(ptr) Variable Private
-    1816(gs_uc2):   1813(ptr) Variable Private
-            1817:             TypePointer Private 38(ivec3)
-    1818(gs_ua3):   1817(ptr) Variable Private
-    1819(gs_ub3):   1817(ptr) Variable Private
-    1820(gs_uc3):   1817(ptr) Variable Private
-            1821:             TypePointer Private 50(ivec4)
-    1822(gs_ua4):   1821(ptr) Variable Private
-    1823(gs_ub4):   1821(ptr) Variable Private
-    1824(gs_uc4):   1821(ptr) Variable Private
+            1809:             TypePointer Workgroup 8(int)
+     1810(gs_ua):   1809(ptr) Variable Workgroup
+     1811(gs_ub):   1809(ptr) Variable Workgroup
+     1812(gs_uc):   1809(ptr) Variable Workgroup
+            1813:             TypePointer Workgroup 26(ivec2)
+    1814(gs_ua2):   1813(ptr) Variable Workgroup
+    1815(gs_ub2):   1813(ptr) Variable Workgroup
+    1816(gs_uc2):   1813(ptr) Variable Workgroup
+            1817:             TypePointer Workgroup 38(ivec3)
+    1818(gs_ua3):   1817(ptr) Variable Workgroup
+    1819(gs_ub3):   1817(ptr) Variable Workgroup
+    1820(gs_uc3):   1817(ptr) Variable Workgroup
+            1821:             TypePointer Workgroup 50(ivec4)
+    1822(gs_ua4):   1821(ptr) Variable Workgroup
+    1823(gs_ub4):   1821(ptr) Variable Workgroup
+    1824(gs_uc4):   1821(ptr) Variable Workgroup
          4(main):           2 Function None 3
                5:             Label
  1800(ps_output):   1799(ptr) Variable Function
diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out
index 77f4fe8..9c1b4ad 100644
--- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out
@@ -5,7 +5,7 @@
 0:28  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:28    Function Parameters: 
 0:?     Sequence
-0:32      textureFetch (global 4-component vector of float)
+0:32      textureFetch (temp 4-component vector of float)
 0:32        'g_tTex2dmsf4' (uniform texture2DMS)
 0:32        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:32          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -13,7 +13,7 @@
 0:32            1 (const uint)
 0:32        Constant:
 0:32          3 (const int)
-0:33      textureFetch (global 4-component vector of int)
+0:33      textureFetch (temp 4-component vector of int)
 0:33        'g_tTex2dmsi4' (uniform itexture2DMS)
 0:33        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:33          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -21,7 +21,7 @@
 0:33            1 (const uint)
 0:33        Constant:
 0:33          3 (const int)
-0:34      textureFetch (global 4-component vector of uint)
+0:34      textureFetch (temp 4-component vector of uint)
 0:34        'g_tTex2dmsu4' (uniform utexture2DMS)
 0:34        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:34          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -29,7 +29,7 @@
 0:34            1 (const uint)
 0:34        Constant:
 0:34          3 (const int)
-0:37      textureFetchOffset (global 4-component vector of float)
+0:37      textureFetchOffset (temp 4-component vector of float)
 0:37        'g_tTex2dmsf4' (uniform texture2DMS)
 0:37        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:37          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -41,7 +41,7 @@
 0:37          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:37          Constant:
 0:37            5 (const uint)
-0:38      textureFetchOffset (global 4-component vector of int)
+0:38      textureFetchOffset (temp 4-component vector of int)
 0:38        'g_tTex2dmsi4' (uniform itexture2DMS)
 0:38        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:38          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -53,7 +53,7 @@
 0:38          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:38          Constant:
 0:38            5 (const uint)
-0:39      textureFetchOffset (global 4-component vector of uint)
+0:39      textureFetchOffset (temp 4-component vector of uint)
 0:39        'g_tTex2dmsu4' (uniform utexture2DMS)
 0:39        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:39          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -65,7 +65,7 @@
 0:39          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:39          Constant:
 0:39            5 (const uint)
-0:42      textureFetch (global 4-component vector of float)
+0:42      textureFetch (temp 4-component vector of float)
 0:42        'g_tTex2dmsf4a' (uniform texture2DMSArray)
 0:42        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:42          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -73,7 +73,7 @@
 0:42            2 (const uint)
 0:42        Constant:
 0:42          3 (const int)
-0:43      textureFetch (global 4-component vector of int)
+0:43      textureFetch (temp 4-component vector of int)
 0:43        'g_tTex2dmsi4a' (uniform itexture2DMSArray)
 0:43        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:43          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -81,7 +81,7 @@
 0:43            2 (const uint)
 0:43        Constant:
 0:43          3 (const int)
-0:44      textureFetch (global 4-component vector of uint)
+0:44      textureFetch (temp 4-component vector of uint)
 0:44        'g_tTex2dmsu4a' (uniform utexture2DMSArray)
 0:44        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:44          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -89,7 +89,7 @@
 0:44            2 (const uint)
 0:44        Constant:
 0:44          3 (const int)
-0:47      textureFetchOffset (global 4-component vector of float)
+0:47      textureFetchOffset (temp 4-component vector of float)
 0:47        'g_tTex2dmsf4a' (uniform texture2DMSArray)
 0:47        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:47          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -101,7 +101,7 @@
 0:47          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:47          Constant:
 0:47            5 (const uint)
-0:48      textureFetchOffset (global 4-component vector of int)
+0:48      textureFetchOffset (temp 4-component vector of int)
 0:48        'g_tTex2dmsi4a' (uniform itexture2DMSArray)
 0:48        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:48          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -113,7 +113,7 @@
 0:48          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:48          Constant:
 0:48            5 (const uint)
-0:49      textureFetchOffset (global 4-component vector of uint)
+0:49      textureFetchOffset (temp 4-component vector of uint)
 0:49        'g_tTex2dmsu4a' (uniform utexture2DMSArray)
 0:49        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:49          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -179,7 +179,7 @@
 0:28  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:28    Function Parameters: 
 0:?     Sequence
-0:32      textureFetch (global 4-component vector of float)
+0:32      textureFetch (temp 4-component vector of float)
 0:32        'g_tTex2dmsf4' (uniform texture2DMS)
 0:32        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:32          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -187,7 +187,7 @@
 0:32            1 (const uint)
 0:32        Constant:
 0:32          3 (const int)
-0:33      textureFetch (global 4-component vector of int)
+0:33      textureFetch (temp 4-component vector of int)
 0:33        'g_tTex2dmsi4' (uniform itexture2DMS)
 0:33        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:33          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -195,7 +195,7 @@
 0:33            1 (const uint)
 0:33        Constant:
 0:33          3 (const int)
-0:34      textureFetch (global 4-component vector of uint)
+0:34      textureFetch (temp 4-component vector of uint)
 0:34        'g_tTex2dmsu4' (uniform utexture2DMS)
 0:34        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:34          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -203,7 +203,7 @@
 0:34            1 (const uint)
 0:34        Constant:
 0:34          3 (const int)
-0:37      textureFetchOffset (global 4-component vector of float)
+0:37      textureFetchOffset (temp 4-component vector of float)
 0:37        'g_tTex2dmsf4' (uniform texture2DMS)
 0:37        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:37          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -215,7 +215,7 @@
 0:37          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:37          Constant:
 0:37            5 (const uint)
-0:38      textureFetchOffset (global 4-component vector of int)
+0:38      textureFetchOffset (temp 4-component vector of int)
 0:38        'g_tTex2dmsi4' (uniform itexture2DMS)
 0:38        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:38          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -227,7 +227,7 @@
 0:38          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:38          Constant:
 0:38            5 (const uint)
-0:39      textureFetchOffset (global 4-component vector of uint)
+0:39      textureFetchOffset (temp 4-component vector of uint)
 0:39        'g_tTex2dmsu4' (uniform utexture2DMS)
 0:39        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:39          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -239,7 +239,7 @@
 0:39          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:39          Constant:
 0:39            5 (const uint)
-0:42      textureFetch (global 4-component vector of float)
+0:42      textureFetch (temp 4-component vector of float)
 0:42        'g_tTex2dmsf4a' (uniform texture2DMSArray)
 0:42        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:42          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -247,7 +247,7 @@
 0:42            2 (const uint)
 0:42        Constant:
 0:42          3 (const int)
-0:43      textureFetch (global 4-component vector of int)
+0:43      textureFetch (temp 4-component vector of int)
 0:43        'g_tTex2dmsi4a' (uniform itexture2DMSArray)
 0:43        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:43          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -255,7 +255,7 @@
 0:43            2 (const uint)
 0:43        Constant:
 0:43          3 (const int)
-0:44      textureFetch (global 4-component vector of uint)
+0:44      textureFetch (temp 4-component vector of uint)
 0:44        'g_tTex2dmsu4a' (uniform utexture2DMSArray)
 0:44        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:44          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -263,7 +263,7 @@
 0:44            2 (const uint)
 0:44        Constant:
 0:44          3 (const int)
-0:47      textureFetchOffset (global 4-component vector of float)
+0:47      textureFetchOffset (temp 4-component vector of float)
 0:47        'g_tTex2dmsf4a' (uniform texture2DMSArray)
 0:47        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:47          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -275,7 +275,7 @@
 0:47          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:47          Constant:
 0:47            5 (const uint)
-0:48      textureFetchOffset (global 4-component vector of int)
+0:48      textureFetchOffset (temp 4-component vector of int)
 0:48        'g_tTex2dmsi4a' (uniform itexture2DMSArray)
 0:48        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:48          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -287,7 +287,7 @@
 0:48          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:48          Constant:
 0:48            5 (const uint)
-0:49      textureFetchOffset (global 4-component vector of uint)
+0:49      textureFetchOffset (temp 4-component vector of uint)
 0:49        'g_tTex2dmsu4a' (uniform utexture2DMSArray)
 0:49        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:49          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out
index 57e479a..ed2951f 100644
--- a/Test/baseResults/hlsl.load.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.array.dx10.frag.out
@@ -5,7 +5,7 @@
 0:48  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:48    Function Parameters: 
 0:?     Sequence
-0:52      textureFetch (global 4-component vector of float)
+0:52      textureFetch (temp 4-component vector of float)
 0:52        'g_tTex1df4a' (uniform texture1DArray)
 0:52        vector swizzle (temp 2-component vector of int)
 0:52          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -24,7 +24,7 @@
 0:52              2 (const uint)
 0:52          Constant:
 0:52            2 (const int)
-0:53      textureFetch (global 4-component vector of int)
+0:53      textureFetch (temp 4-component vector of int)
 0:53        'g_tTex1di4a' (uniform itexture1DArray)
 0:53        vector swizzle (temp 2-component vector of int)
 0:53          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -43,7 +43,7 @@
 0:53              2 (const uint)
 0:53          Constant:
 0:53            2 (const int)
-0:54      textureFetch (global 4-component vector of uint)
+0:54      textureFetch (temp 4-component vector of uint)
 0:54        'g_tTex1du4a' (uniform utexture1DArray)
 0:54        vector swizzle (temp 2-component vector of int)
 0:54          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -62,7 +62,7 @@
 0:54              2 (const uint)
 0:54          Constant:
 0:54            2 (const int)
-0:57      textureFetch (global 4-component vector of float)
+0:57      textureFetch (temp 4-component vector of float)
 0:57        'g_tTex2df4a' (uniform texture2DArray)
 0:57        vector swizzle (temp 3-component vector of int)
 0:57          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -83,7 +83,7 @@
 0:57              3 (const uint)
 0:57          Constant:
 0:57            3 (const int)
-0:58      textureFetch (global 4-component vector of int)
+0:58      textureFetch (temp 4-component vector of int)
 0:58        'g_tTex2di4a' (uniform itexture2DArray)
 0:58        vector swizzle (temp 3-component vector of int)
 0:58          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -104,7 +104,7 @@
 0:58              3 (const uint)
 0:58          Constant:
 0:58            3 (const int)
-0:59      textureFetch (global 4-component vector of uint)
+0:59      textureFetch (temp 4-component vector of uint)
 0:59        'g_tTex2du4a' (uniform utexture2DArray)
 0:59        vector swizzle (temp 3-component vector of int)
 0:59          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -194,7 +194,7 @@
 0:48  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:48    Function Parameters: 
 0:?     Sequence
-0:52      textureFetch (global 4-component vector of float)
+0:52      textureFetch (temp 4-component vector of float)
 0:52        'g_tTex1df4a' (uniform texture1DArray)
 0:52        vector swizzle (temp 2-component vector of int)
 0:52          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -213,7 +213,7 @@
 0:52              2 (const uint)
 0:52          Constant:
 0:52            2 (const int)
-0:53      textureFetch (global 4-component vector of int)
+0:53      textureFetch (temp 4-component vector of int)
 0:53        'g_tTex1di4a' (uniform itexture1DArray)
 0:53        vector swizzle (temp 2-component vector of int)
 0:53          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -232,7 +232,7 @@
 0:53              2 (const uint)
 0:53          Constant:
 0:53            2 (const int)
-0:54      textureFetch (global 4-component vector of uint)
+0:54      textureFetch (temp 4-component vector of uint)
 0:54        'g_tTex1du4a' (uniform utexture1DArray)
 0:54        vector swizzle (temp 2-component vector of int)
 0:54          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -251,7 +251,7 @@
 0:54              2 (const uint)
 0:54          Constant:
 0:54            2 (const int)
-0:57      textureFetch (global 4-component vector of float)
+0:57      textureFetch (temp 4-component vector of float)
 0:57        'g_tTex2df4a' (uniform texture2DArray)
 0:57        vector swizzle (temp 3-component vector of int)
 0:57          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -272,7 +272,7 @@
 0:57              3 (const uint)
 0:57          Constant:
 0:57            3 (const int)
-0:58      textureFetch (global 4-component vector of int)
+0:58      textureFetch (temp 4-component vector of int)
 0:58        'g_tTex2di4a' (uniform itexture2DArray)
 0:58        vector swizzle (temp 3-component vector of int)
 0:58          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -293,7 +293,7 @@
 0:58              3 (const uint)
 0:58          Constant:
 0:58            3 (const int)
-0:59      textureFetch (global 4-component vector of uint)
+0:59      textureFetch (temp 4-component vector of uint)
 0:59        'g_tTex2du4a' (uniform utexture2DArray)
 0:59        vector swizzle (temp 3-component vector of int)
 0:59          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out
index 90f7e49..3a4b3fc 100644
--- a/Test/baseResults/hlsl.load.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out
@@ -5,7 +5,7 @@
 0:48  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:48    Function Parameters: 
 0:?     Sequence
-0:52      textureFetch (global 4-component vector of float)
+0:52      textureFetch (temp 4-component vector of float)
 0:52        'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:52        vector swizzle (temp int)
 0:52          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -22,7 +22,7 @@
 0:52              1 (const uint)
 0:52          Constant:
 0:52            1 (const int)
-0:53      textureFetch (global 4-component vector of int)
+0:53      textureFetch (temp 4-component vector of int)
 0:53        'g_tTex1di4' (uniform itexture1D)
 0:53        vector swizzle (temp int)
 0:53          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -39,7 +39,7 @@
 0:53              1 (const uint)
 0:53          Constant:
 0:53            1 (const int)
-0:54      textureFetch (global 4-component vector of uint)
+0:54      textureFetch (temp 4-component vector of uint)
 0:54        'g_tTex1du4' (uniform utexture1D)
 0:54        vector swizzle (temp int)
 0:54          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -56,7 +56,7 @@
 0:54              1 (const uint)
 0:54          Constant:
 0:54            1 (const int)
-0:57      textureFetch (global 4-component vector of float)
+0:57      textureFetch (temp 4-component vector of float)
 0:57        'g_tTex2df4' (uniform texture2D)
 0:57        vector swizzle (temp 2-component vector of int)
 0:57          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -75,7 +75,7 @@
 0:57              2 (const uint)
 0:57          Constant:
 0:57            2 (const int)
-0:58      textureFetch (global 4-component vector of int)
+0:58      textureFetch (temp 4-component vector of int)
 0:58        'g_tTex2di4' (uniform itexture2D)
 0:58        vector swizzle (temp 2-component vector of int)
 0:58          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -94,7 +94,7 @@
 0:58              2 (const uint)
 0:58          Constant:
 0:58            2 (const int)
-0:59      textureFetch (global 4-component vector of uint)
+0:59      textureFetch (temp 4-component vector of uint)
 0:59        'g_tTex2du4' (uniform utexture2D)
 0:59        vector swizzle (temp 2-component vector of int)
 0:59          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -113,7 +113,7 @@
 0:59              2 (const uint)
 0:59          Constant:
 0:59            2 (const int)
-0:62      textureFetch (global 4-component vector of float)
+0:62      textureFetch (temp 4-component vector of float)
 0:62        'g_tTex3df4' (uniform texture3D)
 0:62        vector swizzle (temp 3-component vector of int)
 0:62          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -134,7 +134,7 @@
 0:62              3 (const uint)
 0:62          Constant:
 0:62            3 (const int)
-0:63      textureFetch (global 4-component vector of int)
+0:63      textureFetch (temp 4-component vector of int)
 0:63        'g_tTex3di4' (uniform itexture3D)
 0:63        vector swizzle (temp 3-component vector of int)
 0:63          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -155,7 +155,7 @@
 0:63              3 (const uint)
 0:63          Constant:
 0:63            3 (const int)
-0:64      textureFetch (global 4-component vector of uint)
+0:64      textureFetch (temp 4-component vector of uint)
 0:64        'g_tTex3du4' (uniform utexture3D)
 0:64        vector swizzle (temp 3-component vector of int)
 0:64          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -245,7 +245,7 @@
 0:48  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:48    Function Parameters: 
 0:?     Sequence
-0:52      textureFetch (global 4-component vector of float)
+0:52      textureFetch (temp 4-component vector of float)
 0:52        'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:52        vector swizzle (temp int)
 0:52          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -262,7 +262,7 @@
 0:52              1 (const uint)
 0:52          Constant:
 0:52            1 (const int)
-0:53      textureFetch (global 4-component vector of int)
+0:53      textureFetch (temp 4-component vector of int)
 0:53        'g_tTex1di4' (uniform itexture1D)
 0:53        vector swizzle (temp int)
 0:53          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -279,7 +279,7 @@
 0:53              1 (const uint)
 0:53          Constant:
 0:53            1 (const int)
-0:54      textureFetch (global 4-component vector of uint)
+0:54      textureFetch (temp 4-component vector of uint)
 0:54        'g_tTex1du4' (uniform utexture1D)
 0:54        vector swizzle (temp int)
 0:54          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -296,7 +296,7 @@
 0:54              1 (const uint)
 0:54          Constant:
 0:54            1 (const int)
-0:57      textureFetch (global 4-component vector of float)
+0:57      textureFetch (temp 4-component vector of float)
 0:57        'g_tTex2df4' (uniform texture2D)
 0:57        vector swizzle (temp 2-component vector of int)
 0:57          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -315,7 +315,7 @@
 0:57              2 (const uint)
 0:57          Constant:
 0:57            2 (const int)
-0:58      textureFetch (global 4-component vector of int)
+0:58      textureFetch (temp 4-component vector of int)
 0:58        'g_tTex2di4' (uniform itexture2D)
 0:58        vector swizzle (temp 2-component vector of int)
 0:58          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -334,7 +334,7 @@
 0:58              2 (const uint)
 0:58          Constant:
 0:58            2 (const int)
-0:59      textureFetch (global 4-component vector of uint)
+0:59      textureFetch (temp 4-component vector of uint)
 0:59        'g_tTex2du4' (uniform utexture2D)
 0:59        vector swizzle (temp 2-component vector of int)
 0:59          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -353,7 +353,7 @@
 0:59              2 (const uint)
 0:59          Constant:
 0:59            2 (const int)
-0:62      textureFetch (global 4-component vector of float)
+0:62      textureFetch (temp 4-component vector of float)
 0:62        'g_tTex3df4' (uniform texture3D)
 0:62        vector swizzle (temp 3-component vector of int)
 0:62          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -374,7 +374,7 @@
 0:62              3 (const uint)
 0:62          Constant:
 0:62            3 (const int)
-0:63      textureFetch (global 4-component vector of int)
+0:63      textureFetch (temp 4-component vector of int)
 0:63        'g_tTex3di4' (uniform itexture3D)
 0:63        vector swizzle (temp 3-component vector of int)
 0:63          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -395,7 +395,7 @@
 0:63              3 (const uint)
 0:63          Constant:
 0:63            3 (const int)
-0:64      textureFetch (global 4-component vector of uint)
+0:64      textureFetch (temp 4-component vector of uint)
 0:64        'g_tTex3du4' (uniform utexture3D)
 0:64        vector swizzle (temp 3-component vector of int)
 0:64          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out
index 4649f29..9495c60 100644
--- a/Test/baseResults/hlsl.load.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out
@@ -4,7 +4,7 @@
 0:47  Function Definition: main( (temp structure{temp 4-component vector of float Pos})
 0:47    Function Parameters: 
 0:?     Sequence
-0:51      textureFetch (global 4-component vector of float)
+0:51      textureFetch (temp 4-component vector of float)
 0:51        'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:51        vector swizzle (temp int)
 0:51          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -21,7 +21,7 @@
 0:51              1 (const uint)
 0:51          Constant:
 0:51            1 (const int)
-0:52      textureFetch (global 4-component vector of int)
+0:52      textureFetch (temp 4-component vector of int)
 0:52        'g_tTex1di4' (uniform itexture1D)
 0:52        vector swizzle (temp int)
 0:52          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -38,7 +38,7 @@
 0:52              1 (const uint)
 0:52          Constant:
 0:52            1 (const int)
-0:53      textureFetch (global 4-component vector of uint)
+0:53      textureFetch (temp 4-component vector of uint)
 0:53        'g_tTex1du4' (uniform utexture1D)
 0:53        vector swizzle (temp int)
 0:53          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -55,7 +55,7 @@
 0:53              1 (const uint)
 0:53          Constant:
 0:53            1 (const int)
-0:56      textureFetch (global 4-component vector of float)
+0:56      textureFetch (temp 4-component vector of float)
 0:56        'g_tTex2df4' (uniform texture2D)
 0:56        vector swizzle (temp 2-component vector of int)
 0:56          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -74,7 +74,7 @@
 0:56              2 (const uint)
 0:56          Constant:
 0:56            2 (const int)
-0:57      textureFetch (global 4-component vector of int)
+0:57      textureFetch (temp 4-component vector of int)
 0:57        'g_tTex2di4' (uniform itexture2D)
 0:57        vector swizzle (temp 2-component vector of int)
 0:57          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -93,7 +93,7 @@
 0:57              2 (const uint)
 0:57          Constant:
 0:57            2 (const int)
-0:58      textureFetch (global 4-component vector of uint)
+0:58      textureFetch (temp 4-component vector of uint)
 0:58        'g_tTex2du4' (uniform utexture2D)
 0:58        vector swizzle (temp 2-component vector of int)
 0:58          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -112,7 +112,7 @@
 0:58              2 (const uint)
 0:58          Constant:
 0:58            2 (const int)
-0:61      textureFetch (global 4-component vector of float)
+0:61      textureFetch (temp 4-component vector of float)
 0:61        'g_tTex3df4' (uniform texture3D)
 0:61        vector swizzle (temp 3-component vector of int)
 0:61          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -133,7 +133,7 @@
 0:61              3 (const uint)
 0:61          Constant:
 0:61            3 (const int)
-0:62      textureFetch (global 4-component vector of int)
+0:62      textureFetch (temp 4-component vector of int)
 0:62        'g_tTex3di4' (uniform itexture3D)
 0:62        vector swizzle (temp 3-component vector of int)
 0:62          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -154,7 +154,7 @@
 0:62              3 (const uint)
 0:62          Constant:
 0:62            3 (const int)
-0:63      textureFetch (global 4-component vector of uint)
+0:63      textureFetch (temp 4-component vector of uint)
 0:63        'g_tTex3du4' (uniform utexture3D)
 0:63        vector swizzle (temp 3-component vector of int)
 0:63          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -229,7 +229,7 @@
 0:47  Function Definition: main( (temp structure{temp 4-component vector of float Pos})
 0:47    Function Parameters: 
 0:?     Sequence
-0:51      textureFetch (global 4-component vector of float)
+0:51      textureFetch (temp 4-component vector of float)
 0:51        'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:51        vector swizzle (temp int)
 0:51          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -246,7 +246,7 @@
 0:51              1 (const uint)
 0:51          Constant:
 0:51            1 (const int)
-0:52      textureFetch (global 4-component vector of int)
+0:52      textureFetch (temp 4-component vector of int)
 0:52        'g_tTex1di4' (uniform itexture1D)
 0:52        vector swizzle (temp int)
 0:52          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -263,7 +263,7 @@
 0:52              1 (const uint)
 0:52          Constant:
 0:52            1 (const int)
-0:53      textureFetch (global 4-component vector of uint)
+0:53      textureFetch (temp 4-component vector of uint)
 0:53        'g_tTex1du4' (uniform utexture1D)
 0:53        vector swizzle (temp int)
 0:53          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -280,7 +280,7 @@
 0:53              1 (const uint)
 0:53          Constant:
 0:53            1 (const int)
-0:56      textureFetch (global 4-component vector of float)
+0:56      textureFetch (temp 4-component vector of float)
 0:56        'g_tTex2df4' (uniform texture2D)
 0:56        vector swizzle (temp 2-component vector of int)
 0:56          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -299,7 +299,7 @@
 0:56              2 (const uint)
 0:56          Constant:
 0:56            2 (const int)
-0:57      textureFetch (global 4-component vector of int)
+0:57      textureFetch (temp 4-component vector of int)
 0:57        'g_tTex2di4' (uniform itexture2D)
 0:57        vector swizzle (temp 2-component vector of int)
 0:57          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -318,7 +318,7 @@
 0:57              2 (const uint)
 0:57          Constant:
 0:57            2 (const int)
-0:58      textureFetch (global 4-component vector of uint)
+0:58      textureFetch (temp 4-component vector of uint)
 0:58        'g_tTex2du4' (uniform utexture2D)
 0:58        vector swizzle (temp 2-component vector of int)
 0:58          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -337,7 +337,7 @@
 0:58              2 (const uint)
 0:58          Constant:
 0:58            2 (const int)
-0:61      textureFetch (global 4-component vector of float)
+0:61      textureFetch (temp 4-component vector of float)
 0:61        'g_tTex3df4' (uniform texture3D)
 0:61        vector swizzle (temp 3-component vector of int)
 0:61          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -358,7 +358,7 @@
 0:61              3 (const uint)
 0:61          Constant:
 0:61            3 (const int)
-0:62      textureFetch (global 4-component vector of int)
+0:62      textureFetch (temp 4-component vector of int)
 0:62        'g_tTex3di4' (uniform itexture3D)
 0:62        vector swizzle (temp 3-component vector of int)
 0:62          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -379,7 +379,7 @@
 0:62              3 (const uint)
 0:62          Constant:
 0:62            3 (const int)
-0:63      textureFetch (global 4-component vector of uint)
+0:63      textureFetch (temp 4-component vector of uint)
 0:63        'g_tTex3du4' (uniform utexture3D)
 0:63        vector swizzle (temp 3-component vector of int)
 0:63          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out
index ded9382..560d8f5 100644
--- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out
@@ -8,8 +8,8 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of float)
 0:28          'r00' (temp 4-component vector of float)
-0:28          textureFetch (global 4-component vector of float)
-0:28            'g_tTexbf4' (uniform samplerBuffer)
+0:28          textureFetch (temp 4-component vector of float)
+0:28            'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer)
 0:28            c1: direct index for structure (layout(offset=0 ) uniform int)
 0:28              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:28              Constant:
@@ -17,8 +17,8 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of int)
 0:29          'r01' (temp 4-component vector of int)
-0:29          textureFetch (global 4-component vector of int)
-0:29            'g_tTexbi4' (uniform isamplerBuffer)
+0:29          textureFetch (temp 4-component vector of int)
+0:29            'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer)
 0:29            c1: direct index for structure (layout(offset=0 ) uniform int)
 0:29              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:29              Constant:
@@ -26,8 +26,8 @@
 0:30      Sequence
 0:30        move second child to first child (temp 4-component vector of uint)
 0:30          'r02' (temp 4-component vector of uint)
-0:30          textureFetch (global 4-component vector of uint)
-0:30            'g_tTexbu4' (uniform usamplerBuffer)
+0:30          textureFetch (temp 4-component vector of uint)
+0:30            'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer)
 0:30            c1: direct index for structure (layout(offset=0 ) uniform int)
 0:30              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:30              Constant:
@@ -65,10 +65,10 @@
 0:37                1 (const int)
 0:37        Branch: Return
 0:?   Linker Objects
-0:?     'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer)
-0:?     'g_tTexbf4' (uniform samplerBuffer)
-0:?     'g_tTexbi4' (uniform isamplerBuffer)
-0:?     'g_tTexbu4' (uniform usamplerBuffer)
+0:?     'g_tTexbf4_test' (layout(binding=0 rgba32f ) uniform samplerBuffer)
+0:?     'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer)
+0:?     'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer)
+0:?     'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer)
 0:?     'Color' (layout(location=0 ) out 4-component vector of float)
 0:?     'Depth' (out float FragDepth)
 0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -86,8 +86,8 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of float)
 0:28          'r00' (temp 4-component vector of float)
-0:28          textureFetch (global 4-component vector of float)
-0:28            'g_tTexbf4' (uniform samplerBuffer)
+0:28          textureFetch (temp 4-component vector of float)
+0:28            'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer)
 0:28            c1: direct index for structure (layout(offset=0 ) uniform int)
 0:28              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:28              Constant:
@@ -95,8 +95,8 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of int)
 0:29          'r01' (temp 4-component vector of int)
-0:29          textureFetch (global 4-component vector of int)
-0:29            'g_tTexbi4' (uniform isamplerBuffer)
+0:29          textureFetch (temp 4-component vector of int)
+0:29            'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer)
 0:29            c1: direct index for structure (layout(offset=0 ) uniform int)
 0:29              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:29              Constant:
@@ -104,8 +104,8 @@
 0:30      Sequence
 0:30        move second child to first child (temp 4-component vector of uint)
 0:30          'r02' (temp 4-component vector of uint)
-0:30          textureFetch (global 4-component vector of uint)
-0:30            'g_tTexbu4' (uniform usamplerBuffer)
+0:30          textureFetch (temp 4-component vector of uint)
+0:30            'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer)
 0:30            c1: direct index for structure (layout(offset=0 ) uniform int)
 0:30              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:30              Constant:
@@ -143,10 +143,10 @@
 0:37                1 (const int)
 0:37        Branch: Return
 0:?   Linker Objects
-0:?     'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer)
-0:?     'g_tTexbf4' (uniform samplerBuffer)
-0:?     'g_tTexbi4' (uniform isamplerBuffer)
-0:?     'g_tTexbu4' (uniform usamplerBuffer)
+0:?     'g_tTexbf4_test' (layout(binding=0 rgba32f ) uniform samplerBuffer)
+0:?     'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer)
+0:?     'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer)
+0:?     'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer)
 0:?     'Color' (layout(location=0 ) out 4-component vector of float)
 0:?     'Depth' (out float FragDepth)
 0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -207,7 +207,7 @@
                6:             TypeFloat 32
                7:             TypeVector 6(float) 4
                8:             TypePointer Function 7(fvec4)
-              10:             TypeImage 6(float) Buffer sampled format:Unknown
+              10:             TypeImage 6(float) Buffer sampled format:Rgba32f
               11:             TypeSampledImage 10
               12:             TypePointer UniformConstant 11
    13(g_tTexbf4):     12(ptr) Variable UniformConstant
@@ -221,14 +221,14 @@
               22:     15(int) Constant 0
               23:             TypePointer Uniform 15(int)
               28:             TypePointer Function 18(ivec4)
-              30:             TypeImage 15(int) Buffer sampled format:Unknown
+              30:             TypeImage 15(int) Buffer sampled format:Rgba32i
               31:             TypeSampledImage 30
               32:             TypePointer UniformConstant 31
    33(g_tTexbi4):     32(ptr) Variable UniformConstant
               39:             TypeInt 32 0
               40:             TypeVector 39(int) 4
               41:             TypePointer Function 40(ivec4)
-              43:             TypeImage 39(int) Buffer sampled format:Unknown
+              43:             TypeImage 39(int) Buffer sampled format:Rgba32ui
               44:             TypeSampledImage 43
               45:             TypePointer UniformConstant 44
    46(g_tTexbu4):     45(ptr) Variable UniformConstant
diff --git a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
new file mode 100644
index 0000000..6d64b94
--- /dev/null
+++ b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
@@ -0,0 +1,290 @@
+hlsl.load.buffer.float.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:24  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
+0:24    Function Parameters: 
+0:?     Sequence
+0:28      Sequence
+0:28        move second child to first child (temp float)
+0:28          'r00' (temp float)
+0:28          Construct float (temp float)
+0:?             textureFetch (temp 4-component vector of float)
+0:28              'g_tTexbfs' (layout(r32f ) uniform samplerBuffer)
+0:28              c1: direct index for structure (layout(offset=0 ) uniform int)
+0:28                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:28                Constant:
+0:28                  0 (const uint)
+0:29      Sequence
+0:29        move second child to first child (temp int)
+0:29          'r01' (temp int)
+0:29          Construct int (temp int)
+0:?             textureFetch (temp 4-component vector of int)
+0:29              'g_tTexbis' (layout(r32i ) uniform isamplerBuffer)
+0:29              c1: direct index for structure (layout(offset=0 ) uniform int)
+0:29                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:29                Constant:
+0:29                  0 (const uint)
+0:30      Sequence
+0:30        move second child to first child (temp uint)
+0:30          'r02' (temp uint)
+0:30          Construct uint (temp uint)
+0:?             textureFetch (temp 4-component vector of uint)
+0:30              'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer)
+0:30              c1: direct index for structure (layout(offset=0 ) uniform int)
+0:30                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:30                Constant:
+0:30                  0 (const uint)
+0:34      move second child to first child (temp 4-component vector of float)
+0:34        Color: direct index for structure (temp 4-component vector of float)
+0:34          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
+0:34          Constant:
+0:34            0 (const int)
+0:34        Constant:
+0:34          1.000000
+0:34          1.000000
+0:34          1.000000
+0:34          1.000000
+0:35      move second child to first child (temp float)
+0:35        Depth: direct index for structure (temp float)
+0:35          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
+0:35          Constant:
+0:35            1 (const int)
+0:35        Constant:
+0:35          1.000000
+0:37      Sequence
+0:37        Sequence
+0:37          move second child to first child (temp 4-component vector of float)
+0:?             'Color' (layout(location=0 ) out 4-component vector of float)
+0:37            Color: direct index for structure (temp 4-component vector of float)
+0:37              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
+0:37              Constant:
+0:37                0 (const int)
+0:37          move second child to first child (temp float)
+0:?             'Depth' (out float FragDepth)
+0:37            Depth: direct index for structure (temp float)
+0:37              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
+0:37              Constant:
+0:37                1 (const int)
+0:37        Branch: Return
+0:?   Linker Objects
+0:?     'g_tTexbfs_test' (layout(binding=0 r32f ) uniform samplerBuffer)
+0:?     'g_tTexbfs' (layout(r32f ) uniform samplerBuffer)
+0:?     'g_tTexbis' (layout(r32i ) uniform isamplerBuffer)
+0:?     'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer)
+0:?     'Color' (layout(location=0 ) out 4-component vector of float)
+0:?     'Depth' (out float FragDepth)
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:24  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
+0:24    Function Parameters: 
+0:?     Sequence
+0:28      Sequence
+0:28        move second child to first child (temp float)
+0:28          'r00' (temp float)
+0:28          Construct float (temp float)
+0:?             textureFetch (temp 4-component vector of float)
+0:28              'g_tTexbfs' (layout(r32f ) uniform samplerBuffer)
+0:28              c1: direct index for structure (layout(offset=0 ) uniform int)
+0:28                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:28                Constant:
+0:28                  0 (const uint)
+0:29      Sequence
+0:29        move second child to first child (temp int)
+0:29          'r01' (temp int)
+0:29          Construct int (temp int)
+0:?             textureFetch (temp 4-component vector of int)
+0:29              'g_tTexbis' (layout(r32i ) uniform isamplerBuffer)
+0:29              c1: direct index for structure (layout(offset=0 ) uniform int)
+0:29                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:29                Constant:
+0:29                  0 (const uint)
+0:30      Sequence
+0:30        move second child to first child (temp uint)
+0:30          'r02' (temp uint)
+0:30          Construct uint (temp uint)
+0:?             textureFetch (temp 4-component vector of uint)
+0:30              'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer)
+0:30              c1: direct index for structure (layout(offset=0 ) uniform int)
+0:30                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:30                Constant:
+0:30                  0 (const uint)
+0:34      move second child to first child (temp 4-component vector of float)
+0:34        Color: direct index for structure (temp 4-component vector of float)
+0:34          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
+0:34          Constant:
+0:34            0 (const int)
+0:34        Constant:
+0:34          1.000000
+0:34          1.000000
+0:34          1.000000
+0:34          1.000000
+0:35      move second child to first child (temp float)
+0:35        Depth: direct index for structure (temp float)
+0:35          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
+0:35          Constant:
+0:35            1 (const int)
+0:35        Constant:
+0:35          1.000000
+0:37      Sequence
+0:37        Sequence
+0:37          move second child to first child (temp 4-component vector of float)
+0:?             'Color' (layout(location=0 ) out 4-component vector of float)
+0:37            Color: direct index for structure (temp 4-component vector of float)
+0:37              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
+0:37              Constant:
+0:37                0 (const int)
+0:37          move second child to first child (temp float)
+0:?             'Depth' (out float FragDepth)
+0:37            Depth: direct index for structure (temp float)
+0:37              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
+0:37              Constant:
+0:37                1 (const int)
+0:37        Branch: Return
+0:?   Linker Objects
+0:?     'g_tTexbfs_test' (layout(binding=0 r32f ) uniform samplerBuffer)
+0:?     'g_tTexbfs' (layout(r32f ) uniform samplerBuffer)
+0:?     'g_tTexbis' (layout(r32i ) uniform isamplerBuffer)
+0:?     'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer)
+0:?     'Color' (layout(location=0 ) out 4-component vector of float)
+0:?     'Depth' (out float FragDepth)
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 74
+
+                              Capability Shader
+                              Capability SampledBuffer
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 65 69
+                              ExecutionMode 4 OriginUpperLeft
+                              Name 4  "main"
+                              Name 8  "r00"
+                              Name 12  "g_tTexbfs"
+                              Name 18  "$Global"
+                              MemberName 18($Global) 0  "c1"
+                              MemberName 18($Global) 1  "c2"
+                              MemberName 18($Global) 2  "c3"
+                              MemberName 18($Global) 3  "c4"
+                              MemberName 18($Global) 4  "o1"
+                              MemberName 18($Global) 5  "o2"
+                              MemberName 18($Global) 6  "o3"
+                              MemberName 18($Global) 7  "o4"
+                              Name 20  ""
+                              Name 30  "r01"
+                              Name 34  "g_tTexbis"
+                              Name 43  "r02"
+                              Name 47  "g_tTexbus"
+                              Name 55  "PS_OUTPUT"
+                              MemberName 55(PS_OUTPUT) 0  "Color"
+                              MemberName 55(PS_OUTPUT) 1  "Depth"
+                              Name 57  "psout"
+                              Name 65  "Color"
+                              Name 69  "Depth"
+                              Name 73  "g_tTexbfs_test"
+                              Decorate 12(g_tTexbfs) DescriptorSet 0
+                              MemberDecorate 18($Global) 0 Offset 0
+                              MemberDecorate 18($Global) 1 Offset 8
+                              MemberDecorate 18($Global) 2 Offset 16
+                              MemberDecorate 18($Global) 3 Offset 32
+                              MemberDecorate 18($Global) 4 Offset 48
+                              MemberDecorate 18($Global) 5 Offset 56
+                              MemberDecorate 18($Global) 6 Offset 64
+                              MemberDecorate 18($Global) 7 Offset 80
+                              Decorate 18($Global) Block
+                              Decorate 20 DescriptorSet 0
+                              Decorate 34(g_tTexbis) DescriptorSet 0
+                              Decorate 47(g_tTexbus) DescriptorSet 0
+                              Decorate 65(Color) Location 0
+                              Decorate 69(Depth) BuiltIn FragDepth
+                              Decorate 73(g_tTexbfs_test) DescriptorSet 0
+                              Decorate 73(g_tTexbfs_test) Binding 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Function 6(float)
+               9:             TypeImage 6(float) Buffer sampled format:R32f
+              10:             TypeSampledImage 9
+              11:             TypePointer UniformConstant 10
+   12(g_tTexbfs):     11(ptr) Variable UniformConstant
+              14:             TypeInt 32 1
+              15:             TypeVector 14(int) 2
+              16:             TypeVector 14(int) 3
+              17:             TypeVector 14(int) 4
+     18($Global):             TypeStruct 14(int) 15(ivec2) 16(ivec3) 17(ivec4) 14(int) 15(ivec2) 16(ivec3) 17(ivec4)
+              19:             TypePointer Uniform 18($Global)
+              20:     19(ptr) Variable Uniform
+              21:     14(int) Constant 0
+              22:             TypePointer Uniform 14(int)
+              26:             TypeVector 6(float) 4
+              29:             TypePointer Function 14(int)
+              31:             TypeImage 14(int) Buffer sampled format:R32i
+              32:             TypeSampledImage 31
+              33:             TypePointer UniformConstant 32
+   34(g_tTexbis):     33(ptr) Variable UniformConstant
+              41:             TypeInt 32 0
+              42:             TypePointer Function 41(int)
+              44:             TypeImage 41(int) Buffer sampled format:R32ui
+              45:             TypeSampledImage 44
+              46:             TypePointer UniformConstant 45
+   47(g_tTexbus):     46(ptr) Variable UniformConstant
+              52:             TypeVector 41(int) 4
+   55(PS_OUTPUT):             TypeStruct 26(fvec4) 6(float)
+              56:             TypePointer Function 55(PS_OUTPUT)
+              58:    6(float) Constant 1065353216
+              59:   26(fvec4) ConstantComposite 58 58 58 58
+              60:             TypePointer Function 26(fvec4)
+              62:     14(int) Constant 1
+              64:             TypePointer Output 26(fvec4)
+       65(Color):     64(ptr) Variable Output
+              68:             TypePointer Output 6(float)
+       69(Depth):     68(ptr) Variable Output
+73(g_tTexbfs_test):     11(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+          8(r00):      7(ptr) Variable Function
+         30(r01):     29(ptr) Variable Function
+         43(r02):     42(ptr) Variable Function
+       57(psout):     56(ptr) Variable Function
+              13:          10 Load 12(g_tTexbfs)
+              23:     22(ptr) AccessChain 20 21
+              24:     14(int) Load 23
+              25:           9 Image 13
+              27:   26(fvec4) ImageFetch 25 24
+              28:    6(float) CompositeExtract 27 0
+                              Store 8(r00) 28
+              35:          32 Load 34(g_tTexbis)
+              36:     22(ptr) AccessChain 20 21
+              37:     14(int) Load 36
+              38:          31 Image 35
+              39:   17(ivec4) ImageFetch 38 37
+              40:     14(int) CompositeExtract 39 0
+                              Store 30(r01) 40
+              48:          45 Load 47(g_tTexbus)
+              49:     22(ptr) AccessChain 20 21
+              50:     14(int) Load 49
+              51:          44 Image 48
+              53:   52(ivec4) ImageFetch 51 50
+              54:     41(int) CompositeExtract 53 0
+                              Store 43(r02) 54
+              61:     60(ptr) AccessChain 57(psout) 21
+                              Store 61 59
+              63:      7(ptr) AccessChain 57(psout) 62
+                              Store 63 58
+              66:     60(ptr) AccessChain 57(psout) 21
+              67:   26(fvec4) Load 66
+                              Store 65(Color) 67
+              70:      7(ptr) AccessChain 57(psout) 62
+              71:    6(float) Load 70
+                              Store 69(Depth) 71
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out
index 6eaa6f7..069e05d 100644
--- a/Test/baseResults/hlsl.load.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out
@@ -5,7 +5,7 @@
 0:48  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:48    Function Parameters: 
 0:?     Sequence
-0:52      textureFetchOffset (global 4-component vector of float)
+0:52      textureFetchOffset (temp 4-component vector of float)
 0:52        'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:52        vector swizzle (temp int)
 0:52          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -26,7 +26,7 @@
 0:52          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:52          Constant:
 0:52            4 (const uint)
-0:53      textureFetchOffset (global 4-component vector of int)
+0:53      textureFetchOffset (temp 4-component vector of int)
 0:53        'g_tTex1di4' (uniform itexture1D)
 0:53        vector swizzle (temp int)
 0:53          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -47,7 +47,7 @@
 0:53          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:53          Constant:
 0:53            4 (const uint)
-0:54      textureFetchOffset (global 4-component vector of uint)
+0:54      textureFetchOffset (temp 4-component vector of uint)
 0:54        'g_tTex1du4' (uniform utexture1D)
 0:54        vector swizzle (temp int)
 0:54          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -68,7 +68,7 @@
 0:54          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:54          Constant:
 0:54            4 (const uint)
-0:57      textureFetchOffset (global 4-component vector of float)
+0:57      textureFetchOffset (temp 4-component vector of float)
 0:57        'g_tTex2df4' (uniform texture2D)
 0:57        vector swizzle (temp 2-component vector of int)
 0:57          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -91,7 +91,7 @@
 0:57          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:57          Constant:
 0:57            5 (const uint)
-0:58      textureFetchOffset (global 4-component vector of int)
+0:58      textureFetchOffset (temp 4-component vector of int)
 0:58        'g_tTex2di4' (uniform itexture2D)
 0:58        vector swizzle (temp 2-component vector of int)
 0:58          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -114,7 +114,7 @@
 0:58          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:58          Constant:
 0:58            5 (const uint)
-0:59      textureFetchOffset (global 4-component vector of uint)
+0:59      textureFetchOffset (temp 4-component vector of uint)
 0:59        'g_tTex2du4' (uniform utexture2D)
 0:59        vector swizzle (temp 2-component vector of int)
 0:59          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -137,7 +137,7 @@
 0:59          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:59          Constant:
 0:59            5 (const uint)
-0:62      textureFetchOffset (global 4-component vector of float)
+0:62      textureFetchOffset (temp 4-component vector of float)
 0:62        'g_tTex3df4' (uniform texture3D)
 0:62        vector swizzle (temp 3-component vector of int)
 0:62          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -162,7 +162,7 @@
 0:62          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:62          Constant:
 0:62            6 (const uint)
-0:63      textureFetchOffset (global 4-component vector of int)
+0:63      textureFetchOffset (temp 4-component vector of int)
 0:63        'g_tTex3di4' (uniform itexture3D)
 0:63        vector swizzle (temp 3-component vector of int)
 0:63          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -187,7 +187,7 @@
 0:63          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:63          Constant:
 0:63            6 (const uint)
-0:64      textureFetchOffset (global 4-component vector of uint)
+0:64      textureFetchOffset (temp 4-component vector of uint)
 0:64        'g_tTex3du4' (uniform utexture3D)
 0:64        vector swizzle (temp 3-component vector of int)
 0:64          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -281,7 +281,7 @@
 0:48  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:48    Function Parameters: 
 0:?     Sequence
-0:52      textureFetchOffset (global 4-component vector of float)
+0:52      textureFetchOffset (temp 4-component vector of float)
 0:52        'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:52        vector swizzle (temp int)
 0:52          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -302,7 +302,7 @@
 0:52          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:52          Constant:
 0:52            4 (const uint)
-0:53      textureFetchOffset (global 4-component vector of int)
+0:53      textureFetchOffset (temp 4-component vector of int)
 0:53        'g_tTex1di4' (uniform itexture1D)
 0:53        vector swizzle (temp int)
 0:53          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -323,7 +323,7 @@
 0:53          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:53          Constant:
 0:53            4 (const uint)
-0:54      textureFetchOffset (global 4-component vector of uint)
+0:54      textureFetchOffset (temp 4-component vector of uint)
 0:54        'g_tTex1du4' (uniform utexture1D)
 0:54        vector swizzle (temp int)
 0:54          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
@@ -344,7 +344,7 @@
 0:54          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:54          Constant:
 0:54            4 (const uint)
-0:57      textureFetchOffset (global 4-component vector of float)
+0:57      textureFetchOffset (temp 4-component vector of float)
 0:57        'g_tTex2df4' (uniform texture2D)
 0:57        vector swizzle (temp 2-component vector of int)
 0:57          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -367,7 +367,7 @@
 0:57          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:57          Constant:
 0:57            5 (const uint)
-0:58      textureFetchOffset (global 4-component vector of int)
+0:58      textureFetchOffset (temp 4-component vector of int)
 0:58        'g_tTex2di4' (uniform itexture2D)
 0:58        vector swizzle (temp 2-component vector of int)
 0:58          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -390,7 +390,7 @@
 0:58          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:58          Constant:
 0:58            5 (const uint)
-0:59      textureFetchOffset (global 4-component vector of uint)
+0:59      textureFetchOffset (temp 4-component vector of uint)
 0:59        'g_tTex2du4' (uniform utexture2D)
 0:59        vector swizzle (temp 2-component vector of int)
 0:59          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -413,7 +413,7 @@
 0:59          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:59          Constant:
 0:59            5 (const uint)
-0:62      textureFetchOffset (global 4-component vector of float)
+0:62      textureFetchOffset (temp 4-component vector of float)
 0:62        'g_tTex3df4' (uniform texture3D)
 0:62        vector swizzle (temp 3-component vector of int)
 0:62          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -438,7 +438,7 @@
 0:62          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:62          Constant:
 0:62            6 (const uint)
-0:63      textureFetchOffset (global 4-component vector of int)
+0:63      textureFetchOffset (temp 4-component vector of int)
 0:63        'g_tTex3di4' (uniform itexture3D)
 0:63        vector swizzle (temp 3-component vector of int)
 0:63          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -463,7 +463,7 @@
 0:63          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:63          Constant:
 0:63            6 (const uint)
-0:64      textureFetchOffset (global 4-component vector of uint)
+0:64      textureFetchOffset (temp 4-component vector of uint)
 0:64        'g_tTex3du4' (uniform utexture3D)
 0:64        vector swizzle (temp 3-component vector of int)
 0:64          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
index 776cd83..ed89ee8 100644
--- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
@@ -5,7 +5,7 @@
 0:48  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:48    Function Parameters: 
 0:?     Sequence
-0:52      textureFetchOffset (global 4-component vector of float)
+0:52      textureFetchOffset (temp 4-component vector of float)
 0:52        'g_tTex1df4a' (uniform texture1DArray)
 0:52        vector swizzle (temp 2-component vector of int)
 0:52          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -28,7 +28,7 @@
 0:52          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:52          Constant:
 0:52            4 (const uint)
-0:53      textureFetchOffset (global 4-component vector of int)
+0:53      textureFetchOffset (temp 4-component vector of int)
 0:53        'g_tTex1di4a' (uniform itexture1DArray)
 0:53        vector swizzle (temp 2-component vector of int)
 0:53          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -51,7 +51,7 @@
 0:53          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:53          Constant:
 0:53            4 (const uint)
-0:54      textureFetchOffset (global 4-component vector of uint)
+0:54      textureFetchOffset (temp 4-component vector of uint)
 0:54        'g_tTex1du4a' (uniform utexture1DArray)
 0:54        vector swizzle (temp 2-component vector of int)
 0:54          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -74,7 +74,7 @@
 0:54          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:54          Constant:
 0:54            4 (const uint)
-0:57      textureFetchOffset (global 4-component vector of float)
+0:57      textureFetchOffset (temp 4-component vector of float)
 0:57        'g_tTex2df4a' (uniform texture2DArray)
 0:57        vector swizzle (temp 3-component vector of int)
 0:57          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -99,7 +99,7 @@
 0:57          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:57          Constant:
 0:57            5 (const uint)
-0:58      textureFetchOffset (global 4-component vector of int)
+0:58      textureFetchOffset (temp 4-component vector of int)
 0:58        'g_tTex2di4a' (uniform itexture2DArray)
 0:58        vector swizzle (temp 3-component vector of int)
 0:58          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -124,7 +124,7 @@
 0:58          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:58          Constant:
 0:58            5 (const uint)
-0:59      textureFetchOffset (global 4-component vector of uint)
+0:59      textureFetchOffset (temp 4-component vector of uint)
 0:59        'g_tTex2du4a' (uniform utexture2DArray)
 0:59        vector swizzle (temp 3-component vector of int)
 0:59          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -218,7 +218,7 @@
 0:48  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:48    Function Parameters: 
 0:?     Sequence
-0:52      textureFetchOffset (global 4-component vector of float)
+0:52      textureFetchOffset (temp 4-component vector of float)
 0:52        'g_tTex1df4a' (uniform texture1DArray)
 0:52        vector swizzle (temp 2-component vector of int)
 0:52          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -241,7 +241,7 @@
 0:52          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:52          Constant:
 0:52            4 (const uint)
-0:53      textureFetchOffset (global 4-component vector of int)
+0:53      textureFetchOffset (temp 4-component vector of int)
 0:53        'g_tTex1di4a' (uniform itexture1DArray)
 0:53        vector swizzle (temp 2-component vector of int)
 0:53          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -264,7 +264,7 @@
 0:53          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:53          Constant:
 0:53            4 (const uint)
-0:54      textureFetchOffset (global 4-component vector of uint)
+0:54      textureFetchOffset (temp 4-component vector of uint)
 0:54        'g_tTex1du4a' (uniform utexture1DArray)
 0:54        vector swizzle (temp 2-component vector of int)
 0:54          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
@@ -287,7 +287,7 @@
 0:54          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:54          Constant:
 0:54            4 (const uint)
-0:57      textureFetchOffset (global 4-component vector of float)
+0:57      textureFetchOffset (temp 4-component vector of float)
 0:57        'g_tTex2df4a' (uniform texture2DArray)
 0:57        vector swizzle (temp 3-component vector of int)
 0:57          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -312,7 +312,7 @@
 0:57          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:57          Constant:
 0:57            5 (const uint)
-0:58      textureFetchOffset (global 4-component vector of int)
+0:58      textureFetchOffset (temp 4-component vector of int)
 0:58        'g_tTex2di4a' (uniform itexture2DArray)
 0:58        vector swizzle (temp 3-component vector of int)
 0:58          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
@@ -337,7 +337,7 @@
 0:58          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:58          Constant:
 0:58            5 (const uint)
-0:59      textureFetchOffset (global 4-component vector of uint)
+0:59      textureFetchOffset (temp 4-component vector of uint)
 0:59        'g_tTex2du4a' (uniform utexture2DArray)
 0:59        vector swizzle (temp 3-component vector of int)
 0:59          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
diff --git a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
index 78b4804..7b26372 100644
--- a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
@@ -5,19 +5,19 @@
 0:22  Function Definition: main( (temp structure{temp 4-component vector of float Color})
 0:22    Function Parameters: 
 0:?     Sequence
-0:25      imageLoad (global 4-component vector of float)
+0:25      imageLoad (temp 4-component vector of float)
 0:25        'g_tBuffF' (layout(rgba32f ) uniform imageBuffer)
 0:25        c1: direct index for structure (layout(offset=0 ) uniform int)
 0:25          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:25          Constant:
 0:25            0 (const uint)
-0:26      imageLoad (global 4-component vector of uint)
+0:26      imageLoad (temp 4-component vector of uint)
 0:26        'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer)
 0:26        c1: direct index for structure (layout(offset=0 ) uniform int)
 0:26          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:26          Constant:
 0:26            0 (const uint)
-0:27      imageLoad (global 4-component vector of int)
+0:27      imageLoad (temp 4-component vector of int)
 0:27        'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer)
 0:27        c1: direct index for structure (layout(offset=0 ) uniform int)
 0:27          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -59,19 +59,19 @@
 0:22  Function Definition: main( (temp structure{temp 4-component vector of float Color})
 0:22    Function Parameters: 
 0:?     Sequence
-0:25      imageLoad (global 4-component vector of float)
+0:25      imageLoad (temp 4-component vector of float)
 0:25        'g_tBuffF' (layout(rgba32f ) uniform imageBuffer)
 0:25        c1: direct index for structure (layout(offset=0 ) uniform int)
 0:25          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:25          Constant:
 0:25            0 (const uint)
-0:26      imageLoad (global 4-component vector of uint)
+0:26      imageLoad (temp 4-component vector of uint)
 0:26        'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer)
 0:26        c1: direct index for structure (layout(offset=0 ) uniform int)
 0:26          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:26          Constant:
 0:26            0 (const uint)
-0:27      imageLoad (global 4-component vector of int)
+0:27      imageLoad (temp 4-component vector of int)
 0:27        'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer)
 0:27        c1: direct index for structure (layout(offset=0 ) uniform int)
 0:27          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
diff --git a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
index 353f769..8ac94d0 100644
--- a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
@@ -5,37 +5,37 @@
 0:40  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:40    Function Parameters: 
 0:?     Sequence
-0:44      imageLoad (global 4-component vector of float)
+0:44      imageLoad (temp 4-component vector of float)
 0:44        'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray)
 0:44        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:44          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:44          Constant:
 0:44            1 (const uint)
-0:45      imageLoad (global 4-component vector of int)
+0:45      imageLoad (temp 4-component vector of int)
 0:45        'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray)
 0:45        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:45          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:45          Constant:
 0:45            1 (const uint)
-0:46      imageLoad (global 4-component vector of uint)
+0:46      imageLoad (temp 4-component vector of uint)
 0:46        'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray)
 0:46        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:46          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:46          Constant:
 0:46            1 (const uint)
-0:49      imageLoad (global 4-component vector of float)
+0:49      imageLoad (temp 4-component vector of float)
 0:49        'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray)
 0:49        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:49          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:49          Constant:
 0:49            2 (const uint)
-0:50      imageLoad (global 4-component vector of int)
+0:50      imageLoad (temp 4-component vector of int)
 0:50        'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray)
 0:50        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:50          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:50          Constant:
 0:50            2 (const uint)
-0:51      imageLoad (global 4-component vector of uint)
+0:51      imageLoad (temp 4-component vector of uint)
 0:51        'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray)
 0:51        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:51          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -104,37 +104,37 @@
 0:40  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:40    Function Parameters: 
 0:?     Sequence
-0:44      imageLoad (global 4-component vector of float)
+0:44      imageLoad (temp 4-component vector of float)
 0:44        'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray)
 0:44        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:44          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:44          Constant:
 0:44            1 (const uint)
-0:45      imageLoad (global 4-component vector of int)
+0:45      imageLoad (temp 4-component vector of int)
 0:45        'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray)
 0:45        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:45          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:45          Constant:
 0:45            1 (const uint)
-0:46      imageLoad (global 4-component vector of uint)
+0:46      imageLoad (temp 4-component vector of uint)
 0:46        'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray)
 0:46        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:46          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:46          Constant:
 0:46            1 (const uint)
-0:49      imageLoad (global 4-component vector of float)
+0:49      imageLoad (temp 4-component vector of float)
 0:49        'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray)
 0:49        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:49          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:49          Constant:
 0:49            2 (const uint)
-0:50      imageLoad (global 4-component vector of int)
+0:50      imageLoad (temp 4-component vector of int)
 0:50        'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray)
 0:50        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:50          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:50          Constant:
 0:50            2 (const uint)
-0:51      imageLoad (global 4-component vector of uint)
+0:51      imageLoad (temp 4-component vector of uint)
 0:51        'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray)
 0:51        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:51          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
diff --git a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
index 60c5400..ca59015 100644
--- a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
+++ b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
@@ -5,55 +5,55 @@
 0:40  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:40    Function Parameters: 
 0:?     Sequence
-0:44      imageLoad (global 4-component vector of float)
+0:44      imageLoad (temp 4-component vector of float)
 0:44        'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
 0:44        c1: direct index for structure (layout(offset=0 ) uniform int)
 0:44          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:44          Constant:
 0:44            0 (const uint)
-0:45      imageLoad (global 4-component vector of int)
+0:45      imageLoad (temp 4-component vector of int)
 0:45        'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
 0:45        c1: direct index for structure (layout(offset=0 ) uniform int)
 0:45          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:45          Constant:
 0:45            0 (const uint)
-0:46      imageLoad (global 4-component vector of uint)
+0:46      imageLoad (temp 4-component vector of uint)
 0:46        'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
 0:46        c1: direct index for structure (layout(offset=0 ) uniform int)
 0:46          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:46          Constant:
 0:46            0 (const uint)
-0:49      imageLoad (global 4-component vector of float)
+0:49      imageLoad (temp 4-component vector of float)
 0:49        'g_tTex2df4' (layout(rgba32f ) uniform image2D)
 0:49        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:49          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:49          Constant:
 0:49            1 (const uint)
-0:50      imageLoad (global 4-component vector of int)
+0:50      imageLoad (temp 4-component vector of int)
 0:50        'g_tTex2di4' (layout(rgba32i ) uniform iimage2D)
 0:50        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:50          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:50          Constant:
 0:50            1 (const uint)
-0:51      imageLoad (global 4-component vector of uint)
+0:51      imageLoad (temp 4-component vector of uint)
 0:51        'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D)
 0:51        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:51          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:51          Constant:
 0:51            1 (const uint)
-0:54      imageLoad (global 4-component vector of float)
+0:54      imageLoad (temp 4-component vector of float)
 0:54        'g_tTex3df4' (layout(rgba32f ) uniform image3D)
 0:54        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:54          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:54          Constant:
 0:54            2 (const uint)
-0:55      imageLoad (global 4-component vector of int)
+0:55      imageLoad (temp 4-component vector of int)
 0:55        'g_tTex3di4' (layout(rgba32i ) uniform iimage3D)
 0:55        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:55          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:55          Constant:
 0:55            2 (const uint)
-0:56      imageLoad (global 4-component vector of uint)
+0:56      imageLoad (temp 4-component vector of uint)
 0:56        'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D)
 0:56        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:56          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
@@ -122,55 +122,55 @@
 0:40  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
 0:40    Function Parameters: 
 0:?     Sequence
-0:44      imageLoad (global 4-component vector of float)
+0:44      imageLoad (temp 4-component vector of float)
 0:44        'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
 0:44        c1: direct index for structure (layout(offset=0 ) uniform int)
 0:44          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:44          Constant:
 0:44            0 (const uint)
-0:45      imageLoad (global 4-component vector of int)
+0:45      imageLoad (temp 4-component vector of int)
 0:45        'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
 0:45        c1: direct index for structure (layout(offset=0 ) uniform int)
 0:45          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:45          Constant:
 0:45            0 (const uint)
-0:46      imageLoad (global 4-component vector of uint)
+0:46      imageLoad (temp 4-component vector of uint)
 0:46        'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
 0:46        c1: direct index for structure (layout(offset=0 ) uniform int)
 0:46          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:46          Constant:
 0:46            0 (const uint)
-0:49      imageLoad (global 4-component vector of float)
+0:49      imageLoad (temp 4-component vector of float)
 0:49        'g_tTex2df4' (layout(rgba32f ) uniform image2D)
 0:49        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:49          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:49          Constant:
 0:49            1 (const uint)
-0:50      imageLoad (global 4-component vector of int)
+0:50      imageLoad (temp 4-component vector of int)
 0:50        'g_tTex2di4' (layout(rgba32i ) uniform iimage2D)
 0:50        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:50          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:50          Constant:
 0:50            1 (const uint)
-0:51      imageLoad (global 4-component vector of uint)
+0:51      imageLoad (temp 4-component vector of uint)
 0:51        'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D)
 0:51        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
 0:51          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:51          Constant:
 0:51            1 (const uint)
-0:54      imageLoad (global 4-component vector of float)
+0:54      imageLoad (temp 4-component vector of float)
 0:54        'g_tTex3df4' (layout(rgba32f ) uniform image3D)
 0:54        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:54          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:54          Constant:
 0:54            2 (const uint)
-0:55      imageLoad (global 4-component vector of int)
+0:55      imageLoad (temp 4-component vector of int)
 0:55        'g_tTex3di4' (layout(rgba32i ) uniform iimage3D)
 0:55        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:55          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 0:55          Constant:
 0:55            2 (const uint)
-0:56      imageLoad (global 4-component vector of uint)
+0:56      imageLoad (temp 4-component vector of uint)
 0:56        'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D)
 0:56        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
 0:56          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
diff --git a/Test/baseResults/hlsl.multiEntry.vert.out b/Test/baseResults/hlsl.multiEntry.vert.out
index cec7898..8f8c42a 100755
--- a/Test/baseResults/hlsl.multiEntry.vert.out
+++ b/Test/baseResults/hlsl.multiEntry.vert.out
@@ -6,8 +6,8 @@
 0:4      'Index' (in uint)
 0:?     Sequence
 0:5      Branch: Return with expression
-0:5        textureFetch (global 4-component vector of float)
-0:5          'Position' (uniform samplerBuffer)
+0:5        textureFetch (temp 4-component vector of float)
+0:5          'Position' (layout(rgba32f ) uniform samplerBuffer)
 0:5          Convert uint to int (temp int)
 0:5            'Index' (in uint)
 0:9  Function Definition: RealEntrypoint(u1; (temp 4-component vector of float Position)
@@ -21,7 +21,7 @@
 0:10            'Index' (in uint VertexIndex)
 0:10        Branch: Return
 0:?   Linker Objects
-0:?     'Position' (uniform samplerBuffer)
+0:?     'Position' (layout(rgba32f ) uniform samplerBuffer)
 0:?     '@entryPointOutput' (out 4-component vector of float Position)
 0:?     'Index' (in uint VertexIndex)
 
@@ -36,8 +36,8 @@
 0:4      'Index' (in uint)
 0:?     Sequence
 0:5      Branch: Return with expression
-0:5        textureFetch (global 4-component vector of float)
-0:5          'Position' (uniform samplerBuffer)
+0:5        textureFetch (temp 4-component vector of float)
+0:5          'Position' (layout(rgba32f ) uniform samplerBuffer)
 0:5          Convert uint to int (temp int)
 0:5            'Index' (in uint)
 0:9  Function Definition: RealEntrypoint(u1; (temp 4-component vector of float Position)
@@ -51,7 +51,7 @@
 0:10            'Index' (in uint VertexIndex)
 0:10        Branch: Return
 0:?   Linker Objects
-0:?     'Position' (uniform samplerBuffer)
+0:?     'Position' (layout(rgba32f ) uniform samplerBuffer)
 0:?     '@entryPointOutput' (out 4-component vector of float Position)
 0:?     'Index' (in uint VertexIndex)
 
@@ -81,7 +81,7 @@
                8:             TypeFloat 32
                9:             TypeVector 8(float) 4
               10:             TypeFunction 9(fvec4) 7(ptr)
-              14:             TypeImage 8(float) Buffer sampled format:Unknown
+              14:             TypeImage 8(float) Buffer sampled format:Rgba32f
               15:             TypeSampledImage 14
               16:             TypePointer UniformConstant 15
     17(Position):     16(ptr) Variable UniformConstant
diff --git a/Test/baseResults/hlsl.rw.bracket.frag.out b/Test/baseResults/hlsl.rw.bracket.frag.out
new file mode 100644
index 0000000..c6e3c89
--- /dev/null
+++ b/Test/baseResults/hlsl.rw.bracket.frag.out
@@ -0,0 +1,2651 @@
+hlsl.rw.bracket.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:42  Function Definition: Fn1(vi4; (temp 4-component vector of int)
+0:42    Function Parameters: 
+0:42      'x' (in 4-component vector of int)
+0:?     Sequence
+0:42      Branch: Return with expression
+0:42        'x' (in 4-component vector of int)
+0:43  Function Definition: Fn1(vu4; (temp 4-component vector of uint)
+0:43    Function Parameters: 
+0:43      'x' (in 4-component vector of uint)
+0:?     Sequence
+0:43      Branch: Return with expression
+0:43        'x' (in 4-component vector of uint)
+0:44  Function Definition: Fn1(vf4; (temp 4-component vector of float)
+0:44    Function Parameters: 
+0:44      'x' (in 4-component vector of float)
+0:?     Sequence
+0:44      Branch: Return with expression
+0:44        'x' (in 4-component vector of float)
+0:46  Function Definition: Fn2(vi4; (temp void)
+0:46    Function Parameters: 
+0:46      'x' (out 4-component vector of int)
+0:?     Sequence
+0:46      move second child to first child (temp 4-component vector of int)
+0:46        'x' (out 4-component vector of int)
+0:46        Constant:
+0:46          0 (const int)
+0:46          0 (const int)
+0:46          0 (const int)
+0:46          0 (const int)
+0:47  Function Definition: Fn2(vu4; (temp void)
+0:47    Function Parameters: 
+0:47      'x' (out 4-component vector of uint)
+0:?     Sequence
+0:47      move second child to first child (temp 4-component vector of uint)
+0:47        'x' (out 4-component vector of uint)
+0:47        Constant:
+0:47          0 (const uint)
+0:47          0 (const uint)
+0:47          0 (const uint)
+0:47          0 (const uint)
+0:48  Function Definition: Fn2(vf4; (temp void)
+0:48    Function Parameters: 
+0:48      'x' (out 4-component vector of float)
+0:?     Sequence
+0:48      move second child to first child (temp 4-component vector of float)
+0:48        'x' (out 4-component vector of float)
+0:48        Constant:
+0:48          0.000000
+0:48          0.000000
+0:48          0.000000
+0:48          0.000000
+0:50  Function Definition: SomeValue( (temp 4-component vector of float)
+0:50    Function Parameters: 
+0:?     Sequence
+0:50      Branch: Return with expression
+0:50        Convert int to float (temp 4-component vector of float)
+0:50          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:50            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:50            Constant:
+0:50              3 (const uint)
+0:53  Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:53    Function Parameters: 
+0:?     Sequence
+0:57      imageLoad (temp 4-component vector of float)
+0:57        'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:57        c1: direct index for structure (layout(offset=0 ) uniform int)
+0:57          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:57          Constant:
+0:57            0 (const uint)
+0:59      Sequence
+0:59        move second child to first child (temp 4-component vector of float)
+0:59          'r00' (temp 4-component vector of float)
+0:59          imageLoad (temp 4-component vector of float)
+0:59            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:59            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:59              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:59              Constant:
+0:59                0 (const uint)
+0:60      Sequence
+0:60        move second child to first child (temp 4-component vector of int)
+0:60          'r01' (temp 4-component vector of int)
+0:60          imageLoad (temp 4-component vector of int)
+0:60            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:60            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:60              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:60              Constant:
+0:60                0 (const uint)
+0:61      Sequence
+0:61        move second child to first child (temp 4-component vector of uint)
+0:61          'r02' (temp 4-component vector of uint)
+0:61          imageLoad (temp 4-component vector of uint)
+0:61            'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:61            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:61              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:61              Constant:
+0:61                0 (const uint)
+0:64      Sequence
+0:64        move second child to first child (temp 4-component vector of float)
+0:64          'r10' (temp 4-component vector of float)
+0:64          imageLoad (temp 4-component vector of float)
+0:64            'g_tTex2df4' (layout(rgba32f ) uniform image2D)
+0:64            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:64              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:64              Constant:
+0:64                1 (const uint)
+0:65      Sequence
+0:65        move second child to first child (temp 4-component vector of int)
+0:65          'r11' (temp 4-component vector of int)
+0:65          imageLoad (temp 4-component vector of int)
+0:65            'g_tTex2di4' (layout(rgba32i ) uniform iimage2D)
+0:65            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:65              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:65              Constant:
+0:65                1 (const uint)
+0:66      Sequence
+0:66        move second child to first child (temp 4-component vector of uint)
+0:66          'r12' (temp 4-component vector of uint)
+0:66          imageLoad (temp 4-component vector of uint)
+0:66            'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D)
+0:66            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:66              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:66              Constant:
+0:66                1 (const uint)
+0:69      Sequence
+0:69        move second child to first child (temp 4-component vector of float)
+0:69          'r20' (temp 4-component vector of float)
+0:69          imageLoad (temp 4-component vector of float)
+0:69            'g_tTex3df4' (layout(rgba32f ) uniform image3D)
+0:69            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:69              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:69              Constant:
+0:69                2 (const uint)
+0:70      Sequence
+0:70        move second child to first child (temp 4-component vector of int)
+0:70          'r21' (temp 4-component vector of int)
+0:70          imageLoad (temp 4-component vector of int)
+0:70            'g_tTex3di4' (layout(rgba32i ) uniform iimage3D)
+0:70            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:70              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:70              Constant:
+0:70                2 (const uint)
+0:71      Sequence
+0:71        move second child to first child (temp 4-component vector of uint)
+0:71          'r22' (temp 4-component vector of uint)
+0:71          imageLoad (temp 4-component vector of uint)
+0:71            'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D)
+0:71            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:71              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:71              Constant:
+0:71                2 (const uint)
+0:73      Sequence
+0:73        move second child to first child (temp 4-component vector of float)
+0:73          'lf4' (temp 4-component vector of float)
+0:73          uf4: direct index for structure (layout(offset=96 ) uniform 4-component vector of float)
+0:73            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:73            Constant:
+0:73              8 (const uint)
+0:77      Sequence
+0:77        move second child to first child (temp 4-component vector of float)
+0:77          'storeTemp' (temp 4-component vector of float)
+0:77          Function Call: SomeValue( (temp 4-component vector of float)
+0:77        imageStore (temp void)
+0:77          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:77          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:77            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:77            Constant:
+0:77              0 (const uint)
+0:77          'storeTemp' (temp 4-component vector of float)
+0:77        'storeTemp' (temp 4-component vector of float)
+0:78      Sequence
+0:78        imageStore (temp void)
+0:78          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:78          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:78            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:78            Constant:
+0:78              0 (const uint)
+0:78          'lf4' (temp 4-component vector of float)
+0:78        'lf4' (temp 4-component vector of float)
+0:79      Sequence
+0:79        move second child to first child (temp 4-component vector of int)
+0:79          'storeTemp' (temp 4-component vector of int)
+0:?           Constant:
+0:?             2 (const int)
+0:?             2 (const int)
+0:?             3 (const int)
+0:?             4 (const int)
+0:79        imageStore (temp void)
+0:79          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:79          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:79            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:79            Constant:
+0:79              0 (const uint)
+0:79          'storeTemp' (temp 4-component vector of int)
+0:79        'storeTemp' (temp 4-component vector of int)
+0:80      Sequence
+0:80        move second child to first child (temp 4-component vector of uint)
+0:80          'storeTemp' (temp 4-component vector of uint)
+0:?           Constant:
+0:?             3 (const uint)
+0:?             2 (const uint)
+0:?             3 (const uint)
+0:?             4 (const uint)
+0:80        imageStore (temp void)
+0:80          'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:80          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:80            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:80            Constant:
+0:80              0 (const uint)
+0:80          'storeTemp' (temp 4-component vector of uint)
+0:80        'storeTemp' (temp 4-component vector of uint)
+0:83      Sequence
+0:83        move second child to first child (temp 4-component vector of float)
+0:83          'val1' (temp 4-component vector of float)
+0:83          Sequence
+0:83            move second child to first child (temp int)
+0:83              'coordTemp' (temp int)
+0:83              c1: direct index for structure (layout(offset=0 ) uniform int)
+0:83                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:83                Constant:
+0:83                  0 (const uint)
+0:83            move second child to first child (temp 4-component vector of float)
+0:83              'storeTemp' (temp 4-component vector of float)
+0:83              imageLoad (temp 4-component vector of float)
+0:83                'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:83                'coordTemp' (temp int)
+0:83            vector scale second child into first child (temp 4-component vector of float)
+0:83              'storeTemp' (temp 4-component vector of float)
+0:83              Constant:
+0:83                2.000000
+0:83            imageStore (temp void)
+0:83              'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:83              'coordTemp' (temp int)
+0:83              'storeTemp' (temp 4-component vector of float)
+0:83            'storeTemp' (temp 4-component vector of float)
+0:84      Sequence
+0:84        move second child to first child (temp int)
+0:84          'coordTemp' (temp int)
+0:84          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:84            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:84            Constant:
+0:84              0 (const uint)
+0:84        move second child to first child (temp 4-component vector of float)
+0:84          'storeTemp' (temp 4-component vector of float)
+0:84          imageLoad (temp 4-component vector of float)
+0:84            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:84            'coordTemp' (temp int)
+0:84        subtract second child into first child (temp 4-component vector of float)
+0:84          'storeTemp' (temp 4-component vector of float)
+0:84          Constant:
+0:84            3.000000
+0:84        imageStore (temp void)
+0:84          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:84          'coordTemp' (temp int)
+0:84          'storeTemp' (temp 4-component vector of float)
+0:84        'storeTemp' (temp 4-component vector of float)
+0:85      Sequence
+0:85        move second child to first child (temp int)
+0:85          'coordTemp' (temp int)
+0:85          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:85            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:85            Constant:
+0:85              0 (const uint)
+0:85        move second child to first child (temp 4-component vector of float)
+0:85          'storeTemp' (temp 4-component vector of float)
+0:85          imageLoad (temp 4-component vector of float)
+0:85            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:85            'coordTemp' (temp int)
+0:85        add second child into first child (temp 4-component vector of float)
+0:85          'storeTemp' (temp 4-component vector of float)
+0:85          Constant:
+0:85            4.000000
+0:85        imageStore (temp void)
+0:85          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:85          'coordTemp' (temp int)
+0:85          'storeTemp' (temp 4-component vector of float)
+0:85        'storeTemp' (temp 4-component vector of float)
+0:87      Sequence
+0:87        move second child to first child (temp int)
+0:87          'coordTemp' (temp int)
+0:87          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:87            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:87            Constant:
+0:87              0 (const uint)
+0:87        move second child to first child (temp 4-component vector of int)
+0:87          'storeTemp' (temp 4-component vector of int)
+0:87          imageLoad (temp 4-component vector of int)
+0:87            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:87            'coordTemp' (temp int)
+0:87        divide second child into first child (temp 4-component vector of int)
+0:87          'storeTemp' (temp 4-component vector of int)
+0:87          Constant:
+0:87            2 (const int)
+0:87        imageStore (temp void)
+0:87          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:87          'coordTemp' (temp int)
+0:87          'storeTemp' (temp 4-component vector of int)
+0:87        'storeTemp' (temp 4-component vector of int)
+0:88      Sequence
+0:88        move second child to first child (temp int)
+0:88          'coordTemp' (temp int)
+0:88          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:88            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:88            Constant:
+0:88              0 (const uint)
+0:88        move second child to first child (temp 4-component vector of int)
+0:88          'storeTemp' (temp 4-component vector of int)
+0:88          imageLoad (temp 4-component vector of int)
+0:88            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:88            'coordTemp' (temp int)
+0:88        mod second child into first child (temp 4-component vector of int)
+0:88          'storeTemp' (temp 4-component vector of int)
+0:88          Constant:
+0:88            2 (const int)
+0:88        imageStore (temp void)
+0:88          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:88          'coordTemp' (temp int)
+0:88          'storeTemp' (temp 4-component vector of int)
+0:88        'storeTemp' (temp 4-component vector of int)
+0:89      Sequence
+0:89        move second child to first child (temp int)
+0:89          'coordTemp' (temp int)
+0:89          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:89            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:89            Constant:
+0:89              0 (const uint)
+0:89        move second child to first child (temp 4-component vector of int)
+0:89          'storeTemp' (temp 4-component vector of int)
+0:89          imageLoad (temp 4-component vector of int)
+0:89            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:89            'coordTemp' (temp int)
+0:89        and second child into first child (temp 4-component vector of int)
+0:89          'storeTemp' (temp 4-component vector of int)
+0:89          Constant:
+0:89            65535 (const int)
+0:89        imageStore (temp void)
+0:89          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:89          'coordTemp' (temp int)
+0:89          'storeTemp' (temp 4-component vector of int)
+0:89        'storeTemp' (temp 4-component vector of int)
+0:90      Sequence
+0:90        move second child to first child (temp int)
+0:90          'coordTemp' (temp int)
+0:90          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:90            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:90            Constant:
+0:90              0 (const uint)
+0:90        move second child to first child (temp 4-component vector of int)
+0:90          'storeTemp' (temp 4-component vector of int)
+0:90          imageLoad (temp 4-component vector of int)
+0:90            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:90            'coordTemp' (temp int)
+0:90        or second child into first child (temp 4-component vector of int)
+0:90          'storeTemp' (temp 4-component vector of int)
+0:90          Constant:
+0:90            61680 (const int)
+0:90        imageStore (temp void)
+0:90          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:90          'coordTemp' (temp int)
+0:90          'storeTemp' (temp 4-component vector of int)
+0:90        'storeTemp' (temp 4-component vector of int)
+0:91      Sequence
+0:91        move second child to first child (temp int)
+0:91          'coordTemp' (temp int)
+0:91          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:91            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:91            Constant:
+0:91              0 (const uint)
+0:91        move second child to first child (temp 4-component vector of int)
+0:91          'storeTemp' (temp 4-component vector of int)
+0:91          imageLoad (temp 4-component vector of int)
+0:91            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:91            'coordTemp' (temp int)
+0:91        left shift second child into first child (temp 4-component vector of int)
+0:91          'storeTemp' (temp 4-component vector of int)
+0:91          Constant:
+0:91            2 (const int)
+0:91        imageStore (temp void)
+0:91          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:91          'coordTemp' (temp int)
+0:91          'storeTemp' (temp 4-component vector of int)
+0:91        'storeTemp' (temp 4-component vector of int)
+0:92      Sequence
+0:92        move second child to first child (temp int)
+0:92          'coordTemp' (temp int)
+0:92          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:92            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:92            Constant:
+0:92              0 (const uint)
+0:92        move second child to first child (temp 4-component vector of int)
+0:92          'storeTemp' (temp 4-component vector of int)
+0:92          imageLoad (temp 4-component vector of int)
+0:92            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:92            'coordTemp' (temp int)
+0:92        right shift second child into first child (temp 4-component vector of int)
+0:92          'storeTemp' (temp 4-component vector of int)
+0:92          Constant:
+0:92            2 (const int)
+0:92        imageStore (temp void)
+0:92          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:92          'coordTemp' (temp int)
+0:92          'storeTemp' (temp 4-component vector of int)
+0:92        'storeTemp' (temp 4-component vector of int)
+0:95      Sequence
+0:95        move second child to first child (temp 4-component vector of float)
+0:95          'storeTemp' (temp 4-component vector of float)
+0:95          Function Call: SomeValue( (temp 4-component vector of float)
+0:95        imageStore (temp void)
+0:95          'g_tTex2df4' (layout(rgba32f ) uniform image2D)
+0:95          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:95            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:95            Constant:
+0:95              1 (const uint)
+0:95          'storeTemp' (temp 4-component vector of float)
+0:95        'storeTemp' (temp 4-component vector of float)
+0:96      Sequence
+0:96        imageStore (temp void)
+0:96          'g_tTex2df4' (layout(rgba32f ) uniform image2D)
+0:96          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:96            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:96            Constant:
+0:96              1 (const uint)
+0:96          'lf4' (temp 4-component vector of float)
+0:96        'lf4' (temp 4-component vector of float)
+0:97      Sequence
+0:97        move second child to first child (temp 4-component vector of int)
+0:97          'storeTemp' (temp 4-component vector of int)
+0:?           Constant:
+0:?             5 (const int)
+0:?             2 (const int)
+0:?             3 (const int)
+0:?             4 (const int)
+0:97        imageStore (temp void)
+0:97          'g_tTex2di4' (layout(rgba32i ) uniform iimage2D)
+0:97          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:97            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:97            Constant:
+0:97              1 (const uint)
+0:97          'storeTemp' (temp 4-component vector of int)
+0:97        'storeTemp' (temp 4-component vector of int)
+0:98      Sequence
+0:98        move second child to first child (temp 4-component vector of uint)
+0:98          'storeTemp' (temp 4-component vector of uint)
+0:?           Constant:
+0:?             6 (const uint)
+0:?             2 (const uint)
+0:?             3 (const uint)
+0:?             4 (const uint)
+0:98        imageStore (temp void)
+0:98          'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D)
+0:98          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:98            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:98            Constant:
+0:98              1 (const uint)
+0:98          'storeTemp' (temp 4-component vector of uint)
+0:98        'storeTemp' (temp 4-component vector of uint)
+0:101      Sequence
+0:101        move second child to first child (temp 4-component vector of float)
+0:101          'storeTemp' (temp 4-component vector of float)
+0:101          Function Call: SomeValue( (temp 4-component vector of float)
+0:101        imageStore (temp void)
+0:101          'g_tTex3df4' (layout(rgba32f ) uniform image3D)
+0:101          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:101            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:101            Constant:
+0:101              2 (const uint)
+0:101          'storeTemp' (temp 4-component vector of float)
+0:101        'storeTemp' (temp 4-component vector of float)
+0:102      Sequence
+0:102        imageStore (temp void)
+0:102          'g_tTex3df4' (layout(rgba32f ) uniform image3D)
+0:102          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:102            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:102            Constant:
+0:102              2 (const uint)
+0:102          'lf4' (temp 4-component vector of float)
+0:102        'lf4' (temp 4-component vector of float)
+0:103      Sequence
+0:103        move second child to first child (temp 4-component vector of int)
+0:103          'storeTemp' (temp 4-component vector of int)
+0:?           Constant:
+0:?             8 (const int)
+0:?             6 (const int)
+0:?             7 (const int)
+0:?             8 (const int)
+0:103        imageStore (temp void)
+0:103          'g_tTex3di4' (layout(rgba32i ) uniform iimage3D)
+0:103          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:103            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:103            Constant:
+0:103              2 (const uint)
+0:103          'storeTemp' (temp 4-component vector of int)
+0:103        'storeTemp' (temp 4-component vector of int)
+0:104      Sequence
+0:104        move second child to first child (temp 4-component vector of uint)
+0:104          'storeTemp' (temp 4-component vector of uint)
+0:?           Constant:
+0:?             9 (const uint)
+0:?             2 (const uint)
+0:?             3 (const uint)
+0:?             4 (const uint)
+0:104        imageStore (temp void)
+0:104          'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D)
+0:104          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:104            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:104            Constant:
+0:104              2 (const uint)
+0:104          'storeTemp' (temp 4-component vector of uint)
+0:104        'storeTemp' (temp 4-component vector of uint)
+0:107      Function Call: Fn1(vf4; (temp 4-component vector of float)
+0:107        imageLoad (temp 4-component vector of float)
+0:107          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:107          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:107            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:107            Constant:
+0:107              0 (const uint)
+0:108      Function Call: Fn1(vi4; (temp 4-component vector of int)
+0:108        imageLoad (temp 4-component vector of int)
+0:108          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:108          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:108            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:108            Constant:
+0:108              0 (const uint)
+0:109      Function Call: Fn1(vu4; (temp 4-component vector of uint)
+0:109        imageLoad (temp 4-component vector of uint)
+0:109          'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:109          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:109            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:109            Constant:
+0:109              0 (const uint)
+0:111      Comma (temp void)
+0:111        Function Call: Fn2(vf4; (temp void)
+0:111          'tempArg' (temp 4-component vector of float)
+0:111        Sequence
+0:111          imageStore (temp void)
+0:111            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:111            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:111              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:111              Constant:
+0:111                0 (const uint)
+0:111            'tempArg' (temp 4-component vector of float)
+0:111          'tempArg' (temp 4-component vector of float)
+0:112      Comma (temp void)
+0:112        Function Call: Fn2(vi4; (temp void)
+0:112          'tempArg' (temp 4-component vector of int)
+0:112        Sequence
+0:112          imageStore (temp void)
+0:112            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:112            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:112              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:112              Constant:
+0:112                0 (const uint)
+0:112            'tempArg' (temp 4-component vector of int)
+0:112          'tempArg' (temp 4-component vector of int)
+0:113      Comma (temp void)
+0:113        Function Call: Fn2(vu4; (temp void)
+0:113          'tempArg' (temp 4-component vector of uint)
+0:113        Sequence
+0:113          imageStore (temp void)
+0:113            'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:113            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:113              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:113              Constant:
+0:113                0 (const uint)
+0:113            'tempArg' (temp 4-component vector of uint)
+0:113          'tempArg' (temp 4-component vector of uint)
+0:117      Sequence
+0:117        move second child to first child (temp int)
+0:117          'coordTemp' (temp int)
+0:117          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:117            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:117            Constant:
+0:117              0 (const uint)
+0:117        move second child to first child (temp 4-component vector of float)
+0:117          'storeTemp' (temp 4-component vector of float)
+0:117          imageLoad (temp 4-component vector of float)
+0:117            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:117            'coordTemp' (temp int)
+0:117        Pre-Increment (temp 4-component vector of float)
+0:117          'storeTemp' (temp 4-component vector of float)
+0:117        imageStore (temp void)
+0:117          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:117          'coordTemp' (temp int)
+0:117          'storeTemp' (temp 4-component vector of float)
+0:117        'storeTemp' (temp 4-component vector of float)
+0:118      Sequence
+0:118        move second child to first child (temp int)
+0:118          'coordTemp' (temp int)
+0:118          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:118            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:118            Constant:
+0:118              0 (const uint)
+0:118        move second child to first child (temp 4-component vector of int)
+0:118          'storeTemp' (temp 4-component vector of int)
+0:118          imageLoad (temp 4-component vector of int)
+0:118            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:118            'coordTemp' (temp int)
+0:118        Pre-Increment (temp 4-component vector of int)
+0:118          'storeTemp' (temp 4-component vector of int)
+0:118        imageStore (temp void)
+0:118          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:118          'coordTemp' (temp int)
+0:118          'storeTemp' (temp 4-component vector of int)
+0:118        'storeTemp' (temp 4-component vector of int)
+0:119      Sequence
+0:119        move second child to first child (temp int)
+0:119          'coordTemp' (temp int)
+0:119          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:119            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:119            Constant:
+0:119              0 (const uint)
+0:119        move second child to first child (temp 4-component vector of uint)
+0:119          'storeTemp' (temp 4-component vector of uint)
+0:119          imageLoad (temp 4-component vector of uint)
+0:119            'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:119            'coordTemp' (temp int)
+0:119        Pre-Increment (temp 4-component vector of uint)
+0:119          'storeTemp' (temp 4-component vector of uint)
+0:119        imageStore (temp void)
+0:119          'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:119          'coordTemp' (temp int)
+0:119          'storeTemp' (temp 4-component vector of uint)
+0:119        'storeTemp' (temp 4-component vector of uint)
+0:121      Sequence
+0:121        move second child to first child (temp int)
+0:121          'coordTemp' (temp int)
+0:121          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:121            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:121            Constant:
+0:121              0 (const uint)
+0:121        move second child to first child (temp 4-component vector of float)
+0:121          'storeTemp' (temp 4-component vector of float)
+0:121          imageLoad (temp 4-component vector of float)
+0:121            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:121            'coordTemp' (temp int)
+0:121        Pre-Decrement (temp 4-component vector of float)
+0:121          'storeTemp' (temp 4-component vector of float)
+0:121        imageStore (temp void)
+0:121          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:121          'coordTemp' (temp int)
+0:121          'storeTemp' (temp 4-component vector of float)
+0:121        'storeTemp' (temp 4-component vector of float)
+0:122      Sequence
+0:122        move second child to first child (temp int)
+0:122          'coordTemp' (temp int)
+0:122          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:122            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:122            Constant:
+0:122              0 (const uint)
+0:122        move second child to first child (temp 4-component vector of int)
+0:122          'storeTemp' (temp 4-component vector of int)
+0:122          imageLoad (temp 4-component vector of int)
+0:122            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:122            'coordTemp' (temp int)
+0:122        Pre-Decrement (temp 4-component vector of int)
+0:122          'storeTemp' (temp 4-component vector of int)
+0:122        imageStore (temp void)
+0:122          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:122          'coordTemp' (temp int)
+0:122          'storeTemp' (temp 4-component vector of int)
+0:122        'storeTemp' (temp 4-component vector of int)
+0:123      Sequence
+0:123        move second child to first child (temp int)
+0:123          'coordTemp' (temp int)
+0:123          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:123            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:123            Constant:
+0:123              0 (const uint)
+0:123        move second child to first child (temp 4-component vector of uint)
+0:123          'storeTemp' (temp 4-component vector of uint)
+0:123          imageLoad (temp 4-component vector of uint)
+0:123            'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:123            'coordTemp' (temp int)
+0:123        Pre-Decrement (temp 4-component vector of uint)
+0:123          'storeTemp' (temp 4-component vector of uint)
+0:123        imageStore (temp void)
+0:123          'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:123          'coordTemp' (temp int)
+0:123          'storeTemp' (temp 4-component vector of uint)
+0:123        'storeTemp' (temp 4-component vector of uint)
+0:126      Sequence
+0:126        move second child to first child (temp int)
+0:126          'coordTemp' (temp int)
+0:126          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:126            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:126            Constant:
+0:126              0 (const uint)
+0:126        move second child to first child (temp 4-component vector of float)
+0:126          'storeTempPre' (temp 4-component vector of float)
+0:126          imageLoad (temp 4-component vector of float)
+0:126            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:126            'coordTemp' (temp int)
+0:126        move second child to first child (temp 4-component vector of float)
+0:126          'storeTempPost' (temp 4-component vector of float)
+0:126          'storeTempPre' (temp 4-component vector of float)
+0:126        Post-Increment (temp 4-component vector of float)
+0:126          'storeTempPost' (temp 4-component vector of float)
+0:126        imageStore (temp void)
+0:126          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:126          'coordTemp' (temp int)
+0:126          'storeTempPost' (temp 4-component vector of float)
+0:126        'storeTempPre' (temp 4-component vector of float)
+0:127      Sequence
+0:127        move second child to first child (temp int)
+0:127          'coordTemp' (temp int)
+0:127          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:127            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:127            Constant:
+0:127              0 (const uint)
+0:127        move second child to first child (temp 4-component vector of uint)
+0:127          'storeTempPre' (temp 4-component vector of uint)
+0:127          imageLoad (temp 4-component vector of uint)
+0:127            'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:127            'coordTemp' (temp int)
+0:127        move second child to first child (temp 4-component vector of uint)
+0:127          'storeTempPost' (temp 4-component vector of uint)
+0:127          'storeTempPre' (temp 4-component vector of uint)
+0:127        Post-Decrement (temp 4-component vector of uint)
+0:127          'storeTempPost' (temp 4-component vector of uint)
+0:127        imageStore (temp void)
+0:127          'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:127          'coordTemp' (temp int)
+0:127          'storeTempPost' (temp 4-component vector of uint)
+0:127        'storeTempPre' (temp 4-component vector of uint)
+0:128      Sequence
+0:128        move second child to first child (temp int)
+0:128          'coordTemp' (temp int)
+0:128          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:128            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:128            Constant:
+0:128              0 (const uint)
+0:128        move second child to first child (temp 4-component vector of int)
+0:128          'storeTempPre' (temp 4-component vector of int)
+0:128          imageLoad (temp 4-component vector of int)
+0:128            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:128            'coordTemp' (temp int)
+0:128        move second child to first child (temp 4-component vector of int)
+0:128          'storeTempPost' (temp 4-component vector of int)
+0:128          'storeTempPre' (temp 4-component vector of int)
+0:128        Post-Increment (temp 4-component vector of int)
+0:128          'storeTempPost' (temp 4-component vector of int)
+0:128        imageStore (temp void)
+0:128          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:128          'coordTemp' (temp int)
+0:128          'storeTempPost' (temp 4-component vector of int)
+0:128        'storeTempPre' (temp 4-component vector of int)
+0:130      Sequence
+0:130        move second child to first child (temp int)
+0:130          'coordTemp' (temp int)
+0:130          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:130            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:130            Constant:
+0:130              0 (const uint)
+0:130        move second child to first child (temp 4-component vector of float)
+0:130          'storeTempPre' (temp 4-component vector of float)
+0:130          imageLoad (temp 4-component vector of float)
+0:130            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:130            'coordTemp' (temp int)
+0:130        move second child to first child (temp 4-component vector of float)
+0:130          'storeTempPost' (temp 4-component vector of float)
+0:130          'storeTempPre' (temp 4-component vector of float)
+0:130        Post-Decrement (temp 4-component vector of float)
+0:130          'storeTempPost' (temp 4-component vector of float)
+0:130        imageStore (temp void)
+0:130          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:130          'coordTemp' (temp int)
+0:130          'storeTempPost' (temp 4-component vector of float)
+0:130        'storeTempPre' (temp 4-component vector of float)
+0:131      Sequence
+0:131        move second child to first child (temp int)
+0:131          'coordTemp' (temp int)
+0:131          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:131            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:131            Constant:
+0:131              0 (const uint)
+0:131        move second child to first child (temp 4-component vector of int)
+0:131          'storeTempPre' (temp 4-component vector of int)
+0:131          imageLoad (temp 4-component vector of int)
+0:131            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:131            'coordTemp' (temp int)
+0:131        move second child to first child (temp 4-component vector of int)
+0:131          'storeTempPost' (temp 4-component vector of int)
+0:131          'storeTempPre' (temp 4-component vector of int)
+0:131        Post-Increment (temp 4-component vector of int)
+0:131          'storeTempPost' (temp 4-component vector of int)
+0:131        imageStore (temp void)
+0:131          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:131          'coordTemp' (temp int)
+0:131          'storeTempPost' (temp 4-component vector of int)
+0:131        'storeTempPre' (temp 4-component vector of int)
+0:132      Sequence
+0:132        move second child to first child (temp int)
+0:132          'coordTemp' (temp int)
+0:132          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:132            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:132            Constant:
+0:132              0 (const uint)
+0:132        move second child to first child (temp 4-component vector of uint)
+0:132          'storeTempPre' (temp 4-component vector of uint)
+0:132          imageLoad (temp 4-component vector of uint)
+0:132            'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:132            'coordTemp' (temp int)
+0:132        move second child to first child (temp 4-component vector of uint)
+0:132          'storeTempPost' (temp 4-component vector of uint)
+0:132          'storeTempPre' (temp 4-component vector of uint)
+0:132        Post-Decrement (temp 4-component vector of uint)
+0:132          'storeTempPost' (temp 4-component vector of uint)
+0:132        imageStore (temp void)
+0:132          'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:132          'coordTemp' (temp int)
+0:132          'storeTempPost' (temp 4-component vector of uint)
+0:132        'storeTempPre' (temp 4-component vector of uint)
+0:135      Sequence
+0:135        move second child to first child (temp 4-component vector of float)
+0:135          'storeTemp' (temp 4-component vector of float)
+0:?           imageLoad (temp 4-component vector of float)
+0:135            'g_tTex2df4' (layout(rgba32f ) uniform image2D)
+0:?             Constant:
+0:?               2 (const int)
+0:?               3 (const int)
+0:135        imageStore (temp void)
+0:135          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:135          Constant:
+0:135            1 (const int)
+0:135          'storeTemp' (temp 4-component vector of float)
+0:135        'storeTemp' (temp 4-component vector of float)
+0:137      move second child to first child (temp 4-component vector of float)
+0:137        Color: direct index for structure (temp 4-component vector of float)
+0:137          'psout' (temp structure{temp 4-component vector of float Color})
+0:137          Constant:
+0:137            0 (const int)
+0:137        Constant:
+0:137          1.000000
+0:137          1.000000
+0:137          1.000000
+0:137          1.000000
+0:139      Sequence
+0:139        Sequence
+0:139          move second child to first child (temp 4-component vector of float)
+0:?             'Color' (layout(location=0 ) out 4-component vector of float)
+0:139            Color: direct index for structure (temp 4-component vector of float)
+0:139              'psout' (temp structure{temp 4-component vector of float Color})
+0:139              Constant:
+0:139                0 (const int)
+0:139        Branch: Return
+0:?   Linker Objects
+0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:?     'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:?     'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:?     'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:?     'g_tTex2df4' (layout(rgba32f ) uniform image2D)
+0:?     'g_tTex2di4' (layout(rgba32i ) uniform iimage2D)
+0:?     'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D)
+0:?     'g_tTex3df4' (layout(rgba32f ) uniform image3D)
+0:?     'g_tTex3di4' (layout(rgba32i ) uniform iimage3D)
+0:?     'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D)
+0:?     'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray)
+0:?     'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray)
+0:?     'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray)
+0:?     'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray)
+0:?     'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray)
+0:?     'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray)
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:?     'Color' (layout(location=0 ) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:42  Function Definition: Fn1(vi4; (temp 4-component vector of int)
+0:42    Function Parameters: 
+0:42      'x' (in 4-component vector of int)
+0:?     Sequence
+0:42      Branch: Return with expression
+0:42        'x' (in 4-component vector of int)
+0:43  Function Definition: Fn1(vu4; (temp 4-component vector of uint)
+0:43    Function Parameters: 
+0:43      'x' (in 4-component vector of uint)
+0:?     Sequence
+0:43      Branch: Return with expression
+0:43        'x' (in 4-component vector of uint)
+0:44  Function Definition: Fn1(vf4; (temp 4-component vector of float)
+0:44    Function Parameters: 
+0:44      'x' (in 4-component vector of float)
+0:?     Sequence
+0:44      Branch: Return with expression
+0:44        'x' (in 4-component vector of float)
+0:46  Function Definition: Fn2(vi4; (temp void)
+0:46    Function Parameters: 
+0:46      'x' (out 4-component vector of int)
+0:?     Sequence
+0:46      move second child to first child (temp 4-component vector of int)
+0:46        'x' (out 4-component vector of int)
+0:46        Constant:
+0:46          0 (const int)
+0:46          0 (const int)
+0:46          0 (const int)
+0:46          0 (const int)
+0:47  Function Definition: Fn2(vu4; (temp void)
+0:47    Function Parameters: 
+0:47      'x' (out 4-component vector of uint)
+0:?     Sequence
+0:47      move second child to first child (temp 4-component vector of uint)
+0:47        'x' (out 4-component vector of uint)
+0:47        Constant:
+0:47          0 (const uint)
+0:47          0 (const uint)
+0:47          0 (const uint)
+0:47          0 (const uint)
+0:48  Function Definition: Fn2(vf4; (temp void)
+0:48    Function Parameters: 
+0:48      'x' (out 4-component vector of float)
+0:?     Sequence
+0:48      move second child to first child (temp 4-component vector of float)
+0:48        'x' (out 4-component vector of float)
+0:48        Constant:
+0:48          0.000000
+0:48          0.000000
+0:48          0.000000
+0:48          0.000000
+0:50  Function Definition: SomeValue( (temp 4-component vector of float)
+0:50    Function Parameters: 
+0:?     Sequence
+0:50      Branch: Return with expression
+0:50        Convert int to float (temp 4-component vector of float)
+0:50          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:50            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:50            Constant:
+0:50              3 (const uint)
+0:53  Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:53    Function Parameters: 
+0:?     Sequence
+0:57      imageLoad (temp 4-component vector of float)
+0:57        'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:57        c1: direct index for structure (layout(offset=0 ) uniform int)
+0:57          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:57          Constant:
+0:57            0 (const uint)
+0:59      Sequence
+0:59        move second child to first child (temp 4-component vector of float)
+0:59          'r00' (temp 4-component vector of float)
+0:59          imageLoad (temp 4-component vector of float)
+0:59            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:59            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:59              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:59              Constant:
+0:59                0 (const uint)
+0:60      Sequence
+0:60        move second child to first child (temp 4-component vector of int)
+0:60          'r01' (temp 4-component vector of int)
+0:60          imageLoad (temp 4-component vector of int)
+0:60            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:60            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:60              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:60              Constant:
+0:60                0 (const uint)
+0:61      Sequence
+0:61        move second child to first child (temp 4-component vector of uint)
+0:61          'r02' (temp 4-component vector of uint)
+0:61          imageLoad (temp 4-component vector of uint)
+0:61            'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:61            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:61              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:61              Constant:
+0:61                0 (const uint)
+0:64      Sequence
+0:64        move second child to first child (temp 4-component vector of float)
+0:64          'r10' (temp 4-component vector of float)
+0:64          imageLoad (temp 4-component vector of float)
+0:64            'g_tTex2df4' (layout(rgba32f ) uniform image2D)
+0:64            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:64              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:64              Constant:
+0:64                1 (const uint)
+0:65      Sequence
+0:65        move second child to first child (temp 4-component vector of int)
+0:65          'r11' (temp 4-component vector of int)
+0:65          imageLoad (temp 4-component vector of int)
+0:65            'g_tTex2di4' (layout(rgba32i ) uniform iimage2D)
+0:65            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:65              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:65              Constant:
+0:65                1 (const uint)
+0:66      Sequence
+0:66        move second child to first child (temp 4-component vector of uint)
+0:66          'r12' (temp 4-component vector of uint)
+0:66          imageLoad (temp 4-component vector of uint)
+0:66            'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D)
+0:66            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:66              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:66              Constant:
+0:66                1 (const uint)
+0:69      Sequence
+0:69        move second child to first child (temp 4-component vector of float)
+0:69          'r20' (temp 4-component vector of float)
+0:69          imageLoad (temp 4-component vector of float)
+0:69            'g_tTex3df4' (layout(rgba32f ) uniform image3D)
+0:69            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:69              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:69              Constant:
+0:69                2 (const uint)
+0:70      Sequence
+0:70        move second child to first child (temp 4-component vector of int)
+0:70          'r21' (temp 4-component vector of int)
+0:70          imageLoad (temp 4-component vector of int)
+0:70            'g_tTex3di4' (layout(rgba32i ) uniform iimage3D)
+0:70            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:70              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:70              Constant:
+0:70                2 (const uint)
+0:71      Sequence
+0:71        move second child to first child (temp 4-component vector of uint)
+0:71          'r22' (temp 4-component vector of uint)
+0:71          imageLoad (temp 4-component vector of uint)
+0:71            'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D)
+0:71            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:71              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:71              Constant:
+0:71                2 (const uint)
+0:73      Sequence
+0:73        move second child to first child (temp 4-component vector of float)
+0:73          'lf4' (temp 4-component vector of float)
+0:73          uf4: direct index for structure (layout(offset=96 ) uniform 4-component vector of float)
+0:73            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:73            Constant:
+0:73              8 (const uint)
+0:77      Sequence
+0:77        move second child to first child (temp 4-component vector of float)
+0:77          'storeTemp' (temp 4-component vector of float)
+0:77          Function Call: SomeValue( (temp 4-component vector of float)
+0:77        imageStore (temp void)
+0:77          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:77          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:77            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:77            Constant:
+0:77              0 (const uint)
+0:77          'storeTemp' (temp 4-component vector of float)
+0:77        'storeTemp' (temp 4-component vector of float)
+0:78      Sequence
+0:78        imageStore (temp void)
+0:78          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:78          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:78            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:78            Constant:
+0:78              0 (const uint)
+0:78          'lf4' (temp 4-component vector of float)
+0:78        'lf4' (temp 4-component vector of float)
+0:79      Sequence
+0:79        move second child to first child (temp 4-component vector of int)
+0:79          'storeTemp' (temp 4-component vector of int)
+0:?           Constant:
+0:?             2 (const int)
+0:?             2 (const int)
+0:?             3 (const int)
+0:?             4 (const int)
+0:79        imageStore (temp void)
+0:79          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:79          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:79            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:79            Constant:
+0:79              0 (const uint)
+0:79          'storeTemp' (temp 4-component vector of int)
+0:79        'storeTemp' (temp 4-component vector of int)
+0:80      Sequence
+0:80        move second child to first child (temp 4-component vector of uint)
+0:80          'storeTemp' (temp 4-component vector of uint)
+0:?           Constant:
+0:?             3 (const uint)
+0:?             2 (const uint)
+0:?             3 (const uint)
+0:?             4 (const uint)
+0:80        imageStore (temp void)
+0:80          'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:80          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:80            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:80            Constant:
+0:80              0 (const uint)
+0:80          'storeTemp' (temp 4-component vector of uint)
+0:80        'storeTemp' (temp 4-component vector of uint)
+0:83      Sequence
+0:83        move second child to first child (temp 4-component vector of float)
+0:83          'val1' (temp 4-component vector of float)
+0:83          Sequence
+0:83            move second child to first child (temp int)
+0:83              'coordTemp' (temp int)
+0:83              c1: direct index for structure (layout(offset=0 ) uniform int)
+0:83                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:83                Constant:
+0:83                  0 (const uint)
+0:83            move second child to first child (temp 4-component vector of float)
+0:83              'storeTemp' (temp 4-component vector of float)
+0:83              imageLoad (temp 4-component vector of float)
+0:83                'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:83                'coordTemp' (temp int)
+0:83            vector scale second child into first child (temp 4-component vector of float)
+0:83              'storeTemp' (temp 4-component vector of float)
+0:83              Constant:
+0:83                2.000000
+0:83            imageStore (temp void)
+0:83              'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:83              'coordTemp' (temp int)
+0:83              'storeTemp' (temp 4-component vector of float)
+0:83            'storeTemp' (temp 4-component vector of float)
+0:84      Sequence
+0:84        move second child to first child (temp int)
+0:84          'coordTemp' (temp int)
+0:84          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:84            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:84            Constant:
+0:84              0 (const uint)
+0:84        move second child to first child (temp 4-component vector of float)
+0:84          'storeTemp' (temp 4-component vector of float)
+0:84          imageLoad (temp 4-component vector of float)
+0:84            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:84            'coordTemp' (temp int)
+0:84        subtract second child into first child (temp 4-component vector of float)
+0:84          'storeTemp' (temp 4-component vector of float)
+0:84          Constant:
+0:84            3.000000
+0:84        imageStore (temp void)
+0:84          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:84          'coordTemp' (temp int)
+0:84          'storeTemp' (temp 4-component vector of float)
+0:84        'storeTemp' (temp 4-component vector of float)
+0:85      Sequence
+0:85        move second child to first child (temp int)
+0:85          'coordTemp' (temp int)
+0:85          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:85            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:85            Constant:
+0:85              0 (const uint)
+0:85        move second child to first child (temp 4-component vector of float)
+0:85          'storeTemp' (temp 4-component vector of float)
+0:85          imageLoad (temp 4-component vector of float)
+0:85            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:85            'coordTemp' (temp int)
+0:85        add second child into first child (temp 4-component vector of float)
+0:85          'storeTemp' (temp 4-component vector of float)
+0:85          Constant:
+0:85            4.000000
+0:85        imageStore (temp void)
+0:85          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:85          'coordTemp' (temp int)
+0:85          'storeTemp' (temp 4-component vector of float)
+0:85        'storeTemp' (temp 4-component vector of float)
+0:87      Sequence
+0:87        move second child to first child (temp int)
+0:87          'coordTemp' (temp int)
+0:87          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:87            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:87            Constant:
+0:87              0 (const uint)
+0:87        move second child to first child (temp 4-component vector of int)
+0:87          'storeTemp' (temp 4-component vector of int)
+0:87          imageLoad (temp 4-component vector of int)
+0:87            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:87            'coordTemp' (temp int)
+0:87        divide second child into first child (temp 4-component vector of int)
+0:87          'storeTemp' (temp 4-component vector of int)
+0:87          Constant:
+0:87            2 (const int)
+0:87        imageStore (temp void)
+0:87          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:87          'coordTemp' (temp int)
+0:87          'storeTemp' (temp 4-component vector of int)
+0:87        'storeTemp' (temp 4-component vector of int)
+0:88      Sequence
+0:88        move second child to first child (temp int)
+0:88          'coordTemp' (temp int)
+0:88          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:88            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:88            Constant:
+0:88              0 (const uint)
+0:88        move second child to first child (temp 4-component vector of int)
+0:88          'storeTemp' (temp 4-component vector of int)
+0:88          imageLoad (temp 4-component vector of int)
+0:88            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:88            'coordTemp' (temp int)
+0:88        mod second child into first child (temp 4-component vector of int)
+0:88          'storeTemp' (temp 4-component vector of int)
+0:88          Constant:
+0:88            2 (const int)
+0:88        imageStore (temp void)
+0:88          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:88          'coordTemp' (temp int)
+0:88          'storeTemp' (temp 4-component vector of int)
+0:88        'storeTemp' (temp 4-component vector of int)
+0:89      Sequence
+0:89        move second child to first child (temp int)
+0:89          'coordTemp' (temp int)
+0:89          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:89            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:89            Constant:
+0:89              0 (const uint)
+0:89        move second child to first child (temp 4-component vector of int)
+0:89          'storeTemp' (temp 4-component vector of int)
+0:89          imageLoad (temp 4-component vector of int)
+0:89            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:89            'coordTemp' (temp int)
+0:89        and second child into first child (temp 4-component vector of int)
+0:89          'storeTemp' (temp 4-component vector of int)
+0:89          Constant:
+0:89            65535 (const int)
+0:89        imageStore (temp void)
+0:89          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:89          'coordTemp' (temp int)
+0:89          'storeTemp' (temp 4-component vector of int)
+0:89        'storeTemp' (temp 4-component vector of int)
+0:90      Sequence
+0:90        move second child to first child (temp int)
+0:90          'coordTemp' (temp int)
+0:90          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:90            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:90            Constant:
+0:90              0 (const uint)
+0:90        move second child to first child (temp 4-component vector of int)
+0:90          'storeTemp' (temp 4-component vector of int)
+0:90          imageLoad (temp 4-component vector of int)
+0:90            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:90            'coordTemp' (temp int)
+0:90        or second child into first child (temp 4-component vector of int)
+0:90          'storeTemp' (temp 4-component vector of int)
+0:90          Constant:
+0:90            61680 (const int)
+0:90        imageStore (temp void)
+0:90          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:90          'coordTemp' (temp int)
+0:90          'storeTemp' (temp 4-component vector of int)
+0:90        'storeTemp' (temp 4-component vector of int)
+0:91      Sequence
+0:91        move second child to first child (temp int)
+0:91          'coordTemp' (temp int)
+0:91          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:91            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:91            Constant:
+0:91              0 (const uint)
+0:91        move second child to first child (temp 4-component vector of int)
+0:91          'storeTemp' (temp 4-component vector of int)
+0:91          imageLoad (temp 4-component vector of int)
+0:91            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:91            'coordTemp' (temp int)
+0:91        left shift second child into first child (temp 4-component vector of int)
+0:91          'storeTemp' (temp 4-component vector of int)
+0:91          Constant:
+0:91            2 (const int)
+0:91        imageStore (temp void)
+0:91          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:91          'coordTemp' (temp int)
+0:91          'storeTemp' (temp 4-component vector of int)
+0:91        'storeTemp' (temp 4-component vector of int)
+0:92      Sequence
+0:92        move second child to first child (temp int)
+0:92          'coordTemp' (temp int)
+0:92          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:92            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:92            Constant:
+0:92              0 (const uint)
+0:92        move second child to first child (temp 4-component vector of int)
+0:92          'storeTemp' (temp 4-component vector of int)
+0:92          imageLoad (temp 4-component vector of int)
+0:92            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:92            'coordTemp' (temp int)
+0:92        right shift second child into first child (temp 4-component vector of int)
+0:92          'storeTemp' (temp 4-component vector of int)
+0:92          Constant:
+0:92            2 (const int)
+0:92        imageStore (temp void)
+0:92          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:92          'coordTemp' (temp int)
+0:92          'storeTemp' (temp 4-component vector of int)
+0:92        'storeTemp' (temp 4-component vector of int)
+0:95      Sequence
+0:95        move second child to first child (temp 4-component vector of float)
+0:95          'storeTemp' (temp 4-component vector of float)
+0:95          Function Call: SomeValue( (temp 4-component vector of float)
+0:95        imageStore (temp void)
+0:95          'g_tTex2df4' (layout(rgba32f ) uniform image2D)
+0:95          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:95            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:95            Constant:
+0:95              1 (const uint)
+0:95          'storeTemp' (temp 4-component vector of float)
+0:95        'storeTemp' (temp 4-component vector of float)
+0:96      Sequence
+0:96        imageStore (temp void)
+0:96          'g_tTex2df4' (layout(rgba32f ) uniform image2D)
+0:96          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:96            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:96            Constant:
+0:96              1 (const uint)
+0:96          'lf4' (temp 4-component vector of float)
+0:96        'lf4' (temp 4-component vector of float)
+0:97      Sequence
+0:97        move second child to first child (temp 4-component vector of int)
+0:97          'storeTemp' (temp 4-component vector of int)
+0:?           Constant:
+0:?             5 (const int)
+0:?             2 (const int)
+0:?             3 (const int)
+0:?             4 (const int)
+0:97        imageStore (temp void)
+0:97          'g_tTex2di4' (layout(rgba32i ) uniform iimage2D)
+0:97          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:97            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:97            Constant:
+0:97              1 (const uint)
+0:97          'storeTemp' (temp 4-component vector of int)
+0:97        'storeTemp' (temp 4-component vector of int)
+0:98      Sequence
+0:98        move second child to first child (temp 4-component vector of uint)
+0:98          'storeTemp' (temp 4-component vector of uint)
+0:?           Constant:
+0:?             6 (const uint)
+0:?             2 (const uint)
+0:?             3 (const uint)
+0:?             4 (const uint)
+0:98        imageStore (temp void)
+0:98          'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D)
+0:98          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:98            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:98            Constant:
+0:98              1 (const uint)
+0:98          'storeTemp' (temp 4-component vector of uint)
+0:98        'storeTemp' (temp 4-component vector of uint)
+0:101      Sequence
+0:101        move second child to first child (temp 4-component vector of float)
+0:101          'storeTemp' (temp 4-component vector of float)
+0:101          Function Call: SomeValue( (temp 4-component vector of float)
+0:101        imageStore (temp void)
+0:101          'g_tTex3df4' (layout(rgba32f ) uniform image3D)
+0:101          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:101            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:101            Constant:
+0:101              2 (const uint)
+0:101          'storeTemp' (temp 4-component vector of float)
+0:101        'storeTemp' (temp 4-component vector of float)
+0:102      Sequence
+0:102        imageStore (temp void)
+0:102          'g_tTex3df4' (layout(rgba32f ) uniform image3D)
+0:102          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:102            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:102            Constant:
+0:102              2 (const uint)
+0:102          'lf4' (temp 4-component vector of float)
+0:102        'lf4' (temp 4-component vector of float)
+0:103      Sequence
+0:103        move second child to first child (temp 4-component vector of int)
+0:103          'storeTemp' (temp 4-component vector of int)
+0:?           Constant:
+0:?             8 (const int)
+0:?             6 (const int)
+0:?             7 (const int)
+0:?             8 (const int)
+0:103        imageStore (temp void)
+0:103          'g_tTex3di4' (layout(rgba32i ) uniform iimage3D)
+0:103          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:103            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:103            Constant:
+0:103              2 (const uint)
+0:103          'storeTemp' (temp 4-component vector of int)
+0:103        'storeTemp' (temp 4-component vector of int)
+0:104      Sequence
+0:104        move second child to first child (temp 4-component vector of uint)
+0:104          'storeTemp' (temp 4-component vector of uint)
+0:?           Constant:
+0:?             9 (const uint)
+0:?             2 (const uint)
+0:?             3 (const uint)
+0:?             4 (const uint)
+0:104        imageStore (temp void)
+0:104          'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D)
+0:104          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:104            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:104            Constant:
+0:104              2 (const uint)
+0:104          'storeTemp' (temp 4-component vector of uint)
+0:104        'storeTemp' (temp 4-component vector of uint)
+0:107      Function Call: Fn1(vf4; (temp 4-component vector of float)
+0:107        imageLoad (temp 4-component vector of float)
+0:107          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:107          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:107            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:107            Constant:
+0:107              0 (const uint)
+0:108      Function Call: Fn1(vi4; (temp 4-component vector of int)
+0:108        imageLoad (temp 4-component vector of int)
+0:108          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:108          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:108            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:108            Constant:
+0:108              0 (const uint)
+0:109      Function Call: Fn1(vu4; (temp 4-component vector of uint)
+0:109        imageLoad (temp 4-component vector of uint)
+0:109          'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:109          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:109            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:109            Constant:
+0:109              0 (const uint)
+0:111      Comma (temp void)
+0:111        Function Call: Fn2(vf4; (temp void)
+0:111          'tempArg' (temp 4-component vector of float)
+0:111        Sequence
+0:111          imageStore (temp void)
+0:111            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:111            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:111              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:111              Constant:
+0:111                0 (const uint)
+0:111            'tempArg' (temp 4-component vector of float)
+0:111          'tempArg' (temp 4-component vector of float)
+0:112      Comma (temp void)
+0:112        Function Call: Fn2(vi4; (temp void)
+0:112          'tempArg' (temp 4-component vector of int)
+0:112        Sequence
+0:112          imageStore (temp void)
+0:112            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:112            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:112              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:112              Constant:
+0:112                0 (const uint)
+0:112            'tempArg' (temp 4-component vector of int)
+0:112          'tempArg' (temp 4-component vector of int)
+0:113      Comma (temp void)
+0:113        Function Call: Fn2(vu4; (temp void)
+0:113          'tempArg' (temp 4-component vector of uint)
+0:113        Sequence
+0:113          imageStore (temp void)
+0:113            'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:113            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:113              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:113              Constant:
+0:113                0 (const uint)
+0:113            'tempArg' (temp 4-component vector of uint)
+0:113          'tempArg' (temp 4-component vector of uint)
+0:117      Sequence
+0:117        move second child to first child (temp int)
+0:117          'coordTemp' (temp int)
+0:117          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:117            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:117            Constant:
+0:117              0 (const uint)
+0:117        move second child to first child (temp 4-component vector of float)
+0:117          'storeTemp' (temp 4-component vector of float)
+0:117          imageLoad (temp 4-component vector of float)
+0:117            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:117            'coordTemp' (temp int)
+0:117        Pre-Increment (temp 4-component vector of float)
+0:117          'storeTemp' (temp 4-component vector of float)
+0:117        imageStore (temp void)
+0:117          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:117          'coordTemp' (temp int)
+0:117          'storeTemp' (temp 4-component vector of float)
+0:117        'storeTemp' (temp 4-component vector of float)
+0:118      Sequence
+0:118        move second child to first child (temp int)
+0:118          'coordTemp' (temp int)
+0:118          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:118            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:118            Constant:
+0:118              0 (const uint)
+0:118        move second child to first child (temp 4-component vector of int)
+0:118          'storeTemp' (temp 4-component vector of int)
+0:118          imageLoad (temp 4-component vector of int)
+0:118            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:118            'coordTemp' (temp int)
+0:118        Pre-Increment (temp 4-component vector of int)
+0:118          'storeTemp' (temp 4-component vector of int)
+0:118        imageStore (temp void)
+0:118          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:118          'coordTemp' (temp int)
+0:118          'storeTemp' (temp 4-component vector of int)
+0:118        'storeTemp' (temp 4-component vector of int)
+0:119      Sequence
+0:119        move second child to first child (temp int)
+0:119          'coordTemp' (temp int)
+0:119          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:119            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:119            Constant:
+0:119              0 (const uint)
+0:119        move second child to first child (temp 4-component vector of uint)
+0:119          'storeTemp' (temp 4-component vector of uint)
+0:119          imageLoad (temp 4-component vector of uint)
+0:119            'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:119            'coordTemp' (temp int)
+0:119        Pre-Increment (temp 4-component vector of uint)
+0:119          'storeTemp' (temp 4-component vector of uint)
+0:119        imageStore (temp void)
+0:119          'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:119          'coordTemp' (temp int)
+0:119          'storeTemp' (temp 4-component vector of uint)
+0:119        'storeTemp' (temp 4-component vector of uint)
+0:121      Sequence
+0:121        move second child to first child (temp int)
+0:121          'coordTemp' (temp int)
+0:121          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:121            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:121            Constant:
+0:121              0 (const uint)
+0:121        move second child to first child (temp 4-component vector of float)
+0:121          'storeTemp' (temp 4-component vector of float)
+0:121          imageLoad (temp 4-component vector of float)
+0:121            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:121            'coordTemp' (temp int)
+0:121        Pre-Decrement (temp 4-component vector of float)
+0:121          'storeTemp' (temp 4-component vector of float)
+0:121        imageStore (temp void)
+0:121          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:121          'coordTemp' (temp int)
+0:121          'storeTemp' (temp 4-component vector of float)
+0:121        'storeTemp' (temp 4-component vector of float)
+0:122      Sequence
+0:122        move second child to first child (temp int)
+0:122          'coordTemp' (temp int)
+0:122          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:122            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:122            Constant:
+0:122              0 (const uint)
+0:122        move second child to first child (temp 4-component vector of int)
+0:122          'storeTemp' (temp 4-component vector of int)
+0:122          imageLoad (temp 4-component vector of int)
+0:122            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:122            'coordTemp' (temp int)
+0:122        Pre-Decrement (temp 4-component vector of int)
+0:122          'storeTemp' (temp 4-component vector of int)
+0:122        imageStore (temp void)
+0:122          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:122          'coordTemp' (temp int)
+0:122          'storeTemp' (temp 4-component vector of int)
+0:122        'storeTemp' (temp 4-component vector of int)
+0:123      Sequence
+0:123        move second child to first child (temp int)
+0:123          'coordTemp' (temp int)
+0:123          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:123            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:123            Constant:
+0:123              0 (const uint)
+0:123        move second child to first child (temp 4-component vector of uint)
+0:123          'storeTemp' (temp 4-component vector of uint)
+0:123          imageLoad (temp 4-component vector of uint)
+0:123            'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:123            'coordTemp' (temp int)
+0:123        Pre-Decrement (temp 4-component vector of uint)
+0:123          'storeTemp' (temp 4-component vector of uint)
+0:123        imageStore (temp void)
+0:123          'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:123          'coordTemp' (temp int)
+0:123          'storeTemp' (temp 4-component vector of uint)
+0:123        'storeTemp' (temp 4-component vector of uint)
+0:126      Sequence
+0:126        move second child to first child (temp int)
+0:126          'coordTemp' (temp int)
+0:126          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:126            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:126            Constant:
+0:126              0 (const uint)
+0:126        move second child to first child (temp 4-component vector of float)
+0:126          'storeTempPre' (temp 4-component vector of float)
+0:126          imageLoad (temp 4-component vector of float)
+0:126            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:126            'coordTemp' (temp int)
+0:126        move second child to first child (temp 4-component vector of float)
+0:126          'storeTempPost' (temp 4-component vector of float)
+0:126          'storeTempPre' (temp 4-component vector of float)
+0:126        Post-Increment (temp 4-component vector of float)
+0:126          'storeTempPost' (temp 4-component vector of float)
+0:126        imageStore (temp void)
+0:126          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:126          'coordTemp' (temp int)
+0:126          'storeTempPost' (temp 4-component vector of float)
+0:126        'storeTempPre' (temp 4-component vector of float)
+0:127      Sequence
+0:127        move second child to first child (temp int)
+0:127          'coordTemp' (temp int)
+0:127          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:127            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:127            Constant:
+0:127              0 (const uint)
+0:127        move second child to first child (temp 4-component vector of uint)
+0:127          'storeTempPre' (temp 4-component vector of uint)
+0:127          imageLoad (temp 4-component vector of uint)
+0:127            'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:127            'coordTemp' (temp int)
+0:127        move second child to first child (temp 4-component vector of uint)
+0:127          'storeTempPost' (temp 4-component vector of uint)
+0:127          'storeTempPre' (temp 4-component vector of uint)
+0:127        Post-Decrement (temp 4-component vector of uint)
+0:127          'storeTempPost' (temp 4-component vector of uint)
+0:127        imageStore (temp void)
+0:127          'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:127          'coordTemp' (temp int)
+0:127          'storeTempPost' (temp 4-component vector of uint)
+0:127        'storeTempPre' (temp 4-component vector of uint)
+0:128      Sequence
+0:128        move second child to first child (temp int)
+0:128          'coordTemp' (temp int)
+0:128          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:128            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:128            Constant:
+0:128              0 (const uint)
+0:128        move second child to first child (temp 4-component vector of int)
+0:128          'storeTempPre' (temp 4-component vector of int)
+0:128          imageLoad (temp 4-component vector of int)
+0:128            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:128            'coordTemp' (temp int)
+0:128        move second child to first child (temp 4-component vector of int)
+0:128          'storeTempPost' (temp 4-component vector of int)
+0:128          'storeTempPre' (temp 4-component vector of int)
+0:128        Post-Increment (temp 4-component vector of int)
+0:128          'storeTempPost' (temp 4-component vector of int)
+0:128        imageStore (temp void)
+0:128          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:128          'coordTemp' (temp int)
+0:128          'storeTempPost' (temp 4-component vector of int)
+0:128        'storeTempPre' (temp 4-component vector of int)
+0:130      Sequence
+0:130        move second child to first child (temp int)
+0:130          'coordTemp' (temp int)
+0:130          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:130            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:130            Constant:
+0:130              0 (const uint)
+0:130        move second child to first child (temp 4-component vector of float)
+0:130          'storeTempPre' (temp 4-component vector of float)
+0:130          imageLoad (temp 4-component vector of float)
+0:130            'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:130            'coordTemp' (temp int)
+0:130        move second child to first child (temp 4-component vector of float)
+0:130          'storeTempPost' (temp 4-component vector of float)
+0:130          'storeTempPre' (temp 4-component vector of float)
+0:130        Post-Decrement (temp 4-component vector of float)
+0:130          'storeTempPost' (temp 4-component vector of float)
+0:130        imageStore (temp void)
+0:130          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:130          'coordTemp' (temp int)
+0:130          'storeTempPost' (temp 4-component vector of float)
+0:130        'storeTempPre' (temp 4-component vector of float)
+0:131      Sequence
+0:131        move second child to first child (temp int)
+0:131          'coordTemp' (temp int)
+0:131          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:131            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:131            Constant:
+0:131              0 (const uint)
+0:131        move second child to first child (temp 4-component vector of int)
+0:131          'storeTempPre' (temp 4-component vector of int)
+0:131          imageLoad (temp 4-component vector of int)
+0:131            'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:131            'coordTemp' (temp int)
+0:131        move second child to first child (temp 4-component vector of int)
+0:131          'storeTempPost' (temp 4-component vector of int)
+0:131          'storeTempPre' (temp 4-component vector of int)
+0:131        Post-Increment (temp 4-component vector of int)
+0:131          'storeTempPost' (temp 4-component vector of int)
+0:131        imageStore (temp void)
+0:131          'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:131          'coordTemp' (temp int)
+0:131          'storeTempPost' (temp 4-component vector of int)
+0:131        'storeTempPre' (temp 4-component vector of int)
+0:132      Sequence
+0:132        move second child to first child (temp int)
+0:132          'coordTemp' (temp int)
+0:132          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:132            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:132            Constant:
+0:132              0 (const uint)
+0:132        move second child to first child (temp 4-component vector of uint)
+0:132          'storeTempPre' (temp 4-component vector of uint)
+0:132          imageLoad (temp 4-component vector of uint)
+0:132            'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:132            'coordTemp' (temp int)
+0:132        move second child to first child (temp 4-component vector of uint)
+0:132          'storeTempPost' (temp 4-component vector of uint)
+0:132          'storeTempPre' (temp 4-component vector of uint)
+0:132        Post-Decrement (temp 4-component vector of uint)
+0:132          'storeTempPost' (temp 4-component vector of uint)
+0:132        imageStore (temp void)
+0:132          'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:132          'coordTemp' (temp int)
+0:132          'storeTempPost' (temp 4-component vector of uint)
+0:132        'storeTempPre' (temp 4-component vector of uint)
+0:135      Sequence
+0:135        move second child to first child (temp 4-component vector of float)
+0:135          'storeTemp' (temp 4-component vector of float)
+0:?           imageLoad (temp 4-component vector of float)
+0:135            'g_tTex2df4' (layout(rgba32f ) uniform image2D)
+0:?             Constant:
+0:?               2 (const int)
+0:?               3 (const int)
+0:135        imageStore (temp void)
+0:135          'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:135          Constant:
+0:135            1 (const int)
+0:135          'storeTemp' (temp 4-component vector of float)
+0:135        'storeTemp' (temp 4-component vector of float)
+0:137      move second child to first child (temp 4-component vector of float)
+0:137        Color: direct index for structure (temp 4-component vector of float)
+0:137          'psout' (temp structure{temp 4-component vector of float Color})
+0:137          Constant:
+0:137            0 (const int)
+0:137        Constant:
+0:137          1.000000
+0:137          1.000000
+0:137          1.000000
+0:137          1.000000
+0:139      Sequence
+0:139        Sequence
+0:139          move second child to first child (temp 4-component vector of float)
+0:?             'Color' (layout(location=0 ) out 4-component vector of float)
+0:139            Color: direct index for structure (temp 4-component vector of float)
+0:139              'psout' (temp structure{temp 4-component vector of float Color})
+0:139              Constant:
+0:139                0 (const int)
+0:139        Branch: Return
+0:?   Linker Objects
+0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:?     'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D)
+0:?     'g_tTex1di4' (layout(rgba32i ) uniform iimage1D)
+0:?     'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D)
+0:?     'g_tTex2df4' (layout(rgba32f ) uniform image2D)
+0:?     'g_tTex2di4' (layout(rgba32i ) uniform iimage2D)
+0:?     'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D)
+0:?     'g_tTex3df4' (layout(rgba32f ) uniform image3D)
+0:?     'g_tTex3di4' (layout(rgba32i ) uniform iimage3D)
+0:?     'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D)
+0:?     'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray)
+0:?     'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray)
+0:?     'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray)
+0:?     'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray)
+0:?     'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray)
+0:?     'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray)
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4})
+0:?     'Color' (layout(location=0 ) out 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 602
+
+                              Capability Shader
+                              Capability Sampled1D
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 577
+                              ExecutionMode 4 OriginUpperLeft
+                              Name 4  "main"
+                              Name 11  "Fn1(vi4;"
+                              Name 10  "x"
+                              Name 18  "Fn1(vu4;"
+                              Name 17  "x"
+                              Name 25  "Fn1(vf4;"
+                              Name 24  "x"
+                              Name 29  "Fn2(vi4;"
+                              Name 28  "x"
+                              Name 33  "Fn2(vu4;"
+                              Name 32  "x"
+                              Name 37  "Fn2(vf4;"
+                              Name 36  "x"
+                              Name 40  "SomeValue("
+                              Name 59  "$Global"
+                              MemberName 59($Global) 0  "c1"
+                              MemberName 59($Global) 1  "c2"
+                              MemberName 59($Global) 2  "c3"
+                              MemberName 59($Global) 3  "c4"
+                              MemberName 59($Global) 4  "o1"
+                              MemberName 59($Global) 5  "o2"
+                              MemberName 59($Global) 6  "o3"
+                              MemberName 59($Global) 7  "o4"
+                              MemberName 59($Global) 8  "uf4"
+                              MemberName 59($Global) 9  "ui4"
+                              MemberName 59($Global) 10  "uu4"
+                              Name 61  ""
+                              Name 71  "g_tTex1df4"
+                              Name 77  "r00"
+                              Name 82  "r01"
+                              Name 85  "g_tTex1di4"
+                              Name 90  "r02"
+                              Name 93  "g_tTex1du4"
+                              Name 98  "r10"
+                              Name 101  "g_tTex2df4"
+                              Name 108  "r11"
+                              Name 111  "g_tTex2di4"
+                              Name 116  "r12"
+                              Name 119  "g_tTex2du4"
+                              Name 124  "r20"
+                              Name 127  "g_tTex3df4"
+                              Name 134  "r21"
+                              Name 137  "g_tTex3di4"
+                              Name 142  "r22"
+                              Name 145  "g_tTex3du4"
+                              Name 150  "lf4"
+                              Name 155  "storeTemp"
+                              Name 165  "storeTemp"
+                              Name 172  "storeTemp"
+                              Name 181  "val1"
+                              Name 183  "coordTemp"
+                              Name 186  "storeTemp"
+                              Name 197  "coordTemp"
+                              Name 200  "storeTemp"
+                              Name 211  "coordTemp"
+                              Name 214  "storeTemp"
+                              Name 225  "coordTemp"
+                              Name 228  "storeTemp"
+                              Name 238  "coordTemp"
+                              Name 241  "storeTemp"
+                              Name 251  "coordTemp"
+                              Name 254  "storeTemp"
+                              Name 265  "coordTemp"
+                              Name 268  "storeTemp"
+                              Name 279  "coordTemp"
+                              Name 282  "storeTemp"
+                              Name 292  "coordTemp"
+                              Name 295  "storeTemp"
+                              Name 305  "storeTemp"
+                              Name 315  "storeTemp"
+                              Name 322  "storeTemp"
+                              Name 329  "storeTemp"
+                              Name 339  "storeTemp"
+                              Name 347  "storeTemp"
+                              Name 358  "param"
+                              Name 364  "param"
+                              Name 370  "param"
+                              Name 372  "tempArg"
+                              Name 373  "param"
+                              Name 380  "tempArg"
+                              Name 381  "param"
+                              Name 388  "tempArg"
+                              Name 389  "param"
+                              Name 396  "coordTemp"
+                              Name 399  "storeTemp"
+                              Name 410  "coordTemp"
+                              Name 413  "storeTemp"
+                              Name 423  "coordTemp"
+                              Name 426  "storeTemp"
+                              Name 436  "coordTemp"
+                              Name 439  "storeTemp"
+                              Name 449  "coordTemp"
+                              Name 452  "storeTemp"
+                              Name 462  "coordTemp"
+                              Name 465  "storeTemp"
+                              Name 475  "coordTemp"
+                              Name 478  "storeTempPre"
+                              Name 482  "storeTempPost"
+                              Name 490  "coordTemp"
+                              Name 493  "storeTempPre"
+                              Name 497  "storeTempPost"
+                              Name 505  "coordTemp"
+                              Name 508  "storeTempPre"
+                              Name 512  "storeTempPost"
+                              Name 520  "coordTemp"
+                              Name 523  "storeTempPre"
+                              Name 527  "storeTempPost"
+                              Name 535  "coordTemp"
+                              Name 538  "storeTempPre"
+                              Name 542  "storeTempPost"
+                              Name 550  "coordTemp"
+                              Name 553  "storeTempPre"
+                              Name 557  "storeTempPost"
+                              Name 565  "storeTemp"
+                              Name 571  "PS_OUTPUT"
+                              MemberName 571(PS_OUTPUT) 0  "Color"
+                              Name 573  "psout"
+                              Name 577  "Color"
+                              Name 583  "g_sSamp"
+                              Name 586  "g_tTex1df4a"
+                              Name 589  "g_tTex1di4a"
+                              Name 592  "g_tTex1du4a"
+                              Name 595  "g_tTex2df4a"
+                              Name 598  "g_tTex2di4a"
+                              Name 601  "g_tTex2du4a"
+                              MemberDecorate 59($Global) 0 Offset 0
+                              MemberDecorate 59($Global) 1 Offset 8
+                              MemberDecorate 59($Global) 2 Offset 16
+                              MemberDecorate 59($Global) 3 Offset 32
+                              MemberDecorate 59($Global) 4 Offset 48
+                              MemberDecorate 59($Global) 5 Offset 56
+                              MemberDecorate 59($Global) 6 Offset 64
+                              MemberDecorate 59($Global) 7 Offset 80
+                              MemberDecorate 59($Global) 8 Offset 96
+                              MemberDecorate 59($Global) 9 Offset 112
+                              MemberDecorate 59($Global) 10 Offset 128
+                              Decorate 59($Global) Block
+                              Decorate 61 DescriptorSet 0
+                              Decorate 71(g_tTex1df4) DescriptorSet 0
+                              Decorate 71(g_tTex1df4) Binding 0
+                              Decorate 85(g_tTex1di4) DescriptorSet 0
+                              Decorate 93(g_tTex1du4) DescriptorSet 0
+                              Decorate 101(g_tTex2df4) DescriptorSet 0
+                              Decorate 111(g_tTex2di4) DescriptorSet 0
+                              Decorate 119(g_tTex2du4) DescriptorSet 0
+                              Decorate 127(g_tTex3df4) DescriptorSet 0
+                              Decorate 137(g_tTex3di4) DescriptorSet 0
+                              Decorate 145(g_tTex3du4) DescriptorSet 0
+                              Decorate 577(Color) Location 0
+                              Decorate 583(g_sSamp) DescriptorSet 0
+                              Decorate 583(g_sSamp) Binding 0
+                              Decorate 586(g_tTex1df4a) DescriptorSet 0
+                              Decorate 589(g_tTex1di4a) DescriptorSet 0
+                              Decorate 592(g_tTex1du4a) DescriptorSet 0
+                              Decorate 595(g_tTex2df4a) DescriptorSet 0
+                              Decorate 598(g_tTex2di4a) DescriptorSet 0
+                              Decorate 601(g_tTex2du4a) DescriptorSet 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypeVector 6(int) 4
+               8:             TypePointer Function 7(ivec4)
+               9:             TypeFunction 7(ivec4) 8(ptr)
+              13:             TypeInt 32 0
+              14:             TypeVector 13(int) 4
+              15:             TypePointer Function 14(ivec4)
+              16:             TypeFunction 14(ivec4) 15(ptr)
+              20:             TypeFloat 32
+              21:             TypeVector 20(float) 4
+              22:             TypePointer Function 21(fvec4)
+              23:             TypeFunction 21(fvec4) 22(ptr)
+              27:             TypeFunction 2 8(ptr)
+              31:             TypeFunction 2 15(ptr)
+              35:             TypeFunction 2 22(ptr)
+              39:             TypeFunction 21(fvec4)
+              51:      6(int) Constant 0
+              52:    7(ivec4) ConstantComposite 51 51 51 51
+              53:     13(int) Constant 0
+              54:   14(ivec4) ConstantComposite 53 53 53 53
+              55:   20(float) Constant 0
+              56:   21(fvec4) ConstantComposite 55 55 55 55
+              57:             TypeVector 6(int) 2
+              58:             TypeVector 6(int) 3
+     59($Global):             TypeStruct 6(int) 57(ivec2) 58(ivec3) 7(ivec4) 6(int) 57(ivec2) 58(ivec3) 7(ivec4) 21(fvec4) 7(ivec4) 14(ivec4)
+              60:             TypePointer Uniform 59($Global)
+              61:     60(ptr) Variable Uniform
+              62:      6(int) Constant 3
+              63:             TypePointer Uniform 7(ivec4)
+              69:             TypeImage 20(float) 1D nonsampled format:Rgba32f
+              70:             TypePointer UniformConstant 69
+  71(g_tTex1df4):     70(ptr) Variable UniformConstant
+              73:             TypePointer Uniform 6(int)
+              83:             TypeImage 6(int) 1D nonsampled format:Rgba32i
+              84:             TypePointer UniformConstant 83
+  85(g_tTex1di4):     84(ptr) Variable UniformConstant
+              91:             TypeImage 13(int) 1D nonsampled format:Rgba32ui
+              92:             TypePointer UniformConstant 91
+  93(g_tTex1du4):     92(ptr) Variable UniformConstant
+              99:             TypeImage 20(float) 2D nonsampled format:Rgba32f
+             100:             TypePointer UniformConstant 99
+ 101(g_tTex2df4):    100(ptr) Variable UniformConstant
+             103:      6(int) Constant 1
+             104:             TypePointer Uniform 57(ivec2)
+             109:             TypeImage 6(int) 2D nonsampled format:Rgba32i
+             110:             TypePointer UniformConstant 109
+ 111(g_tTex2di4):    110(ptr) Variable UniformConstant
+             117:             TypeImage 13(int) 2D nonsampled format:Rgba32ui
+             118:             TypePointer UniformConstant 117
+ 119(g_tTex2du4):    118(ptr) Variable UniformConstant
+             125:             TypeImage 20(float) 3D nonsampled format:Rgba32f
+             126:             TypePointer UniformConstant 125
+ 127(g_tTex3df4):    126(ptr) Variable UniformConstant
+             129:      6(int) Constant 2
+             130:             TypePointer Uniform 58(ivec3)
+             135:             TypeImage 6(int) 3D nonsampled format:Rgba32i
+             136:             TypePointer UniformConstant 135
+ 137(g_tTex3di4):    136(ptr) Variable UniformConstant
+             143:             TypeImage 13(int) 3D nonsampled format:Rgba32ui
+             144:             TypePointer UniformConstant 143
+ 145(g_tTex3du4):    144(ptr) Variable UniformConstant
+             151:      6(int) Constant 8
+             152:             TypePointer Uniform 21(fvec4)
+             166:      6(int) Constant 4
+             167:    7(ivec4) ConstantComposite 129 129 62 166
+             173:     13(int) Constant 3
+             174:     13(int) Constant 2
+             175:     13(int) Constant 4
+             176:   14(ivec4) ConstantComposite 173 174 173 175
+             182:             TypePointer Function 6(int)
+             190:   20(float) Constant 1073741824
+             204:   20(float) Constant 1077936128
+             218:   20(float) Constant 1082130432
+             258:      6(int) Constant 65535
+             272:      6(int) Constant 61680
+             316:      6(int) Constant 5
+             317:    7(ivec4) ConstantComposite 316 129 62 166
+             323:     13(int) Constant 6
+             324:   14(ivec4) ConstantComposite 323 174 173 175
+             340:      6(int) Constant 6
+             341:      6(int) Constant 7
+             342:    7(ivec4) ConstantComposite 151 340 341 151
+             348:     13(int) Constant 9
+             349:   14(ivec4) ConstantComposite 348 174 173 175
+             404:   20(float) Constant 1065353216
+             567:   57(ivec2) ConstantComposite 129 62
+  571(PS_OUTPUT):             TypeStruct 21(fvec4)
+             572:             TypePointer Function 571(PS_OUTPUT)
+             574:   21(fvec4) ConstantComposite 404 404 404 404
+             576:             TypePointer Output 21(fvec4)
+      577(Color):    576(ptr) Variable Output
+             581:             TypeSampler
+             582:             TypePointer UniformConstant 581
+    583(g_sSamp):    582(ptr) Variable UniformConstant
+             584:             TypeImage 20(float) 1D array nonsampled format:Rgba32f
+             585:             TypePointer UniformConstant 584
+586(g_tTex1df4a):    585(ptr) Variable UniformConstant
+             587:             TypeImage 6(int) 1D array nonsampled format:Rgba32i
+             588:             TypePointer UniformConstant 587
+589(g_tTex1di4a):    588(ptr) Variable UniformConstant
+             590:             TypeImage 13(int) 1D array nonsampled format:Rgba32ui
+             591:             TypePointer UniformConstant 590
+592(g_tTex1du4a):    591(ptr) Variable UniformConstant
+             593:             TypeImage 20(float) 2D array nonsampled format:Rgba32f
+             594:             TypePointer UniformConstant 593
+595(g_tTex2df4a):    594(ptr) Variable UniformConstant
+             596:             TypeImage 6(int) 2D array nonsampled format:Rgba32i
+             597:             TypePointer UniformConstant 596
+598(g_tTex2di4a):    597(ptr) Variable UniformConstant
+             599:             TypeImage 13(int) 2D array nonsampled format:Rgba32ui
+             600:             TypePointer UniformConstant 599
+601(g_tTex2du4a):    600(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+         77(r00):     22(ptr) Variable Function
+         82(r01):      8(ptr) Variable Function
+         90(r02):     15(ptr) Variable Function
+         98(r10):     22(ptr) Variable Function
+        108(r11):      8(ptr) Variable Function
+        116(r12):     15(ptr) Variable Function
+        124(r20):     22(ptr) Variable Function
+        134(r21):      8(ptr) Variable Function
+        142(r22):     15(ptr) Variable Function
+        150(lf4):     22(ptr) Variable Function
+  155(storeTemp):     22(ptr) Variable Function
+  165(storeTemp):      8(ptr) Variable Function
+  172(storeTemp):     15(ptr) Variable Function
+       181(val1):     22(ptr) Variable Function
+  183(coordTemp):    182(ptr) Variable Function
+  186(storeTemp):     22(ptr) Variable Function
+  197(coordTemp):    182(ptr) Variable Function
+  200(storeTemp):     22(ptr) Variable Function
+  211(coordTemp):    182(ptr) Variable Function
+  214(storeTemp):     22(ptr) Variable Function
+  225(coordTemp):    182(ptr) Variable Function
+  228(storeTemp):      8(ptr) Variable Function
+  238(coordTemp):    182(ptr) Variable Function
+  241(storeTemp):      8(ptr) Variable Function
+  251(coordTemp):    182(ptr) Variable Function
+  254(storeTemp):      8(ptr) Variable Function
+  265(coordTemp):    182(ptr) Variable Function
+  268(storeTemp):      8(ptr) Variable Function
+  279(coordTemp):    182(ptr) Variable Function
+  282(storeTemp):      8(ptr) Variable Function
+  292(coordTemp):    182(ptr) Variable Function
+  295(storeTemp):      8(ptr) Variable Function
+  305(storeTemp):     22(ptr) Variable Function
+  315(storeTemp):      8(ptr) Variable Function
+  322(storeTemp):     15(ptr) Variable Function
+  329(storeTemp):     22(ptr) Variable Function
+  339(storeTemp):      8(ptr) Variable Function
+  347(storeTemp):     15(ptr) Variable Function
+      358(param):     22(ptr) Variable Function
+      364(param):      8(ptr) Variable Function
+      370(param):     15(ptr) Variable Function
+    372(tempArg):     22(ptr) Variable Function
+      373(param):     22(ptr) Variable Function
+    380(tempArg):      8(ptr) Variable Function
+      381(param):      8(ptr) Variable Function
+    388(tempArg):     15(ptr) Variable Function
+      389(param):     15(ptr) Variable Function
+  396(coordTemp):    182(ptr) Variable Function
+  399(storeTemp):     22(ptr) Variable Function
+  410(coordTemp):    182(ptr) Variable Function
+  413(storeTemp):      8(ptr) Variable Function
+  423(coordTemp):    182(ptr) Variable Function
+  426(storeTemp):     15(ptr) Variable Function
+  436(coordTemp):    182(ptr) Variable Function
+  439(storeTemp):     22(ptr) Variable Function
+  449(coordTemp):    182(ptr) Variable Function
+  452(storeTemp):      8(ptr) Variable Function
+  462(coordTemp):    182(ptr) Variable Function
+  465(storeTemp):     15(ptr) Variable Function
+  475(coordTemp):    182(ptr) Variable Function
+478(storeTempPre):     22(ptr) Variable Function
+482(storeTempPost):     22(ptr) Variable Function
+  490(coordTemp):    182(ptr) Variable Function
+493(storeTempPre):     15(ptr) Variable Function
+497(storeTempPost):     15(ptr) Variable Function
+  505(coordTemp):    182(ptr) Variable Function
+508(storeTempPre):      8(ptr) Variable Function
+512(storeTempPost):      8(ptr) Variable Function
+  520(coordTemp):    182(ptr) Variable Function
+523(storeTempPre):     22(ptr) Variable Function
+527(storeTempPost):     22(ptr) Variable Function
+  535(coordTemp):    182(ptr) Variable Function
+538(storeTempPre):      8(ptr) Variable Function
+542(storeTempPost):      8(ptr) Variable Function
+  550(coordTemp):    182(ptr) Variable Function
+553(storeTempPre):     15(ptr) Variable Function
+557(storeTempPost):     15(ptr) Variable Function
+  565(storeTemp):     22(ptr) Variable Function
+      573(psout):    572(ptr) Variable Function
+              72:          69 Load 71(g_tTex1df4)
+              74:     73(ptr) AccessChain 61 51
+              75:      6(int) Load 74
+              76:   21(fvec4) ImageRead 72 75
+              78:          69 Load 71(g_tTex1df4)
+              79:     73(ptr) AccessChain 61 51
+              80:      6(int) Load 79
+              81:   21(fvec4) ImageRead 78 80
+                              Store 77(r00) 81
+              86:          83 Load 85(g_tTex1di4)
+              87:     73(ptr) AccessChain 61 51
+              88:      6(int) Load 87
+              89:    7(ivec4) ImageRead 86 88
+                              Store 82(r01) 89
+              94:          91 Load 93(g_tTex1du4)
+              95:     73(ptr) AccessChain 61 51
+              96:      6(int) Load 95
+              97:   14(ivec4) ImageRead 94 96
+                              Store 90(r02) 97
+             102:          99 Load 101(g_tTex2df4)
+             105:    104(ptr) AccessChain 61 103
+             106:   57(ivec2) Load 105
+             107:   21(fvec4) ImageRead 102 106
+                              Store 98(r10) 107
+             112:         109 Load 111(g_tTex2di4)
+             113:    104(ptr) AccessChain 61 103
+             114:   57(ivec2) Load 113
+             115:    7(ivec4) ImageRead 112 114
+                              Store 108(r11) 115
+             120:         117 Load 119(g_tTex2du4)
+             121:    104(ptr) AccessChain 61 103
+             122:   57(ivec2) Load 121
+             123:   14(ivec4) ImageRead 120 122
+                              Store 116(r12) 123
+             128:         125 Load 127(g_tTex3df4)
+             131:    130(ptr) AccessChain 61 129
+             132:   58(ivec3) Load 131
+             133:   21(fvec4) ImageRead 128 132
+                              Store 124(r20) 133
+             138:         135 Load 137(g_tTex3di4)
+             139:    130(ptr) AccessChain 61 129
+             140:   58(ivec3) Load 139
+             141:    7(ivec4) ImageRead 138 140
+                              Store 134(r21) 141
+             146:         143 Load 145(g_tTex3du4)
+             147:    130(ptr) AccessChain 61 129
+             148:   58(ivec3) Load 147
+             149:   14(ivec4) ImageRead 146 148
+                              Store 142(r22) 149
+             153:    152(ptr) AccessChain 61 151
+             154:   21(fvec4) Load 153
+                              Store 150(lf4) 154
+             156:   21(fvec4) FunctionCall 40(SomeValue()
+                              Store 155(storeTemp) 156
+             157:          69 Load 71(g_tTex1df4)
+             158:     73(ptr) AccessChain 61 51
+             159:      6(int) Load 158
+             160:   21(fvec4) Load 155(storeTemp)
+                              ImageWrite 157 159 160
+             161:          69 Load 71(g_tTex1df4)
+             162:     73(ptr) AccessChain 61 51
+             163:      6(int) Load 162
+             164:   21(fvec4) Load 150(lf4)
+                              ImageWrite 161 163 164
+                              Store 165(storeTemp) 167
+             168:          83 Load 85(g_tTex1di4)
+             169:     73(ptr) AccessChain 61 51
+             170:      6(int) Load 169
+             171:    7(ivec4) Load 165(storeTemp)
+                              ImageWrite 168 170 171
+                              Store 172(storeTemp) 176
+             177:          91 Load 93(g_tTex1du4)
+             178:     73(ptr) AccessChain 61 51
+             179:      6(int) Load 178
+             180:   14(ivec4) Load 172(storeTemp)
+                              ImageWrite 177 179 180
+             184:     73(ptr) AccessChain 61 51
+             185:      6(int) Load 184
+                              Store 183(coordTemp) 185
+             187:          69 Load 71(g_tTex1df4)
+             188:      6(int) Load 183(coordTemp)
+             189:   21(fvec4) ImageRead 187 188
+                              Store 186(storeTemp) 189
+             191:   21(fvec4) Load 186(storeTemp)
+             192:   21(fvec4) VectorTimesScalar 191 190
+                              Store 186(storeTemp) 192
+             193:          69 Load 71(g_tTex1df4)
+             194:      6(int) Load 183(coordTemp)
+             195:   21(fvec4) Load 186(storeTemp)
+                              ImageWrite 193 194 195
+             196:   21(fvec4) Load 186(storeTemp)
+                              Store 181(val1) 196
+             198:     73(ptr) AccessChain 61 51
+             199:      6(int) Load 198
+                              Store 197(coordTemp) 199
+             201:          69 Load 71(g_tTex1df4)
+             202:      6(int) Load 197(coordTemp)
+             203:   21(fvec4) ImageRead 201 202
+                              Store 200(storeTemp) 203
+             205:   21(fvec4) Load 200(storeTemp)
+             206:   21(fvec4) CompositeConstruct 204 204 204 204
+             207:   21(fvec4) FSub 205 206
+                              Store 200(storeTemp) 207
+             208:          69 Load 71(g_tTex1df4)
+             209:      6(int) Load 197(coordTemp)
+             210:   21(fvec4) Load 200(storeTemp)
+                              ImageWrite 208 209 210
+             212:     73(ptr) AccessChain 61 51
+             213:      6(int) Load 212
+                              Store 211(coordTemp) 213
+             215:          69 Load 71(g_tTex1df4)
+             216:      6(int) Load 211(coordTemp)
+             217:   21(fvec4) ImageRead 215 216
+                              Store 214(storeTemp) 217
+             219:   21(fvec4) Load 214(storeTemp)
+             220:   21(fvec4) CompositeConstruct 218 218 218 218
+             221:   21(fvec4) FAdd 219 220
+                              Store 214(storeTemp) 221
+             222:          69 Load 71(g_tTex1df4)
+             223:      6(int) Load 211(coordTemp)
+             224:   21(fvec4) Load 214(storeTemp)
+                              ImageWrite 222 223 224
+             226:     73(ptr) AccessChain 61 51
+             227:      6(int) Load 226
+                              Store 225(coordTemp) 227
+             229:          83 Load 85(g_tTex1di4)
+             230:      6(int) Load 225(coordTemp)
+             231:    7(ivec4) ImageRead 229 230
+                              Store 228(storeTemp) 231
+             232:    7(ivec4) Load 228(storeTemp)
+             233:    7(ivec4) CompositeConstruct 129 129 129 129
+             234:    7(ivec4) SDiv 232 233
+                              Store 228(storeTemp) 234
+             235:          83 Load 85(g_tTex1di4)
+             236:      6(int) Load 225(coordTemp)
+             237:    7(ivec4) Load 228(storeTemp)
+                              ImageWrite 235 236 237
+             239:     73(ptr) AccessChain 61 51
+             240:      6(int) Load 239
+                              Store 238(coordTemp) 240
+             242:          83 Load 85(g_tTex1di4)
+             243:      6(int) Load 238(coordTemp)
+             244:    7(ivec4) ImageRead 242 243
+                              Store 241(storeTemp) 244
+             245:    7(ivec4) Load 241(storeTemp)
+             246:    7(ivec4) CompositeConstruct 129 129 129 129
+             247:    7(ivec4) SMod 245 246
+                              Store 241(storeTemp) 247
+             248:          83 Load 85(g_tTex1di4)
+             249:      6(int) Load 238(coordTemp)
+             250:    7(ivec4) Load 241(storeTemp)
+                              ImageWrite 248 249 250
+             252:     73(ptr) AccessChain 61 51
+             253:      6(int) Load 252
+                              Store 251(coordTemp) 253
+             255:          83 Load 85(g_tTex1di4)
+             256:      6(int) Load 251(coordTemp)
+             257:    7(ivec4) ImageRead 255 256
+                              Store 254(storeTemp) 257
+             259:    7(ivec4) Load 254(storeTemp)
+             260:    7(ivec4) CompositeConstruct 258 258 258 258
+             261:    7(ivec4) BitwiseAnd 259 260
+                              Store 254(storeTemp) 261
+             262:          83 Load 85(g_tTex1di4)
+             263:      6(int) Load 251(coordTemp)
+             264:    7(ivec4) Load 254(storeTemp)
+                              ImageWrite 262 263 264
+             266:     73(ptr) AccessChain 61 51
+             267:      6(int) Load 266
+                              Store 265(coordTemp) 267
+             269:          83 Load 85(g_tTex1di4)
+             270:      6(int) Load 265(coordTemp)
+             271:    7(ivec4) ImageRead 269 270
+                              Store 268(storeTemp) 271
+             273:    7(ivec4) Load 268(storeTemp)
+             274:    7(ivec4) CompositeConstruct 272 272 272 272
+             275:    7(ivec4) BitwiseOr 273 274
+                              Store 268(storeTemp) 275
+             276:          83 Load 85(g_tTex1di4)
+             277:      6(int) Load 265(coordTemp)
+             278:    7(ivec4) Load 268(storeTemp)
+                              ImageWrite 276 277 278
+             280:     73(ptr) AccessChain 61 51
+             281:      6(int) Load 280
+                              Store 279(coordTemp) 281
+             283:          83 Load 85(g_tTex1di4)
+             284:      6(int) Load 279(coordTemp)
+             285:    7(ivec4) ImageRead 283 284
+                              Store 282(storeTemp) 285
+             286:    7(ivec4) Load 282(storeTemp)
+             287:    7(ivec4) CompositeConstruct 129 129 129 129
+             288:    7(ivec4) ShiftLeftLogical 286 287
+                              Store 282(storeTemp) 288
+             289:          83 Load 85(g_tTex1di4)
+             290:      6(int) Load 279(coordTemp)
+             291:    7(ivec4) Load 282(storeTemp)
+                              ImageWrite 289 290 291
+             293:     73(ptr) AccessChain 61 51
+             294:      6(int) Load 293
+                              Store 292(coordTemp) 294
+             296:          83 Load 85(g_tTex1di4)
+             297:      6(int) Load 292(coordTemp)
+             298:    7(ivec4) ImageRead 296 297
+                              Store 295(storeTemp) 298
+             299:    7(ivec4) Load 295(storeTemp)
+             300:    7(ivec4) CompositeConstruct 129 129 129 129
+             301:    7(ivec4) ShiftRightArithmetic 299 300
+                              Store 295(storeTemp) 301
+             302:          83 Load 85(g_tTex1di4)
+             303:      6(int) Load 292(coordTemp)
+             304:    7(ivec4) Load 295(storeTemp)
+                              ImageWrite 302 303 304
+             306:   21(fvec4) FunctionCall 40(SomeValue()
+                              Store 305(storeTemp) 306
+             307:          99 Load 101(g_tTex2df4)
+             308:    104(ptr) AccessChain 61 103
+             309:   57(ivec2) Load 308
+             310:   21(fvec4) Load 305(storeTemp)
+                              ImageWrite 307 309 310
+             311:          99 Load 101(g_tTex2df4)
+             312:    104(ptr) AccessChain 61 103
+             313:   57(ivec2) Load 312
+             314:   21(fvec4) Load 150(lf4)
+                              ImageWrite 311 313 314
+                              Store 315(storeTemp) 317
+             318:         109 Load 111(g_tTex2di4)
+             319:    104(ptr) AccessChain 61 103
+             320:   57(ivec2) Load 319
+             321:    7(ivec4) Load 315(storeTemp)
+                              ImageWrite 318 320 321
+                              Store 322(storeTemp) 324
+             325:         117 Load 119(g_tTex2du4)
+             326:    104(ptr) AccessChain 61 103
+             327:   57(ivec2) Load 326
+             328:   14(ivec4) Load 322(storeTemp)
+                              ImageWrite 325 327 328
+             330:   21(fvec4) FunctionCall 40(SomeValue()
+                              Store 329(storeTemp) 330
+             331:         125 Load 127(g_tTex3df4)
+             332:    130(ptr) AccessChain 61 129
+             333:   58(ivec3) Load 332
+             334:   21(fvec4) Load 329(storeTemp)
+                              ImageWrite 331 333 334
+             335:         125 Load 127(g_tTex3df4)
+             336:    130(ptr) AccessChain 61 129
+             337:   58(ivec3) Load 336
+             338:   21(fvec4) Load 150(lf4)
+                              ImageWrite 335 337 338
+                              Store 339(storeTemp) 342
+             343:         135 Load 137(g_tTex3di4)
+             344:    130(ptr) AccessChain 61 129
+             345:   58(ivec3) Load 344
+             346:    7(ivec4) Load 339(storeTemp)
+                              ImageWrite 343 345 346
+                              Store 347(storeTemp) 349
+             350:         143 Load 145(g_tTex3du4)
+             351:    130(ptr) AccessChain 61 129
+             352:   58(ivec3) Load 351
+             353:   14(ivec4) Load 347(storeTemp)
+                              ImageWrite 350 352 353
+             354:          69 Load 71(g_tTex1df4)
+             355:     73(ptr) AccessChain 61 51
+             356:      6(int) Load 355
+             357:   21(fvec4) ImageRead 354 356
+                              Store 358(param) 357
+             359:   21(fvec4) FunctionCall 25(Fn1(vf4;) 358(param)
+             360:          83 Load 85(g_tTex1di4)
+             361:     73(ptr) AccessChain 61 51
+             362:      6(int) Load 361
+             363:    7(ivec4) ImageRead 360 362
+                              Store 364(param) 363
+             365:    7(ivec4) FunctionCall 11(Fn1(vi4;) 364(param)
+             366:          91 Load 93(g_tTex1du4)
+             367:     73(ptr) AccessChain 61 51
+             368:      6(int) Load 367
+             369:   14(ivec4) ImageRead 366 368
+                              Store 370(param) 369
+             371:   14(ivec4) FunctionCall 18(Fn1(vu4;) 370(param)
+             374:           2 FunctionCall 37(Fn2(vf4;) 373(param)
+             375:   21(fvec4) Load 373(param)
+                              Store 372(tempArg) 375
+             376:          69 Load 71(g_tTex1df4)
+             377:     73(ptr) AccessChain 61 51
+             378:      6(int) Load 377
+             379:   21(fvec4) Load 372(tempArg)
+                              ImageWrite 376 378 379
+             382:           2 FunctionCall 29(Fn2(vi4;) 381(param)
+             383:    7(ivec4) Load 381(param)
+                              Store 380(tempArg) 383
+             384:          83 Load 85(g_tTex1di4)
+             385:     73(ptr) AccessChain 61 51
+             386:      6(int) Load 385
+             387:    7(ivec4) Load 380(tempArg)
+                              ImageWrite 384 386 387
+             390:           2 FunctionCall 33(Fn2(vu4;) 389(param)
+             391:   14(ivec4) Load 389(param)
+                              Store 388(tempArg) 391
+             392:          91 Load 93(g_tTex1du4)
+             393:     73(ptr) AccessChain 61 51
+             394:      6(int) Load 393
+             395:   14(ivec4) Load 388(tempArg)
+                              ImageWrite 392 394 395
+             397:     73(ptr) AccessChain 61 51
+             398:      6(int) Load 397
+                              Store 396(coordTemp) 398
+             400:          69 Load 71(g_tTex1df4)
+             401:      6(int) Load 396(coordTemp)
+             402:   21(fvec4) ImageRead 400 401
+                              Store 399(storeTemp) 402
+             403:   21(fvec4) Load 399(storeTemp)
+             405:   21(fvec4) CompositeConstruct 404 404 404 404
+             406:   21(fvec4) FAdd 403 405
+                              Store 399(storeTemp) 406
+             407:          69 Load 71(g_tTex1df4)
+             408:      6(int) Load 396(coordTemp)
+             409:   21(fvec4) Load 399(storeTemp)
+                              ImageWrite 407 408 409
+             411:     73(ptr) AccessChain 61 51
+             412:      6(int) Load 411
+                              Store 410(coordTemp) 412
+             414:          83 Load 85(g_tTex1di4)
+             415:      6(int) Load 410(coordTemp)
+             416:    7(ivec4) ImageRead 414 415
+                              Store 413(storeTemp) 416
+             417:    7(ivec4) Load 413(storeTemp)
+             418:    7(ivec4) CompositeConstruct 103 103 103 103
+             419:    7(ivec4) IAdd 417 418
+                              Store 413(storeTemp) 419
+             420:          83 Load 85(g_tTex1di4)
+             421:      6(int) Load 410(coordTemp)
+             422:    7(ivec4) Load 413(storeTemp)
+                              ImageWrite 420 421 422
+             424:     73(ptr) AccessChain 61 51
+             425:      6(int) Load 424
+                              Store 423(coordTemp) 425
+             427:          91 Load 93(g_tTex1du4)
+             428:      6(int) Load 423(coordTemp)
+             429:   14(ivec4) ImageRead 427 428
+                              Store 426(storeTemp) 429
+             430:   14(ivec4) Load 426(storeTemp)
+             431:    7(ivec4) CompositeConstruct 103 103 103 103
+             432:   14(ivec4) IAdd 430 431
+                              Store 426(storeTemp) 432
+             433:          91 Load 93(g_tTex1du4)
+             434:      6(int) Load 423(coordTemp)
+             435:   14(ivec4) Load 426(storeTemp)
+                              ImageWrite 433 434 435
+             437:     73(ptr) AccessChain 61 51
+             438:      6(int) Load 437
+                              Store 436(coordTemp) 438
+             440:          69 Load 71(g_tTex1df4)
+             441:      6(int) Load 436(coordTemp)
+             442:   21(fvec4) ImageRead 440 441
+                              Store 439(storeTemp) 442
+             443:   21(fvec4) Load 439(storeTemp)
+             444:   21(fvec4) CompositeConstruct 404 404 404 404
+             445:   21(fvec4) FSub 443 444
+                              Store 439(storeTemp) 445
+             446:          69 Load 71(g_tTex1df4)
+             447:      6(int) Load 436(coordTemp)
+             448:   21(fvec4) Load 439(storeTemp)
+                              ImageWrite 446 447 448
+             450:     73(ptr) AccessChain 61 51
+             451:      6(int) Load 450
+                              Store 449(coordTemp) 451
+             453:          83 Load 85(g_tTex1di4)
+             454:      6(int) Load 449(coordTemp)
+             455:    7(ivec4) ImageRead 453 454
+                              Store 452(storeTemp) 455
+             456:    7(ivec4) Load 452(storeTemp)
+             457:    7(ivec4) CompositeConstruct 103 103 103 103
+             458:    7(ivec4) ISub 456 457
+                              Store 452(storeTemp) 458
+             459:          83 Load 85(g_tTex1di4)
+             460:      6(int) Load 449(coordTemp)
+             461:    7(ivec4) Load 452(storeTemp)
+                              ImageWrite 459 460 461
+             463:     73(ptr) AccessChain 61 51
+             464:      6(int) Load 463
+                              Store 462(coordTemp) 464
+             466:          91 Load 93(g_tTex1du4)
+             467:      6(int) Load 462(coordTemp)
+             468:   14(ivec4) ImageRead 466 467
+                              Store 465(storeTemp) 468
+             469:   14(ivec4) Load 465(storeTemp)
+             470:    7(ivec4) CompositeConstruct 103 103 103 103
+             471:   14(ivec4) ISub 469 470
+                              Store 465(storeTemp) 471
+             472:          91 Load 93(g_tTex1du4)
+             473:      6(int) Load 462(coordTemp)
+             474:   14(ivec4) Load 465(storeTemp)
+                              ImageWrite 472 473 474
+             476:     73(ptr) AccessChain 61 51
+             477:      6(int) Load 476
+                              Store 475(coordTemp) 477
+             479:          69 Load 71(g_tTex1df4)
+             480:      6(int) Load 475(coordTemp)
+             481:   21(fvec4) ImageRead 479 480
+                              Store 478(storeTempPre) 481
+             483:   21(fvec4) Load 478(storeTempPre)
+                              Store 482(storeTempPost) 483
+             484:   21(fvec4) Load 482(storeTempPost)
+             485:   21(fvec4) CompositeConstruct 404 404 404 404
+             486:   21(fvec4) FAdd 484 485
+                              Store 482(storeTempPost) 486
+             487:          69 Load 71(g_tTex1df4)
+             488:      6(int) Load 475(coordTemp)
+             489:   21(fvec4) Load 482(storeTempPost)
+                              ImageWrite 487 488 489
+             491:     73(ptr) AccessChain 61 51
+             492:      6(int) Load 491
+                              Store 490(coordTemp) 492
+             494:          91 Load 93(g_tTex1du4)
+             495:      6(int) Load 490(coordTemp)
+             496:   14(ivec4) ImageRead 494 495
+                              Store 493(storeTempPre) 496
+             498:   14(ivec4) Load 493(storeTempPre)
+                              Store 497(storeTempPost) 498
+             499:   14(ivec4) Load 497(storeTempPost)
+             500:    7(ivec4) CompositeConstruct 103 103 103 103
+             501:   14(ivec4) ISub 499 500
+                              Store 497(storeTempPost) 501
+             502:          91 Load 93(g_tTex1du4)
+             503:      6(int) Load 490(coordTemp)
+             504:   14(ivec4) Load 497(storeTempPost)
+                              ImageWrite 502 503 504
+             506:     73(ptr) AccessChain 61 51
+             507:      6(int) Load 506
+                              Store 505(coordTemp) 507
+             509:          83 Load 85(g_tTex1di4)
+             510:      6(int) Load 505(coordTemp)
+             511:    7(ivec4) ImageRead 509 510
+                              Store 508(storeTempPre) 511
+             513:    7(ivec4) Load 508(storeTempPre)
+                              Store 512(storeTempPost) 513
+             514:    7(ivec4) Load 512(storeTempPost)
+             515:    7(ivec4) CompositeConstruct 103 103 103 103
+             516:    7(ivec4) IAdd 514 515
+                              Store 512(storeTempPost) 516
+             517:          83 Load 85(g_tTex1di4)
+             518:      6(int) Load 505(coordTemp)
+             519:    7(ivec4) Load 512(storeTempPost)
+                              ImageWrite 517 518 519
+             521:     73(ptr) AccessChain 61 51
+             522:      6(int) Load 521
+                              Store 520(coordTemp) 522
+             524:          69 Load 71(g_tTex1df4)
+             525:      6(int) Load 520(coordTemp)
+             526:   21(fvec4) ImageRead 524 525
+                              Store 523(storeTempPre) 526
+             528:   21(fvec4) Load 523(storeTempPre)
+                              Store 527(storeTempPost) 528
+             529:   21(fvec4) Load 527(storeTempPost)
+             530:   21(fvec4) CompositeConstruct 404 404 404 404
+             531:   21(fvec4) FSub 529 530
+                              Store 527(storeTempPost) 531
+             532:          69 Load 71(g_tTex1df4)
+             533:      6(int) Load 520(coordTemp)
+             534:   21(fvec4) Load 527(storeTempPost)
+                              ImageWrite 532 533 534
+             536:     73(ptr) AccessChain 61 51
+             537:      6(int) Load 536
+                              Store 535(coordTemp) 537
+             539:          83 Load 85(g_tTex1di4)
+             540:      6(int) Load 535(coordTemp)
+             541:    7(ivec4) ImageRead 539 540
+                              Store 538(storeTempPre) 541
+             543:    7(ivec4) Load 538(storeTempPre)
+                              Store 542(storeTempPost) 543
+             544:    7(ivec4) Load 542(storeTempPost)
+             545:    7(ivec4) CompositeConstruct 103 103 103 103
+             546:    7(ivec4) IAdd 544 545
+                              Store 542(storeTempPost) 546
+             547:          83 Load 85(g_tTex1di4)
+             548:      6(int) Load 535(coordTemp)
+             549:    7(ivec4) Load 542(storeTempPost)
+                              ImageWrite 547 548 549
+             551:     73(ptr) AccessChain 61 51
+             552:      6(int) Load 551
+                              Store 550(coordTemp) 552
+             554:          91 Load 93(g_tTex1du4)
+             555:      6(int) Load 550(coordTemp)
+             556:   14(ivec4) ImageRead 554 555
+                              Store 553(storeTempPre) 556
+             558:   14(ivec4) Load 553(storeTempPre)
+                              Store 557(storeTempPost) 558
+             559:   14(ivec4) Load 557(storeTempPost)
+             560:    7(ivec4) CompositeConstruct 103 103 103 103
+             561:   14(ivec4) ISub 559 560
+                              Store 557(storeTempPost) 561
+             562:          91 Load 93(g_tTex1du4)
+             563:      6(int) Load 550(coordTemp)
+             564:   14(ivec4) Load 557(storeTempPost)
+                              ImageWrite 562 563 564
+             566:          99 Load 101(g_tTex2df4)
+             568:   21(fvec4) ImageRead 566 567
+                              Store 565(storeTemp) 568
+             569:          69 Load 71(g_tTex1df4)
+             570:   21(fvec4) Load 565(storeTemp)
+                              ImageWrite 569 103 570
+             575:     22(ptr) AccessChain 573(psout) 51
+                              Store 575 574
+             578:     22(ptr) AccessChain 573(psout) 51
+             579:   21(fvec4) Load 578
+                              Store 577(Color) 579
+                              Return
+                              FunctionEnd
+    11(Fn1(vi4;):    7(ivec4) Function None 9
+           10(x):      8(ptr) FunctionParameter
+              12:             Label
+              42:    7(ivec4) Load 10(x)
+                              ReturnValue 42
+                              FunctionEnd
+    18(Fn1(vu4;):   14(ivec4) Function None 16
+           17(x):     15(ptr) FunctionParameter
+              19:             Label
+              45:   14(ivec4) Load 17(x)
+                              ReturnValue 45
+                              FunctionEnd
+    25(Fn1(vf4;):   21(fvec4) Function None 23
+           24(x):     22(ptr) FunctionParameter
+              26:             Label
+              48:   21(fvec4) Load 24(x)
+                              ReturnValue 48
+                              FunctionEnd
+    29(Fn2(vi4;):           2 Function None 27
+           28(x):      8(ptr) FunctionParameter
+              30:             Label
+                              Store 28(x) 52
+                              Return
+                              FunctionEnd
+    33(Fn2(vu4;):           2 Function None 31
+           32(x):     15(ptr) FunctionParameter
+              34:             Label
+                              Store 32(x) 54
+                              Return
+                              FunctionEnd
+    37(Fn2(vf4;):           2 Function None 35
+           36(x):     22(ptr) FunctionParameter
+              38:             Label
+                              Store 36(x) 56
+                              Return
+                              FunctionEnd
+  40(SomeValue():   21(fvec4) Function None 39
+              41:             Label
+              64:     63(ptr) AccessChain 61 62
+              65:    7(ivec4) Load 64
+              66:   21(fvec4) ConvertSToF 65
+                              ReturnValue 66
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
new file mode 100644
index 0000000..904c2da
--- /dev/null
+++ b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out
@@ -0,0 +1,2560 @@
+hlsl.rw.scalar.bracket.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:42  Function Definition: Fn1(i1; (temp int)
+0:42    Function Parameters: 
+0:42      'x' (in int)
+0:?     Sequence
+0:42      Branch: Return with expression
+0:42        'x' (in int)
+0:43  Function Definition: Fn1(u1; (temp uint)
+0:43    Function Parameters: 
+0:43      'x' (in uint)
+0:?     Sequence
+0:43      Branch: Return with expression
+0:43        'x' (in uint)
+0:44  Function Definition: Fn1(f1; (temp float)
+0:44    Function Parameters: 
+0:44      'x' (in float)
+0:?     Sequence
+0:44      Branch: Return with expression
+0:44        'x' (in float)
+0:46  Function Definition: Fn2(i1; (temp void)
+0:46    Function Parameters: 
+0:46      'x' (out int)
+0:?     Sequence
+0:46      move second child to first child (temp int)
+0:46        'x' (out int)
+0:46        Constant:
+0:46          0 (const int)
+0:47  Function Definition: Fn2(u1; (temp void)
+0:47    Function Parameters: 
+0:47      'x' (out uint)
+0:?     Sequence
+0:47      move second child to first child (temp uint)
+0:47        'x' (out uint)
+0:47        Constant:
+0:47          0 (const uint)
+0:48  Function Definition: Fn2(f1; (temp void)
+0:48    Function Parameters: 
+0:48      'x' (out float)
+0:?     Sequence
+0:48      move second child to first child (temp float)
+0:48        'x' (out float)
+0:48        Constant:
+0:48          0.000000
+0:50  Function Definition: SomeValue( (temp float)
+0:50    Function Parameters: 
+0:?     Sequence
+0:50      Branch: Return with expression
+0:50        Convert int to float (temp float)
+0:50          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:50            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:50            Constant:
+0:50              0 (const uint)
+0:53  Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:53    Function Parameters: 
+0:?     Sequence
+0:57      imageLoad (temp float)
+0:57        'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:57        c1: direct index for structure (layout(offset=0 ) uniform int)
+0:57          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:57          Constant:
+0:57            0 (const uint)
+0:59      Sequence
+0:59        move second child to first child (temp float)
+0:59          'r00' (temp float)
+0:59          imageLoad (temp float)
+0:59            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:59            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:59              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:59              Constant:
+0:59                0 (const uint)
+0:60      Sequence
+0:60        move second child to first child (temp int)
+0:60          'r01' (temp int)
+0:60          imageLoad (temp int)
+0:60            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:60            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:60              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:60              Constant:
+0:60                0 (const uint)
+0:61      Sequence
+0:61        move second child to first child (temp uint)
+0:61          'r02' (temp uint)
+0:61          imageLoad (temp uint)
+0:61            'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:61            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:61              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:61              Constant:
+0:61                0 (const uint)
+0:64      Sequence
+0:64        move second child to first child (temp float)
+0:64          'r10' (temp float)
+0:64          imageLoad (temp float)
+0:64            'g_tTex2df1' (layout(r32f ) uniform image2D)
+0:64            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:64              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:64              Constant:
+0:64                1 (const uint)
+0:65      Sequence
+0:65        move second child to first child (temp int)
+0:65          'r11' (temp int)
+0:65          imageLoad (temp int)
+0:65            'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:65            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:65              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:65              Constant:
+0:65                1 (const uint)
+0:66      Sequence
+0:66        move second child to first child (temp uint)
+0:66          'r12' (temp uint)
+0:66          imageLoad (temp uint)
+0:66            'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:66            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:66              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:66              Constant:
+0:66                1 (const uint)
+0:69      Sequence
+0:69        move second child to first child (temp float)
+0:69          'r20' (temp float)
+0:69          imageLoad (temp float)
+0:69            'g_tTex3df1' (layout(r32f ) uniform image3D)
+0:69            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:69              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:69              Constant:
+0:69                2 (const uint)
+0:70      Sequence
+0:70        move second child to first child (temp int)
+0:70          'r21' (temp int)
+0:70          imageLoad (temp int)
+0:70            'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:70            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:70              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:70              Constant:
+0:70                2 (const uint)
+0:71      Sequence
+0:71        move second child to first child (temp uint)
+0:71          'r22' (temp uint)
+0:71          imageLoad (temp uint)
+0:71            'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:71            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:71              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:71              Constant:
+0:71                2 (const uint)
+0:73      Sequence
+0:73        move second child to first child (temp float)
+0:73          'lf1' (temp float)
+0:73          uf1: direct index for structure (layout(offset=96 ) uniform float)
+0:73            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:73            Constant:
+0:73              8 (const uint)
+0:77      Sequence
+0:77        move second child to first child (temp float)
+0:77          'storeTemp' (temp float)
+0:77          Function Call: SomeValue( (temp float)
+0:77        imageStore (temp void)
+0:77          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:77          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:77            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:77            Constant:
+0:77              0 (const uint)
+0:77          'storeTemp' (temp float)
+0:77        'storeTemp' (temp float)
+0:78      Sequence
+0:78        imageStore (temp void)
+0:78          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:78          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:78            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:78            Constant:
+0:78              0 (const uint)
+0:78          'lf1' (temp float)
+0:78        'lf1' (temp float)
+0:79      Sequence
+0:79        move second child to first child (temp int)
+0:79          'storeTemp' (temp int)
+0:79          Constant:
+0:79            2 (const int)
+0:79        imageStore (temp void)
+0:79          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:79          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:79            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:79            Constant:
+0:79              0 (const uint)
+0:79          'storeTemp' (temp int)
+0:79        'storeTemp' (temp int)
+0:80      Sequence
+0:80        move second child to first child (temp uint)
+0:80          'storeTemp' (temp uint)
+0:80          Constant:
+0:80            3 (const uint)
+0:80        imageStore (temp void)
+0:80          'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:80          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:80            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:80            Constant:
+0:80              0 (const uint)
+0:80          'storeTemp' (temp uint)
+0:80        'storeTemp' (temp uint)
+0:83      Sequence
+0:83        move second child to first child (temp float)
+0:83          'val1' (temp float)
+0:83          Sequence
+0:83            move second child to first child (temp int)
+0:83              'coordTemp' (temp int)
+0:83              c1: direct index for structure (layout(offset=0 ) uniform int)
+0:83                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:83                Constant:
+0:83                  0 (const uint)
+0:83            move second child to first child (temp float)
+0:83              'storeTemp' (temp float)
+0:83              imageLoad (temp float)
+0:83                'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:83                'coordTemp' (temp int)
+0:83            multiply second child into first child (temp float)
+0:83              'storeTemp' (temp float)
+0:83              Constant:
+0:83                2.000000
+0:83            imageStore (temp void)
+0:83              'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:83              'coordTemp' (temp int)
+0:83              'storeTemp' (temp float)
+0:83            'storeTemp' (temp float)
+0:84      Sequence
+0:84        move second child to first child (temp int)
+0:84          'coordTemp' (temp int)
+0:84          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:84            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:84            Constant:
+0:84              0 (const uint)
+0:84        move second child to first child (temp float)
+0:84          'storeTemp' (temp float)
+0:84          imageLoad (temp float)
+0:84            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:84            'coordTemp' (temp int)
+0:84        subtract second child into first child (temp float)
+0:84          'storeTemp' (temp float)
+0:84          Constant:
+0:84            3.000000
+0:84        imageStore (temp void)
+0:84          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:84          'coordTemp' (temp int)
+0:84          'storeTemp' (temp float)
+0:84        'storeTemp' (temp float)
+0:85      Sequence
+0:85        move second child to first child (temp int)
+0:85          'coordTemp' (temp int)
+0:85          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:85            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:85            Constant:
+0:85              0 (const uint)
+0:85        move second child to first child (temp float)
+0:85          'storeTemp' (temp float)
+0:85          imageLoad (temp float)
+0:85            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:85            'coordTemp' (temp int)
+0:85        add second child into first child (temp float)
+0:85          'storeTemp' (temp float)
+0:85          Constant:
+0:85            4.000000
+0:85        imageStore (temp void)
+0:85          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:85          'coordTemp' (temp int)
+0:85          'storeTemp' (temp float)
+0:85        'storeTemp' (temp float)
+0:87      Sequence
+0:87        move second child to first child (temp int)
+0:87          'coordTemp' (temp int)
+0:87          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:87            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:87            Constant:
+0:87              0 (const uint)
+0:87        move second child to first child (temp int)
+0:87          'storeTemp' (temp int)
+0:87          imageLoad (temp int)
+0:87            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:87            'coordTemp' (temp int)
+0:87        divide second child into first child (temp int)
+0:87          'storeTemp' (temp int)
+0:87          Constant:
+0:87            2 (const int)
+0:87        imageStore (temp void)
+0:87          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:87          'coordTemp' (temp int)
+0:87          'storeTemp' (temp int)
+0:87        'storeTemp' (temp int)
+0:88      Sequence
+0:88        move second child to first child (temp int)
+0:88          'coordTemp' (temp int)
+0:88          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:88            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:88            Constant:
+0:88              0 (const uint)
+0:88        move second child to first child (temp int)
+0:88          'storeTemp' (temp int)
+0:88          imageLoad (temp int)
+0:88            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:88            'coordTemp' (temp int)
+0:88        mod second child into first child (temp int)
+0:88          'storeTemp' (temp int)
+0:88          Constant:
+0:88            2 (const int)
+0:88        imageStore (temp void)
+0:88          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:88          'coordTemp' (temp int)
+0:88          'storeTemp' (temp int)
+0:88        'storeTemp' (temp int)
+0:89      Sequence
+0:89        move second child to first child (temp int)
+0:89          'coordTemp' (temp int)
+0:89          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:89            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:89            Constant:
+0:89              0 (const uint)
+0:89        move second child to first child (temp int)
+0:89          'storeTemp' (temp int)
+0:89          imageLoad (temp int)
+0:89            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:89            'coordTemp' (temp int)
+0:89        and second child into first child (temp int)
+0:89          'storeTemp' (temp int)
+0:89          Constant:
+0:89            65535 (const int)
+0:89        imageStore (temp void)
+0:89          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:89          'coordTemp' (temp int)
+0:89          'storeTemp' (temp int)
+0:89        'storeTemp' (temp int)
+0:90      Sequence
+0:90        move second child to first child (temp int)
+0:90          'coordTemp' (temp int)
+0:90          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:90            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:90            Constant:
+0:90              0 (const uint)
+0:90        move second child to first child (temp int)
+0:90          'storeTemp' (temp int)
+0:90          imageLoad (temp int)
+0:90            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:90            'coordTemp' (temp int)
+0:90        or second child into first child (temp int)
+0:90          'storeTemp' (temp int)
+0:90          Constant:
+0:90            61680 (const int)
+0:90        imageStore (temp void)
+0:90          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:90          'coordTemp' (temp int)
+0:90          'storeTemp' (temp int)
+0:90        'storeTemp' (temp int)
+0:91      Sequence
+0:91        move second child to first child (temp int)
+0:91          'coordTemp' (temp int)
+0:91          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:91            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:91            Constant:
+0:91              0 (const uint)
+0:91        move second child to first child (temp int)
+0:91          'storeTemp' (temp int)
+0:91          imageLoad (temp int)
+0:91            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:91            'coordTemp' (temp int)
+0:91        left shift second child into first child (temp int)
+0:91          'storeTemp' (temp int)
+0:91          Constant:
+0:91            2 (const int)
+0:91        imageStore (temp void)
+0:91          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:91          'coordTemp' (temp int)
+0:91          'storeTemp' (temp int)
+0:91        'storeTemp' (temp int)
+0:92      Sequence
+0:92        move second child to first child (temp int)
+0:92          'coordTemp' (temp int)
+0:92          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:92            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:92            Constant:
+0:92              0 (const uint)
+0:92        move second child to first child (temp int)
+0:92          'storeTemp' (temp int)
+0:92          imageLoad (temp int)
+0:92            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:92            'coordTemp' (temp int)
+0:92        right shift second child into first child (temp int)
+0:92          'storeTemp' (temp int)
+0:92          Constant:
+0:92            2 (const int)
+0:92        imageStore (temp void)
+0:92          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:92          'coordTemp' (temp int)
+0:92          'storeTemp' (temp int)
+0:92        'storeTemp' (temp int)
+0:95      Sequence
+0:95        move second child to first child (temp float)
+0:95          'storeTemp' (temp float)
+0:95          Function Call: SomeValue( (temp float)
+0:95        imageStore (temp void)
+0:95          'g_tTex2df1' (layout(r32f ) uniform image2D)
+0:95          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:95            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:95            Constant:
+0:95              1 (const uint)
+0:95          'storeTemp' (temp float)
+0:95        'storeTemp' (temp float)
+0:96      Sequence
+0:96        imageStore (temp void)
+0:96          'g_tTex2df1' (layout(r32f ) uniform image2D)
+0:96          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:96            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:96            Constant:
+0:96              1 (const uint)
+0:96          'lf1' (temp float)
+0:96        'lf1' (temp float)
+0:97      Sequence
+0:97        move second child to first child (temp int)
+0:97          'storeTemp' (temp int)
+0:97          Constant:
+0:97            5 (const int)
+0:97        imageStore (temp void)
+0:97          'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:97          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:97            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:97            Constant:
+0:97              1 (const uint)
+0:97          'storeTemp' (temp int)
+0:97        'storeTemp' (temp int)
+0:98      Sequence
+0:98        move second child to first child (temp uint)
+0:98          'storeTemp' (temp uint)
+0:98          Constant:
+0:98            6 (const uint)
+0:98        imageStore (temp void)
+0:98          'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:98          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:98            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:98            Constant:
+0:98              1 (const uint)
+0:98          'storeTemp' (temp uint)
+0:98        'storeTemp' (temp uint)
+0:101      Sequence
+0:101        move second child to first child (temp float)
+0:101          'storeTemp' (temp float)
+0:101          Function Call: SomeValue( (temp float)
+0:101        imageStore (temp void)
+0:101          'g_tTex3df1' (layout(r32f ) uniform image3D)
+0:101          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:101            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:101            Constant:
+0:101              2 (const uint)
+0:101          'storeTemp' (temp float)
+0:101        'storeTemp' (temp float)
+0:102      Sequence
+0:102        imageStore (temp void)
+0:102          'g_tTex3df1' (layout(r32f ) uniform image3D)
+0:102          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:102            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:102            Constant:
+0:102              2 (const uint)
+0:102          'lf1' (temp float)
+0:102        'lf1' (temp float)
+0:103      Sequence
+0:103        move second child to first child (temp int)
+0:103          'storeTemp' (temp int)
+0:103          Constant:
+0:103            8 (const int)
+0:103        imageStore (temp void)
+0:103          'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:103          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:103            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:103            Constant:
+0:103              2 (const uint)
+0:103          'storeTemp' (temp int)
+0:103        'storeTemp' (temp int)
+0:104      Sequence
+0:104        move second child to first child (temp uint)
+0:104          'storeTemp' (temp uint)
+0:104          Constant:
+0:104            9 (const uint)
+0:104        imageStore (temp void)
+0:104          'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:104          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:104            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:104            Constant:
+0:104              2 (const uint)
+0:104          'storeTemp' (temp uint)
+0:104        'storeTemp' (temp uint)
+0:107      Function Call: Fn1(f1; (temp float)
+0:107        imageLoad (temp float)
+0:107          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:107          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:107            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:107            Constant:
+0:107              0 (const uint)
+0:108      Function Call: Fn1(i1; (temp int)
+0:108        imageLoad (temp int)
+0:108          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:108          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:108            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:108            Constant:
+0:108              0 (const uint)
+0:109      Function Call: Fn1(u1; (temp uint)
+0:109        imageLoad (temp uint)
+0:109          'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:109          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:109            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:109            Constant:
+0:109              0 (const uint)
+0:111      Comma (temp void)
+0:111        Function Call: Fn2(f1; (temp void)
+0:111          'tempArg' (temp float)
+0:111        Sequence
+0:111          imageStore (temp void)
+0:111            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:111            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:111              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:111              Constant:
+0:111                0 (const uint)
+0:111            'tempArg' (temp float)
+0:111          'tempArg' (temp float)
+0:112      Comma (temp void)
+0:112        Function Call: Fn2(i1; (temp void)
+0:112          'tempArg' (temp int)
+0:112        Sequence
+0:112          imageStore (temp void)
+0:112            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:112            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:112              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:112              Constant:
+0:112                0 (const uint)
+0:112            'tempArg' (temp int)
+0:112          'tempArg' (temp int)
+0:113      Comma (temp void)
+0:113        Function Call: Fn2(u1; (temp void)
+0:113          'tempArg' (temp uint)
+0:113        Sequence
+0:113          imageStore (temp void)
+0:113            'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:113            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:113              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:113              Constant:
+0:113                0 (const uint)
+0:113            'tempArg' (temp uint)
+0:113          'tempArg' (temp uint)
+0:117      Sequence
+0:117        move second child to first child (temp int)
+0:117          'coordTemp' (temp int)
+0:117          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:117            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:117            Constant:
+0:117              0 (const uint)
+0:117        move second child to first child (temp float)
+0:117          'storeTemp' (temp float)
+0:117          imageLoad (temp float)
+0:117            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:117            'coordTemp' (temp int)
+0:117        Pre-Increment (temp float)
+0:117          'storeTemp' (temp float)
+0:117        imageStore (temp void)
+0:117          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:117          'coordTemp' (temp int)
+0:117          'storeTemp' (temp float)
+0:117        'storeTemp' (temp float)
+0:118      Sequence
+0:118        move second child to first child (temp int)
+0:118          'coordTemp' (temp int)
+0:118          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:118            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:118            Constant:
+0:118              0 (const uint)
+0:118        move second child to first child (temp int)
+0:118          'storeTemp' (temp int)
+0:118          imageLoad (temp int)
+0:118            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:118            'coordTemp' (temp int)
+0:118        Pre-Increment (temp int)
+0:118          'storeTemp' (temp int)
+0:118        imageStore (temp void)
+0:118          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:118          'coordTemp' (temp int)
+0:118          'storeTemp' (temp int)
+0:118        'storeTemp' (temp int)
+0:119      Sequence
+0:119        move second child to first child (temp int)
+0:119          'coordTemp' (temp int)
+0:119          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:119            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:119            Constant:
+0:119              0 (const uint)
+0:119        move second child to first child (temp uint)
+0:119          'storeTemp' (temp uint)
+0:119          imageLoad (temp uint)
+0:119            'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:119            'coordTemp' (temp int)
+0:119        Pre-Increment (temp uint)
+0:119          'storeTemp' (temp uint)
+0:119        imageStore (temp void)
+0:119          'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:119          'coordTemp' (temp int)
+0:119          'storeTemp' (temp uint)
+0:119        'storeTemp' (temp uint)
+0:121      Sequence
+0:121        move second child to first child (temp int)
+0:121          'coordTemp' (temp int)
+0:121          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:121            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:121            Constant:
+0:121              0 (const uint)
+0:121        move second child to first child (temp float)
+0:121          'storeTemp' (temp float)
+0:121          imageLoad (temp float)
+0:121            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:121            'coordTemp' (temp int)
+0:121        Pre-Decrement (temp float)
+0:121          'storeTemp' (temp float)
+0:121        imageStore (temp void)
+0:121          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:121          'coordTemp' (temp int)
+0:121          'storeTemp' (temp float)
+0:121        'storeTemp' (temp float)
+0:122      Sequence
+0:122        move second child to first child (temp int)
+0:122          'coordTemp' (temp int)
+0:122          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:122            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:122            Constant:
+0:122              0 (const uint)
+0:122        move second child to first child (temp int)
+0:122          'storeTemp' (temp int)
+0:122          imageLoad (temp int)
+0:122            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:122            'coordTemp' (temp int)
+0:122        Pre-Decrement (temp int)
+0:122          'storeTemp' (temp int)
+0:122        imageStore (temp void)
+0:122          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:122          'coordTemp' (temp int)
+0:122          'storeTemp' (temp int)
+0:122        'storeTemp' (temp int)
+0:123      Sequence
+0:123        move second child to first child (temp int)
+0:123          'coordTemp' (temp int)
+0:123          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:123            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:123            Constant:
+0:123              0 (const uint)
+0:123        move second child to first child (temp uint)
+0:123          'storeTemp' (temp uint)
+0:123          imageLoad (temp uint)
+0:123            'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:123            'coordTemp' (temp int)
+0:123        Pre-Decrement (temp uint)
+0:123          'storeTemp' (temp uint)
+0:123        imageStore (temp void)
+0:123          'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:123          'coordTemp' (temp int)
+0:123          'storeTemp' (temp uint)
+0:123        'storeTemp' (temp uint)
+0:126      Sequence
+0:126        move second child to first child (temp int)
+0:126          'coordTemp' (temp int)
+0:126          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:126            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:126            Constant:
+0:126              0 (const uint)
+0:126        move second child to first child (temp float)
+0:126          'storeTempPre' (temp float)
+0:126          imageLoad (temp float)
+0:126            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:126            'coordTemp' (temp int)
+0:126        move second child to first child (temp float)
+0:126          'storeTempPost' (temp float)
+0:126          'storeTempPre' (temp float)
+0:126        Post-Increment (temp float)
+0:126          'storeTempPost' (temp float)
+0:126        imageStore (temp void)
+0:126          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:126          'coordTemp' (temp int)
+0:126          'storeTempPost' (temp float)
+0:126        'storeTempPre' (temp float)
+0:127      Sequence
+0:127        move second child to first child (temp int)
+0:127          'coordTemp' (temp int)
+0:127          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:127            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:127            Constant:
+0:127              0 (const uint)
+0:127        move second child to first child (temp uint)
+0:127          'storeTempPre' (temp uint)
+0:127          imageLoad (temp uint)
+0:127            'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:127            'coordTemp' (temp int)
+0:127        move second child to first child (temp uint)
+0:127          'storeTempPost' (temp uint)
+0:127          'storeTempPre' (temp uint)
+0:127        Post-Decrement (temp uint)
+0:127          'storeTempPost' (temp uint)
+0:127        imageStore (temp void)
+0:127          'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:127          'coordTemp' (temp int)
+0:127          'storeTempPost' (temp uint)
+0:127        'storeTempPre' (temp uint)
+0:128      Sequence
+0:128        move second child to first child (temp int)
+0:128          'coordTemp' (temp int)
+0:128          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:128            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:128            Constant:
+0:128              0 (const uint)
+0:128        move second child to first child (temp int)
+0:128          'storeTempPre' (temp int)
+0:128          imageLoad (temp int)
+0:128            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:128            'coordTemp' (temp int)
+0:128        move second child to first child (temp int)
+0:128          'storeTempPost' (temp int)
+0:128          'storeTempPre' (temp int)
+0:128        Post-Increment (temp int)
+0:128          'storeTempPost' (temp int)
+0:128        imageStore (temp void)
+0:128          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:128          'coordTemp' (temp int)
+0:128          'storeTempPost' (temp int)
+0:128        'storeTempPre' (temp int)
+0:130      Sequence
+0:130        move second child to first child (temp int)
+0:130          'coordTemp' (temp int)
+0:130          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:130            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:130            Constant:
+0:130              0 (const uint)
+0:130        move second child to first child (temp float)
+0:130          'storeTempPre' (temp float)
+0:130          imageLoad (temp float)
+0:130            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:130            'coordTemp' (temp int)
+0:130        move second child to first child (temp float)
+0:130          'storeTempPost' (temp float)
+0:130          'storeTempPre' (temp float)
+0:130        Post-Decrement (temp float)
+0:130          'storeTempPost' (temp float)
+0:130        imageStore (temp void)
+0:130          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:130          'coordTemp' (temp int)
+0:130          'storeTempPost' (temp float)
+0:130        'storeTempPre' (temp float)
+0:131      Sequence
+0:131        move second child to first child (temp int)
+0:131          'coordTemp' (temp int)
+0:131          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:131            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:131            Constant:
+0:131              0 (const uint)
+0:131        move second child to first child (temp int)
+0:131          'storeTempPre' (temp int)
+0:131          imageLoad (temp int)
+0:131            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:131            'coordTemp' (temp int)
+0:131        move second child to first child (temp int)
+0:131          'storeTempPost' (temp int)
+0:131          'storeTempPre' (temp int)
+0:131        Post-Increment (temp int)
+0:131          'storeTempPost' (temp int)
+0:131        imageStore (temp void)
+0:131          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:131          'coordTemp' (temp int)
+0:131          'storeTempPost' (temp int)
+0:131        'storeTempPre' (temp int)
+0:132      Sequence
+0:132        move second child to first child (temp int)
+0:132          'coordTemp' (temp int)
+0:132          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:132            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:132            Constant:
+0:132              0 (const uint)
+0:132        move second child to first child (temp uint)
+0:132          'storeTempPre' (temp uint)
+0:132          imageLoad (temp uint)
+0:132            'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:132            'coordTemp' (temp int)
+0:132        move second child to first child (temp uint)
+0:132          'storeTempPost' (temp uint)
+0:132          'storeTempPre' (temp uint)
+0:132        Post-Decrement (temp uint)
+0:132          'storeTempPost' (temp uint)
+0:132        imageStore (temp void)
+0:132          'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:132          'coordTemp' (temp int)
+0:132          'storeTempPost' (temp uint)
+0:132        'storeTempPre' (temp uint)
+0:135      Sequence
+0:135        move second child to first child (temp float)
+0:135          'storeTemp' (temp float)
+0:?           imageLoad (temp float)
+0:135            'g_tTex2df1' (layout(r32f ) uniform image2D)
+0:?             Constant:
+0:?               2 (const int)
+0:?               3 (const int)
+0:135        imageStore (temp void)
+0:135          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:135          Constant:
+0:135            1 (const int)
+0:135          'storeTemp' (temp float)
+0:135        'storeTemp' (temp float)
+0:137      move second child to first child (temp 4-component vector of float)
+0:137        Color: direct index for structure (temp 4-component vector of float)
+0:137          'psout' (temp structure{temp 4-component vector of float Color})
+0:137          Constant:
+0:137            0 (const int)
+0:137        Constant:
+0:137          1.000000
+0:137          1.000000
+0:137          1.000000
+0:137          1.000000
+0:139      Sequence
+0:139        Sequence
+0:139          move second child to first child (temp 4-component vector of float)
+0:?             'Color' (layout(location=0 ) out 4-component vector of float)
+0:139            Color: direct index for structure (temp 4-component vector of float)
+0:139              'psout' (temp structure{temp 4-component vector of float Color})
+0:139              Constant:
+0:139                0 (const int)
+0:139        Branch: Return
+0:?   Linker Objects
+0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:?     'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:?     'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:?     'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:?     'g_tTex2df1' (layout(r32f ) uniform image2D)
+0:?     'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:?     'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:?     'g_tTex3df1' (layout(r32f ) uniform image3D)
+0:?     'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:?     'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:?     'g_tTex1df1a' (layout(r32f ) uniform image1DArray)
+0:?     'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:?     'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:?     'g_tTex2df1a' (layout(r32f ) uniform image2DArray)
+0:?     'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray)
+0:?     'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray)
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:?     'Color' (layout(location=0 ) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:42  Function Definition: Fn1(i1; (temp int)
+0:42    Function Parameters: 
+0:42      'x' (in int)
+0:?     Sequence
+0:42      Branch: Return with expression
+0:42        'x' (in int)
+0:43  Function Definition: Fn1(u1; (temp uint)
+0:43    Function Parameters: 
+0:43      'x' (in uint)
+0:?     Sequence
+0:43      Branch: Return with expression
+0:43        'x' (in uint)
+0:44  Function Definition: Fn1(f1; (temp float)
+0:44    Function Parameters: 
+0:44      'x' (in float)
+0:?     Sequence
+0:44      Branch: Return with expression
+0:44        'x' (in float)
+0:46  Function Definition: Fn2(i1; (temp void)
+0:46    Function Parameters: 
+0:46      'x' (out int)
+0:?     Sequence
+0:46      move second child to first child (temp int)
+0:46        'x' (out int)
+0:46        Constant:
+0:46          0 (const int)
+0:47  Function Definition: Fn2(u1; (temp void)
+0:47    Function Parameters: 
+0:47      'x' (out uint)
+0:?     Sequence
+0:47      move second child to first child (temp uint)
+0:47        'x' (out uint)
+0:47        Constant:
+0:47          0 (const uint)
+0:48  Function Definition: Fn2(f1; (temp void)
+0:48    Function Parameters: 
+0:48      'x' (out float)
+0:?     Sequence
+0:48      move second child to first child (temp float)
+0:48        'x' (out float)
+0:48        Constant:
+0:48          0.000000
+0:50  Function Definition: SomeValue( (temp float)
+0:50    Function Parameters: 
+0:?     Sequence
+0:50      Branch: Return with expression
+0:50        Convert int to float (temp float)
+0:50          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:50            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:50            Constant:
+0:50              0 (const uint)
+0:53  Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:53    Function Parameters: 
+0:?     Sequence
+0:57      imageLoad (temp float)
+0:57        'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:57        c1: direct index for structure (layout(offset=0 ) uniform int)
+0:57          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:57          Constant:
+0:57            0 (const uint)
+0:59      Sequence
+0:59        move second child to first child (temp float)
+0:59          'r00' (temp float)
+0:59          imageLoad (temp float)
+0:59            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:59            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:59              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:59              Constant:
+0:59                0 (const uint)
+0:60      Sequence
+0:60        move second child to first child (temp int)
+0:60          'r01' (temp int)
+0:60          imageLoad (temp int)
+0:60            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:60            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:60              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:60              Constant:
+0:60                0 (const uint)
+0:61      Sequence
+0:61        move second child to first child (temp uint)
+0:61          'r02' (temp uint)
+0:61          imageLoad (temp uint)
+0:61            'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:61            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:61              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:61              Constant:
+0:61                0 (const uint)
+0:64      Sequence
+0:64        move second child to first child (temp float)
+0:64          'r10' (temp float)
+0:64          imageLoad (temp float)
+0:64            'g_tTex2df1' (layout(r32f ) uniform image2D)
+0:64            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:64              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:64              Constant:
+0:64                1 (const uint)
+0:65      Sequence
+0:65        move second child to first child (temp int)
+0:65          'r11' (temp int)
+0:65          imageLoad (temp int)
+0:65            'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:65            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:65              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:65              Constant:
+0:65                1 (const uint)
+0:66      Sequence
+0:66        move second child to first child (temp uint)
+0:66          'r12' (temp uint)
+0:66          imageLoad (temp uint)
+0:66            'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:66            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:66              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:66              Constant:
+0:66                1 (const uint)
+0:69      Sequence
+0:69        move second child to first child (temp float)
+0:69          'r20' (temp float)
+0:69          imageLoad (temp float)
+0:69            'g_tTex3df1' (layout(r32f ) uniform image3D)
+0:69            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:69              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:69              Constant:
+0:69                2 (const uint)
+0:70      Sequence
+0:70        move second child to first child (temp int)
+0:70          'r21' (temp int)
+0:70          imageLoad (temp int)
+0:70            'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:70            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:70              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:70              Constant:
+0:70                2 (const uint)
+0:71      Sequence
+0:71        move second child to first child (temp uint)
+0:71          'r22' (temp uint)
+0:71          imageLoad (temp uint)
+0:71            'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:71            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:71              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:71              Constant:
+0:71                2 (const uint)
+0:73      Sequence
+0:73        move second child to first child (temp float)
+0:73          'lf1' (temp float)
+0:73          uf1: direct index for structure (layout(offset=96 ) uniform float)
+0:73            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:73            Constant:
+0:73              8 (const uint)
+0:77      Sequence
+0:77        move second child to first child (temp float)
+0:77          'storeTemp' (temp float)
+0:77          Function Call: SomeValue( (temp float)
+0:77        imageStore (temp void)
+0:77          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:77          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:77            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:77            Constant:
+0:77              0 (const uint)
+0:77          'storeTemp' (temp float)
+0:77        'storeTemp' (temp float)
+0:78      Sequence
+0:78        imageStore (temp void)
+0:78          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:78          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:78            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:78            Constant:
+0:78              0 (const uint)
+0:78          'lf1' (temp float)
+0:78        'lf1' (temp float)
+0:79      Sequence
+0:79        move second child to first child (temp int)
+0:79          'storeTemp' (temp int)
+0:79          Constant:
+0:79            2 (const int)
+0:79        imageStore (temp void)
+0:79          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:79          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:79            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:79            Constant:
+0:79              0 (const uint)
+0:79          'storeTemp' (temp int)
+0:79        'storeTemp' (temp int)
+0:80      Sequence
+0:80        move second child to first child (temp uint)
+0:80          'storeTemp' (temp uint)
+0:80          Constant:
+0:80            3 (const uint)
+0:80        imageStore (temp void)
+0:80          'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:80          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:80            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:80            Constant:
+0:80              0 (const uint)
+0:80          'storeTemp' (temp uint)
+0:80        'storeTemp' (temp uint)
+0:83      Sequence
+0:83        move second child to first child (temp float)
+0:83          'val1' (temp float)
+0:83          Sequence
+0:83            move second child to first child (temp int)
+0:83              'coordTemp' (temp int)
+0:83              c1: direct index for structure (layout(offset=0 ) uniform int)
+0:83                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:83                Constant:
+0:83                  0 (const uint)
+0:83            move second child to first child (temp float)
+0:83              'storeTemp' (temp float)
+0:83              imageLoad (temp float)
+0:83                'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:83                'coordTemp' (temp int)
+0:83            multiply second child into first child (temp float)
+0:83              'storeTemp' (temp float)
+0:83              Constant:
+0:83                2.000000
+0:83            imageStore (temp void)
+0:83              'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:83              'coordTemp' (temp int)
+0:83              'storeTemp' (temp float)
+0:83            'storeTemp' (temp float)
+0:84      Sequence
+0:84        move second child to first child (temp int)
+0:84          'coordTemp' (temp int)
+0:84          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:84            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:84            Constant:
+0:84              0 (const uint)
+0:84        move second child to first child (temp float)
+0:84          'storeTemp' (temp float)
+0:84          imageLoad (temp float)
+0:84            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:84            'coordTemp' (temp int)
+0:84        subtract second child into first child (temp float)
+0:84          'storeTemp' (temp float)
+0:84          Constant:
+0:84            3.000000
+0:84        imageStore (temp void)
+0:84          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:84          'coordTemp' (temp int)
+0:84          'storeTemp' (temp float)
+0:84        'storeTemp' (temp float)
+0:85      Sequence
+0:85        move second child to first child (temp int)
+0:85          'coordTemp' (temp int)
+0:85          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:85            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:85            Constant:
+0:85              0 (const uint)
+0:85        move second child to first child (temp float)
+0:85          'storeTemp' (temp float)
+0:85          imageLoad (temp float)
+0:85            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:85            'coordTemp' (temp int)
+0:85        add second child into first child (temp float)
+0:85          'storeTemp' (temp float)
+0:85          Constant:
+0:85            4.000000
+0:85        imageStore (temp void)
+0:85          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:85          'coordTemp' (temp int)
+0:85          'storeTemp' (temp float)
+0:85        'storeTemp' (temp float)
+0:87      Sequence
+0:87        move second child to first child (temp int)
+0:87          'coordTemp' (temp int)
+0:87          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:87            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:87            Constant:
+0:87              0 (const uint)
+0:87        move second child to first child (temp int)
+0:87          'storeTemp' (temp int)
+0:87          imageLoad (temp int)
+0:87            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:87            'coordTemp' (temp int)
+0:87        divide second child into first child (temp int)
+0:87          'storeTemp' (temp int)
+0:87          Constant:
+0:87            2 (const int)
+0:87        imageStore (temp void)
+0:87          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:87          'coordTemp' (temp int)
+0:87          'storeTemp' (temp int)
+0:87        'storeTemp' (temp int)
+0:88      Sequence
+0:88        move second child to first child (temp int)
+0:88          'coordTemp' (temp int)
+0:88          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:88            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:88            Constant:
+0:88              0 (const uint)
+0:88        move second child to first child (temp int)
+0:88          'storeTemp' (temp int)
+0:88          imageLoad (temp int)
+0:88            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:88            'coordTemp' (temp int)
+0:88        mod second child into first child (temp int)
+0:88          'storeTemp' (temp int)
+0:88          Constant:
+0:88            2 (const int)
+0:88        imageStore (temp void)
+0:88          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:88          'coordTemp' (temp int)
+0:88          'storeTemp' (temp int)
+0:88        'storeTemp' (temp int)
+0:89      Sequence
+0:89        move second child to first child (temp int)
+0:89          'coordTemp' (temp int)
+0:89          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:89            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:89            Constant:
+0:89              0 (const uint)
+0:89        move second child to first child (temp int)
+0:89          'storeTemp' (temp int)
+0:89          imageLoad (temp int)
+0:89            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:89            'coordTemp' (temp int)
+0:89        and second child into first child (temp int)
+0:89          'storeTemp' (temp int)
+0:89          Constant:
+0:89            65535 (const int)
+0:89        imageStore (temp void)
+0:89          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:89          'coordTemp' (temp int)
+0:89          'storeTemp' (temp int)
+0:89        'storeTemp' (temp int)
+0:90      Sequence
+0:90        move second child to first child (temp int)
+0:90          'coordTemp' (temp int)
+0:90          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:90            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:90            Constant:
+0:90              0 (const uint)
+0:90        move second child to first child (temp int)
+0:90          'storeTemp' (temp int)
+0:90          imageLoad (temp int)
+0:90            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:90            'coordTemp' (temp int)
+0:90        or second child into first child (temp int)
+0:90          'storeTemp' (temp int)
+0:90          Constant:
+0:90            61680 (const int)
+0:90        imageStore (temp void)
+0:90          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:90          'coordTemp' (temp int)
+0:90          'storeTemp' (temp int)
+0:90        'storeTemp' (temp int)
+0:91      Sequence
+0:91        move second child to first child (temp int)
+0:91          'coordTemp' (temp int)
+0:91          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:91            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:91            Constant:
+0:91              0 (const uint)
+0:91        move second child to first child (temp int)
+0:91          'storeTemp' (temp int)
+0:91          imageLoad (temp int)
+0:91            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:91            'coordTemp' (temp int)
+0:91        left shift second child into first child (temp int)
+0:91          'storeTemp' (temp int)
+0:91          Constant:
+0:91            2 (const int)
+0:91        imageStore (temp void)
+0:91          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:91          'coordTemp' (temp int)
+0:91          'storeTemp' (temp int)
+0:91        'storeTemp' (temp int)
+0:92      Sequence
+0:92        move second child to first child (temp int)
+0:92          'coordTemp' (temp int)
+0:92          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:92            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:92            Constant:
+0:92              0 (const uint)
+0:92        move second child to first child (temp int)
+0:92          'storeTemp' (temp int)
+0:92          imageLoad (temp int)
+0:92            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:92            'coordTemp' (temp int)
+0:92        right shift second child into first child (temp int)
+0:92          'storeTemp' (temp int)
+0:92          Constant:
+0:92            2 (const int)
+0:92        imageStore (temp void)
+0:92          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:92          'coordTemp' (temp int)
+0:92          'storeTemp' (temp int)
+0:92        'storeTemp' (temp int)
+0:95      Sequence
+0:95        move second child to first child (temp float)
+0:95          'storeTemp' (temp float)
+0:95          Function Call: SomeValue( (temp float)
+0:95        imageStore (temp void)
+0:95          'g_tTex2df1' (layout(r32f ) uniform image2D)
+0:95          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:95            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:95            Constant:
+0:95              1 (const uint)
+0:95          'storeTemp' (temp float)
+0:95        'storeTemp' (temp float)
+0:96      Sequence
+0:96        imageStore (temp void)
+0:96          'g_tTex2df1' (layout(r32f ) uniform image2D)
+0:96          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:96            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:96            Constant:
+0:96              1 (const uint)
+0:96          'lf1' (temp float)
+0:96        'lf1' (temp float)
+0:97      Sequence
+0:97        move second child to first child (temp int)
+0:97          'storeTemp' (temp int)
+0:97          Constant:
+0:97            5 (const int)
+0:97        imageStore (temp void)
+0:97          'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:97          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:97            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:97            Constant:
+0:97              1 (const uint)
+0:97          'storeTemp' (temp int)
+0:97        'storeTemp' (temp int)
+0:98      Sequence
+0:98        move second child to first child (temp uint)
+0:98          'storeTemp' (temp uint)
+0:98          Constant:
+0:98            6 (const uint)
+0:98        imageStore (temp void)
+0:98          'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:98          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:98            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:98            Constant:
+0:98              1 (const uint)
+0:98          'storeTemp' (temp uint)
+0:98        'storeTemp' (temp uint)
+0:101      Sequence
+0:101        move second child to first child (temp float)
+0:101          'storeTemp' (temp float)
+0:101          Function Call: SomeValue( (temp float)
+0:101        imageStore (temp void)
+0:101          'g_tTex3df1' (layout(r32f ) uniform image3D)
+0:101          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:101            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:101            Constant:
+0:101              2 (const uint)
+0:101          'storeTemp' (temp float)
+0:101        'storeTemp' (temp float)
+0:102      Sequence
+0:102        imageStore (temp void)
+0:102          'g_tTex3df1' (layout(r32f ) uniform image3D)
+0:102          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:102            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:102            Constant:
+0:102              2 (const uint)
+0:102          'lf1' (temp float)
+0:102        'lf1' (temp float)
+0:103      Sequence
+0:103        move second child to first child (temp int)
+0:103          'storeTemp' (temp int)
+0:103          Constant:
+0:103            8 (const int)
+0:103        imageStore (temp void)
+0:103          'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:103          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:103            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:103            Constant:
+0:103              2 (const uint)
+0:103          'storeTemp' (temp int)
+0:103        'storeTemp' (temp int)
+0:104      Sequence
+0:104        move second child to first child (temp uint)
+0:104          'storeTemp' (temp uint)
+0:104          Constant:
+0:104            9 (const uint)
+0:104        imageStore (temp void)
+0:104          'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:104          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:104            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:104            Constant:
+0:104              2 (const uint)
+0:104          'storeTemp' (temp uint)
+0:104        'storeTemp' (temp uint)
+0:107      Function Call: Fn1(f1; (temp float)
+0:107        imageLoad (temp float)
+0:107          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:107          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:107            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:107            Constant:
+0:107              0 (const uint)
+0:108      Function Call: Fn1(i1; (temp int)
+0:108        imageLoad (temp int)
+0:108          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:108          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:108            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:108            Constant:
+0:108              0 (const uint)
+0:109      Function Call: Fn1(u1; (temp uint)
+0:109        imageLoad (temp uint)
+0:109          'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:109          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:109            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:109            Constant:
+0:109              0 (const uint)
+0:111      Comma (temp void)
+0:111        Function Call: Fn2(f1; (temp void)
+0:111          'tempArg' (temp float)
+0:111        Sequence
+0:111          imageStore (temp void)
+0:111            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:111            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:111              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:111              Constant:
+0:111                0 (const uint)
+0:111            'tempArg' (temp float)
+0:111          'tempArg' (temp float)
+0:112      Comma (temp void)
+0:112        Function Call: Fn2(i1; (temp void)
+0:112          'tempArg' (temp int)
+0:112        Sequence
+0:112          imageStore (temp void)
+0:112            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:112            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:112              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:112              Constant:
+0:112                0 (const uint)
+0:112            'tempArg' (temp int)
+0:112          'tempArg' (temp int)
+0:113      Comma (temp void)
+0:113        Function Call: Fn2(u1; (temp void)
+0:113          'tempArg' (temp uint)
+0:113        Sequence
+0:113          imageStore (temp void)
+0:113            'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:113            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:113              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:113              Constant:
+0:113                0 (const uint)
+0:113            'tempArg' (temp uint)
+0:113          'tempArg' (temp uint)
+0:117      Sequence
+0:117        move second child to first child (temp int)
+0:117          'coordTemp' (temp int)
+0:117          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:117            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:117            Constant:
+0:117              0 (const uint)
+0:117        move second child to first child (temp float)
+0:117          'storeTemp' (temp float)
+0:117          imageLoad (temp float)
+0:117            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:117            'coordTemp' (temp int)
+0:117        Pre-Increment (temp float)
+0:117          'storeTemp' (temp float)
+0:117        imageStore (temp void)
+0:117          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:117          'coordTemp' (temp int)
+0:117          'storeTemp' (temp float)
+0:117        'storeTemp' (temp float)
+0:118      Sequence
+0:118        move second child to first child (temp int)
+0:118          'coordTemp' (temp int)
+0:118          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:118            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:118            Constant:
+0:118              0 (const uint)
+0:118        move second child to first child (temp int)
+0:118          'storeTemp' (temp int)
+0:118          imageLoad (temp int)
+0:118            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:118            'coordTemp' (temp int)
+0:118        Pre-Increment (temp int)
+0:118          'storeTemp' (temp int)
+0:118        imageStore (temp void)
+0:118          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:118          'coordTemp' (temp int)
+0:118          'storeTemp' (temp int)
+0:118        'storeTemp' (temp int)
+0:119      Sequence
+0:119        move second child to first child (temp int)
+0:119          'coordTemp' (temp int)
+0:119          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:119            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:119            Constant:
+0:119              0 (const uint)
+0:119        move second child to first child (temp uint)
+0:119          'storeTemp' (temp uint)
+0:119          imageLoad (temp uint)
+0:119            'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:119            'coordTemp' (temp int)
+0:119        Pre-Increment (temp uint)
+0:119          'storeTemp' (temp uint)
+0:119        imageStore (temp void)
+0:119          'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:119          'coordTemp' (temp int)
+0:119          'storeTemp' (temp uint)
+0:119        'storeTemp' (temp uint)
+0:121      Sequence
+0:121        move second child to first child (temp int)
+0:121          'coordTemp' (temp int)
+0:121          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:121            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:121            Constant:
+0:121              0 (const uint)
+0:121        move second child to first child (temp float)
+0:121          'storeTemp' (temp float)
+0:121          imageLoad (temp float)
+0:121            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:121            'coordTemp' (temp int)
+0:121        Pre-Decrement (temp float)
+0:121          'storeTemp' (temp float)
+0:121        imageStore (temp void)
+0:121          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:121          'coordTemp' (temp int)
+0:121          'storeTemp' (temp float)
+0:121        'storeTemp' (temp float)
+0:122      Sequence
+0:122        move second child to first child (temp int)
+0:122          'coordTemp' (temp int)
+0:122          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:122            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:122            Constant:
+0:122              0 (const uint)
+0:122        move second child to first child (temp int)
+0:122          'storeTemp' (temp int)
+0:122          imageLoad (temp int)
+0:122            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:122            'coordTemp' (temp int)
+0:122        Pre-Decrement (temp int)
+0:122          'storeTemp' (temp int)
+0:122        imageStore (temp void)
+0:122          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:122          'coordTemp' (temp int)
+0:122          'storeTemp' (temp int)
+0:122        'storeTemp' (temp int)
+0:123      Sequence
+0:123        move second child to first child (temp int)
+0:123          'coordTemp' (temp int)
+0:123          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:123            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:123            Constant:
+0:123              0 (const uint)
+0:123        move second child to first child (temp uint)
+0:123          'storeTemp' (temp uint)
+0:123          imageLoad (temp uint)
+0:123            'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:123            'coordTemp' (temp int)
+0:123        Pre-Decrement (temp uint)
+0:123          'storeTemp' (temp uint)
+0:123        imageStore (temp void)
+0:123          'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:123          'coordTemp' (temp int)
+0:123          'storeTemp' (temp uint)
+0:123        'storeTemp' (temp uint)
+0:126      Sequence
+0:126        move second child to first child (temp int)
+0:126          'coordTemp' (temp int)
+0:126          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:126            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:126            Constant:
+0:126              0 (const uint)
+0:126        move second child to first child (temp float)
+0:126          'storeTempPre' (temp float)
+0:126          imageLoad (temp float)
+0:126            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:126            'coordTemp' (temp int)
+0:126        move second child to first child (temp float)
+0:126          'storeTempPost' (temp float)
+0:126          'storeTempPre' (temp float)
+0:126        Post-Increment (temp float)
+0:126          'storeTempPost' (temp float)
+0:126        imageStore (temp void)
+0:126          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:126          'coordTemp' (temp int)
+0:126          'storeTempPost' (temp float)
+0:126        'storeTempPre' (temp float)
+0:127      Sequence
+0:127        move second child to first child (temp int)
+0:127          'coordTemp' (temp int)
+0:127          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:127            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:127            Constant:
+0:127              0 (const uint)
+0:127        move second child to first child (temp uint)
+0:127          'storeTempPre' (temp uint)
+0:127          imageLoad (temp uint)
+0:127            'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:127            'coordTemp' (temp int)
+0:127        move second child to first child (temp uint)
+0:127          'storeTempPost' (temp uint)
+0:127          'storeTempPre' (temp uint)
+0:127        Post-Decrement (temp uint)
+0:127          'storeTempPost' (temp uint)
+0:127        imageStore (temp void)
+0:127          'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:127          'coordTemp' (temp int)
+0:127          'storeTempPost' (temp uint)
+0:127        'storeTempPre' (temp uint)
+0:128      Sequence
+0:128        move second child to first child (temp int)
+0:128          'coordTemp' (temp int)
+0:128          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:128            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:128            Constant:
+0:128              0 (const uint)
+0:128        move second child to first child (temp int)
+0:128          'storeTempPre' (temp int)
+0:128          imageLoad (temp int)
+0:128            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:128            'coordTemp' (temp int)
+0:128        move second child to first child (temp int)
+0:128          'storeTempPost' (temp int)
+0:128          'storeTempPre' (temp int)
+0:128        Post-Increment (temp int)
+0:128          'storeTempPost' (temp int)
+0:128        imageStore (temp void)
+0:128          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:128          'coordTemp' (temp int)
+0:128          'storeTempPost' (temp int)
+0:128        'storeTempPre' (temp int)
+0:130      Sequence
+0:130        move second child to first child (temp int)
+0:130          'coordTemp' (temp int)
+0:130          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:130            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:130            Constant:
+0:130              0 (const uint)
+0:130        move second child to first child (temp float)
+0:130          'storeTempPre' (temp float)
+0:130          imageLoad (temp float)
+0:130            'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:130            'coordTemp' (temp int)
+0:130        move second child to first child (temp float)
+0:130          'storeTempPost' (temp float)
+0:130          'storeTempPre' (temp float)
+0:130        Post-Decrement (temp float)
+0:130          'storeTempPost' (temp float)
+0:130        imageStore (temp void)
+0:130          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:130          'coordTemp' (temp int)
+0:130          'storeTempPost' (temp float)
+0:130        'storeTempPre' (temp float)
+0:131      Sequence
+0:131        move second child to first child (temp int)
+0:131          'coordTemp' (temp int)
+0:131          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:131            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:131            Constant:
+0:131              0 (const uint)
+0:131        move second child to first child (temp int)
+0:131          'storeTempPre' (temp int)
+0:131          imageLoad (temp int)
+0:131            'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:131            'coordTemp' (temp int)
+0:131        move second child to first child (temp int)
+0:131          'storeTempPost' (temp int)
+0:131          'storeTempPre' (temp int)
+0:131        Post-Increment (temp int)
+0:131          'storeTempPost' (temp int)
+0:131        imageStore (temp void)
+0:131          'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:131          'coordTemp' (temp int)
+0:131          'storeTempPost' (temp int)
+0:131        'storeTempPre' (temp int)
+0:132      Sequence
+0:132        move second child to first child (temp int)
+0:132          'coordTemp' (temp int)
+0:132          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:132            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:132            Constant:
+0:132              0 (const uint)
+0:132        move second child to first child (temp uint)
+0:132          'storeTempPre' (temp uint)
+0:132          imageLoad (temp uint)
+0:132            'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:132            'coordTemp' (temp int)
+0:132        move second child to first child (temp uint)
+0:132          'storeTempPost' (temp uint)
+0:132          'storeTempPre' (temp uint)
+0:132        Post-Decrement (temp uint)
+0:132          'storeTempPost' (temp uint)
+0:132        imageStore (temp void)
+0:132          'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:132          'coordTemp' (temp int)
+0:132          'storeTempPost' (temp uint)
+0:132        'storeTempPre' (temp uint)
+0:135      Sequence
+0:135        move second child to first child (temp float)
+0:135          'storeTemp' (temp float)
+0:?           imageLoad (temp float)
+0:135            'g_tTex2df1' (layout(r32f ) uniform image2D)
+0:?             Constant:
+0:?               2 (const int)
+0:?               3 (const int)
+0:135        imageStore (temp void)
+0:135          'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:135          Constant:
+0:135            1 (const int)
+0:135          'storeTemp' (temp float)
+0:135        'storeTemp' (temp float)
+0:137      move second child to first child (temp 4-component vector of float)
+0:137        Color: direct index for structure (temp 4-component vector of float)
+0:137          'psout' (temp structure{temp 4-component vector of float Color})
+0:137          Constant:
+0:137            0 (const int)
+0:137        Constant:
+0:137          1.000000
+0:137          1.000000
+0:137          1.000000
+0:137          1.000000
+0:139      Sequence
+0:139        Sequence
+0:139          move second child to first child (temp 4-component vector of float)
+0:?             'Color' (layout(location=0 ) out 4-component vector of float)
+0:139            Color: direct index for structure (temp 4-component vector of float)
+0:139              'psout' (temp structure{temp 4-component vector of float Color})
+0:139              Constant:
+0:139                0 (const int)
+0:139        Branch: Return
+0:?   Linker Objects
+0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:?     'g_tTex1df1' (layout(r32f ) uniform image1D)
+0:?     'g_tTex1di1' (layout(r32i ) uniform iimage1D)
+0:?     'g_tTex1du1' (layout(r32ui ) uniform uimage1D)
+0:?     'g_tTex2df1' (layout(r32f ) uniform image2D)
+0:?     'g_tTex2di1' (layout(r32i ) uniform iimage2D)
+0:?     'g_tTex2du1' (layout(r32ui ) uniform uimage2D)
+0:?     'g_tTex3df1' (layout(r32f ) uniform image3D)
+0:?     'g_tTex3di1' (layout(r32i ) uniform iimage3D)
+0:?     'g_tTex3du1' (layout(r32ui ) uniform uimage3D)
+0:?     'g_tTex1df1a' (layout(r32f ) uniform image1DArray)
+0:?     'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray)
+0:?     'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray)
+0:?     'g_tTex2df1a' (layout(r32f ) uniform image2DArray)
+0:?     'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray)
+0:?     'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray)
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1})
+0:?     'Color' (layout(location=0 ) out 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 566
+
+                              Capability Shader
+                              Capability Sampled1D
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 541
+                              ExecutionMode 4 OriginUpperLeft
+                              Name 4  "main"
+                              Name 10  "Fn1(i1;"
+                              Name 9  "x"
+                              Name 16  "Fn1(u1;"
+                              Name 15  "x"
+                              Name 22  "Fn1(f1;"
+                              Name 21  "x"
+                              Name 26  "Fn2(i1;"
+                              Name 25  "x"
+                              Name 30  "Fn2(u1;"
+                              Name 29  "x"
+                              Name 34  "Fn2(f1;"
+                              Name 33  "x"
+                              Name 37  "SomeValue("
+                              Name 54  "$Global"
+                              MemberName 54($Global) 0  "c1"
+                              MemberName 54($Global) 1  "c2"
+                              MemberName 54($Global) 2  "c3"
+                              MemberName 54($Global) 3  "c4"
+                              MemberName 54($Global) 4  "o1"
+                              MemberName 54($Global) 5  "o2"
+                              MemberName 54($Global) 6  "o3"
+                              MemberName 54($Global) 7  "o4"
+                              MemberName 54($Global) 8  "uf1"
+                              MemberName 54($Global) 9  "ui1"
+                              MemberName 54($Global) 10  "uu1"
+                              Name 56  ""
+                              Name 65  "g_tTex1df1"
+                              Name 70  "r00"
+                              Name 75  "r01"
+                              Name 78  "g_tTex1di1"
+                              Name 83  "r02"
+                              Name 86  "g_tTex1du1"
+                              Name 91  "r10"
+                              Name 94  "g_tTex2df1"
+                              Name 101  "r11"
+                              Name 104  "g_tTex2di1"
+                              Name 109  "r12"
+                              Name 112  "g_tTex2du1"
+                              Name 117  "r20"
+                              Name 120  "g_tTex3df1"
+                              Name 127  "r21"
+                              Name 130  "g_tTex3di1"
+                              Name 135  "r22"
+                              Name 138  "g_tTex3du1"
+                              Name 143  "lf1"
+                              Name 148  "storeTemp"
+                              Name 158  "storeTemp"
+                              Name 163  "storeTemp"
+                              Name 169  "val1"
+                              Name 170  "coordTemp"
+                              Name 173  "storeTemp"
+                              Name 184  "coordTemp"
+                              Name 187  "storeTemp"
+                              Name 197  "coordTemp"
+                              Name 200  "storeTemp"
+                              Name 210  "coordTemp"
+                              Name 213  "storeTemp"
+                              Name 222  "coordTemp"
+                              Name 225  "storeTemp"
+                              Name 234  "coordTemp"
+                              Name 237  "storeTemp"
+                              Name 247  "coordTemp"
+                              Name 250  "storeTemp"
+                              Name 260  "coordTemp"
+                              Name 263  "storeTemp"
+                              Name 272  "coordTemp"
+                              Name 275  "storeTemp"
+                              Name 284  "storeTemp"
+                              Name 294  "storeTemp"
+                              Name 300  "storeTemp"
+                              Name 306  "storeTemp"
+                              Name 316  "storeTemp"
+                              Name 321  "storeTemp"
+                              Name 331  "param"
+                              Name 337  "param"
+                              Name 343  "param"
+                              Name 345  "tempArg"
+                              Name 346  "param"
+                              Name 353  "tempArg"
+                              Name 354  "param"
+                              Name 361  "tempArg"
+                              Name 362  "param"
+                              Name 369  "coordTemp"
+                              Name 372  "storeTemp"
+                              Name 382  "coordTemp"
+                              Name 385  "storeTemp"
+                              Name 394  "coordTemp"
+                              Name 397  "storeTemp"
+                              Name 406  "coordTemp"
+                              Name 409  "storeTemp"
+                              Name 418  "coordTemp"
+                              Name 421  "storeTemp"
+                              Name 430  "coordTemp"
+                              Name 433  "storeTemp"
+                              Name 442  "coordTemp"
+                              Name 445  "storeTempPre"
+                              Name 449  "storeTempPost"
+                              Name 456  "coordTemp"
+                              Name 459  "storeTempPre"
+                              Name 463  "storeTempPost"
+                              Name 470  "coordTemp"
+                              Name 473  "storeTempPre"
+                              Name 477  "storeTempPost"
+                              Name 484  "coordTemp"
+                              Name 487  "storeTempPre"
+                              Name 491  "storeTempPost"
+                              Name 498  "coordTemp"
+                              Name 501  "storeTempPre"
+                              Name 505  "storeTempPost"
+                              Name 512  "coordTemp"
+                              Name 515  "storeTempPre"
+                              Name 519  "storeTempPost"
+                              Name 526  "storeTemp"
+                              Name 534  "PS_OUTPUT"
+                              MemberName 534(PS_OUTPUT) 0  "Color"
+                              Name 536  "psout"
+                              Name 541  "Color"
+                              Name 547  "g_sSamp"
+                              Name 550  "g_tTex1df1a"
+                              Name 553  "g_tTex1di1a"
+                              Name 556  "g_tTex1du1a"
+                              Name 559  "g_tTex2df1a"
+                              Name 562  "g_tTex2di1a"
+                              Name 565  "g_tTex2du1a"
+                              MemberDecorate 54($Global) 0 Offset 0
+                              MemberDecorate 54($Global) 1 Offset 8
+                              MemberDecorate 54($Global) 2 Offset 16
+                              MemberDecorate 54($Global) 3 Offset 32
+                              MemberDecorate 54($Global) 4 Offset 48
+                              MemberDecorate 54($Global) 5 Offset 56
+                              MemberDecorate 54($Global) 6 Offset 64
+                              MemberDecorate 54($Global) 7 Offset 80
+                              MemberDecorate 54($Global) 8 Offset 96
+                              MemberDecorate 54($Global) 9 Offset 100
+                              MemberDecorate 54($Global) 10 Offset 104
+                              Decorate 54($Global) Block
+                              Decorate 56 DescriptorSet 0
+                              Decorate 65(g_tTex1df1) DescriptorSet 0
+                              Decorate 78(g_tTex1di1) DescriptorSet 0
+                              Decorate 86(g_tTex1du1) DescriptorSet 0
+                              Decorate 94(g_tTex2df1) DescriptorSet 0
+                              Decorate 104(g_tTex2di1) DescriptorSet 0
+                              Decorate 112(g_tTex2du1) DescriptorSet 0
+                              Decorate 120(g_tTex3df1) DescriptorSet 0
+                              Decorate 130(g_tTex3di1) DescriptorSet 0
+                              Decorate 138(g_tTex3du1) DescriptorSet 0
+                              Decorate 541(Color) Location 0
+                              Decorate 547(g_sSamp) DescriptorSet 0
+                              Decorate 547(g_sSamp) Binding 0
+                              Decorate 550(g_tTex1df1a) DescriptorSet 0
+                              Decorate 553(g_tTex1di1a) DescriptorSet 0
+                              Decorate 556(g_tTex1du1a) DescriptorSet 0
+                              Decorate 559(g_tTex2df1a) DescriptorSet 0
+                              Decorate 562(g_tTex2di1a) DescriptorSet 0
+                              Decorate 565(g_tTex2du1a) DescriptorSet 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypePointer Function 6(int)
+               8:             TypeFunction 6(int) 7(ptr)
+              12:             TypeInt 32 0
+              13:             TypePointer Function 12(int)
+              14:             TypeFunction 12(int) 13(ptr)
+              18:             TypeFloat 32
+              19:             TypePointer Function 18(float)
+              20:             TypeFunction 18(float) 19(ptr)
+              24:             TypeFunction 2 7(ptr)
+              28:             TypeFunction 2 13(ptr)
+              32:             TypeFunction 2 19(ptr)
+              36:             TypeFunction 18(float)
+              48:      6(int) Constant 0
+              49:     12(int) Constant 0
+              50:   18(float) Constant 0
+              51:             TypeVector 6(int) 2
+              52:             TypeVector 6(int) 3
+              53:             TypeVector 6(int) 4
+     54($Global):             TypeStruct 6(int) 51(ivec2) 52(ivec3) 53(ivec4) 6(int) 51(ivec2) 52(ivec3) 53(ivec4) 18(float) 6(int) 12(int)
+              55:             TypePointer Uniform 54($Global)
+              56:     55(ptr) Variable Uniform
+              57:             TypePointer Uniform 6(int)
+              63:             TypeImage 18(float) 1D nonsampled format:R32f
+              64:             TypePointer UniformConstant 63
+  65(g_tTex1df1):     64(ptr) Variable UniformConstant
+              76:             TypeImage 6(int) 1D nonsampled format:R32i
+              77:             TypePointer UniformConstant 76
+  78(g_tTex1di1):     77(ptr) Variable UniformConstant
+              84:             TypeImage 12(int) 1D nonsampled format:R32ui
+              85:             TypePointer UniformConstant 84
+  86(g_tTex1du1):     85(ptr) Variable UniformConstant
+              92:             TypeImage 18(float) 2D nonsampled format:R32f
+              93:             TypePointer UniformConstant 92
+  94(g_tTex2df1):     93(ptr) Variable UniformConstant
+              96:      6(int) Constant 1
+              97:             TypePointer Uniform 51(ivec2)
+             102:             TypeImage 6(int) 2D nonsampled format:R32i
+             103:             TypePointer UniformConstant 102
+ 104(g_tTex2di1):    103(ptr) Variable UniformConstant
+             110:             TypeImage 12(int) 2D nonsampled format:R32ui
+             111:             TypePointer UniformConstant 110
+ 112(g_tTex2du1):    111(ptr) Variable UniformConstant
+             118:             TypeImage 18(float) 3D nonsampled format:R32f
+             119:             TypePointer UniformConstant 118
+ 120(g_tTex3df1):    119(ptr) Variable UniformConstant
+             122:      6(int) Constant 2
+             123:             TypePointer Uniform 52(ivec3)
+             128:             TypeImage 6(int) 3D nonsampled format:R32i
+             129:             TypePointer UniformConstant 128
+ 130(g_tTex3di1):    129(ptr) Variable UniformConstant
+             136:             TypeImage 12(int) 3D nonsampled format:R32ui
+             137:             TypePointer UniformConstant 136
+ 138(g_tTex3du1):    137(ptr) Variable UniformConstant
+             144:      6(int) Constant 8
+             145:             TypePointer Uniform 18(float)
+             164:     12(int) Constant 3
+             177:   18(float) Constant 1073741824
+             191:   18(float) Constant 1077936128
+             204:   18(float) Constant 1082130432
+             241:      6(int) Constant 65535
+             254:      6(int) Constant 61680
+             295:      6(int) Constant 5
+             301:     12(int) Constant 6
+             322:     12(int) Constant 9
+             377:   18(float) Constant 1065353216
+             528:      6(int) Constant 3
+             529:   51(ivec2) ConstantComposite 122 528
+             533:             TypeVector 18(float) 4
+  534(PS_OUTPUT):             TypeStruct 533(fvec4)
+             535:             TypePointer Function 534(PS_OUTPUT)
+             537:  533(fvec4) ConstantComposite 377 377 377 377
+             538:             TypePointer Function 533(fvec4)
+             540:             TypePointer Output 533(fvec4)
+      541(Color):    540(ptr) Variable Output
+             545:             TypeSampler
+             546:             TypePointer UniformConstant 545
+    547(g_sSamp):    546(ptr) Variable UniformConstant
+             548:             TypeImage 18(float) 1D array nonsampled format:R32f
+             549:             TypePointer UniformConstant 548
+550(g_tTex1df1a):    549(ptr) Variable UniformConstant
+             551:             TypeImage 6(int) 1D array nonsampled format:R32i
+             552:             TypePointer UniformConstant 551
+553(g_tTex1di1a):    552(ptr) Variable UniformConstant
+             554:             TypeImage 12(int) 1D array nonsampled format:R32ui
+             555:             TypePointer UniformConstant 554
+556(g_tTex1du1a):    555(ptr) Variable UniformConstant
+             557:             TypeImage 18(float) 2D array nonsampled format:R32f
+             558:             TypePointer UniformConstant 557
+559(g_tTex2df1a):    558(ptr) Variable UniformConstant
+             560:             TypeImage 6(int) 2D array nonsampled format:R32i
+             561:             TypePointer UniformConstant 560
+562(g_tTex2di1a):    561(ptr) Variable UniformConstant
+             563:             TypeImage 12(int) 2D array nonsampled format:R32ui
+             564:             TypePointer UniformConstant 563
+565(g_tTex2du1a):    564(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+         70(r00):     19(ptr) Variable Function
+         75(r01):      7(ptr) Variable Function
+         83(r02):     13(ptr) Variable Function
+         91(r10):     19(ptr) Variable Function
+        101(r11):      7(ptr) Variable Function
+        109(r12):     13(ptr) Variable Function
+        117(r20):     19(ptr) Variable Function
+        127(r21):      7(ptr) Variable Function
+        135(r22):     13(ptr) Variable Function
+        143(lf1):     19(ptr) Variable Function
+  148(storeTemp):     19(ptr) Variable Function
+  158(storeTemp):      7(ptr) Variable Function
+  163(storeTemp):     13(ptr) Variable Function
+       169(val1):     19(ptr) Variable Function
+  170(coordTemp):      7(ptr) Variable Function
+  173(storeTemp):     19(ptr) Variable Function
+  184(coordTemp):      7(ptr) Variable Function
+  187(storeTemp):     19(ptr) Variable Function
+  197(coordTemp):      7(ptr) Variable Function
+  200(storeTemp):     19(ptr) Variable Function
+  210(coordTemp):      7(ptr) Variable Function
+  213(storeTemp):      7(ptr) Variable Function
+  222(coordTemp):      7(ptr) Variable Function
+  225(storeTemp):      7(ptr) Variable Function
+  234(coordTemp):      7(ptr) Variable Function
+  237(storeTemp):      7(ptr) Variable Function
+  247(coordTemp):      7(ptr) Variable Function
+  250(storeTemp):      7(ptr) Variable Function
+  260(coordTemp):      7(ptr) Variable Function
+  263(storeTemp):      7(ptr) Variable Function
+  272(coordTemp):      7(ptr) Variable Function
+  275(storeTemp):      7(ptr) Variable Function
+  284(storeTemp):     19(ptr) Variable Function
+  294(storeTemp):      7(ptr) Variable Function
+  300(storeTemp):     13(ptr) Variable Function
+  306(storeTemp):     19(ptr) Variable Function
+  316(storeTemp):      7(ptr) Variable Function
+  321(storeTemp):     13(ptr) Variable Function
+      331(param):     19(ptr) Variable Function
+      337(param):      7(ptr) Variable Function
+      343(param):     13(ptr) Variable Function
+    345(tempArg):     19(ptr) Variable Function
+      346(param):     19(ptr) Variable Function
+    353(tempArg):      7(ptr) Variable Function
+      354(param):      7(ptr) Variable Function
+    361(tempArg):     13(ptr) Variable Function
+      362(param):     13(ptr) Variable Function
+  369(coordTemp):      7(ptr) Variable Function
+  372(storeTemp):     19(ptr) Variable Function
+  382(coordTemp):      7(ptr) Variable Function
+  385(storeTemp):      7(ptr) Variable Function
+  394(coordTemp):      7(ptr) Variable Function
+  397(storeTemp):     13(ptr) Variable Function
+  406(coordTemp):      7(ptr) Variable Function
+  409(storeTemp):     19(ptr) Variable Function
+  418(coordTemp):      7(ptr) Variable Function
+  421(storeTemp):      7(ptr) Variable Function
+  430(coordTemp):      7(ptr) Variable Function
+  433(storeTemp):     13(ptr) Variable Function
+  442(coordTemp):      7(ptr) Variable Function
+445(storeTempPre):     19(ptr) Variable Function
+449(storeTempPost):     19(ptr) Variable Function
+  456(coordTemp):      7(ptr) Variable Function
+459(storeTempPre):     13(ptr) Variable Function
+463(storeTempPost):     13(ptr) Variable Function
+  470(coordTemp):      7(ptr) Variable Function
+473(storeTempPre):      7(ptr) Variable Function
+477(storeTempPost):      7(ptr) Variable Function
+  484(coordTemp):      7(ptr) Variable Function
+487(storeTempPre):     19(ptr) Variable Function
+491(storeTempPost):     19(ptr) Variable Function
+  498(coordTemp):      7(ptr) Variable Function
+501(storeTempPre):      7(ptr) Variable Function
+505(storeTempPost):      7(ptr) Variable Function
+  512(coordTemp):      7(ptr) Variable Function
+515(storeTempPre):     13(ptr) Variable Function
+519(storeTempPost):     13(ptr) Variable Function
+  526(storeTemp):     19(ptr) Variable Function
+      536(psout):    535(ptr) Variable Function
+              66:          63 Load 65(g_tTex1df1)
+              67:     57(ptr) AccessChain 56 48
+              68:      6(int) Load 67
+              69:   18(float) ImageRead 66 68
+              71:          63 Load 65(g_tTex1df1)
+              72:     57(ptr) AccessChain 56 48
+              73:      6(int) Load 72
+              74:   18(float) ImageRead 71 73
+                              Store 70(r00) 74
+              79:          76 Load 78(g_tTex1di1)
+              80:     57(ptr) AccessChain 56 48
+              81:      6(int) Load 80
+              82:      6(int) ImageRead 79 81
+                              Store 75(r01) 82
+              87:          84 Load 86(g_tTex1du1)
+              88:     57(ptr) AccessChain 56 48
+              89:      6(int) Load 88
+              90:     12(int) ImageRead 87 89
+                              Store 83(r02) 90
+              95:          92 Load 94(g_tTex2df1)
+              98:     97(ptr) AccessChain 56 96
+              99:   51(ivec2) Load 98
+             100:   18(float) ImageRead 95 99
+                              Store 91(r10) 100
+             105:         102 Load 104(g_tTex2di1)
+             106:     97(ptr) AccessChain 56 96
+             107:   51(ivec2) Load 106
+             108:      6(int) ImageRead 105 107
+                              Store 101(r11) 108
+             113:         110 Load 112(g_tTex2du1)
+             114:     97(ptr) AccessChain 56 96
+             115:   51(ivec2) Load 114
+             116:     12(int) ImageRead 113 115
+                              Store 109(r12) 116
+             121:         118 Load 120(g_tTex3df1)
+             124:    123(ptr) AccessChain 56 122
+             125:   52(ivec3) Load 124
+             126:   18(float) ImageRead 121 125
+                              Store 117(r20) 126
+             131:         128 Load 130(g_tTex3di1)
+             132:    123(ptr) AccessChain 56 122
+             133:   52(ivec3) Load 132
+             134:      6(int) ImageRead 131 133
+                              Store 127(r21) 134
+             139:         136 Load 138(g_tTex3du1)
+             140:    123(ptr) AccessChain 56 122
+             141:   52(ivec3) Load 140
+             142:     12(int) ImageRead 139 141
+                              Store 135(r22) 142
+             146:    145(ptr) AccessChain 56 144
+             147:   18(float) Load 146
+                              Store 143(lf1) 147
+             149:   18(float) FunctionCall 37(SomeValue()
+                              Store 148(storeTemp) 149
+             150:          63 Load 65(g_tTex1df1)
+             151:     57(ptr) AccessChain 56 48
+             152:      6(int) Load 151
+             153:   18(float) Load 148(storeTemp)
+                              ImageWrite 150 152 153
+             154:          63 Load 65(g_tTex1df1)
+             155:     57(ptr) AccessChain 56 48
+             156:      6(int) Load 155
+             157:   18(float) Load 143(lf1)
+                              ImageWrite 154 156 157
+                              Store 158(storeTemp) 122
+             159:          76 Load 78(g_tTex1di1)
+             160:     57(ptr) AccessChain 56 48
+             161:      6(int) Load 160
+             162:      6(int) Load 158(storeTemp)
+                              ImageWrite 159 161 162
+                              Store 163(storeTemp) 164
+             165:          84 Load 86(g_tTex1du1)
+             166:     57(ptr) AccessChain 56 48
+             167:      6(int) Load 166
+             168:     12(int) Load 163(storeTemp)
+                              ImageWrite 165 167 168
+             171:     57(ptr) AccessChain 56 48
+             172:      6(int) Load 171
+                              Store 170(coordTemp) 172
+             174:          63 Load 65(g_tTex1df1)
+             175:      6(int) Load 170(coordTemp)
+             176:   18(float) ImageRead 174 175
+                              Store 173(storeTemp) 176
+             178:   18(float) Load 173(storeTemp)
+             179:   18(float) FMul 178 177
+                              Store 173(storeTemp) 179
+             180:          63 Load 65(g_tTex1df1)
+             181:      6(int) Load 170(coordTemp)
+             182:   18(float) Load 173(storeTemp)
+                              ImageWrite 180 181 182
+             183:   18(float) Load 173(storeTemp)
+                              Store 169(val1) 183
+             185:     57(ptr) AccessChain 56 48
+             186:      6(int) Load 185
+                              Store 184(coordTemp) 186
+             188:          63 Load 65(g_tTex1df1)
+             189:      6(int) Load 184(coordTemp)
+             190:   18(float) ImageRead 188 189
+                              Store 187(storeTemp) 190
+             192:   18(float) Load 187(storeTemp)
+             193:   18(float) FSub 192 191
+                              Store 187(storeTemp) 193
+             194:          63 Load 65(g_tTex1df1)
+             195:      6(int) Load 184(coordTemp)
+             196:   18(float) Load 187(storeTemp)
+                              ImageWrite 194 195 196
+             198:     57(ptr) AccessChain 56 48
+             199:      6(int) Load 198
+                              Store 197(coordTemp) 199
+             201:          63 Load 65(g_tTex1df1)
+             202:      6(int) Load 197(coordTemp)
+             203:   18(float) ImageRead 201 202
+                              Store 200(storeTemp) 203
+             205:   18(float) Load 200(storeTemp)
+             206:   18(float) FAdd 205 204
+                              Store 200(storeTemp) 206
+             207:          63 Load 65(g_tTex1df1)
+             208:      6(int) Load 197(coordTemp)
+             209:   18(float) Load 200(storeTemp)
+                              ImageWrite 207 208 209
+             211:     57(ptr) AccessChain 56 48
+             212:      6(int) Load 211
+                              Store 210(coordTemp) 212
+             214:          76 Load 78(g_tTex1di1)
+             215:      6(int) Load 210(coordTemp)
+             216:      6(int) ImageRead 214 215
+                              Store 213(storeTemp) 216
+             217:      6(int) Load 213(storeTemp)
+             218:      6(int) SDiv 217 122
+                              Store 213(storeTemp) 218
+             219:          76 Load 78(g_tTex1di1)
+             220:      6(int) Load 210(coordTemp)
+             221:      6(int) Load 213(storeTemp)
+                              ImageWrite 219 220 221
+             223:     57(ptr) AccessChain 56 48
+             224:      6(int) Load 223
+                              Store 222(coordTemp) 224
+             226:          76 Load 78(g_tTex1di1)
+             227:      6(int) Load 222(coordTemp)
+             228:      6(int) ImageRead 226 227
+                              Store 225(storeTemp) 228
+             229:      6(int) Load 225(storeTemp)
+             230:      6(int) SMod 229 122
+                              Store 225(storeTemp) 230
+             231:          76 Load 78(g_tTex1di1)
+             232:      6(int) Load 222(coordTemp)
+             233:      6(int) Load 225(storeTemp)
+                              ImageWrite 231 232 233
+             235:     57(ptr) AccessChain 56 48
+             236:      6(int) Load 235
+                              Store 234(coordTemp) 236
+             238:          76 Load 78(g_tTex1di1)
+             239:      6(int) Load 234(coordTemp)
+             240:      6(int) ImageRead 238 239
+                              Store 237(storeTemp) 240
+             242:      6(int) Load 237(storeTemp)
+             243:      6(int) BitwiseAnd 242 241
+                              Store 237(storeTemp) 243
+             244:          76 Load 78(g_tTex1di1)
+             245:      6(int) Load 234(coordTemp)
+             246:      6(int) Load 237(storeTemp)
+                              ImageWrite 244 245 246
+             248:     57(ptr) AccessChain 56 48
+             249:      6(int) Load 248
+                              Store 247(coordTemp) 249
+             251:          76 Load 78(g_tTex1di1)
+             252:      6(int) Load 247(coordTemp)
+             253:      6(int) ImageRead 251 252
+                              Store 250(storeTemp) 253
+             255:      6(int) Load 250(storeTemp)
+             256:      6(int) BitwiseOr 255 254
+                              Store 250(storeTemp) 256
+             257:          76 Load 78(g_tTex1di1)
+             258:      6(int) Load 247(coordTemp)
+             259:      6(int) Load 250(storeTemp)
+                              ImageWrite 257 258 259
+             261:     57(ptr) AccessChain 56 48
+             262:      6(int) Load 261
+                              Store 260(coordTemp) 262
+             264:          76 Load 78(g_tTex1di1)
+             265:      6(int) Load 260(coordTemp)
+             266:      6(int) ImageRead 264 265
+                              Store 263(storeTemp) 266
+             267:      6(int) Load 263(storeTemp)
+             268:      6(int) ShiftLeftLogical 267 122
+                              Store 263(storeTemp) 268
+             269:          76 Load 78(g_tTex1di1)
+             270:      6(int) Load 260(coordTemp)
+             271:      6(int) Load 263(storeTemp)
+                              ImageWrite 269 270 271
+             273:     57(ptr) AccessChain 56 48
+             274:      6(int) Load 273
+                              Store 272(coordTemp) 274
+             276:          76 Load 78(g_tTex1di1)
+             277:      6(int) Load 272(coordTemp)
+             278:      6(int) ImageRead 276 277
+                              Store 275(storeTemp) 278
+             279:      6(int) Load 275(storeTemp)
+             280:      6(int) ShiftRightArithmetic 279 122
+                              Store 275(storeTemp) 280
+             281:          76 Load 78(g_tTex1di1)
+             282:      6(int) Load 272(coordTemp)
+             283:      6(int) Load 275(storeTemp)
+                              ImageWrite 281 282 283
+             285:   18(float) FunctionCall 37(SomeValue()
+                              Store 284(storeTemp) 285
+             286:          92 Load 94(g_tTex2df1)
+             287:     97(ptr) AccessChain 56 96
+             288:   51(ivec2) Load 287
+             289:   18(float) Load 284(storeTemp)
+                              ImageWrite 286 288 289
+             290:          92 Load 94(g_tTex2df1)
+             291:     97(ptr) AccessChain 56 96
+             292:   51(ivec2) Load 291
+             293:   18(float) Load 143(lf1)
+                              ImageWrite 290 292 293
+                              Store 294(storeTemp) 295
+             296:         102 Load 104(g_tTex2di1)
+             297:     97(ptr) AccessChain 56 96
+             298:   51(ivec2) Load 297
+             299:      6(int) Load 294(storeTemp)
+                              ImageWrite 296 298 299
+                              Store 300(storeTemp) 301
+             302:         110 Load 112(g_tTex2du1)
+             303:     97(ptr) AccessChain 56 96
+             304:   51(ivec2) Load 303
+             305:     12(int) Load 300(storeTemp)
+                              ImageWrite 302 304 305
+             307:   18(float) FunctionCall 37(SomeValue()
+                              Store 306(storeTemp) 307
+             308:         118 Load 120(g_tTex3df1)
+             309:    123(ptr) AccessChain 56 122
+             310:   52(ivec3) Load 309
+             311:   18(float) Load 306(storeTemp)
+                              ImageWrite 308 310 311
+             312:         118 Load 120(g_tTex3df1)
+             313:    123(ptr) AccessChain 56 122
+             314:   52(ivec3) Load 313
+             315:   18(float) Load 143(lf1)
+                              ImageWrite 312 314 315
+                              Store 316(storeTemp) 144
+             317:         128 Load 130(g_tTex3di1)
+             318:    123(ptr) AccessChain 56 122
+             319:   52(ivec3) Load 318
+             320:      6(int) Load 316(storeTemp)
+                              ImageWrite 317 319 320
+                              Store 321(storeTemp) 322
+             323:         136 Load 138(g_tTex3du1)
+             324:    123(ptr) AccessChain 56 122
+             325:   52(ivec3) Load 324
+             326:     12(int) Load 321(storeTemp)
+                              ImageWrite 323 325 326
+             327:          63 Load 65(g_tTex1df1)
+             328:     57(ptr) AccessChain 56 48
+             329:      6(int) Load 328
+             330:   18(float) ImageRead 327 329
+                              Store 331(param) 330
+             332:   18(float) FunctionCall 22(Fn1(f1;) 331(param)
+             333:          76 Load 78(g_tTex1di1)
+             334:     57(ptr) AccessChain 56 48
+             335:      6(int) Load 334
+             336:      6(int) ImageRead 333 335
+                              Store 337(param) 336
+             338:      6(int) FunctionCall 10(Fn1(i1;) 337(param)
+             339:          84 Load 86(g_tTex1du1)
+             340:     57(ptr) AccessChain 56 48
+             341:      6(int) Load 340
+             342:     12(int) ImageRead 339 341
+                              Store 343(param) 342
+             344:     12(int) FunctionCall 16(Fn1(u1;) 343(param)
+             347:           2 FunctionCall 34(Fn2(f1;) 346(param)
+             348:   18(float) Load 346(param)
+                              Store 345(tempArg) 348
+             349:          63 Load 65(g_tTex1df1)
+             350:     57(ptr) AccessChain 56 48
+             351:      6(int) Load 350
+             352:   18(float) Load 345(tempArg)
+                              ImageWrite 349 351 352
+             355:           2 FunctionCall 26(Fn2(i1;) 354(param)
+             356:      6(int) Load 354(param)
+                              Store 353(tempArg) 356
+             357:          76 Load 78(g_tTex1di1)
+             358:     57(ptr) AccessChain 56 48
+             359:      6(int) Load 358
+             360:      6(int) Load 353(tempArg)
+                              ImageWrite 357 359 360
+             363:           2 FunctionCall 30(Fn2(u1;) 362(param)
+             364:     12(int) Load 362(param)
+                              Store 361(tempArg) 364
+             365:          84 Load 86(g_tTex1du1)
+             366:     57(ptr) AccessChain 56 48
+             367:      6(int) Load 366
+             368:     12(int) Load 361(tempArg)
+                              ImageWrite 365 367 368
+             370:     57(ptr) AccessChain 56 48
+             371:      6(int) Load 370
+                              Store 369(coordTemp) 371
+             373:          63 Load 65(g_tTex1df1)
+             374:      6(int) Load 369(coordTemp)
+             375:   18(float) ImageRead 373 374
+                              Store 372(storeTemp) 375
+             376:   18(float) Load 372(storeTemp)
+             378:   18(float) FAdd 376 377
+                              Store 372(storeTemp) 378
+             379:          63 Load 65(g_tTex1df1)
+             380:      6(int) Load 369(coordTemp)
+             381:   18(float) Load 372(storeTemp)
+                              ImageWrite 379 380 381
+             383:     57(ptr) AccessChain 56 48
+             384:      6(int) Load 383
+                              Store 382(coordTemp) 384
+             386:          76 Load 78(g_tTex1di1)
+             387:      6(int) Load 382(coordTemp)
+             388:      6(int) ImageRead 386 387
+                              Store 385(storeTemp) 388
+             389:      6(int) Load 385(storeTemp)
+             390:      6(int) IAdd 389 96
+                              Store 385(storeTemp) 390
+             391:          76 Load 78(g_tTex1di1)
+             392:      6(int) Load 382(coordTemp)
+             393:      6(int) Load 385(storeTemp)
+                              ImageWrite 391 392 393
+             395:     57(ptr) AccessChain 56 48
+             396:      6(int) Load 395
+                              Store 394(coordTemp) 396
+             398:          84 Load 86(g_tTex1du1)
+             399:      6(int) Load 394(coordTemp)
+             400:     12(int) ImageRead 398 399
+                              Store 397(storeTemp) 400
+             401:     12(int) Load 397(storeTemp)
+             402:     12(int) IAdd 401 96
+                              Store 397(storeTemp) 402
+             403:          84 Load 86(g_tTex1du1)
+             404:      6(int) Load 394(coordTemp)
+             405:     12(int) Load 397(storeTemp)
+                              ImageWrite 403 404 405
+             407:     57(ptr) AccessChain 56 48
+             408:      6(int) Load 407
+                              Store 406(coordTemp) 408
+             410:          63 Load 65(g_tTex1df1)
+             411:      6(int) Load 406(coordTemp)
+             412:   18(float) ImageRead 410 411
+                              Store 409(storeTemp) 412
+             413:   18(float) Load 409(storeTemp)
+             414:   18(float) FSub 413 377
+                              Store 409(storeTemp) 414
+             415:          63 Load 65(g_tTex1df1)
+             416:      6(int) Load 406(coordTemp)
+             417:   18(float) Load 409(storeTemp)
+                              ImageWrite 415 416 417
+             419:     57(ptr) AccessChain 56 48
+             420:      6(int) Load 419
+                              Store 418(coordTemp) 420
+             422:          76 Load 78(g_tTex1di1)
+             423:      6(int) Load 418(coordTemp)
+             424:      6(int) ImageRead 422 423
+                              Store 421(storeTemp) 424
+             425:      6(int) Load 421(storeTemp)
+             426:      6(int) ISub 425 96
+                              Store 421(storeTemp) 426
+             427:          76 Load 78(g_tTex1di1)
+             428:      6(int) Load 418(coordTemp)
+             429:      6(int) Load 421(storeTemp)
+                              ImageWrite 427 428 429
+             431:     57(ptr) AccessChain 56 48
+             432:      6(int) Load 431
+                              Store 430(coordTemp) 432
+             434:          84 Load 86(g_tTex1du1)
+             435:      6(int) Load 430(coordTemp)
+             436:     12(int) ImageRead 434 435
+                              Store 433(storeTemp) 436
+             437:     12(int) Load 433(storeTemp)
+             438:     12(int) ISub 437 96
+                              Store 433(storeTemp) 438
+             439:          84 Load 86(g_tTex1du1)
+             440:      6(int) Load 430(coordTemp)
+             441:     12(int) Load 433(storeTemp)
+                              ImageWrite 439 440 441
+             443:     57(ptr) AccessChain 56 48
+             444:      6(int) Load 443
+                              Store 442(coordTemp) 444
+             446:          63 Load 65(g_tTex1df1)
+             447:      6(int) Load 442(coordTemp)
+             448:   18(float) ImageRead 446 447
+                              Store 445(storeTempPre) 448
+             450:   18(float) Load 445(storeTempPre)
+                              Store 449(storeTempPost) 450
+             451:   18(float) Load 449(storeTempPost)
+             452:   18(float) FAdd 451 377
+                              Store 449(storeTempPost) 452
+             453:          63 Load 65(g_tTex1df1)
+             454:      6(int) Load 442(coordTemp)
+             455:   18(float) Load 449(storeTempPost)
+                              ImageWrite 453 454 455
+             457:     57(ptr) AccessChain 56 48
+             458:      6(int) Load 457
+                              Store 456(coordTemp) 458
+             460:          84 Load 86(g_tTex1du1)
+             461:      6(int) Load 456(coordTemp)
+             462:     12(int) ImageRead 460 461
+                              Store 459(storeTempPre) 462
+             464:     12(int) Load 459(storeTempPre)
+                              Store 463(storeTempPost) 464
+             465:     12(int) Load 463(storeTempPost)
+             466:     12(int) ISub 465 96
+                              Store 463(storeTempPost) 466
+             467:          84 Load 86(g_tTex1du1)
+             468:      6(int) Load 456(coordTemp)
+             469:     12(int) Load 463(storeTempPost)
+                              ImageWrite 467 468 469
+             471:     57(ptr) AccessChain 56 48
+             472:      6(int) Load 471
+                              Store 470(coordTemp) 472
+             474:          76 Load 78(g_tTex1di1)
+             475:      6(int) Load 470(coordTemp)
+             476:      6(int) ImageRead 474 475
+                              Store 473(storeTempPre) 476
+             478:      6(int) Load 473(storeTempPre)
+                              Store 477(storeTempPost) 478
+             479:      6(int) Load 477(storeTempPost)
+             480:      6(int) IAdd 479 96
+                              Store 477(storeTempPost) 480
+             481:          76 Load 78(g_tTex1di1)
+             482:      6(int) Load 470(coordTemp)
+             483:      6(int) Load 477(storeTempPost)
+                              ImageWrite 481 482 483
+             485:     57(ptr) AccessChain 56 48
+             486:      6(int) Load 485
+                              Store 484(coordTemp) 486
+             488:          63 Load 65(g_tTex1df1)
+             489:      6(int) Load 484(coordTemp)
+             490:   18(float) ImageRead 488 489
+                              Store 487(storeTempPre) 490
+             492:   18(float) Load 487(storeTempPre)
+                              Store 491(storeTempPost) 492
+             493:   18(float) Load 491(storeTempPost)
+             494:   18(float) FSub 493 377
+                              Store 491(storeTempPost) 494
+             495:          63 Load 65(g_tTex1df1)
+             496:      6(int) Load 484(coordTemp)
+             497:   18(float) Load 491(storeTempPost)
+                              ImageWrite 495 496 497
+             499:     57(ptr) AccessChain 56 48
+             500:      6(int) Load 499
+                              Store 498(coordTemp) 500
+             502:          76 Load 78(g_tTex1di1)
+             503:      6(int) Load 498(coordTemp)
+             504:      6(int) ImageRead 502 503
+                              Store 501(storeTempPre) 504
+             506:      6(int) Load 501(storeTempPre)
+                              Store 505(storeTempPost) 506
+             507:      6(int) Load 505(storeTempPost)
+             508:      6(int) IAdd 507 96
+                              Store 505(storeTempPost) 508
+             509:          76 Load 78(g_tTex1di1)
+             510:      6(int) Load 498(coordTemp)
+             511:      6(int) Load 505(storeTempPost)
+                              ImageWrite 509 510 511
+             513:     57(ptr) AccessChain 56 48
+             514:      6(int) Load 513
+                              Store 512(coordTemp) 514
+             516:          84 Load 86(g_tTex1du1)
+             517:      6(int) Load 512(coordTemp)
+             518:     12(int) ImageRead 516 517
+                              Store 515(storeTempPre) 518
+             520:     12(int) Load 515(storeTempPre)
+                              Store 519(storeTempPost) 520
+             521:     12(int) Load 519(storeTempPost)
+             522:     12(int) ISub 521 96
+                              Store 519(storeTempPost) 522
+             523:          84 Load 86(g_tTex1du1)
+             524:      6(int) Load 512(coordTemp)
+             525:     12(int) Load 519(storeTempPost)
+                              ImageWrite 523 524 525
+             527:          92 Load 94(g_tTex2df1)
+             530:   18(float) ImageRead 527 529
+                              Store 526(storeTemp) 530
+             531:          63 Load 65(g_tTex1df1)
+             532:   18(float) Load 526(storeTemp)
+                              ImageWrite 531 96 532
+             539:    538(ptr) AccessChain 536(psout) 48
+                              Store 539 537
+             542:    538(ptr) AccessChain 536(psout) 48
+             543:  533(fvec4) Load 542
+                              Store 541(Color) 543
+                              Return
+                              FunctionEnd
+     10(Fn1(i1;):      6(int) Function None 8
+            9(x):      7(ptr) FunctionParameter
+              11:             Label
+              39:      6(int) Load 9(x)
+                              ReturnValue 39
+                              FunctionEnd
+     16(Fn1(u1;):     12(int) Function None 14
+           15(x):     13(ptr) FunctionParameter
+              17:             Label
+              42:     12(int) Load 15(x)
+                              ReturnValue 42
+                              FunctionEnd
+     22(Fn1(f1;):   18(float) Function None 20
+           21(x):     19(ptr) FunctionParameter
+              23:             Label
+              45:   18(float) Load 21(x)
+                              ReturnValue 45
+                              FunctionEnd
+     26(Fn2(i1;):           2 Function None 24
+           25(x):      7(ptr) FunctionParameter
+              27:             Label
+                              Store 25(x) 48
+                              Return
+                              FunctionEnd
+     30(Fn2(u1;):           2 Function None 28
+           29(x):     13(ptr) FunctionParameter
+              31:             Label
+                              Store 29(x) 49
+                              Return
+                              FunctionEnd
+     34(Fn2(f1;):           2 Function None 32
+           33(x):     19(ptr) FunctionParameter
+              35:             Label
+                              Store 33(x) 50
+                              Return
+                              FunctionEnd
+  37(SomeValue():   18(float) Function None 36
+              38:             Label
+              58:     57(ptr) AccessChain 56 48
+              59:      6(int) Load 58
+              60:   18(float) ConvertSToF 59
+                              ReturnValue 60
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
new file mode 100644
index 0000000..b8452c3
--- /dev/null
+++ b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out
@@ -0,0 +1,2613 @@
+hlsl.rw.vec2.bracket.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:42  Function Definition: Fn1(vi2; (temp 2-component vector of int)
+0:42    Function Parameters: 
+0:42      'x' (in 2-component vector of int)
+0:?     Sequence
+0:42      Branch: Return with expression
+0:42        'x' (in 2-component vector of int)
+0:43  Function Definition: Fn1(vu2; (temp 2-component vector of uint)
+0:43    Function Parameters: 
+0:43      'x' (in 2-component vector of uint)
+0:?     Sequence
+0:43      Branch: Return with expression
+0:43        'x' (in 2-component vector of uint)
+0:44  Function Definition: Fn1(vf2; (temp 2-component vector of float)
+0:44    Function Parameters: 
+0:44      'x' (in 2-component vector of float)
+0:?     Sequence
+0:44      Branch: Return with expression
+0:44        'x' (in 2-component vector of float)
+0:46  Function Definition: Fn2(vi2; (temp void)
+0:46    Function Parameters: 
+0:46      'x' (out 2-component vector of int)
+0:?     Sequence
+0:46      move second child to first child (temp 2-component vector of int)
+0:46        'x' (out 2-component vector of int)
+0:?         Constant:
+0:?           0 (const int)
+0:?           0 (const int)
+0:47  Function Definition: Fn2(vu2; (temp void)
+0:47    Function Parameters: 
+0:47      'x' (out 2-component vector of uint)
+0:?     Sequence
+0:47      move second child to first child (temp 2-component vector of uint)
+0:47        'x' (out 2-component vector of uint)
+0:?         Constant:
+0:?           0 (const uint)
+0:?           0 (const uint)
+0:48  Function Definition: Fn2(vf2; (temp void)
+0:48    Function Parameters: 
+0:48      'x' (out 2-component vector of float)
+0:?     Sequence
+0:48      move second child to first child (temp 2-component vector of float)
+0:48        'x' (out 2-component vector of float)
+0:?         Constant:
+0:?           0.000000
+0:?           0.000000
+0:50  Function Definition: SomeValue( (temp 2-component vector of float)
+0:50    Function Parameters: 
+0:?     Sequence
+0:50      Branch: Return with expression
+0:50        Convert int to float (temp 2-component vector of float)
+0:50          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:50            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:50            Constant:
+0:50              1 (const uint)
+0:53  Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:53    Function Parameters: 
+0:?     Sequence
+0:57      imageLoad (temp 2-component vector of float)
+0:57        'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:57        c1: direct index for structure (layout(offset=0 ) uniform int)
+0:57          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:57          Constant:
+0:57            0 (const uint)
+0:59      Sequence
+0:59        move second child to first child (temp 2-component vector of float)
+0:59          'r00' (temp 2-component vector of float)
+0:59          imageLoad (temp 2-component vector of float)
+0:59            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:59            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:59              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:59              Constant:
+0:59                0 (const uint)
+0:60      Sequence
+0:60        move second child to first child (temp 2-component vector of int)
+0:60          'r01' (temp 2-component vector of int)
+0:60          imageLoad (temp 2-component vector of int)
+0:60            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:60            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:60              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:60              Constant:
+0:60                0 (const uint)
+0:61      Sequence
+0:61        move second child to first child (temp 2-component vector of uint)
+0:61          'r02' (temp 2-component vector of uint)
+0:61          imageLoad (temp 2-component vector of uint)
+0:61            'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:61            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:61              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:61              Constant:
+0:61                0 (const uint)
+0:64      Sequence
+0:64        move second child to first child (temp 2-component vector of float)
+0:64          'r10' (temp 2-component vector of float)
+0:64          imageLoad (temp 2-component vector of float)
+0:64            'g_tTex2df2' (layout(rg32f ) uniform image2D)
+0:64            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:64              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:64              Constant:
+0:64                1 (const uint)
+0:65      Sequence
+0:65        move second child to first child (temp 2-component vector of int)
+0:65          'r11' (temp 2-component vector of int)
+0:65          imageLoad (temp 2-component vector of int)
+0:65            'g_tTex2di2' (layout(rg32i ) uniform iimage2D)
+0:65            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:65              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:65              Constant:
+0:65                1 (const uint)
+0:66      Sequence
+0:66        move second child to first child (temp 2-component vector of uint)
+0:66          'r12' (temp 2-component vector of uint)
+0:66          imageLoad (temp 2-component vector of uint)
+0:66            'g_tTex2du2' (layout(rg32ui ) uniform uimage2D)
+0:66            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:66              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:66              Constant:
+0:66                1 (const uint)
+0:69      Sequence
+0:69        move second child to first child (temp 2-component vector of float)
+0:69          'r20' (temp 2-component vector of float)
+0:69          imageLoad (temp 2-component vector of float)
+0:69            'g_tTex3df2' (layout(rg32f ) uniform image3D)
+0:69            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:69              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:69              Constant:
+0:69                2 (const uint)
+0:70      Sequence
+0:70        move second child to first child (temp 2-component vector of int)
+0:70          'r21' (temp 2-component vector of int)
+0:70          imageLoad (temp 2-component vector of int)
+0:70            'g_tTex3di2' (layout(rg32i ) uniform iimage3D)
+0:70            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:70              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:70              Constant:
+0:70                2 (const uint)
+0:71      Sequence
+0:71        move second child to first child (temp 2-component vector of uint)
+0:71          'r22' (temp 2-component vector of uint)
+0:71          imageLoad (temp 2-component vector of uint)
+0:71            'g_tTex3du2' (layout(rg32ui ) uniform uimage3D)
+0:71            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:71              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:71              Constant:
+0:71                2 (const uint)
+0:73      Sequence
+0:73        move second child to first child (temp 2-component vector of float)
+0:73          'lf2' (temp 2-component vector of float)
+0:73          uf2: direct index for structure (layout(offset=96 ) uniform 2-component vector of float)
+0:73            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:73            Constant:
+0:73              8 (const uint)
+0:77      Sequence
+0:77        move second child to first child (temp 2-component vector of float)
+0:77          'storeTemp' (temp 2-component vector of float)
+0:77          Function Call: SomeValue( (temp 2-component vector of float)
+0:77        imageStore (temp void)
+0:77          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:77          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:77            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:77            Constant:
+0:77              0 (const uint)
+0:77          'storeTemp' (temp 2-component vector of float)
+0:77        'storeTemp' (temp 2-component vector of float)
+0:78      Sequence
+0:78        imageStore (temp void)
+0:78          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:78          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:78            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:78            Constant:
+0:78              0 (const uint)
+0:78          'lf2' (temp 2-component vector of float)
+0:78        'lf2' (temp 2-component vector of float)
+0:79      Sequence
+0:79        move second child to first child (temp 2-component vector of int)
+0:79          'storeTemp' (temp 2-component vector of int)
+0:?           Constant:
+0:?             2 (const int)
+0:?             2 (const int)
+0:79        imageStore (temp void)
+0:79          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:79          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:79            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:79            Constant:
+0:79              0 (const uint)
+0:79          'storeTemp' (temp 2-component vector of int)
+0:79        'storeTemp' (temp 2-component vector of int)
+0:80      Sequence
+0:80        move second child to first child (temp 2-component vector of uint)
+0:80          'storeTemp' (temp 2-component vector of uint)
+0:?           Constant:
+0:?             3 (const uint)
+0:?             2 (const uint)
+0:80        imageStore (temp void)
+0:80          'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:80          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:80            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:80            Constant:
+0:80              0 (const uint)
+0:80          'storeTemp' (temp 2-component vector of uint)
+0:80        'storeTemp' (temp 2-component vector of uint)
+0:83      Sequence
+0:83        move second child to first child (temp 2-component vector of float)
+0:83          'val1' (temp 2-component vector of float)
+0:83          Sequence
+0:83            move second child to first child (temp int)
+0:83              'coordTemp' (temp int)
+0:83              c1: direct index for structure (layout(offset=0 ) uniform int)
+0:83                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:83                Constant:
+0:83                  0 (const uint)
+0:83            move second child to first child (temp 2-component vector of float)
+0:83              'storeTemp' (temp 2-component vector of float)
+0:83              imageLoad (temp 2-component vector of float)
+0:83                'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:83                'coordTemp' (temp int)
+0:83            vector scale second child into first child (temp 2-component vector of float)
+0:83              'storeTemp' (temp 2-component vector of float)
+0:83              Constant:
+0:83                2.000000
+0:83            imageStore (temp void)
+0:83              'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:83              'coordTemp' (temp int)
+0:83              'storeTemp' (temp 2-component vector of float)
+0:83            'storeTemp' (temp 2-component vector of float)
+0:84      Sequence
+0:84        move second child to first child (temp int)
+0:84          'coordTemp' (temp int)
+0:84          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:84            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:84            Constant:
+0:84              0 (const uint)
+0:84        move second child to first child (temp 2-component vector of float)
+0:84          'storeTemp' (temp 2-component vector of float)
+0:84          imageLoad (temp 2-component vector of float)
+0:84            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:84            'coordTemp' (temp int)
+0:84        subtract second child into first child (temp 2-component vector of float)
+0:84          'storeTemp' (temp 2-component vector of float)
+0:84          Constant:
+0:84            3.000000
+0:84        imageStore (temp void)
+0:84          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:84          'coordTemp' (temp int)
+0:84          'storeTemp' (temp 2-component vector of float)
+0:84        'storeTemp' (temp 2-component vector of float)
+0:85      Sequence
+0:85        move second child to first child (temp int)
+0:85          'coordTemp' (temp int)
+0:85          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:85            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:85            Constant:
+0:85              0 (const uint)
+0:85        move second child to first child (temp 2-component vector of float)
+0:85          'storeTemp' (temp 2-component vector of float)
+0:85          imageLoad (temp 2-component vector of float)
+0:85            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:85            'coordTemp' (temp int)
+0:85        add second child into first child (temp 2-component vector of float)
+0:85          'storeTemp' (temp 2-component vector of float)
+0:85          Constant:
+0:85            4.000000
+0:85        imageStore (temp void)
+0:85          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:85          'coordTemp' (temp int)
+0:85          'storeTemp' (temp 2-component vector of float)
+0:85        'storeTemp' (temp 2-component vector of float)
+0:87      Sequence
+0:87        move second child to first child (temp int)
+0:87          'coordTemp' (temp int)
+0:87          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:87            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:87            Constant:
+0:87              0 (const uint)
+0:87        move second child to first child (temp 2-component vector of int)
+0:87          'storeTemp' (temp 2-component vector of int)
+0:87          imageLoad (temp 2-component vector of int)
+0:87            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:87            'coordTemp' (temp int)
+0:87        divide second child into first child (temp 2-component vector of int)
+0:87          'storeTemp' (temp 2-component vector of int)
+0:87          Constant:
+0:87            2 (const int)
+0:87        imageStore (temp void)
+0:87          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:87          'coordTemp' (temp int)
+0:87          'storeTemp' (temp 2-component vector of int)
+0:87        'storeTemp' (temp 2-component vector of int)
+0:88      Sequence
+0:88        move second child to first child (temp int)
+0:88          'coordTemp' (temp int)
+0:88          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:88            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:88            Constant:
+0:88              0 (const uint)
+0:88        move second child to first child (temp 2-component vector of int)
+0:88          'storeTemp' (temp 2-component vector of int)
+0:88          imageLoad (temp 2-component vector of int)
+0:88            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:88            'coordTemp' (temp int)
+0:88        mod second child into first child (temp 2-component vector of int)
+0:88          'storeTemp' (temp 2-component vector of int)
+0:88          Constant:
+0:88            2 (const int)
+0:88        imageStore (temp void)
+0:88          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:88          'coordTemp' (temp int)
+0:88          'storeTemp' (temp 2-component vector of int)
+0:88        'storeTemp' (temp 2-component vector of int)
+0:89      Sequence
+0:89        move second child to first child (temp int)
+0:89          'coordTemp' (temp int)
+0:89          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:89            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:89            Constant:
+0:89              0 (const uint)
+0:89        move second child to first child (temp 2-component vector of int)
+0:89          'storeTemp' (temp 2-component vector of int)
+0:89          imageLoad (temp 2-component vector of int)
+0:89            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:89            'coordTemp' (temp int)
+0:89        and second child into first child (temp 2-component vector of int)
+0:89          'storeTemp' (temp 2-component vector of int)
+0:89          Constant:
+0:89            65535 (const int)
+0:89        imageStore (temp void)
+0:89          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:89          'coordTemp' (temp int)
+0:89          'storeTemp' (temp 2-component vector of int)
+0:89        'storeTemp' (temp 2-component vector of int)
+0:90      Sequence
+0:90        move second child to first child (temp int)
+0:90          'coordTemp' (temp int)
+0:90          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:90            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:90            Constant:
+0:90              0 (const uint)
+0:90        move second child to first child (temp 2-component vector of int)
+0:90          'storeTemp' (temp 2-component vector of int)
+0:90          imageLoad (temp 2-component vector of int)
+0:90            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:90            'coordTemp' (temp int)
+0:90        or second child into first child (temp 2-component vector of int)
+0:90          'storeTemp' (temp 2-component vector of int)
+0:90          Constant:
+0:90            61680 (const int)
+0:90        imageStore (temp void)
+0:90          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:90          'coordTemp' (temp int)
+0:90          'storeTemp' (temp 2-component vector of int)
+0:90        'storeTemp' (temp 2-component vector of int)
+0:91      Sequence
+0:91        move second child to first child (temp int)
+0:91          'coordTemp' (temp int)
+0:91          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:91            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:91            Constant:
+0:91              0 (const uint)
+0:91        move second child to first child (temp 2-component vector of int)
+0:91          'storeTemp' (temp 2-component vector of int)
+0:91          imageLoad (temp 2-component vector of int)
+0:91            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:91            'coordTemp' (temp int)
+0:91        left shift second child into first child (temp 2-component vector of int)
+0:91          'storeTemp' (temp 2-component vector of int)
+0:91          Constant:
+0:91            2 (const int)
+0:91        imageStore (temp void)
+0:91          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:91          'coordTemp' (temp int)
+0:91          'storeTemp' (temp 2-component vector of int)
+0:91        'storeTemp' (temp 2-component vector of int)
+0:92      Sequence
+0:92        move second child to first child (temp int)
+0:92          'coordTemp' (temp int)
+0:92          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:92            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:92            Constant:
+0:92              0 (const uint)
+0:92        move second child to first child (temp 2-component vector of int)
+0:92          'storeTemp' (temp 2-component vector of int)
+0:92          imageLoad (temp 2-component vector of int)
+0:92            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:92            'coordTemp' (temp int)
+0:92        right shift second child into first child (temp 2-component vector of int)
+0:92          'storeTemp' (temp 2-component vector of int)
+0:92          Constant:
+0:92            2 (const int)
+0:92        imageStore (temp void)
+0:92          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:92          'coordTemp' (temp int)
+0:92          'storeTemp' (temp 2-component vector of int)
+0:92        'storeTemp' (temp 2-component vector of int)
+0:95      Sequence
+0:95        move second child to first child (temp 2-component vector of float)
+0:95          'storeTemp' (temp 2-component vector of float)
+0:95          Function Call: SomeValue( (temp 2-component vector of float)
+0:95        imageStore (temp void)
+0:95          'g_tTex2df2' (layout(rg32f ) uniform image2D)
+0:95          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:95            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:95            Constant:
+0:95              1 (const uint)
+0:95          'storeTemp' (temp 2-component vector of float)
+0:95        'storeTemp' (temp 2-component vector of float)
+0:96      Sequence
+0:96        imageStore (temp void)
+0:96          'g_tTex2df2' (layout(rg32f ) uniform image2D)
+0:96          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:96            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:96            Constant:
+0:96              1 (const uint)
+0:96          'lf2' (temp 2-component vector of float)
+0:96        'lf2' (temp 2-component vector of float)
+0:97      Sequence
+0:97        move second child to first child (temp 2-component vector of int)
+0:97          'storeTemp' (temp 2-component vector of int)
+0:?           Constant:
+0:?             5 (const int)
+0:?             2 (const int)
+0:97        imageStore (temp void)
+0:97          'g_tTex2di2' (layout(rg32i ) uniform iimage2D)
+0:97          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:97            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:97            Constant:
+0:97              1 (const uint)
+0:97          'storeTemp' (temp 2-component vector of int)
+0:97        'storeTemp' (temp 2-component vector of int)
+0:98      Sequence
+0:98        move second child to first child (temp 2-component vector of uint)
+0:98          'storeTemp' (temp 2-component vector of uint)
+0:?           Constant:
+0:?             6 (const uint)
+0:?             2 (const uint)
+0:98        imageStore (temp void)
+0:98          'g_tTex2du2' (layout(rg32ui ) uniform uimage2D)
+0:98          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:98            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:98            Constant:
+0:98              1 (const uint)
+0:98          'storeTemp' (temp 2-component vector of uint)
+0:98        'storeTemp' (temp 2-component vector of uint)
+0:101      Sequence
+0:101        move second child to first child (temp 2-component vector of float)
+0:101          'storeTemp' (temp 2-component vector of float)
+0:101          Function Call: SomeValue( (temp 2-component vector of float)
+0:101        imageStore (temp void)
+0:101          'g_tTex3df2' (layout(rg32f ) uniform image3D)
+0:101          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:101            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:101            Constant:
+0:101              2 (const uint)
+0:101          'storeTemp' (temp 2-component vector of float)
+0:101        'storeTemp' (temp 2-component vector of float)
+0:102      Sequence
+0:102        imageStore (temp void)
+0:102          'g_tTex3df2' (layout(rg32f ) uniform image3D)
+0:102          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:102            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:102            Constant:
+0:102              2 (const uint)
+0:102          'lf2' (temp 2-component vector of float)
+0:102        'lf2' (temp 2-component vector of float)
+0:103      Sequence
+0:103        move second child to first child (temp 2-component vector of int)
+0:103          'storeTemp' (temp 2-component vector of int)
+0:?           Constant:
+0:?             8 (const int)
+0:?             6 (const int)
+0:103        imageStore (temp void)
+0:103          'g_tTex3di2' (layout(rg32i ) uniform iimage3D)
+0:103          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:103            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:103            Constant:
+0:103              2 (const uint)
+0:103          'storeTemp' (temp 2-component vector of int)
+0:103        'storeTemp' (temp 2-component vector of int)
+0:104      Sequence
+0:104        move second child to first child (temp 2-component vector of uint)
+0:104          'storeTemp' (temp 2-component vector of uint)
+0:?           Constant:
+0:?             9 (const uint)
+0:?             2 (const uint)
+0:104        imageStore (temp void)
+0:104          'g_tTex3du2' (layout(rg32ui ) uniform uimage3D)
+0:104          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:104            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:104            Constant:
+0:104              2 (const uint)
+0:104          'storeTemp' (temp 2-component vector of uint)
+0:104        'storeTemp' (temp 2-component vector of uint)
+0:107      Function Call: Fn1(vf2; (temp 2-component vector of float)
+0:107        imageLoad (temp 2-component vector of float)
+0:107          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:107          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:107            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:107            Constant:
+0:107              0 (const uint)
+0:108      Function Call: Fn1(vi2; (temp 2-component vector of int)
+0:108        imageLoad (temp 2-component vector of int)
+0:108          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:108          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:108            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:108            Constant:
+0:108              0 (const uint)
+0:109      Function Call: Fn1(vu2; (temp 2-component vector of uint)
+0:109        imageLoad (temp 2-component vector of uint)
+0:109          'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:109          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:109            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:109            Constant:
+0:109              0 (const uint)
+0:111      Comma (temp void)
+0:111        Function Call: Fn2(vf2; (temp void)
+0:111          'tempArg' (temp 2-component vector of float)
+0:111        Sequence
+0:111          imageStore (temp void)
+0:111            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:111            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:111              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:111              Constant:
+0:111                0 (const uint)
+0:111            'tempArg' (temp 2-component vector of float)
+0:111          'tempArg' (temp 2-component vector of float)
+0:112      Comma (temp void)
+0:112        Function Call: Fn2(vi2; (temp void)
+0:112          'tempArg' (temp 2-component vector of int)
+0:112        Sequence
+0:112          imageStore (temp void)
+0:112            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:112            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:112              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:112              Constant:
+0:112                0 (const uint)
+0:112            'tempArg' (temp 2-component vector of int)
+0:112          'tempArg' (temp 2-component vector of int)
+0:113      Comma (temp void)
+0:113        Function Call: Fn2(vu2; (temp void)
+0:113          'tempArg' (temp 2-component vector of uint)
+0:113        Sequence
+0:113          imageStore (temp void)
+0:113            'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:113            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:113              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:113              Constant:
+0:113                0 (const uint)
+0:113            'tempArg' (temp 2-component vector of uint)
+0:113          'tempArg' (temp 2-component vector of uint)
+0:117      Sequence
+0:117        move second child to first child (temp int)
+0:117          'coordTemp' (temp int)
+0:117          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:117            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:117            Constant:
+0:117              0 (const uint)
+0:117        move second child to first child (temp 2-component vector of float)
+0:117          'storeTemp' (temp 2-component vector of float)
+0:117          imageLoad (temp 2-component vector of float)
+0:117            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:117            'coordTemp' (temp int)
+0:117        Pre-Increment (temp 2-component vector of float)
+0:117          'storeTemp' (temp 2-component vector of float)
+0:117        imageStore (temp void)
+0:117          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:117          'coordTemp' (temp int)
+0:117          'storeTemp' (temp 2-component vector of float)
+0:117        'storeTemp' (temp 2-component vector of float)
+0:118      Sequence
+0:118        move second child to first child (temp int)
+0:118          'coordTemp' (temp int)
+0:118          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:118            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:118            Constant:
+0:118              0 (const uint)
+0:118        move second child to first child (temp 2-component vector of int)
+0:118          'storeTemp' (temp 2-component vector of int)
+0:118          imageLoad (temp 2-component vector of int)
+0:118            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:118            'coordTemp' (temp int)
+0:118        Pre-Increment (temp 2-component vector of int)
+0:118          'storeTemp' (temp 2-component vector of int)
+0:118        imageStore (temp void)
+0:118          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:118          'coordTemp' (temp int)
+0:118          'storeTemp' (temp 2-component vector of int)
+0:118        'storeTemp' (temp 2-component vector of int)
+0:119      Sequence
+0:119        move second child to first child (temp int)
+0:119          'coordTemp' (temp int)
+0:119          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:119            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:119            Constant:
+0:119              0 (const uint)
+0:119        move second child to first child (temp 2-component vector of uint)
+0:119          'storeTemp' (temp 2-component vector of uint)
+0:119          imageLoad (temp 2-component vector of uint)
+0:119            'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:119            'coordTemp' (temp int)
+0:119        Pre-Increment (temp 2-component vector of uint)
+0:119          'storeTemp' (temp 2-component vector of uint)
+0:119        imageStore (temp void)
+0:119          'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:119          'coordTemp' (temp int)
+0:119          'storeTemp' (temp 2-component vector of uint)
+0:119        'storeTemp' (temp 2-component vector of uint)
+0:121      Sequence
+0:121        move second child to first child (temp int)
+0:121          'coordTemp' (temp int)
+0:121          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:121            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:121            Constant:
+0:121              0 (const uint)
+0:121        move second child to first child (temp 2-component vector of float)
+0:121          'storeTemp' (temp 2-component vector of float)
+0:121          imageLoad (temp 2-component vector of float)
+0:121            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:121            'coordTemp' (temp int)
+0:121        Pre-Decrement (temp 2-component vector of float)
+0:121          'storeTemp' (temp 2-component vector of float)
+0:121        imageStore (temp void)
+0:121          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:121          'coordTemp' (temp int)
+0:121          'storeTemp' (temp 2-component vector of float)
+0:121        'storeTemp' (temp 2-component vector of float)
+0:122      Sequence
+0:122        move second child to first child (temp int)
+0:122          'coordTemp' (temp int)
+0:122          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:122            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:122            Constant:
+0:122              0 (const uint)
+0:122        move second child to first child (temp 2-component vector of int)
+0:122          'storeTemp' (temp 2-component vector of int)
+0:122          imageLoad (temp 2-component vector of int)
+0:122            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:122            'coordTemp' (temp int)
+0:122        Pre-Decrement (temp 2-component vector of int)
+0:122          'storeTemp' (temp 2-component vector of int)
+0:122        imageStore (temp void)
+0:122          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:122          'coordTemp' (temp int)
+0:122          'storeTemp' (temp 2-component vector of int)
+0:122        'storeTemp' (temp 2-component vector of int)
+0:123      Sequence
+0:123        move second child to first child (temp int)
+0:123          'coordTemp' (temp int)
+0:123          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:123            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:123            Constant:
+0:123              0 (const uint)
+0:123        move second child to first child (temp 2-component vector of uint)
+0:123          'storeTemp' (temp 2-component vector of uint)
+0:123          imageLoad (temp 2-component vector of uint)
+0:123            'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:123            'coordTemp' (temp int)
+0:123        Pre-Decrement (temp 2-component vector of uint)
+0:123          'storeTemp' (temp 2-component vector of uint)
+0:123        imageStore (temp void)
+0:123          'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:123          'coordTemp' (temp int)
+0:123          'storeTemp' (temp 2-component vector of uint)
+0:123        'storeTemp' (temp 2-component vector of uint)
+0:126      Sequence
+0:126        move second child to first child (temp int)
+0:126          'coordTemp' (temp int)
+0:126          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:126            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:126            Constant:
+0:126              0 (const uint)
+0:126        move second child to first child (temp 2-component vector of float)
+0:126          'storeTempPre' (temp 2-component vector of float)
+0:126          imageLoad (temp 2-component vector of float)
+0:126            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:126            'coordTemp' (temp int)
+0:126        move second child to first child (temp 2-component vector of float)
+0:126          'storeTempPost' (temp 2-component vector of float)
+0:126          'storeTempPre' (temp 2-component vector of float)
+0:126        Post-Increment (temp 2-component vector of float)
+0:126          'storeTempPost' (temp 2-component vector of float)
+0:126        imageStore (temp void)
+0:126          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:126          'coordTemp' (temp int)
+0:126          'storeTempPost' (temp 2-component vector of float)
+0:126        'storeTempPre' (temp 2-component vector of float)
+0:127      Sequence
+0:127        move second child to first child (temp int)
+0:127          'coordTemp' (temp int)
+0:127          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:127            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:127            Constant:
+0:127              0 (const uint)
+0:127        move second child to first child (temp 2-component vector of uint)
+0:127          'storeTempPre' (temp 2-component vector of uint)
+0:127          imageLoad (temp 2-component vector of uint)
+0:127            'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:127            'coordTemp' (temp int)
+0:127        move second child to first child (temp 2-component vector of uint)
+0:127          'storeTempPost' (temp 2-component vector of uint)
+0:127          'storeTempPre' (temp 2-component vector of uint)
+0:127        Post-Decrement (temp 2-component vector of uint)
+0:127          'storeTempPost' (temp 2-component vector of uint)
+0:127        imageStore (temp void)
+0:127          'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:127          'coordTemp' (temp int)
+0:127          'storeTempPost' (temp 2-component vector of uint)
+0:127        'storeTempPre' (temp 2-component vector of uint)
+0:128      Sequence
+0:128        move second child to first child (temp int)
+0:128          'coordTemp' (temp int)
+0:128          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:128            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:128            Constant:
+0:128              0 (const uint)
+0:128        move second child to first child (temp 2-component vector of int)
+0:128          'storeTempPre' (temp 2-component vector of int)
+0:128          imageLoad (temp 2-component vector of int)
+0:128            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:128            'coordTemp' (temp int)
+0:128        move second child to first child (temp 2-component vector of int)
+0:128          'storeTempPost' (temp 2-component vector of int)
+0:128          'storeTempPre' (temp 2-component vector of int)
+0:128        Post-Increment (temp 2-component vector of int)
+0:128          'storeTempPost' (temp 2-component vector of int)
+0:128        imageStore (temp void)
+0:128          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:128          'coordTemp' (temp int)
+0:128          'storeTempPost' (temp 2-component vector of int)
+0:128        'storeTempPre' (temp 2-component vector of int)
+0:130      Sequence
+0:130        move second child to first child (temp int)
+0:130          'coordTemp' (temp int)
+0:130          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:130            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:130            Constant:
+0:130              0 (const uint)
+0:130        move second child to first child (temp 2-component vector of float)
+0:130          'storeTempPre' (temp 2-component vector of float)
+0:130          imageLoad (temp 2-component vector of float)
+0:130            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:130            'coordTemp' (temp int)
+0:130        move second child to first child (temp 2-component vector of float)
+0:130          'storeTempPost' (temp 2-component vector of float)
+0:130          'storeTempPre' (temp 2-component vector of float)
+0:130        Post-Decrement (temp 2-component vector of float)
+0:130          'storeTempPost' (temp 2-component vector of float)
+0:130        imageStore (temp void)
+0:130          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:130          'coordTemp' (temp int)
+0:130          'storeTempPost' (temp 2-component vector of float)
+0:130        'storeTempPre' (temp 2-component vector of float)
+0:131      Sequence
+0:131        move second child to first child (temp int)
+0:131          'coordTemp' (temp int)
+0:131          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:131            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:131            Constant:
+0:131              0 (const uint)
+0:131        move second child to first child (temp 2-component vector of int)
+0:131          'storeTempPre' (temp 2-component vector of int)
+0:131          imageLoad (temp 2-component vector of int)
+0:131            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:131            'coordTemp' (temp int)
+0:131        move second child to first child (temp 2-component vector of int)
+0:131          'storeTempPost' (temp 2-component vector of int)
+0:131          'storeTempPre' (temp 2-component vector of int)
+0:131        Post-Increment (temp 2-component vector of int)
+0:131          'storeTempPost' (temp 2-component vector of int)
+0:131        imageStore (temp void)
+0:131          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:131          'coordTemp' (temp int)
+0:131          'storeTempPost' (temp 2-component vector of int)
+0:131        'storeTempPre' (temp 2-component vector of int)
+0:132      Sequence
+0:132        move second child to first child (temp int)
+0:132          'coordTemp' (temp int)
+0:132          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:132            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:132            Constant:
+0:132              0 (const uint)
+0:132        move second child to first child (temp 2-component vector of uint)
+0:132          'storeTempPre' (temp 2-component vector of uint)
+0:132          imageLoad (temp 2-component vector of uint)
+0:132            'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:132            'coordTemp' (temp int)
+0:132        move second child to first child (temp 2-component vector of uint)
+0:132          'storeTempPost' (temp 2-component vector of uint)
+0:132          'storeTempPre' (temp 2-component vector of uint)
+0:132        Post-Decrement (temp 2-component vector of uint)
+0:132          'storeTempPost' (temp 2-component vector of uint)
+0:132        imageStore (temp void)
+0:132          'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:132          'coordTemp' (temp int)
+0:132          'storeTempPost' (temp 2-component vector of uint)
+0:132        'storeTempPre' (temp 2-component vector of uint)
+0:135      Sequence
+0:135        move second child to first child (temp 2-component vector of float)
+0:135          'storeTemp' (temp 2-component vector of float)
+0:?           imageLoad (temp 2-component vector of float)
+0:135            'g_tTex2df2' (layout(rg32f ) uniform image2D)
+0:?             Constant:
+0:?               2 (const int)
+0:?               3 (const int)
+0:135        imageStore (temp void)
+0:135          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:135          Constant:
+0:135            1 (const int)
+0:135          'storeTemp' (temp 2-component vector of float)
+0:135        'storeTemp' (temp 2-component vector of float)
+0:137      move second child to first child (temp 4-component vector of float)
+0:137        Color: direct index for structure (temp 4-component vector of float)
+0:137          'psout' (temp structure{temp 4-component vector of float Color})
+0:137          Constant:
+0:137            0 (const int)
+0:137        Constant:
+0:137          1.000000
+0:137          1.000000
+0:137          1.000000
+0:137          1.000000
+0:139      Sequence
+0:139        Sequence
+0:139          move second child to first child (temp 4-component vector of float)
+0:?             'Color' (layout(location=0 ) out 4-component vector of float)
+0:139            Color: direct index for structure (temp 4-component vector of float)
+0:139              'psout' (temp structure{temp 4-component vector of float Color})
+0:139              Constant:
+0:139                0 (const int)
+0:139        Branch: Return
+0:?   Linker Objects
+0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:?     'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:?     'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:?     'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:?     'g_tTex2df2' (layout(rg32f ) uniform image2D)
+0:?     'g_tTex2di2' (layout(rg32i ) uniform iimage2D)
+0:?     'g_tTex2du2' (layout(rg32ui ) uniform uimage2D)
+0:?     'g_tTex3df2' (layout(rg32f ) uniform image3D)
+0:?     'g_tTex3di2' (layout(rg32i ) uniform iimage3D)
+0:?     'g_tTex3du2' (layout(rg32ui ) uniform uimage3D)
+0:?     'g_tTex1df2a' (layout(rg32f ) uniform image1DArray)
+0:?     'g_tTex1di2a' (layout(rg32i ) uniform iimage1DArray)
+0:?     'g_tTex1du2a' (layout(rg32ui ) uniform uimage1DArray)
+0:?     'g_tTex2df2a' (layout(rg32f ) uniform image2DArray)
+0:?     'g_tTex2di2a' (layout(rg32i ) uniform iimage2DArray)
+0:?     'g_tTex2du2a' (layout(rg32ui ) uniform uimage2DArray)
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:?     'Color' (layout(location=0 ) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:42  Function Definition: Fn1(vi2; (temp 2-component vector of int)
+0:42    Function Parameters: 
+0:42      'x' (in 2-component vector of int)
+0:?     Sequence
+0:42      Branch: Return with expression
+0:42        'x' (in 2-component vector of int)
+0:43  Function Definition: Fn1(vu2; (temp 2-component vector of uint)
+0:43    Function Parameters: 
+0:43      'x' (in 2-component vector of uint)
+0:?     Sequence
+0:43      Branch: Return with expression
+0:43        'x' (in 2-component vector of uint)
+0:44  Function Definition: Fn1(vf2; (temp 2-component vector of float)
+0:44    Function Parameters: 
+0:44      'x' (in 2-component vector of float)
+0:?     Sequence
+0:44      Branch: Return with expression
+0:44        'x' (in 2-component vector of float)
+0:46  Function Definition: Fn2(vi2; (temp void)
+0:46    Function Parameters: 
+0:46      'x' (out 2-component vector of int)
+0:?     Sequence
+0:46      move second child to first child (temp 2-component vector of int)
+0:46        'x' (out 2-component vector of int)
+0:?         Constant:
+0:?           0 (const int)
+0:?           0 (const int)
+0:47  Function Definition: Fn2(vu2; (temp void)
+0:47    Function Parameters: 
+0:47      'x' (out 2-component vector of uint)
+0:?     Sequence
+0:47      move second child to first child (temp 2-component vector of uint)
+0:47        'x' (out 2-component vector of uint)
+0:?         Constant:
+0:?           0 (const uint)
+0:?           0 (const uint)
+0:48  Function Definition: Fn2(vf2; (temp void)
+0:48    Function Parameters: 
+0:48      'x' (out 2-component vector of float)
+0:?     Sequence
+0:48      move second child to first child (temp 2-component vector of float)
+0:48        'x' (out 2-component vector of float)
+0:?         Constant:
+0:?           0.000000
+0:?           0.000000
+0:50  Function Definition: SomeValue( (temp 2-component vector of float)
+0:50    Function Parameters: 
+0:?     Sequence
+0:50      Branch: Return with expression
+0:50        Convert int to float (temp 2-component vector of float)
+0:50          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:50            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:50            Constant:
+0:50              1 (const uint)
+0:53  Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:53    Function Parameters: 
+0:?     Sequence
+0:57      imageLoad (temp 2-component vector of float)
+0:57        'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:57        c1: direct index for structure (layout(offset=0 ) uniform int)
+0:57          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:57          Constant:
+0:57            0 (const uint)
+0:59      Sequence
+0:59        move second child to first child (temp 2-component vector of float)
+0:59          'r00' (temp 2-component vector of float)
+0:59          imageLoad (temp 2-component vector of float)
+0:59            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:59            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:59              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:59              Constant:
+0:59                0 (const uint)
+0:60      Sequence
+0:60        move second child to first child (temp 2-component vector of int)
+0:60          'r01' (temp 2-component vector of int)
+0:60          imageLoad (temp 2-component vector of int)
+0:60            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:60            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:60              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:60              Constant:
+0:60                0 (const uint)
+0:61      Sequence
+0:61        move second child to first child (temp 2-component vector of uint)
+0:61          'r02' (temp 2-component vector of uint)
+0:61          imageLoad (temp 2-component vector of uint)
+0:61            'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:61            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:61              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:61              Constant:
+0:61                0 (const uint)
+0:64      Sequence
+0:64        move second child to first child (temp 2-component vector of float)
+0:64          'r10' (temp 2-component vector of float)
+0:64          imageLoad (temp 2-component vector of float)
+0:64            'g_tTex2df2' (layout(rg32f ) uniform image2D)
+0:64            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:64              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:64              Constant:
+0:64                1 (const uint)
+0:65      Sequence
+0:65        move second child to first child (temp 2-component vector of int)
+0:65          'r11' (temp 2-component vector of int)
+0:65          imageLoad (temp 2-component vector of int)
+0:65            'g_tTex2di2' (layout(rg32i ) uniform iimage2D)
+0:65            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:65              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:65              Constant:
+0:65                1 (const uint)
+0:66      Sequence
+0:66        move second child to first child (temp 2-component vector of uint)
+0:66          'r12' (temp 2-component vector of uint)
+0:66          imageLoad (temp 2-component vector of uint)
+0:66            'g_tTex2du2' (layout(rg32ui ) uniform uimage2D)
+0:66            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:66              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:66              Constant:
+0:66                1 (const uint)
+0:69      Sequence
+0:69        move second child to first child (temp 2-component vector of float)
+0:69          'r20' (temp 2-component vector of float)
+0:69          imageLoad (temp 2-component vector of float)
+0:69            'g_tTex3df2' (layout(rg32f ) uniform image3D)
+0:69            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:69              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:69              Constant:
+0:69                2 (const uint)
+0:70      Sequence
+0:70        move second child to first child (temp 2-component vector of int)
+0:70          'r21' (temp 2-component vector of int)
+0:70          imageLoad (temp 2-component vector of int)
+0:70            'g_tTex3di2' (layout(rg32i ) uniform iimage3D)
+0:70            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:70              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:70              Constant:
+0:70                2 (const uint)
+0:71      Sequence
+0:71        move second child to first child (temp 2-component vector of uint)
+0:71          'r22' (temp 2-component vector of uint)
+0:71          imageLoad (temp 2-component vector of uint)
+0:71            'g_tTex3du2' (layout(rg32ui ) uniform uimage3D)
+0:71            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:71              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:71              Constant:
+0:71                2 (const uint)
+0:73      Sequence
+0:73        move second child to first child (temp 2-component vector of float)
+0:73          'lf2' (temp 2-component vector of float)
+0:73          uf2: direct index for structure (layout(offset=96 ) uniform 2-component vector of float)
+0:73            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:73            Constant:
+0:73              8 (const uint)
+0:77      Sequence
+0:77        move second child to first child (temp 2-component vector of float)
+0:77          'storeTemp' (temp 2-component vector of float)
+0:77          Function Call: SomeValue( (temp 2-component vector of float)
+0:77        imageStore (temp void)
+0:77          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:77          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:77            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:77            Constant:
+0:77              0 (const uint)
+0:77          'storeTemp' (temp 2-component vector of float)
+0:77        'storeTemp' (temp 2-component vector of float)
+0:78      Sequence
+0:78        imageStore (temp void)
+0:78          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:78          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:78            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:78            Constant:
+0:78              0 (const uint)
+0:78          'lf2' (temp 2-component vector of float)
+0:78        'lf2' (temp 2-component vector of float)
+0:79      Sequence
+0:79        move second child to first child (temp 2-component vector of int)
+0:79          'storeTemp' (temp 2-component vector of int)
+0:?           Constant:
+0:?             2 (const int)
+0:?             2 (const int)
+0:79        imageStore (temp void)
+0:79          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:79          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:79            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:79            Constant:
+0:79              0 (const uint)
+0:79          'storeTemp' (temp 2-component vector of int)
+0:79        'storeTemp' (temp 2-component vector of int)
+0:80      Sequence
+0:80        move second child to first child (temp 2-component vector of uint)
+0:80          'storeTemp' (temp 2-component vector of uint)
+0:?           Constant:
+0:?             3 (const uint)
+0:?             2 (const uint)
+0:80        imageStore (temp void)
+0:80          'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:80          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:80            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:80            Constant:
+0:80              0 (const uint)
+0:80          'storeTemp' (temp 2-component vector of uint)
+0:80        'storeTemp' (temp 2-component vector of uint)
+0:83      Sequence
+0:83        move second child to first child (temp 2-component vector of float)
+0:83          'val1' (temp 2-component vector of float)
+0:83          Sequence
+0:83            move second child to first child (temp int)
+0:83              'coordTemp' (temp int)
+0:83              c1: direct index for structure (layout(offset=0 ) uniform int)
+0:83                'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:83                Constant:
+0:83                  0 (const uint)
+0:83            move second child to first child (temp 2-component vector of float)
+0:83              'storeTemp' (temp 2-component vector of float)
+0:83              imageLoad (temp 2-component vector of float)
+0:83                'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:83                'coordTemp' (temp int)
+0:83            vector scale second child into first child (temp 2-component vector of float)
+0:83              'storeTemp' (temp 2-component vector of float)
+0:83              Constant:
+0:83                2.000000
+0:83            imageStore (temp void)
+0:83              'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:83              'coordTemp' (temp int)
+0:83              'storeTemp' (temp 2-component vector of float)
+0:83            'storeTemp' (temp 2-component vector of float)
+0:84      Sequence
+0:84        move second child to first child (temp int)
+0:84          'coordTemp' (temp int)
+0:84          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:84            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:84            Constant:
+0:84              0 (const uint)
+0:84        move second child to first child (temp 2-component vector of float)
+0:84          'storeTemp' (temp 2-component vector of float)
+0:84          imageLoad (temp 2-component vector of float)
+0:84            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:84            'coordTemp' (temp int)
+0:84        subtract second child into first child (temp 2-component vector of float)
+0:84          'storeTemp' (temp 2-component vector of float)
+0:84          Constant:
+0:84            3.000000
+0:84        imageStore (temp void)
+0:84          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:84          'coordTemp' (temp int)
+0:84          'storeTemp' (temp 2-component vector of float)
+0:84        'storeTemp' (temp 2-component vector of float)
+0:85      Sequence
+0:85        move second child to first child (temp int)
+0:85          'coordTemp' (temp int)
+0:85          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:85            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:85            Constant:
+0:85              0 (const uint)
+0:85        move second child to first child (temp 2-component vector of float)
+0:85          'storeTemp' (temp 2-component vector of float)
+0:85          imageLoad (temp 2-component vector of float)
+0:85            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:85            'coordTemp' (temp int)
+0:85        add second child into first child (temp 2-component vector of float)
+0:85          'storeTemp' (temp 2-component vector of float)
+0:85          Constant:
+0:85            4.000000
+0:85        imageStore (temp void)
+0:85          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:85          'coordTemp' (temp int)
+0:85          'storeTemp' (temp 2-component vector of float)
+0:85        'storeTemp' (temp 2-component vector of float)
+0:87      Sequence
+0:87        move second child to first child (temp int)
+0:87          'coordTemp' (temp int)
+0:87          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:87            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:87            Constant:
+0:87              0 (const uint)
+0:87        move second child to first child (temp 2-component vector of int)
+0:87          'storeTemp' (temp 2-component vector of int)
+0:87          imageLoad (temp 2-component vector of int)
+0:87            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:87            'coordTemp' (temp int)
+0:87        divide second child into first child (temp 2-component vector of int)
+0:87          'storeTemp' (temp 2-component vector of int)
+0:87          Constant:
+0:87            2 (const int)
+0:87        imageStore (temp void)
+0:87          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:87          'coordTemp' (temp int)
+0:87          'storeTemp' (temp 2-component vector of int)
+0:87        'storeTemp' (temp 2-component vector of int)
+0:88      Sequence
+0:88        move second child to first child (temp int)
+0:88          'coordTemp' (temp int)
+0:88          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:88            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:88            Constant:
+0:88              0 (const uint)
+0:88        move second child to first child (temp 2-component vector of int)
+0:88          'storeTemp' (temp 2-component vector of int)
+0:88          imageLoad (temp 2-component vector of int)
+0:88            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:88            'coordTemp' (temp int)
+0:88        mod second child into first child (temp 2-component vector of int)
+0:88          'storeTemp' (temp 2-component vector of int)
+0:88          Constant:
+0:88            2 (const int)
+0:88        imageStore (temp void)
+0:88          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:88          'coordTemp' (temp int)
+0:88          'storeTemp' (temp 2-component vector of int)
+0:88        'storeTemp' (temp 2-component vector of int)
+0:89      Sequence
+0:89        move second child to first child (temp int)
+0:89          'coordTemp' (temp int)
+0:89          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:89            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:89            Constant:
+0:89              0 (const uint)
+0:89        move second child to first child (temp 2-component vector of int)
+0:89          'storeTemp' (temp 2-component vector of int)
+0:89          imageLoad (temp 2-component vector of int)
+0:89            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:89            'coordTemp' (temp int)
+0:89        and second child into first child (temp 2-component vector of int)
+0:89          'storeTemp' (temp 2-component vector of int)
+0:89          Constant:
+0:89            65535 (const int)
+0:89        imageStore (temp void)
+0:89          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:89          'coordTemp' (temp int)
+0:89          'storeTemp' (temp 2-component vector of int)
+0:89        'storeTemp' (temp 2-component vector of int)
+0:90      Sequence
+0:90        move second child to first child (temp int)
+0:90          'coordTemp' (temp int)
+0:90          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:90            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:90            Constant:
+0:90              0 (const uint)
+0:90        move second child to first child (temp 2-component vector of int)
+0:90          'storeTemp' (temp 2-component vector of int)
+0:90          imageLoad (temp 2-component vector of int)
+0:90            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:90            'coordTemp' (temp int)
+0:90        or second child into first child (temp 2-component vector of int)
+0:90          'storeTemp' (temp 2-component vector of int)
+0:90          Constant:
+0:90            61680 (const int)
+0:90        imageStore (temp void)
+0:90          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:90          'coordTemp' (temp int)
+0:90          'storeTemp' (temp 2-component vector of int)
+0:90        'storeTemp' (temp 2-component vector of int)
+0:91      Sequence
+0:91        move second child to first child (temp int)
+0:91          'coordTemp' (temp int)
+0:91          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:91            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:91            Constant:
+0:91              0 (const uint)
+0:91        move second child to first child (temp 2-component vector of int)
+0:91          'storeTemp' (temp 2-component vector of int)
+0:91          imageLoad (temp 2-component vector of int)
+0:91            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:91            'coordTemp' (temp int)
+0:91        left shift second child into first child (temp 2-component vector of int)
+0:91          'storeTemp' (temp 2-component vector of int)
+0:91          Constant:
+0:91            2 (const int)
+0:91        imageStore (temp void)
+0:91          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:91          'coordTemp' (temp int)
+0:91          'storeTemp' (temp 2-component vector of int)
+0:91        'storeTemp' (temp 2-component vector of int)
+0:92      Sequence
+0:92        move second child to first child (temp int)
+0:92          'coordTemp' (temp int)
+0:92          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:92            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:92            Constant:
+0:92              0 (const uint)
+0:92        move second child to first child (temp 2-component vector of int)
+0:92          'storeTemp' (temp 2-component vector of int)
+0:92          imageLoad (temp 2-component vector of int)
+0:92            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:92            'coordTemp' (temp int)
+0:92        right shift second child into first child (temp 2-component vector of int)
+0:92          'storeTemp' (temp 2-component vector of int)
+0:92          Constant:
+0:92            2 (const int)
+0:92        imageStore (temp void)
+0:92          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:92          'coordTemp' (temp int)
+0:92          'storeTemp' (temp 2-component vector of int)
+0:92        'storeTemp' (temp 2-component vector of int)
+0:95      Sequence
+0:95        move second child to first child (temp 2-component vector of float)
+0:95          'storeTemp' (temp 2-component vector of float)
+0:95          Function Call: SomeValue( (temp 2-component vector of float)
+0:95        imageStore (temp void)
+0:95          'g_tTex2df2' (layout(rg32f ) uniform image2D)
+0:95          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:95            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:95            Constant:
+0:95              1 (const uint)
+0:95          'storeTemp' (temp 2-component vector of float)
+0:95        'storeTemp' (temp 2-component vector of float)
+0:96      Sequence
+0:96        imageStore (temp void)
+0:96          'g_tTex2df2' (layout(rg32f ) uniform image2D)
+0:96          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:96            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:96            Constant:
+0:96              1 (const uint)
+0:96          'lf2' (temp 2-component vector of float)
+0:96        'lf2' (temp 2-component vector of float)
+0:97      Sequence
+0:97        move second child to first child (temp 2-component vector of int)
+0:97          'storeTemp' (temp 2-component vector of int)
+0:?           Constant:
+0:?             5 (const int)
+0:?             2 (const int)
+0:97        imageStore (temp void)
+0:97          'g_tTex2di2' (layout(rg32i ) uniform iimage2D)
+0:97          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:97            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:97            Constant:
+0:97              1 (const uint)
+0:97          'storeTemp' (temp 2-component vector of int)
+0:97        'storeTemp' (temp 2-component vector of int)
+0:98      Sequence
+0:98        move second child to first child (temp 2-component vector of uint)
+0:98          'storeTemp' (temp 2-component vector of uint)
+0:?           Constant:
+0:?             6 (const uint)
+0:?             2 (const uint)
+0:98        imageStore (temp void)
+0:98          'g_tTex2du2' (layout(rg32ui ) uniform uimage2D)
+0:98          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:98            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:98            Constant:
+0:98              1 (const uint)
+0:98          'storeTemp' (temp 2-component vector of uint)
+0:98        'storeTemp' (temp 2-component vector of uint)
+0:101      Sequence
+0:101        move second child to first child (temp 2-component vector of float)
+0:101          'storeTemp' (temp 2-component vector of float)
+0:101          Function Call: SomeValue( (temp 2-component vector of float)
+0:101        imageStore (temp void)
+0:101          'g_tTex3df2' (layout(rg32f ) uniform image3D)
+0:101          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:101            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:101            Constant:
+0:101              2 (const uint)
+0:101          'storeTemp' (temp 2-component vector of float)
+0:101        'storeTemp' (temp 2-component vector of float)
+0:102      Sequence
+0:102        imageStore (temp void)
+0:102          'g_tTex3df2' (layout(rg32f ) uniform image3D)
+0:102          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:102            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:102            Constant:
+0:102              2 (const uint)
+0:102          'lf2' (temp 2-component vector of float)
+0:102        'lf2' (temp 2-component vector of float)
+0:103      Sequence
+0:103        move second child to first child (temp 2-component vector of int)
+0:103          'storeTemp' (temp 2-component vector of int)
+0:?           Constant:
+0:?             8 (const int)
+0:?             6 (const int)
+0:103        imageStore (temp void)
+0:103          'g_tTex3di2' (layout(rg32i ) uniform iimage3D)
+0:103          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:103            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:103            Constant:
+0:103              2 (const uint)
+0:103          'storeTemp' (temp 2-component vector of int)
+0:103        'storeTemp' (temp 2-component vector of int)
+0:104      Sequence
+0:104        move second child to first child (temp 2-component vector of uint)
+0:104          'storeTemp' (temp 2-component vector of uint)
+0:?           Constant:
+0:?             9 (const uint)
+0:?             2 (const uint)
+0:104        imageStore (temp void)
+0:104          'g_tTex3du2' (layout(rg32ui ) uniform uimage3D)
+0:104          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:104            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:104            Constant:
+0:104              2 (const uint)
+0:104          'storeTemp' (temp 2-component vector of uint)
+0:104        'storeTemp' (temp 2-component vector of uint)
+0:107      Function Call: Fn1(vf2; (temp 2-component vector of float)
+0:107        imageLoad (temp 2-component vector of float)
+0:107          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:107          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:107            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:107            Constant:
+0:107              0 (const uint)
+0:108      Function Call: Fn1(vi2; (temp 2-component vector of int)
+0:108        imageLoad (temp 2-component vector of int)
+0:108          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:108          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:108            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:108            Constant:
+0:108              0 (const uint)
+0:109      Function Call: Fn1(vu2; (temp 2-component vector of uint)
+0:109        imageLoad (temp 2-component vector of uint)
+0:109          'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:109          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:109            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:109            Constant:
+0:109              0 (const uint)
+0:111      Comma (temp void)
+0:111        Function Call: Fn2(vf2; (temp void)
+0:111          'tempArg' (temp 2-component vector of float)
+0:111        Sequence
+0:111          imageStore (temp void)
+0:111            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:111            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:111              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:111              Constant:
+0:111                0 (const uint)
+0:111            'tempArg' (temp 2-component vector of float)
+0:111          'tempArg' (temp 2-component vector of float)
+0:112      Comma (temp void)
+0:112        Function Call: Fn2(vi2; (temp void)
+0:112          'tempArg' (temp 2-component vector of int)
+0:112        Sequence
+0:112          imageStore (temp void)
+0:112            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:112            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:112              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:112              Constant:
+0:112                0 (const uint)
+0:112            'tempArg' (temp 2-component vector of int)
+0:112          'tempArg' (temp 2-component vector of int)
+0:113      Comma (temp void)
+0:113        Function Call: Fn2(vu2; (temp void)
+0:113          'tempArg' (temp 2-component vector of uint)
+0:113        Sequence
+0:113          imageStore (temp void)
+0:113            'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:113            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:113              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:113              Constant:
+0:113                0 (const uint)
+0:113            'tempArg' (temp 2-component vector of uint)
+0:113          'tempArg' (temp 2-component vector of uint)
+0:117      Sequence
+0:117        move second child to first child (temp int)
+0:117          'coordTemp' (temp int)
+0:117          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:117            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:117            Constant:
+0:117              0 (const uint)
+0:117        move second child to first child (temp 2-component vector of float)
+0:117          'storeTemp' (temp 2-component vector of float)
+0:117          imageLoad (temp 2-component vector of float)
+0:117            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:117            'coordTemp' (temp int)
+0:117        Pre-Increment (temp 2-component vector of float)
+0:117          'storeTemp' (temp 2-component vector of float)
+0:117        imageStore (temp void)
+0:117          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:117          'coordTemp' (temp int)
+0:117          'storeTemp' (temp 2-component vector of float)
+0:117        'storeTemp' (temp 2-component vector of float)
+0:118      Sequence
+0:118        move second child to first child (temp int)
+0:118          'coordTemp' (temp int)
+0:118          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:118            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:118            Constant:
+0:118              0 (const uint)
+0:118        move second child to first child (temp 2-component vector of int)
+0:118          'storeTemp' (temp 2-component vector of int)
+0:118          imageLoad (temp 2-component vector of int)
+0:118            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:118            'coordTemp' (temp int)
+0:118        Pre-Increment (temp 2-component vector of int)
+0:118          'storeTemp' (temp 2-component vector of int)
+0:118        imageStore (temp void)
+0:118          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:118          'coordTemp' (temp int)
+0:118          'storeTemp' (temp 2-component vector of int)
+0:118        'storeTemp' (temp 2-component vector of int)
+0:119      Sequence
+0:119        move second child to first child (temp int)
+0:119          'coordTemp' (temp int)
+0:119          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:119            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:119            Constant:
+0:119              0 (const uint)
+0:119        move second child to first child (temp 2-component vector of uint)
+0:119          'storeTemp' (temp 2-component vector of uint)
+0:119          imageLoad (temp 2-component vector of uint)
+0:119            'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:119            'coordTemp' (temp int)
+0:119        Pre-Increment (temp 2-component vector of uint)
+0:119          'storeTemp' (temp 2-component vector of uint)
+0:119        imageStore (temp void)
+0:119          'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:119          'coordTemp' (temp int)
+0:119          'storeTemp' (temp 2-component vector of uint)
+0:119        'storeTemp' (temp 2-component vector of uint)
+0:121      Sequence
+0:121        move second child to first child (temp int)
+0:121          'coordTemp' (temp int)
+0:121          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:121            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:121            Constant:
+0:121              0 (const uint)
+0:121        move second child to first child (temp 2-component vector of float)
+0:121          'storeTemp' (temp 2-component vector of float)
+0:121          imageLoad (temp 2-component vector of float)
+0:121            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:121            'coordTemp' (temp int)
+0:121        Pre-Decrement (temp 2-component vector of float)
+0:121          'storeTemp' (temp 2-component vector of float)
+0:121        imageStore (temp void)
+0:121          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:121          'coordTemp' (temp int)
+0:121          'storeTemp' (temp 2-component vector of float)
+0:121        'storeTemp' (temp 2-component vector of float)
+0:122      Sequence
+0:122        move second child to first child (temp int)
+0:122          'coordTemp' (temp int)
+0:122          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:122            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:122            Constant:
+0:122              0 (const uint)
+0:122        move second child to first child (temp 2-component vector of int)
+0:122          'storeTemp' (temp 2-component vector of int)
+0:122          imageLoad (temp 2-component vector of int)
+0:122            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:122            'coordTemp' (temp int)
+0:122        Pre-Decrement (temp 2-component vector of int)
+0:122          'storeTemp' (temp 2-component vector of int)
+0:122        imageStore (temp void)
+0:122          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:122          'coordTemp' (temp int)
+0:122          'storeTemp' (temp 2-component vector of int)
+0:122        'storeTemp' (temp 2-component vector of int)
+0:123      Sequence
+0:123        move second child to first child (temp int)
+0:123          'coordTemp' (temp int)
+0:123          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:123            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:123            Constant:
+0:123              0 (const uint)
+0:123        move second child to first child (temp 2-component vector of uint)
+0:123          'storeTemp' (temp 2-component vector of uint)
+0:123          imageLoad (temp 2-component vector of uint)
+0:123            'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:123            'coordTemp' (temp int)
+0:123        Pre-Decrement (temp 2-component vector of uint)
+0:123          'storeTemp' (temp 2-component vector of uint)
+0:123        imageStore (temp void)
+0:123          'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:123          'coordTemp' (temp int)
+0:123          'storeTemp' (temp 2-component vector of uint)
+0:123        'storeTemp' (temp 2-component vector of uint)
+0:126      Sequence
+0:126        move second child to first child (temp int)
+0:126          'coordTemp' (temp int)
+0:126          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:126            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:126            Constant:
+0:126              0 (const uint)
+0:126        move second child to first child (temp 2-component vector of float)
+0:126          'storeTempPre' (temp 2-component vector of float)
+0:126          imageLoad (temp 2-component vector of float)
+0:126            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:126            'coordTemp' (temp int)
+0:126        move second child to first child (temp 2-component vector of float)
+0:126          'storeTempPost' (temp 2-component vector of float)
+0:126          'storeTempPre' (temp 2-component vector of float)
+0:126        Post-Increment (temp 2-component vector of float)
+0:126          'storeTempPost' (temp 2-component vector of float)
+0:126        imageStore (temp void)
+0:126          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:126          'coordTemp' (temp int)
+0:126          'storeTempPost' (temp 2-component vector of float)
+0:126        'storeTempPre' (temp 2-component vector of float)
+0:127      Sequence
+0:127        move second child to first child (temp int)
+0:127          'coordTemp' (temp int)
+0:127          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:127            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:127            Constant:
+0:127              0 (const uint)
+0:127        move second child to first child (temp 2-component vector of uint)
+0:127          'storeTempPre' (temp 2-component vector of uint)
+0:127          imageLoad (temp 2-component vector of uint)
+0:127            'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:127            'coordTemp' (temp int)
+0:127        move second child to first child (temp 2-component vector of uint)
+0:127          'storeTempPost' (temp 2-component vector of uint)
+0:127          'storeTempPre' (temp 2-component vector of uint)
+0:127        Post-Decrement (temp 2-component vector of uint)
+0:127          'storeTempPost' (temp 2-component vector of uint)
+0:127        imageStore (temp void)
+0:127          'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:127          'coordTemp' (temp int)
+0:127          'storeTempPost' (temp 2-component vector of uint)
+0:127        'storeTempPre' (temp 2-component vector of uint)
+0:128      Sequence
+0:128        move second child to first child (temp int)
+0:128          'coordTemp' (temp int)
+0:128          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:128            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:128            Constant:
+0:128              0 (const uint)
+0:128        move second child to first child (temp 2-component vector of int)
+0:128          'storeTempPre' (temp 2-component vector of int)
+0:128          imageLoad (temp 2-component vector of int)
+0:128            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:128            'coordTemp' (temp int)
+0:128        move second child to first child (temp 2-component vector of int)
+0:128          'storeTempPost' (temp 2-component vector of int)
+0:128          'storeTempPre' (temp 2-component vector of int)
+0:128        Post-Increment (temp 2-component vector of int)
+0:128          'storeTempPost' (temp 2-component vector of int)
+0:128        imageStore (temp void)
+0:128          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:128          'coordTemp' (temp int)
+0:128          'storeTempPost' (temp 2-component vector of int)
+0:128        'storeTempPre' (temp 2-component vector of int)
+0:130      Sequence
+0:130        move second child to first child (temp int)
+0:130          'coordTemp' (temp int)
+0:130          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:130            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:130            Constant:
+0:130              0 (const uint)
+0:130        move second child to first child (temp 2-component vector of float)
+0:130          'storeTempPre' (temp 2-component vector of float)
+0:130          imageLoad (temp 2-component vector of float)
+0:130            'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:130            'coordTemp' (temp int)
+0:130        move second child to first child (temp 2-component vector of float)
+0:130          'storeTempPost' (temp 2-component vector of float)
+0:130          'storeTempPre' (temp 2-component vector of float)
+0:130        Post-Decrement (temp 2-component vector of float)
+0:130          'storeTempPost' (temp 2-component vector of float)
+0:130        imageStore (temp void)
+0:130          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:130          'coordTemp' (temp int)
+0:130          'storeTempPost' (temp 2-component vector of float)
+0:130        'storeTempPre' (temp 2-component vector of float)
+0:131      Sequence
+0:131        move second child to first child (temp int)
+0:131          'coordTemp' (temp int)
+0:131          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:131            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:131            Constant:
+0:131              0 (const uint)
+0:131        move second child to first child (temp 2-component vector of int)
+0:131          'storeTempPre' (temp 2-component vector of int)
+0:131          imageLoad (temp 2-component vector of int)
+0:131            'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:131            'coordTemp' (temp int)
+0:131        move second child to first child (temp 2-component vector of int)
+0:131          'storeTempPost' (temp 2-component vector of int)
+0:131          'storeTempPre' (temp 2-component vector of int)
+0:131        Post-Increment (temp 2-component vector of int)
+0:131          'storeTempPost' (temp 2-component vector of int)
+0:131        imageStore (temp void)
+0:131          'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:131          'coordTemp' (temp int)
+0:131          'storeTempPost' (temp 2-component vector of int)
+0:131        'storeTempPre' (temp 2-component vector of int)
+0:132      Sequence
+0:132        move second child to first child (temp int)
+0:132          'coordTemp' (temp int)
+0:132          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:132            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:132            Constant:
+0:132              0 (const uint)
+0:132        move second child to first child (temp 2-component vector of uint)
+0:132          'storeTempPre' (temp 2-component vector of uint)
+0:132          imageLoad (temp 2-component vector of uint)
+0:132            'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:132            'coordTemp' (temp int)
+0:132        move second child to first child (temp 2-component vector of uint)
+0:132          'storeTempPost' (temp 2-component vector of uint)
+0:132          'storeTempPre' (temp 2-component vector of uint)
+0:132        Post-Decrement (temp 2-component vector of uint)
+0:132          'storeTempPost' (temp 2-component vector of uint)
+0:132        imageStore (temp void)
+0:132          'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:132          'coordTemp' (temp int)
+0:132          'storeTempPost' (temp 2-component vector of uint)
+0:132        'storeTempPre' (temp 2-component vector of uint)
+0:135      Sequence
+0:135        move second child to first child (temp 2-component vector of float)
+0:135          'storeTemp' (temp 2-component vector of float)
+0:?           imageLoad (temp 2-component vector of float)
+0:135            'g_tTex2df2' (layout(rg32f ) uniform image2D)
+0:?             Constant:
+0:?               2 (const int)
+0:?               3 (const int)
+0:135        imageStore (temp void)
+0:135          'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:135          Constant:
+0:135            1 (const int)
+0:135          'storeTemp' (temp 2-component vector of float)
+0:135        'storeTemp' (temp 2-component vector of float)
+0:137      move second child to first child (temp 4-component vector of float)
+0:137        Color: direct index for structure (temp 4-component vector of float)
+0:137          'psout' (temp structure{temp 4-component vector of float Color})
+0:137          Constant:
+0:137            0 (const int)
+0:137        Constant:
+0:137          1.000000
+0:137          1.000000
+0:137          1.000000
+0:137          1.000000
+0:139      Sequence
+0:139        Sequence
+0:139          move second child to first child (temp 4-component vector of float)
+0:?             'Color' (layout(location=0 ) out 4-component vector of float)
+0:139            Color: direct index for structure (temp 4-component vector of float)
+0:139              'psout' (temp structure{temp 4-component vector of float Color})
+0:139              Constant:
+0:139                0 (const int)
+0:139        Branch: Return
+0:?   Linker Objects
+0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:?     'g_tTex1df2' (layout(rg32f ) uniform image1D)
+0:?     'g_tTex1di2' (layout(rg32i ) uniform iimage1D)
+0:?     'g_tTex1du2' (layout(rg32ui ) uniform uimage1D)
+0:?     'g_tTex2df2' (layout(rg32f ) uniform image2D)
+0:?     'g_tTex2di2' (layout(rg32i ) uniform iimage2D)
+0:?     'g_tTex2du2' (layout(rg32ui ) uniform uimage2D)
+0:?     'g_tTex3df2' (layout(rg32f ) uniform image3D)
+0:?     'g_tTex3di2' (layout(rg32i ) uniform iimage3D)
+0:?     'g_tTex3du2' (layout(rg32ui ) uniform uimage3D)
+0:?     'g_tTex1df2a' (layout(rg32f ) uniform image1DArray)
+0:?     'g_tTex1di2a' (layout(rg32i ) uniform iimage1DArray)
+0:?     'g_tTex1du2a' (layout(rg32ui ) uniform uimage1DArray)
+0:?     'g_tTex2df2a' (layout(rg32f ) uniform image2DArray)
+0:?     'g_tTex2di2a' (layout(rg32i ) uniform iimage2DArray)
+0:?     'g_tTex2du2a' (layout(rg32ui ) uniform uimage2DArray)
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2})
+0:?     'Color' (layout(location=0 ) out 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 600
+
+                              Capability Shader
+                              Capability Sampled1D
+                              Capability StorageImageExtendedFormats
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 575
+                              ExecutionMode 4 OriginUpperLeft
+                              Name 4  "main"
+                              Name 11  "Fn1(vi2;"
+                              Name 10  "x"
+                              Name 18  "Fn1(vu2;"
+                              Name 17  "x"
+                              Name 25  "Fn1(vf2;"
+                              Name 24  "x"
+                              Name 29  "Fn2(vi2;"
+                              Name 28  "x"
+                              Name 33  "Fn2(vu2;"
+                              Name 32  "x"
+                              Name 37  "Fn2(vf2;"
+                              Name 36  "x"
+                              Name 40  "SomeValue("
+                              Name 59  "$Global"
+                              MemberName 59($Global) 0  "c1"
+                              MemberName 59($Global) 1  "c2"
+                              MemberName 59($Global) 2  "c3"
+                              MemberName 59($Global) 3  "c4"
+                              MemberName 59($Global) 4  "o1"
+                              MemberName 59($Global) 5  "o2"
+                              MemberName 59($Global) 6  "o3"
+                              MemberName 59($Global) 7  "o4"
+                              MemberName 59($Global) 8  "uf2"
+                              MemberName 59($Global) 9  "ui2"
+                              MemberName 59($Global) 10  "uu2"
+                              Name 61  ""
+                              Name 71  "g_tTex1df2"
+                              Name 77  "r00"
+                              Name 82  "r01"
+                              Name 85  "g_tTex1di2"
+                              Name 90  "r02"
+                              Name 93  "g_tTex1du2"
+                              Name 98  "r10"
+                              Name 101  "g_tTex2df2"
+                              Name 106  "r11"
+                              Name 109  "g_tTex2di2"
+                              Name 114  "r12"
+                              Name 117  "g_tTex2du2"
+                              Name 122  "r20"
+                              Name 125  "g_tTex3df2"
+                              Name 132  "r21"
+                              Name 135  "g_tTex3di2"
+                              Name 140  "r22"
+                              Name 143  "g_tTex3du2"
+                              Name 148  "lf2"
+                              Name 153  "storeTemp"
+                              Name 163  "storeTemp"
+                              Name 169  "storeTemp"
+                              Name 177  "val1"
+                              Name 179  "coordTemp"
+                              Name 182  "storeTemp"
+                              Name 193  "coordTemp"
+                              Name 196  "storeTemp"
+                              Name 207  "coordTemp"
+                              Name 210  "storeTemp"
+                              Name 221  "coordTemp"
+                              Name 224  "storeTemp"
+                              Name 234  "coordTemp"
+                              Name 237  "storeTemp"
+                              Name 247  "coordTemp"
+                              Name 250  "storeTemp"
+                              Name 261  "coordTemp"
+                              Name 264  "storeTemp"
+                              Name 275  "coordTemp"
+                              Name 278  "storeTemp"
+                              Name 288  "coordTemp"
+                              Name 291  "storeTemp"
+                              Name 301  "storeTemp"
+                              Name 311  "storeTemp"
+                              Name 318  "storeTemp"
+                              Name 325  "storeTemp"
+                              Name 335  "storeTemp"
+                              Name 342  "storeTemp"
+                              Name 353  "param"
+                              Name 359  "param"
+                              Name 365  "param"
+                              Name 367  "tempArg"
+                              Name 368  "param"
+                              Name 375  "tempArg"
+                              Name 376  "param"
+                              Name 383  "tempArg"
+                              Name 384  "param"
+                              Name 391  "coordTemp"
+                              Name 394  "storeTemp"
+                              Name 405  "coordTemp"
+                              Name 408  "storeTemp"
+                              Name 418  "coordTemp"
+                              Name 421  "storeTemp"
+                              Name 431  "coordTemp"
+                              Name 434  "storeTemp"
+                              Name 444  "coordTemp"
+                              Name 447  "storeTemp"
+                              Name 457  "coordTemp"
+                              Name 460  "storeTemp"
+                              Name 470  "coordTemp"
+                              Name 473  "storeTempPre"
+                              Name 477  "storeTempPost"
+                              Name 485  "coordTemp"
+                              Name 488  "storeTempPre"
+                              Name 492  "storeTempPost"
+                              Name 500  "coordTemp"
+                              Name 503  "storeTempPre"
+                              Name 507  "storeTempPost"
+                              Name 515  "coordTemp"
+                              Name 518  "storeTempPre"
+                              Name 522  "storeTempPost"
+                              Name 530  "coordTemp"
+                              Name 533  "storeTempPre"
+                              Name 537  "storeTempPost"
+                              Name 545  "coordTemp"
+                              Name 548  "storeTempPre"
+                              Name 552  "storeTempPost"
+                              Name 560  "storeTemp"
+                              Name 568  "PS_OUTPUT"
+                              MemberName 568(PS_OUTPUT) 0  "Color"
+                              Name 570  "psout"
+                              Name 575  "Color"
+                              Name 581  "g_sSamp"
+                              Name 584  "g_tTex1df2a"
+                              Name 587  "g_tTex1di2a"
+                              Name 590  "g_tTex1du2a"
+                              Name 593  "g_tTex2df2a"
+                              Name 596  "g_tTex2di2a"
+                              Name 599  "g_tTex2du2a"
+                              MemberDecorate 59($Global) 0 Offset 0
+                              MemberDecorate 59($Global) 1 Offset 8
+                              MemberDecorate 59($Global) 2 Offset 16
+                              MemberDecorate 59($Global) 3 Offset 32
+                              MemberDecorate 59($Global) 4 Offset 48
+                              MemberDecorate 59($Global) 5 Offset 56
+                              MemberDecorate 59($Global) 6 Offset 64
+                              MemberDecorate 59($Global) 7 Offset 80
+                              MemberDecorate 59($Global) 8 Offset 96
+                              MemberDecorate 59($Global) 9 Offset 104
+                              MemberDecorate 59($Global) 10 Offset 112
+                              Decorate 59($Global) Block
+                              Decorate 61 DescriptorSet 0
+                              Decorate 71(g_tTex1df2) DescriptorSet 0
+                              Decorate 85(g_tTex1di2) DescriptorSet 0
+                              Decorate 93(g_tTex1du2) DescriptorSet 0
+                              Decorate 101(g_tTex2df2) DescriptorSet 0
+                              Decorate 109(g_tTex2di2) DescriptorSet 0
+                              Decorate 117(g_tTex2du2) DescriptorSet 0
+                              Decorate 125(g_tTex3df2) DescriptorSet 0
+                              Decorate 135(g_tTex3di2) DescriptorSet 0
+                              Decorate 143(g_tTex3du2) DescriptorSet 0
+                              Decorate 575(Color) Location 0
+                              Decorate 581(g_sSamp) DescriptorSet 0
+                              Decorate 581(g_sSamp) Binding 0
+                              Decorate 584(g_tTex1df2a) DescriptorSet 0
+                              Decorate 587(g_tTex1di2a) DescriptorSet 0
+                              Decorate 590(g_tTex1du2a) DescriptorSet 0
+                              Decorate 593(g_tTex2df2a) DescriptorSet 0
+                              Decorate 596(g_tTex2di2a) DescriptorSet 0
+                              Decorate 599(g_tTex2du2a) DescriptorSet 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypeVector 6(int) 2
+               8:             TypePointer Function 7(ivec2)
+               9:             TypeFunction 7(ivec2) 8(ptr)
+              13:             TypeInt 32 0
+              14:             TypeVector 13(int) 2
+              15:             TypePointer Function 14(ivec2)
+              16:             TypeFunction 14(ivec2) 15(ptr)
+              20:             TypeFloat 32
+              21:             TypeVector 20(float) 2
+              22:             TypePointer Function 21(fvec2)
+              23:             TypeFunction 21(fvec2) 22(ptr)
+              27:             TypeFunction 2 8(ptr)
+              31:             TypeFunction 2 15(ptr)
+              35:             TypeFunction 2 22(ptr)
+              39:             TypeFunction 21(fvec2)
+              51:      6(int) Constant 0
+              52:    7(ivec2) ConstantComposite 51 51
+              53:     13(int) Constant 0
+              54:   14(ivec2) ConstantComposite 53 53
+              55:   20(float) Constant 0
+              56:   21(fvec2) ConstantComposite 55 55
+              57:             TypeVector 6(int) 3
+              58:             TypeVector 6(int) 4
+     59($Global):             TypeStruct 6(int) 7(ivec2) 57(ivec3) 58(ivec4) 6(int) 7(ivec2) 57(ivec3) 58(ivec4) 21(fvec2) 7(ivec2) 14(ivec2)
+              60:             TypePointer Uniform 59($Global)
+              61:     60(ptr) Variable Uniform
+              62:      6(int) Constant 1
+              63:             TypePointer Uniform 7(ivec2)
+              69:             TypeImage 20(float) 1D nonsampled format:Rg32f
+              70:             TypePointer UniformConstant 69
+  71(g_tTex1df2):     70(ptr) Variable UniformConstant
+              73:             TypePointer Uniform 6(int)
+              83:             TypeImage 6(int) 1D nonsampled format:Rg32i
+              84:             TypePointer UniformConstant 83
+  85(g_tTex1di2):     84(ptr) Variable UniformConstant
+              91:             TypeImage 13(int) 1D nonsampled format:Rg32ui
+              92:             TypePointer UniformConstant 91
+  93(g_tTex1du2):     92(ptr) Variable UniformConstant
+              99:             TypeImage 20(float) 2D nonsampled format:Rg32f
+             100:             TypePointer UniformConstant 99
+ 101(g_tTex2df2):    100(ptr) Variable UniformConstant
+             107:             TypeImage 6(int) 2D nonsampled format:Rg32i
+             108:             TypePointer UniformConstant 107
+ 109(g_tTex2di2):    108(ptr) Variable UniformConstant
+             115:             TypeImage 13(int) 2D nonsampled format:Rg32ui
+             116:             TypePointer UniformConstant 115
+ 117(g_tTex2du2):    116(ptr) Variable UniformConstant
+             123:             TypeImage 20(float) 3D nonsampled format:Rg32f
+             124:             TypePointer UniformConstant 123
+ 125(g_tTex3df2):    124(ptr) Variable UniformConstant
+             127:      6(int) Constant 2
+             128:             TypePointer Uniform 57(ivec3)
+             133:             TypeImage 6(int) 3D nonsampled format:Rg32i
+             134:             TypePointer UniformConstant 133
+ 135(g_tTex3di2):    134(ptr) Variable UniformConstant
+             141:             TypeImage 13(int) 3D nonsampled format:Rg32ui
+             142:             TypePointer UniformConstant 141
+ 143(g_tTex3du2):    142(ptr) Variable UniformConstant
+             149:      6(int) Constant 8
+             150:             TypePointer Uniform 21(fvec2)
+             164:    7(ivec2) ConstantComposite 127 127
+             170:     13(int) Constant 3
+             171:     13(int) Constant 2
+             172:   14(ivec2) ConstantComposite 170 171
+             178:             TypePointer Function 6(int)
+             186:   20(float) Constant 1073741824
+             200:   20(float) Constant 1077936128
+             214:   20(float) Constant 1082130432
+             254:      6(int) Constant 65535
+             268:      6(int) Constant 61680
+             312:      6(int) Constant 5
+             313:    7(ivec2) ConstantComposite 312 127
+             319:     13(int) Constant 6
+             320:   14(ivec2) ConstantComposite 319 171
+             336:      6(int) Constant 6
+             337:    7(ivec2) ConstantComposite 149 336
+             343:     13(int) Constant 9
+             344:   14(ivec2) ConstantComposite 343 171
+             399:   20(float) Constant 1065353216
+             562:      6(int) Constant 3
+             563:    7(ivec2) ConstantComposite 127 562
+             567:             TypeVector 20(float) 4
+  568(PS_OUTPUT):             TypeStruct 567(fvec4)
+             569:             TypePointer Function 568(PS_OUTPUT)
+             571:  567(fvec4) ConstantComposite 399 399 399 399
+             572:             TypePointer Function 567(fvec4)
+             574:             TypePointer Output 567(fvec4)
+      575(Color):    574(ptr) Variable Output
+             579:             TypeSampler
+             580:             TypePointer UniformConstant 579
+    581(g_sSamp):    580(ptr) Variable UniformConstant
+             582:             TypeImage 20(float) 1D array nonsampled format:Rg32f
+             583:             TypePointer UniformConstant 582
+584(g_tTex1df2a):    583(ptr) Variable UniformConstant
+             585:             TypeImage 6(int) 1D array nonsampled format:Rg32i
+             586:             TypePointer UniformConstant 585
+587(g_tTex1di2a):    586(ptr) Variable UniformConstant
+             588:             TypeImage 13(int) 1D array nonsampled format:Rg32ui
+             589:             TypePointer UniformConstant 588
+590(g_tTex1du2a):    589(ptr) Variable UniformConstant
+             591:             TypeImage 20(float) 2D array nonsampled format:Rg32f
+             592:             TypePointer UniformConstant 591
+593(g_tTex2df2a):    592(ptr) Variable UniformConstant
+             594:             TypeImage 6(int) 2D array nonsampled format:Rg32i
+             595:             TypePointer UniformConstant 594
+596(g_tTex2di2a):    595(ptr) Variable UniformConstant
+             597:             TypeImage 13(int) 2D array nonsampled format:Rg32ui
+             598:             TypePointer UniformConstant 597
+599(g_tTex2du2a):    598(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+         77(r00):     22(ptr) Variable Function
+         82(r01):      8(ptr) Variable Function
+         90(r02):     15(ptr) Variable Function
+         98(r10):     22(ptr) Variable Function
+        106(r11):      8(ptr) Variable Function
+        114(r12):     15(ptr) Variable Function
+        122(r20):     22(ptr) Variable Function
+        132(r21):      8(ptr) Variable Function
+        140(r22):     15(ptr) Variable Function
+        148(lf2):     22(ptr) Variable Function
+  153(storeTemp):     22(ptr) Variable Function
+  163(storeTemp):      8(ptr) Variable Function
+  169(storeTemp):     15(ptr) Variable Function
+       177(val1):     22(ptr) Variable Function
+  179(coordTemp):    178(ptr) Variable Function
+  182(storeTemp):     22(ptr) Variable Function
+  193(coordTemp):    178(ptr) Variable Function
+  196(storeTemp):     22(ptr) Variable Function
+  207(coordTemp):    178(ptr) Variable Function
+  210(storeTemp):     22(ptr) Variable Function
+  221(coordTemp):    178(ptr) Variable Function
+  224(storeTemp):      8(ptr) Variable Function
+  234(coordTemp):    178(ptr) Variable Function
+  237(storeTemp):      8(ptr) Variable Function
+  247(coordTemp):    178(ptr) Variable Function
+  250(storeTemp):      8(ptr) Variable Function
+  261(coordTemp):    178(ptr) Variable Function
+  264(storeTemp):      8(ptr) Variable Function
+  275(coordTemp):    178(ptr) Variable Function
+  278(storeTemp):      8(ptr) Variable Function
+  288(coordTemp):    178(ptr) Variable Function
+  291(storeTemp):      8(ptr) Variable Function
+  301(storeTemp):     22(ptr) Variable Function
+  311(storeTemp):      8(ptr) Variable Function
+  318(storeTemp):     15(ptr) Variable Function
+  325(storeTemp):     22(ptr) Variable Function
+  335(storeTemp):      8(ptr) Variable Function
+  342(storeTemp):     15(ptr) Variable Function
+      353(param):     22(ptr) Variable Function
+      359(param):      8(ptr) Variable Function
+      365(param):     15(ptr) Variable Function
+    367(tempArg):     22(ptr) Variable Function
+      368(param):     22(ptr) Variable Function
+    375(tempArg):      8(ptr) Variable Function
+      376(param):      8(ptr) Variable Function
+    383(tempArg):     15(ptr) Variable Function
+      384(param):     15(ptr) Variable Function
+  391(coordTemp):    178(ptr) Variable Function
+  394(storeTemp):     22(ptr) Variable Function
+  405(coordTemp):    178(ptr) Variable Function
+  408(storeTemp):      8(ptr) Variable Function
+  418(coordTemp):    178(ptr) Variable Function
+  421(storeTemp):     15(ptr) Variable Function
+  431(coordTemp):    178(ptr) Variable Function
+  434(storeTemp):     22(ptr) Variable Function
+  444(coordTemp):    178(ptr) Variable Function
+  447(storeTemp):      8(ptr) Variable Function
+  457(coordTemp):    178(ptr) Variable Function
+  460(storeTemp):     15(ptr) Variable Function
+  470(coordTemp):    178(ptr) Variable Function
+473(storeTempPre):     22(ptr) Variable Function
+477(storeTempPost):     22(ptr) Variable Function
+  485(coordTemp):    178(ptr) Variable Function
+488(storeTempPre):     15(ptr) Variable Function
+492(storeTempPost):     15(ptr) Variable Function
+  500(coordTemp):    178(ptr) Variable Function
+503(storeTempPre):      8(ptr) Variable Function
+507(storeTempPost):      8(ptr) Variable Function
+  515(coordTemp):    178(ptr) Variable Function
+518(storeTempPre):     22(ptr) Variable Function
+522(storeTempPost):     22(ptr) Variable Function
+  530(coordTemp):    178(ptr) Variable Function
+533(storeTempPre):      8(ptr) Variable Function
+537(storeTempPost):      8(ptr) Variable Function
+  545(coordTemp):    178(ptr) Variable Function
+548(storeTempPre):     15(ptr) Variable Function
+552(storeTempPost):     15(ptr) Variable Function
+  560(storeTemp):     22(ptr) Variable Function
+      570(psout):    569(ptr) Variable Function
+              72:          69 Load 71(g_tTex1df2)
+              74:     73(ptr) AccessChain 61 51
+              75:      6(int) Load 74
+              76:   21(fvec2) ImageRead 72 75
+              78:          69 Load 71(g_tTex1df2)
+              79:     73(ptr) AccessChain 61 51
+              80:      6(int) Load 79
+              81:   21(fvec2) ImageRead 78 80
+                              Store 77(r00) 81
+              86:          83 Load 85(g_tTex1di2)
+              87:     73(ptr) AccessChain 61 51
+              88:      6(int) Load 87
+              89:    7(ivec2) ImageRead 86 88
+                              Store 82(r01) 89
+              94:          91 Load 93(g_tTex1du2)
+              95:     73(ptr) AccessChain 61 51
+              96:      6(int) Load 95
+              97:   14(ivec2) ImageRead 94 96
+                              Store 90(r02) 97
+             102:          99 Load 101(g_tTex2df2)
+             103:     63(ptr) AccessChain 61 62
+             104:    7(ivec2) Load 103
+             105:   21(fvec2) ImageRead 102 104
+                              Store 98(r10) 105
+             110:         107 Load 109(g_tTex2di2)
+             111:     63(ptr) AccessChain 61 62
+             112:    7(ivec2) Load 111
+             113:    7(ivec2) ImageRead 110 112
+                              Store 106(r11) 113
+             118:         115 Load 117(g_tTex2du2)
+             119:     63(ptr) AccessChain 61 62
+             120:    7(ivec2) Load 119
+             121:   14(ivec2) ImageRead 118 120
+                              Store 114(r12) 121
+             126:         123 Load 125(g_tTex3df2)
+             129:    128(ptr) AccessChain 61 127
+             130:   57(ivec3) Load 129
+             131:   21(fvec2) ImageRead 126 130
+                              Store 122(r20) 131
+             136:         133 Load 135(g_tTex3di2)
+             137:    128(ptr) AccessChain 61 127
+             138:   57(ivec3) Load 137
+             139:    7(ivec2) ImageRead 136 138
+                              Store 132(r21) 139
+             144:         141 Load 143(g_tTex3du2)
+             145:    128(ptr) AccessChain 61 127
+             146:   57(ivec3) Load 145
+             147:   14(ivec2) ImageRead 144 146
+                              Store 140(r22) 147
+             151:    150(ptr) AccessChain 61 149
+             152:   21(fvec2) Load 151
+                              Store 148(lf2) 152
+             154:   21(fvec2) FunctionCall 40(SomeValue()
+                              Store 153(storeTemp) 154
+             155:          69 Load 71(g_tTex1df2)
+             156:     73(ptr) AccessChain 61 51
+             157:      6(int) Load 156
+             158:   21(fvec2) Load 153(storeTemp)
+                              ImageWrite 155 157 158
+             159:          69 Load 71(g_tTex1df2)
+             160:     73(ptr) AccessChain 61 51
+             161:      6(int) Load 160
+             162:   21(fvec2) Load 148(lf2)
+                              ImageWrite 159 161 162
+                              Store 163(storeTemp) 164
+             165:          83 Load 85(g_tTex1di2)
+             166:     73(ptr) AccessChain 61 51
+             167:      6(int) Load 166
+             168:    7(ivec2) Load 163(storeTemp)
+                              ImageWrite 165 167 168
+                              Store 169(storeTemp) 172
+             173:          91 Load 93(g_tTex1du2)
+             174:     73(ptr) AccessChain 61 51
+             175:      6(int) Load 174
+             176:   14(ivec2) Load 169(storeTemp)
+                              ImageWrite 173 175 176
+             180:     73(ptr) AccessChain 61 51
+             181:      6(int) Load 180
+                              Store 179(coordTemp) 181
+             183:          69 Load 71(g_tTex1df2)
+             184:      6(int) Load 179(coordTemp)
+             185:   21(fvec2) ImageRead 183 184
+                              Store 182(storeTemp) 185
+             187:   21(fvec2) Load 182(storeTemp)
+             188:   21(fvec2) VectorTimesScalar 187 186
+                              Store 182(storeTemp) 188
+             189:          69 Load 71(g_tTex1df2)
+             190:      6(int) Load 179(coordTemp)
+             191:   21(fvec2) Load 182(storeTemp)
+                              ImageWrite 189 190 191
+             192:   21(fvec2) Load 182(storeTemp)
+                              Store 177(val1) 192
+             194:     73(ptr) AccessChain 61 51
+             195:      6(int) Load 194
+                              Store 193(coordTemp) 195
+             197:          69 Load 71(g_tTex1df2)
+             198:      6(int) Load 193(coordTemp)
+             199:   21(fvec2) ImageRead 197 198
+                              Store 196(storeTemp) 199
+             201:   21(fvec2) Load 196(storeTemp)
+             202:   21(fvec2) CompositeConstruct 200 200
+             203:   21(fvec2) FSub 201 202
+                              Store 196(storeTemp) 203
+             204:          69 Load 71(g_tTex1df2)
+             205:      6(int) Load 193(coordTemp)
+             206:   21(fvec2) Load 196(storeTemp)
+                              ImageWrite 204 205 206
+             208:     73(ptr) AccessChain 61 51
+             209:      6(int) Load 208
+                              Store 207(coordTemp) 209
+             211:          69 Load 71(g_tTex1df2)
+             212:      6(int) Load 207(coordTemp)
+             213:   21(fvec2) ImageRead 211 212
+                              Store 210(storeTemp) 213
+             215:   21(fvec2) Load 210(storeTemp)
+             216:   21(fvec2) CompositeConstruct 214 214
+             217:   21(fvec2) FAdd 215 216
+                              Store 210(storeTemp) 217
+             218:          69 Load 71(g_tTex1df2)
+             219:      6(int) Load 207(coordTemp)
+             220:   21(fvec2) Load 210(storeTemp)
+                              ImageWrite 218 219 220
+             222:     73(ptr) AccessChain 61 51
+             223:      6(int) Load 222
+                              Store 221(coordTemp) 223
+             225:          83 Load 85(g_tTex1di2)
+             226:      6(int) Load 221(coordTemp)
+             227:    7(ivec2) ImageRead 225 226
+                              Store 224(storeTemp) 227
+             228:    7(ivec2) Load 224(storeTemp)
+             229:    7(ivec2) CompositeConstruct 127 127
+             230:    7(ivec2) SDiv 228 229
+                              Store 224(storeTemp) 230
+             231:          83 Load 85(g_tTex1di2)
+             232:      6(int) Load 221(coordTemp)
+             233:    7(ivec2) Load 224(storeTemp)
+                              ImageWrite 231 232 233
+             235:     73(ptr) AccessChain 61 51
+             236:      6(int) Load 235
+                              Store 234(coordTemp) 236
+             238:          83 Load 85(g_tTex1di2)
+             239:      6(int) Load 234(coordTemp)
+             240:    7(ivec2) ImageRead 238 239
+                              Store 237(storeTemp) 240
+             241:    7(ivec2) Load 237(storeTemp)
+             242:    7(ivec2) CompositeConstruct 127 127
+             243:    7(ivec2) SMod 241 242
+                              Store 237(storeTemp) 243
+             244:          83 Load 85(g_tTex1di2)
+             245:      6(int) Load 234(coordTemp)
+             246:    7(ivec2) Load 237(storeTemp)
+                              ImageWrite 244 245 246
+             248:     73(ptr) AccessChain 61 51
+             249:      6(int) Load 248
+                              Store 247(coordTemp) 249
+             251:          83 Load 85(g_tTex1di2)
+             252:      6(int) Load 247(coordTemp)
+             253:    7(ivec2) ImageRead 251 252
+                              Store 250(storeTemp) 253
+             255:    7(ivec2) Load 250(storeTemp)
+             256:    7(ivec2) CompositeConstruct 254 254
+             257:    7(ivec2) BitwiseAnd 255 256
+                              Store 250(storeTemp) 257
+             258:          83 Load 85(g_tTex1di2)
+             259:      6(int) Load 247(coordTemp)
+             260:    7(ivec2) Load 250(storeTemp)
+                              ImageWrite 258 259 260
+             262:     73(ptr) AccessChain 61 51
+             263:      6(int) Load 262
+                              Store 261(coordTemp) 263
+             265:          83 Load 85(g_tTex1di2)
+             266:      6(int) Load 261(coordTemp)
+             267:    7(ivec2) ImageRead 265 266
+                              Store 264(storeTemp) 267
+             269:    7(ivec2) Load 264(storeTemp)
+             270:    7(ivec2) CompositeConstruct 268 268
+             271:    7(ivec2) BitwiseOr 269 270
+                              Store 264(storeTemp) 271
+             272:          83 Load 85(g_tTex1di2)
+             273:      6(int) Load 261(coordTemp)
+             274:    7(ivec2) Load 264(storeTemp)
+                              ImageWrite 272 273 274
+             276:     73(ptr) AccessChain 61 51
+             277:      6(int) Load 276
+                              Store 275(coordTemp) 277
+             279:          83 Load 85(g_tTex1di2)
+             280:      6(int) Load 275(coordTemp)
+             281:    7(ivec2) ImageRead 279 280
+                              Store 278(storeTemp) 281
+             282:    7(ivec2) Load 278(storeTemp)
+             283:    7(ivec2) CompositeConstruct 127 127
+             284:    7(ivec2) ShiftLeftLogical 282 283
+                              Store 278(storeTemp) 284
+             285:          83 Load 85(g_tTex1di2)
+             286:      6(int) Load 275(coordTemp)
+             287:    7(ivec2) Load 278(storeTemp)
+                              ImageWrite 285 286 287
+             289:     73(ptr) AccessChain 61 51
+             290:      6(int) Load 289
+                              Store 288(coordTemp) 290
+             292:          83 Load 85(g_tTex1di2)
+             293:      6(int) Load 288(coordTemp)
+             294:    7(ivec2) ImageRead 292 293
+                              Store 291(storeTemp) 294
+             295:    7(ivec2) Load 291(storeTemp)
+             296:    7(ivec2) CompositeConstruct 127 127
+             297:    7(ivec2) ShiftRightArithmetic 295 296
+                              Store 291(storeTemp) 297
+             298:          83 Load 85(g_tTex1di2)
+             299:      6(int) Load 288(coordTemp)
+             300:    7(ivec2) Load 291(storeTemp)
+                              ImageWrite 298 299 300
+             302:   21(fvec2) FunctionCall 40(SomeValue()
+                              Store 301(storeTemp) 302
+             303:          99 Load 101(g_tTex2df2)
+             304:     63(ptr) AccessChain 61 62
+             305:    7(ivec2) Load 304
+             306:   21(fvec2) Load 301(storeTemp)
+                              ImageWrite 303 305 306
+             307:          99 Load 101(g_tTex2df2)
+             308:     63(ptr) AccessChain 61 62
+             309:    7(ivec2) Load 308
+             310:   21(fvec2) Load 148(lf2)
+                              ImageWrite 307 309 310
+                              Store 311(storeTemp) 313
+             314:         107 Load 109(g_tTex2di2)
+             315:     63(ptr) AccessChain 61 62
+             316:    7(ivec2) Load 315
+             317:    7(ivec2) Load 311(storeTemp)
+                              ImageWrite 314 316 317
+                              Store 318(storeTemp) 320
+             321:         115 Load 117(g_tTex2du2)
+             322:     63(ptr) AccessChain 61 62
+             323:    7(ivec2) Load 322
+             324:   14(ivec2) Load 318(storeTemp)
+                              ImageWrite 321 323 324
+             326:   21(fvec2) FunctionCall 40(SomeValue()
+                              Store 325(storeTemp) 326
+             327:         123 Load 125(g_tTex3df2)
+             328:    128(ptr) AccessChain 61 127
+             329:   57(ivec3) Load 328
+             330:   21(fvec2) Load 325(storeTemp)
+                              ImageWrite 327 329 330
+             331:         123 Load 125(g_tTex3df2)
+             332:    128(ptr) AccessChain 61 127
+             333:   57(ivec3) Load 332
+             334:   21(fvec2) Load 148(lf2)
+                              ImageWrite 331 333 334
+                              Store 335(storeTemp) 337
+             338:         133 Load 135(g_tTex3di2)
+             339:    128(ptr) AccessChain 61 127
+             340:   57(ivec3) Load 339
+             341:    7(ivec2) Load 335(storeTemp)
+                              ImageWrite 338 340 341
+                              Store 342(storeTemp) 344
+             345:         141 Load 143(g_tTex3du2)
+             346:    128(ptr) AccessChain 61 127
+             347:   57(ivec3) Load 346
+             348:   14(ivec2) Load 342(storeTemp)
+                              ImageWrite 345 347 348
+             349:          69 Load 71(g_tTex1df2)
+             350:     73(ptr) AccessChain 61 51
+             351:      6(int) Load 350
+             352:   21(fvec2) ImageRead 349 351
+                              Store 353(param) 352
+             354:   21(fvec2) FunctionCall 25(Fn1(vf2;) 353(param)
+             355:          83 Load 85(g_tTex1di2)
+             356:     73(ptr) AccessChain 61 51
+             357:      6(int) Load 356
+             358:    7(ivec2) ImageRead 355 357
+                              Store 359(param) 358
+             360:    7(ivec2) FunctionCall 11(Fn1(vi2;) 359(param)
+             361:          91 Load 93(g_tTex1du2)
+             362:     73(ptr) AccessChain 61 51
+             363:      6(int) Load 362
+             364:   14(ivec2) ImageRead 361 363
+                              Store 365(param) 364
+             366:   14(ivec2) FunctionCall 18(Fn1(vu2;) 365(param)
+             369:           2 FunctionCall 37(Fn2(vf2;) 368(param)
+             370:   21(fvec2) Load 368(param)
+                              Store 367(tempArg) 370
+             371:          69 Load 71(g_tTex1df2)
+             372:     73(ptr) AccessChain 61 51
+             373:      6(int) Load 372
+             374:   21(fvec2) Load 367(tempArg)
+                              ImageWrite 371 373 374
+             377:           2 FunctionCall 29(Fn2(vi2;) 376(param)
+             378:    7(ivec2) Load 376(param)
+                              Store 375(tempArg) 378
+             379:          83 Load 85(g_tTex1di2)
+             380:     73(ptr) AccessChain 61 51
+             381:      6(int) Load 380
+             382:    7(ivec2) Load 375(tempArg)
+                              ImageWrite 379 381 382
+             385:           2 FunctionCall 33(Fn2(vu2;) 384(param)
+             386:   14(ivec2) Load 384(param)
+                              Store 383(tempArg) 386
+             387:          91 Load 93(g_tTex1du2)
+             388:     73(ptr) AccessChain 61 51
+             389:      6(int) Load 388
+             390:   14(ivec2) Load 383(tempArg)
+                              ImageWrite 387 389 390
+             392:     73(ptr) AccessChain 61 51
+             393:      6(int) Load 392
+                              Store 391(coordTemp) 393
+             395:          69 Load 71(g_tTex1df2)
+             396:      6(int) Load 391(coordTemp)
+             397:   21(fvec2) ImageRead 395 396
+                              Store 394(storeTemp) 397
+             398:   21(fvec2) Load 394(storeTemp)
+             400:   21(fvec2) CompositeConstruct 399 399
+             401:   21(fvec2) FAdd 398 400
+                              Store 394(storeTemp) 401
+             402:          69 Load 71(g_tTex1df2)
+             403:      6(int) Load 391(coordTemp)
+             404:   21(fvec2) Load 394(storeTemp)
+                              ImageWrite 402 403 404
+             406:     73(ptr) AccessChain 61 51
+             407:      6(int) Load 406
+                              Store 405(coordTemp) 407
+             409:          83 Load 85(g_tTex1di2)
+             410:      6(int) Load 405(coordTemp)
+             411:    7(ivec2) ImageRead 409 410
+                              Store 408(storeTemp) 411
+             412:    7(ivec2) Load 408(storeTemp)
+             413:    7(ivec2) CompositeConstruct 62 62
+             414:    7(ivec2) IAdd 412 413
+                              Store 408(storeTemp) 414
+             415:          83 Load 85(g_tTex1di2)
+             416:      6(int) Load 405(coordTemp)
+             417:    7(ivec2) Load 408(storeTemp)
+                              ImageWrite 415 416 417
+             419:     73(ptr) AccessChain 61 51
+             420:      6(int) Load 419
+                              Store 418(coordTemp) 420
+             422:          91 Load 93(g_tTex1du2)
+             423:      6(int) Load 418(coordTemp)
+             424:   14(ivec2) ImageRead 422 423
+                              Store 421(storeTemp) 424
+             425:   14(ivec2) Load 421(storeTemp)
+             426:    7(ivec2) CompositeConstruct 62 62
+             427:   14(ivec2) IAdd 425 426
+                              Store 421(storeTemp) 427
+             428:          91 Load 93(g_tTex1du2)
+             429:      6(int) Load 418(coordTemp)
+             430:   14(ivec2) Load 421(storeTemp)
+                              ImageWrite 428 429 430
+             432:     73(ptr) AccessChain 61 51
+             433:      6(int) Load 432
+                              Store 431(coordTemp) 433
+             435:          69 Load 71(g_tTex1df2)
+             436:      6(int) Load 431(coordTemp)
+             437:   21(fvec2) ImageRead 435 436
+                              Store 434(storeTemp) 437
+             438:   21(fvec2) Load 434(storeTemp)
+             439:   21(fvec2) CompositeConstruct 399 399
+             440:   21(fvec2) FSub 438 439
+                              Store 434(storeTemp) 440
+             441:          69 Load 71(g_tTex1df2)
+             442:      6(int) Load 431(coordTemp)
+             443:   21(fvec2) Load 434(storeTemp)
+                              ImageWrite 441 442 443
+             445:     73(ptr) AccessChain 61 51
+             446:      6(int) Load 445
+                              Store 444(coordTemp) 446
+             448:          83 Load 85(g_tTex1di2)
+             449:      6(int) Load 444(coordTemp)
+             450:    7(ivec2) ImageRead 448 449
+                              Store 447(storeTemp) 450
+             451:    7(ivec2) Load 447(storeTemp)
+             452:    7(ivec2) CompositeConstruct 62 62
+             453:    7(ivec2) ISub 451 452
+                              Store 447(storeTemp) 453
+             454:          83 Load 85(g_tTex1di2)
+             455:      6(int) Load 444(coordTemp)
+             456:    7(ivec2) Load 447(storeTemp)
+                              ImageWrite 454 455 456
+             458:     73(ptr) AccessChain 61 51
+             459:      6(int) Load 458
+                              Store 457(coordTemp) 459
+             461:          91 Load 93(g_tTex1du2)
+             462:      6(int) Load 457(coordTemp)
+             463:   14(ivec2) ImageRead 461 462
+                              Store 460(storeTemp) 463
+             464:   14(ivec2) Load 460(storeTemp)
+             465:    7(ivec2) CompositeConstruct 62 62
+             466:   14(ivec2) ISub 464 465
+                              Store 460(storeTemp) 466
+             467:          91 Load 93(g_tTex1du2)
+             468:      6(int) Load 457(coordTemp)
+             469:   14(ivec2) Load 460(storeTemp)
+                              ImageWrite 467 468 469
+             471:     73(ptr) AccessChain 61 51
+             472:      6(int) Load 471
+                              Store 470(coordTemp) 472
+             474:          69 Load 71(g_tTex1df2)
+             475:      6(int) Load 470(coordTemp)
+             476:   21(fvec2) ImageRead 474 475
+                              Store 473(storeTempPre) 476
+             478:   21(fvec2) Load 473(storeTempPre)
+                              Store 477(storeTempPost) 478
+             479:   21(fvec2) Load 477(storeTempPost)
+             480:   21(fvec2) CompositeConstruct 399 399
+             481:   21(fvec2) FAdd 479 480
+                              Store 477(storeTempPost) 481
+             482:          69 Load 71(g_tTex1df2)
+             483:      6(int) Load 470(coordTemp)
+             484:   21(fvec2) Load 477(storeTempPost)
+                              ImageWrite 482 483 484
+             486:     73(ptr) AccessChain 61 51
+             487:      6(int) Load 486
+                              Store 485(coordTemp) 487
+             489:          91 Load 93(g_tTex1du2)
+             490:      6(int) Load 485(coordTemp)
+             491:   14(ivec2) ImageRead 489 490
+                              Store 488(storeTempPre) 491
+             493:   14(ivec2) Load 488(storeTempPre)
+                              Store 492(storeTempPost) 493
+             494:   14(ivec2) Load 492(storeTempPost)
+             495:    7(ivec2) CompositeConstruct 62 62
+             496:   14(ivec2) ISub 494 495
+                              Store 492(storeTempPost) 496
+             497:          91 Load 93(g_tTex1du2)
+             498:      6(int) Load 485(coordTemp)
+             499:   14(ivec2) Load 492(storeTempPost)
+                              ImageWrite 497 498 499
+             501:     73(ptr) AccessChain 61 51
+             502:      6(int) Load 501
+                              Store 500(coordTemp) 502
+             504:          83 Load 85(g_tTex1di2)
+             505:      6(int) Load 500(coordTemp)
+             506:    7(ivec2) ImageRead 504 505
+                              Store 503(storeTempPre) 506
+             508:    7(ivec2) Load 503(storeTempPre)
+                              Store 507(storeTempPost) 508
+             509:    7(ivec2) Load 507(storeTempPost)
+             510:    7(ivec2) CompositeConstruct 62 62
+             511:    7(ivec2) IAdd 509 510
+                              Store 507(storeTempPost) 511
+             512:          83 Load 85(g_tTex1di2)
+             513:      6(int) Load 500(coordTemp)
+             514:    7(ivec2) Load 507(storeTempPost)
+                              ImageWrite 512 513 514
+             516:     73(ptr) AccessChain 61 51
+             517:      6(int) Load 516
+                              Store 515(coordTemp) 517
+             519:          69 Load 71(g_tTex1df2)
+             520:      6(int) Load 515(coordTemp)
+             521:   21(fvec2) ImageRead 519 520
+                              Store 518(storeTempPre) 521
+             523:   21(fvec2) Load 518(storeTempPre)
+                              Store 522(storeTempPost) 523
+             524:   21(fvec2) Load 522(storeTempPost)
+             525:   21(fvec2) CompositeConstruct 399 399
+             526:   21(fvec2) FSub 524 525
+                              Store 522(storeTempPost) 526
+             527:          69 Load 71(g_tTex1df2)
+             528:      6(int) Load 515(coordTemp)
+             529:   21(fvec2) Load 522(storeTempPost)
+                              ImageWrite 527 528 529
+             531:     73(ptr) AccessChain 61 51
+             532:      6(int) Load 531
+                              Store 530(coordTemp) 532
+             534:          83 Load 85(g_tTex1di2)
+             535:      6(int) Load 530(coordTemp)
+             536:    7(ivec2) ImageRead 534 535
+                              Store 533(storeTempPre) 536
+             538:    7(ivec2) Load 533(storeTempPre)
+                              Store 537(storeTempPost) 538
+             539:    7(ivec2) Load 537(storeTempPost)
+             540:    7(ivec2) CompositeConstruct 62 62
+             541:    7(ivec2) IAdd 539 540
+                              Store 537(storeTempPost) 541
+             542:          83 Load 85(g_tTex1di2)
+             543:      6(int) Load 530(coordTemp)
+             544:    7(ivec2) Load 537(storeTempPost)
+                              ImageWrite 542 543 544
+             546:     73(ptr) AccessChain 61 51
+             547:      6(int) Load 546
+                              Store 545(coordTemp) 547
+             549:          91 Load 93(g_tTex1du2)
+             550:      6(int) Load 545(coordTemp)
+             551:   14(ivec2) ImageRead 549 550
+                              Store 548(storeTempPre) 551
+             553:   14(ivec2) Load 548(storeTempPre)
+                              Store 552(storeTempPost) 553
+             554:   14(ivec2) Load 552(storeTempPost)
+             555:    7(ivec2) CompositeConstruct 62 62
+             556:   14(ivec2) ISub 554 555
+                              Store 552(storeTempPost) 556
+             557:          91 Load 93(g_tTex1du2)
+             558:      6(int) Load 545(coordTemp)
+             559:   14(ivec2) Load 552(storeTempPost)
+                              ImageWrite 557 558 559
+             561:          99 Load 101(g_tTex2df2)
+             564:   21(fvec2) ImageRead 561 563
+                              Store 560(storeTemp) 564
+             565:          69 Load 71(g_tTex1df2)
+             566:   21(fvec2) Load 560(storeTemp)
+                              ImageWrite 565 62 566
+             573:    572(ptr) AccessChain 570(psout) 51
+                              Store 573 571
+             576:    572(ptr) AccessChain 570(psout) 51
+             577:  567(fvec4) Load 576
+                              Store 575(Color) 577
+                              Return
+                              FunctionEnd
+    11(Fn1(vi2;):    7(ivec2) Function None 9
+           10(x):      8(ptr) FunctionParameter
+              12:             Label
+              42:    7(ivec2) Load 10(x)
+                              ReturnValue 42
+                              FunctionEnd
+    18(Fn1(vu2;):   14(ivec2) Function None 16
+           17(x):     15(ptr) FunctionParameter
+              19:             Label
+              45:   14(ivec2) Load 17(x)
+                              ReturnValue 45
+                              FunctionEnd
+    25(Fn1(vf2;):   21(fvec2) Function None 23
+           24(x):     22(ptr) FunctionParameter
+              26:             Label
+              48:   21(fvec2) Load 24(x)
+                              ReturnValue 48
+                              FunctionEnd
+    29(Fn2(vi2;):           2 Function None 27
+           28(x):      8(ptr) FunctionParameter
+              30:             Label
+                              Store 28(x) 52
+                              Return
+                              FunctionEnd
+    33(Fn2(vu2;):           2 Function None 31
+           32(x):     15(ptr) FunctionParameter
+              34:             Label
+                              Store 32(x) 54
+                              Return
+                              FunctionEnd
+    37(Fn2(vf2;):           2 Function None 35
+           36(x):     22(ptr) FunctionParameter
+              38:             Label
+                              Store 36(x) 56
+                              Return
+                              FunctionEnd
+  40(SomeValue():   21(fvec2) Function None 39
+              41:             Label
+              64:     63(ptr) AccessChain 61 62
+              65:    7(ivec2) Load 64
+              66:   21(fvec2) ConvertSToF 65
+                              ReturnValue 66
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out
index bb2962d..6c6f187 100644
--- a/Test/baseResults/hlsl.sample.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out
@@ -8,7 +8,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval10' (temp 4-component vector of float)
-0:27          texture (global 4-component vector of float)
+0:27          texture (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler1DArray)
 0:27              'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -18,7 +18,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval11' (temp 4-component vector of int)
-0:28          texture (global 4-component vector of int)
+0:28          texture (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler1DArray)
 0:28              'g_tTex1di4' (uniform itexture1DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -28,7 +28,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval12' (temp 4-component vector of uint)
-0:29          texture (global 4-component vector of uint)
+0:29          texture (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler1DArray)
 0:29              'g_tTex1du4' (uniform utexture1DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -38,7 +38,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval20' (temp 4-component vector of float)
-0:31          texture (global 4-component vector of float)
+0:31          texture (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler2DArray)
 0:31              'g_tTex2df4' (uniform texture2DArray)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -49,7 +49,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval21' (temp 4-component vector of int)
-0:32          texture (global 4-component vector of int)
+0:32          texture (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler2DArray)
 0:32              'g_tTex2di4' (uniform itexture2DArray)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -60,7 +60,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval22' (temp 4-component vector of uint)
-0:33          texture (global 4-component vector of uint)
+0:33          texture (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler2DArray)
 0:33              'g_tTex2du4' (uniform utexture2DArray)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -71,7 +71,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval40' (temp 4-component vector of float)
-0:35          texture (global 4-component vector of float)
+0:35          texture (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp samplerCubeArray)
 0:35              'g_tTexcdf4' (uniform textureCubeArray)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -83,7 +83,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval41' (temp 4-component vector of int)
-0:36          texture (global 4-component vector of int)
+0:36          texture (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isamplerCubeArray)
 0:36              'g_tTexcdi4' (uniform itextureCubeArray)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -95,7 +95,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval42' (temp 4-component vector of uint)
-0:37          texture (global 4-component vector of uint)
+0:37          texture (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usamplerCubeArray)
 0:37              'g_tTexcdu4' (uniform utextureCubeArray)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -164,7 +164,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval10' (temp 4-component vector of float)
-0:27          texture (global 4-component vector of float)
+0:27          texture (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler1DArray)
 0:27              'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -174,7 +174,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval11' (temp 4-component vector of int)
-0:28          texture (global 4-component vector of int)
+0:28          texture (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler1DArray)
 0:28              'g_tTex1di4' (uniform itexture1DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -184,7 +184,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval12' (temp 4-component vector of uint)
-0:29          texture (global 4-component vector of uint)
+0:29          texture (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler1DArray)
 0:29              'g_tTex1du4' (uniform utexture1DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -194,7 +194,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval20' (temp 4-component vector of float)
-0:31          texture (global 4-component vector of float)
+0:31          texture (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler2DArray)
 0:31              'g_tTex2df4' (uniform texture2DArray)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -205,7 +205,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval21' (temp 4-component vector of int)
-0:32          texture (global 4-component vector of int)
+0:32          texture (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler2DArray)
 0:32              'g_tTex2di4' (uniform itexture2DArray)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -216,7 +216,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval22' (temp 4-component vector of uint)
-0:33          texture (global 4-component vector of uint)
+0:33          texture (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler2DArray)
 0:33              'g_tTex2du4' (uniform utexture2DArray)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -227,7 +227,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval40' (temp 4-component vector of float)
-0:35          texture (global 4-component vector of float)
+0:35          texture (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp samplerCubeArray)
 0:35              'g_tTexcdf4' (uniform textureCubeArray)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -239,7 +239,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval41' (temp 4-component vector of int)
-0:36          texture (global 4-component vector of int)
+0:36          texture (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isamplerCubeArray)
 0:36              'g_tTexcdi4' (uniform itextureCubeArray)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -251,7 +251,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval42' (temp 4-component vector of uint)
-0:37          texture (global 4-component vector of uint)
+0:37          texture (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usamplerCubeArray)
 0:37              'g_tTexcdu4' (uniform utextureCubeArray)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out
index b6cc8c6..de9a4f4 100644
--- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out
@@ -94,7 +94,7 @@
 0:70      Sequence
 0:70        move second child to first child (temp 4-component vector of float)
 0:70          'txval10' (temp 4-component vector of float)
-0:70          texture (global 4-component vector of float)
+0:70          texture (temp 4-component vector of float)
 0:70            Construct combined texture-sampler (temp sampler1D)
 0:70              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:70              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -103,7 +103,7 @@
 0:71      Sequence
 0:71        move second child to first child (temp 4-component vector of int)
 0:71          'txval11' (temp 4-component vector of int)
-0:71          texture (global 4-component vector of int)
+0:71          texture (temp 4-component vector of int)
 0:71            Construct combined texture-sampler (temp isampler1D)
 0:71              'g_tTex1di4' (uniform itexture1D)
 0:71              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -112,7 +112,7 @@
 0:72      Sequence
 0:72        move second child to first child (temp 4-component vector of uint)
 0:72          'txval12' (temp 4-component vector of uint)
-0:72          texture (global 4-component vector of uint)
+0:72          texture (temp 4-component vector of uint)
 0:72            Construct combined texture-sampler (temp usampler1D)
 0:72              'g_tTex1du4' (uniform utexture1D)
 0:72              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -121,7 +121,7 @@
 0:74      Sequence
 0:74        move second child to first child (temp 4-component vector of float)
 0:74          'txval20' (temp 4-component vector of float)
-0:74          texture (global 4-component vector of float)
+0:74          texture (temp 4-component vector of float)
 0:74            Construct combined texture-sampler (temp sampler2D)
 0:74              'g_tTex2df4' (uniform texture2D)
 0:74              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -131,7 +131,7 @@
 0:75      Sequence
 0:75        move second child to first child (temp 4-component vector of int)
 0:75          'txval21' (temp 4-component vector of int)
-0:75          texture (global 4-component vector of int)
+0:75          texture (temp 4-component vector of int)
 0:75            Construct combined texture-sampler (temp isampler2D)
 0:75              'g_tTex2di4' (uniform itexture2D)
 0:75              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -141,7 +141,7 @@
 0:76      Sequence
 0:76        move second child to first child (temp 4-component vector of uint)
 0:76          'txval22' (temp 4-component vector of uint)
-0:76          texture (global 4-component vector of uint)
+0:76          texture (temp 4-component vector of uint)
 0:76            Construct combined texture-sampler (temp usampler2D)
 0:76              'g_tTex2du4' (uniform utexture2D)
 0:76              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -151,7 +151,7 @@
 0:78      Sequence
 0:78        move second child to first child (temp 4-component vector of float)
 0:78          'txval30' (temp 4-component vector of float)
-0:78          texture (global 4-component vector of float)
+0:78          texture (temp 4-component vector of float)
 0:78            Construct combined texture-sampler (temp sampler3D)
 0:78              'g_tTex3df4' (uniform texture3D)
 0:78              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -162,7 +162,7 @@
 0:79      Sequence
 0:79        move second child to first child (temp 4-component vector of int)
 0:79          'txval31' (temp 4-component vector of int)
-0:79          texture (global 4-component vector of int)
+0:79          texture (temp 4-component vector of int)
 0:79            Construct combined texture-sampler (temp isampler3D)
 0:79              'g_tTex3di4' (uniform itexture3D)
 0:79              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -173,7 +173,7 @@
 0:80      Sequence
 0:80        move second child to first child (temp 4-component vector of uint)
 0:80          'txval32' (temp 4-component vector of uint)
-0:80          texture (global 4-component vector of uint)
+0:80          texture (temp 4-component vector of uint)
 0:80            Construct combined texture-sampler (temp usampler3D)
 0:80              'g_tTex3du4' (uniform utexture3D)
 0:80              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -184,7 +184,7 @@
 0:82      Sequence
 0:82        move second child to first child (temp 4-component vector of float)
 0:82          'txval40' (temp 4-component vector of float)
-0:82          texture (global 4-component vector of float)
+0:82          texture (temp 4-component vector of float)
 0:82            Construct combined texture-sampler (temp samplerCube)
 0:82              'g_tTexcdf4' (uniform textureCube)
 0:82              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -195,7 +195,7 @@
 0:83      Sequence
 0:83        move second child to first child (temp 4-component vector of int)
 0:83          'txval41' (temp 4-component vector of int)
-0:83          texture (global 4-component vector of int)
+0:83          texture (temp 4-component vector of int)
 0:83            Construct combined texture-sampler (temp isamplerCube)
 0:83              'g_tTexcdi4' (uniform itextureCube)
 0:83              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -206,7 +206,7 @@
 0:84      Sequence
 0:84        move second child to first child (temp 4-component vector of uint)
 0:84          'txval42' (temp 4-component vector of uint)
-0:84          texture (global 4-component vector of uint)
+0:84          texture (temp 4-component vector of uint)
 0:84            Construct combined texture-sampler (temp usamplerCube)
 0:84              'g_tTexcdu4' (uniform utextureCube)
 0:84              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -363,7 +363,7 @@
 0:70      Sequence
 0:70        move second child to first child (temp 4-component vector of float)
 0:70          'txval10' (temp 4-component vector of float)
-0:70          texture (global 4-component vector of float)
+0:70          texture (temp 4-component vector of float)
 0:70            Construct combined texture-sampler (temp sampler1D)
 0:70              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:70              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -372,7 +372,7 @@
 0:71      Sequence
 0:71        move second child to first child (temp 4-component vector of int)
 0:71          'txval11' (temp 4-component vector of int)
-0:71          texture (global 4-component vector of int)
+0:71          texture (temp 4-component vector of int)
 0:71            Construct combined texture-sampler (temp isampler1D)
 0:71              'g_tTex1di4' (uniform itexture1D)
 0:71              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -381,7 +381,7 @@
 0:72      Sequence
 0:72        move second child to first child (temp 4-component vector of uint)
 0:72          'txval12' (temp 4-component vector of uint)
-0:72          texture (global 4-component vector of uint)
+0:72          texture (temp 4-component vector of uint)
 0:72            Construct combined texture-sampler (temp usampler1D)
 0:72              'g_tTex1du4' (uniform utexture1D)
 0:72              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -390,7 +390,7 @@
 0:74      Sequence
 0:74        move second child to first child (temp 4-component vector of float)
 0:74          'txval20' (temp 4-component vector of float)
-0:74          texture (global 4-component vector of float)
+0:74          texture (temp 4-component vector of float)
 0:74            Construct combined texture-sampler (temp sampler2D)
 0:74              'g_tTex2df4' (uniform texture2D)
 0:74              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -400,7 +400,7 @@
 0:75      Sequence
 0:75        move second child to first child (temp 4-component vector of int)
 0:75          'txval21' (temp 4-component vector of int)
-0:75          texture (global 4-component vector of int)
+0:75          texture (temp 4-component vector of int)
 0:75            Construct combined texture-sampler (temp isampler2D)
 0:75              'g_tTex2di4' (uniform itexture2D)
 0:75              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -410,7 +410,7 @@
 0:76      Sequence
 0:76        move second child to first child (temp 4-component vector of uint)
 0:76          'txval22' (temp 4-component vector of uint)
-0:76          texture (global 4-component vector of uint)
+0:76          texture (temp 4-component vector of uint)
 0:76            Construct combined texture-sampler (temp usampler2D)
 0:76              'g_tTex2du4' (uniform utexture2D)
 0:76              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -420,7 +420,7 @@
 0:78      Sequence
 0:78        move second child to first child (temp 4-component vector of float)
 0:78          'txval30' (temp 4-component vector of float)
-0:78          texture (global 4-component vector of float)
+0:78          texture (temp 4-component vector of float)
 0:78            Construct combined texture-sampler (temp sampler3D)
 0:78              'g_tTex3df4' (uniform texture3D)
 0:78              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -431,7 +431,7 @@
 0:79      Sequence
 0:79        move second child to first child (temp 4-component vector of int)
 0:79          'txval31' (temp 4-component vector of int)
-0:79          texture (global 4-component vector of int)
+0:79          texture (temp 4-component vector of int)
 0:79            Construct combined texture-sampler (temp isampler3D)
 0:79              'g_tTex3di4' (uniform itexture3D)
 0:79              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -442,7 +442,7 @@
 0:80      Sequence
 0:80        move second child to first child (temp 4-component vector of uint)
 0:80          'txval32' (temp 4-component vector of uint)
-0:80          texture (global 4-component vector of uint)
+0:80          texture (temp 4-component vector of uint)
 0:80            Construct combined texture-sampler (temp usampler3D)
 0:80              'g_tTex3du4' (uniform utexture3D)
 0:80              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -453,7 +453,7 @@
 0:82      Sequence
 0:82        move second child to first child (temp 4-component vector of float)
 0:82          'txval40' (temp 4-component vector of float)
-0:82          texture (global 4-component vector of float)
+0:82          texture (temp 4-component vector of float)
 0:82            Construct combined texture-sampler (temp samplerCube)
 0:82              'g_tTexcdf4' (uniform textureCube)
 0:82              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -464,7 +464,7 @@
 0:83      Sequence
 0:83        move second child to first child (temp 4-component vector of int)
 0:83          'txval41' (temp 4-component vector of int)
-0:83          texture (global 4-component vector of int)
+0:83          texture (temp 4-component vector of int)
 0:83            Construct combined texture-sampler (temp isamplerCube)
 0:83              'g_tTexcdi4' (uniform itextureCube)
 0:83              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -475,7 +475,7 @@
 0:84      Sequence
 0:84        move second child to first child (temp 4-component vector of uint)
 0:84          'txval42' (temp 4-component vector of uint)
-0:84          texture (global 4-component vector of uint)
+0:84          texture (temp 4-component vector of uint)
 0:84            Construct combined texture-sampler (temp usamplerCube)
 0:84              'g_tTexcdu4' (uniform utextureCube)
 0:84              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out
index 9de5f49..67bf043 100644
--- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out
@@ -8,7 +8,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval10' (temp 4-component vector of float)
-0:31          textureOffset (global 4-component vector of float)
+0:31          textureOffset (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler1D)
 0:31              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -19,7 +19,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval11' (temp 4-component vector of int)
-0:32          textureOffset (global 4-component vector of int)
+0:32          textureOffset (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler1D)
 0:32              'g_tTex1di4' (uniform itexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -30,7 +30,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval12' (temp 4-component vector of uint)
-0:33          textureOffset (global 4-component vector of uint)
+0:33          textureOffset (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler1D)
 0:33              'g_tTex1du4' (uniform utexture1D)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -41,7 +41,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval20' (temp 4-component vector of float)
-0:35          textureOffset (global 4-component vector of float)
+0:35          textureOffset (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp sampler2D)
 0:35              'g_tTex2df4' (uniform texture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -54,7 +54,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval21' (temp 4-component vector of int)
-0:36          textureOffset (global 4-component vector of int)
+0:36          textureOffset (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isampler2D)
 0:36              'g_tTex2di4' (uniform itexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -67,7 +67,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval22' (temp 4-component vector of uint)
-0:37          textureOffset (global 4-component vector of uint)
+0:37          textureOffset (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usampler2D)
 0:37              'g_tTex2du4' (uniform utexture2D)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -80,7 +80,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of float)
 0:39          'txval30' (temp 4-component vector of float)
-0:39          textureOffset (global 4-component vector of float)
+0:39          textureOffset (temp 4-component vector of float)
 0:39            Construct combined texture-sampler (temp sampler3D)
 0:39              'g_tTex3df4' (uniform texture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -95,7 +95,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of int)
 0:40          'txval31' (temp 4-component vector of int)
-0:40          textureOffset (global 4-component vector of int)
+0:40          textureOffset (temp 4-component vector of int)
 0:40            Construct combined texture-sampler (temp isampler3D)
 0:40              'g_tTex3di4' (uniform itexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -110,7 +110,7 @@
 0:41      Sequence
 0:41        move second child to first child (temp 4-component vector of uint)
 0:41          'txval32' (temp 4-component vector of uint)
-0:41          textureOffset (global 4-component vector of uint)
+0:41          textureOffset (temp 4-component vector of uint)
 0:41            Construct combined texture-sampler (temp usampler3D)
 0:41              'g_tTex3du4' (uniform utexture3D)
 0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -185,7 +185,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval10' (temp 4-component vector of float)
-0:31          textureOffset (global 4-component vector of float)
+0:31          textureOffset (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler1D)
 0:31              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -196,7 +196,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval11' (temp 4-component vector of int)
-0:32          textureOffset (global 4-component vector of int)
+0:32          textureOffset (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler1D)
 0:32              'g_tTex1di4' (uniform itexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -207,7 +207,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval12' (temp 4-component vector of uint)
-0:33          textureOffset (global 4-component vector of uint)
+0:33          textureOffset (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler1D)
 0:33              'g_tTex1du4' (uniform utexture1D)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -218,7 +218,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval20' (temp 4-component vector of float)
-0:35          textureOffset (global 4-component vector of float)
+0:35          textureOffset (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp sampler2D)
 0:35              'g_tTex2df4' (uniform texture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -231,7 +231,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval21' (temp 4-component vector of int)
-0:36          textureOffset (global 4-component vector of int)
+0:36          textureOffset (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isampler2D)
 0:36              'g_tTex2di4' (uniform itexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -244,7 +244,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval22' (temp 4-component vector of uint)
-0:37          textureOffset (global 4-component vector of uint)
+0:37          textureOffset (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usampler2D)
 0:37              'g_tTex2du4' (uniform utexture2D)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -257,7 +257,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of float)
 0:39          'txval30' (temp 4-component vector of float)
-0:39          textureOffset (global 4-component vector of float)
+0:39          textureOffset (temp 4-component vector of float)
 0:39            Construct combined texture-sampler (temp sampler3D)
 0:39              'g_tTex3df4' (uniform texture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -272,7 +272,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of int)
 0:40          'txval31' (temp 4-component vector of int)
-0:40          textureOffset (global 4-component vector of int)
+0:40          textureOffset (temp 4-component vector of int)
 0:40            Construct combined texture-sampler (temp isampler3D)
 0:40              'g_tTex3di4' (uniform itexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -287,7 +287,7 @@
 0:41      Sequence
 0:41        move second child to first child (temp 4-component vector of uint)
 0:41          'txval32' (temp 4-component vector of uint)
-0:41          textureOffset (global 4-component vector of uint)
+0:41          textureOffset (temp 4-component vector of uint)
 0:41            Construct combined texture-sampler (temp usampler3D)
 0:41              'g_tTex3du4' (uniform utexture3D)
 0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
index f4646d4..83a0e8b 100644
--- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out
@@ -8,7 +8,7 @@
 0:23      Sequence
 0:23        move second child to first child (temp 4-component vector of float)
 0:23          'txval10' (temp 4-component vector of float)
-0:23          textureOffset (global 4-component vector of float)
+0:23          textureOffset (temp 4-component vector of float)
 0:23            Construct combined texture-sampler (temp sampler1DArray)
 0:23              'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
 0:23              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -20,7 +20,7 @@
 0:24      Sequence
 0:24        move second child to first child (temp 4-component vector of int)
 0:24          'txval11' (temp 4-component vector of int)
-0:24          textureOffset (global 4-component vector of int)
+0:24          textureOffset (temp 4-component vector of int)
 0:24            Construct combined texture-sampler (temp isampler1DArray)
 0:24              'g_tTex1di4' (uniform itexture1DArray)
 0:24              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -32,7 +32,7 @@
 0:25      Sequence
 0:25        move second child to first child (temp 4-component vector of uint)
 0:25          'txval12' (temp 4-component vector of uint)
-0:25          textureOffset (global 4-component vector of uint)
+0:25          textureOffset (temp 4-component vector of uint)
 0:25            Construct combined texture-sampler (temp usampler1DArray)
 0:25              'g_tTex1du4' (uniform utexture1DArray)
 0:25              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -44,7 +44,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval20' (temp 4-component vector of float)
-0:27          textureOffset (global 4-component vector of float)
+0:27          textureOffset (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler2DArray)
 0:27              'g_tTex2df4' (uniform texture2DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -58,7 +58,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval21' (temp 4-component vector of int)
-0:28          textureOffset (global 4-component vector of int)
+0:28          textureOffset (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler2DArray)
 0:28              'g_tTex2di4' (uniform itexture2DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -72,7 +72,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval22' (temp 4-component vector of uint)
-0:29          textureOffset (global 4-component vector of uint)
+0:29          textureOffset (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler2DArray)
 0:29              'g_tTex2du4' (uniform utexture2DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -140,7 +140,7 @@
 0:23      Sequence
 0:23        move second child to first child (temp 4-component vector of float)
 0:23          'txval10' (temp 4-component vector of float)
-0:23          textureOffset (global 4-component vector of float)
+0:23          textureOffset (temp 4-component vector of float)
 0:23            Construct combined texture-sampler (temp sampler1DArray)
 0:23              'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
 0:23              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -152,7 +152,7 @@
 0:24      Sequence
 0:24        move second child to first child (temp 4-component vector of int)
 0:24          'txval11' (temp 4-component vector of int)
-0:24          textureOffset (global 4-component vector of int)
+0:24          textureOffset (temp 4-component vector of int)
 0:24            Construct combined texture-sampler (temp isampler1DArray)
 0:24              'g_tTex1di4' (uniform itexture1DArray)
 0:24              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -164,7 +164,7 @@
 0:25      Sequence
 0:25        move second child to first child (temp 4-component vector of uint)
 0:25          'txval12' (temp 4-component vector of uint)
-0:25          textureOffset (global 4-component vector of uint)
+0:25          textureOffset (temp 4-component vector of uint)
 0:25            Construct combined texture-sampler (temp usampler1DArray)
 0:25              'g_tTex1du4' (uniform utexture1DArray)
 0:25              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -176,7 +176,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval20' (temp 4-component vector of float)
-0:27          textureOffset (global 4-component vector of float)
+0:27          textureOffset (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler2DArray)
 0:27              'g_tTex2df4' (uniform texture2DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -190,7 +190,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval21' (temp 4-component vector of int)
-0:28          textureOffset (global 4-component vector of int)
+0:28          textureOffset (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler2DArray)
 0:28              'g_tTex2di4' (uniform itexture2DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -204,7 +204,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval22' (temp 4-component vector of uint)
-0:29          textureOffset (global 4-component vector of uint)
+0:29          textureOffset (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler2DArray)
 0:29              'g_tTex2du4' (uniform utexture2DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out
new file mode 100644
index 0000000..5a97ed9
--- /dev/null
+++ b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out
@@ -0,0 +1,252 @@
+hlsl.sample.sub-vec4.dx10.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:14  Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:14    Function Parameters: 
+0:?     Sequence
+0:17      Sequence
+0:17        move second child to first child (temp float)
+0:17          'txval10' (temp float)
+0:17          Construct float (temp float)
+0:?             texture (temp 4-component vector of float)
+0:17              Construct combined texture-sampler (temp sampler1D)
+0:17                'g_tTex1df1' (uniform texture1D)
+0:17                'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:17              Constant:
+0:17                0.100000
+0:18      Sequence
+0:18        move second child to first child (temp 2-component vector of float)
+0:18          'txval11' (temp 2-component vector of float)
+0:18          Construct vec2 (temp 2-component vector of float)
+0:?             texture (temp 4-component vector of float)
+0:18              Construct combined texture-sampler (temp sampler1D)
+0:18                'g_tTex1df2' (uniform texture1D)
+0:18                'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:18              Constant:
+0:18                0.200000
+0:19      Sequence
+0:19        move second child to first child (temp 3-component vector of float)
+0:19          'txval12' (temp 3-component vector of float)
+0:19          Construct vec3 (temp 3-component vector of float)
+0:?             texture (temp 4-component vector of float)
+0:19              Construct combined texture-sampler (temp sampler1D)
+0:19                'g_tTex1df3' (uniform texture1D)
+0:19                'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:19              Constant:
+0:19                0.200000
+0:20      Sequence
+0:20        move second child to first child (temp 4-component vector of float)
+0:20          'txval13' (temp 4-component vector of float)
+0:20          texture (temp 4-component vector of float)
+0:20            Construct combined texture-sampler (temp sampler1D)
+0:20              'g_tTex1df4' (uniform texture1D)
+0:20              'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:20            Constant:
+0:20              0.200000
+0:22      move second child to first child (temp 4-component vector of float)
+0:22        Color: direct index for structure (temp 4-component vector of float)
+0:22          'psout' (temp structure{temp 4-component vector of float Color})
+0:22          Constant:
+0:22            0 (const int)
+0:22        Constant:
+0:22          1.000000
+0:22          1.000000
+0:22          1.000000
+0:22          1.000000
+0:23      Sequence
+0:23        Sequence
+0:23          move second child to first child (temp 4-component vector of float)
+0:?             'Color' (layout(location=0 ) out 4-component vector of float)
+0:23            Color: direct index for structure (temp 4-component vector of float)
+0:23              'psout' (temp structure{temp 4-component vector of float Color})
+0:23              Constant:
+0:23                0 (const int)
+0:23        Branch: Return
+0:?   Linker Objects
+0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:?     'g_tTex1df1' (uniform texture1D)
+0:?     'g_tTex1df2' (uniform texture1D)
+0:?     'g_tTex1df3' (uniform texture1D)
+0:?     'g_tTex1df4' (uniform texture1D)
+0:?     'Color' (layout(location=0 ) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:14  Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:14    Function Parameters: 
+0:?     Sequence
+0:17      Sequence
+0:17        move second child to first child (temp float)
+0:17          'txval10' (temp float)
+0:17          Construct float (temp float)
+0:?             texture (temp 4-component vector of float)
+0:17              Construct combined texture-sampler (temp sampler1D)
+0:17                'g_tTex1df1' (uniform texture1D)
+0:17                'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:17              Constant:
+0:17                0.100000
+0:18      Sequence
+0:18        move second child to first child (temp 2-component vector of float)
+0:18          'txval11' (temp 2-component vector of float)
+0:18          Construct vec2 (temp 2-component vector of float)
+0:?             texture (temp 4-component vector of float)
+0:18              Construct combined texture-sampler (temp sampler1D)
+0:18                'g_tTex1df2' (uniform texture1D)
+0:18                'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:18              Constant:
+0:18                0.200000
+0:19      Sequence
+0:19        move second child to first child (temp 3-component vector of float)
+0:19          'txval12' (temp 3-component vector of float)
+0:19          Construct vec3 (temp 3-component vector of float)
+0:?             texture (temp 4-component vector of float)
+0:19              Construct combined texture-sampler (temp sampler1D)
+0:19                'g_tTex1df3' (uniform texture1D)
+0:19                'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:19              Constant:
+0:19                0.200000
+0:20      Sequence
+0:20        move second child to first child (temp 4-component vector of float)
+0:20          'txval13' (temp 4-component vector of float)
+0:20          texture (temp 4-component vector of float)
+0:20            Construct combined texture-sampler (temp sampler1D)
+0:20              'g_tTex1df4' (uniform texture1D)
+0:20              'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:20            Constant:
+0:20              0.200000
+0:22      move second child to first child (temp 4-component vector of float)
+0:22        Color: direct index for structure (temp 4-component vector of float)
+0:22          'psout' (temp structure{temp 4-component vector of float Color})
+0:22          Constant:
+0:22            0 (const int)
+0:22        Constant:
+0:22          1.000000
+0:22          1.000000
+0:22          1.000000
+0:22          1.000000
+0:23      Sequence
+0:23        Sequence
+0:23          move second child to first child (temp 4-component vector of float)
+0:?             'Color' (layout(location=0 ) out 4-component vector of float)
+0:23            Color: direct index for structure (temp 4-component vector of float)
+0:23              'psout' (temp structure{temp 4-component vector of float Color})
+0:23              Constant:
+0:23                0 (const int)
+0:23        Branch: Return
+0:?   Linker Objects
+0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:?     'g_tTex1df1' (uniform texture1D)
+0:?     'g_tTex1df2' (uniform texture1D)
+0:?     'g_tTex1df3' (uniform texture1D)
+0:?     'g_tTex1df4' (uniform texture1D)
+0:?     'Color' (layout(location=0 ) out 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 67
+
+                              Capability Shader
+                              Capability Sampled1D
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 63
+                              ExecutionMode 4 OriginUpperLeft
+                              Name 4  "main"
+                              Name 8  "txval10"
+                              Name 11  "g_tTex1df1"
+                              Name 15  "g_sSamp"
+                              Name 25  "txval11"
+                              Name 26  "g_tTex1df2"
+                              Name 37  "txval12"
+                              Name 38  "g_tTex1df3"
+                              Name 48  "txval13"
+                              Name 49  "g_tTex1df4"
+                              Name 54  "PS_OUTPUT"
+                              MemberName 54(PS_OUTPUT) 0  "Color"
+                              Name 56  "psout"
+                              Name 63  "Color"
+                              Decorate 11(g_tTex1df1) DescriptorSet 0
+                              Decorate 15(g_sSamp) DescriptorSet 0
+                              Decorate 15(g_sSamp) Binding 0
+                              Decorate 26(g_tTex1df2) DescriptorSet 0
+                              Decorate 38(g_tTex1df3) DescriptorSet 0
+                              Decorate 49(g_tTex1df4) DescriptorSet 0
+                              Decorate 63(Color) Location 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Function 6(float)
+               9:             TypeImage 6(float) 1D sampled format:Unknown
+              10:             TypePointer UniformConstant 9
+  11(g_tTex1df1):     10(ptr) Variable UniformConstant
+              13:             TypeSampler
+              14:             TypePointer UniformConstant 13
+     15(g_sSamp):     14(ptr) Variable UniformConstant
+              17:             TypeSampledImage 9
+              19:    6(float) Constant 1036831949
+              20:             TypeVector 6(float) 4
+              23:             TypeVector 6(float) 2
+              24:             TypePointer Function 23(fvec2)
+  26(g_tTex1df2):     10(ptr) Variable UniformConstant
+              30:    6(float) Constant 1045220557
+              35:             TypeVector 6(float) 3
+              36:             TypePointer Function 35(fvec3)
+  38(g_tTex1df3):     10(ptr) Variable UniformConstant
+              47:             TypePointer Function 20(fvec4)
+  49(g_tTex1df4):     10(ptr) Variable UniformConstant
+   54(PS_OUTPUT):             TypeStruct 20(fvec4)
+              55:             TypePointer Function 54(PS_OUTPUT)
+              57:             TypeInt 32 1
+              58:     57(int) Constant 0
+              59:    6(float) Constant 1065353216
+              60:   20(fvec4) ConstantComposite 59 59 59 59
+              62:             TypePointer Output 20(fvec4)
+       63(Color):     62(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+      8(txval10):      7(ptr) Variable Function
+     25(txval11):     24(ptr) Variable Function
+     37(txval12):     36(ptr) Variable Function
+     48(txval13):     47(ptr) Variable Function
+       56(psout):     55(ptr) Variable Function
+              12:           9 Load 11(g_tTex1df1)
+              16:          13 Load 15(g_sSamp)
+              18:          17 SampledImage 12 16
+              21:   20(fvec4) ImageSampleImplicitLod 18 19
+              22:    6(float) CompositeExtract 21 0
+                              Store 8(txval10) 22
+              27:           9 Load 26(g_tTex1df2)
+              28:          13 Load 15(g_sSamp)
+              29:          17 SampledImage 27 28
+              31:   20(fvec4) ImageSampleImplicitLod 29 30
+              32:    6(float) CompositeExtract 31 0
+              33:    6(float) CompositeExtract 31 1
+              34:   23(fvec2) CompositeConstruct 32 33
+                              Store 25(txval11) 34
+              39:           9 Load 38(g_tTex1df3)
+              40:          13 Load 15(g_sSamp)
+              41:          17 SampledImage 39 40
+              42:   20(fvec4) ImageSampleImplicitLod 41 30
+              43:    6(float) CompositeExtract 42 0
+              44:    6(float) CompositeExtract 42 1
+              45:    6(float) CompositeExtract 42 2
+              46:   35(fvec3) CompositeConstruct 43 44 45
+                              Store 37(txval12) 46
+              50:           9 Load 49(g_tTex1df4)
+              51:          13 Load 15(g_sSamp)
+              52:          17 SampledImage 50 51
+              53:   20(fvec4) ImageSampleImplicitLod 52 30
+                              Store 48(txval13) 53
+              61:     47(ptr) AccessChain 56(psout) 58
+                              Store 61 60
+              64:     47(ptr) AccessChain 56(psout) 58
+              65:   20(fvec4) Load 64
+                              Store 63(Color) 65
+                              Return
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
index 539855e..b2b38b6 100644
--- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out
@@ -8,7 +8,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval10' (temp 4-component vector of float)
-0:27          texture (global 4-component vector of float)
+0:27          texture (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler1DArray)
 0:27              'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -20,7 +20,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval11' (temp 4-component vector of int)
-0:28          texture (global 4-component vector of int)
+0:28          texture (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler1DArray)
 0:28              'g_tTex1di4' (uniform itexture1DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -32,7 +32,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval12' (temp 4-component vector of uint)
-0:29          texture (global 4-component vector of uint)
+0:29          texture (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler1DArray)
 0:29              'g_tTex1du4' (uniform utexture1DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -44,7 +44,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval20' (temp 4-component vector of float)
-0:31          texture (global 4-component vector of float)
+0:31          texture (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler2DArray)
 0:31              'g_tTex2df4' (uniform texture2DArray)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -57,7 +57,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval21' (temp 4-component vector of int)
-0:32          texture (global 4-component vector of int)
+0:32          texture (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler2DArray)
 0:32              'g_tTex2di4' (uniform itexture2DArray)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -70,7 +70,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval22' (temp 4-component vector of uint)
-0:33          texture (global 4-component vector of uint)
+0:33          texture (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler2DArray)
 0:33              'g_tTex2du4' (uniform utexture2DArray)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -83,7 +83,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval40' (temp 4-component vector of float)
-0:35          texture (global 4-component vector of float)
+0:35          texture (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp samplerCubeArray)
 0:35              'g_tTexcdf4' (uniform textureCubeArray)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -97,7 +97,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval41' (temp 4-component vector of int)
-0:36          texture (global 4-component vector of int)
+0:36          texture (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isamplerCubeArray)
 0:36              'g_tTexcdi4' (uniform itextureCubeArray)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -111,7 +111,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval42' (temp 4-component vector of uint)
-0:37          texture (global 4-component vector of uint)
+0:37          texture (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usamplerCubeArray)
 0:37              'g_tTexcdu4' (uniform utextureCubeArray)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -182,7 +182,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval10' (temp 4-component vector of float)
-0:27          texture (global 4-component vector of float)
+0:27          texture (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler1DArray)
 0:27              'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -194,7 +194,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval11' (temp 4-component vector of int)
-0:28          texture (global 4-component vector of int)
+0:28          texture (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler1DArray)
 0:28              'g_tTex1di4' (uniform itexture1DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -206,7 +206,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval12' (temp 4-component vector of uint)
-0:29          texture (global 4-component vector of uint)
+0:29          texture (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler1DArray)
 0:29              'g_tTex1du4' (uniform utexture1DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -218,7 +218,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval20' (temp 4-component vector of float)
-0:31          texture (global 4-component vector of float)
+0:31          texture (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler2DArray)
 0:31              'g_tTex2df4' (uniform texture2DArray)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -231,7 +231,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval21' (temp 4-component vector of int)
-0:32          texture (global 4-component vector of int)
+0:32          texture (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler2DArray)
 0:32              'g_tTex2di4' (uniform itexture2DArray)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -244,7 +244,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval22' (temp 4-component vector of uint)
-0:33          texture (global 4-component vector of uint)
+0:33          texture (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler2DArray)
 0:33              'g_tTex2du4' (uniform utexture2DArray)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -257,7 +257,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval40' (temp 4-component vector of float)
-0:35          texture (global 4-component vector of float)
+0:35          texture (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp samplerCubeArray)
 0:35              'g_tTexcdf4' (uniform textureCubeArray)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -271,7 +271,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval41' (temp 4-component vector of int)
-0:36          texture (global 4-component vector of int)
+0:36          texture (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isamplerCubeArray)
 0:36              'g_tTexcdi4' (uniform itextureCubeArray)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -285,7 +285,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval42' (temp 4-component vector of uint)
-0:37          texture (global 4-component vector of uint)
+0:37          texture (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usamplerCubeArray)
 0:37              'g_tTexcdu4' (uniform utextureCubeArray)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
index 9fb8b1a..c794914 100644
--- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out
@@ -8,7 +8,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval10' (temp 4-component vector of float)
-0:31          texture (global 4-component vector of float)
+0:31          texture (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler1D)
 0:31              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -19,7 +19,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval11' (temp 4-component vector of int)
-0:32          texture (global 4-component vector of int)
+0:32          texture (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler1D)
 0:32              'g_tTex1di4' (uniform itexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -30,7 +30,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval12' (temp 4-component vector of uint)
-0:33          texture (global 4-component vector of uint)
+0:33          texture (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler1D)
 0:33              'g_tTex1du4' (uniform utexture1D)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -41,7 +41,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval20' (temp 4-component vector of float)
-0:35          texture (global 4-component vector of float)
+0:35          texture (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp sampler2D)
 0:35              'g_tTex2df4' (uniform texture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -53,7 +53,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval21' (temp 4-component vector of int)
-0:36          texture (global 4-component vector of int)
+0:36          texture (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isampler2D)
 0:36              'g_tTex2di4' (uniform itexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -65,7 +65,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval22' (temp 4-component vector of uint)
-0:37          texture (global 4-component vector of uint)
+0:37          texture (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usampler2D)
 0:37              'g_tTex2du4' (uniform utexture2D)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -77,7 +77,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of float)
 0:39          'txval30' (temp 4-component vector of float)
-0:39          texture (global 4-component vector of float)
+0:39          texture (temp 4-component vector of float)
 0:39            Construct combined texture-sampler (temp sampler3D)
 0:39              'g_tTex3df4' (uniform texture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -90,7 +90,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of int)
 0:40          'txval31' (temp 4-component vector of int)
-0:40          texture (global 4-component vector of int)
+0:40          texture (temp 4-component vector of int)
 0:40            Construct combined texture-sampler (temp isampler3D)
 0:40              'g_tTex3di4' (uniform itexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -103,7 +103,7 @@
 0:41      Sequence
 0:41        move second child to first child (temp 4-component vector of uint)
 0:41          'txval32' (temp 4-component vector of uint)
-0:41          texture (global 4-component vector of uint)
+0:41          texture (temp 4-component vector of uint)
 0:41            Construct combined texture-sampler (temp usampler3D)
 0:41              'g_tTex3du4' (uniform utexture3D)
 0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -116,7 +116,7 @@
 0:43      Sequence
 0:43        move second child to first child (temp 4-component vector of float)
 0:43          'txval40' (temp 4-component vector of float)
-0:43          texture (global 4-component vector of float)
+0:43          texture (temp 4-component vector of float)
 0:43            Construct combined texture-sampler (temp samplerCube)
 0:43              'g_tTexcdf4' (uniform textureCube)
 0:43              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -129,7 +129,7 @@
 0:44      Sequence
 0:44        move second child to first child (temp 4-component vector of int)
 0:44          'txval41' (temp 4-component vector of int)
-0:44          texture (global 4-component vector of int)
+0:44          texture (temp 4-component vector of int)
 0:44            Construct combined texture-sampler (temp isamplerCube)
 0:44              'g_tTexcdi4' (uniform itextureCube)
 0:44              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -142,7 +142,7 @@
 0:45      Sequence
 0:45        move second child to first child (temp 4-component vector of uint)
 0:45          'txval42' (temp 4-component vector of uint)
-0:45          texture (global 4-component vector of uint)
+0:45          texture (temp 4-component vector of uint)
 0:45            Construct combined texture-sampler (temp usamplerCube)
 0:45              'g_tTexcdu4' (uniform utextureCube)
 0:45              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -215,7 +215,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval10' (temp 4-component vector of float)
-0:31          texture (global 4-component vector of float)
+0:31          texture (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler1D)
 0:31              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -226,7 +226,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval11' (temp 4-component vector of int)
-0:32          texture (global 4-component vector of int)
+0:32          texture (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler1D)
 0:32              'g_tTex1di4' (uniform itexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -237,7 +237,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval12' (temp 4-component vector of uint)
-0:33          texture (global 4-component vector of uint)
+0:33          texture (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler1D)
 0:33              'g_tTex1du4' (uniform utexture1D)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -248,7 +248,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval20' (temp 4-component vector of float)
-0:35          texture (global 4-component vector of float)
+0:35          texture (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp sampler2D)
 0:35              'g_tTex2df4' (uniform texture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -260,7 +260,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval21' (temp 4-component vector of int)
-0:36          texture (global 4-component vector of int)
+0:36          texture (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isampler2D)
 0:36              'g_tTex2di4' (uniform itexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -272,7 +272,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval22' (temp 4-component vector of uint)
-0:37          texture (global 4-component vector of uint)
+0:37          texture (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usampler2D)
 0:37              'g_tTex2du4' (uniform utexture2D)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -284,7 +284,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of float)
 0:39          'txval30' (temp 4-component vector of float)
-0:39          texture (global 4-component vector of float)
+0:39          texture (temp 4-component vector of float)
 0:39            Construct combined texture-sampler (temp sampler3D)
 0:39              'g_tTex3df4' (uniform texture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -297,7 +297,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of int)
 0:40          'txval31' (temp 4-component vector of int)
-0:40          texture (global 4-component vector of int)
+0:40          texture (temp 4-component vector of int)
 0:40            Construct combined texture-sampler (temp isampler3D)
 0:40              'g_tTex3di4' (uniform itexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -310,7 +310,7 @@
 0:41      Sequence
 0:41        move second child to first child (temp 4-component vector of uint)
 0:41          'txval32' (temp 4-component vector of uint)
-0:41          texture (global 4-component vector of uint)
+0:41          texture (temp 4-component vector of uint)
 0:41            Construct combined texture-sampler (temp usampler3D)
 0:41              'g_tTex3du4' (uniform utexture3D)
 0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -323,7 +323,7 @@
 0:43      Sequence
 0:43        move second child to first child (temp 4-component vector of float)
 0:43          'txval40' (temp 4-component vector of float)
-0:43          texture (global 4-component vector of float)
+0:43          texture (temp 4-component vector of float)
 0:43            Construct combined texture-sampler (temp samplerCube)
 0:43              'g_tTexcdf4' (uniform textureCube)
 0:43              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -336,7 +336,7 @@
 0:44      Sequence
 0:44        move second child to first child (temp 4-component vector of int)
 0:44          'txval41' (temp 4-component vector of int)
-0:44          texture (global 4-component vector of int)
+0:44          texture (temp 4-component vector of int)
 0:44            Construct combined texture-sampler (temp isamplerCube)
 0:44              'g_tTexcdi4' (uniform itextureCube)
 0:44              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -349,7 +349,7 @@
 0:45      Sequence
 0:45        move second child to first child (temp 4-component vector of uint)
 0:45          'txval42' (temp 4-component vector of uint)
-0:45          texture (global 4-component vector of uint)
+0:45          texture (temp 4-component vector of uint)
 0:45            Construct combined texture-sampler (temp usamplerCube)
 0:45              'g_tTexcdu4' (uniform utextureCube)
 0:45              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
index 643e003..900eb4b 100644
--- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out
@@ -8,7 +8,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval10' (temp 4-component vector of float)
-0:31          textureOffset (global 4-component vector of float)
+0:31          textureOffset (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler1D)
 0:31              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -21,7 +21,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval11' (temp 4-component vector of int)
-0:32          textureOffset (global 4-component vector of int)
+0:32          textureOffset (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler1D)
 0:32              'g_tTex1di4' (uniform itexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -34,7 +34,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval12' (temp 4-component vector of uint)
-0:33          textureOffset (global 4-component vector of uint)
+0:33          textureOffset (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler1D)
 0:33              'g_tTex1du4' (uniform utexture1D)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -47,7 +47,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval20' (temp 4-component vector of float)
-0:35          textureOffset (global 4-component vector of float)
+0:35          textureOffset (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp sampler2D)
 0:35              'g_tTex2df4' (uniform texture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -62,7 +62,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval21' (temp 4-component vector of int)
-0:36          textureOffset (global 4-component vector of int)
+0:36          textureOffset (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isampler2D)
 0:36              'g_tTex2di4' (uniform itexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -77,7 +77,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval22' (temp 4-component vector of uint)
-0:37          textureOffset (global 4-component vector of uint)
+0:37          textureOffset (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usampler2D)
 0:37              'g_tTex2du4' (uniform utexture2D)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -92,7 +92,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of float)
 0:39          'txval30' (temp 4-component vector of float)
-0:39          textureOffset (global 4-component vector of float)
+0:39          textureOffset (temp 4-component vector of float)
 0:39            Construct combined texture-sampler (temp sampler3D)
 0:39              'g_tTex3df4' (uniform texture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -109,7 +109,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of int)
 0:40          'txval31' (temp 4-component vector of int)
-0:40          textureOffset (global 4-component vector of int)
+0:40          textureOffset (temp 4-component vector of int)
 0:40            Construct combined texture-sampler (temp isampler3D)
 0:40              'g_tTex3di4' (uniform itexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -126,7 +126,7 @@
 0:41      Sequence
 0:41        move second child to first child (temp 4-component vector of uint)
 0:41          'txval32' (temp 4-component vector of uint)
-0:41          textureOffset (global 4-component vector of uint)
+0:41          textureOffset (temp 4-component vector of uint)
 0:41            Construct combined texture-sampler (temp usampler3D)
 0:41              'g_tTex3du4' (uniform utexture3D)
 0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -203,7 +203,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval10' (temp 4-component vector of float)
-0:31          textureOffset (global 4-component vector of float)
+0:31          textureOffset (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler1D)
 0:31              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -216,7 +216,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval11' (temp 4-component vector of int)
-0:32          textureOffset (global 4-component vector of int)
+0:32          textureOffset (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler1D)
 0:32              'g_tTex1di4' (uniform itexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -229,7 +229,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval12' (temp 4-component vector of uint)
-0:33          textureOffset (global 4-component vector of uint)
+0:33          textureOffset (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler1D)
 0:33              'g_tTex1du4' (uniform utexture1D)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -242,7 +242,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval20' (temp 4-component vector of float)
-0:35          textureOffset (global 4-component vector of float)
+0:35          textureOffset (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp sampler2D)
 0:35              'g_tTex2df4' (uniform texture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -257,7 +257,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval21' (temp 4-component vector of int)
-0:36          textureOffset (global 4-component vector of int)
+0:36          textureOffset (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isampler2D)
 0:36              'g_tTex2di4' (uniform itexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -272,7 +272,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval22' (temp 4-component vector of uint)
-0:37          textureOffset (global 4-component vector of uint)
+0:37          textureOffset (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usampler2D)
 0:37              'g_tTex2du4' (uniform utexture2D)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -287,7 +287,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of float)
 0:39          'txval30' (temp 4-component vector of float)
-0:39          textureOffset (global 4-component vector of float)
+0:39          textureOffset (temp 4-component vector of float)
 0:39            Construct combined texture-sampler (temp sampler3D)
 0:39              'g_tTex3df4' (uniform texture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -304,7 +304,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of int)
 0:40          'txval31' (temp 4-component vector of int)
-0:40          textureOffset (global 4-component vector of int)
+0:40          textureOffset (temp 4-component vector of int)
 0:40            Construct combined texture-sampler (temp isampler3D)
 0:40              'g_tTex3di4' (uniform itexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -321,7 +321,7 @@
 0:41      Sequence
 0:41        move second child to first child (temp 4-component vector of uint)
 0:41          'txval32' (temp 4-component vector of uint)
-0:41          textureOffset (global 4-component vector of uint)
+0:41          textureOffset (temp 4-component vector of uint)
 0:41            Construct combined texture-sampler (temp usampler3D)
 0:41              'g_tTex3du4' (uniform utexture3D)
 0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
index 3ab84b9..bd21622 100644
--- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out
@@ -8,7 +8,7 @@
 0:23      Sequence
 0:23        move second child to first child (temp 4-component vector of float)
 0:23          'txval10' (temp 4-component vector of float)
-0:23          textureOffset (global 4-component vector of float)
+0:23          textureOffset (temp 4-component vector of float)
 0:23            Construct combined texture-sampler (temp sampler1DArray)
 0:23              'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
 0:23              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -22,7 +22,7 @@
 0:24      Sequence
 0:24        move second child to first child (temp 4-component vector of int)
 0:24          'txval11' (temp 4-component vector of int)
-0:24          textureOffset (global 4-component vector of int)
+0:24          textureOffset (temp 4-component vector of int)
 0:24            Construct combined texture-sampler (temp isampler1DArray)
 0:24              'g_tTex1di4' (uniform itexture1DArray)
 0:24              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -36,7 +36,7 @@
 0:25      Sequence
 0:25        move second child to first child (temp 4-component vector of uint)
 0:25          'txval12' (temp 4-component vector of uint)
-0:25          textureOffset (global 4-component vector of uint)
+0:25          textureOffset (temp 4-component vector of uint)
 0:25            Construct combined texture-sampler (temp usampler1DArray)
 0:25              'g_tTex1du4' (uniform utexture1DArray)
 0:25              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -50,7 +50,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval20' (temp 4-component vector of float)
-0:27          textureOffset (global 4-component vector of float)
+0:27          textureOffset (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler2DArray)
 0:27              'g_tTex2df4' (uniform texture2DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -66,7 +66,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval21' (temp 4-component vector of int)
-0:28          textureOffset (global 4-component vector of int)
+0:28          textureOffset (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler2DArray)
 0:28              'g_tTex2di4' (uniform itexture2DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -82,7 +82,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval22' (temp 4-component vector of uint)
-0:29          textureOffset (global 4-component vector of uint)
+0:29          textureOffset (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler2DArray)
 0:29              'g_tTex2du4' (uniform utexture2DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -152,7 +152,7 @@
 0:23      Sequence
 0:23        move second child to first child (temp 4-component vector of float)
 0:23          'txval10' (temp 4-component vector of float)
-0:23          textureOffset (global 4-component vector of float)
+0:23          textureOffset (temp 4-component vector of float)
 0:23            Construct combined texture-sampler (temp sampler1DArray)
 0:23              'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
 0:23              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -166,7 +166,7 @@
 0:24      Sequence
 0:24        move second child to first child (temp 4-component vector of int)
 0:24          'txval11' (temp 4-component vector of int)
-0:24          textureOffset (global 4-component vector of int)
+0:24          textureOffset (temp 4-component vector of int)
 0:24            Construct combined texture-sampler (temp isampler1DArray)
 0:24              'g_tTex1di4' (uniform itexture1DArray)
 0:24              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -180,7 +180,7 @@
 0:25      Sequence
 0:25        move second child to first child (temp 4-component vector of uint)
 0:25          'txval12' (temp 4-component vector of uint)
-0:25          textureOffset (global 4-component vector of uint)
+0:25          textureOffset (temp 4-component vector of uint)
 0:25            Construct combined texture-sampler (temp usampler1DArray)
 0:25              'g_tTex1du4' (uniform utexture1DArray)
 0:25              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -194,7 +194,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval20' (temp 4-component vector of float)
-0:27          textureOffset (global 4-component vector of float)
+0:27          textureOffset (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler2DArray)
 0:27              'g_tTex2df4' (uniform texture2DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -210,7 +210,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval21' (temp 4-component vector of int)
-0:28          textureOffset (global 4-component vector of int)
+0:28          textureOffset (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler2DArray)
 0:28              'g_tTex2di4' (uniform itexture2DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -226,7 +226,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval22' (temp 4-component vector of uint)
-0:29          textureOffset (global 4-component vector of uint)
+0:29          textureOffset (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler2DArray)
 0:29              'g_tTex2du4' (uniform utexture2DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
index 1513492..46a6bbc 100644
--- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out
@@ -8,7 +8,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval10' (temp 4-component vector of float)
-0:27          textureGrad (global 4-component vector of float)
+0:27          textureGrad (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler1DArray)
 0:27              'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -22,7 +22,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval11' (temp 4-component vector of int)
-0:28          textureGrad (global 4-component vector of int)
+0:28          textureGrad (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler1DArray)
 0:28              'g_tTex1di4' (uniform itexture1DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -36,7 +36,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval12' (temp 4-component vector of uint)
-0:29          textureGrad (global 4-component vector of uint)
+0:29          textureGrad (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler1DArray)
 0:29              'g_tTex1du4' (uniform utexture1DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -50,7 +50,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval20' (temp 4-component vector of float)
-0:31          textureGrad (global 4-component vector of float)
+0:31          textureGrad (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler2DArray)
 0:31              'g_tTex2df4' (uniform texture2DArray)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -67,7 +67,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval21' (temp 4-component vector of int)
-0:32          textureGrad (global 4-component vector of int)
+0:32          textureGrad (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler2DArray)
 0:32              'g_tTex2di4' (uniform itexture2DArray)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -84,7 +84,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval22' (temp 4-component vector of uint)
-0:33          textureGrad (global 4-component vector of uint)
+0:33          textureGrad (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler2DArray)
 0:33              'g_tTex2du4' (uniform utexture2DArray)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -101,7 +101,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval40' (temp 4-component vector of float)
-0:35          textureGrad (global 4-component vector of float)
+0:35          textureGrad (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp samplerCubeArray)
 0:35              'g_tTexcdf4' (uniform textureCubeArray)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -121,7 +121,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval41' (temp 4-component vector of int)
-0:36          textureGrad (global 4-component vector of int)
+0:36          textureGrad (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isamplerCubeArray)
 0:36              'g_tTexcdi4' (uniform itextureCubeArray)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -141,7 +141,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval42' (temp 4-component vector of uint)
-0:37          textureGrad (global 4-component vector of uint)
+0:37          textureGrad (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usamplerCubeArray)
 0:37              'g_tTexcdu4' (uniform utextureCubeArray)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -218,7 +218,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval10' (temp 4-component vector of float)
-0:27          textureGrad (global 4-component vector of float)
+0:27          textureGrad (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler1DArray)
 0:27              'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -232,7 +232,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval11' (temp 4-component vector of int)
-0:28          textureGrad (global 4-component vector of int)
+0:28          textureGrad (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler1DArray)
 0:28              'g_tTex1di4' (uniform itexture1DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -246,7 +246,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval12' (temp 4-component vector of uint)
-0:29          textureGrad (global 4-component vector of uint)
+0:29          textureGrad (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler1DArray)
 0:29              'g_tTex1du4' (uniform utexture1DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -260,7 +260,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval20' (temp 4-component vector of float)
-0:31          textureGrad (global 4-component vector of float)
+0:31          textureGrad (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler2DArray)
 0:31              'g_tTex2df4' (uniform texture2DArray)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -277,7 +277,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval21' (temp 4-component vector of int)
-0:32          textureGrad (global 4-component vector of int)
+0:32          textureGrad (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler2DArray)
 0:32              'g_tTex2di4' (uniform itexture2DArray)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -294,7 +294,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval22' (temp 4-component vector of uint)
-0:33          textureGrad (global 4-component vector of uint)
+0:33          textureGrad (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler2DArray)
 0:33              'g_tTex2du4' (uniform utexture2DArray)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -311,7 +311,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval40' (temp 4-component vector of float)
-0:35          textureGrad (global 4-component vector of float)
+0:35          textureGrad (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp samplerCubeArray)
 0:35              'g_tTexcdf4' (uniform textureCubeArray)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -331,7 +331,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval41' (temp 4-component vector of int)
-0:36          textureGrad (global 4-component vector of int)
+0:36          textureGrad (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isamplerCubeArray)
 0:36              'g_tTexcdi4' (uniform itextureCubeArray)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -351,7 +351,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval42' (temp 4-component vector of uint)
-0:37          textureGrad (global 4-component vector of uint)
+0:37          textureGrad (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usamplerCubeArray)
 0:37              'g_tTexcdu4' (uniform utextureCubeArray)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
index 92c0c34..395efc2 100644
--- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out
@@ -8,7 +8,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval10' (temp 4-component vector of float)
-0:31          textureGrad (global 4-component vector of float)
+0:31          textureGrad (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler1D)
 0:31              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -21,7 +21,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval11' (temp 4-component vector of int)
-0:32          textureGrad (global 4-component vector of int)
+0:32          textureGrad (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler1D)
 0:32              'g_tTex1di4' (uniform itexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -34,7 +34,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval12' (temp 4-component vector of uint)
-0:33          textureGrad (global 4-component vector of uint)
+0:33          textureGrad (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler1D)
 0:33              'g_tTex1du4' (uniform utexture1D)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -47,7 +47,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval20' (temp 4-component vector of float)
-0:35          textureGrad (global 4-component vector of float)
+0:35          textureGrad (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp sampler2D)
 0:35              'g_tTex2df4' (uniform texture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -63,7 +63,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval21' (temp 4-component vector of int)
-0:36          textureGrad (global 4-component vector of int)
+0:36          textureGrad (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isampler2D)
 0:36              'g_tTex2di4' (uniform itexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -79,7 +79,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval22' (temp 4-component vector of uint)
-0:37          textureGrad (global 4-component vector of uint)
+0:37          textureGrad (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usampler2D)
 0:37              'g_tTex2du4' (uniform utexture2D)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -95,7 +95,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of float)
 0:39          'txval30' (temp 4-component vector of float)
-0:39          textureGrad (global 4-component vector of float)
+0:39          textureGrad (temp 4-component vector of float)
 0:39            Construct combined texture-sampler (temp sampler3D)
 0:39              'g_tTex3df4' (uniform texture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -114,7 +114,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of int)
 0:40          'txval31' (temp 4-component vector of int)
-0:40          textureGrad (global 4-component vector of int)
+0:40          textureGrad (temp 4-component vector of int)
 0:40            Construct combined texture-sampler (temp isampler3D)
 0:40              'g_tTex3di4' (uniform itexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -133,7 +133,7 @@
 0:41      Sequence
 0:41        move second child to first child (temp 4-component vector of uint)
 0:41          'txval32' (temp 4-component vector of uint)
-0:41          textureGrad (global 4-component vector of uint)
+0:41          textureGrad (temp 4-component vector of uint)
 0:41            Construct combined texture-sampler (temp usampler3D)
 0:41              'g_tTex3du4' (uniform utexture3D)
 0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -152,7 +152,7 @@
 0:43      Sequence
 0:43        move second child to first child (temp 4-component vector of float)
 0:43          'txval40' (temp 4-component vector of float)
-0:43          textureGrad (global 4-component vector of float)
+0:43          textureGrad (temp 4-component vector of float)
 0:43            Construct combined texture-sampler (temp samplerCube)
 0:43              'g_tTexcdf4' (uniform textureCube)
 0:43              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -171,7 +171,7 @@
 0:44      Sequence
 0:44        move second child to first child (temp 4-component vector of int)
 0:44          'txval41' (temp 4-component vector of int)
-0:44          textureGrad (global 4-component vector of int)
+0:44          textureGrad (temp 4-component vector of int)
 0:44            Construct combined texture-sampler (temp isamplerCube)
 0:44              'g_tTexcdi4' (uniform itextureCube)
 0:44              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -190,7 +190,7 @@
 0:45      Sequence
 0:45        move second child to first child (temp 4-component vector of uint)
 0:45          'txval42' (temp 4-component vector of uint)
-0:45          textureGrad (global 4-component vector of uint)
+0:45          textureGrad (temp 4-component vector of uint)
 0:45            Construct combined texture-sampler (temp usamplerCube)
 0:45              'g_tTexcdu4' (uniform utextureCube)
 0:45              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -269,7 +269,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval10' (temp 4-component vector of float)
-0:31          textureGrad (global 4-component vector of float)
+0:31          textureGrad (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler1D)
 0:31              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -282,7 +282,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval11' (temp 4-component vector of int)
-0:32          textureGrad (global 4-component vector of int)
+0:32          textureGrad (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler1D)
 0:32              'g_tTex1di4' (uniform itexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -295,7 +295,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval12' (temp 4-component vector of uint)
-0:33          textureGrad (global 4-component vector of uint)
+0:33          textureGrad (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler1D)
 0:33              'g_tTex1du4' (uniform utexture1D)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -308,7 +308,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval20' (temp 4-component vector of float)
-0:35          textureGrad (global 4-component vector of float)
+0:35          textureGrad (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp sampler2D)
 0:35              'g_tTex2df4' (uniform texture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -324,7 +324,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval21' (temp 4-component vector of int)
-0:36          textureGrad (global 4-component vector of int)
+0:36          textureGrad (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isampler2D)
 0:36              'g_tTex2di4' (uniform itexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -340,7 +340,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval22' (temp 4-component vector of uint)
-0:37          textureGrad (global 4-component vector of uint)
+0:37          textureGrad (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usampler2D)
 0:37              'g_tTex2du4' (uniform utexture2D)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -356,7 +356,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of float)
 0:39          'txval30' (temp 4-component vector of float)
-0:39          textureGrad (global 4-component vector of float)
+0:39          textureGrad (temp 4-component vector of float)
 0:39            Construct combined texture-sampler (temp sampler3D)
 0:39              'g_tTex3df4' (uniform texture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -375,7 +375,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of int)
 0:40          'txval31' (temp 4-component vector of int)
-0:40          textureGrad (global 4-component vector of int)
+0:40          textureGrad (temp 4-component vector of int)
 0:40            Construct combined texture-sampler (temp isampler3D)
 0:40              'g_tTex3di4' (uniform itexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -394,7 +394,7 @@
 0:41      Sequence
 0:41        move second child to first child (temp 4-component vector of uint)
 0:41          'txval32' (temp 4-component vector of uint)
-0:41          textureGrad (global 4-component vector of uint)
+0:41          textureGrad (temp 4-component vector of uint)
 0:41            Construct combined texture-sampler (temp usampler3D)
 0:41              'g_tTex3du4' (uniform utexture3D)
 0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -413,7 +413,7 @@
 0:43      Sequence
 0:43        move second child to first child (temp 4-component vector of float)
 0:43          'txval40' (temp 4-component vector of float)
-0:43          textureGrad (global 4-component vector of float)
+0:43          textureGrad (temp 4-component vector of float)
 0:43            Construct combined texture-sampler (temp samplerCube)
 0:43              'g_tTexcdf4' (uniform textureCube)
 0:43              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -432,7 +432,7 @@
 0:44      Sequence
 0:44        move second child to first child (temp 4-component vector of int)
 0:44          'txval41' (temp 4-component vector of int)
-0:44          textureGrad (global 4-component vector of int)
+0:44          textureGrad (temp 4-component vector of int)
 0:44            Construct combined texture-sampler (temp isamplerCube)
 0:44              'g_tTexcdi4' (uniform itextureCube)
 0:44              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -451,7 +451,7 @@
 0:45      Sequence
 0:45        move second child to first child (temp 4-component vector of uint)
 0:45          'txval42' (temp 4-component vector of uint)
-0:45          textureGrad (global 4-component vector of uint)
+0:45          textureGrad (temp 4-component vector of uint)
 0:45            Construct combined texture-sampler (temp usamplerCube)
 0:45              'g_tTexcdu4' (uniform utextureCube)
 0:45              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
index e890934..2e79be3 100644
--- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out
@@ -7,7 +7,7 @@
 0:30      Sequence
 0:30        move second child to first child (temp 4-component vector of float)
 0:30          'txval10' (temp 4-component vector of float)
-0:30          textureGrad (global 4-component vector of float)
+0:30          textureGrad (temp 4-component vector of float)
 0:30            Construct combined texture-sampler (temp sampler1D)
 0:30              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:30              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -20,7 +20,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of int)
 0:31          'txval11' (temp 4-component vector of int)
-0:31          textureGrad (global 4-component vector of int)
+0:31          textureGrad (temp 4-component vector of int)
 0:31            Construct combined texture-sampler (temp isampler1D)
 0:31              'g_tTex1di4' (uniform itexture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -33,7 +33,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of uint)
 0:32          'txval12' (temp 4-component vector of uint)
-0:32          textureGrad (global 4-component vector of uint)
+0:32          textureGrad (temp 4-component vector of uint)
 0:32            Construct combined texture-sampler (temp usampler1D)
 0:32              'g_tTex1du4' (uniform utexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -46,7 +46,7 @@
 0:34      Sequence
 0:34        move second child to first child (temp 4-component vector of float)
 0:34          'txval20' (temp 4-component vector of float)
-0:34          textureGrad (global 4-component vector of float)
+0:34          textureGrad (temp 4-component vector of float)
 0:34            Construct combined texture-sampler (temp sampler2D)
 0:34              'g_tTex2df4' (uniform texture2D)
 0:34              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -62,7 +62,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of int)
 0:35          'txval21' (temp 4-component vector of int)
-0:35          textureGrad (global 4-component vector of int)
+0:35          textureGrad (temp 4-component vector of int)
 0:35            Construct combined texture-sampler (temp isampler2D)
 0:35              'g_tTex2di4' (uniform itexture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -78,7 +78,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of uint)
 0:36          'txval22' (temp 4-component vector of uint)
-0:36          textureGrad (global 4-component vector of uint)
+0:36          textureGrad (temp 4-component vector of uint)
 0:36            Construct combined texture-sampler (temp usampler2D)
 0:36              'g_tTex2du4' (uniform utexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -94,7 +94,7 @@
 0:38      Sequence
 0:38        move second child to first child (temp 4-component vector of float)
 0:38          'txval30' (temp 4-component vector of float)
-0:38          textureGrad (global 4-component vector of float)
+0:38          textureGrad (temp 4-component vector of float)
 0:38            Construct combined texture-sampler (temp sampler3D)
 0:38              'g_tTex3df4' (uniform texture3D)
 0:38              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -113,7 +113,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of int)
 0:39          'txval31' (temp 4-component vector of int)
-0:39          textureGrad (global 4-component vector of int)
+0:39          textureGrad (temp 4-component vector of int)
 0:39            Construct combined texture-sampler (temp isampler3D)
 0:39              'g_tTex3di4' (uniform itexture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -132,7 +132,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of uint)
 0:40          'txval32' (temp 4-component vector of uint)
-0:40          textureGrad (global 4-component vector of uint)
+0:40          textureGrad (temp 4-component vector of uint)
 0:40            Construct combined texture-sampler (temp usampler3D)
 0:40              'g_tTex3du4' (uniform utexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -151,7 +151,7 @@
 0:42      Sequence
 0:42        move second child to first child (temp 4-component vector of float)
 0:42          'txval40' (temp 4-component vector of float)
-0:42          textureGrad (global 4-component vector of float)
+0:42          textureGrad (temp 4-component vector of float)
 0:42            Construct combined texture-sampler (temp samplerCube)
 0:42              'g_tTexcdf4' (uniform textureCube)
 0:42              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -170,7 +170,7 @@
 0:43      Sequence
 0:43        move second child to first child (temp 4-component vector of int)
 0:43          'txval41' (temp 4-component vector of int)
-0:43          textureGrad (global 4-component vector of int)
+0:43          textureGrad (temp 4-component vector of int)
 0:43            Construct combined texture-sampler (temp isamplerCube)
 0:43              'g_tTexcdi4' (uniform itextureCube)
 0:43              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -189,7 +189,7 @@
 0:44      Sequence
 0:44        move second child to first child (temp 4-component vector of uint)
 0:44          'txval42' (temp 4-component vector of uint)
-0:44          textureGrad (global 4-component vector of uint)
+0:44          textureGrad (temp 4-component vector of uint)
 0:44            Construct combined texture-sampler (temp usamplerCube)
 0:44              'g_tTexcdu4' (uniform utextureCube)
 0:44              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -253,7 +253,7 @@
 0:30      Sequence
 0:30        move second child to first child (temp 4-component vector of float)
 0:30          'txval10' (temp 4-component vector of float)
-0:30          textureGrad (global 4-component vector of float)
+0:30          textureGrad (temp 4-component vector of float)
 0:30            Construct combined texture-sampler (temp sampler1D)
 0:30              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:30              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -266,7 +266,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of int)
 0:31          'txval11' (temp 4-component vector of int)
-0:31          textureGrad (global 4-component vector of int)
+0:31          textureGrad (temp 4-component vector of int)
 0:31            Construct combined texture-sampler (temp isampler1D)
 0:31              'g_tTex1di4' (uniform itexture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -279,7 +279,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of uint)
 0:32          'txval12' (temp 4-component vector of uint)
-0:32          textureGrad (global 4-component vector of uint)
+0:32          textureGrad (temp 4-component vector of uint)
 0:32            Construct combined texture-sampler (temp usampler1D)
 0:32              'g_tTex1du4' (uniform utexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -292,7 +292,7 @@
 0:34      Sequence
 0:34        move second child to first child (temp 4-component vector of float)
 0:34          'txval20' (temp 4-component vector of float)
-0:34          textureGrad (global 4-component vector of float)
+0:34          textureGrad (temp 4-component vector of float)
 0:34            Construct combined texture-sampler (temp sampler2D)
 0:34              'g_tTex2df4' (uniform texture2D)
 0:34              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -308,7 +308,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of int)
 0:35          'txval21' (temp 4-component vector of int)
-0:35          textureGrad (global 4-component vector of int)
+0:35          textureGrad (temp 4-component vector of int)
 0:35            Construct combined texture-sampler (temp isampler2D)
 0:35              'g_tTex2di4' (uniform itexture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -324,7 +324,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of uint)
 0:36          'txval22' (temp 4-component vector of uint)
-0:36          textureGrad (global 4-component vector of uint)
+0:36          textureGrad (temp 4-component vector of uint)
 0:36            Construct combined texture-sampler (temp usampler2D)
 0:36              'g_tTex2du4' (uniform utexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -340,7 +340,7 @@
 0:38      Sequence
 0:38        move second child to first child (temp 4-component vector of float)
 0:38          'txval30' (temp 4-component vector of float)
-0:38          textureGrad (global 4-component vector of float)
+0:38          textureGrad (temp 4-component vector of float)
 0:38            Construct combined texture-sampler (temp sampler3D)
 0:38              'g_tTex3df4' (uniform texture3D)
 0:38              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -359,7 +359,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of int)
 0:39          'txval31' (temp 4-component vector of int)
-0:39          textureGrad (global 4-component vector of int)
+0:39          textureGrad (temp 4-component vector of int)
 0:39            Construct combined texture-sampler (temp isampler3D)
 0:39              'g_tTex3di4' (uniform itexture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -378,7 +378,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of uint)
 0:40          'txval32' (temp 4-component vector of uint)
-0:40          textureGrad (global 4-component vector of uint)
+0:40          textureGrad (temp 4-component vector of uint)
 0:40            Construct combined texture-sampler (temp usampler3D)
 0:40              'g_tTex3du4' (uniform utexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -397,7 +397,7 @@
 0:42      Sequence
 0:42        move second child to first child (temp 4-component vector of float)
 0:42          'txval40' (temp 4-component vector of float)
-0:42          textureGrad (global 4-component vector of float)
+0:42          textureGrad (temp 4-component vector of float)
 0:42            Construct combined texture-sampler (temp samplerCube)
 0:42              'g_tTexcdf4' (uniform textureCube)
 0:42              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -416,7 +416,7 @@
 0:43      Sequence
 0:43        move second child to first child (temp 4-component vector of int)
 0:43          'txval41' (temp 4-component vector of int)
-0:43          textureGrad (global 4-component vector of int)
+0:43          textureGrad (temp 4-component vector of int)
 0:43            Construct combined texture-sampler (temp isamplerCube)
 0:43              'g_tTexcdi4' (uniform itextureCube)
 0:43              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -435,7 +435,7 @@
 0:44      Sequence
 0:44        move second child to first child (temp 4-component vector of uint)
 0:44          'txval42' (temp 4-component vector of uint)
-0:44          textureGrad (global 4-component vector of uint)
+0:44          textureGrad (temp 4-component vector of uint)
 0:44            Construct combined texture-sampler (temp usamplerCube)
 0:44              'g_tTexcdu4' (uniform utextureCube)
 0:44              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
index 9145aa4..7ef5e07 100644
--- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out
@@ -8,7 +8,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval10' (temp 4-component vector of float)
-0:31          textureGradOffset (global 4-component vector of float)
+0:31          textureGradOffset (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler1D)
 0:31              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -23,7 +23,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval11' (temp 4-component vector of int)
-0:32          textureGradOffset (global 4-component vector of int)
+0:32          textureGradOffset (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler1D)
 0:32              'g_tTex1di4' (uniform itexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -38,7 +38,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval12' (temp 4-component vector of uint)
-0:33          textureGradOffset (global 4-component vector of uint)
+0:33          textureGradOffset (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler1D)
 0:33              'g_tTex1du4' (uniform utexture1D)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -53,7 +53,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval20' (temp 4-component vector of float)
-0:35          textureGradOffset (global 4-component vector of float)
+0:35          textureGradOffset (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp sampler2D)
 0:35              'g_tTex2df4' (uniform texture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -72,7 +72,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval21' (temp 4-component vector of int)
-0:36          textureGradOffset (global 4-component vector of int)
+0:36          textureGradOffset (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isampler2D)
 0:36              'g_tTex2di4' (uniform itexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -91,7 +91,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval22' (temp 4-component vector of uint)
-0:37          textureGradOffset (global 4-component vector of uint)
+0:37          textureGradOffset (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usampler2D)
 0:37              'g_tTex2du4' (uniform utexture2D)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -110,7 +110,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of float)
 0:39          'txval30' (temp 4-component vector of float)
-0:39          textureGradOffset (global 4-component vector of float)
+0:39          textureGradOffset (temp 4-component vector of float)
 0:39            Construct combined texture-sampler (temp sampler3D)
 0:39              'g_tTex3df4' (uniform texture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -133,7 +133,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of int)
 0:40          'txval31' (temp 4-component vector of int)
-0:40          textureGradOffset (global 4-component vector of int)
+0:40          textureGradOffset (temp 4-component vector of int)
 0:40            Construct combined texture-sampler (temp isampler3D)
 0:40              'g_tTex3di4' (uniform itexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -156,7 +156,7 @@
 0:41      Sequence
 0:41        move second child to first child (temp 4-component vector of uint)
 0:41          'txval32' (temp 4-component vector of uint)
-0:41          textureGradOffset (global 4-component vector of uint)
+0:41          textureGradOffset (temp 4-component vector of uint)
 0:41            Construct combined texture-sampler (temp usampler3D)
 0:41              'g_tTex3du4' (uniform utexture3D)
 0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -239,7 +239,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval10' (temp 4-component vector of float)
-0:31          textureGradOffset (global 4-component vector of float)
+0:31          textureGradOffset (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler1D)
 0:31              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -254,7 +254,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval11' (temp 4-component vector of int)
-0:32          textureGradOffset (global 4-component vector of int)
+0:32          textureGradOffset (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler1D)
 0:32              'g_tTex1di4' (uniform itexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -269,7 +269,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval12' (temp 4-component vector of uint)
-0:33          textureGradOffset (global 4-component vector of uint)
+0:33          textureGradOffset (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler1D)
 0:33              'g_tTex1du4' (uniform utexture1D)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -284,7 +284,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval20' (temp 4-component vector of float)
-0:35          textureGradOffset (global 4-component vector of float)
+0:35          textureGradOffset (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp sampler2D)
 0:35              'g_tTex2df4' (uniform texture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -303,7 +303,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval21' (temp 4-component vector of int)
-0:36          textureGradOffset (global 4-component vector of int)
+0:36          textureGradOffset (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isampler2D)
 0:36              'g_tTex2di4' (uniform itexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -322,7 +322,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval22' (temp 4-component vector of uint)
-0:37          textureGradOffset (global 4-component vector of uint)
+0:37          textureGradOffset (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usampler2D)
 0:37              'g_tTex2du4' (uniform utexture2D)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -341,7 +341,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of float)
 0:39          'txval30' (temp 4-component vector of float)
-0:39          textureGradOffset (global 4-component vector of float)
+0:39          textureGradOffset (temp 4-component vector of float)
 0:39            Construct combined texture-sampler (temp sampler3D)
 0:39              'g_tTex3df4' (uniform texture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -364,7 +364,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of int)
 0:40          'txval31' (temp 4-component vector of int)
-0:40          textureGradOffset (global 4-component vector of int)
+0:40          textureGradOffset (temp 4-component vector of int)
 0:40            Construct combined texture-sampler (temp isampler3D)
 0:40              'g_tTex3di4' (uniform itexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -387,7 +387,7 @@
 0:41      Sequence
 0:41        move second child to first child (temp 4-component vector of uint)
 0:41          'txval32' (temp 4-component vector of uint)
-0:41          textureGradOffset (global 4-component vector of uint)
+0:41          textureGradOffset (temp 4-component vector of uint)
 0:41            Construct combined texture-sampler (temp usampler3D)
 0:41              'g_tTex3du4' (uniform utexture3D)
 0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
index e964ff9..2043f38 100644
--- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out
@@ -8,7 +8,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval10' (temp 4-component vector of float)
-0:27          textureGradOffset (global 4-component vector of float)
+0:27          textureGradOffset (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler1DArray)
 0:27              'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -24,7 +24,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval11' (temp 4-component vector of int)
-0:28          textureGradOffset (global 4-component vector of int)
+0:28          textureGradOffset (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler1DArray)
 0:28              'g_tTex1di4' (uniform itexture1DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -40,7 +40,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval12' (temp 4-component vector of uint)
-0:29          textureGradOffset (global 4-component vector of uint)
+0:29          textureGradOffset (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler1DArray)
 0:29              'g_tTex1du4' (uniform utexture1DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -56,7 +56,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval20' (temp 4-component vector of float)
-0:31          textureGradOffset (global 4-component vector of float)
+0:31          textureGradOffset (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler2DArray)
 0:31              'g_tTex2df4' (uniform texture2DArray)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -76,7 +76,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval21' (temp 4-component vector of int)
-0:32          textureGradOffset (global 4-component vector of int)
+0:32          textureGradOffset (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler2DArray)
 0:32              'g_tTex2di4' (uniform itexture2DArray)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -96,7 +96,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval22' (temp 4-component vector of uint)
-0:33          textureGradOffset (global 4-component vector of uint)
+0:33          textureGradOffset (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler2DArray)
 0:33              'g_tTex2du4' (uniform utexture2DArray)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -173,7 +173,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval10' (temp 4-component vector of float)
-0:27          textureGradOffset (global 4-component vector of float)
+0:27          textureGradOffset (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler1DArray)
 0:27              'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -189,7 +189,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval11' (temp 4-component vector of int)
-0:28          textureGradOffset (global 4-component vector of int)
+0:28          textureGradOffset (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler1DArray)
 0:28              'g_tTex1di4' (uniform itexture1DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -205,7 +205,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval12' (temp 4-component vector of uint)
-0:29          textureGradOffset (global 4-component vector of uint)
+0:29          textureGradOffset (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler1DArray)
 0:29              'g_tTex1du4' (uniform utexture1DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -221,7 +221,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval20' (temp 4-component vector of float)
-0:31          textureGradOffset (global 4-component vector of float)
+0:31          textureGradOffset (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler2DArray)
 0:31              'g_tTex2df4' (uniform texture2DArray)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -241,7 +241,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval21' (temp 4-component vector of int)
-0:32          textureGradOffset (global 4-component vector of int)
+0:32          textureGradOffset (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler2DArray)
 0:32              'g_tTex2di4' (uniform itexture2DArray)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -261,7 +261,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval22' (temp 4-component vector of uint)
-0:33          textureGradOffset (global 4-component vector of uint)
+0:33          textureGradOffset (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler2DArray)
 0:33              'g_tTex2du4' (uniform utexture2DArray)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
index d031665..351e2ed 100644
--- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out
@@ -8,7 +8,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval10' (temp 4-component vector of float)
-0:27          textureLod (global 4-component vector of float)
+0:27          textureLod (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler1DArray)
 0:27              'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -20,7 +20,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval11' (temp 4-component vector of int)
-0:28          textureLod (global 4-component vector of int)
+0:28          textureLod (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler1DArray)
 0:28              'g_tTex1di4a' (uniform itexture1DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -32,7 +32,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval12' (temp 4-component vector of uint)
-0:29          textureLod (global 4-component vector of uint)
+0:29          textureLod (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler1DArray)
 0:29              'g_tTex1du4a' (uniform utexture1DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -44,7 +44,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval20' (temp 4-component vector of float)
-0:31          textureLod (global 4-component vector of float)
+0:31          textureLod (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler2DArray)
 0:31              'g_tTex2df4a' (uniform texture2DArray)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -57,7 +57,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval21' (temp 4-component vector of int)
-0:32          textureLod (global 4-component vector of int)
+0:32          textureLod (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler2DArray)
 0:32              'g_tTex2di4a' (uniform itexture2DArray)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -70,7 +70,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval22' (temp 4-component vector of uint)
-0:33          textureLod (global 4-component vector of uint)
+0:33          textureLod (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler2DArray)
 0:33              'g_tTex2du4a' (uniform utexture2DArray)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -83,7 +83,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval40' (temp 4-component vector of float)
-0:35          textureLod (global 4-component vector of float)
+0:35          textureLod (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp samplerCubeArray)
 0:35              'g_tTexcdf4a' (uniform textureCubeArray)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -97,7 +97,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval41' (temp 4-component vector of int)
-0:36          textureLod (global 4-component vector of int)
+0:36          textureLod (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isamplerCubeArray)
 0:36              'g_tTexcdi4a' (uniform itextureCubeArray)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -111,7 +111,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval42' (temp 4-component vector of uint)
-0:37          textureLod (global 4-component vector of uint)
+0:37          textureLod (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usamplerCubeArray)
 0:37              'g_tTexcdu4a' (uniform utextureCubeArray)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -182,7 +182,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval10' (temp 4-component vector of float)
-0:27          textureLod (global 4-component vector of float)
+0:27          textureLod (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler1DArray)
 0:27              'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -194,7 +194,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval11' (temp 4-component vector of int)
-0:28          textureLod (global 4-component vector of int)
+0:28          textureLod (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler1DArray)
 0:28              'g_tTex1di4a' (uniform itexture1DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -206,7 +206,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval12' (temp 4-component vector of uint)
-0:29          textureLod (global 4-component vector of uint)
+0:29          textureLod (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler1DArray)
 0:29              'g_tTex1du4a' (uniform utexture1DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -218,7 +218,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval20' (temp 4-component vector of float)
-0:31          textureLod (global 4-component vector of float)
+0:31          textureLod (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler2DArray)
 0:31              'g_tTex2df4a' (uniform texture2DArray)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -231,7 +231,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval21' (temp 4-component vector of int)
-0:32          textureLod (global 4-component vector of int)
+0:32          textureLod (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler2DArray)
 0:32              'g_tTex2di4a' (uniform itexture2DArray)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -244,7 +244,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval22' (temp 4-component vector of uint)
-0:33          textureLod (global 4-component vector of uint)
+0:33          textureLod (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler2DArray)
 0:33              'g_tTex2du4a' (uniform utexture2DArray)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -257,7 +257,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval40' (temp 4-component vector of float)
-0:35          textureLod (global 4-component vector of float)
+0:35          textureLod (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp samplerCubeArray)
 0:35              'g_tTexcdf4a' (uniform textureCubeArray)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -271,7 +271,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval41' (temp 4-component vector of int)
-0:36          textureLod (global 4-component vector of int)
+0:36          textureLod (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isamplerCubeArray)
 0:36              'g_tTexcdi4a' (uniform itextureCubeArray)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -285,7 +285,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval42' (temp 4-component vector of uint)
-0:37          textureLod (global 4-component vector of uint)
+0:37          textureLod (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usamplerCubeArray)
 0:37              'g_tTexcdu4a' (uniform utextureCubeArray)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
index 4a93750..d37090f 100644
--- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out
@@ -8,7 +8,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of float)
 0:32          'txval10' (temp 4-component vector of float)
-0:32          textureLod (global 4-component vector of float)
+0:32          textureLod (temp 4-component vector of float)
 0:32            Construct combined texture-sampler (temp sampler1D)
 0:32              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -19,7 +19,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of int)
 0:33          'txval11' (temp 4-component vector of int)
-0:33          textureLod (global 4-component vector of int)
+0:33          textureLod (temp 4-component vector of int)
 0:33            Construct combined texture-sampler (temp isampler1D)
 0:33              'g_tTex1di4' (uniform itexture1D)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -30,7 +30,7 @@
 0:34      Sequence
 0:34        move second child to first child (temp 4-component vector of uint)
 0:34          'txval12' (temp 4-component vector of uint)
-0:34          textureLod (global 4-component vector of uint)
+0:34          textureLod (temp 4-component vector of uint)
 0:34            Construct combined texture-sampler (temp usampler1D)
 0:34              'g_tTex1du4' (uniform utexture1D)
 0:34              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -41,7 +41,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of float)
 0:36          'txval20' (temp 4-component vector of float)
-0:36          textureLod (global 4-component vector of float)
+0:36          textureLod (temp 4-component vector of float)
 0:36            Construct combined texture-sampler (temp sampler2D)
 0:36              'g_tTex2df4' (uniform texture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -53,7 +53,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of int)
 0:37          'txval21' (temp 4-component vector of int)
-0:37          textureLod (global 4-component vector of int)
+0:37          textureLod (temp 4-component vector of int)
 0:37            Construct combined texture-sampler (temp isampler2D)
 0:37              'g_tTex2di4' (uniform itexture2D)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -65,7 +65,7 @@
 0:38      Sequence
 0:38        move second child to first child (temp 4-component vector of uint)
 0:38          'txval22' (temp 4-component vector of uint)
-0:38          textureLod (global 4-component vector of uint)
+0:38          textureLod (temp 4-component vector of uint)
 0:38            Construct combined texture-sampler (temp usampler2D)
 0:38              'g_tTex2du4' (uniform utexture2D)
 0:38              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -77,7 +77,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of float)
 0:40          'txval30' (temp 4-component vector of float)
-0:40          textureLod (global 4-component vector of float)
+0:40          textureLod (temp 4-component vector of float)
 0:40            Construct combined texture-sampler (temp sampler3D)
 0:40              'g_tTex3df4' (uniform texture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -90,7 +90,7 @@
 0:41      Sequence
 0:41        move second child to first child (temp 4-component vector of int)
 0:41          'txval31' (temp 4-component vector of int)
-0:41          textureLod (global 4-component vector of int)
+0:41          textureLod (temp 4-component vector of int)
 0:41            Construct combined texture-sampler (temp isampler3D)
 0:41              'g_tTex3di4' (uniform itexture3D)
 0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -103,7 +103,7 @@
 0:42      Sequence
 0:42        move second child to first child (temp 4-component vector of uint)
 0:42          'txval32' (temp 4-component vector of uint)
-0:42          textureLod (global 4-component vector of uint)
+0:42          textureLod (temp 4-component vector of uint)
 0:42            Construct combined texture-sampler (temp usampler3D)
 0:42              'g_tTex3du4' (uniform utexture3D)
 0:42              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -116,7 +116,7 @@
 0:44      Sequence
 0:44        move second child to first child (temp 4-component vector of float)
 0:44          'txval40' (temp 4-component vector of float)
-0:44          textureLod (global 4-component vector of float)
+0:44          textureLod (temp 4-component vector of float)
 0:44            Construct combined texture-sampler (temp samplerCube)
 0:44              'g_tTexcdf4' (uniform textureCube)
 0:44              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -129,7 +129,7 @@
 0:45      Sequence
 0:45        move second child to first child (temp 4-component vector of int)
 0:45          'txval41' (temp 4-component vector of int)
-0:45          textureLod (global 4-component vector of int)
+0:45          textureLod (temp 4-component vector of int)
 0:45            Construct combined texture-sampler (temp isamplerCube)
 0:45              'g_tTexcdi4' (uniform itextureCube)
 0:45              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -142,7 +142,7 @@
 0:46      Sequence
 0:46        move second child to first child (temp 4-component vector of uint)
 0:46          'txval42' (temp 4-component vector of uint)
-0:46          textureLod (global 4-component vector of uint)
+0:46          textureLod (temp 4-component vector of uint)
 0:46            Construct combined texture-sampler (temp usamplerCube)
 0:46              'g_tTexcdu4' (uniform utextureCube)
 0:46              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -216,7 +216,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of float)
 0:32          'txval10' (temp 4-component vector of float)
-0:32          textureLod (global 4-component vector of float)
+0:32          textureLod (temp 4-component vector of float)
 0:32            Construct combined texture-sampler (temp sampler1D)
 0:32              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -227,7 +227,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of int)
 0:33          'txval11' (temp 4-component vector of int)
-0:33          textureLod (global 4-component vector of int)
+0:33          textureLod (temp 4-component vector of int)
 0:33            Construct combined texture-sampler (temp isampler1D)
 0:33              'g_tTex1di4' (uniform itexture1D)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -238,7 +238,7 @@
 0:34      Sequence
 0:34        move second child to first child (temp 4-component vector of uint)
 0:34          'txval12' (temp 4-component vector of uint)
-0:34          textureLod (global 4-component vector of uint)
+0:34          textureLod (temp 4-component vector of uint)
 0:34            Construct combined texture-sampler (temp usampler1D)
 0:34              'g_tTex1du4' (uniform utexture1D)
 0:34              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -249,7 +249,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of float)
 0:36          'txval20' (temp 4-component vector of float)
-0:36          textureLod (global 4-component vector of float)
+0:36          textureLod (temp 4-component vector of float)
 0:36            Construct combined texture-sampler (temp sampler2D)
 0:36              'g_tTex2df4' (uniform texture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -261,7 +261,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of int)
 0:37          'txval21' (temp 4-component vector of int)
-0:37          textureLod (global 4-component vector of int)
+0:37          textureLod (temp 4-component vector of int)
 0:37            Construct combined texture-sampler (temp isampler2D)
 0:37              'g_tTex2di4' (uniform itexture2D)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -273,7 +273,7 @@
 0:38      Sequence
 0:38        move second child to first child (temp 4-component vector of uint)
 0:38          'txval22' (temp 4-component vector of uint)
-0:38          textureLod (global 4-component vector of uint)
+0:38          textureLod (temp 4-component vector of uint)
 0:38            Construct combined texture-sampler (temp usampler2D)
 0:38              'g_tTex2du4' (uniform utexture2D)
 0:38              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -285,7 +285,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of float)
 0:40          'txval30' (temp 4-component vector of float)
-0:40          textureLod (global 4-component vector of float)
+0:40          textureLod (temp 4-component vector of float)
 0:40            Construct combined texture-sampler (temp sampler3D)
 0:40              'g_tTex3df4' (uniform texture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -298,7 +298,7 @@
 0:41      Sequence
 0:41        move second child to first child (temp 4-component vector of int)
 0:41          'txval31' (temp 4-component vector of int)
-0:41          textureLod (global 4-component vector of int)
+0:41          textureLod (temp 4-component vector of int)
 0:41            Construct combined texture-sampler (temp isampler3D)
 0:41              'g_tTex3di4' (uniform itexture3D)
 0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -311,7 +311,7 @@
 0:42      Sequence
 0:42        move second child to first child (temp 4-component vector of uint)
 0:42          'txval32' (temp 4-component vector of uint)
-0:42          textureLod (global 4-component vector of uint)
+0:42          textureLod (temp 4-component vector of uint)
 0:42            Construct combined texture-sampler (temp usampler3D)
 0:42              'g_tTex3du4' (uniform utexture3D)
 0:42              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -324,7 +324,7 @@
 0:44      Sequence
 0:44        move second child to first child (temp 4-component vector of float)
 0:44          'txval40' (temp 4-component vector of float)
-0:44          textureLod (global 4-component vector of float)
+0:44          textureLod (temp 4-component vector of float)
 0:44            Construct combined texture-sampler (temp samplerCube)
 0:44              'g_tTexcdf4' (uniform textureCube)
 0:44              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -337,7 +337,7 @@
 0:45      Sequence
 0:45        move second child to first child (temp 4-component vector of int)
 0:45          'txval41' (temp 4-component vector of int)
-0:45          textureLod (global 4-component vector of int)
+0:45          textureLod (temp 4-component vector of int)
 0:45            Construct combined texture-sampler (temp isamplerCube)
 0:45              'g_tTexcdi4' (uniform itextureCube)
 0:45              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -350,7 +350,7 @@
 0:46      Sequence
 0:46        move second child to first child (temp 4-component vector of uint)
 0:46          'txval42' (temp 4-component vector of uint)
-0:46          textureLod (global 4-component vector of uint)
+0:46          textureLod (temp 4-component vector of uint)
 0:46            Construct combined texture-sampler (temp usamplerCube)
 0:46              'g_tTexcdu4' (uniform utextureCube)
 0:46              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
index c18fa89..0438299 100644
--- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out
@@ -7,7 +7,7 @@
 0:30      Sequence
 0:30        move second child to first child (temp 4-component vector of float)
 0:30          'txval10' (temp 4-component vector of float)
-0:30          textureLod (global 4-component vector of float)
+0:30          textureLod (temp 4-component vector of float)
 0:30            Construct combined texture-sampler (temp sampler1D)
 0:30              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:30              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -18,7 +18,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of int)
 0:31          'txval11' (temp 4-component vector of int)
-0:31          textureLod (global 4-component vector of int)
+0:31          textureLod (temp 4-component vector of int)
 0:31            Construct combined texture-sampler (temp isampler1D)
 0:31              'g_tTex1di4' (uniform itexture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -29,7 +29,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of uint)
 0:32          'txval12' (temp 4-component vector of uint)
-0:32          textureLod (global 4-component vector of uint)
+0:32          textureLod (temp 4-component vector of uint)
 0:32            Construct combined texture-sampler (temp usampler1D)
 0:32              'g_tTex1du4' (uniform utexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -40,7 +40,7 @@
 0:34      Sequence
 0:34        move second child to first child (temp 4-component vector of float)
 0:34          'txval20' (temp 4-component vector of float)
-0:34          textureLod (global 4-component vector of float)
+0:34          textureLod (temp 4-component vector of float)
 0:34            Construct combined texture-sampler (temp sampler2D)
 0:34              'g_tTex2df4' (uniform texture2D)
 0:34              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -52,7 +52,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of int)
 0:35          'txval21' (temp 4-component vector of int)
-0:35          textureLod (global 4-component vector of int)
+0:35          textureLod (temp 4-component vector of int)
 0:35            Construct combined texture-sampler (temp isampler2D)
 0:35              'g_tTex2di4' (uniform itexture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -64,7 +64,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of uint)
 0:36          'txval22' (temp 4-component vector of uint)
-0:36          textureLod (global 4-component vector of uint)
+0:36          textureLod (temp 4-component vector of uint)
 0:36            Construct combined texture-sampler (temp usampler2D)
 0:36              'g_tTex2du4' (uniform utexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -76,7 +76,7 @@
 0:38      Sequence
 0:38        move second child to first child (temp 4-component vector of float)
 0:38          'txval30' (temp 4-component vector of float)
-0:38          textureLod (global 4-component vector of float)
+0:38          textureLod (temp 4-component vector of float)
 0:38            Construct combined texture-sampler (temp sampler3D)
 0:38              'g_tTex3df4' (uniform texture3D)
 0:38              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -89,7 +89,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of int)
 0:39          'txval31' (temp 4-component vector of int)
-0:39          textureLod (global 4-component vector of int)
+0:39          textureLod (temp 4-component vector of int)
 0:39            Construct combined texture-sampler (temp isampler3D)
 0:39              'g_tTex3di4' (uniform itexture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -102,7 +102,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of uint)
 0:40          'txval32' (temp 4-component vector of uint)
-0:40          textureLod (global 4-component vector of uint)
+0:40          textureLod (temp 4-component vector of uint)
 0:40            Construct combined texture-sampler (temp usampler3D)
 0:40              'g_tTex3du4' (uniform utexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -115,7 +115,7 @@
 0:42      Sequence
 0:42        move second child to first child (temp 4-component vector of float)
 0:42          'txval40' (temp 4-component vector of float)
-0:42          textureLod (global 4-component vector of float)
+0:42          textureLod (temp 4-component vector of float)
 0:42            Construct combined texture-sampler (temp samplerCube)
 0:42              'g_tTexcdf4' (uniform textureCube)
 0:42              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -128,7 +128,7 @@
 0:43      Sequence
 0:43        move second child to first child (temp 4-component vector of int)
 0:43          'txval41' (temp 4-component vector of int)
-0:43          textureLod (global 4-component vector of int)
+0:43          textureLod (temp 4-component vector of int)
 0:43            Construct combined texture-sampler (temp isamplerCube)
 0:43              'g_tTexcdi4' (uniform itextureCube)
 0:43              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -141,7 +141,7 @@
 0:44      Sequence
 0:44        move second child to first child (temp 4-component vector of uint)
 0:44          'txval42' (temp 4-component vector of uint)
-0:44          textureLod (global 4-component vector of uint)
+0:44          textureLod (temp 4-component vector of uint)
 0:44            Construct combined texture-sampler (temp usamplerCube)
 0:44              'g_tTexcdu4' (uniform utextureCube)
 0:44              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -199,7 +199,7 @@
 0:30      Sequence
 0:30        move second child to first child (temp 4-component vector of float)
 0:30          'txval10' (temp 4-component vector of float)
-0:30          textureLod (global 4-component vector of float)
+0:30          textureLod (temp 4-component vector of float)
 0:30            Construct combined texture-sampler (temp sampler1D)
 0:30              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:30              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -210,7 +210,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of int)
 0:31          'txval11' (temp 4-component vector of int)
-0:31          textureLod (global 4-component vector of int)
+0:31          textureLod (temp 4-component vector of int)
 0:31            Construct combined texture-sampler (temp isampler1D)
 0:31              'g_tTex1di4' (uniform itexture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -221,7 +221,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of uint)
 0:32          'txval12' (temp 4-component vector of uint)
-0:32          textureLod (global 4-component vector of uint)
+0:32          textureLod (temp 4-component vector of uint)
 0:32            Construct combined texture-sampler (temp usampler1D)
 0:32              'g_tTex1du4' (uniform utexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -232,7 +232,7 @@
 0:34      Sequence
 0:34        move second child to first child (temp 4-component vector of float)
 0:34          'txval20' (temp 4-component vector of float)
-0:34          textureLod (global 4-component vector of float)
+0:34          textureLod (temp 4-component vector of float)
 0:34            Construct combined texture-sampler (temp sampler2D)
 0:34              'g_tTex2df4' (uniform texture2D)
 0:34              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -244,7 +244,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of int)
 0:35          'txval21' (temp 4-component vector of int)
-0:35          textureLod (global 4-component vector of int)
+0:35          textureLod (temp 4-component vector of int)
 0:35            Construct combined texture-sampler (temp isampler2D)
 0:35              'g_tTex2di4' (uniform itexture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -256,7 +256,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of uint)
 0:36          'txval22' (temp 4-component vector of uint)
-0:36          textureLod (global 4-component vector of uint)
+0:36          textureLod (temp 4-component vector of uint)
 0:36            Construct combined texture-sampler (temp usampler2D)
 0:36              'g_tTex2du4' (uniform utexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -268,7 +268,7 @@
 0:38      Sequence
 0:38        move second child to first child (temp 4-component vector of float)
 0:38          'txval30' (temp 4-component vector of float)
-0:38          textureLod (global 4-component vector of float)
+0:38          textureLod (temp 4-component vector of float)
 0:38            Construct combined texture-sampler (temp sampler3D)
 0:38              'g_tTex3df4' (uniform texture3D)
 0:38              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -281,7 +281,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of int)
 0:39          'txval31' (temp 4-component vector of int)
-0:39          textureLod (global 4-component vector of int)
+0:39          textureLod (temp 4-component vector of int)
 0:39            Construct combined texture-sampler (temp isampler3D)
 0:39              'g_tTex3di4' (uniform itexture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -294,7 +294,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of uint)
 0:40          'txval32' (temp 4-component vector of uint)
-0:40          textureLod (global 4-component vector of uint)
+0:40          textureLod (temp 4-component vector of uint)
 0:40            Construct combined texture-sampler (temp usampler3D)
 0:40              'g_tTex3du4' (uniform utexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -307,7 +307,7 @@
 0:42      Sequence
 0:42        move second child to first child (temp 4-component vector of float)
 0:42          'txval40' (temp 4-component vector of float)
-0:42          textureLod (global 4-component vector of float)
+0:42          textureLod (temp 4-component vector of float)
 0:42            Construct combined texture-sampler (temp samplerCube)
 0:42              'g_tTexcdf4' (uniform textureCube)
 0:42              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -320,7 +320,7 @@
 0:43      Sequence
 0:43        move second child to first child (temp 4-component vector of int)
 0:43          'txval41' (temp 4-component vector of int)
-0:43          textureLod (global 4-component vector of int)
+0:43          textureLod (temp 4-component vector of int)
 0:43            Construct combined texture-sampler (temp isamplerCube)
 0:43              'g_tTexcdi4' (uniform itextureCube)
 0:43              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -333,7 +333,7 @@
 0:44      Sequence
 0:44        move second child to first child (temp 4-component vector of uint)
 0:44          'txval42' (temp 4-component vector of uint)
-0:44          textureLod (global 4-component vector of uint)
+0:44          textureLod (temp 4-component vector of uint)
 0:44            Construct combined texture-sampler (temp usamplerCube)
 0:44              'g_tTexcdu4' (uniform utextureCube)
 0:44              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
index 4d81649..0f0f968 100644
--- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out
@@ -8,7 +8,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval10' (temp 4-component vector of float)
-0:31          textureLodOffset (global 4-component vector of float)
+0:31          textureLodOffset (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler1D)
 0:31              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -21,7 +21,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval11' (temp 4-component vector of int)
-0:32          textureLodOffset (global 4-component vector of int)
+0:32          textureLodOffset (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler1D)
 0:32              'g_tTex1di4' (uniform itexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -34,7 +34,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval12' (temp 4-component vector of uint)
-0:33          textureLodOffset (global 4-component vector of uint)
+0:33          textureLodOffset (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler1D)
 0:33              'g_tTex1du4' (uniform utexture1D)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -47,7 +47,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval20' (temp 4-component vector of float)
-0:35          textureLodOffset (global 4-component vector of float)
+0:35          textureLodOffset (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp sampler2D)
 0:35              'g_tTex2df4' (uniform texture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -62,7 +62,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval21' (temp 4-component vector of int)
-0:36          textureLodOffset (global 4-component vector of int)
+0:36          textureLodOffset (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isampler2D)
 0:36              'g_tTex2di4' (uniform itexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -77,7 +77,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval22' (temp 4-component vector of uint)
-0:37          textureLodOffset (global 4-component vector of uint)
+0:37          textureLodOffset (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usampler2D)
 0:37              'g_tTex2du4' (uniform utexture2D)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -92,7 +92,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of float)
 0:39          'txval30' (temp 4-component vector of float)
-0:39          textureLodOffset (global 4-component vector of float)
+0:39          textureLodOffset (temp 4-component vector of float)
 0:39            Construct combined texture-sampler (temp sampler3D)
 0:39              'g_tTex3df4' (uniform texture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -109,7 +109,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of int)
 0:40          'txval31' (temp 4-component vector of int)
-0:40          textureLodOffset (global 4-component vector of int)
+0:40          textureLodOffset (temp 4-component vector of int)
 0:40            Construct combined texture-sampler (temp isampler3D)
 0:40              'g_tTex3di4' (uniform itexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -126,7 +126,7 @@
 0:41      Sequence
 0:41        move second child to first child (temp 4-component vector of uint)
 0:41          'txval32' (temp 4-component vector of uint)
-0:41          textureLodOffset (global 4-component vector of uint)
+0:41          textureLodOffset (temp 4-component vector of uint)
 0:41            Construct combined texture-sampler (temp usampler3D)
 0:41              'g_tTex3du4' (uniform utexture3D)
 0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -203,7 +203,7 @@
 0:31      Sequence
 0:31        move second child to first child (temp 4-component vector of float)
 0:31          'txval10' (temp 4-component vector of float)
-0:31          textureLodOffset (global 4-component vector of float)
+0:31          textureLodOffset (temp 4-component vector of float)
 0:31            Construct combined texture-sampler (temp sampler1D)
 0:31              'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:31              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -216,7 +216,7 @@
 0:32      Sequence
 0:32        move second child to first child (temp 4-component vector of int)
 0:32          'txval11' (temp 4-component vector of int)
-0:32          textureLodOffset (global 4-component vector of int)
+0:32          textureLodOffset (temp 4-component vector of int)
 0:32            Construct combined texture-sampler (temp isampler1D)
 0:32              'g_tTex1di4' (uniform itexture1D)
 0:32              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -229,7 +229,7 @@
 0:33      Sequence
 0:33        move second child to first child (temp 4-component vector of uint)
 0:33          'txval12' (temp 4-component vector of uint)
-0:33          textureLodOffset (global 4-component vector of uint)
+0:33          textureLodOffset (temp 4-component vector of uint)
 0:33            Construct combined texture-sampler (temp usampler1D)
 0:33              'g_tTex1du4' (uniform utexture1D)
 0:33              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -242,7 +242,7 @@
 0:35      Sequence
 0:35        move second child to first child (temp 4-component vector of float)
 0:35          'txval20' (temp 4-component vector of float)
-0:35          textureLodOffset (global 4-component vector of float)
+0:35          textureLodOffset (temp 4-component vector of float)
 0:35            Construct combined texture-sampler (temp sampler2D)
 0:35              'g_tTex2df4' (uniform texture2D)
 0:35              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -257,7 +257,7 @@
 0:36      Sequence
 0:36        move second child to first child (temp 4-component vector of int)
 0:36          'txval21' (temp 4-component vector of int)
-0:36          textureLodOffset (global 4-component vector of int)
+0:36          textureLodOffset (temp 4-component vector of int)
 0:36            Construct combined texture-sampler (temp isampler2D)
 0:36              'g_tTex2di4' (uniform itexture2D)
 0:36              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -272,7 +272,7 @@
 0:37      Sequence
 0:37        move second child to first child (temp 4-component vector of uint)
 0:37          'txval22' (temp 4-component vector of uint)
-0:37          textureLodOffset (global 4-component vector of uint)
+0:37          textureLodOffset (temp 4-component vector of uint)
 0:37            Construct combined texture-sampler (temp usampler2D)
 0:37              'g_tTex2du4' (uniform utexture2D)
 0:37              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -287,7 +287,7 @@
 0:39      Sequence
 0:39        move second child to first child (temp 4-component vector of float)
 0:39          'txval30' (temp 4-component vector of float)
-0:39          textureLodOffset (global 4-component vector of float)
+0:39          textureLodOffset (temp 4-component vector of float)
 0:39            Construct combined texture-sampler (temp sampler3D)
 0:39              'g_tTex3df4' (uniform texture3D)
 0:39              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -304,7 +304,7 @@
 0:40      Sequence
 0:40        move second child to first child (temp 4-component vector of int)
 0:40          'txval31' (temp 4-component vector of int)
-0:40          textureLodOffset (global 4-component vector of int)
+0:40          textureLodOffset (temp 4-component vector of int)
 0:40            Construct combined texture-sampler (temp isampler3D)
 0:40              'g_tTex3di4' (uniform itexture3D)
 0:40              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -321,7 +321,7 @@
 0:41      Sequence
 0:41        move second child to first child (temp 4-component vector of uint)
 0:41          'txval32' (temp 4-component vector of uint)
-0:41          textureLodOffset (global 4-component vector of uint)
+0:41          textureLodOffset (temp 4-component vector of uint)
 0:41            Construct combined texture-sampler (temp usampler3D)
 0:41              'g_tTex3du4' (uniform utexture3D)
 0:41              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
index ef3dcf1..8eb74cd 100644
--- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
+++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out
@@ -8,7 +8,7 @@
 0:23      Sequence
 0:23        move second child to first child (temp 4-component vector of float)
 0:23          'txval10' (temp 4-component vector of float)
-0:23          textureLodOffset (global 4-component vector of float)
+0:23          textureLodOffset (temp 4-component vector of float)
 0:23            Construct combined texture-sampler (temp sampler1DArray)
 0:23              'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
 0:23              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -22,7 +22,7 @@
 0:24      Sequence
 0:24        move second child to first child (temp 4-component vector of int)
 0:24          'txval11' (temp 4-component vector of int)
-0:24          textureLodOffset (global 4-component vector of int)
+0:24          textureLodOffset (temp 4-component vector of int)
 0:24            Construct combined texture-sampler (temp isampler1DArray)
 0:24              'g_tTex1di4' (uniform itexture1DArray)
 0:24              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -36,7 +36,7 @@
 0:25      Sequence
 0:25        move second child to first child (temp 4-component vector of uint)
 0:25          'txval12' (temp 4-component vector of uint)
-0:25          textureLodOffset (global 4-component vector of uint)
+0:25          textureLodOffset (temp 4-component vector of uint)
 0:25            Construct combined texture-sampler (temp usampler1DArray)
 0:25              'g_tTex1du4' (uniform utexture1DArray)
 0:25              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -50,7 +50,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval20' (temp 4-component vector of float)
-0:27          textureLodOffset (global 4-component vector of float)
+0:27          textureLodOffset (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler2DArray)
 0:27              'g_tTex2df4' (uniform texture2DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -66,7 +66,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval21' (temp 4-component vector of int)
-0:28          textureLodOffset (global 4-component vector of int)
+0:28          textureLodOffset (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler2DArray)
 0:28              'g_tTex2di4' (uniform itexture2DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -82,7 +82,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval22' (temp 4-component vector of uint)
-0:29          textureLodOffset (global 4-component vector of uint)
+0:29          textureLodOffset (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler2DArray)
 0:29              'g_tTex2du4' (uniform utexture2DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -152,7 +152,7 @@
 0:23      Sequence
 0:23        move second child to first child (temp 4-component vector of float)
 0:23          'txval10' (temp 4-component vector of float)
-0:23          textureLodOffset (global 4-component vector of float)
+0:23          textureLodOffset (temp 4-component vector of float)
 0:23            Construct combined texture-sampler (temp sampler1DArray)
 0:23              'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray)
 0:23              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -166,7 +166,7 @@
 0:24      Sequence
 0:24        move second child to first child (temp 4-component vector of int)
 0:24          'txval11' (temp 4-component vector of int)
-0:24          textureLodOffset (global 4-component vector of int)
+0:24          textureLodOffset (temp 4-component vector of int)
 0:24            Construct combined texture-sampler (temp isampler1DArray)
 0:24              'g_tTex1di4' (uniform itexture1DArray)
 0:24              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -180,7 +180,7 @@
 0:25      Sequence
 0:25        move second child to first child (temp 4-component vector of uint)
 0:25          'txval12' (temp 4-component vector of uint)
-0:25          textureLodOffset (global 4-component vector of uint)
+0:25          textureLodOffset (temp 4-component vector of uint)
 0:25            Construct combined texture-sampler (temp usampler1DArray)
 0:25              'g_tTex1du4' (uniform utexture1DArray)
 0:25              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -194,7 +194,7 @@
 0:27      Sequence
 0:27        move second child to first child (temp 4-component vector of float)
 0:27          'txval20' (temp 4-component vector of float)
-0:27          textureLodOffset (global 4-component vector of float)
+0:27          textureLodOffset (temp 4-component vector of float)
 0:27            Construct combined texture-sampler (temp sampler2DArray)
 0:27              'g_tTex2df4' (uniform texture2DArray)
 0:27              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -210,7 +210,7 @@
 0:28      Sequence
 0:28        move second child to first child (temp 4-component vector of int)
 0:28          'txval21' (temp 4-component vector of int)
-0:28          textureLodOffset (global 4-component vector of int)
+0:28          textureLodOffset (temp 4-component vector of int)
 0:28            Construct combined texture-sampler (temp isampler2DArray)
 0:28              'g_tTex2di4' (uniform itexture2DArray)
 0:28              'g_sSamp' (layout(binding=0 ) uniform sampler)
@@ -226,7 +226,7 @@
 0:29      Sequence
 0:29        move second child to first child (temp 4-component vector of uint)
 0:29          'txval22' (temp 4-component vector of uint)
-0:29          textureLodOffset (global 4-component vector of uint)
+0:29          textureLodOffset (temp 4-component vector of uint)
 0:29            Construct combined texture-sampler (temp usampler2DArray)
 0:29              'g_tTex2du4' (uniform utexture2DArray)
 0:29              'g_sSamp' (layout(binding=0 ) uniform sampler)
diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out
index 04117d7..5fef959 100755
--- a/Test/baseResults/hlsl.struct.frag.out
+++ b/Test/baseResults/hlsl.struct.frag.out
@@ -16,10 +16,7 @@
 0:39        's3' (temp structure{temp 3-component vector of bool b3})
 0:40      move second child to first child (temp 4-component vector of float)
 0:40        i: direct index for structure (temp 4-component vector of float)
-0:40          s2: direct index for structure (layout(offset=48 ) uniform structure{temp 4-component vector of float i})
-0:40            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
-0:40            Constant:
-0:40              1 (const uint)
+0:40          's2' (global structure{temp 4-component vector of float i})
 0:40          Constant:
 0:40            0 (const int)
 0:?         'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
@@ -29,8 +26,9 @@
 0:42          'input' (layout(location=0 ) in 4-component vector of float)
 0:42        Branch: Return
 0:?   Linker Objects
+0:?     's2' (global structure{temp 4-component vector of float i})
 0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:?     'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
 0:?     'input' (layout(location=0 ) in 4-component vector of float)
 0:?     'a' (layout(location=1 ) smooth in 4-component vector of float)
 0:?     'b' (layout(location=2 ) flat in bool)
@@ -58,10 +56,7 @@
 0:39        's3' (temp structure{temp 3-component vector of bool b3})
 0:40      move second child to first child (temp 4-component vector of float)
 0:40        i: direct index for structure (temp 4-component vector of float)
-0:40          s2: direct index for structure (layout(offset=48 ) uniform structure{temp 4-component vector of float i})
-0:40            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
-0:40            Constant:
-0:40              1 (const uint)
+0:40          's2' (global structure{temp 4-component vector of float i})
 0:40          Constant:
 0:40            0 (const int)
 0:?         'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
@@ -71,8 +66,9 @@
 0:42          'input' (layout(location=0 ) in 4-component vector of float)
 0:42        Branch: Return
 0:?   Linker Objects
+0:?     's2' (global structure{temp 4-component vector of float i})
 0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
-0:?     'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(offset=48 ) uniform structure{temp 4-component vector of float i} s2, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
 0:?     'input' (layout(location=0 ) in 4-component vector of float)
 0:?     'a' (layout(location=1 ) smooth in 4-component vector of float)
 0:?     'b' (layout(location=2 ) flat in bool)
@@ -90,28 +86,28 @@
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "PixelShaderFunction" 29 34 35 38 40 42 45 46 47 48
+                              EntryPoint Fragment 4  "PixelShaderFunction" 25 30 31 38 40 42 45 46 47 48
                               ExecutionMode 4 OriginUpperLeft
                               Name 4  "PixelShaderFunction"
                               Name 8  "FS"
                               MemberName 8(FS) 0  "b3"
                               Name 10  "s3"
-                              Name 20  "myS"
-                              MemberName 20(myS) 0  "b"
-                              MemberName 20(myS) 1  "c"
-                              MemberName 20(myS) 2  "a"
-                              MemberName 20(myS) 3  "d"
-                              Name 21  ""
-                              MemberName 21 0  "i"
-                              Name 22  "$Global"
-                              MemberName 22($Global) 0  "s1"
-                              MemberName 22($Global) 1  "s2"
-                              MemberName 22($Global) 2  "ff5"
-                              MemberName 22($Global) 3  "ff6"
-                              Name 24  ""
-                              Name 29  "ff4"
-                              Name 34  "@entryPointOutput"
-                              Name 35  "input"
+                              Name 19  ""
+                              MemberName 19 0  "i"
+                              Name 21  "s2"
+                              Name 25  "ff4"
+                              Name 30  "@entryPointOutput"
+                              Name 31  "input"
+                              Name 34  "myS"
+                              MemberName 34(myS) 0  "b"
+                              MemberName 34(myS) 1  "c"
+                              MemberName 34(myS) 2  "a"
+                              MemberName 34(myS) 3  "d"
+                              Name 35  "$Global"
+                              MemberName 35($Global) 0  "s1"
+                              MemberName 35($Global) 1  "ff5"
+                              MemberName 35($Global) 2  "ff6"
+                              Name 37  ""
                               Name 38  "a"
                               Name 40  "b"
                               Name 42  "c"
@@ -119,22 +115,13 @@
                               Name 46  "ff1"
                               Name 47  "ff2"
                               Name 48  "ff3"
-                              MemberDecorate 20(myS) 0 Offset 0
-                              MemberDecorate 20(myS) 1 Offset 4
-                              MemberDecorate 20(myS) 2 Offset 16
-                              MemberDecorate 20(myS) 3 Offset 32
-                              MemberDecorate 21 0 Offset 0
-                              MemberDecorate 22($Global) 0 Offset 0
-                              MemberDecorate 22($Global) 1 Offset 48
-                              MemberDecorate 22($Global) 2 Offset 1620
-                              MemberDecorate 22($Global) 3 Offset 1636
-                              Decorate 22($Global) Block
-                              Decorate 24 DescriptorSet 0
-                              Decorate 29(ff4) Offset 4
-                              Decorate 29(ff4) Location 7
-                              Decorate 29(ff4) Binding 0
-                              Decorate 34(@entryPointOutput) Location 0
-                              Decorate 35(input) Location 0
+                              Decorate 25(ff4) Offset 4
+                              Decorate 25(ff4) Location 7
+                              Decorate 25(ff4) Binding 0
+                              Decorate 30(@entryPointOutput) Location 0
+                              Decorate 31(input) Location 0
+                              Decorate 35($Global) Block
+                              Decorate 37 DescriptorSet 0
                               Decorate 38(a) Location 1
                               Decorate 40(b) Flat
                               Decorate 40(b) Location 2
@@ -155,29 +142,29 @@
                7:             TypeVector 6(bool) 3
            8(FS):             TypeStruct 7(bvec3)
                9:             TypePointer Function 8(FS)
-              17:             TypeInt 32 0
-              18:             TypeFloat 32
-              19:             TypeVector 18(float) 4
-         20(myS):             TypeStruct 17(int) 17(int) 19(fvec4) 19(fvec4)
-              21:             TypeStruct 19(fvec4)
-     22($Global):             TypeStruct 20(myS) 21(struct) 18(float) 18(float)
-              23:             TypePointer Uniform 22($Global)
-              24:     23(ptr) Variable Uniform
-              25:             TypeInt 32 1
-              26:     25(int) Constant 1
-              27:     25(int) Constant 0
-              28:             TypePointer Input 19(fvec4)
-         29(ff4):     28(ptr) Variable Input
-              31:             TypePointer Uniform 19(fvec4)
-              33:             TypePointer Output 19(fvec4)
-34(@entryPointOutput):     33(ptr) Variable Output
-       35(input):     28(ptr) Variable Input
-           38(a):     28(ptr) Variable Input
+              17:             TypeFloat 32
+              18:             TypeVector 17(float) 4
+              19:             TypeStruct 18(fvec4)
+              20:             TypePointer Private 19(struct)
+          21(s2):     20(ptr) Variable Private
+              22:             TypeInt 32 1
+              23:     22(int) Constant 0
+              24:             TypePointer Input 18(fvec4)
+         25(ff4):     24(ptr) Variable Input
+              27:             TypePointer Private 18(fvec4)
+              29:             TypePointer Output 18(fvec4)
+30(@entryPointOutput):     29(ptr) Variable Output
+       31(input):     24(ptr) Variable Input
+         34(myS):             TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4)
+     35($Global):             TypeStruct 34(myS) 17(float) 17(float)
+              36:             TypePointer Uniform 35($Global)
+              37:     36(ptr) Variable Uniform
+           38(a):     24(ptr) Variable Input
               39:             TypePointer Input 6(bool)
            40(b):     39(ptr) Variable Input
-              41:             TypePointer Input 18(float)
+              41:             TypePointer Input 17(float)
            42(c):     41(ptr) Variable Input
-              43:             TypeVector 18(float) 2
+              43:             TypeVector 17(float) 2
               44:             TypePointer Input 43(fvec2)
            45(d):     44(ptr) Variable Input
          46(ff1):     39(ptr) Variable Input
@@ -192,10 +179,10 @@
               14:    7(bvec3) CompositeExtract 12 0
               15:    7(bvec3) LogicalEqual 13 14
               16:     6(bool) All 15
-              30:   19(fvec4) Load 29(ff4)
-              32:     31(ptr) AccessChain 24 26 27
-                              Store 32 30
-              36:   19(fvec4) Load 35(input)
-                              Store 34(@entryPointOutput) 36
+              26:   18(fvec4) Load 25(ff4)
+              28:     27(ptr) AccessChain 21(s2) 23
+                              Store 28 26
+              32:   18(fvec4) Load 31(input)
+                              Store 30(@entryPointOutput) 32
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/hlsl.tx.bracket.frag.out b/Test/baseResults/hlsl.tx.bracket.frag.out
new file mode 100644
index 0000000..0769cde
--- /dev/null
+++ b/Test/baseResults/hlsl.tx.bracket.frag.out
@@ -0,0 +1,702 @@
+hlsl.tx.bracket.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:38  Function Definition: Fn1(vi4; (temp 4-component vector of int)
+0:38    Function Parameters: 
+0:38      'x' (in 4-component vector of int)
+0:?     Sequence
+0:38      Branch: Return with expression
+0:38        'x' (in 4-component vector of int)
+0:39  Function Definition: Fn1(vu4; (temp 4-component vector of uint)
+0:39    Function Parameters: 
+0:39      'x' (in 4-component vector of uint)
+0:?     Sequence
+0:39      Branch: Return with expression
+0:39        'x' (in 4-component vector of uint)
+0:40  Function Definition: Fn1(vf4; (temp 4-component vector of float)
+0:40    Function Parameters: 
+0:40      'x' (in 4-component vector of float)
+0:?     Sequence
+0:40      Branch: Return with expression
+0:40        'x' (in 4-component vector of float)
+0:42  Function Definition: SomeValue( (temp 4-component vector of float)
+0:42    Function Parameters: 
+0:?     Sequence
+0:42      Branch: Return with expression
+0:42        Convert int to float (temp 4-component vector of float)
+0:42          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:42            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:42            Constant:
+0:42              3 (const uint)
+0:45  Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:45    Function Parameters: 
+0:?     Sequence
+0:49      textureFetch (temp 4-component vector of float)
+0:49        'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:49        c1: direct index for structure (layout(offset=0 ) uniform int)
+0:49          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:49          Constant:
+0:49            0 (const uint)
+0:49        Constant:
+0:49          0 (const int)
+0:51      Sequence
+0:51        move second child to first child (temp 4-component vector of float)
+0:51          'r00' (temp 4-component vector of float)
+0:51          textureFetch (temp 4-component vector of float)
+0:51            'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:51            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:51              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:51              Constant:
+0:51                0 (const uint)
+0:51            Constant:
+0:51              0 (const int)
+0:52      Sequence
+0:52        move second child to first child (temp 4-component vector of int)
+0:52          'r01' (temp 4-component vector of int)
+0:52          textureFetch (temp 4-component vector of int)
+0:52            'g_tTex1di4' (uniform itexture1D)
+0:52            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:52              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:52              Constant:
+0:52                0 (const uint)
+0:52            Constant:
+0:52              0 (const int)
+0:53      Sequence
+0:53        move second child to first child (temp 4-component vector of uint)
+0:53          'r02' (temp 4-component vector of uint)
+0:53          textureFetch (temp 4-component vector of uint)
+0:53            'g_tTex1du4' (uniform utexture1D)
+0:53            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:53              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:53              Constant:
+0:53                0 (const uint)
+0:53            Constant:
+0:53              0 (const int)
+0:56      Sequence
+0:56        move second child to first child (temp 4-component vector of float)
+0:56          'r10' (temp 4-component vector of float)
+0:56          textureFetch (temp 4-component vector of float)
+0:56            'g_tTex2df4' (uniform texture2D)
+0:56            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:56              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:56              Constant:
+0:56                1 (const uint)
+0:56            Constant:
+0:56              0 (const int)
+0:57      Sequence
+0:57        move second child to first child (temp 4-component vector of int)
+0:57          'r11' (temp 4-component vector of int)
+0:57          textureFetch (temp 4-component vector of int)
+0:57            'g_tTex2di4' (uniform itexture2D)
+0:57            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:57              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:57              Constant:
+0:57                1 (const uint)
+0:57            Constant:
+0:57              0 (const int)
+0:58      Sequence
+0:58        move second child to first child (temp 4-component vector of uint)
+0:58          'r12' (temp 4-component vector of uint)
+0:58          textureFetch (temp 4-component vector of uint)
+0:58            'g_tTex2du4' (uniform utexture2D)
+0:58            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:58              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:58              Constant:
+0:58                1 (const uint)
+0:58            Constant:
+0:58              0 (const int)
+0:61      Sequence
+0:61        move second child to first child (temp 4-component vector of float)
+0:61          'r20' (temp 4-component vector of float)
+0:61          textureFetch (temp 4-component vector of float)
+0:61            'g_tTex3df4' (uniform texture3D)
+0:61            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:61              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:61              Constant:
+0:61                2 (const uint)
+0:61            Constant:
+0:61              0 (const int)
+0:62      Sequence
+0:62        move second child to first child (temp 4-component vector of int)
+0:62          'r21' (temp 4-component vector of int)
+0:62          textureFetch (temp 4-component vector of int)
+0:62            'g_tTex3di4' (uniform itexture3D)
+0:62            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:62              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:62              Constant:
+0:62                2 (const uint)
+0:62            Constant:
+0:62              0 (const int)
+0:63      Sequence
+0:63        move second child to first child (temp 4-component vector of uint)
+0:63          'r22' (temp 4-component vector of uint)
+0:63          textureFetch (temp 4-component vector of uint)
+0:63            'g_tTex3du4' (uniform utexture3D)
+0:63            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:63              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:63              Constant:
+0:63                2 (const uint)
+0:63            Constant:
+0:63              0 (const int)
+0:66      Function Call: Fn1(vf4; (temp 4-component vector of float)
+0:66        textureFetch (temp 4-component vector of float)
+0:66          'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:66          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:66            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:66            Constant:
+0:66              0 (const uint)
+0:66          Constant:
+0:66            0 (const int)
+0:67      Function Call: Fn1(vi4; (temp 4-component vector of int)
+0:67        textureFetch (temp 4-component vector of int)
+0:67          'g_tTex1di4' (uniform itexture1D)
+0:67          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:67            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:67            Constant:
+0:67              0 (const uint)
+0:67          Constant:
+0:67            0 (const int)
+0:68      Function Call: Fn1(vu4; (temp 4-component vector of uint)
+0:68        textureFetch (temp 4-component vector of uint)
+0:68          'g_tTex1du4' (uniform utexture1D)
+0:68          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:68            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:68            Constant:
+0:68              0 (const uint)
+0:68          Constant:
+0:68            0 (const int)
+0:70      move second child to first child (temp 4-component vector of float)
+0:70        Color: direct index for structure (temp 4-component vector of float)
+0:70          'psout' (temp structure{temp 4-component vector of float Color})
+0:70          Constant:
+0:70            0 (const int)
+0:70        Constant:
+0:70          1.000000
+0:70          1.000000
+0:70          1.000000
+0:70          1.000000
+0:72      Sequence
+0:72        Sequence
+0:72          move second child to first child (temp 4-component vector of float)
+0:?             'Color' (layout(location=0 ) out 4-component vector of float)
+0:72            Color: direct index for structure (temp 4-component vector of float)
+0:72              'psout' (temp structure{temp 4-component vector of float Color})
+0:72              Constant:
+0:72                0 (const int)
+0:72        Branch: Return
+0:?   Linker Objects
+0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:?     'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:?     'g_tTex1di4' (uniform itexture1D)
+0:?     'g_tTex1du4' (uniform utexture1D)
+0:?     'g_tTex2df4' (uniform texture2D)
+0:?     'g_tTex2di4' (uniform itexture2D)
+0:?     'g_tTex2du4' (uniform utexture2D)
+0:?     'g_tTex3df4' (uniform texture3D)
+0:?     'g_tTex3di4' (uniform itexture3D)
+0:?     'g_tTex3du4' (uniform utexture3D)
+0:?     'g_tTex1df4a' (uniform texture1DArray)
+0:?     'g_tTex1di4a' (uniform itexture1DArray)
+0:?     'g_tTex1du4a' (uniform utexture1DArray)
+0:?     'g_tTex2df4a' (uniform texture2DArray)
+0:?     'g_tTex2di4a' (uniform itexture2DArray)
+0:?     'g_tTex2du4a' (uniform utexture2DArray)
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:?     'Color' (layout(location=0 ) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:38  Function Definition: Fn1(vi4; (temp 4-component vector of int)
+0:38    Function Parameters: 
+0:38      'x' (in 4-component vector of int)
+0:?     Sequence
+0:38      Branch: Return with expression
+0:38        'x' (in 4-component vector of int)
+0:39  Function Definition: Fn1(vu4; (temp 4-component vector of uint)
+0:39    Function Parameters: 
+0:39      'x' (in 4-component vector of uint)
+0:?     Sequence
+0:39      Branch: Return with expression
+0:39        'x' (in 4-component vector of uint)
+0:40  Function Definition: Fn1(vf4; (temp 4-component vector of float)
+0:40    Function Parameters: 
+0:40      'x' (in 4-component vector of float)
+0:?     Sequence
+0:40      Branch: Return with expression
+0:40        'x' (in 4-component vector of float)
+0:42  Function Definition: SomeValue( (temp 4-component vector of float)
+0:42    Function Parameters: 
+0:?     Sequence
+0:42      Branch: Return with expression
+0:42        Convert int to float (temp 4-component vector of float)
+0:42          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:42            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:42            Constant:
+0:42              3 (const uint)
+0:45  Function Definition: main( (temp structure{temp 4-component vector of float Color})
+0:45    Function Parameters: 
+0:?     Sequence
+0:49      textureFetch (temp 4-component vector of float)
+0:49        'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:49        c1: direct index for structure (layout(offset=0 ) uniform int)
+0:49          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:49          Constant:
+0:49            0 (const uint)
+0:49        Constant:
+0:49          0 (const int)
+0:51      Sequence
+0:51        move second child to first child (temp 4-component vector of float)
+0:51          'r00' (temp 4-component vector of float)
+0:51          textureFetch (temp 4-component vector of float)
+0:51            'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:51            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:51              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:51              Constant:
+0:51                0 (const uint)
+0:51            Constant:
+0:51              0 (const int)
+0:52      Sequence
+0:52        move second child to first child (temp 4-component vector of int)
+0:52          'r01' (temp 4-component vector of int)
+0:52          textureFetch (temp 4-component vector of int)
+0:52            'g_tTex1di4' (uniform itexture1D)
+0:52            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:52              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:52              Constant:
+0:52                0 (const uint)
+0:52            Constant:
+0:52              0 (const int)
+0:53      Sequence
+0:53        move second child to first child (temp 4-component vector of uint)
+0:53          'r02' (temp 4-component vector of uint)
+0:53          textureFetch (temp 4-component vector of uint)
+0:53            'g_tTex1du4' (uniform utexture1D)
+0:53            c1: direct index for structure (layout(offset=0 ) uniform int)
+0:53              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:53              Constant:
+0:53                0 (const uint)
+0:53            Constant:
+0:53              0 (const int)
+0:56      Sequence
+0:56        move second child to first child (temp 4-component vector of float)
+0:56          'r10' (temp 4-component vector of float)
+0:56          textureFetch (temp 4-component vector of float)
+0:56            'g_tTex2df4' (uniform texture2D)
+0:56            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:56              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:56              Constant:
+0:56                1 (const uint)
+0:56            Constant:
+0:56              0 (const int)
+0:57      Sequence
+0:57        move second child to first child (temp 4-component vector of int)
+0:57          'r11' (temp 4-component vector of int)
+0:57          textureFetch (temp 4-component vector of int)
+0:57            'g_tTex2di4' (uniform itexture2D)
+0:57            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:57              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:57              Constant:
+0:57                1 (const uint)
+0:57            Constant:
+0:57              0 (const int)
+0:58      Sequence
+0:58        move second child to first child (temp 4-component vector of uint)
+0:58          'r12' (temp 4-component vector of uint)
+0:58          textureFetch (temp 4-component vector of uint)
+0:58            'g_tTex2du4' (uniform utexture2D)
+0:58            c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:58              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:58              Constant:
+0:58                1 (const uint)
+0:58            Constant:
+0:58              0 (const int)
+0:61      Sequence
+0:61        move second child to first child (temp 4-component vector of float)
+0:61          'r20' (temp 4-component vector of float)
+0:61          textureFetch (temp 4-component vector of float)
+0:61            'g_tTex3df4' (uniform texture3D)
+0:61            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:61              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:61              Constant:
+0:61                2 (const uint)
+0:61            Constant:
+0:61              0 (const int)
+0:62      Sequence
+0:62        move second child to first child (temp 4-component vector of int)
+0:62          'r21' (temp 4-component vector of int)
+0:62          textureFetch (temp 4-component vector of int)
+0:62            'g_tTex3di4' (uniform itexture3D)
+0:62            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:62              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:62              Constant:
+0:62                2 (const uint)
+0:62            Constant:
+0:62              0 (const int)
+0:63      Sequence
+0:63        move second child to first child (temp 4-component vector of uint)
+0:63          'r22' (temp 4-component vector of uint)
+0:63          textureFetch (temp 4-component vector of uint)
+0:63            'g_tTex3du4' (uniform utexture3D)
+0:63            c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:63              'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:63              Constant:
+0:63                2 (const uint)
+0:63            Constant:
+0:63              0 (const int)
+0:66      Function Call: Fn1(vf4; (temp 4-component vector of float)
+0:66        textureFetch (temp 4-component vector of float)
+0:66          'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:66          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:66            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:66            Constant:
+0:66              0 (const uint)
+0:66          Constant:
+0:66            0 (const int)
+0:67      Function Call: Fn1(vi4; (temp 4-component vector of int)
+0:67        textureFetch (temp 4-component vector of int)
+0:67          'g_tTex1di4' (uniform itexture1D)
+0:67          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:67            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:67            Constant:
+0:67              0 (const uint)
+0:67          Constant:
+0:67            0 (const int)
+0:68      Function Call: Fn1(vu4; (temp 4-component vector of uint)
+0:68        textureFetch (temp 4-component vector of uint)
+0:68          'g_tTex1du4' (uniform utexture1D)
+0:68          c1: direct index for structure (layout(offset=0 ) uniform int)
+0:68            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:68            Constant:
+0:68              0 (const uint)
+0:68          Constant:
+0:68            0 (const int)
+0:70      move second child to first child (temp 4-component vector of float)
+0:70        Color: direct index for structure (temp 4-component vector of float)
+0:70          'psout' (temp structure{temp 4-component vector of float Color})
+0:70          Constant:
+0:70            0 (const int)
+0:70        Constant:
+0:70          1.000000
+0:70          1.000000
+0:70          1.000000
+0:70          1.000000
+0:72      Sequence
+0:72        Sequence
+0:72          move second child to first child (temp 4-component vector of float)
+0:?             'Color' (layout(location=0 ) out 4-component vector of float)
+0:72            Color: direct index for structure (temp 4-component vector of float)
+0:72              'psout' (temp structure{temp 4-component vector of float Color})
+0:72              Constant:
+0:72                0 (const int)
+0:72        Branch: Return
+0:?   Linker Objects
+0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
+0:?     'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
+0:?     'g_tTex1di4' (uniform itexture1D)
+0:?     'g_tTex1du4' (uniform utexture1D)
+0:?     'g_tTex2df4' (uniform texture2D)
+0:?     'g_tTex2di4' (uniform itexture2D)
+0:?     'g_tTex2du4' (uniform utexture2D)
+0:?     'g_tTex3df4' (uniform texture3D)
+0:?     'g_tTex3di4' (uniform itexture3D)
+0:?     'g_tTex3du4' (uniform utexture3D)
+0:?     'g_tTex1df4a' (uniform texture1DArray)
+0:?     'g_tTex1di4a' (uniform itexture1DArray)
+0:?     'g_tTex1du4a' (uniform utexture1DArray)
+0:?     'g_tTex2df4a' (uniform texture2DArray)
+0:?     'g_tTex2di4a' (uniform itexture2DArray)
+0:?     'g_tTex2du4a' (uniform utexture2DArray)
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:?     'Color' (layout(location=0 ) out 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 183
+
+                              Capability Shader
+                              Capability Sampled1D
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 158
+                              ExecutionMode 4 OriginUpperLeft
+                              Name 4  "main"
+                              Name 11  "Fn1(vi4;"
+                              Name 10  "x"
+                              Name 18  "Fn1(vu4;"
+                              Name 17  "x"
+                              Name 25  "Fn1(vf4;"
+                              Name 24  "x"
+                              Name 28  "SomeValue("
+                              Name 41  "$Global"
+                              MemberName 41($Global) 0  "c1"
+                              MemberName 41($Global) 1  "c2"
+                              MemberName 41($Global) 2  "c3"
+                              MemberName 41($Global) 3  "c4"
+                              MemberName 41($Global) 4  "o1"
+                              MemberName 41($Global) 5  "o2"
+                              MemberName 41($Global) 6  "o3"
+                              MemberName 41($Global) 7  "o4"
+                              Name 43  ""
+                              Name 53  "g_tTex1df4"
+                              Name 60  "r00"
+                              Name 65  "r01"
+                              Name 68  "g_tTex1di4"
+                              Name 73  "r02"
+                              Name 76  "g_tTex1du4"
+                              Name 81  "r10"
+                              Name 84  "g_tTex2df4"
+                              Name 91  "r11"
+                              Name 94  "g_tTex2di4"
+                              Name 99  "r12"
+                              Name 102  "g_tTex2du4"
+                              Name 107  "r20"
+                              Name 110  "g_tTex3df4"
+                              Name 117  "r21"
+                              Name 120  "g_tTex3di4"
+                              Name 125  "r22"
+                              Name 128  "g_tTex3du4"
+                              Name 137  "param"
+                              Name 143  "param"
+                              Name 149  "param"
+                              Name 151  "PS_OUTPUT"
+                              MemberName 151(PS_OUTPUT) 0  "Color"
+                              Name 153  "psout"
+                              Name 158  "Color"
+                              Name 164  "g_sSamp"
+                              Name 167  "g_tTex1df4a"
+                              Name 170  "g_tTex1di4a"
+                              Name 173  "g_tTex1du4a"
+                              Name 176  "g_tTex2df4a"
+                              Name 179  "g_tTex2di4a"
+                              Name 182  "g_tTex2du4a"
+                              MemberDecorate 41($Global) 0 Offset 0
+                              MemberDecorate 41($Global) 1 Offset 8
+                              MemberDecorate 41($Global) 2 Offset 16
+                              MemberDecorate 41($Global) 3 Offset 32
+                              MemberDecorate 41($Global) 4 Offset 48
+                              MemberDecorate 41($Global) 5 Offset 56
+                              MemberDecorate 41($Global) 6 Offset 64
+                              MemberDecorate 41($Global) 7 Offset 80
+                              Decorate 41($Global) Block
+                              Decorate 43 DescriptorSet 0
+                              Decorate 53(g_tTex1df4) DescriptorSet 0
+                              Decorate 53(g_tTex1df4) Binding 0
+                              Decorate 68(g_tTex1di4) DescriptorSet 0
+                              Decorate 76(g_tTex1du4) DescriptorSet 0
+                              Decorate 84(g_tTex2df4) DescriptorSet 0
+                              Decorate 94(g_tTex2di4) DescriptorSet 0
+                              Decorate 102(g_tTex2du4) DescriptorSet 0
+                              Decorate 110(g_tTex3df4) DescriptorSet 0
+                              Decorate 120(g_tTex3di4) DescriptorSet 0
+                              Decorate 128(g_tTex3du4) DescriptorSet 0
+                              Decorate 158(Color) Location 0
+                              Decorate 164(g_sSamp) DescriptorSet 0
+                              Decorate 164(g_sSamp) Binding 0
+                              Decorate 167(g_tTex1df4a) DescriptorSet 0
+                              Decorate 170(g_tTex1di4a) DescriptorSet 0
+                              Decorate 173(g_tTex1du4a) DescriptorSet 0
+                              Decorate 176(g_tTex2df4a) DescriptorSet 0
+                              Decorate 179(g_tTex2di4a) DescriptorSet 0
+                              Decorate 182(g_tTex2du4a) DescriptorSet 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeInt 32 1
+               7:             TypeVector 6(int) 4
+               8:             TypePointer Function 7(ivec4)
+               9:             TypeFunction 7(ivec4) 8(ptr)
+              13:             TypeInt 32 0
+              14:             TypeVector 13(int) 4
+              15:             TypePointer Function 14(ivec4)
+              16:             TypeFunction 14(ivec4) 15(ptr)
+              20:             TypeFloat 32
+              21:             TypeVector 20(float) 4
+              22:             TypePointer Function 21(fvec4)
+              23:             TypeFunction 21(fvec4) 22(ptr)
+              27:             TypeFunction 21(fvec4)
+              39:             TypeVector 6(int) 2
+              40:             TypeVector 6(int) 3
+     41($Global):             TypeStruct 6(int) 39(ivec2) 40(ivec3) 7(ivec4) 6(int) 39(ivec2) 40(ivec3) 7(ivec4)
+              42:             TypePointer Uniform 41($Global)
+              43:     42(ptr) Variable Uniform
+              44:      6(int) Constant 3
+              45:             TypePointer Uniform 7(ivec4)
+              51:             TypeImage 20(float) 1D sampled format:Unknown
+              52:             TypePointer UniformConstant 51
+  53(g_tTex1df4):     52(ptr) Variable UniformConstant
+              55:      6(int) Constant 0
+              56:             TypePointer Uniform 6(int)
+              66:             TypeImage 6(int) 1D sampled format:Unknown
+              67:             TypePointer UniformConstant 66
+  68(g_tTex1di4):     67(ptr) Variable UniformConstant
+              74:             TypeImage 13(int) 1D sampled format:Unknown
+              75:             TypePointer UniformConstant 74
+  76(g_tTex1du4):     75(ptr) Variable UniformConstant
+              82:             TypeImage 20(float) 2D sampled format:Unknown
+              83:             TypePointer UniformConstant 82
+  84(g_tTex2df4):     83(ptr) Variable UniformConstant
+              86:      6(int) Constant 1
+              87:             TypePointer Uniform 39(ivec2)
+              92:             TypeImage 6(int) 2D sampled format:Unknown
+              93:             TypePointer UniformConstant 92
+  94(g_tTex2di4):     93(ptr) Variable UniformConstant
+             100:             TypeImage 13(int) 2D sampled format:Unknown
+             101:             TypePointer UniformConstant 100
+ 102(g_tTex2du4):    101(ptr) Variable UniformConstant
+             108:             TypeImage 20(float) 3D sampled format:Unknown
+             109:             TypePointer UniformConstant 108
+ 110(g_tTex3df4):    109(ptr) Variable UniformConstant
+             112:      6(int) Constant 2
+             113:             TypePointer Uniform 40(ivec3)
+             118:             TypeImage 6(int) 3D sampled format:Unknown
+             119:             TypePointer UniformConstant 118
+ 120(g_tTex3di4):    119(ptr) Variable UniformConstant
+             126:             TypeImage 13(int) 3D sampled format:Unknown
+             127:             TypePointer UniformConstant 126
+ 128(g_tTex3du4):    127(ptr) Variable UniformConstant
+  151(PS_OUTPUT):             TypeStruct 21(fvec4)
+             152:             TypePointer Function 151(PS_OUTPUT)
+             154:   20(float) Constant 1065353216
+             155:   21(fvec4) ConstantComposite 154 154 154 154
+             157:             TypePointer Output 21(fvec4)
+      158(Color):    157(ptr) Variable Output
+             162:             TypeSampler
+             163:             TypePointer UniformConstant 162
+    164(g_sSamp):    163(ptr) Variable UniformConstant
+             165:             TypeImage 20(float) 1D array sampled format:Unknown
+             166:             TypePointer UniformConstant 165
+167(g_tTex1df4a):    166(ptr) Variable UniformConstant
+             168:             TypeImage 6(int) 1D array sampled format:Unknown
+             169:             TypePointer UniformConstant 168
+170(g_tTex1di4a):    169(ptr) Variable UniformConstant
+             171:             TypeImage 13(int) 1D array sampled format:Unknown
+             172:             TypePointer UniformConstant 171
+173(g_tTex1du4a):    172(ptr) Variable UniformConstant
+             174:             TypeImage 20(float) 2D array sampled format:Unknown
+             175:             TypePointer UniformConstant 174
+176(g_tTex2df4a):    175(ptr) Variable UniformConstant
+             177:             TypeImage 6(int) 2D array sampled format:Unknown
+             178:             TypePointer UniformConstant 177
+179(g_tTex2di4a):    178(ptr) Variable UniformConstant
+             180:             TypeImage 13(int) 2D array sampled format:Unknown
+             181:             TypePointer UniformConstant 180
+182(g_tTex2du4a):    181(ptr) Variable UniformConstant
+         4(main):           2 Function None 3
+               5:             Label
+         60(r00):     22(ptr) Variable Function
+         65(r01):      8(ptr) Variable Function
+         73(r02):     15(ptr) Variable Function
+         81(r10):     22(ptr) Variable Function
+         91(r11):      8(ptr) Variable Function
+         99(r12):     15(ptr) Variable Function
+        107(r20):     22(ptr) Variable Function
+        117(r21):      8(ptr) Variable Function
+        125(r22):     15(ptr) Variable Function
+      137(param):     22(ptr) Variable Function
+      143(param):      8(ptr) Variable Function
+      149(param):     15(ptr) Variable Function
+      153(psout):    152(ptr) Variable Function
+              54:          51 Load 53(g_tTex1df4)
+              57:     56(ptr) AccessChain 43 55
+              58:      6(int) Load 57
+              59:   21(fvec4) ImageFetch 54 58 Lod 55
+              61:          51 Load 53(g_tTex1df4)
+              62:     56(ptr) AccessChain 43 55
+              63:      6(int) Load 62
+              64:   21(fvec4) ImageFetch 61 63 Lod 55
+                              Store 60(r00) 64
+              69:          66 Load 68(g_tTex1di4)
+              70:     56(ptr) AccessChain 43 55
+              71:      6(int) Load 70
+              72:    7(ivec4) ImageFetch 69 71 Lod 55
+                              Store 65(r01) 72
+              77:          74 Load 76(g_tTex1du4)
+              78:     56(ptr) AccessChain 43 55
+              79:      6(int) Load 78
+              80:   14(ivec4) ImageFetch 77 79 Lod 55
+                              Store 73(r02) 80
+              85:          82 Load 84(g_tTex2df4)
+              88:     87(ptr) AccessChain 43 86
+              89:   39(ivec2) Load 88
+              90:   21(fvec4) ImageFetch 85 89 Lod 55
+                              Store 81(r10) 90
+              95:          92 Load 94(g_tTex2di4)
+              96:     87(ptr) AccessChain 43 86
+              97:   39(ivec2) Load 96
+              98:    7(ivec4) ImageFetch 95 97 Lod 55
+                              Store 91(r11) 98
+             103:         100 Load 102(g_tTex2du4)
+             104:     87(ptr) AccessChain 43 86
+             105:   39(ivec2) Load 104
+             106:   14(ivec4) ImageFetch 103 105 Lod 55
+                              Store 99(r12) 106
+             111:         108 Load 110(g_tTex3df4)
+             114:    113(ptr) AccessChain 43 112
+             115:   40(ivec3) Load 114
+             116:   21(fvec4) ImageFetch 111 115 Lod 55
+                              Store 107(r20) 116
+             121:         118 Load 120(g_tTex3di4)
+             122:    113(ptr) AccessChain 43 112
+             123:   40(ivec3) Load 122
+             124:    7(ivec4) ImageFetch 121 123 Lod 55
+                              Store 117(r21) 124
+             129:         126 Load 128(g_tTex3du4)
+             130:    113(ptr) AccessChain 43 112
+             131:   40(ivec3) Load 130
+             132:   14(ivec4) ImageFetch 129 131 Lod 55
+                              Store 125(r22) 132
+             133:          51 Load 53(g_tTex1df4)
+             134:     56(ptr) AccessChain 43 55
+             135:      6(int) Load 134
+             136:   21(fvec4) ImageFetch 133 135 Lod 55
+                              Store 137(param) 136
+             138:   21(fvec4) FunctionCall 25(Fn1(vf4;) 137(param)
+             139:          66 Load 68(g_tTex1di4)
+             140:     56(ptr) AccessChain 43 55
+             141:      6(int) Load 140
+             142:    7(ivec4) ImageFetch 139 141 Lod 55
+                              Store 143(param) 142
+             144:    7(ivec4) FunctionCall 11(Fn1(vi4;) 143(param)
+             145:          74 Load 76(g_tTex1du4)
+             146:     56(ptr) AccessChain 43 55
+             147:      6(int) Load 146
+             148:   14(ivec4) ImageFetch 145 147 Lod 55
+                              Store 149(param) 148
+             150:   14(ivec4) FunctionCall 18(Fn1(vu4;) 149(param)
+             156:     22(ptr) AccessChain 153(psout) 55
+                              Store 156 155
+             159:     22(ptr) AccessChain 153(psout) 55
+             160:   21(fvec4) Load 159
+                              Store 158(Color) 160
+                              Return
+                              FunctionEnd
+    11(Fn1(vi4;):    7(ivec4) Function None 9
+           10(x):      8(ptr) FunctionParameter
+              12:             Label
+              30:    7(ivec4) Load 10(x)
+                              ReturnValue 30
+                              FunctionEnd
+    18(Fn1(vu4;):   14(ivec4) Function None 16
+           17(x):     15(ptr) FunctionParameter
+              19:             Label
+              33:   14(ivec4) Load 17(x)
+                              ReturnValue 33
+                              FunctionEnd
+    25(Fn1(vf4;):   21(fvec4) Function None 23
+           24(x):     22(ptr) FunctionParameter
+              26:             Label
+              36:   21(fvec4) Load 24(x)
+                              ReturnValue 36
+                              FunctionEnd
+  28(SomeValue():   21(fvec4) Function None 27
+              29:             Label
+              46:     45(ptr) AccessChain 43 44
+              47:    7(ivec4) Load 46
+              48:   21(fvec4) ConvertSToF 47
+                              ReturnValue 48
+                              FunctionEnd
diff --git a/Test/baseResults/spv.queryL.frag.out b/Test/baseResults/spv.queryL.frag.out
index 6d2b2b9..2236c66 100755
--- a/Test/baseResults/spv.queryL.frag.out
+++ b/Test/baseResults/spv.queryL.frag.out
@@ -7,7 +7,7 @@
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 237
+// Id's are bound by 224
 
                               Capability Shader
                               Capability SampledRect
@@ -24,48 +24,48 @@
                               Name 9  "lod"
                               Name 13  "samp1D"
                               Name 16  "pf"
-                              Name 24  "isamp2D"
-                              Name 26  "pf2"
-                              Name 36  "usamp3D"
-                              Name 40  "pf3"
-                              Name 49  "sampCube"
-                              Name 59  "isamp1DA"
-                              Name 69  "usamp2DA"
-                              Name 79  "isampCubeA"
-                              Name 89  "samp1Ds"
-                              Name 99  "samp2Ds"
-                              Name 109  "sampCubes"
-                              Name 119  "samp1DAs"
-                              Name 129  "samp2DAs"
-                              Name 139  "sampCubeAs"
-                              Name 147  "levels"
-                              Name 154  "usamp2D"
-                              Name 163  "isamp3D"
-                              Name 172  "isampCube"
-                              Name 186  "samp2DA"
-                              Name 195  "usampCubeA"
-                              Name 232  "sampBuf"
-                              Name 236  "sampRect"
+                              Name 23  "isamp2D"
+                              Name 25  "pf2"
+                              Name 34  "usamp3D"
+                              Name 38  "pf3"
+                              Name 46  "sampCube"
+                              Name 55  "isamp1DA"
+                              Name 64  "usamp2DA"
+                              Name 73  "isampCubeA"
+                              Name 82  "samp1Ds"
+                              Name 91  "samp2Ds"
+                              Name 100  "sampCubes"
+                              Name 109  "samp1DAs"
+                              Name 118  "samp2DAs"
+                              Name 127  "sampCubeAs"
+                              Name 134  "levels"
+                              Name 141  "usamp2D"
+                              Name 150  "isamp3D"
+                              Name 159  "isampCube"
+                              Name 173  "samp2DA"
+                              Name 182  "usampCubeA"
+                              Name 219  "sampBuf"
+                              Name 223  "sampRect"
                               Decorate 13(samp1D) DescriptorSet 0
-                              Decorate 24(isamp2D) DescriptorSet 0
-                              Decorate 36(usamp3D) DescriptorSet 0
-                              Decorate 49(sampCube) DescriptorSet 0
-                              Decorate 59(isamp1DA) DescriptorSet 0
-                              Decorate 69(usamp2DA) DescriptorSet 0
-                              Decorate 79(isampCubeA) DescriptorSet 0
-                              Decorate 89(samp1Ds) DescriptorSet 0
-                              Decorate 99(samp2Ds) DescriptorSet 0
-                              Decorate 109(sampCubes) DescriptorSet 0
-                              Decorate 119(samp1DAs) DescriptorSet 0
-                              Decorate 129(samp2DAs) DescriptorSet 0
-                              Decorate 139(sampCubeAs) DescriptorSet 0
-                              Decorate 154(usamp2D) DescriptorSet 0
-                              Decorate 163(isamp3D) DescriptorSet 0
-                              Decorate 172(isampCube) DescriptorSet 0
-                              Decorate 186(samp2DA) DescriptorSet 0
-                              Decorate 195(usampCubeA) DescriptorSet 0
-                              Decorate 232(sampBuf) DescriptorSet 0
-                              Decorate 236(sampRect) DescriptorSet 0
+                              Decorate 23(isamp2D) DescriptorSet 0
+                              Decorate 34(usamp3D) DescriptorSet 0
+                              Decorate 46(sampCube) DescriptorSet 0
+                              Decorate 55(isamp1DA) DescriptorSet 0
+                              Decorate 64(usamp2DA) DescriptorSet 0
+                              Decorate 73(isampCubeA) DescriptorSet 0
+                              Decorate 82(samp1Ds) DescriptorSet 0
+                              Decorate 91(samp2Ds) DescriptorSet 0
+                              Decorate 100(sampCubes) DescriptorSet 0
+                              Decorate 109(samp1DAs) DescriptorSet 0
+                              Decorate 118(samp2DAs) DescriptorSet 0
+                              Decorate 127(sampCubeAs) DescriptorSet 0
+                              Decorate 141(usamp2D) DescriptorSet 0
+                              Decorate 150(isamp3D) DescriptorSet 0
+                              Decorate 159(isampCube) DescriptorSet 0
+                              Decorate 173(samp2DA) DescriptorSet 0
+                              Decorate 182(usampCubeA) DescriptorSet 0
+                              Decorate 219(sampBuf) DescriptorSet 0
+                              Decorate 223(sampRect) DescriptorSet 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -76,256 +76,243 @@
               12:             TypePointer UniformConstant 11
       13(samp1D):     12(ptr) Variable UniformConstant
               15:             TypePointer Function 6(float)
-              20:             TypeInt 32 1
-              21:             TypeImage 20(int) 2D sampled format:Unknown
-              22:             TypeSampledImage 21
-              23:             TypePointer UniformConstant 22
-     24(isamp2D):     23(ptr) Variable UniformConstant
-              32:             TypeInt 32 0
-              33:             TypeImage 32(int) 3D sampled format:Unknown
-              34:             TypeSampledImage 33
-              35:             TypePointer UniformConstant 34
-     36(usamp3D):     35(ptr) Variable UniformConstant
-              38:             TypeVector 6(float) 3
-              39:             TypePointer Function 38(fvec3)
-              46:             TypeImage 6(float) Cube sampled format:Unknown
-              47:             TypeSampledImage 46
-              48:             TypePointer UniformConstant 47
-    49(sampCube):     48(ptr) Variable UniformConstant
-              56:             TypeImage 20(int) 1D array sampled format:Unknown
-              57:             TypeSampledImage 56
-              58:             TypePointer UniformConstant 57
-    59(isamp1DA):     58(ptr) Variable UniformConstant
-              66:             TypeImage 32(int) 2D array sampled format:Unknown
-              67:             TypeSampledImage 66
-              68:             TypePointer UniformConstant 67
-    69(usamp2DA):     68(ptr) Variable UniformConstant
-              76:             TypeImage 20(int) Cube array sampled format:Unknown
-              77:             TypeSampledImage 76
-              78:             TypePointer UniformConstant 77
-  79(isampCubeA):     78(ptr) Variable UniformConstant
-              86:             TypeImage 6(float) 1D depth sampled format:Unknown
-              87:             TypeSampledImage 86
-              88:             TypePointer UniformConstant 87
-     89(samp1Ds):     88(ptr) Variable UniformConstant
-              96:             TypeImage 6(float) 2D depth sampled format:Unknown
-              97:             TypeSampledImage 96
-              98:             TypePointer UniformConstant 97
-     99(samp2Ds):     98(ptr) Variable UniformConstant
-             106:             TypeImage 6(float) Cube depth sampled format:Unknown
+              19:             TypeInt 32 1
+              20:             TypeImage 19(int) 2D sampled format:Unknown
+              21:             TypeSampledImage 20
+              22:             TypePointer UniformConstant 21
+     23(isamp2D):     22(ptr) Variable UniformConstant
+              30:             TypeInt 32 0
+              31:             TypeImage 30(int) 3D sampled format:Unknown
+              32:             TypeSampledImage 31
+              33:             TypePointer UniformConstant 32
+     34(usamp3D):     33(ptr) Variable UniformConstant
+              36:             TypeVector 6(float) 3
+              37:             TypePointer Function 36(fvec3)
+              43:             TypeImage 6(float) Cube sampled format:Unknown
+              44:             TypeSampledImage 43
+              45:             TypePointer UniformConstant 44
+    46(sampCube):     45(ptr) Variable UniformConstant
+              52:             TypeImage 19(int) 1D array sampled format:Unknown
+              53:             TypeSampledImage 52
+              54:             TypePointer UniformConstant 53
+    55(isamp1DA):     54(ptr) Variable UniformConstant
+              61:             TypeImage 30(int) 2D array sampled format:Unknown
+              62:             TypeSampledImage 61
+              63:             TypePointer UniformConstant 62
+    64(usamp2DA):     63(ptr) Variable UniformConstant
+              70:             TypeImage 19(int) Cube array sampled format:Unknown
+              71:             TypeSampledImage 70
+              72:             TypePointer UniformConstant 71
+  73(isampCubeA):     72(ptr) Variable UniformConstant
+              79:             TypeImage 6(float) 1D depth sampled format:Unknown
+              80:             TypeSampledImage 79
+              81:             TypePointer UniformConstant 80
+     82(samp1Ds):     81(ptr) Variable UniformConstant
+              88:             TypeImage 6(float) 2D depth sampled format:Unknown
+              89:             TypeSampledImage 88
+              90:             TypePointer UniformConstant 89
+     91(samp2Ds):     90(ptr) Variable UniformConstant
+              97:             TypeImage 6(float) Cube depth sampled format:Unknown
+              98:             TypeSampledImage 97
+              99:             TypePointer UniformConstant 98
+  100(sampCubes):     99(ptr) Variable UniformConstant
+             106:             TypeImage 6(float) 1D depth array sampled format:Unknown
              107:             TypeSampledImage 106
              108:             TypePointer UniformConstant 107
-  109(sampCubes):    108(ptr) Variable UniformConstant
-             116:             TypeImage 6(float) 1D depth array sampled format:Unknown
-             117:             TypeSampledImage 116
-             118:             TypePointer UniformConstant 117
-   119(samp1DAs):    118(ptr) Variable UniformConstant
-             126:             TypeImage 6(float) 2D depth array sampled format:Unknown
-             127:             TypeSampledImage 126
-             128:             TypePointer UniformConstant 127
-   129(samp2DAs):    128(ptr) Variable UniformConstant
-             136:             TypeImage 6(float) Cube depth array sampled format:Unknown
-             137:             TypeSampledImage 136
-             138:             TypePointer UniformConstant 137
- 139(sampCubeAs):    138(ptr) Variable UniformConstant
-             146:             TypePointer Function 20(int)
-             151:             TypeImage 32(int) 2D sampled format:Unknown
-             152:             TypeSampledImage 151
-             153:             TypePointer UniformConstant 152
-    154(usamp2D):    153(ptr) Variable UniformConstant
-             160:             TypeImage 20(int) 3D sampled format:Unknown
-             161:             TypeSampledImage 160
-             162:             TypePointer UniformConstant 161
-    163(isamp3D):    162(ptr) Variable UniformConstant
-             169:             TypeImage 20(int) Cube sampled format:Unknown
-             170:             TypeSampledImage 169
-             171:             TypePointer UniformConstant 170
-  172(isampCube):    171(ptr) Variable UniformConstant
-             183:             TypeImage 6(float) 2D array sampled format:Unknown
-             184:             TypeSampledImage 183
-             185:             TypePointer UniformConstant 184
-    186(samp2DA):    185(ptr) Variable UniformConstant
-             192:             TypeImage 32(int) Cube array sampled format:Unknown
-             193:             TypeSampledImage 192
-             194:             TypePointer UniformConstant 193
- 195(usampCubeA):    194(ptr) Variable UniformConstant
-             229:             TypeImage 6(float) Buffer sampled format:Unknown
-             230:             TypeSampledImage 229
-             231:             TypePointer UniformConstant 230
-    232(sampBuf):    231(ptr) Variable UniformConstant
-             233:             TypeImage 6(float) Rect sampled format:Unknown
-             234:             TypeSampledImage 233
-             235:             TypePointer UniformConstant 234
-   236(sampRect):    235(ptr) Variable UniformConstant
+   109(samp1DAs):    108(ptr) Variable UniformConstant
+             115:             TypeImage 6(float) 2D depth array sampled format:Unknown
+             116:             TypeSampledImage 115
+             117:             TypePointer UniformConstant 116
+   118(samp2DAs):    117(ptr) Variable UniformConstant
+             124:             TypeImage 6(float) Cube depth array sampled format:Unknown
+             125:             TypeSampledImage 124
+             126:             TypePointer UniformConstant 125
+ 127(sampCubeAs):    126(ptr) Variable UniformConstant
+             133:             TypePointer Function 19(int)
+             138:             TypeImage 30(int) 2D sampled format:Unknown
+             139:             TypeSampledImage 138
+             140:             TypePointer UniformConstant 139
+    141(usamp2D):    140(ptr) Variable UniformConstant
+             147:             TypeImage 19(int) 3D sampled format:Unknown
+             148:             TypeSampledImage 147
+             149:             TypePointer UniformConstant 148
+    150(isamp3D):    149(ptr) Variable UniformConstant
+             156:             TypeImage 19(int) Cube sampled format:Unknown
+             157:             TypeSampledImage 156
+             158:             TypePointer UniformConstant 157
+  159(isampCube):    158(ptr) Variable UniformConstant
+             170:             TypeImage 6(float) 2D array sampled format:Unknown
+             171:             TypeSampledImage 170
+             172:             TypePointer UniformConstant 171
+    173(samp2DA):    172(ptr) Variable UniformConstant
+             179:             TypeImage 30(int) Cube array sampled format:Unknown
+             180:             TypeSampledImage 179
+             181:             TypePointer UniformConstant 180
+ 182(usampCubeA):    181(ptr) Variable UniformConstant
+             216:             TypeImage 6(float) Buffer sampled format:Unknown
+             217:             TypeSampledImage 216
+             218:             TypePointer UniformConstant 217
+    219(sampBuf):    218(ptr) Variable UniformConstant
+             220:             TypeImage 6(float) Rect sampled format:Unknown
+             221:             TypeSampledImage 220
+             222:             TypePointer UniformConstant 221
+   223(sampRect):    222(ptr) Variable UniformConstant
          4(main):           2 Function None 3
                5:             Label
           9(lod):      8(ptr) Variable Function
           16(pf):     15(ptr) Variable Function
-         26(pf2):      8(ptr) Variable Function
-         40(pf3):     39(ptr) Variable Function
-     147(levels):    146(ptr) Variable Function
+         25(pf2):      8(ptr) Variable Function
+         38(pf3):     37(ptr) Variable Function
+     134(levels):    133(ptr) Variable Function
               14:          11 Load 13(samp1D)
               17:    6(float) Load 16(pf)
-              18:          10 Image 14
-              19:    7(fvec2) ImageQueryLod 18 17
-                              Store 9(lod) 19
-              25:          22 Load 24(isamp2D)
-              27:    7(fvec2) Load 26(pf2)
-              28:          21 Image 25
-              29:    7(fvec2) ImageQueryLod 28 27
-              30:    7(fvec2) Load 9(lod)
-              31:    7(fvec2) FAdd 30 29
-                              Store 9(lod) 31
-              37:          34 Load 36(usamp3D)
-              41:   38(fvec3) Load 40(pf3)
-              42:          33 Image 37
-              43:    7(fvec2) ImageQueryLod 42 41
-              44:    7(fvec2) Load 9(lod)
-              45:    7(fvec2) FAdd 44 43
-                              Store 9(lod) 45
-              50:          47 Load 49(sampCube)
-              51:   38(fvec3) Load 40(pf3)
-              52:          46 Image 50
-              53:    7(fvec2) ImageQueryLod 52 51
-              54:    7(fvec2) Load 9(lod)
-              55:    7(fvec2) FAdd 54 53
-                              Store 9(lod) 55
-              60:          57 Load 59(isamp1DA)
-              61:    6(float) Load 16(pf)
-              62:          56 Image 60
-              63:    7(fvec2) ImageQueryLod 62 61
-              64:    7(fvec2) Load 9(lod)
-              65:    7(fvec2) FAdd 64 63
-                              Store 9(lod) 65
-              70:          67 Load 69(usamp2DA)
-              71:    7(fvec2) Load 26(pf2)
-              72:          66 Image 70
-              73:    7(fvec2) ImageQueryLod 72 71
-              74:    7(fvec2) Load 9(lod)
-              75:    7(fvec2) FAdd 74 73
-                              Store 9(lod) 75
-              80:          77 Load 79(isampCubeA)
-              81:   38(fvec3) Load 40(pf3)
-              82:          76 Image 80
-              83:    7(fvec2) ImageQueryLod 82 81
-              84:    7(fvec2) Load 9(lod)
-              85:    7(fvec2) FAdd 84 83
-                              Store 9(lod) 85
-              90:          87 Load 89(samp1Ds)
-              91:    6(float) Load 16(pf)
-              92:          86 Image 90
-              93:    7(fvec2) ImageQueryLod 92 91
-              94:    7(fvec2) Load 9(lod)
-              95:    7(fvec2) FAdd 94 93
-                              Store 9(lod) 95
-             100:          97 Load 99(samp2Ds)
-             101:    7(fvec2) Load 26(pf2)
-             102:          96 Image 100
-             103:    7(fvec2) ImageQueryLod 102 101
+              18:    7(fvec2) ImageQueryLod 14 17
+                              Store 9(lod) 18
+              24:          21 Load 23(isamp2D)
+              26:    7(fvec2) Load 25(pf2)
+              27:    7(fvec2) ImageQueryLod 24 26
+              28:    7(fvec2) Load 9(lod)
+              29:    7(fvec2) FAdd 28 27
+                              Store 9(lod) 29
+              35:          32 Load 34(usamp3D)
+              39:   36(fvec3) Load 38(pf3)
+              40:    7(fvec2) ImageQueryLod 35 39
+              41:    7(fvec2) Load 9(lod)
+              42:    7(fvec2) FAdd 41 40
+                              Store 9(lod) 42
+              47:          44 Load 46(sampCube)
+              48:   36(fvec3) Load 38(pf3)
+              49:    7(fvec2) ImageQueryLod 47 48
+              50:    7(fvec2) Load 9(lod)
+              51:    7(fvec2) FAdd 50 49
+                              Store 9(lod) 51
+              56:          53 Load 55(isamp1DA)
+              57:    6(float) Load 16(pf)
+              58:    7(fvec2) ImageQueryLod 56 57
+              59:    7(fvec2) Load 9(lod)
+              60:    7(fvec2) FAdd 59 58
+                              Store 9(lod) 60
+              65:          62 Load 64(usamp2DA)
+              66:    7(fvec2) Load 25(pf2)
+              67:    7(fvec2) ImageQueryLod 65 66
+              68:    7(fvec2) Load 9(lod)
+              69:    7(fvec2) FAdd 68 67
+                              Store 9(lod) 69
+              74:          71 Load 73(isampCubeA)
+              75:   36(fvec3) Load 38(pf3)
+              76:    7(fvec2) ImageQueryLod 74 75
+              77:    7(fvec2) Load 9(lod)
+              78:    7(fvec2) FAdd 77 76
+                              Store 9(lod) 78
+              83:          80 Load 82(samp1Ds)
+              84:    6(float) Load 16(pf)
+              85:    7(fvec2) ImageQueryLod 83 84
+              86:    7(fvec2) Load 9(lod)
+              87:    7(fvec2) FAdd 86 85
+                              Store 9(lod) 87
+              92:          89 Load 91(samp2Ds)
+              93:    7(fvec2) Load 25(pf2)
+              94:    7(fvec2) ImageQueryLod 92 93
+              95:    7(fvec2) Load 9(lod)
+              96:    7(fvec2) FAdd 95 94
+                              Store 9(lod) 96
+             101:          98 Load 100(sampCubes)
+             102:   36(fvec3) Load 38(pf3)
+             103:    7(fvec2) ImageQueryLod 101 102
              104:    7(fvec2) Load 9(lod)
              105:    7(fvec2) FAdd 104 103
                               Store 9(lod) 105
-             110:         107 Load 109(sampCubes)
-             111:   38(fvec3) Load 40(pf3)
-             112:         106 Image 110
-             113:    7(fvec2) ImageQueryLod 112 111
-             114:    7(fvec2) Load 9(lod)
-             115:    7(fvec2) FAdd 114 113
-                              Store 9(lod) 115
-             120:         117 Load 119(samp1DAs)
-             121:    6(float) Load 16(pf)
-             122:         116 Image 120
-             123:    7(fvec2) ImageQueryLod 122 121
-             124:    7(fvec2) Load 9(lod)
-             125:    7(fvec2) FAdd 124 123
-                              Store 9(lod) 125
-             130:         127 Load 129(samp2DAs)
-             131:    7(fvec2) Load 26(pf2)
-             132:         126 Image 130
-             133:    7(fvec2) ImageQueryLod 132 131
-             134:    7(fvec2) Load 9(lod)
-             135:    7(fvec2) FAdd 134 133
-                              Store 9(lod) 135
-             140:         137 Load 139(sampCubeAs)
-             141:   38(fvec3) Load 40(pf3)
-             142:         136 Image 140
-             143:    7(fvec2) ImageQueryLod 142 141
-             144:    7(fvec2) Load 9(lod)
-             145:    7(fvec2) FAdd 144 143
-                              Store 9(lod) 145
-             148:          11 Load 13(samp1D)
-             149:          10 Image 148
-             150:     20(int) ImageQueryLevels 149
-                              Store 147(levels) 150
-             155:         152 Load 154(usamp2D)
-             156:         151 Image 155
-             157:     20(int) ImageQueryLevels 156
-             158:     20(int) Load 147(levels)
-             159:     20(int) IAdd 158 157
-                              Store 147(levels) 159
-             164:         161 Load 163(isamp3D)
-             165:         160 Image 164
-             166:     20(int) ImageQueryLevels 165
-             167:     20(int) Load 147(levels)
-             168:     20(int) IAdd 167 166
-                              Store 147(levels) 168
-             173:         170 Load 172(isampCube)
-             174:         169 Image 173
-             175:     20(int) ImageQueryLevels 174
-             176:     20(int) Load 147(levels)
-             177:     20(int) IAdd 176 175
-                              Store 147(levels) 177
-             178:          57 Load 59(isamp1DA)
-             179:          56 Image 178
-             180:     20(int) ImageQueryLevels 179
-             181:     20(int) Load 147(levels)
-             182:     20(int) IAdd 181 180
-                              Store 147(levels) 182
-             187:         184 Load 186(samp2DA)
-             188:         183 Image 187
-             189:     20(int) ImageQueryLevels 188
-             190:     20(int) Load 147(levels)
-             191:     20(int) IAdd 190 189
-                              Store 147(levels) 191
-             196:         193 Load 195(usampCubeA)
-             197:         192 Image 196
-             198:     20(int) ImageQueryLevels 197
-             199:     20(int) Load 147(levels)
-             200:     20(int) IAdd 199 198
-                              Store 147(levels) 200
-             201:          87 Load 89(samp1Ds)
-             202:          86 Image 201
-             203:     20(int) ImageQueryLevels 202
-                              Store 147(levels) 203
-             204:          97 Load 99(samp2Ds)
-             205:          96 Image 204
-             206:     20(int) ImageQueryLevels 205
-             207:     20(int) Load 147(levels)
-             208:     20(int) IAdd 207 206
-                              Store 147(levels) 208
-             209:         107 Load 109(sampCubes)
-             210:         106 Image 209
-             211:     20(int) ImageQueryLevels 210
-             212:     20(int) Load 147(levels)
-             213:     20(int) IAdd 212 211
-                              Store 147(levels) 213
-             214:         117 Load 119(samp1DAs)
-             215:         116 Image 214
-             216:     20(int) ImageQueryLevels 215
-             217:     20(int) Load 147(levels)
-             218:     20(int) IAdd 217 216
-                              Store 147(levels) 218
-             219:         127 Load 129(samp2DAs)
-             220:         126 Image 219
-             221:     20(int) ImageQueryLevels 220
-             222:     20(int) Load 147(levels)
-             223:     20(int) IAdd 222 221
-                              Store 147(levels) 223
-             224:         137 Load 139(sampCubeAs)
-             225:         136 Image 224
-             226:     20(int) ImageQueryLevels 225
-             227:     20(int) Load 147(levels)
-             228:     20(int) IAdd 227 226
-                              Store 147(levels) 228
+             110:         107 Load 109(samp1DAs)
+             111:    6(float) Load 16(pf)
+             112:    7(fvec2) ImageQueryLod 110 111
+             113:    7(fvec2) Load 9(lod)
+             114:    7(fvec2) FAdd 113 112
+                              Store 9(lod) 114
+             119:         116 Load 118(samp2DAs)
+             120:    7(fvec2) Load 25(pf2)
+             121:    7(fvec2) ImageQueryLod 119 120
+             122:    7(fvec2) Load 9(lod)
+             123:    7(fvec2) FAdd 122 121
+                              Store 9(lod) 123
+             128:         125 Load 127(sampCubeAs)
+             129:   36(fvec3) Load 38(pf3)
+             130:    7(fvec2) ImageQueryLod 128 129
+             131:    7(fvec2) Load 9(lod)
+             132:    7(fvec2) FAdd 131 130
+                              Store 9(lod) 132
+             135:          11 Load 13(samp1D)
+             136:          10 Image 135
+             137:     19(int) ImageQueryLevels 136
+                              Store 134(levels) 137
+             142:         139 Load 141(usamp2D)
+             143:         138 Image 142
+             144:     19(int) ImageQueryLevels 143
+             145:     19(int) Load 134(levels)
+             146:     19(int) IAdd 145 144
+                              Store 134(levels) 146
+             151:         148 Load 150(isamp3D)
+             152:         147 Image 151
+             153:     19(int) ImageQueryLevels 152
+             154:     19(int) Load 134(levels)
+             155:     19(int) IAdd 154 153
+                              Store 134(levels) 155
+             160:         157 Load 159(isampCube)
+             161:         156 Image 160
+             162:     19(int) ImageQueryLevels 161
+             163:     19(int) Load 134(levels)
+             164:     19(int) IAdd 163 162
+                              Store 134(levels) 164
+             165:          53 Load 55(isamp1DA)
+             166:          52 Image 165
+             167:     19(int) ImageQueryLevels 166
+             168:     19(int) Load 134(levels)
+             169:     19(int) IAdd 168 167
+                              Store 134(levels) 169
+             174:         171 Load 173(samp2DA)
+             175:         170 Image 174
+             176:     19(int) ImageQueryLevels 175
+             177:     19(int) Load 134(levels)
+             178:     19(int) IAdd 177 176
+                              Store 134(levels) 178
+             183:         180 Load 182(usampCubeA)
+             184:         179 Image 183
+             185:     19(int) ImageQueryLevels 184
+             186:     19(int) Load 134(levels)
+             187:     19(int) IAdd 186 185
+                              Store 134(levels) 187
+             188:          80 Load 82(samp1Ds)
+             189:          79 Image 188
+             190:     19(int) ImageQueryLevels 189
+                              Store 134(levels) 190
+             191:          89 Load 91(samp2Ds)
+             192:          88 Image 191
+             193:     19(int) ImageQueryLevels 192
+             194:     19(int) Load 134(levels)
+             195:     19(int) IAdd 194 193
+                              Store 134(levels) 195
+             196:          98 Load 100(sampCubes)
+             197:          97 Image 196
+             198:     19(int) ImageQueryLevels 197
+             199:     19(int) Load 134(levels)
+             200:     19(int) IAdd 199 198
+                              Store 134(levels) 200
+             201:         107 Load 109(samp1DAs)
+             202:         106 Image 201
+             203:     19(int) ImageQueryLevels 202
+             204:     19(int) Load 134(levels)
+             205:     19(int) IAdd 204 203
+                              Store 134(levels) 205
+             206:         116 Load 118(samp2DAs)
+             207:         115 Image 206
+             208:     19(int) ImageQueryLevels 207
+             209:     19(int) Load 134(levels)
+             210:     19(int) IAdd 209 208
+                              Store 134(levels) 210
+             211:         125 Load 127(sampCubeAs)
+             212:         124 Image 211
+             213:     19(int) ImageQueryLevels 212
+             214:     19(int) Load 134(levels)
+             215:     19(int) IAdd 214 213
+                              Store 134(levels) 215
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.register.autoassign.rangetest.frag.out b/Test/baseResults/spv.register.autoassign.rangetest.frag.out
new file mode 100644
index 0000000..a521a13
--- /dev/null
+++ b/Test/baseResults/spv.register.autoassign.rangetest.frag.out
@@ -0,0 +1,12 @@
+spv.register.autoassign.rangetest.frag
+
+Linked fragment stage:
+
+INTERNAL ERROR: mapped binding out of range: g_tScene
+INTERNAL ERROR: mapped binding out of range: g_tSamp
+INTERNAL ERROR: mapped binding out of range: g_tScene
+INTERNAL ERROR: mapped binding out of range: g_tSamp
+INTERNAL ERROR: mapped binding out of range: g_tSamp
+INTERNAL ERROR: mapped binding out of range: g_tScene
+
+SPIR-V is not generated for failed compile or link
diff --git a/Test/hlsl.array.implicit-size.frag b/Test/hlsl.array.implicit-size.frag
index 29e2c1b..78a9283 100644
--- a/Test/hlsl.array.implicit-size.frag
+++ b/Test/hlsl.array.implicit-size.frag
@@ -1,11 +1,11 @@
 
-// implicit sized array
+// array size from initializer
 static float g_array [ ] = { 1, 2, 3, 4, 5 };
 
-// Unused implicit sized array
+// Unused: array size from initializer
 static float g_array_unused [ ] = { 1, 2, 3, 4, 5, 6, 7 };
 
-// Test implicit size arrayed structs
+// Test initializer sizing for arrayed structs
 static struct mystruct {
     int i;
     float f;
@@ -24,7 +24,7 @@
 
 void main(out PS_OUTPUT ps_output)
 {
-    // implicit sized local array
+    // local array sized from initializers
     float l_array[] = { 1, 2, 3 };
 
     ps_output.color = g_array[0] + g_array[4] + l_array[1] + g_mystruct[0].f + g_array[idx];
diff --git a/Test/hlsl.array.multidim.frag b/Test/hlsl.array.multidim.frag
new file mode 100644
index 0000000..524a889
--- /dev/null
+++ b/Test/hlsl.array.multidim.frag
@@ -0,0 +1,20 @@
+
+float float_array[5][4][3];
+
+struct PS_OUTPUT
+{
+    float4 Color : SV_Target0;
+};
+
+PS_OUTPUT main()
+{
+    float4 float4_array_1[2][3];
+    float4 float4_array_2[5][3];
+
+    float4_array_1[1][2] = float_array[2][3][1];
+    float4_array_2[1] = float4_array_1[0];
+
+    PS_OUTPUT psout;
+    psout.Color = float4_array_1[1][2];
+    return psout;
+}
diff --git a/Test/hlsl.basic.comp b/Test/hlsl.basic.comp
new file mode 100644
index 0000000..8a65a59
--- /dev/null
+++ b/Test/hlsl.basic.comp
@@ -0,0 +1,6 @@
+groupshared float4 a[100];
+
+void main(int dti : SV_DispatchThreadID)
+{
+    dti;
+}
diff --git a/Test/hlsl.inoutquals.frag b/Test/hlsl.inoutquals.frag
index 91798d5..3234688 100644
--- a/Test/hlsl.inoutquals.frag
+++ b/Test/hlsl.inoutquals.frag
@@ -11,7 +11,7 @@
     x = -1; // no effect since x = in param
 }
 
-PS_OUTPUT main(noperspective in float4 inpos : SV_Position)
+PS_OUTPUT main(noperspective in float4 inpos : SV_Position, out int sampleMask : SV_Coverage)
 {
    PS_OUTPUT psout;
 
diff --git a/Test/hlsl.intrinsics.comp b/Test/hlsl.intrinsics.comp
index 12b7caa..bce2d27 100644
--- a/Test/hlsl.intrinsics.comp
+++ b/Test/hlsl.intrinsics.comp
@@ -1,17 +1,17 @@
 
-#define gs static    // TODO: define as groupshared when available in the grammar
-gs uint gs_ua;
-gs uint gs_ub;
-gs uint gs_uc;
-gs uint2 gs_ua2;
-gs uint2 gs_ub2;
-gs uint2 gs_uc2;
-gs uint3 gs_ua3;
-gs uint3 gs_ub3;
-gs uint3 gs_uc3;
-gs uint4 gs_ua4;
-gs uint4 gs_ub4;
-gs uint4 gs_uc4;
+
+groupshared uint gs_ua;
+groupshared uint gs_ub;
+groupshared uint gs_uc;
+groupshared uint2 gs_ua2;
+groupshared uint2 gs_ub2;
+groupshared uint2 gs_uc2;
+groupshared uint3 gs_ua3;
+groupshared uint3 gs_ub3;
+groupshared uint3 gs_uc3;
+groupshared uint4 gs_ua4;
+groupshared uint4 gs_ub4;
+groupshared uint4 gs_uc4;
 
 float ComputeShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1)
 {
diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag
index 90387cc..03e7ed3 100644
--- a/Test/hlsl.intrinsics.frag
+++ b/Test/hlsl.intrinsics.frag
@@ -1,17 +1,17 @@
 
-#define gs static     // TODO: define as groupshared when available in the grammar
-gs uint gs_ua;
-gs uint gs_ub;
-gs uint gs_uc;
-gs uint2 gs_ua2;
-gs uint2 gs_ub2;
-gs uint2 gs_uc2;
-gs uint3 gs_ua3;
-gs uint3 gs_ub3;
-gs uint3 gs_uc3;
-gs uint4 gs_ua4;
-gs uint4 gs_ub4;
-gs uint4 gs_uc4;
+
+groupshared uint gs_ua;
+groupshared uint gs_ub;
+groupshared uint gs_uc;
+groupshared uint2 gs_ua2;
+groupshared uint2 gs_ub2;
+groupshared uint2 gs_uc2;
+groupshared uint3 gs_ua3;
+groupshared uint3 gs_ub3;
+groupshared uint3 gs_uc3;
+groupshared uint4 gs_ua4;
+groupshared uint4 gs_ub4;
+groupshared uint4 gs_uc4;
 
 float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1)
 {
diff --git a/Test/hlsl.load.buffer.float.dx10.frag b/Test/hlsl.load.buffer.float.dx10.frag
new file mode 100644
index 0000000..eeea9a6
--- /dev/null
+++ b/Test/hlsl.load.buffer.float.dx10.frag
@@ -0,0 +1,38 @@
+uniform Buffer <float> g_tTexbfs_test : register(t0);
+
+Buffer <float> g_tTexbfs;
+Buffer <int>   g_tTexbis;
+Buffer <uint>  g_tTexbus;
+
+struct PS_OUTPUT
+{
+    float4 Color : SV_Target0;
+    float  Depth : SV_Depth;
+};
+
+uniform int   c1;
+uniform int2  c2;
+uniform int3  c3;
+uniform int4  c4;
+
+uniform int   o1;
+uniform int2  o2;
+uniform int3  o3;
+uniform int4  o4;
+
+PS_OUTPUT main()
+{
+   PS_OUTPUT psout;
+
+   // Buffer
+   float r00 = g_tTexbfs.Load(c1);
+   int   r01 = g_tTexbis.Load(c1);
+   uint  r02 = g_tTexbus.Load(c1);
+
+   // TODO: other types that can be put in sampler buffers, like float2x2, and float3.
+
+   psout.Color = 1.0;
+   psout.Depth = 1.0;
+
+   return psout;
+}
diff --git a/Test/hlsl.rw.bracket.frag b/Test/hlsl.rw.bracket.frag
new file mode 100644
index 0000000..9390e8d
--- /dev/null
+++ b/Test/hlsl.rw.bracket.frag
@@ -0,0 +1,140 @@
+SamplerState       g_sSamp : register(s0);
+
+RWTexture1D <float4> g_tTex1df4 : register(t0);
+RWTexture1D <int4>   g_tTex1di4;
+RWTexture1D <uint4>  g_tTex1du4;
+
+RWTexture2D <float4> g_tTex2df4;
+RWTexture2D <int4>   g_tTex2di4;
+RWTexture2D <uint4>  g_tTex2du4;
+
+RWTexture3D <float4> g_tTex3df4;
+RWTexture3D <int4>   g_tTex3di4;
+RWTexture3D <uint4>  g_tTex3du4;
+
+RWTexture1DArray <float4> g_tTex1df4a;
+RWTexture1DArray <int4>   g_tTex1di4a;
+RWTexture1DArray <uint4>  g_tTex1du4a;
+
+RWTexture2DArray <float4> g_tTex2df4a;
+RWTexture2DArray <int4>   g_tTex2di4a;
+RWTexture2DArray <uint4>  g_tTex2du4a;
+
+struct PS_OUTPUT
+{
+    float4 Color : SV_Target0;
+};
+
+uniform int   c1;
+uniform int2  c2;
+uniform int3  c3;
+uniform int4  c4;
+
+uniform int   o1;
+uniform int2  o2;
+uniform int3  o3;
+uniform int4  o4;
+
+uniform float4 uf4;
+uniform int4   ui4;
+uniform uint4  uu4;
+
+int4   Fn1(in int4 x)   { return x; }
+uint4  Fn1(in uint4 x)  { return x; }
+float4 Fn1(in float4 x) { return x; }
+
+void Fn2(out int4 x)   { x = int4(0); }
+void Fn2(out uint4 x)  { x = uint4(0); }
+void Fn2(out float4 x) { x = float4(0); }
+
+float4 SomeValue() { return c4; }
+
+PS_OUTPUT main()
+{
+   PS_OUTPUT psout;
+
+   // 1D
+   g_tTex1df4[c1];
+   
+   float4 r00 = g_tTex1df4[c1];
+   int4   r01 = g_tTex1di4[c1];
+   uint4  r02 = g_tTex1du4[c1];
+
+   // 2D
+   float4 r10 = g_tTex2df4[c2];
+   int4   r11 = g_tTex2di4[c2];
+   uint4  r12 = g_tTex2du4[c2];
+   
+   // 3D
+   float4 r20 = g_tTex3df4[c3];
+   int4   r21 = g_tTex3di4[c3];
+   uint4  r22 = g_tTex3du4[c3];
+
+   float4 lf4 = uf4;
+
+   // Test as L-values
+   // 1D
+   g_tTex1df4[c1] = SomeValue(); // complex R-value
+   g_tTex1df4[c1] = lf4;
+   g_tTex1di4[c1] = int4(2,2,3,4);
+   g_tTex1du4[c1] = uint4(3,2,3,4);
+
+   // Test some operator= things, which need to do both a load and a store.
+   float4 val1 = (g_tTex1df4[c1] *= 2.0);
+   g_tTex1df4[c1] -= 3.0;
+   g_tTex1df4[c1] += 4.0;
+   
+   g_tTex1di4[c1] /= 2;
+   g_tTex1di4[c1] %= 2;
+   g_tTex1di4[c1] &= 0xffff;
+   g_tTex1di4[c1] |= 0xf0f0;
+   g_tTex1di4[c1] <<= 2;
+   g_tTex1di4[c1] >>= 2;
+
+   // 2D
+   g_tTex2df4[c2] = SomeValue(); // complex L-value
+   g_tTex2df4[c2] = lf4;
+   g_tTex2di4[c2] = int4(5,2,3,4);
+   g_tTex2du4[c2] = uint4(6,2,3,4);
+   
+   // 3D
+   g_tTex3df4[c3] = SomeValue(); // complex L-value
+   g_tTex3df4[c3] = lf4;
+   g_tTex3di4[c3] = int4(8,6,7,8);
+   g_tTex3du4[c3] = uint4(9,2,3,4);
+
+   // Test function calling
+   Fn1(g_tTex1df4[c1]);  // in
+   Fn1(g_tTex1di4[c1]);  // in
+   Fn1(g_tTex1du4[c1]);  // in
+
+   Fn2(g_tTex1df4[c1]);  // out
+   Fn2(g_tTex1di4[c1]);  // out
+   Fn2(g_tTex1du4[c1]);  // out
+
+   // Test increment operators
+   // pre-ops
+   ++g_tTex1df4[c1];
+   ++g_tTex1di4[c1];
+   ++g_tTex1du4[c1];
+
+   --g_tTex1df4[c1];
+   --g_tTex1di4[c1];
+   --g_tTex1du4[c1];
+
+   // post-ops
+   g_tTex1df4[c1]++;
+   g_tTex1du4[c1]--;
+   g_tTex1di4[c1]++;
+
+   g_tTex1df4[c1]--;
+   g_tTex1di4[c1]++;
+   g_tTex1du4[c1]--;
+
+   // read and write
+   g_tTex1df4[1] = g_tTex2df4[int2(2,3)];
+
+   psout.Color = 1.0;
+
+   return psout;
+}
diff --git a/Test/hlsl.rw.scalar.bracket.frag b/Test/hlsl.rw.scalar.bracket.frag
new file mode 100644
index 0000000..e185f05
--- /dev/null
+++ b/Test/hlsl.rw.scalar.bracket.frag
@@ -0,0 +1,140 @@
+SamplerState       g_sSamp : register(s0);
+
+RWTexture1D <float> g_tTex1df1;
+RWTexture1D <int>   g_tTex1di1;
+RWTexture1D <uint>  g_tTex1du1;
+
+RWTexture2D <float> g_tTex2df1;
+RWTexture2D <int>   g_tTex2di1;
+RWTexture2D <uint>  g_tTex2du1;
+
+RWTexture3D <float> g_tTex3df1;
+RWTexture3D <int>   g_tTex3di1;
+RWTexture3D <uint>  g_tTex3du1;
+
+RWTexture1DArray <float> g_tTex1df1a;
+RWTexture1DArray <int>   g_tTex1di1a;
+RWTexture1DArray <uint>  g_tTex1du1a;
+
+RWTexture2DArray <float> g_tTex2df1a;
+RWTexture2DArray <int>   g_tTex2di1a;
+RWTexture2DArray <uint>  g_tTex2du1a;
+
+struct PS_OUTPUT
+{
+    float4 Color : SV_Target0;
+};
+
+uniform int   c1;
+uniform int2  c2;
+uniform int3  c3;
+uniform int4  c4;
+
+uniform int   o1;
+uniform int2  o2;
+uniform int3  o3;
+uniform int4  o4;
+
+uniform float uf1;
+uniform int   ui1;
+uniform uint  uu1;
+
+int   Fn1(in int x)   { return x; }
+uint  Fn1(in uint x)  { return x; }
+float Fn1(in float x) { return x; }
+
+void Fn2(out int x)   { x = int(0); }
+void Fn2(out uint x)  { x = uint(0); }
+void Fn2(out float x) { x = float(0); }
+
+float SomeValue() { return c1; }
+
+PS_OUTPUT main()
+{
+   PS_OUTPUT psout;
+
+   // 1D
+   g_tTex1df1[c1];
+   
+   float r00 = g_tTex1df1[c1];
+   int   r01 = g_tTex1di1[c1];
+   uint  r02 = g_tTex1du1[c1];
+
+   // 2D
+   float r10 = g_tTex2df1[c2];
+   int   r11 = g_tTex2di1[c2];
+   uint  r12 = g_tTex2du1[c2];
+   
+   // 3D
+   float r20 = g_tTex3df1[c3];
+   int   r21 = g_tTex3di1[c3];
+   uint  r22 = g_tTex3du1[c3];
+
+   float lf1 = uf1;
+
+   // Test as L-values
+   // 1D
+   g_tTex1df1[c1] = SomeValue(); // complex R-value
+   g_tTex1df1[c1] = lf1;
+   g_tTex1di1[c1] = int(2);
+   g_tTex1du1[c1] = uint(3);
+
+   // Test some operator= things, which need to do both a load and a store.
+   float val1 = (g_tTex1df1[c1] *= 2.0);
+   g_tTex1df1[c1] -= 3.0;
+   g_tTex1df1[c1] += 4.0;
+   
+   g_tTex1di1[c1] /= 2;
+   g_tTex1di1[c1] %= 2;
+   g_tTex1di1[c1] &= 0xffff;
+   g_tTex1di1[c1] |= 0xf0f0;
+   g_tTex1di1[c1] <<= 2;
+   g_tTex1di1[c1] >>= 2;
+
+   // 2D
+   g_tTex2df1[c2] = SomeValue(); // complex L-value
+   g_tTex2df1[c2] = lf1;
+   g_tTex2di1[c2] = int(5);
+   g_tTex2du1[c2] = uint(6);
+   
+   // 3D
+   g_tTex3df1[c3] = SomeValue(); // complex L-value
+   g_tTex3df1[c3] = lf1;
+   g_tTex3di1[c3] = int(8);
+   g_tTex3du1[c3] = uint(9);
+
+   // Test function calling
+   Fn1(g_tTex1df1[c1]);  // in
+   Fn1(g_tTex1di1[c1]);  // in
+   Fn1(g_tTex1du1[c1]);  // in
+
+   Fn2(g_tTex1df1[c1]);  // out
+   Fn2(g_tTex1di1[c1]);  // out
+   Fn2(g_tTex1du1[c1]);  // out
+
+   // Test increment operators
+   // pre-ops
+   ++g_tTex1df1[c1];
+   ++g_tTex1di1[c1];
+   ++g_tTex1du1[c1];
+
+   --g_tTex1df1[c1];
+   --g_tTex1di1[c1];
+   --g_tTex1du1[c1];
+
+   // post-ops
+   g_tTex1df1[c1]++;
+   g_tTex1du1[c1]--;
+   g_tTex1di1[c1]++;
+
+   g_tTex1df1[c1]--;
+   g_tTex1di1[c1]++;
+   g_tTex1du1[c1]--;
+
+   // read and write
+   g_tTex1df1[1] = g_tTex2df1[int2(2, 3)];
+
+   psout.Color = 1.0;
+
+   return psout;
+}
diff --git a/Test/hlsl.rw.vec2.bracket.frag b/Test/hlsl.rw.vec2.bracket.frag
new file mode 100644
index 0000000..7b4a10a
--- /dev/null
+++ b/Test/hlsl.rw.vec2.bracket.frag
@@ -0,0 +1,140 @@
+SamplerState       g_sSamp : register(s0);
+
+RWTexture1D <float2> g_tTex1df2;
+RWTexture1D <int2>   g_tTex1di2;
+RWTexture1D <uint2>  g_tTex1du2;
+
+RWTexture2D <float2> g_tTex2df2;
+RWTexture2D <int2>   g_tTex2di2;
+RWTexture2D <uint2>  g_tTex2du2;
+
+RWTexture3D <float2> g_tTex3df2;
+RWTexture3D <int2>   g_tTex3di2;
+RWTexture3D <uint2>  g_tTex3du2;
+
+RWTexture1DArray <float2> g_tTex1df2a;
+RWTexture1DArray <int2>   g_tTex1di2a;
+RWTexture1DArray <uint2>  g_tTex1du2a;
+
+RWTexture2DArray <float2> g_tTex2df2a;
+RWTexture2DArray <int2>   g_tTex2di2a;
+RWTexture2DArray <uint2>  g_tTex2du2a;
+
+struct PS_OUTPUT
+{
+    float4 Color : SV_Target0;
+};
+
+uniform int   c1;
+uniform int2  c2;
+uniform int3  c3;
+uniform int4  c4;
+
+uniform int   o1;
+uniform int2  o2;
+uniform int3  o3;
+uniform int4  o4;
+
+uniform float2 uf2;
+uniform int2   ui2;
+uniform uint2  uu2;
+
+int2   Fn1(in int2 x)   { return x; }
+uint2  Fn1(in uint2 x)  { return x; }
+float2 Fn1(in float2 x) { return x; }
+
+void Fn2(out int2 x)   { x = int2(0,0); }
+void Fn2(out uint2 x)  { x = uint2(0,0); }
+void Fn2(out float2 x) { x = float2(0,0); }
+
+float2 SomeValue() { return c2; }
+
+PS_OUTPUT main()
+{
+   PS_OUTPUT psout;
+
+   // 1D
+   g_tTex1df2[c1];
+   
+   float2 r00 = g_tTex1df2[c1];
+   int2   r01 = g_tTex1di2[c1];
+   uint2  r02 = g_tTex1du2[c1];
+
+   // 2D
+   float2 r10 = g_tTex2df2[c2];
+   int2   r11 = g_tTex2di2[c2];
+   uint2  r12 = g_tTex2du2[c2];
+   
+   // 3D
+   float2 r20 = g_tTex3df2[c3];
+   int2   r21 = g_tTex3di2[c3];
+   uint2  r22 = g_tTex3du2[c3];
+
+   float2 lf2 = uf2;
+
+   // Test as L-values
+   // 1D
+   g_tTex1df2[c1] = SomeValue(); // complex R-value
+   g_tTex1df2[c1] = lf2;
+   g_tTex1di2[c1] = int2(2,2);
+   g_tTex1du2[c1] = uint2(3,2);
+
+   // Test some operator= things, which need to do both a load and a store.
+   float2 val1 = (g_tTex1df2[c1] *= 2.0);
+   g_tTex1df2[c1] -= 3.0;
+   g_tTex1df2[c1] += 4.0;
+   
+   g_tTex1di2[c1] /= 2;
+   g_tTex1di2[c1] %= 2;
+   g_tTex1di2[c1] &= 0xffff;
+   g_tTex1di2[c1] |= 0xf0f0;
+   g_tTex1di2[c1] <<= 2;
+   g_tTex1di2[c1] >>= 2;
+
+   // 2D
+   g_tTex2df2[c2] = SomeValue(); // complex L-value
+   g_tTex2df2[c2] = lf2;
+   g_tTex2di2[c2] = int2(5,2);
+   g_tTex2du2[c2] = uint2(6,2);
+   
+   // 3D
+   g_tTex3df2[c3] = SomeValue(); // complex L-value
+   g_tTex3df2[c3] = lf2;
+   g_tTex3di2[c3] = int2(8,6);
+   g_tTex3du2[c3] = uint2(9,2);
+
+   // Test function calling
+   Fn1(g_tTex1df2[c1]);  // in
+   Fn1(g_tTex1di2[c1]);  // in
+   Fn1(g_tTex1du2[c1]);  // in
+
+   Fn2(g_tTex1df2[c1]);  // out
+   Fn2(g_tTex1di2[c1]);  // out
+   Fn2(g_tTex1du2[c1]);  // out
+
+   // Test increment operators
+   // pre-ops
+   ++g_tTex1df2[c1];
+   ++g_tTex1di2[c1];
+   ++g_tTex1du2[c1];
+
+   --g_tTex1df2[c1];
+   --g_tTex1di2[c1];
+   --g_tTex1du2[c1];
+
+   // post-ops
+   g_tTex1df2[c1]++;
+   g_tTex1du2[c1]--;
+   g_tTex1di2[c1]++;
+
+   g_tTex1df2[c1]--;
+   g_tTex1di2[c1]++;
+   g_tTex1du2[c1]--;
+
+   // read and write
+   g_tTex1df2[1] = g_tTex2df2[int2(2,3)];
+
+   psout.Color = 1.0;
+
+   return psout;
+}
diff --git a/Test/hlsl.sample.sub-vec4.dx10.frag b/Test/hlsl.sample.sub-vec4.dx10.frag
new file mode 100644
index 0000000..991d976
--- /dev/null
+++ b/Test/hlsl.sample.sub-vec4.dx10.frag
@@ -0,0 +1,24 @@
+SamplerState       g_sSamp : register(s0);
+
+Texture1D <float>  g_tTex1df1;
+Texture1D <float2> g_tTex1df2;
+Texture1D <float3> g_tTex1df3;
+Texture1D <float4> g_tTex1df4;
+
+struct PS_OUTPUT
+{
+    float4 Color : SV_Target0;
+};
+
+PS_OUTPUT main()
+{
+   PS_OUTPUT psout;
+
+   float  txval10 = g_tTex1df1 . Sample(g_sSamp, 0.1);
+   float2 txval11 = g_tTex1df2 . Sample(g_sSamp, 0.2);
+   float3 txval12 = g_tTex1df3 . Sample(g_sSamp, 0.2);
+   float4 txval13 = g_tTex1df4 . Sample(g_sSamp, 0.2);
+
+   psout.Color = 1.0;
+   return psout;
+}
diff --git a/Test/hlsl.struct.frag b/Test/hlsl.struct.frag
index 2c511a6..e602c9e 100644
--- a/Test/hlsl.struct.frag
+++ b/Test/hlsl.struct.frag
@@ -12,7 +12,7 @@
 
 myS s1;
 
-struct {
+static struct {
     float4 i;
 } s2;
 
@@ -40,4 +40,4 @@
     s2.i = s.ff4;
 
     return input;
-}
\ No newline at end of file
+}
diff --git a/Test/hlsl.tx.bracket.frag b/Test/hlsl.tx.bracket.frag
new file mode 100644
index 0000000..0d3d81f
--- /dev/null
+++ b/Test/hlsl.tx.bracket.frag
@@ -0,0 +1,73 @@
+SamplerState       g_sSamp : register(s0);
+
+Texture1D <float4> g_tTex1df4 : register(t0);
+Texture1D <int4>   g_tTex1di4;
+Texture1D <uint4>  g_tTex1du4;
+
+Texture2D <float4> g_tTex2df4;
+Texture2D <int4>   g_tTex2di4;
+Texture2D <uint4>  g_tTex2du4;
+
+Texture3D <float4> g_tTex3df4;
+Texture3D <int4>   g_tTex3di4;
+Texture3D <uint4>  g_tTex3du4;
+
+Texture1DArray <float4> g_tTex1df4a;
+Texture1DArray <int4>   g_tTex1di4a;
+Texture1DArray <uint4>  g_tTex1du4a;
+
+Texture2DArray <float4> g_tTex2df4a;
+Texture2DArray <int4>   g_tTex2di4a;
+Texture2DArray <uint4>  g_tTex2du4a;
+
+struct PS_OUTPUT
+{
+    float4 Color : SV_Target0;
+};
+
+uniform int   c1;
+uniform int2  c2;
+uniform int3  c3;
+uniform int4  c4;
+
+uniform int   o1;
+uniform int2  o2;
+uniform int3  o3;
+uniform int4  o4;
+
+int4   Fn1(in int4 x)   { return x; }
+uint4  Fn1(in uint4 x)  { return x; }
+float4 Fn1(in float4 x) { return x; }
+
+float4 SomeValue() { return c4; }
+
+PS_OUTPUT main()
+{
+   PS_OUTPUT psout;
+
+   // 1D
+   g_tTex1df4[c1];
+   
+   float4 r00 = g_tTex1df4[c1];
+   int4   r01 = g_tTex1di4[c1];
+   uint4  r02 = g_tTex1du4[c1];
+
+   // 2D
+   float4 r10 = g_tTex2df4[c2];
+   int4   r11 = g_tTex2di4[c2];
+   uint4  r12 = g_tTex2du4[c2];
+   
+   // 3D
+   float4 r20 = g_tTex3df4[c3];
+   int4   r21 = g_tTex3di4[c3];
+   uint4  r22 = g_tTex3du4[c3];
+
+   // Test function calling
+   Fn1(g_tTex1df4[c1]);  // in
+   Fn1(g_tTex1di4[c1]);  // in
+   Fn1(g_tTex1du4[c1]);  // in
+
+   psout.Color = 1.0;
+
+   return psout;
+}
diff --git a/Test/spv.register.autoassign.rangetest.frag b/Test/spv.register.autoassign.rangetest.frag
new file mode 100644
index 0000000..c81c395
--- /dev/null
+++ b/Test/spv.register.autoassign.rangetest.frag
@@ -0,0 +1,15 @@
+
+SamplerState g_tSamp : register(s5);
+
+Texture2D g_tScene[2] : register(t5);
+
+struct PS_OUTPUT
+{
+    float4 Color : SV_Target0;
+};
+
+void main(out PS_OUTPUT psout)
+{
+    psout.Color = g_tScene[0].Sample(g_tSamp, 0.3) +
+                  g_tScene[1].Sample(g_tSamp, 0.3);
+}
diff --git a/glslang/Include/Common.h b/glslang/Include/Common.h
index 636645e..e082356 100644
--- a/glslang/Include/Common.h
+++ b/glslang/Include/Common.h
@@ -68,6 +68,10 @@
 {
   return _strtoi64(str, endptr, base); 
 }
+inline unsigned long long int strtoull (const char* str, char** endptr, int base)
+{
+  return _strtoui64(str, endptr, base);
+}
 inline long long int atoll (const char* str)
 {
   return strtoll(str, NULL, 10);
diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h
index 35b4831..6c8cb82 100644
--- a/glslang/Include/Types.h
+++ b/glslang/Include/Types.h
@@ -78,6 +78,7 @@
     bool   combined : 1;  // true means texture is combined with a sampler, false means texture with no sampler
     bool    sampler : 1;  // true means a pure sampler, other fields should be clear()
     bool   external : 1;  // GL_OES_EGL_image_external
+    unsigned int vectorSize : 3;  // return vector size.  TODO: support arbitrary types.
 
     bool isImage()       const { return image && dim != EsdSubpass; }
     bool isSubpass()     const { return dim == EsdSubpass; }
@@ -99,6 +100,7 @@
         combined = false;
         sampler = false;
         external = false;
+        vectorSize = 4;
     }
 
     // make a combined sampler and texture
@@ -164,7 +166,8 @@
               image == right.image &&
            combined == right.combined &&
             sampler == right.sampler &&
-           external == right.external;
+           external == right.external &&
+         vectorSize == right.vectorSize;
     }
 
     bool operator!=(const TSampler& right) const
diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h
index 0521e2e..c8b1b10 100644
--- a/glslang/Include/revision.h
+++ b/glslang/Include/revision.h
@@ -2,5 +2,5 @@
 // For the version, it uses the latest git tag followed by the number of commits.
 // For the date, it uses the current date (when then script is run).
 
-#define GLSLANG_REVISION "Overload400-PrecQual.1560"
-#define GLSLANG_DATE "07-Oct-2016"
+#define GLSLANG_REVISION "Overload400-PrecQual.1603"
+#define GLSLANG_DATE "16-Oct-2016"
diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp
index 58bc8a5..8e80bbd 100644
--- a/glslang/MachineIndependent/Intermediate.cpp
+++ b/glslang/MachineIndependent/Intermediate.cpp
@@ -136,13 +136,7 @@
     // Need a new node holding things together.  Make
     // one and promote it to the right type.
     //
-    TIntermBinary* node = new TIntermBinary(op);
-    if (loc.line == 0)
-        loc = right->getLoc();
-    node->setLoc(loc);
-
-    node->setLeft(left);
-    node->setRight(right);
+    TIntermBinary* node = addBinaryNode(op, left, right, loc);
     if (! node->promote())
         return 0;
 
@@ -173,6 +167,56 @@
 }
 
 //
+// Low level: add binary node (no promotions or other argument modifications)
+//
+TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc) const
+{
+    // build the node
+    TIntermBinary* node = new TIntermBinary(op);
+    if (loc.line == 0)
+        loc = left->getLoc();
+    node->setLoc(loc);
+    node->setLeft(left);
+    node->setRight(right);
+
+    return node;
+}
+
+//
+// like non-type form, but sets node's type.
+//
+TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc, const TType& type) const
+{
+    TIntermBinary* node = addBinaryNode(op, left, right, loc);
+    node->setType(type);
+    return node;
+}
+    
+//
+// Low level: add unary node (no promotions or other argument modifications)
+//
+TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc loc) const
+{
+    TIntermUnary* node = new TIntermUnary(op);
+    if (loc.line == 0)
+        loc = child->getLoc();
+    node->setLoc(loc);
+    node->setOperand(child);
+
+    return node;
+}
+
+//
+// like non-type form, but sets node's type.
+//
+TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc loc, const TType& type) const
+{
+    TIntermUnary* node = addUnaryNode(op, child, loc);
+    node->setType(type);
+    return node;
+}
+
+//
 // Connect two nodes through an assignment.
 //
 // Returns the added node.
@@ -200,12 +244,7 @@
     right = addShapeConversion(op, left->getType(), right);
 
     // build the node
-    TIntermBinary* node = new TIntermBinary(op);
-    if (loc.line == 0)
-        loc = left->getLoc();
-    node->setLoc(loc);
-    node->setLeft(left);
-    node->setRight(right);
+    TIntermBinary* node = addBinaryNode(op, left, right, loc);
 
     if (! node->promote())
         return nullptr;
@@ -224,16 +263,8 @@
 //
 TIntermTyped* TIntermediate::addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index, TSourceLoc loc)
 {
-    TIntermBinary* node = new TIntermBinary(op);
-    if (loc.line == 0)
-        loc = index->getLoc();
-    node->setLoc(loc);
-    node->setLeft(base);
-    node->setRight(index);
-
     // caller should set the type
-
-    return node;
+    return addBinaryNode(op, base, index, loc);
 }
 
 //
@@ -316,11 +347,7 @@
     //
     // Make a new node for the operator.
     //
-    TIntermUnary* node = new TIntermUnary(op);
-    if (loc.line == 0)
-        loc = child->getLoc();
-    node->setLoc(loc);
-    node->setOperand(child);
+    TIntermUnary* node = addUnaryNode(op, child, loc);
 
     if (! node->promote())
         return 0;
@@ -357,12 +384,7 @@
                 return folded;
         }
 
-        TIntermUnary* node = new TIntermUnary(op);
-        node->setLoc(child->getLoc());
-        node->setOperand(child);
-        node->setType(returnType);
-
-        return node;
+        return addUnaryNode(op, child, child->getLoc(), returnType);
     } else {
         // setAggregateOperater() calls fold() for constant folding
         TIntermTyped* node = setAggregateOperator(childNode, op, returnType, loc);
@@ -725,9 +747,7 @@
     }
 
     TType newType(promoteTo, EvqTemporary, node->getVectorSize(), node->getMatrixCols(), node->getMatrixRows());
-    newNode = new TIntermUnary(newOp, newType);
-    newNode->setLoc(node->getLoc());
-    newNode->setOperand(node);
+    newNode = addUnaryNode(newOp, node, node->getLoc(), newType);
 
     // TODO: it seems that some unary folding operations should occur here, but are not
 
diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp
index fe2b8e6..5949cd8 100644
--- a/glslang/MachineIndependent/ParseContextBase.cpp
+++ b/glslang/MachineIndependent/ParseContextBase.cpp
@@ -113,6 +113,114 @@
     va_end(args);
 }
 
+//
+// Both test and if necessary, spit out an error, to see if the node is really
+// an l-value that can be operated on this way.
+//
+// Returns true if there was an error.
+//
+bool TParseContextBase::lValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node)
+{
+    TIntermBinary* binaryNode = node->getAsBinaryNode();
+
+    if (binaryNode) {
+        switch(binaryNode->getOp()) {
+        case EOpIndexDirect:
+        case EOpIndexIndirect:     // fall through
+        case EOpIndexDirectStruct: // fall through
+        case EOpVectorSwizzle:
+            return lValueErrorCheck(loc, op, binaryNode->getLeft());
+        default:
+            break;
+        }
+        error(loc, " l-value required", op, "", "");
+
+        return true;
+    }
+
+    const char* symbol = nullptr;
+    TIntermSymbol* symNode = node->getAsSymbolNode();
+    if (symNode != nullptr)
+        symbol = symNode->getName().c_str();
+
+    const char* message = nullptr;
+    switch (node->getQualifier().storage) {
+    case EvqConst:          message = "can't modify a const";        break;
+    case EvqConstReadOnly:  message = "can't modify a const";        break;
+    case EvqUniform:        message = "can't modify a uniform";      break;
+    case EvqBuffer:
+        if (node->getQualifier().readonly)
+            message = "can't modify a readonly buffer";
+        break;
+
+    default:
+        //
+        // Type that can't be written to?
+        //
+        switch (node->getBasicType()) {
+        case EbtSampler:
+            message = "can't modify a sampler";
+            break;
+        case EbtAtomicUint:
+            message = "can't modify an atomic_uint";
+            break;
+        case EbtVoid:
+            message = "can't modify void";
+            break;
+        default:
+            break;
+        }
+    }
+
+    if (message == nullptr && binaryNode == nullptr && symNode == nullptr) {
+        error(loc, " l-value required", op, "", "");
+
+        return true;
+    }
+
+    //
+    // Everything else is okay, no error.
+    //
+    if (message == nullptr)
+        return false;
+
+    //
+    // If we get here, we have an error and a message.
+    //
+    if (symNode)
+        error(loc, " l-value required", op, "\"%s\" (%s)", symbol, message);
+    else
+        error(loc, " l-value required", op, "(%s)", message);
+
+    return true;
+}
+
+// Test for and give an error if the node can't be read from.
+void TParseContextBase::rValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node)
+{
+    if (! node)
+        return;
+
+    TIntermBinary* binaryNode = node->getAsBinaryNode();
+    if (binaryNode) {
+        switch(binaryNode->getOp()) {
+        case EOpIndexDirect:
+        case EOpIndexIndirect:
+        case EOpIndexDirectStruct:
+        case EOpVectorSwizzle:
+            rValueErrorCheck(loc, op, binaryNode->getLeft());
+        default:
+            break;
+        }
+
+        return;
+    }
+
+    TIntermSymbol* symNode = node->getAsSymbolNode();
+    if (symNode && symNode->getQualifier().writeonly)
+        error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str());
+}
+
 // Make a shared symbol have a non-shared version that can be edited by the current 
 // compile, such that editing its type will not change the shared version and will
 // effect all nodes sharing it.
@@ -253,7 +361,7 @@
         return viableCandidates.front();
 
     // 4. find best...
-    auto betterParam = [&call, &better](const TFunction& can1, const TFunction& can2){
+    auto betterParam = [&call, &better](const TFunction& can1, const TFunction& can2) -> bool {
         // is call -> can2 better than call -> can1 for any parameter
         bool hasBetterParam = false;
         for (int param = 0; param < call.getParamCount(); ++param) {
diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp
index 949ba00..71ee4f3 100644
--- a/glslang/MachineIndependent/ParseHelper.cpp
+++ b/glslang/MachineIndependent/ParseHelper.cpp
@@ -1902,14 +1902,14 @@
 // Both test and if necessary, spit out an error, to see if the node is really
 // an l-value that can be operated on this way.
 //
-// Returns true if the was an error.
+// Returns true if there was an error.
 //
 bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node)
 {
     TIntermBinary* binaryNode = node->getAsBinaryNode();
 
     if (binaryNode) {
-        bool errorReturn;
+        bool errorReturn = false;
 
         switch(binaryNode->getOp()) {
         case EOpIndexDirect:
@@ -1928,9 +1928,9 @@
                 }
             }
 
-            // fall through
+            break; // left node is checked by base class
         case EOpIndexDirectStruct:
-            return lValueErrorCheck(loc, op, binaryNode->getLeft());
+            break; // left node is checked by base class
         case EOpVectorSwizzle:
             errorReturn = lValueErrorCheck(loc, op, binaryNode->getLeft());
             if (!errorReturn) {
@@ -1955,11 +1955,16 @@
         default:
             break;
         }
-        error(loc, " l-value required", op, "", "");
 
-        return true;
+        if (errorReturn) {
+            error(loc, " l-value required", op, "", "");
+            return true;
+        }
     }
 
+    // Let the base class check errors
+    if (TParseContextBase::lValueErrorCheck(loc, op, node))
+        return true;
 
     const char* symbol = nullptr;
     TIntermSymbol* symNode = node->getAsSymbolNode();
@@ -1968,19 +1973,12 @@
 
     const char* message = nullptr;
     switch (node->getQualifier().storage) {
-    case EvqConst:          message = "can't modify a const";        break;
-    case EvqConstReadOnly:  message = "can't modify a const";        break;
     case EvqVaryingIn:      message = "can't modify shader input";   break;
     case EvqInstanceId:     message = "can't modify gl_InstanceID";  break;
     case EvqVertexId:       message = "can't modify gl_VertexID";    break;
     case EvqFace:           message = "can't modify gl_FrontFace";   break;
     case EvqFragCoord:      message = "can't modify gl_FragCoord";   break;
     case EvqPointCoord:     message = "can't modify gl_PointCoord";  break;
-    case EvqUniform:        message = "can't modify a uniform";      break;
-    case EvqBuffer:
-        if (node->getQualifier().readonly)
-            message = "can't modify a readonly buffer";
-        break;
     case EvqFragDepth:
         intermediate.setDepthReplacing();
         // "In addition, it is an error to statically write to gl_FragDepth in the fragment shader."
@@ -1989,22 +1987,7 @@
         break;
 
     default:
-        //
-        // Type that can't be written to?
-        //
-        switch (node->getBasicType()) {
-        case EbtSampler:
-            message = "can't modify a sampler";
-            break;
-        case EbtAtomicUint:
-            message = "can't modify an atomic_uint";
-            break;
-        case EbtVoid:
-            message = "can't modify void";
-            break;
-        default:
-            break;
-        }
+        break;
     }
 
     if (message == nullptr && binaryNode == nullptr && symNode == nullptr) {
@@ -2013,7 +1996,6 @@
         return true;
     }
 
-
     //
     // Everything else is okay, no error.
     //
@@ -2034,30 +2016,14 @@
 // Test for and give an error if the node can't be read from.
 void TParseContext::rValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node)
 {
-    if (! node)
-        return;
+    // Let the base class check errors
+    TParseContextBase::rValueErrorCheck(loc, op, node);
 
-    TIntermBinary* binaryNode = node->getAsBinaryNode();
-    if (binaryNode) {
-        switch(binaryNode->getOp()) {
-        case EOpIndexDirect:
-        case EOpIndexIndirect:
-        case EOpIndexDirectStruct:
-        case EOpVectorSwizzle:
-            rValueErrorCheck(loc, op, binaryNode->getLeft());
-        default:
-            break;
-        }
-
-        return;
-    }
-
-    TIntermSymbol* symNode = node->getAsSymbolNode();
-    if (symNode && symNode->getQualifier().writeonly)
-        error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str());
 #ifdef AMD_EXTENSIONS
-    else if (symNode && symNode->getQualifier().explicitInterp)
-        error(loc, "can't read from explicitly-interpolated object: ", op, symNode->getName().c_str());
+    TIntermSymbol* symNode = node->getAsSymbolNode();
+    if (!(symNode && symNode->getQualifier().writeonly)) // base class checks
+        if (symNode && symNode->getQualifier().explicitInterp)
+            error(loc, "can't read from explicitly-interpolated object: ", op, symNode->getName().c_str());
 #endif
 }
 
@@ -4907,7 +4873,7 @@
     symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn);
     
     // can 'from' convert to 'to'?
-    const auto convertible = [this](const TType& from, const TType& to) {
+    const auto convertible = [this](const TType& from, const TType& to) -> bool {
         if (from == to)
             return true;
         if (from.isArray() || to.isArray() || ! from.sameElementShape(to))
@@ -4918,7 +4884,7 @@
     // Is 'to2' a better conversion than 'to1'?
     // Ties should not be considered as better.
     // Assumes 'convertible' already said true.
-    const auto better = [](const TType& from, const TType& to1, const TType& to2) {
+    const auto better = [](const TType& from, const TType& to1, const TType& to2) -> bool {
         // 1. exact match
         if (from == to2)
             return from != to1;
diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h
index eab7835..0f60ff7 100644
--- a/glslang/MachineIndependent/ParseHelper.h
+++ b/glslang/MachineIndependent/ParseHelper.h
@@ -143,6 +143,9 @@
     virtual void growGlobalUniformBlock(TSourceLoc&, TType&, TString& memberName);
     virtual bool insertGlobalUniformBlock();
 
+    virtual bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*);
+    virtual void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*);
+
 protected:
     TParseContextBase(TParseContextBase&);
     TParseContextBase& operator=(TParseContextBase&);
@@ -278,8 +281,8 @@
     void unaryOpError(const TSourceLoc&, const char* op, TString operand);
     void binaryOpError(const TSourceLoc&, const char* op, TString left, TString right);
     void variableCheck(TIntermTyped*& nodePtr);
-    bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*);
-    void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*);
+    bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override;
+    void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override;
     void constantValueCheck(TIntermTyped* node, const char* token);
     void integerCheck(const TIntermTyped* node, const char* token);
     void globalCheck(const TSourceLoc&, const char* token);
diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp
index e00638b..6d04445 100644
--- a/glslang/MachineIndependent/ShaderLang.cpp
+++ b/glslang/MachineIndependent/ShaderLang.cpp
@@ -1497,6 +1497,7 @@
 void TShader::setShiftUboBinding(unsigned int base)     { intermediate->setShiftUboBinding(base); }
 void TShader::setAutoMapBindings(bool map)              { intermediate->setAutoMapBindings(map); }
 void TShader::setFlattenUniformArrays(bool flatten)     { intermediate->setFlattenUniformArrays(flatten); }
+void TShader::setNoStorageFormat(bool useUnknownFormat) { intermediate->setNoStorageFormat(useUnknownFormat); }
 
 //
 // Turn the shader strings into a parse tree in the TIntermediate.
@@ -1724,7 +1725,7 @@
 
     for (int s = 0; s < EShLangCount; ++s) {
         if (intermediate[s]) {
-            if (! ioMapper->addStage((EShLanguage)s, *intermediate[s]))
+            if (! ioMapper->addStage((EShLanguage)s, *intermediate[s], *infoSink))
                 return false;
         }
     }
diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp
index d69cc13..15847dd 100644
--- a/glslang/MachineIndependent/iomapper.cpp
+++ b/glslang/MachineIndependent/iomapper.cpp
@@ -34,6 +34,7 @@
 //
 
 #include "../Include/Common.h"
+#include "../Include/InfoSink.h"
 #include "iomapper.h"
 #include "LiveTraverser.h"
 #include "localintermediate.h"
@@ -150,11 +151,30 @@
 class TIoMappingTraverser : public TBindingTraverser {
 public:
     TIoMappingTraverser(TIntermediate& i, TBindingMap& bindingMap, TUsedBindings& usedBindings,
-                        bool traverseDeadCode) :
-        TBindingTraverser(i, bindingMap, usedBindings, traverseDeadCode)
+                        TInfoSink& infoSink, bool traverseDeadCode) :
+        TBindingTraverser(i, bindingMap, usedBindings, traverseDeadCode),
+        infoSink(infoSink),
+        assignError(false)
     { }
 
+    bool success() const { return !assignError; }
+
 protected:
+    unsigned checkBindingRange(const TIntermSymbol& base, unsigned binding)
+    {
+        if (binding >= TQualifier::layoutBindingEnd) {
+            TString err = "mapped binding out of range: ";
+            err += base.getName();
+
+            infoSink.info.message(EPrefixInternalError, err.c_str());
+            assignError = true;
+            
+            return 0;
+        }
+
+        return binding;
+    }
+
     void addUniform(TIntermSymbol& base) override
     {
         // Skip things we don't intend to bind.
@@ -165,7 +185,7 @@
 
         // Apply existing binding, if we were given one or already made one up.
         if (existingBinding != -1) {
-            base.getWritableType().getQualifier().layoutBinding = existingBinding;
+            base.getWritableType().getQualifier().layoutBinding = checkBindingRange(base, existingBinding);
             return;
         }
 
@@ -174,7 +194,7 @@
             const int freeBinding = getFreeBinding(base.getType(), getBindingBase(base.getType()));
 
             markBinding(base, freeBinding);
-            base.getWritableType().getQualifier().layoutBinding = freeBinding;
+            base.getWritableType().getQualifier().layoutBinding = checkBindingRange(base, freeBinding);
         }
     }
 
@@ -195,13 +215,17 @@
 
         return nextBinding;
     }
+
+private:
+    bool assignError;  // true if there was an error assigning the bindings
+    TInfoSink& infoSink;
 };
 
 // Map I/O variables to provided offsets, and make bindings for
 // unbound but live variables.
 //
 // Returns false if the input is too malformed to do this.
-bool TIoMapper::addStage(EShLanguage, TIntermediate& intermediate)
+bool TIoMapper::addStage(EShLanguage, TIntermediate& intermediate, TInfoSink& infoSink)
 {
     // Trivial return if there is nothing to do.
     if (intermediate.getShiftSamplerBinding() == 0 &&
@@ -223,7 +247,7 @@
 
     TBindingTraverser it_binding_all(intermediate, bindingMap, usedBindings, true);
     TBindingTraverser it_binding_live(intermediate, bindingMap, usedBindings, false);
-    TIoMappingTraverser it_iomap(intermediate, bindingMap, usedBindings, true);
+    TIoMappingTraverser it_iomap(intermediate, bindingMap, usedBindings, infoSink, true);
 
     // Traverse all (live+dead) code to find explicit bindings, so we can avoid those.
     root->traverse(&it_binding_all);
@@ -240,7 +264,7 @@
     // Bind everything that needs a binding and doesn't have one.
     root->traverse(&it_iomap);
 
-    return true;
+    return it_iomap.success();
 }
 
 } // end namespace glslang
diff --git a/glslang/MachineIndependent/iomapper.h b/glslang/MachineIndependent/iomapper.h
index 69ed4c5..68dec77 100644
--- a/glslang/MachineIndependent/iomapper.h
+++ b/glslang/MachineIndependent/iomapper.h
@@ -42,6 +42,8 @@
 // A reflection database and its interface, consistent with the OpenGL API reflection queries.
 //
 
+class TInfoSink;
+
 namespace glslang {
 
 class TIntermediate;
@@ -53,7 +55,7 @@
     virtual ~TIoMapper() {}
 
     // grow the reflection stage by stage
-    bool addStage(EShLanguage, TIntermediate&);
+    bool addStage(EShLanguage, TIntermediate&, TInfoSink&);
 };
 
 } // end namespace glslang
diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h
index acfafb1..aae22ec 100644
--- a/glslang/MachineIndependent/localintermediate.h
+++ b/glslang/MachineIndependent/localintermediate.h
@@ -146,7 +146,8 @@
         shiftTextureBinding(0),
         shiftUboBinding(0),
         autoMapBindings(false),
-        flattenUniformArrays(false)
+        flattenUniformArrays(false),
+        useUnknownFormat(false)
     {
         localSize[0] = 1;
         localSize[1] = 1;
@@ -179,7 +180,9 @@
     bool getAutoMapBindings()             const { return autoMapBindings; }
     void setFlattenUniformArrays(bool flatten)      { flattenUniformArrays = flatten; }
     bool getFlattenUniformArrays()        const { return flattenUniformArrays; }
-
+    void setNoStorageFormat(bool b)             { useUnknownFormat = b; }
+    bool getNoStorageFormat()             const { return useUnknownFormat; }
+    
     void setVersion(int v) { version = v; }
     int getVersion() const { return version; }
     void setProfile(EProfile p) { profile = p; }
@@ -236,6 +239,13 @@
     TIntermBranch* addBranch(TOperator, TIntermTyped*, const TSourceLoc&);
     TIntermTyped* addSwizzle(TVectorFields&, const TSourceLoc&);
 
+    // Low level functions to add nodes (no conversions or other higher level transformations)
+    // If a type is provided, the node's type will be set to it.
+    TIntermBinary* addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc) const;
+    TIntermBinary* addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc, const TType&) const;
+    TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc) const;
+    TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc, const TType&) const;
+
     // Constant folding (in Constant.cpp)
     TIntermTyped* fold(TIntermAggregate* aggrNode);
     TIntermTyped* foldConstructor(TIntermAggregate* aggrNode);
@@ -390,6 +400,7 @@
     unsigned int shiftUboBinding;
     bool autoMapBindings;
     bool flattenUniformArrays;
+    bool useUnknownFormat;
 
     EProfile profile;
     int version;
diff --git a/glslang/OSDependent/Unix/ossource.cpp b/glslang/OSDependent/Unix/ossource.cpp
index 8e583ea..7e84d4e 100644
--- a/glslang/OSDependent/Unix/ossource.cpp
+++ b/glslang/OSDependent/Unix/ossource.cpp
@@ -165,11 +165,29 @@
 		return false;
 }
 
-// TODO: non-windows: if we need these on linux, flesh them out
-void InitGlobalLock() { }
-void GetGlobalLock() { }
-void ReleaseGlobalLock() { }
+namespace {
+pthread_mutex_t gMutex;
+}
 
+void InitGlobalLock()
+{
+  pthread_mutexattr_t mutexattr;
+  pthread_mutexattr_init(&mutexattr);
+  pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE);
+  pthread_mutex_init(&gMutex, &mutexattr);
+}
+
+void GetGlobalLock()
+{
+  pthread_mutex_lock(&gMutex);
+}
+
+void ReleaseGlobalLock()
+{
+  pthread_mutex_unlock(&gMutex);
+}
+
+// TODO: non-windows: if we need these on linux, flesh them out
 void* OS_CreateThread(TThreadEntrypoint /*entry*/)
 {
     return 0;
diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h
index 6b894c1..e5e8b4d 100644
--- a/glslang/Public/ShaderLang.h
+++ b/glslang/Public/ShaderLang.h
@@ -309,6 +309,7 @@
     void setShiftUboBinding(unsigned int base);
     void setAutoMapBindings(bool map);
     void setFlattenUniformArrays(bool flatten);
+    void setNoStorageFormat(bool useUnknownFormat);
 
     // Interface to #include handlers.
     //
diff --git a/gtests/HexFloat.cpp b/gtests/HexFloat.cpp
index 248513c..ddbee1f 100644
--- a/gtests/HexFloat.cpp
+++ b/gtests/HexFloat.cpp
@@ -690,10 +690,10 @@
   bool carry_bit = false;
 
   spvutils::round_direction rounding[] = {
-      spvutils::round_direction::kToZero,
-      spvutils::round_direction::kToNearestEven,
-      spvutils::round_direction::kToPositiveInfinity,
-      spvutils::round_direction::kToNegativeInfinity};
+      spvutils::kRoundToZero,
+      spvutils::kRoundToNearestEven,
+      spvutils::kRoundToPositiveInfinity,
+      spvutils::kRoundToNegativeInfinity};
 
   // Everything fits, so this should be straight-forward
   for (spvutils::round_direction round : rounding) {
@@ -725,7 +725,6 @@
   }
 }
 
-using RD = spvutils::round_direction;
 struct RoundSignificandCase {
   float source_float;
   std::pair<int16_t, bool> expected_results;
@@ -751,49 +750,49 @@
 INSTANTIATE_TEST_CASE_P(F32ToF16, HexFloatRoundTest,
   ::testing::ValuesIn(std::vector<RoundSignificandCase>(
   {
-    {float_fractions({0}), std::make_pair(half_bits_set({}), false), RD::kToZero},
-    {float_fractions({0}), std::make_pair(half_bits_set({}), false), RD::kToNearestEven},
-    {float_fractions({0}), std::make_pair(half_bits_set({}), false), RD::kToPositiveInfinity},
-    {float_fractions({0}), std::make_pair(half_bits_set({}), false), RD::kToNegativeInfinity},
-    {float_fractions({0, 1}), std::make_pair(half_bits_set({0}), false), RD::kToZero},
+    {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToZero},
+    {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToNearestEven},
+    {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToPositiveInfinity},
+    {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToNegativeInfinity},
+    {float_fractions({0, 1}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero},
 
-    {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), RD::kToZero},
-    {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0, 9}), false), RD::kToPositiveInfinity},
-    {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), RD::kToNegativeInfinity},
-    {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), RD::kToNearestEven},
+    {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero},
+    {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity},
+    {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity},
+    {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNearestEven},
 
-    {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), RD::kToZero},
-    {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), RD::kToPositiveInfinity},
-    {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNegativeInfinity},
-    {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), RD::kToNearestEven},
+    {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToZero},
+    {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), spvutils::kRoundToPositiveInfinity},
+    {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNegativeInfinity},
+    {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), spvutils::kRoundToNearestEven},
 
-    {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), RD::kToZero},
-    {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), RD::kToPositiveInfinity},
-    {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), RD::kToNegativeInfinity},
-    {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNearestEven},
+    {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero},
+    {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity},
+    {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity},
+    {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven},
 
-    {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), RD::kToZero},
-    {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), RD::kToPositiveInfinity},
-    {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNegativeInfinity},
-    {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNearestEven},
+    {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero},
+    {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToPositiveInfinity},
+    {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNegativeInfinity},
+    {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven},
 
-    {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), RD::kToZero},
-    {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), RD::kToPositiveInfinity},
-    {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), RD::kToNegativeInfinity},
-    {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), RD::kToNearestEven},
+    {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero},
+    {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity},
+    {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity},
+    {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven},
 
     // Carries
-    {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), RD::kToZero},
-    {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), RD::kToPositiveInfinity},
-    {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), RD::kToNegativeInfinity},
-    {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), RD::kToNearestEven},
+    {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), spvutils::kRoundToZero},
+    {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), spvutils::kRoundToPositiveInfinity},
+    {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), spvutils::kRoundToNegativeInfinity},
+    {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), spvutils::kRoundToNearestEven},
 
     // Cases where original number was denorm. Note: this should have no effect
     // the number is pre-normalized.
-    {static_cast<float>(ldexp(float_fractions({0, 1, 11, 13}), -128)), std::make_pair(half_bits_set({0}), false), RD::kToZero},
-    {static_cast<float>(ldexp(float_fractions({0, 1, 11, 13}), -129)), std::make_pair(half_bits_set({0, 9}), false), RD::kToPositiveInfinity},
-    {static_cast<float>(ldexp(float_fractions({0, 1, 11, 13}), -131)), std::make_pair(half_bits_set({0}), false), RD::kToNegativeInfinity},
-    {static_cast<float>(ldexp(float_fractions({0, 1, 11, 13}), -130)), std::make_pair(half_bits_set({0, 9}), false), RD::kToNearestEven},
+    {static_cast<float>(ldexp(float_fractions({0, 1, 11, 13}), -128)), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero},
+    {static_cast<float>(ldexp(float_fractions({0, 1, 11, 13}), -129)), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity},
+    {static_cast<float>(ldexp(float_fractions({0, 1, 11, 13}), -131)), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity},
+    {static_cast<float>(ldexp(float_fractions({0, 1, 11, 13}), -130)), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven},
   })),);
 // clang-format on
 
@@ -810,10 +809,10 @@
   bool carry_bit = false;
 
   spvutils::round_direction rounding[] = {
-      spvutils::round_direction::kToZero,
-      spvutils::round_direction::kToNearestEven,
-      spvutils::round_direction::kToPositiveInfinity,
-      spvutils::round_direction::kToNegativeInfinity};
+      spvutils::kRoundToZero,
+      spvutils::kRoundToNearestEven,
+      spvutils::kRoundToPositiveInfinity,
+      spvutils::kRoundToNegativeInfinity};
 
   // Everything fits, so everything should just be bit-shifts.
   for (spvutils::round_direction round : rounding) {
@@ -852,10 +851,10 @@
     return #round_direction
 
   switch (direction) {
-    CASE(spvutils::round_direction::kToZero);
-    CASE(spvutils::round_direction::kToPositiveInfinity);
-    CASE(spvutils::round_direction::kToNegativeInfinity);
-    CASE(spvutils::round_direction::kToNearestEven);
+    CASE(spvutils::kRoundToZero);
+    CASE(spvutils::kRoundToPositiveInfinity);
+    CASE(spvutils::kRoundToNegativeInfinity);
+    CASE(spvutils::kRoundToNearestEven);
   }
 #undef CASE
   return "";
@@ -884,35 +883,35 @@
   ::testing::ValuesIn(std::vector<DownCastTest>(
   {
     // Exactly representable as half.
-    {0.f, 0x0, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
-    {-0.f, 0x8000, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
-    {1.0f, 0x3C00, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
-    {-1.0f, 0xBC00, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
+    {0.f, 0x0, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
+    {-0.f, 0x8000, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
+    {1.0f, 0x3C00, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
+    {-1.0f, 0xBC00, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
 
-    {float_fractions({0, 1, 10}) , 0x3E01, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
-    {-float_fractions({0, 1, 10}) , 0xBE01, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
-    {static_cast<float>(ldexp(float_fractions({0, 1, 10}), 3)), 0x4A01, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
-    {static_cast<float>(-ldexp(float_fractions({0, 1, 10}), 3)), 0xCA01, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
+    {float_fractions({0, 1, 10}) , 0x3E01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
+    {-float_fractions({0, 1, 10}) , 0xBE01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
+    {static_cast<float>(ldexp(float_fractions({0, 1, 10}), 3)), 0x4A01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
+    {static_cast<float>(-ldexp(float_fractions({0, 1, 10}), 3)), 0xCA01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
 
 
     // Underflow
-    {static_cast<float>(ldexp(1.0f, -25)), 0x0, {RD::kToZero, RD::kToNegativeInfinity, RD::kToNearestEven}},
-    {static_cast<float>(ldexp(1.0f, -25)), 0x1, {RD::kToPositiveInfinity}},
-    {static_cast<float>(-ldexp(1.0f, -25)), 0x8000, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNearestEven}},
-    {static_cast<float>(-ldexp(1.0f, -25)), 0x8001, {RD::kToNegativeInfinity}},
-    {static_cast<float>(ldexp(1.0f, -24)), 0x1, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
+    {static_cast<float>(ldexp(1.0f, -25)), 0x0, {spvutils::kRoundToZero, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
+    {static_cast<float>(ldexp(1.0f, -25)), 0x1, {spvutils::kRoundToPositiveInfinity}},
+    {static_cast<float>(-ldexp(1.0f, -25)), 0x8000, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNearestEven}},
+    {static_cast<float>(-ldexp(1.0f, -25)), 0x8001, {spvutils::kRoundToNegativeInfinity}},
+    {static_cast<float>(ldexp(1.0f, -24)), 0x1, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
 
     // Overflow
-    {static_cast<float>(ldexp(1.0f, 16)), positive_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
-    {static_cast<float>(ldexp(1.0f, 18)), positive_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
-    {static_cast<float>(ldexp(1.3f, 16)), positive_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
-    {static_cast<float>(-ldexp(1.0f, 16)), negative_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
-    {static_cast<float>(-ldexp(1.0f, 18)), negative_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
-    {static_cast<float>(-ldexp(1.3f, 16)), negative_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
+    {static_cast<float>(ldexp(1.0f, 16)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
+    {static_cast<float>(ldexp(1.0f, 18)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
+    {static_cast<float>(ldexp(1.3f, 16)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
+    {static_cast<float>(-ldexp(1.0f, 16)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
+    {static_cast<float>(-ldexp(1.0f, 18)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
+    {static_cast<float>(-ldexp(1.3f, 16)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
 
     // Transfer of Infinities
-    {std::numeric_limits<float>::infinity(), positive_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
-    {-std::numeric_limits<float>::infinity(), negative_infinity, {RD::kToZero, RD::kToPositiveInfinity, RD::kToNegativeInfinity, RD::kToNearestEven}},
+    {std::numeric_limits<float>::infinity(), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
+    {-std::numeric_limits<float>::infinity(), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}},
 
     // Nans are below because we cannot test for equality.
   })),);
@@ -929,10 +928,10 @@
   HF16 f(GetParam().source_half);
 
   spvutils::round_direction rounding[] = {
-      spvutils::round_direction::kToZero,
-      spvutils::round_direction::kToNearestEven,
-      spvutils::round_direction::kToPositiveInfinity,
-      spvutils::round_direction::kToNegativeInfinity};
+      spvutils::kRoundToZero,
+      spvutils::kRoundToNearestEven,
+      spvutils::kRoundToPositiveInfinity,
+      spvutils::kRoundToNegativeInfinity};
 
   // Everything fits, so everything should just be bit-shifts.
   for (spvutils::round_direction round : rounding) {
@@ -972,10 +971,10 @@
   using HF = spvutils::HexFloat<spvutils::FloatProxy<float>>;
   using HF16 = spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>>;
   spvutils::round_direction rounding[] = {
-      spvutils::round_direction::kToZero,
-      spvutils::round_direction::kToNearestEven,
-      spvutils::round_direction::kToPositiveInfinity,
-      spvutils::round_direction::kToNegativeInfinity};
+      spvutils::kRoundToZero,
+      spvutils::kRoundToNearestEven,
+      spvutils::kRoundToPositiveInfinity,
+      spvutils::kRoundToNegativeInfinity};
 
   // Everything fits, so everything should just be bit-shifts.
   for (spvutils::round_direction round : rounding) {
diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp
index 7b64217..b50816a 100644
--- a/gtests/Hlsl.FromFile.cpp
+++ b/gtests/Hlsl.FromFile.cpp
@@ -83,8 +83,10 @@
         {"hlsl.amend.frag", "f1"},
         {"hlsl.array.frag", "PixelShaderFunction"},
         {"hlsl.array.implicit-size.frag", "PixelShaderFunction"},
+        {"hlsl.array.multidim.frag", "main"},
         {"hlsl.assoc.frag", "PixelShaderFunction"},
         {"hlsl.attribute.frag", "PixelShaderFunction"},
+        {"hlsl.basic.comp", "main"},
         {"hlsl.buffer.frag", "PixelShaderFunction"},
         {"hlsl.calculatelod.dx10.frag", "main"},
         {"hlsl.calculatelodunclamped.dx10.frag", "main"},
@@ -134,6 +136,7 @@
         {"hlsl.load.basic.dx10.frag", "main"},
         {"hlsl.load.basic.dx10.vert", "main"},
         {"hlsl.load.buffer.dx10.frag", "main"},
+        {"hlsl.load.buffer.float.dx10.frag", "main"},
         {"hlsl.load.rwbuffer.dx10.frag", "main"},
         {"hlsl.load.rwtexture.dx10.frag", "main"},
         {"hlsl.load.rwtexture.array.dx10.frag", "main"},
@@ -147,6 +150,9 @@
         {"hlsl.pp.line.frag", "main"},
         {"hlsl.precise.frag", "main"},
         {"hlsl.promotions.frag", "main"},
+        {"hlsl.rw.bracket.frag", "main"},
+        {"hlsl.rw.scalar.bracket.frag", "main"},
+        {"hlsl.rw.vec2.bracket.frag", "main"},
         {"hlsl.sample.array.dx10.frag", "main"},
         {"hlsl.sample.basic.dx10.frag", "main"},
         {"hlsl.sample.offset.dx10.frag", "main"},
@@ -173,6 +179,7 @@
         {"hlsl.samplelevel.basic.dx10.vert", "main"},
         {"hlsl.samplelevel.offset.dx10.frag", "main"},
         {"hlsl.samplelevel.offsetarray.dx10.frag", "main"},
+        { "hlsl.sample.sub-vec4.dx10.frag", "main"},
         {"hlsl.semicolons.frag", "main"},
         {"hlsl.shapeConv.frag", "main"},
         {"hlsl.shapeConvRet.frag", "main"},
@@ -190,6 +197,7 @@
         {"hlsl.switch.frag", "PixelShaderFunction"},
         {"hlsl.swizzle.frag", "PixelShaderFunction"},
         {"hlsl.templatetypes.frag", "PixelShaderFunction"},
+        {"hlsl.tx.bracket.frag", "main"},
         {"hlsl.typedef.frag", "PixelShaderFunction"},
         {"hlsl.whileLoop.frag", "PixelShaderFunction"},
         {"hlsl.void.frag", "PixelShaderFunction"},
diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp
index 64312a3..a55af51 100644
--- a/gtests/Spv.FromFile.cpp
+++ b/gtests/Spv.FromFile.cpp
@@ -287,6 +287,10 @@
         { "spv.register.noautoassign.frag", "main_ep", 5, 10, 15, false, false },
         { "spv.register.autoassign-2.frag", "main", 5, 10, 15, true, true },
         { "spv.buffer.autoassign.frag", "main", 5, 10, 15, true, true },
+        { "spv.register.autoassign.rangetest.frag", "main", 
+                glslang::TQualifier::layoutBindingEnd-2,
+                glslang::TQualifier::layoutBindingEnd+5,
+                20, true, false },
     }),
     FileNameAsCustomTestSuffixIoMap
 );
diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp
index 626d299..7766f85 100755
--- a/hlsl/hlslGrammar.cpp
+++ b/hlsl/hlslGrammar.cpp
@@ -907,12 +907,6 @@
             return false;
         }
 
-        if (txType.getVectorSize() != 1 && txType.getVectorSize() != 4) {
-            // TODO: handle vec2/3 types
-            expected("vector size not yet supported in texture type");
-            return false;
-        }
-
         if (ms && acceptTokenClass(EHTokComma)) {
             // read sample count for multisample types, if given
             if (! peekTokenClass(EHTokIntConstant)) {
@@ -937,24 +931,14 @@
     }
 
     TArraySizes* arraySizes = nullptr;
-    const bool shadow = !image && (txType.isScalar() || (txType.isVector() && txType.getVectorSize() == 1));
+    const bool shadow = false; // declared on the sampler
 
     TSampler sampler;
     TLayoutFormat format = ElfNone;
 
-    // RWBuffer and RWTexture (images) require a TLayoutFormat.  We handle only a limit set.
-    if (image) {
-        if (txType.getVectorSize() != 4)
-            expected("4 component image");
-
-        switch (txType.getBasicType()) {
-        case EbtFloat: format = ElfRgba32f;  break;
-        case EbtInt:   format = ElfRgba32i;  break;
-        case EbtUint:  format = ElfRgba32ui; break;
-        default:
-            expected("unknown basic type in image format");
-        }
-    }
+    // Buffer, RWBuffer and RWTexture (images) require a TLayoutFormat.  We handle only a limit set.
+    if (image || dim == EsdBuffer)
+        format = parseContext.getLayoutFromTxType(token.loc, txType);
 
     // Non-image Buffers are combined
     if (dim == EsdBuffer && !image) {
@@ -967,6 +951,9 @@
             sampler.setTexture(txType.getBasicType(), dim, array, shadow, ms);
         }
     }
+
+    // Remember the declared vector size.
+    sampler.vectorSize = txType.getVectorSize();
     
     type.shallowCopy(TType(sampler, EvqUniform, arraySizes));
     type.getQualifier().layoutFormat = format;
@@ -1783,6 +1770,8 @@
     }
 
     node = parseContext.handleAssign(loc, assignOp, node, rightNode);
+    node = parseContext.handleLvalue(loc, "assign", node);
+
     if (node == nullptr) {
         parseContext.error(loc, "could not create assignment", "", "");
         return false;
@@ -1946,6 +1935,7 @@
         return true;
 
     node = intermediate.addUnaryMath(unaryOp, node, loc);
+    node = parseContext.handleLvalue(loc, "unary operator", node);
 
     return node != nullptr;
 }
@@ -2061,6 +2051,7 @@
         case EOpPostDecrement:
             // DEC_OP
             node = intermediate.addUnaryMath(postOp, node, loc);
+            node = parseContext.handleLvalue(loc, "unary operator", node);
             break;
         default:
             assert(0);
@@ -2676,35 +2667,40 @@
 }
 
 // array_specifier
-//      : LEFT_BRACKET integer_expression RGHT_BRACKET post_decls // optional
-//      : LEFT_BRACKET RGHT_BRACKET post_decls // optional
+//      : LEFT_BRACKET integer_expression RGHT_BRACKET ... // optional
+//      : LEFT_BRACKET RGHT_BRACKET // optional
 //
 void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes)
 {
     arraySizes = nullptr;
 
-    if (! acceptTokenClass(EHTokLeftBracket))
+    // Early-out if there aren't any array dimensions
+    if (!peekTokenClass(EHTokLeftBracket))
         return;
 
-    TSourceLoc loc = token.loc;
-    TIntermTyped* sizeExpr = nullptr;
-
-    // Array sizing expression is optional.  If ommitted, array is implicitly sized.
-    const bool hasArraySize = acceptAssignmentExpression(sizeExpr);
-
-    if (! acceptTokenClass(EHTokRightBracket)) {
-        expected("]");
-        return;
-    }
-
+    // If we get here, we have at least one array dimension.  This will track the sizes we find.
     arraySizes = new TArraySizes;
-    
-    if (hasArraySize) {
-        TArraySize arraySize;
-        parseContext.arraySizeCheck(loc, sizeExpr, arraySize);
-        arraySizes->addInnerSize(arraySize);
-    } else {
-        arraySizes->addInnerSize();  // implicitly sized
+
+    // Collect each array dimension.
+    while (acceptTokenClass(EHTokLeftBracket)) {
+        TSourceLoc loc = token.loc;
+        TIntermTyped* sizeExpr = nullptr;
+
+        // Array sizing expression is optional.  If ommitted, array will be later sized by initializer list.
+        const bool hasArraySize = acceptAssignmentExpression(sizeExpr);
+
+        if (! acceptTokenClass(EHTokRightBracket)) {
+            expected("]");
+            return;
+        }
+
+        if (hasArraySize) {
+            TArraySize arraySize;
+            parseContext.arraySizeCheck(loc, sizeExpr, arraySize);
+            arraySizes->addInnerSize(arraySize);
+        } else {
+            arraySizes->addInnerSize(0);  // sized by initializers.
+        }
     }
 }
 
diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp
index 4eda44d..b4c417d 100755
--- a/hlsl/hlslParseHelper.cpp
+++ b/hlsl/hlslParseHelper.cpp
@@ -130,6 +130,299 @@
     return numErrors == 0;
 }
 
+//
+// Return true if this l-value node should be converted in some manner.
+// For instance: turning a load aggregate into a store in an l-value.
+//
+bool HlslParseContext::shouldConvertLValue(const TIntermNode* node) const
+{
+    if (node == nullptr)
+        return false;
+
+    const TIntermAggregate* lhsAsAggregate = node->getAsAggregate();
+
+    if (lhsAsAggregate != nullptr && lhsAsAggregate->getOp() == EOpImageLoad)
+        return true;
+
+    return false;
+}
+
+//
+// Return a TLayoutFormat corresponding to the given texture type.
+//
+TLayoutFormat HlslParseContext::getLayoutFromTxType(const TSourceLoc& loc, const TType& txType)
+{
+    const int components = txType.getVectorSize();
+
+    const auto selectFormat = [this,&components](TLayoutFormat v1, TLayoutFormat v2, TLayoutFormat v4) {
+        if (intermediate.getNoStorageFormat())
+            return ElfNone;
+
+        return components == 1 ? v1 :
+               components == 2 ? v2 : v4;
+    };
+
+    switch (txType.getBasicType()) {
+    case EbtFloat: return selectFormat(ElfR32f,  ElfRg32f,  ElfRgba32f);
+    case EbtInt:   return selectFormat(ElfR32i,  ElfRg32i,  ElfRgba32i);
+    case EbtUint:  return selectFormat(ElfR32ui, ElfRg32ui, ElfRgba32ui);
+    default:
+        error(loc, "unknown basic type in image format", "", "");
+        return ElfNone;
+    }
+}
+
+//
+// Both test and if necessary, spit out an error, to see if the node is really
+// an l-value that can be operated on this way.
+//
+// Returns true if there was an error.
+//
+bool HlslParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node)
+{
+    if (shouldConvertLValue(node)) {
+        // if we're writing to a texture, it must be an RW form.
+
+        TIntermAggregate* lhsAsAggregate = node->getAsAggregate();
+        TIntermTyped* object = lhsAsAggregate->getSequence()[0]->getAsTyped();
+        
+        if (!object->getType().getSampler().isImage()) {
+            error(loc, "operator[] on a non-RW texture must be an r-value", "", "");
+            return true;
+        }
+    }
+
+    // Let the base class check errors
+    return TParseContextBase::lValueErrorCheck(loc, op, node);
+}
+
+//
+// This function handles l-value conversions and verifications.  It uses, but is not synonymous
+// with lValueErrorCheck.  That function accepts an l-value directly, while this one must be
+// given the surrounding tree - e.g, with an assignment, so we can convert the assign into a
+// series of other image operations.
+//
+// Most things are passed through unmodified, except for error checking.
+// 
+TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* op, TIntermTyped* node)
+{
+    if (node == nullptr)
+        return nullptr;
+
+    TIntermBinary* nodeAsBinary = node->getAsBinaryNode();
+    TIntermUnary* nodeAsUnary = node->getAsUnaryNode();
+    TIntermAggregate* sequence = nullptr;
+
+    TIntermTyped* lhs = nodeAsUnary  ? nodeAsUnary->getOperand() :
+                        nodeAsBinary ? nodeAsBinary->getLeft() :
+                        nullptr;
+
+    // Early bail out if there is no conversion to apply
+    if (!shouldConvertLValue(lhs)) {
+        if (lhs != nullptr)
+            if (lValueErrorCheck(loc, op, lhs))
+                return nullptr;
+        return node;
+    }
+
+    // *** If we get here, we're going to apply some conversion to an l-value.
+
+    // Helper to create a load.
+    const auto makeLoad = [&](TIntermSymbol* rhsTmp, TIntermTyped* object, TIntermTyped* coord, const TType& derefType) {
+        TIntermAggregate* loadOp = new TIntermAggregate(EOpImageLoad);
+        loadOp->setLoc(loc);
+        loadOp->getSequence().push_back(object);
+        loadOp->getSequence().push_back(intermediate.addSymbol(*coord->getAsSymbolNode()));
+        loadOp->setType(derefType);
+
+        sequence = intermediate.growAggregate(sequence,
+                                              intermediate.addAssign(EOpAssign, rhsTmp, loadOp, loc),
+                                              loc);
+    };
+
+    // Helper to create a store.
+    const auto makeStore = [&](TIntermTyped* object, TIntermTyped* coord, TIntermSymbol* rhsTmp) {
+        TIntermAggregate* storeOp = new TIntermAggregate(EOpImageStore);
+        storeOp->getSequence().push_back(object);
+        storeOp->getSequence().push_back(coord);
+        storeOp->getSequence().push_back(intermediate.addSymbol(*rhsTmp));
+        storeOp->setLoc(loc);
+        storeOp->setType(TType(EbtVoid));
+
+        sequence = intermediate.growAggregate(sequence, storeOp);
+    };
+
+    // Helper to create an assign.
+    const auto makeBinary = [&](TOperator op, TIntermTyped* lhs, TIntermTyped* rhs) {
+        sequence = intermediate.growAggregate(sequence,
+                                              intermediate.addBinaryNode(op, lhs, rhs, loc, lhs->getType()),
+                                              loc);
+    };
+
+    // Helper to complete sequence by adding trailing variable, so we evaluate to the right value.
+    const auto finishSequence = [&](TIntermSymbol* rhsTmp, const TType& derefType) {
+        // Add a trailing use of the temp, so the sequence returns the proper value.
+        sequence = intermediate.growAggregate(sequence, intermediate.addSymbol(*rhsTmp));
+        sequence->setOperator(EOpSequence);
+        sequence->setLoc(loc);
+        sequence->setType(derefType);
+
+        return sequence;
+    };
+
+    // Helper to add unary op
+    const auto makeUnary = [&](TOperator op, TIntermSymbol* rhsTmp) {
+        sequence = intermediate.growAggregate(sequence,
+                                              intermediate.addUnaryNode(op, intermediate.addSymbol(*rhsTmp), loc,
+                                                                        rhsTmp->getType()),
+                                              loc);
+    };
+
+    // helper to create a temporary variable
+    const auto addTmpVar = [&](const char* name, const TType& derefType) {
+        TVariable* tmpVar = makeInternalVariable(name, derefType);
+        tmpVar->getWritableType().getQualifier().makeTemporary();
+        return intermediate.addSymbol(*tmpVar, loc);
+    };
+    
+    TIntermAggregate* lhsAsAggregate = lhs->getAsAggregate();
+    TIntermTyped* object = lhsAsAggregate->getSequence()[0]->getAsTyped();
+    TIntermTyped* coord  = lhsAsAggregate->getSequence()[1]->getAsTyped();
+
+    const TSampler& texSampler = object->getType().getSampler();
+
+    const TType objDerefType(texSampler.type, EvqTemporary, texSampler.vectorSize);
+
+    if (nodeAsBinary) {
+        TIntermTyped* rhs = nodeAsBinary->getRight();
+        const TOperator assignOp = nodeAsBinary->getOp();
+
+        bool isModifyOp = false;
+
+        switch (assignOp) {
+        case EOpAddAssign:
+        case EOpSubAssign:
+        case EOpMulAssign:
+        case EOpVectorTimesMatrixAssign:
+        case EOpVectorTimesScalarAssign:
+        case EOpMatrixTimesScalarAssign:
+        case EOpMatrixTimesMatrixAssign:
+        case EOpDivAssign:
+        case EOpModAssign:
+        case EOpAndAssign:
+        case EOpInclusiveOrAssign:
+        case EOpExclusiveOrAssign:
+        case EOpLeftShiftAssign:
+        case EOpRightShiftAssign:
+            isModifyOp = true;
+            // fall through...
+        case EOpAssign:
+            {
+                // Since this is an lvalue, we'll convert an image load to a sequence like this (to still provide the value):
+                //   OpSequence
+                //      OpImageStore(object, lhs, rhs)
+                //      rhs
+                // But if it's not a simple symbol RHS (say, a fn call), we don't want to duplicate the RHS, so we'll convert
+                // instead to this:
+                //   OpSequence
+                //      rhsTmp = rhs
+                //      OpImageStore(object, coord, rhsTmp)
+                //      rhsTmp
+                // If this is a read-modify-write op, like +=, we issue:
+                //   OpSequence
+                //      coordtmp = load's param1
+                //      rhsTmp = OpImageLoad(object, coordTmp)
+                //      rhsTmp op= rhs
+                //      OpImageStore(object, coordTmp, rhsTmp)
+                //      rhsTmp
+
+                TIntermSymbol* rhsTmp = rhs->getAsSymbolNode();
+                TIntermTyped* coordTmp = coord;
+ 
+                if (rhsTmp == nullptr || isModifyOp) {
+                    rhsTmp = addTmpVar("storeTemp", objDerefType);
+
+                    // Assign storeTemp = rhs
+                    if (isModifyOp) {
+                        // We have to make a temp var for the coordinate, to avoid evaluating it twice.
+                        coordTmp = addTmpVar("coordTemp", coord->getType());
+                        makeBinary(EOpAssign, coordTmp, coord); // coordtmp = load[param1]
+                        makeLoad(rhsTmp, object, coordTmp, objDerefType); // rhsTmp = OpImageLoad(object, coordTmp)
+                    }
+
+                    // rhsTmp op= rhs.
+                    makeBinary(assignOp, intermediate.addSymbol(*rhsTmp), rhs);
+                }
+                
+                makeStore(object, coordTmp, rhsTmp);         // add a store
+                return finishSequence(rhsTmp, objDerefType); // return rhsTmp from sequence
+            }
+
+        default:
+            break;
+        }
+    }
+
+    if (nodeAsUnary) {
+        const TOperator assignOp = nodeAsUnary->getOp();
+
+        switch (assignOp) {
+        case EOpPreIncrement:
+        case EOpPreDecrement:
+            {
+                // We turn this into:
+                //   OpSequence
+                //      coordtmp = load's param1
+                //      rhsTmp = OpImageLoad(object, coordTmp)
+                //      rhsTmp op
+                //      OpImageStore(object, coordTmp, rhsTmp)
+                //      rhsTmp
+                
+                TIntermSymbol* rhsTmp = addTmpVar("storeTemp", objDerefType);
+                TIntermTyped* coordTmp = addTmpVar("coordTemp", coord->getType());
+ 
+                makeBinary(EOpAssign, coordTmp, coord);           // coordtmp = load[param1]
+                makeLoad(rhsTmp, object, coordTmp, objDerefType); // rhsTmp = OpImageLoad(object, coordTmp)
+                makeUnary(assignOp, rhsTmp);                      // op rhsTmp
+                makeStore(object, coordTmp, rhsTmp);              // OpImageStore(object, coordTmp, rhsTmp)
+                return finishSequence(rhsTmp, objDerefType);      // return rhsTmp from sequence
+            }
+
+        case EOpPostIncrement:
+        case EOpPostDecrement:
+            {
+                // We turn this into:
+                //   OpSequence
+                //      coordtmp = load's param1
+                //      rhsTmp1 = OpImageLoad(object, coordTmp)
+                //      rhsTmp2 = rhsTmp1
+                //      rhsTmp2 op
+                //      OpImageStore(object, coordTmp, rhsTmp2)
+                //      rhsTmp1 (pre-op value)
+                TIntermSymbol* rhsTmp1 = addTmpVar("storeTempPre",  objDerefType);
+                TIntermSymbol* rhsTmp2 = addTmpVar("storeTempPost", objDerefType);
+                TIntermTyped* coordTmp = addTmpVar("coordTemp", coord->getType());
+
+                makeBinary(EOpAssign, coordTmp, coord);            // coordtmp = load[param1]
+                makeLoad(rhsTmp1, object, coordTmp, objDerefType); // rhsTmp1 = OpImageLoad(object, coordTmp)
+                makeBinary(EOpAssign, rhsTmp2, rhsTmp1);           // rhsTmp2 = rhsTmp1
+                makeUnary(assignOp, rhsTmp2);                      // rhsTmp op
+                makeStore(object, coordTmp, rhsTmp2);              // OpImageStore(object, coordTmp, rhsTmp2)
+                return finishSequence(rhsTmp1, objDerefType);      // return rhsTmp from sequence
+            }
+                
+        default:
+            break;
+        }
+    }
+
+    if (lhs)
+        if (lValueErrorCheck(loc, op, lhs))
+            return nullptr;
+ 
+    return node;
+}
+
 void HlslParseContext::handlePragma(const TSourceLoc& loc, const TVector<TString>& tokens)
 {
     if (pragmaCallback)
@@ -298,11 +591,44 @@
 }
 
 //
+// Handle operator[] on any objects it applies to.  Currently:
+//    Textures
+//    Buffers
+//
+TIntermTyped* HlslParseContext::handleBracketOperator(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index)
+{
+    // handle r-value operator[] on textures and images.  l-values will be processed later.
+    if (base->getType().getBasicType() == EbtSampler && !base->isArray()) {
+        const TSampler& sampler = base->getType().getSampler();
+        if (sampler.isImage() || sampler.isTexture()) {
+            TIntermAggregate* load = new TIntermAggregate(sampler.isImage() ? EOpImageLoad : EOpTextureFetch);
+
+            load->setType(TType(sampler.type, EvqTemporary, sampler.vectorSize));
+            load->setLoc(loc);
+            load->getSequence().push_back(base);
+            load->getSequence().push_back(index);
+
+            // Textures need a MIP.  First indirection is always to mip 0.  If there's another, we'll add it
+            // later.
+            if (sampler.isTexture())
+                load->getSequence().push_back(intermediate.addConstantUnion(0, loc, true));
+
+            return load;
+        }
+    }
+
+    return nullptr;
+}
+
+//
 // Handle seeing a base[index] dereference in the grammar.
 //
 TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index)
 {
-    TIntermTyped* result = nullptr;
+    TIntermTyped* result = handleBracketOperator(loc, base, index);
+
+    if (result != nullptr)
+        return result;  // it was handled as an operator[]
 
     bool flattened = false;
     int indexValue = 0;
@@ -425,10 +751,10 @@
                field == "SampleLevel") {
         // If it's not a method on a sampler object, we fall through in case it is a struct member.
         if (base->getType().getBasicType() == EbtSampler) {
-            const TSampler& texType = base->getType().getSampler();
-            if (! texType.isPureSampler()) {
-                const int vecSize = texType.isShadow() ? 1 : 4;
-                return intermediate.addMethod(base, TType(texType.type, EvqTemporary, vecSize), &field, loc);
+            const TSampler& sampler = base->getType().getSampler();
+            if (! sampler.isPureSampler()) {
+                const int vecSize = sampler.isShadow() ? 1 : 4; // TODO: handle arbitrary sample return sizes
+                return intermediate.addMethod(base, TType(sampler.type, EvqTemporary, vecSize), &field, loc);
             }
         }
     }
@@ -937,6 +1263,9 @@
 // to intermediate.addAssign().
 TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op, TIntermTyped* left, TIntermTyped* right) const
 {
+    if (left == nullptr || right == nullptr)
+        return nullptr;
+
     const auto mustFlatten = [&](const TIntermTyped& node) {
         return shouldFlatten(node.getType()) && node.getAsSymbolNode() &&
                flattenMap.find(node.getAsSymbolNode()->getId()) != flattenMap.end();
@@ -1001,7 +1330,7 @@
 
     const auto getMember = [&](bool flatten, TIntermTyped* node,
                                const TVector<TVariable*>& memberVariables, int member,
-                               TOperator op, const TType& memberType) {
+                               TOperator op, const TType& memberType) -> TIntermTyped * {
         TIntermTyped* subTree;
         if (flatten)
             subTree = intermediate.addSymbol(*memberVariables[member]);
@@ -1111,6 +1440,23 @@
     if (!node || !node->getAsOperator())
         return;
 
+    const auto clampReturn = [&loc, &node, this](TIntermTyped* result, const TSampler& sampler) {
+        // Sampler return must always be a vec4, but we can construct a shorter vector
+        result->setType(TType(node->getType().getBasicType(), EvqTemporary, node->getVectorSize()));
+
+        if (sampler.vectorSize < (unsigned)node->getVectorSize()) {
+            // Too many components.  Construct shorter vector from it.
+            const TType clampedType(result->getType().getBasicType(), EvqTemporary, sampler.vectorSize);
+
+            const TOperator op = intermediate.mapTypeToConstructorOp(clampedType);
+
+            result = constructBuiltIn(clampedType, op, result, loc, false);
+        }
+
+        result->setLoc(loc);
+        return result;
+    };
+
     const TOperator op  = node->getAsOperator()->getOp();
     const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr;
 
@@ -1119,10 +1465,8 @@
     case EOpTexture:
         {
             // Texture with ddx & ddy is really gradient form in HLSL
-            if (argAggregate->getSequence().size() == 4) {
+            if (argAggregate->getSequence().size() == 4)
                 node->getAsAggregate()->setOperator(EOpTextureGrad);
-                break;
-            }
 
             break;
         }
@@ -1138,14 +1482,16 @@
             TIntermTyped* bias = intermediate.addIndex(EOpIndexDirect, arg1, w, loc);
 
             TOperator constructOp = EOpNull;
-            switch (arg0->getType().getSampler().dim) {
+            const TSampler& sampler = arg0->getType().getSampler();
+
+            switch (sampler.dim) {
             case Esd1D:   constructOp = EOpConstructFloat; break; // 1D
             case Esd2D:   constructOp = EOpConstructVec2;  break; // 2D
             case Esd3D:   constructOp = EOpConstructVec3;  break; // 3D
             case EsdCube: constructOp = EOpConstructVec3;  break; // also 3D
             default: break;
             }
-            
+
             TIntermAggregate* constructCoord = new TIntermAggregate(constructOp);
             constructCoord->getSequence().push_back(arg1);
             constructCoord->setLoc(loc);
@@ -1154,8 +1500,8 @@
             tex->getSequence().push_back(arg0);           // sampler
             tex->getSequence().push_back(constructCoord); // coordinate
             tex->getSequence().push_back(bias);           // bias
-            tex->setLoc(loc);
-            node = tex;
+            
+            node = clampReturn(tex, sampler);
 
             break;
         }
@@ -1169,6 +1515,7 @@
             TIntermTyped* argCoord  = argAggregate->getSequence()[2]->getAsTyped();
             TIntermTyped* argBias   = nullptr;
             TIntermTyped* argOffset = nullptr;
+            const TSampler& sampler = argTex->getType().getSampler();
 
             int nextArg = 3;
 
@@ -1194,9 +1541,7 @@
             if (argOffset != nullptr)
                 txsample->getSequence().push_back(argOffset);
 
-            txsample->setType(node->getType());
-            txsample->setLoc(loc);
-            node = txsample;
+            node = clampReturn(txsample, sampler);
 
             break;
         }
@@ -1209,6 +1554,7 @@
             TIntermTyped* argDDX    = argAggregate->getSequence()[3]->getAsTyped();
             TIntermTyped* argDDY    = argAggregate->getSequence()[4]->getAsTyped();
             TIntermTyped* argOffset = nullptr;
+            const TSampler& sampler = argTex->getType().getSampler();
 
             TOperator textureOp = EOpTextureGrad;
 
@@ -1228,9 +1574,7 @@
             if (argOffset != nullptr)
                 txsample->getSequence().push_back(argOffset);
 
-            txsample->setType(node->getType());
-            txsample->setLoc(loc);
-            node = txsample;
+            node = clampReturn(txsample, sampler);
 
             break;
         }
@@ -1249,9 +1593,9 @@
 
             assert(texType.getBasicType() == EbtSampler);
 
-            const TSampler& texSampler = texType.getSampler();
-            const TSamplerDim dim = texSampler.dim;
-            const bool isImage = texSampler.isImage();
+            const TSampler& sampler = texType.getSampler();
+            const TSamplerDim dim = sampler.dim;
+            const bool isImage = sampler.isImage();
             const int numArgs = (int)argAggregate->getSequence().size();
 
             int numDims = 0;
@@ -1261,17 +1605,17 @@
             case Esd2D:     numDims = 2; break; // W, H
             case Esd3D:     numDims = 3; break; // W, H, D
             case EsdCube:   numDims = 2; break; // W, H (cube)
-            case EsdBuffer: numDims = 1; break; // buffers
+            case EsdBuffer: numDims = 1; break; // W (buffers)
             default:
                 assert(0 && "unhandled texture dimension");
             }
 
             // Arrayed adds another dimension for the number of array elements
-            if (texSampler.isArrayed())
+            if (sampler.isArrayed())
                 ++numDims;
 
             // Establish whether we're querying mip levels
-            const bool mipQuery = (numArgs > (numDims + 1)) && (!texSampler.isMultiSample());
+            const bool mipQuery = (numArgs > (numDims + 1)) && (!sampler.isMultiSample());
 
             // AST assumes integer return.  Will be converted to float if required.
             TIntermAggregate* sizeQuery = new TIntermAggregate(isImage ? EOpImageQuerySize : EOpTextureQuerySize);
@@ -1329,7 +1673,7 @@
             }
 
             // 2DMS formats query # samples, which needs a different query op
-            if (texSampler.isMultiSample()) {
+            if (sampler.isMultiSample()) {
                 TIntermTyped* outParam = argAggregate->getSequence()[outParamBase + numDims]->getAsTyped();
 
                 TIntermAggregate* samplesQuery = new TIntermAggregate(EOpImageQuerySamples);
@@ -1418,9 +1762,10 @@
             TIntermTyped* lodComponent = nullptr;
             TIntermTyped* coordSwizzle = nullptr;
 
-            const bool isMS = argTex->getType().getSampler().isMultiSample();
-            const bool isBuffer = argTex->getType().getSampler().dim == EsdBuffer;
-            const bool isImage = argTex->getType().getSampler().isImage();
+            const TSampler& sampler = argTex->getType().getSampler();
+            const bool isMS = sampler.isMultiSample();
+            const bool isBuffer = sampler.dim == EsdBuffer;
+            const bool isImage = sampler.isImage();
             const TBasicType coordBaseType = argCoord->getType().getBasicType();
 
             // Last component of coordinate is the mip level, for non-MS.  we separate them here:
@@ -1474,9 +1819,7 @@
                 txfetch->getSequence().push_back(argOffset);
             }
 
-            txfetch->setType(node->getType());
-            txfetch->setLoc(loc);
-            node = txfetch;
+            node = clampReturn(txfetch, sampler);
 
             break;
         }
@@ -1488,7 +1831,8 @@
             TIntermTyped* argCoord  = argAggregate->getSequence()[2]->getAsTyped();
             TIntermTyped* argLod    = argAggregate->getSequence()[3]->getAsTyped();
             TIntermTyped* argOffset = nullptr;
-
+            const TSampler& sampler = argTex->getType().getSampler();
+            
             const int  numArgs = (int)argAggregate->getSequence().size();
 
             if (numArgs == 5) // offset, if present
@@ -1506,9 +1850,7 @@
             if (argOffset != nullptr)
                 txsample->getSequence().push_back(argOffset);
 
-            txsample->setType(node->getType());
-            txsample->setLoc(loc);
-            node = txsample;
+            node = clampReturn(txsample, sampler);
 
             break;
         }
@@ -2260,12 +2602,13 @@
 //
 // Returns a node of a subtree that evaluates to the return value of the function.
 //
-TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& function, TIntermAggregate& intermNode) const
+TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& function, TIntermAggregate& intermNode)
 {
     TIntermSequence& arguments = intermNode.getSequence();
     const auto needsConversion = [&](int argNum) {
         return function[argNum].type->getQualifier().isParamOutput() &&
                (*function[argNum].type != arguments[argNum]->getAsTyped()->getType() ||
+                shouldConvertLValue(arguments[argNum]) ||
                 shouldFlatten(arguments[argNum]->getAsTyped()->getType()));
     };
 
@@ -2313,7 +2656,8 @@
             TIntermSymbol* tempArgNode = intermediate.addSymbol(*tempArg, intermNode.getLoc());
 
             // This makes the deepest level, the member-wise copy
-            TIntermTyped* tempAssign = handleAssign(arguments[i]->getLoc(), EOpAssign, arguments[i]->getAsTyped(), tempArgNode)->getAsAggregate();
+            TIntermTyped* tempAssign = handleAssign(arguments[i]->getLoc(), EOpAssign, arguments[i]->getAsTyped(), tempArgNode);
+            tempAssign = handleLvalue(arguments[i]->getLoc(), "assign", tempAssign);
             conversionTree = intermediate.growAggregate(conversionTree, tempAssign, arguments[i]->getLoc());
 
             // replace the argument with another node for the same tempArg variable
@@ -2591,6 +2935,8 @@
         qualifier.builtIn = EbvTessLevelInner;
     else if (semanticUpperCase == "SV_GSINSTANCEID")
         qualifier.builtIn = EbvInvocationId;
+    else if (semanticUpperCase == "SV_DISPATCHTHREADID")
+        qualifier.builtIn = EbvLocalInvocationId;
     else if (semanticUpperCase == "SV_GROUPTHREADID")
         qualifier.builtIn = EbvLocalInvocationId;
     else if (semanticUpperCase == "SV_GROUPID")
@@ -2599,6 +2945,8 @@
         qualifier.builtIn = EbvTessCoord;
     else if (semanticUpperCase == "SV_DEPTH")
         qualifier.builtIn = EbvFragDepth;
+    else if( semanticUpperCase == "SV_COVERAGE")
+        qualifier.builtIn = EbvSampleMask;
 
     //TODO, these need to get refined to be more specific 
     else if( semanticUpperCase == "SV_DEPTHGREATEREQUAL")
@@ -2606,9 +2954,9 @@
     else if( semanticUpperCase == "SV_DEPTHLESSEQUAL")
         qualifier.builtIn = EbvFragDepthLesser;
     else if( semanticUpperCase == "SV_STENCILREF")
-        error(loc, "unimplemented", "SV_STENCILREF", "");
-    else if( semanticUpperCase == "SV_COVERAGE")
-        error(loc, "unimplemented", "SV_COVERAGE", "");
+        error(loc, "unimplemented; need ARB_shader_stencil_export", "SV_STENCILREF", "");
+    else if( semanticUpperCase == "SV_GROUPINDEX")
+        error(loc, "unimplemented", "SV_GROUPINDEX", "");
 }
 
 //
@@ -2693,7 +3041,7 @@
 
     // space
     unsigned int setNumber;
-    const auto crackSpace = [&]() {
+    const auto crackSpace = [&]() -> bool {
         const int spaceLen = 5;
         if (spaceDesc->size() < spaceLen + 1)
             return false;
@@ -3889,7 +4237,7 @@
     symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn);
     
     // can 'from' convert to 'to'?
-    const auto convertible = [this](const TType& from, const TType& to) {
+    const auto convertible = [this](const TType& from, const TType& to) -> bool {
         if (from == to)
             return true;
 
@@ -3916,7 +4264,7 @@
     // Is 'to2' a better conversion than 'to1'?
     // Ties should not be considered as better.
     // Assumes 'convertible' already said true.
-    const auto better = [](const TType& from, const TType& to1, const TType& to2) {
+    const auto better = [](const TType& from, const TType& to1, const TType& to2) -> bool {
         // exact match is always better than mismatch
         if (from == to2)
             return from != to1;
@@ -3943,7 +4291,7 @@
         //     - 32 vs. 64 bit (or width in general)
         //       - bool vs. non bool
         //         - signed vs. not signed
-        const auto linearize = [](const TBasicType& basicType) {
+        const auto linearize = [](const TBasicType& basicType) -> int {
             switch (basicType) {
             case EbtBool:     return 1;
             case EbtInt:      return 10;
diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h
index c8ebdbe..2eeba5a 100755
--- a/hlsl/hlslParseHelper.h
+++ b/hlsl/hlslParseHelper.h
@@ -61,6 +61,7 @@
     void handlePragma(const TSourceLoc&, const TVector<TString>&);
     TIntermTyped* handleVariable(const TSourceLoc&, TSymbol* symbol,  const TString* string);
     TIntermTyped* handleBracketDereference(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index);
+    TIntermTyped* handleBracketOperator(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index);
     void checkIndex(const TSourceLoc&, const TType&, int& index);
 
     TIntermTyped* handleBinaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right);
@@ -80,7 +81,7 @@
     void decomposeSampleMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments);
     TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*);
     void addInputArgumentConversions(const TFunction&, TIntermNode*&) const;
-    TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&) const;
+    TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&);
     void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&);
     TFunction* handleConstructorCall(const TSourceLoc&, const TType&);
     void handleSemantic(TSourceLoc, TQualifier&, const TString& semantic);
@@ -151,6 +152,12 @@
     void pushSwitchSequence(TIntermSequence* sequence) { switchSequenceStack.push_back(sequence); }
     void popSwitchSequence() { switchSequenceStack.pop_back(); }
 
+    // Apply L-value conversions.  E.g, turning a write to a RWTexture into an ImageStore.
+    TIntermTyped* handleLvalue(const TSourceLoc&, const char* op, TIntermTyped* node);
+    bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override;
+
+    TLayoutFormat getLayoutFromTxType(const TSourceLoc&, const TType&);
+
 protected:
     void inheritGlobalDefaults(TQualifier& dst) const;
     TVariable* makeInternalVariable(const char* name, const TType&) const;
@@ -160,6 +167,9 @@
     TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer);
     TOperator mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage);
 
+    // Return true if this node requires L-value conversion (e.g, to an imageStore).
+    bool shouldConvertLValue(const TIntermNode*) const;
+
     // Array and struct flattening
     bool shouldFlatten(const TType& type) const { return shouldFlattenIO(type) || shouldFlattenUniform(type); }
     TIntermTyped* flattenAccess(TIntermTyped* base, int member);
diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp
index a2d500f..d33cfb8 100755
--- a/hlsl/hlslParseables.cpp
+++ b/hlsl/hlslParseables.cpp
@@ -708,15 +708,15 @@
         { "SampleLevel",        /*!O*/        "V4",    nullptr,   "%@,S,V,S",       "FIU,S,F,",      EShLangAll },
         { "SampleLevel",        /* O*/        "V4",    nullptr,   "%@,S,V,S,V",     "FIU,S,F,,I",    EShLangAll },
 
-        { "Load",               /*!O*/        "V4",    nullptr,   "%@*,V",          "FIU,I",         EShLangAll },
+        { "Load",               /*!O*/        "V4",    nullptr,   "%@,V",           "FIU,I",         EShLangAll },
         { "Load",               /* O*/        "V4",    nullptr,   "%@,V,V",         "FIU,I,I",       EShLangAll },
         { "Load", /* +sampleidex*/            "V4",    nullptr,   "$&,V,S",         "FIU,I,I",       EShLangAll },
         { "Load", /* +samplindex, offset*/    "V4",    nullptr,   "$&,V,S,V",       "FIU,I,I,I",     EShLangAll },
 
         // RWTexture loads
         { "Load",                             "V4",    nullptr,   "!#,V",           "FIU,I",         EShLangAll },
-        // RWBuffer loads
-        { "Load",                             "V4",    nullptr,   "~1,V",           "FIU,I",         EShLangAll },
+        // (RW)Buffer loads
+        { "Load",                             "V4",    nullptr,   "~*1,V",           "FIU,I",         EShLangAll },
 
         { "Gather",             /*!O*/        "V4",    nullptr,   "%@,S,V",         "FIU,S,F",       EShLangAll },
         { "Gather",             /* O*/        "V4",    nullptr,   "%@,S,V,V",       "FIU,S,F,I",     EShLangAll },
