SPV: projective texturing: move the project coordinate.

SPV doesn't allow gaps in the components of the texturing coordinate.
It also removes the shadow reference.
So, close up the components so all used components are together.
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index 39b4ea6..b41afc5 100755
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -2677,6 +2677,30 @@
         }
     }
 
+    // projective component (might not to move)
+    // GLSL: "The texture coordinates consumed from P, not including the last component of P,
+    //       are divided by the last component of P."
+    // SPIR-V:  "... (u [, v] [, w], q)... It may be a vector larger than needed, but all
+    //          unused components will appear after all used components."
+    if (cracked.proj) {
+        int projSourceComp = builder.getNumComponents(params.coords) - 1;
+        int projTargetComp;
+        switch (sampler.dim) {
+        case glslang::Esd1D:   projTargetComp = 1;              break;
+        case glslang::Esd2D:   projTargetComp = 2;              break;
+        case glslang::EsdRect: projTargetComp = 2;              break;
+        default:               projTargetComp = projSourceComp; break;
+        }
+        // copy the projective coordinate if we have to
+        if (projTargetComp != projSourceComp) {
+            spv::Id projComp = builder.createCompositeExtract(params.coords, 
+                                                              builder.getScalarTypeId(builder.getTypeId(params.coords)),
+                                                              projSourceComp);
+            params.coords = builder.createCompositeInsert(projComp, params.coords,
+                                                          builder.getTypeId(params.coords), projTargetComp);
+        }
+    }
+
     return builder.createTextureCall(precision, convertGlslangToSpvType(node->getType()), sparse, cracked.fetch, cracked.proj, cracked.gather, noImplicitLod, params);
 }
 
diff --git a/Test/baseResults/spv.400.frag.out b/Test/baseResults/spv.400.frag.out
index 4af713c..f06b0fc 100644
--- a/Test/baseResults/spv.400.frag.out
+++ b/Test/baseResults/spv.400.frag.out
@@ -7,7 +7,7 @@
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 1112
+// Id's are bound by 1114
 
                               Capability Shader
                               Capability Float64
@@ -16,7 +16,7 @@
                               Capability SampledRect
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 13 1025 1031 1036 1048 1074 1095 1097 1103 1105
+                              EntryPoint Fragment 4  "main" 13 1027 1033 1038 1050 1076 1097 1099 1105 1107
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 400
                               SourceExtension  "GL_ARB_separate_shader_objects"
@@ -25,45 +25,45 @@
                               Name 8  "doubles("
                               Name 13  "outp"
                               Name 17  "u2drs"
-                              Name 39  "doublev"
-                              Name 43  "dvec2v"
-                              Name 48  "dvec3v"
-                              Name 53  "dvec4v"
-                              Name 428  "boolv"
-                              Name 437  "bvec2v"
-                              Name 446  "bvec3v"
-                              Name 455  "bvec4v"
-                              Name 737  "dmat2v"
-                              Name 743  "dmat3v"
-                              Name 749  "dmat4v"
-                              Name 755  "dmat2x3v"
-                              Name 761  "dmat3x2v"
-                              Name 767  "dmat2x4v"
-                              Name 773  "dmat4x2v"
-                              Name 779  "dmat3x4v"
-                              Name 785  "dmat4x3v"
-                              Name 1017  "v"
-                              Name 1023  "arrayedSampler"
-                              Name 1025  "i"
-                              Name 1031  "c2D"
-                              Name 1036  "gl_ClipDistance"
-                              Name 1048  "uoutp"
-                              Name 1052  "samp2dr"
-                              Name 1074  "ioutp"
-                              Name 1078  "isamp2DA"
-                              Name 1095  "gl_FragCoord"
-                              Name 1097  "vl2"
-                              Name 1103  "uo"
-                              Name 1105  "u"
+                              Name 41  "doublev"
+                              Name 45  "dvec2v"
+                              Name 50  "dvec3v"
+                              Name 55  "dvec4v"
+                              Name 430  "boolv"
+                              Name 439  "bvec2v"
+                              Name 448  "bvec3v"
+                              Name 457  "bvec4v"
+                              Name 739  "dmat2v"
+                              Name 745  "dmat3v"
+                              Name 751  "dmat4v"
+                              Name 757  "dmat2x3v"
+                              Name 763  "dmat3x2v"
+                              Name 769  "dmat2x4v"
+                              Name 775  "dmat4x2v"
+                              Name 781  "dmat3x4v"
+                              Name 787  "dmat4x3v"
+                              Name 1019  "v"
+                              Name 1025  "arrayedSampler"
+                              Name 1027  "i"
+                              Name 1033  "c2D"
+                              Name 1038  "gl_ClipDistance"
+                              Name 1050  "uoutp"
+                              Name 1054  "samp2dr"
+                              Name 1076  "ioutp"
+                              Name 1080  "isamp2DA"
+                              Name 1097  "gl_FragCoord"
+                              Name 1099  "vl2"
+                              Name 1105  "uo"
+                              Name 1107  "u"
                               Decorate 17(u2drs) DescriptorSet 0
-                              Decorate 1023(arrayedSampler) DescriptorSet 0
-                              Decorate 1025(i) Flat
-                              Decorate 1036(gl_ClipDistance) BuiltIn ClipDistance
-                              Decorate 1052(samp2dr) DescriptorSet 0
-                              Decorate 1078(isamp2DA) DescriptorSet 0
-                              Decorate 1095(gl_FragCoord) BuiltIn FragCoord
-                              Decorate 1097(vl2) Location 6
-                              Decorate 1105(u) Flat
+                              Decorate 1025(arrayedSampler) DescriptorSet 0
+                              Decorate 1027(i) Flat
+                              Decorate 1038(gl_ClipDistance) BuiltIn ClipDistance
+                              Decorate 1054(samp2dr) DescriptorSet 0
+                              Decorate 1080(isamp2DA) DescriptorSet 0
+                              Decorate 1097(gl_FragCoord) BuiltIn FragCoord
+                              Decorate 1099(vl2) Location 6
+                              Decorate 1107(u) Flat
                2:             TypeVoid
                3:             TypeFunction 2
               10:             TypeFloat 32
@@ -82,166 +82,166 @@
               25:     23(int) Constant 3
               26:     23(int) Constant 4
               27:   24(ivec2) ConstantComposite 25 26
-              30:             TypeInt 32 0
-              31:     30(int) Constant 0
-              32:             TypePointer Output 10(float)
-              37:             TypeFloat 64
-              38:             TypePointer Function 37(float)
-              40:   37(float) Constant 2507418074 1073430332
-              41:             TypeVector 37(float) 2
-              42:             TypePointer Function 41(fvec2)
-              44:   37(float) Constant 796182188 1073367658
-              45:   41(fvec2) ConstantComposite 44 44
-              46:             TypeVector 37(float) 3
-              47:             TypePointer Function 46(fvec3)
-              49:   37(float) Constant 1719614413 1073127582
-              50:   46(fvec3) ConstantComposite 49 49 49
-              51:             TypeVector 37(float) 4
-              52:             TypePointer Function 51(fvec4)
-             426:             TypeBool
-             427:             TypePointer Function 426(bool)
-             435:             TypeVector 426(bool) 2
-             436:             TypePointer Function 435(bvec2)
-             444:             TypeVector 426(bool) 3
-             445:             TypePointer Function 444(bvec3)
-             453:             TypeVector 426(bool) 4
-             454:             TypePointer Function 453(bvec4)
-             561:   426(bool) ConstantFalse
-             570:  435(bvec2) ConstantComposite 561 561
-             579:  444(bvec3) ConstantComposite 561 561 561
-             588:  453(bvec4) ConstantComposite 561 561 561 561
-             735:             TypeMatrix 41(fvec2) 2
-             736:             TypePointer Function 735
-             741:             TypeMatrix 46(fvec3) 3
-             742:             TypePointer Function 741
-             747:             TypeMatrix 51(fvec4) 4
-             748:             TypePointer Function 747
-             753:             TypeMatrix 46(fvec3) 2
-             754:             TypePointer Function 753
-             759:             TypeMatrix 41(fvec2) 3
-             760:             TypePointer Function 759
-             765:             TypeMatrix 51(fvec4) 2
-             766:             TypePointer Function 765
-             771:             TypeMatrix 41(fvec2) 4
-             772:             TypePointer Function 771
-             777:             TypeMatrix 51(fvec4) 3
-             778:             TypePointer Function 777
-             783:             TypeMatrix 46(fvec3) 4
-             784:             TypePointer Function 783
-             952:     30(int) Constant 1
-             956:     30(int) Constant 2
-             960:     30(int) Constant 3
-             964:     23(int) Constant 1
-             968:     23(int) Constant 2
-             994:   10(float) Constant 1065353216
-            1016:             TypePointer Function 11(fvec4)
-            1018:             TypeImage 10(float) 2D sampled format:Unknown
-            1019:             TypeSampledImage 1018
-            1020:     30(int) Constant 5
-            1021:             TypeArray 1019 1020
-            1022:             TypePointer UniformConstant 1021
-1023(arrayedSampler):   1022(ptr) Variable UniformConstant
-            1024:             TypePointer Input 23(int)
-         1025(i):   1024(ptr) Variable Input
-            1027:             TypePointer UniformConstant 1019
-            1030:             TypePointer Input 20(fvec2)
-       1031(c2D):   1030(ptr) Variable Input
-            1034:             TypeArray 10(float) 956
-            1035:             TypePointer Input 1034
-1036(gl_ClipDistance):   1035(ptr) Variable Input
-            1037:             TypePointer Input 10(float)
-            1041:             TypeVector 10(float) 3
-            1046:             TypeVector 30(int) 4
-            1047:             TypePointer Output 1046(ivec4)
-     1048(uoutp):   1047(ptr) Variable Output
-            1049:             TypeImage 30(int) Rect sampled format:Unknown
-            1050:             TypeSampledImage 1049
-            1051:             TypePointer UniformConstant 1050
-   1052(samp2dr):   1051(ptr) Variable UniformConstant
-            1055:     30(int) Constant 4
-            1056:             TypeArray 24(ivec2) 1055
-            1057:   24(ivec2) ConstantComposite 964 968
-            1058:     23(int) Constant 15
-            1059:     23(int) Constant 16
-            1060:   24(ivec2) ConstantComposite 1058 1059
-            1061:     23(int) Constant 4294967294
-            1062:     23(int) Constant 0
-            1063:   24(ivec2) ConstantComposite 1061 1062
-            1064:        1056 ConstantComposite 1057 27 1060 1063
-            1072:             TypeVector 23(int) 4
-            1073:             TypePointer Output 1072(ivec4)
-     1074(ioutp):   1073(ptr) Variable Output
-            1075:             TypeImage 23(int) 2D array sampled format:Unknown
-            1076:             TypeSampledImage 1075
-            1077:             TypePointer UniformConstant 1076
-  1078(isamp2DA):   1077(ptr) Variable UniformConstant
-            1080:   10(float) Constant 1036831949
-            1081: 1041(fvec3) ConstantComposite 1080 1080 1080
-            1082:   24(ivec2) ConstantComposite 964 964
-            1094:             TypePointer Input 11(fvec4)
-1095(gl_FragCoord):   1094(ptr) Variable Input
-       1097(vl2):   1094(ptr) Variable Input
-            1102:             TypePointer Output 30(int)
-        1103(uo):   1102(ptr) Variable Output
-            1104:             TypePointer Input 30(int)
-         1105(u):   1104(ptr) Variable Input
+              32:             TypeInt 32 0
+              33:     32(int) Constant 0
+              34:             TypePointer Output 10(float)
+              39:             TypeFloat 64
+              40:             TypePointer Function 39(float)
+              42:   39(float) Constant 2507418074 1073430332
+              43:             TypeVector 39(float) 2
+              44:             TypePointer Function 43(fvec2)
+              46:   39(float) Constant 796182188 1073367658
+              47:   43(fvec2) ConstantComposite 46 46
+              48:             TypeVector 39(float) 3
+              49:             TypePointer Function 48(fvec3)
+              51:   39(float) Constant 1719614413 1073127582
+              52:   48(fvec3) ConstantComposite 51 51 51
+              53:             TypeVector 39(float) 4
+              54:             TypePointer Function 53(fvec4)
+             428:             TypeBool
+             429:             TypePointer Function 428(bool)
+             437:             TypeVector 428(bool) 2
+             438:             TypePointer Function 437(bvec2)
+             446:             TypeVector 428(bool) 3
+             447:             TypePointer Function 446(bvec3)
+             455:             TypeVector 428(bool) 4
+             456:             TypePointer Function 455(bvec4)
+             563:   428(bool) ConstantFalse
+             572:  437(bvec2) ConstantComposite 563 563
+             581:  446(bvec3) ConstantComposite 563 563 563
+             590:  455(bvec4) ConstantComposite 563 563 563 563
+             737:             TypeMatrix 43(fvec2) 2
+             738:             TypePointer Function 737
+             743:             TypeMatrix 48(fvec3) 3
+             744:             TypePointer Function 743
+             749:             TypeMatrix 53(fvec4) 4
+             750:             TypePointer Function 749
+             755:             TypeMatrix 48(fvec3) 2
+             756:             TypePointer Function 755
+             761:             TypeMatrix 43(fvec2) 3
+             762:             TypePointer Function 761
+             767:             TypeMatrix 53(fvec4) 2
+             768:             TypePointer Function 767
+             773:             TypeMatrix 43(fvec2) 4
+             774:             TypePointer Function 773
+             779:             TypeMatrix 53(fvec4) 3
+             780:             TypePointer Function 779
+             785:             TypeMatrix 48(fvec3) 4
+             786:             TypePointer Function 785
+             954:     32(int) Constant 1
+             958:     32(int) Constant 2
+             962:     32(int) Constant 3
+             966:     23(int) Constant 1
+             970:     23(int) Constant 2
+             996:   10(float) Constant 1065353216
+            1018:             TypePointer Function 11(fvec4)
+            1020:             TypeImage 10(float) 2D sampled format:Unknown
+            1021:             TypeSampledImage 1020
+            1022:     32(int) Constant 5
+            1023:             TypeArray 1021 1022
+            1024:             TypePointer UniformConstant 1023
+1025(arrayedSampler):   1024(ptr) Variable UniformConstant
+            1026:             TypePointer Input 23(int)
+         1027(i):   1026(ptr) Variable Input
+            1029:             TypePointer UniformConstant 1021
+            1032:             TypePointer Input 20(fvec2)
+       1033(c2D):   1032(ptr) Variable Input
+            1036:             TypeArray 10(float) 958
+            1037:             TypePointer Input 1036
+1038(gl_ClipDistance):   1037(ptr) Variable Input
+            1039:             TypePointer Input 10(float)
+            1043:             TypeVector 10(float) 3
+            1048:             TypeVector 32(int) 4
+            1049:             TypePointer Output 1048(ivec4)
+     1050(uoutp):   1049(ptr) Variable Output
+            1051:             TypeImage 32(int) Rect sampled format:Unknown
+            1052:             TypeSampledImage 1051
+            1053:             TypePointer UniformConstant 1052
+   1054(samp2dr):   1053(ptr) Variable UniformConstant
+            1057:     32(int) Constant 4
+            1058:             TypeArray 24(ivec2) 1057
+            1059:   24(ivec2) ConstantComposite 966 970
+            1060:     23(int) Constant 15
+            1061:     23(int) Constant 16
+            1062:   24(ivec2) ConstantComposite 1060 1061
+            1063:     23(int) Constant 4294967294
+            1064:     23(int) Constant 0
+            1065:   24(ivec2) ConstantComposite 1063 1064
+            1066:        1058 ConstantComposite 1059 27 1062 1065
+            1074:             TypeVector 23(int) 4
+            1075:             TypePointer Output 1074(ivec4)
+     1076(ioutp):   1075(ptr) Variable Output
+            1077:             TypeImage 23(int) 2D array sampled format:Unknown
+            1078:             TypeSampledImage 1077
+            1079:             TypePointer UniformConstant 1078
+  1080(isamp2DA):   1079(ptr) Variable UniformConstant
+            1082:   10(float) Constant 1036831949
+            1083: 1043(fvec3) ConstantComposite 1082 1082 1082
+            1084:   24(ivec2) ConstantComposite 966 966
+            1096:             TypePointer Input 11(fvec4)
+1097(gl_FragCoord):   1096(ptr) Variable Input
+       1099(vl2):   1096(ptr) Variable Input
+            1104:             TypePointer Output 32(int)
+        1105(uo):   1104(ptr) Variable Output
+            1106:             TypePointer Input 32(int)
+         1107(u):   1106(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
-         1017(v):   1016(ptr) Variable Function
-            1026:     23(int) Load 1025(i)
-            1028:   1027(ptr) AccessChain 1023(arrayedSampler) 1026
-            1029:        1019 Load 1028
-            1032:   20(fvec2) Load 1031(c2D)
-            1033:   11(fvec4) ImageSampleImplicitLod 1029 1032
-                              Store 1017(v) 1033
-            1038:   1037(ptr) AccessChain 1036(gl_ClipDistance) 964
-            1039:   10(float) Load 1038
-            1040:     32(ptr) AccessChain 13(outp) 31
-                              Store 1040 1039
-            1042:   11(fvec4) Load 1017(v)
-            1043: 1041(fvec3) VectorShuffle 1042 1042 1 2 3
-            1044:   11(fvec4) Load 13(outp)
-            1045:   11(fvec4) VectorShuffle 1044 1043 0 4 5 6
-                              Store 13(outp) 1045
-            1053:        1050 Load 1052(samp2dr)
-            1054:   20(fvec2) Load 1031(c2D)
-            1065: 1046(ivec4) ImageGather 1053 1054 968 ConstOffsets 1064
-                              Store 1048(uoutp) 1065
-            1066:   1027(ptr) AccessChain 1023(arrayedSampler) 1062
-            1067:        1019 Load 1066
-            1068:   20(fvec2) Load 1031(c2D)
-            1069:   11(fvec4) ImageGather 1067 1068 1062
-            1070:   11(fvec4) Load 13(outp)
-            1071:   11(fvec4) FAdd 1070 1069
-                              Store 13(outp) 1071
-            1079:        1076 Load 1078(isamp2DA)
-            1083: 1072(ivec4) ImageGather 1079 1081 25 ConstOffset 1082
-                              Store 1074(ioutp) 1083
-            1084:        1076 Load 1078(isamp2DA)
-            1085: 1072(ivec4) ImageGather 1084 1081 25 ConstOffset 1082
-            1086: 1072(ivec4) Load 1074(ioutp)
-            1087: 1072(ivec4) IAdd 1086 1085
-                              Store 1074(ioutp) 1087
-            1088:        1076 Load 1078(isamp2DA)
-            1089:     23(int) Load 1025(i)
-            1090:   24(ivec2) CompositeConstruct 1089 1089
-            1091: 1072(ivec4) ImageGather 1088 1081 1062 Offset 1090
-            1092: 1072(ivec4) Load 1074(ioutp)
-            1093: 1072(ivec4) IAdd 1092 1091
-                              Store 1074(ioutp) 1093
-            1096:   11(fvec4) Load 1095(gl_FragCoord)
-            1098:   11(fvec4) Load 1097(vl2)
-            1099:   11(fvec4) FAdd 1096 1098
-            1100:   11(fvec4) Load 13(outp)
-            1101:   11(fvec4) FAdd 1100 1099
-                              Store 13(outp) 1101
-            1106:     30(int) Load 1105(u)
-            1107:     23(int) Load 1025(i)
-            1108:     30(int) Bitcast 1107
-            1109:     30(int) UMod 1106 1108
-                              Store 1103(uo) 1109
-            1110:           2 FunctionCall 6(foo23()
-            1111:           2 FunctionCall 8(doubles()
+         1019(v):   1018(ptr) Variable Function
+            1028:     23(int) Load 1027(i)
+            1030:   1029(ptr) AccessChain 1025(arrayedSampler) 1028
+            1031:        1021 Load 1030
+            1034:   20(fvec2) Load 1033(c2D)
+            1035:   11(fvec4) ImageSampleImplicitLod 1031 1034
+                              Store 1019(v) 1035
+            1040:   1039(ptr) AccessChain 1038(gl_ClipDistance) 966
+            1041:   10(float) Load 1040
+            1042:     34(ptr) AccessChain 13(outp) 33
+                              Store 1042 1041
+            1044:   11(fvec4) Load 1019(v)
+            1045: 1043(fvec3) VectorShuffle 1044 1044 1 2 3
+            1046:   11(fvec4) Load 13(outp)
+            1047:   11(fvec4) VectorShuffle 1046 1045 0 4 5 6
+                              Store 13(outp) 1047
+            1055:        1052 Load 1054(samp2dr)
+            1056:   20(fvec2) Load 1033(c2D)
+            1067: 1048(ivec4) ImageGather 1055 1056 970 ConstOffsets 1066
+                              Store 1050(uoutp) 1067
+            1068:   1029(ptr) AccessChain 1025(arrayedSampler) 1064
+            1069:        1021 Load 1068
+            1070:   20(fvec2) Load 1033(c2D)
+            1071:   11(fvec4) ImageGather 1069 1070 1064
+            1072:   11(fvec4) Load 13(outp)
+            1073:   11(fvec4) FAdd 1072 1071
+                              Store 13(outp) 1073
+            1081:        1078 Load 1080(isamp2DA)
+            1085: 1074(ivec4) ImageGather 1081 1083 25 ConstOffset 1084
+                              Store 1076(ioutp) 1085
+            1086:        1078 Load 1080(isamp2DA)
+            1087: 1074(ivec4) ImageGather 1086 1083 25 ConstOffset 1084
+            1088: 1074(ivec4) Load 1076(ioutp)
+            1089: 1074(ivec4) IAdd 1088 1087
+                              Store 1076(ioutp) 1089
+            1090:        1078 Load 1080(isamp2DA)
+            1091:     23(int) Load 1027(i)
+            1092:   24(ivec2) CompositeConstruct 1091 1091
+            1093: 1074(ivec4) ImageGather 1090 1083 1064 Offset 1092
+            1094: 1074(ivec4) Load 1076(ioutp)
+            1095: 1074(ivec4) IAdd 1094 1093
+                              Store 1076(ioutp) 1095
+            1098:   11(fvec4) Load 1097(gl_FragCoord)
+            1100:   11(fvec4) Load 1099(vl2)
+            1101:   11(fvec4) FAdd 1098 1100
+            1102:   11(fvec4) Load 13(outp)
+            1103:   11(fvec4) FAdd 1102 1101
+                              Store 13(outp) 1103
+            1108:     32(int) Load 1107(u)
+            1109:     23(int) Load 1027(i)
+            1110:     32(int) Bitcast 1109
+            1111:     32(int) UMod 1108 1110
+                              Store 1105(uo) 1111
+            1112:           2 FunctionCall 6(foo23()
+            1113:           2 FunctionCall 8(doubles()
                               Return
                               FunctionEnd
        6(foo23():           2 Function None 3
@@ -249,1137 +249,1139 @@
               18:          15 Load 17(u2drs)
               19:   11(fvec4) Load 13(outp)
               28:   10(float) CompositeExtract 19 2
-              29:   10(float) ImageSampleProjDrefExplicitLod 18 19 28 Grad ConstOffset 22 22 27
-              33:     32(ptr) AccessChain 13(outp) 31
-              34:   10(float) Load 33
-              35:   10(float) FAdd 34 29
-              36:     32(ptr) AccessChain 13(outp) 31
-                              Store 36 35
+              29:   10(float) CompositeExtract 19 3
+              30:   11(fvec4) CompositeInsert 29 19 2
+              31:   10(float) ImageSampleProjDrefExplicitLod 18 30 28 Grad ConstOffset 22 22 27
+              35:     34(ptr) AccessChain 13(outp) 33
+              36:   10(float) Load 35
+              37:   10(float) FAdd 36 31
+              38:     34(ptr) AccessChain 13(outp) 33
+                              Store 38 37
                               Return
                               FunctionEnd
      8(doubles():           2 Function None 3
                9:             Label
-     39(doublev):     38(ptr) Variable Function
-      43(dvec2v):     42(ptr) Variable Function
-      48(dvec3v):     47(ptr) Variable Function
-      53(dvec4v):     52(ptr) Variable Function
-      428(boolv):    427(ptr) Variable Function
-     437(bvec2v):    436(ptr) Variable Function
-     446(bvec3v):    445(ptr) Variable Function
-     455(bvec4v):    454(ptr) Variable Function
-             554:    427(ptr) Variable Function
-             563:    436(ptr) Variable Function
-             572:    445(ptr) Variable Function
-             581:    454(ptr) Variable Function
-     737(dmat2v):    736(ptr) Variable Function
-     743(dmat3v):    742(ptr) Variable Function
-     749(dmat4v):    748(ptr) Variable Function
-   755(dmat2x3v):    754(ptr) Variable Function
-   761(dmat3x2v):    760(ptr) Variable Function
-   767(dmat2x4v):    766(ptr) Variable Function
-   773(dmat4x2v):    772(ptr) Variable Function
-   779(dmat3x4v):    778(ptr) Variable Function
-   785(dmat4x3v):    784(ptr) Variable Function
-                              Store 39(doublev) 40
-                              Store 43(dvec2v) 45
-                              Store 48(dvec3v) 50
-              54:   37(float) Load 39(doublev)
-              55:   51(fvec4) CompositeConstruct 54 54 54 54
-              56:   51(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 55
-                              Store 53(dvec4v) 56
-              57:   37(float) Load 39(doublev)
-              58:   37(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 57
-              59:   37(float) Load 39(doublev)
-              60:   37(float) FAdd 59 58
-                              Store 39(doublev) 60
-              61:   41(fvec2) Load 43(dvec2v)
-              62:   41(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 61
-              63:   41(fvec2) Load 43(dvec2v)
-              64:   41(fvec2) FAdd 63 62
-                              Store 43(dvec2v) 64
-              65:   46(fvec3) Load 48(dvec3v)
-              66:   46(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 65
-              67:   46(fvec3) Load 48(dvec3v)
-              68:   46(fvec3) FAdd 67 66
-                              Store 48(dvec3v) 68
-              69:   51(fvec4) Load 53(dvec4v)
-              70:   51(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 69
-              71:   51(fvec4) Load 53(dvec4v)
-              72:   51(fvec4) FAdd 71 70
-                              Store 53(dvec4v) 72
-              73:   37(float) Load 39(doublev)
-              74:   37(float) ExtInst 1(GLSL.std.450) 4(FAbs) 73
-              75:   37(float) Load 39(doublev)
-              76:   37(float) FAdd 75 74
-                              Store 39(doublev) 76
-              77:   41(fvec2) Load 43(dvec2v)
-              78:   41(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 77
-              79:   41(fvec2) Load 43(dvec2v)
-              80:   41(fvec2) FAdd 79 78
-                              Store 43(dvec2v) 80
-              81:   46(fvec3) Load 48(dvec3v)
-              82:   46(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 81
-              83:   46(fvec3) Load 48(dvec3v)
-              84:   46(fvec3) FAdd 83 82
-                              Store 48(dvec3v) 84
-              85:   51(fvec4) Load 53(dvec4v)
-              86:   51(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 85
-              87:   51(fvec4) Load 53(dvec4v)
-              88:   51(fvec4) FAdd 87 86
-                              Store 53(dvec4v) 88
-              89:   37(float) Load 39(doublev)
-              90:   37(float) ExtInst 1(GLSL.std.450) 6(FSign) 89
-              91:   37(float) Load 39(doublev)
-              92:   37(float) FAdd 91 90
-                              Store 39(doublev) 92
-              93:   41(fvec2) Load 43(dvec2v)
-              94:   41(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 93
-              95:   41(fvec2) Load 43(dvec2v)
-              96:   41(fvec2) FAdd 95 94
-                              Store 43(dvec2v) 96
-              97:   46(fvec3) Load 48(dvec3v)
-              98:   46(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 97
-              99:   46(fvec3) Load 48(dvec3v)
-             100:   46(fvec3) FAdd 99 98
-                              Store 48(dvec3v) 100
-             101:   51(fvec4) Load 53(dvec4v)
-             102:   51(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 101
-             103:   51(fvec4) Load 53(dvec4v)
-             104:   51(fvec4) FAdd 103 102
-                              Store 53(dvec4v) 104
-             105:   37(float) Load 39(doublev)
-             106:   37(float) ExtInst 1(GLSL.std.450) 8(Floor) 105
-             107:   37(float) Load 39(doublev)
-             108:   37(float) FAdd 107 106
-                              Store 39(doublev) 108
-             109:   41(fvec2) Load 43(dvec2v)
-             110:   41(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 109
-             111:   41(fvec2) Load 43(dvec2v)
-             112:   41(fvec2) FAdd 111 110
-                              Store 43(dvec2v) 112
-             113:   46(fvec3) Load 48(dvec3v)
-             114:   46(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 113
-             115:   46(fvec3) Load 48(dvec3v)
-             116:   46(fvec3) FAdd 115 114
-                              Store 48(dvec3v) 116
-             117:   51(fvec4) Load 53(dvec4v)
-             118:   51(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 117
-             119:   51(fvec4) Load 53(dvec4v)
-             120:   51(fvec4) FAdd 119 118
-                              Store 53(dvec4v) 120
-             121:   37(float) Load 39(doublev)
-             122:   37(float) ExtInst 1(GLSL.std.450) 3(Trunc) 121
-             123:   37(float) Load 39(doublev)
-             124:   37(float) FAdd 123 122
-                              Store 39(doublev) 124
-             125:   41(fvec2) Load 43(dvec2v)
-             126:   41(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 125
-             127:   41(fvec2) Load 43(dvec2v)
-             128:   41(fvec2) FAdd 127 126
-                              Store 43(dvec2v) 128
-             129:   46(fvec3) Load 48(dvec3v)
-             130:   46(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 129
-             131:   46(fvec3) Load 48(dvec3v)
-             132:   46(fvec3) FAdd 131 130
-                              Store 48(dvec3v) 132
-             133:   51(fvec4) Load 53(dvec4v)
-             134:   51(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 133
-             135:   51(fvec4) Load 53(dvec4v)
-             136:   51(fvec4) FAdd 135 134
-                              Store 53(dvec4v) 136
-             137:   37(float) Load 39(doublev)
-             138:   37(float) ExtInst 1(GLSL.std.450) 1(Round) 137
-             139:   37(float) Load 39(doublev)
-             140:   37(float) FAdd 139 138
-                              Store 39(doublev) 140
-             141:   41(fvec2) Load 43(dvec2v)
-             142:   41(fvec2) ExtInst 1(GLSL.std.450) 1(Round) 141
-             143:   41(fvec2) Load 43(dvec2v)
-             144:   41(fvec2) FAdd 143 142
-                              Store 43(dvec2v) 144
-             145:   46(fvec3) Load 48(dvec3v)
-             146:   46(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 145
-             147:   46(fvec3) Load 48(dvec3v)
-             148:   46(fvec3) FAdd 147 146
-                              Store 48(dvec3v) 148
-             149:   51(fvec4) Load 53(dvec4v)
-             150:   51(fvec4) ExtInst 1(GLSL.std.450) 1(Round) 149
-             151:   51(fvec4) Load 53(dvec4v)
-             152:   51(fvec4) FAdd 151 150
-                              Store 53(dvec4v) 152
-             153:   37(float) Load 39(doublev)
-             154:   37(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 153
-             155:   37(float) Load 39(doublev)
-             156:   37(float) FAdd 155 154
-                              Store 39(doublev) 156
-             157:   41(fvec2) Load 43(dvec2v)
-             158:   41(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 157
-             159:   41(fvec2) Load 43(dvec2v)
-             160:   41(fvec2) FAdd 159 158
-                              Store 43(dvec2v) 160
-             161:   46(fvec3) Load 48(dvec3v)
-             162:   46(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 161
-             163:   46(fvec3) Load 48(dvec3v)
-             164:   46(fvec3) FAdd 163 162
-                              Store 48(dvec3v) 164
-             165:   51(fvec4) Load 53(dvec4v)
-             166:   51(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 165
-             167:   51(fvec4) Load 53(dvec4v)
-             168:   51(fvec4) FAdd 167 166
-                              Store 53(dvec4v) 168
-             169:   37(float) Load 39(doublev)
-             170:   37(float) ExtInst 1(GLSL.std.450) 9(Ceil) 169
-             171:   37(float) Load 39(doublev)
-             172:   37(float) FAdd 171 170
-                              Store 39(doublev) 172
-             173:   41(fvec2) Load 43(dvec2v)
-             174:   41(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 173
-             175:   41(fvec2) Load 43(dvec2v)
-             176:   41(fvec2) FAdd 175 174
-                              Store 43(dvec2v) 176
-             177:   46(fvec3) Load 48(dvec3v)
-             178:   46(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 177
-             179:   46(fvec3) Load 48(dvec3v)
-             180:   46(fvec3) FAdd 179 178
-                              Store 48(dvec3v) 180
-             181:   51(fvec4) Load 53(dvec4v)
-             182:   51(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 181
-             183:   51(fvec4) Load 53(dvec4v)
-             184:   51(fvec4) FAdd 183 182
-                              Store 53(dvec4v) 184
-             185:   37(float) Load 39(doublev)
-             186:   37(float) ExtInst 1(GLSL.std.450) 10(Fract) 185
-             187:   37(float) Load 39(doublev)
-             188:   37(float) FAdd 187 186
-                              Store 39(doublev) 188
-             189:   41(fvec2) Load 43(dvec2v)
-             190:   41(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 189
-             191:   41(fvec2) Load 43(dvec2v)
-             192:   41(fvec2) FAdd 191 190
-                              Store 43(dvec2v) 192
-             193:   46(fvec3) Load 48(dvec3v)
-             194:   46(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 193
-             195:   46(fvec3) Load 48(dvec3v)
-             196:   46(fvec3) FAdd 195 194
-                              Store 48(dvec3v) 196
-             197:   51(fvec4) Load 53(dvec4v)
-             198:   51(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 197
-             199:   51(fvec4) Load 53(dvec4v)
-             200:   51(fvec4) FAdd 199 198
-                              Store 53(dvec4v) 200
-             201:   37(float) Load 39(doublev)
-             202:   37(float) Load 39(doublev)
-             203:   37(float) FMod 201 202
-             204:   37(float) Load 39(doublev)
-             205:   37(float) FAdd 204 203
-                              Store 39(doublev) 205
-             206:   41(fvec2) Load 43(dvec2v)
-             207:   37(float) Load 39(doublev)
-             208:   41(fvec2) CompositeConstruct 207 207
-             209:   41(fvec2) FMod 206 208
-             210:   41(fvec2) Load 43(dvec2v)
-             211:   41(fvec2) FAdd 210 209
-                              Store 43(dvec2v) 211
-             212:   46(fvec3) Load 48(dvec3v)
-             213:   37(float) Load 39(doublev)
-             214:   46(fvec3) CompositeConstruct 213 213 213
-             215:   46(fvec3) FMod 212 214
-             216:   46(fvec3) Load 48(dvec3v)
-             217:   46(fvec3) FAdd 216 215
-                              Store 48(dvec3v) 217
-             218:   51(fvec4) Load 53(dvec4v)
-             219:   37(float) Load 39(doublev)
-             220:   51(fvec4) CompositeConstruct 219 219 219 219
-             221:   51(fvec4) FMod 218 220
-             222:   51(fvec4) Load 53(dvec4v)
-             223:   51(fvec4) FAdd 222 221
-                              Store 53(dvec4v) 223
-             224:   41(fvec2) Load 43(dvec2v)
-             225:   41(fvec2) Load 43(dvec2v)
-             226:   41(fvec2) FMod 224 225
-             227:   41(fvec2) Load 43(dvec2v)
-             228:   41(fvec2) FAdd 227 226
-                              Store 43(dvec2v) 228
-             229:   46(fvec3) Load 48(dvec3v)
-             230:   46(fvec3) Load 48(dvec3v)
-             231:   46(fvec3) FMod 229 230
-             232:   46(fvec3) Load 48(dvec3v)
-             233:   46(fvec3) FAdd 232 231
-                              Store 48(dvec3v) 233
-             234:   51(fvec4) Load 53(dvec4v)
-             235:   51(fvec4) Load 53(dvec4v)
-             236:   51(fvec4) FMod 234 235
-             237:   51(fvec4) Load 53(dvec4v)
-             238:   51(fvec4) FAdd 237 236
-                              Store 53(dvec4v) 238
-             239:   37(float) Load 39(doublev)
-             240:   37(float) ExtInst 1(GLSL.std.450) 35(Modf) 239 39(doublev)
-             241:   37(float) Load 39(doublev)
-             242:   37(float) FAdd 241 240
-                              Store 39(doublev) 242
-             243:   41(fvec2) Load 43(dvec2v)
-             244:   41(fvec2) ExtInst 1(GLSL.std.450) 35(Modf) 243 43(dvec2v)
-             245:   41(fvec2) Load 43(dvec2v)
-             246:   41(fvec2) FAdd 245 244
-                              Store 43(dvec2v) 246
-             247:   46(fvec3) Load 48(dvec3v)
-             248:   46(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 247 48(dvec3v)
-             249:   46(fvec3) Load 48(dvec3v)
-             250:   46(fvec3) FAdd 249 248
-                              Store 48(dvec3v) 250
-             251:   51(fvec4) Load 53(dvec4v)
-             252:   51(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 251 53(dvec4v)
-             253:   51(fvec4) Load 53(dvec4v)
-             254:   51(fvec4) FAdd 253 252
-                              Store 53(dvec4v) 254
-             255:   37(float) Load 39(doublev)
-             256:   37(float) Load 39(doublev)
-             257:   37(float) ExtInst 1(GLSL.std.450) 37(FMin) 255 256
-             258:   37(float) Load 39(doublev)
-             259:   37(float) FAdd 258 257
-                              Store 39(doublev) 259
-             260:   41(fvec2) Load 43(dvec2v)
-             261:   37(float) Load 39(doublev)
-             262:   41(fvec2) CompositeConstruct 261 261
-             263:   41(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 260 262
-             264:   41(fvec2) Load 43(dvec2v)
-             265:   41(fvec2) FAdd 264 263
-                              Store 43(dvec2v) 265
-             266:   46(fvec3) Load 48(dvec3v)
-             267:   37(float) Load 39(doublev)
-             268:   46(fvec3) CompositeConstruct 267 267 267
-             269:   46(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 266 268
-             270:   46(fvec3) Load 48(dvec3v)
-             271:   46(fvec3) FAdd 270 269
-                              Store 48(dvec3v) 271
-             272:   51(fvec4) Load 53(dvec4v)
-             273:   37(float) Load 39(doublev)
-             274:   51(fvec4) CompositeConstruct 273 273 273 273
-             275:   51(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 272 274
-             276:   51(fvec4) Load 53(dvec4v)
-             277:   51(fvec4) FAdd 276 275
-                              Store 53(dvec4v) 277
-             278:   41(fvec2) Load 43(dvec2v)
-             279:   41(fvec2) Load 43(dvec2v)
-             280:   41(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 278 279
-             281:   41(fvec2) Load 43(dvec2v)
-             282:   41(fvec2) FAdd 281 280
-                              Store 43(dvec2v) 282
-             283:   46(fvec3) Load 48(dvec3v)
-             284:   46(fvec3) Load 48(dvec3v)
-             285:   46(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 283 284
-             286:   46(fvec3) Load 48(dvec3v)
-             287:   46(fvec3) FAdd 286 285
-                              Store 48(dvec3v) 287
-             288:   51(fvec4) Load 53(dvec4v)
-             289:   51(fvec4) Load 53(dvec4v)
-             290:   51(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 288 289
-             291:   51(fvec4) Load 53(dvec4v)
-             292:   51(fvec4) FAdd 291 290
-                              Store 53(dvec4v) 292
-             293:   37(float) Load 39(doublev)
-             294:   37(float) Load 39(doublev)
-             295:   37(float) ExtInst 1(GLSL.std.450) 40(FMax) 293 294
-             296:   37(float) Load 39(doublev)
-             297:   37(float) FAdd 296 295
-                              Store 39(doublev) 297
-             298:   41(fvec2) Load 43(dvec2v)
-             299:   37(float) Load 39(doublev)
-             300:   41(fvec2) CompositeConstruct 299 299
-             301:   41(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 298 300
-             302:   41(fvec2) Load 43(dvec2v)
-             303:   41(fvec2) FAdd 302 301
-                              Store 43(dvec2v) 303
-             304:   46(fvec3) Load 48(dvec3v)
-             305:   37(float) Load 39(doublev)
-             306:   46(fvec3) CompositeConstruct 305 305 305
-             307:   46(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 304 306
-             308:   46(fvec3) Load 48(dvec3v)
-             309:   46(fvec3) FAdd 308 307
-                              Store 48(dvec3v) 309
-             310:   51(fvec4) Load 53(dvec4v)
-             311:   37(float) Load 39(doublev)
-             312:   51(fvec4) CompositeConstruct 311 311 311 311
-             313:   51(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 310 312
-             314:   51(fvec4) Load 53(dvec4v)
-             315:   51(fvec4) FAdd 314 313
-                              Store 53(dvec4v) 315
-             316:   41(fvec2) Load 43(dvec2v)
-             317:   41(fvec2) Load 43(dvec2v)
-             318:   41(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 316 317
-             319:   41(fvec2) Load 43(dvec2v)
-             320:   41(fvec2) FAdd 319 318
-                              Store 43(dvec2v) 320
-             321:   46(fvec3) Load 48(dvec3v)
-             322:   46(fvec3) Load 48(dvec3v)
-             323:   46(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 321 322
-             324:   46(fvec3) Load 48(dvec3v)
-             325:   46(fvec3) FAdd 324 323
-                              Store 48(dvec3v) 325
-             326:   51(fvec4) Load 53(dvec4v)
-             327:   51(fvec4) Load 53(dvec4v)
-             328:   51(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 326 327
-             329:   51(fvec4) Load 53(dvec4v)
-             330:   51(fvec4) FAdd 329 328
-                              Store 53(dvec4v) 330
-             331:   37(float) Load 39(doublev)
-             332:   37(float) Load 39(doublev)
-             333:   37(float) Load 39(doublev)
-             334:   37(float) ExtInst 1(GLSL.std.450) 43(FClamp) 331 332 333
-             335:   37(float) Load 39(doublev)
-             336:   37(float) FAdd 335 334
-                              Store 39(doublev) 336
-             337:   41(fvec2) Load 43(dvec2v)
-             338:   37(float) Load 39(doublev)
-             339:   37(float) Load 39(doublev)
-             340:   41(fvec2) CompositeConstruct 338 338
-             341:   41(fvec2) CompositeConstruct 339 339
-             342:   41(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 337 340 341
-             343:   41(fvec2) Load 43(dvec2v)
-             344:   41(fvec2) FAdd 343 342
-                              Store 43(dvec2v) 344
-             345:   46(fvec3) Load 48(dvec3v)
-             346:   37(float) Load 39(doublev)
-             347:   37(float) Load 39(doublev)
-             348:   46(fvec3) CompositeConstruct 346 346 346
-             349:   46(fvec3) CompositeConstruct 347 347 347
-             350:   46(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 345 348 349
-             351:   46(fvec3) Load 48(dvec3v)
-             352:   46(fvec3) FAdd 351 350
-                              Store 48(dvec3v) 352
-             353:   51(fvec4) Load 53(dvec4v)
-             354:   37(float) Load 39(doublev)
-             355:   37(float) Load 39(doublev)
-             356:   51(fvec4) CompositeConstruct 354 354 354 354
-             357:   51(fvec4) CompositeConstruct 355 355 355 355
-             358:   51(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 353 356 357
-             359:   51(fvec4) Load 53(dvec4v)
-             360:   51(fvec4) FAdd 359 358
-                              Store 53(dvec4v) 360
-             361:   41(fvec2) Load 43(dvec2v)
-             362:   41(fvec2) Load 43(dvec2v)
-             363:   41(fvec2) Load 43(dvec2v)
-             364:   41(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 361 362 363
-             365:   41(fvec2) Load 43(dvec2v)
-             366:   41(fvec2) FAdd 365 364
-                              Store 43(dvec2v) 366
-             367:   46(fvec3) Load 48(dvec3v)
-             368:   46(fvec3) Load 48(dvec3v)
-             369:   46(fvec3) Load 48(dvec3v)
-             370:   46(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 367 368 369
-             371:   46(fvec3) Load 48(dvec3v)
-             372:   46(fvec3) FAdd 371 370
-                              Store 48(dvec3v) 372
-             373:   51(fvec4) Load 53(dvec4v)
-             374:   51(fvec4) Load 53(dvec4v)
-             375:   51(fvec4) Load 53(dvec4v)
-             376:   51(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 373 374 375
-             377:   51(fvec4) Load 53(dvec4v)
-             378:   51(fvec4) FAdd 377 376
-                              Store 53(dvec4v) 378
-             379:   37(float) Load 39(doublev)
-             380:   37(float) Load 39(doublev)
-             381:   37(float) Load 39(doublev)
-             382:   37(float) ExtInst 1(GLSL.std.450) 46(FMix) 379 380 381
-             383:   37(float) Load 39(doublev)
-             384:   37(float) FAdd 383 382
-                              Store 39(doublev) 384
-             385:   41(fvec2) Load 43(dvec2v)
-             386:   41(fvec2) Load 43(dvec2v)
-             387:   37(float) Load 39(doublev)
-             388:   41(fvec2) CompositeConstruct 387 387
-             389:   41(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 385 386 388
-             390:   41(fvec2) Load 43(dvec2v)
-             391:   41(fvec2) FAdd 390 389
-                              Store 43(dvec2v) 391
-             392:   46(fvec3) Load 48(dvec3v)
-             393:   46(fvec3) Load 48(dvec3v)
-             394:   37(float) Load 39(doublev)
-             395:   46(fvec3) CompositeConstruct 394 394 394
-             396:   46(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 392 393 395
-             397:   46(fvec3) Load 48(dvec3v)
-             398:   46(fvec3) FAdd 397 396
-                              Store 48(dvec3v) 398
-             399:   51(fvec4) Load 53(dvec4v)
-             400:   51(fvec4) Load 53(dvec4v)
-             401:   37(float) Load 39(doublev)
-             402:   51(fvec4) CompositeConstruct 401 401 401 401
-             403:   51(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 399 400 402
-             404:   51(fvec4) Load 53(dvec4v)
-             405:   51(fvec4) FAdd 404 403
-                              Store 53(dvec4v) 405
-             406:   41(fvec2) Load 43(dvec2v)
-             407:   41(fvec2) Load 43(dvec2v)
-             408:   41(fvec2) Load 43(dvec2v)
-             409:   41(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 406 407 408
-             410:   41(fvec2) Load 43(dvec2v)
-             411:   41(fvec2) FAdd 410 409
-                              Store 43(dvec2v) 411
-             412:   46(fvec3) Load 48(dvec3v)
-             413:   46(fvec3) Load 48(dvec3v)
-             414:   46(fvec3) Load 48(dvec3v)
-             415:   46(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 412 413 414
-             416:   46(fvec3) Load 48(dvec3v)
-             417:   46(fvec3) FAdd 416 415
-                              Store 48(dvec3v) 417
-             418:   51(fvec4) Load 53(dvec4v)
-             419:   51(fvec4) Load 53(dvec4v)
-             420:   51(fvec4) Load 53(dvec4v)
-             421:   51(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 418 419 420
-             422:   51(fvec4) Load 53(dvec4v)
-             423:   51(fvec4) FAdd 422 421
-                              Store 53(dvec4v) 423
-             424:   37(float) Load 39(doublev)
-             425:   37(float) Load 39(doublev)
-             429:   426(bool) Load 428(boolv)
-             430:   37(float) Select 429 425 424
-             431:   37(float) Load 39(doublev)
-             432:   37(float) FAdd 431 430
-                              Store 39(doublev) 432
-             433:   41(fvec2) Load 43(dvec2v)
-             434:   41(fvec2) Load 43(dvec2v)
-             438:  435(bvec2) Load 437(bvec2v)
-             439:   41(fvec2) Select 438 434 433
-             440:   41(fvec2) Load 43(dvec2v)
-             441:   41(fvec2) FAdd 440 439
-                              Store 43(dvec2v) 441
-             442:   46(fvec3) Load 48(dvec3v)
-             443:   46(fvec3) Load 48(dvec3v)
-             447:  444(bvec3) Load 446(bvec3v)
-             448:   46(fvec3) Select 447 443 442
-             449:   46(fvec3) Load 48(dvec3v)
-             450:   46(fvec3) FAdd 449 448
-                              Store 48(dvec3v) 450
-             451:   51(fvec4) Load 53(dvec4v)
-             452:   51(fvec4) Load 53(dvec4v)
-             456:  453(bvec4) Load 455(bvec4v)
-             457:   51(fvec4) Select 456 452 451
-             458:   51(fvec4) Load 53(dvec4v)
-             459:   51(fvec4) FAdd 458 457
-                              Store 53(dvec4v) 459
-             460:   37(float) Load 39(doublev)
-             461:   37(float) Load 39(doublev)
-             462:   37(float) ExtInst 1(GLSL.std.450) 48(Step) 460 461
-             463:   37(float) Load 39(doublev)
-             464:   37(float) FAdd 463 462
-                              Store 39(doublev) 464
-             465:   41(fvec2) Load 43(dvec2v)
-             466:   41(fvec2) Load 43(dvec2v)
-             467:   41(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 465 466
-             468:   41(fvec2) Load 43(dvec2v)
-             469:   41(fvec2) FAdd 468 467
-                              Store 43(dvec2v) 469
-             470:   46(fvec3) Load 48(dvec3v)
-             471:   46(fvec3) Load 48(dvec3v)
-             472:   46(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 470 471
-             473:   46(fvec3) Load 48(dvec3v)
-             474:   46(fvec3) FAdd 473 472
-                              Store 48(dvec3v) 474
-             475:   51(fvec4) Load 53(dvec4v)
-             476:   51(fvec4) Load 53(dvec4v)
-             477:   51(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 475 476
-             478:   51(fvec4) Load 53(dvec4v)
-             479:   51(fvec4) FAdd 478 477
-                              Store 53(dvec4v) 479
-             480:   37(float) Load 39(doublev)
-             481:   41(fvec2) Load 43(dvec2v)
-             482:   41(fvec2) CompositeConstruct 480 480
-             483:   41(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 482 481
-             484:   41(fvec2) Load 43(dvec2v)
-             485:   41(fvec2) FAdd 484 483
-                              Store 43(dvec2v) 485
-             486:   37(float) Load 39(doublev)
-             487:   46(fvec3) Load 48(dvec3v)
-             488:   46(fvec3) CompositeConstruct 486 486 486
-             489:   46(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 488 487
-             490:   46(fvec3) Load 48(dvec3v)
-             491:   46(fvec3) FAdd 490 489
-                              Store 48(dvec3v) 491
-             492:   37(float) Load 39(doublev)
-             493:   51(fvec4) Load 53(dvec4v)
-             494:   51(fvec4) CompositeConstruct 492 492 492 492
-             495:   51(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 494 493
-             496:   51(fvec4) Load 53(dvec4v)
-             497:   51(fvec4) FAdd 496 495
-                              Store 53(dvec4v) 497
-             498:   37(float) Load 39(doublev)
-             499:   37(float) Load 39(doublev)
-             500:   37(float) Load 39(doublev)
-             501:   37(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 498 499 500
-             502:   37(float) Load 39(doublev)
-             503:   37(float) FAdd 502 501
-                              Store 39(doublev) 503
-             504:   41(fvec2) Load 43(dvec2v)
-             505:   41(fvec2) Load 43(dvec2v)
-             506:   41(fvec2) Load 43(dvec2v)
-             507:   41(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 504 505 506
-             508:   41(fvec2) Load 43(dvec2v)
-             509:   41(fvec2) FAdd 508 507
-                              Store 43(dvec2v) 509
-             510:   46(fvec3) Load 48(dvec3v)
-             511:   46(fvec3) Load 48(dvec3v)
-             512:   46(fvec3) Load 48(dvec3v)
-             513:   46(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 510 511 512
-             514:   46(fvec3) Load 48(dvec3v)
-             515:   46(fvec3) FAdd 514 513
-                              Store 48(dvec3v) 515
-             516:   51(fvec4) Load 53(dvec4v)
-             517:   51(fvec4) Load 53(dvec4v)
-             518:   51(fvec4) Load 53(dvec4v)
-             519:   51(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 516 517 518
-             520:   51(fvec4) Load 53(dvec4v)
-             521:   51(fvec4) FAdd 520 519
-                              Store 53(dvec4v) 521
-             522:   37(float) Load 39(doublev)
-             523:   37(float) Load 39(doublev)
-             524:   41(fvec2) Load 43(dvec2v)
-             525:   41(fvec2) CompositeConstruct 522 522
-             526:   41(fvec2) CompositeConstruct 523 523
-             527:   41(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 525 526 524
-             528:   41(fvec2) Load 43(dvec2v)
-             529:   41(fvec2) FAdd 528 527
-                              Store 43(dvec2v) 529
-             530:   37(float) Load 39(doublev)
-             531:   37(float) Load 39(doublev)
-             532:   46(fvec3) Load 48(dvec3v)
-             533:   46(fvec3) CompositeConstruct 530 530 530
-             534:   46(fvec3) CompositeConstruct 531 531 531
-             535:   46(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 533 534 532
-             536:   46(fvec3) Load 48(dvec3v)
-             537:   46(fvec3) FAdd 536 535
-                              Store 48(dvec3v) 537
-             538:   37(float) Load 39(doublev)
-             539:   37(float) Load 39(doublev)
-             540:   51(fvec4) Load 53(dvec4v)
-             541:   51(fvec4) CompositeConstruct 538 538 538 538
-             542:   51(fvec4) CompositeConstruct 539 539 539 539
-             543:   51(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 541 542 540
-             544:   51(fvec4) Load 53(dvec4v)
-             545:   51(fvec4) FAdd 544 543
-                              Store 53(dvec4v) 545
-             546:   37(float) Load 39(doublev)
-             547:   426(bool) IsNan 546
-                              Store 428(boolv) 547
-             548:   41(fvec2) Load 43(dvec2v)
-             549:  435(bvec2) IsNan 548
-                              Store 437(bvec2v) 549
-             550:   46(fvec3) Load 48(dvec3v)
-             551:  444(bvec3) IsNan 550
-                              Store 446(bvec3v) 551
-             552:   51(fvec4) Load 53(dvec4v)
-             553:  453(bvec4) IsNan 552
-                              Store 455(bvec4v) 553
-             555:   426(bool) Load 428(boolv)
-                              SelectionMerge 557 None
-                              BranchConditional 555 556 560
-             556:               Label
-             558:   37(float)   Load 39(doublev)
-             559:   426(bool)   IsInf 558
-                                Store 554 559
-                                Branch 557
-             560:               Label
-                                Store 554 561
-                                Branch 557
-             557:             Label
-             562:   426(bool) Load 554
-                              Store 428(boolv) 562
-             564:   426(bool) Load 428(boolv)
-                              SelectionMerge 566 None
-                              BranchConditional 564 565 569
-             565:               Label
-             567:   41(fvec2)   Load 43(dvec2v)
-             568:  435(bvec2)   IsInf 567
-                                Store 563 568
-                                Branch 566
-             569:               Label
-                                Store 563 570
-                                Branch 566
-             566:             Label
-             571:  435(bvec2) Load 563
-                              Store 437(bvec2v) 571
-             573:   426(bool) Load 428(boolv)
-                              SelectionMerge 575 None
-                              BranchConditional 573 574 578
-             574:               Label
-             576:   46(fvec3)   Load 48(dvec3v)
-             577:  444(bvec3)   IsInf 576
-                                Store 572 577
-                                Branch 575
-             578:               Label
-                                Store 572 579
-                                Branch 575
-             575:             Label
-             580:  444(bvec3) Load 572
-                              Store 446(bvec3v) 580
-             582:   426(bool) Load 428(boolv)
-                              SelectionMerge 584 None
-                              BranchConditional 582 583 587
-             583:               Label
-             585:   51(fvec4)   Load 53(dvec4v)
-             586:  453(bvec4)   IsInf 585
-                                Store 581 586
-                                Branch 584
-             587:               Label
-                                Store 581 588
-                                Branch 584
-             584:             Label
-             589:  453(bvec4) Load 581
-                              Store 455(bvec4v) 589
-             590:   37(float) Load 39(doublev)
-             591:   37(float) ExtInst 1(GLSL.std.450) 66(Length) 590
-             592:   37(float) Load 39(doublev)
-             593:   37(float) FAdd 592 591
-                              Store 39(doublev) 593
-             594:   41(fvec2) Load 43(dvec2v)
-             595:   37(float) ExtInst 1(GLSL.std.450) 66(Length) 594
-             596:   37(float) Load 39(doublev)
-             597:   37(float) FAdd 596 595
-                              Store 39(doublev) 597
-             598:   46(fvec3) Load 48(dvec3v)
-             599:   37(float) ExtInst 1(GLSL.std.450) 66(Length) 598
-             600:   37(float) Load 39(doublev)
-             601:   37(float) FAdd 600 599
-                              Store 39(doublev) 601
-             602:   51(fvec4) Load 53(dvec4v)
-             603:   37(float) ExtInst 1(GLSL.std.450) 66(Length) 602
-             604:   37(float) Load 39(doublev)
-             605:   37(float) FAdd 604 603
-                              Store 39(doublev) 605
-             606:   37(float) Load 39(doublev)
-             607:   37(float) Load 39(doublev)
-             608:   37(float) ExtInst 1(GLSL.std.450) 67(Distance) 606 607
-             609:   37(float) Load 39(doublev)
-             610:   37(float) FAdd 609 608
-                              Store 39(doublev) 610
-             611:   41(fvec2) Load 43(dvec2v)
-             612:   41(fvec2) Load 43(dvec2v)
-             613:   37(float) ExtInst 1(GLSL.std.450) 67(Distance) 611 612
-             614:   37(float) Load 39(doublev)
-             615:   37(float) FAdd 614 613
-                              Store 39(doublev) 615
-             616:   46(fvec3) Load 48(dvec3v)
-             617:   46(fvec3) Load 48(dvec3v)
-             618:   37(float) ExtInst 1(GLSL.std.450) 67(Distance) 616 617
-             619:   37(float) Load 39(doublev)
-             620:   37(float) FAdd 619 618
-                              Store 39(doublev) 620
-             621:   51(fvec4) Load 53(dvec4v)
-             622:   51(fvec4) Load 53(dvec4v)
-             623:   37(float) ExtInst 1(GLSL.std.450) 67(Distance) 621 622
-             624:   37(float) Load 39(doublev)
-             625:   37(float) FAdd 624 623
-                              Store 39(doublev) 625
-             626:   37(float) Load 39(doublev)
-             627:   37(float) Load 39(doublev)
-             628:   37(float) FMul 626 627
-             629:   37(float) Load 39(doublev)
-             630:   37(float) FAdd 629 628
-                              Store 39(doublev) 630
-             631:   41(fvec2) Load 43(dvec2v)
-             632:   41(fvec2) Load 43(dvec2v)
-             633:   37(float) Dot 631 632
-             634:   37(float) Load 39(doublev)
-             635:   37(float) FAdd 634 633
-                              Store 39(doublev) 635
-             636:   46(fvec3) Load 48(dvec3v)
-             637:   46(fvec3) Load 48(dvec3v)
-             638:   37(float) Dot 636 637
-             639:   37(float) Load 39(doublev)
-             640:   37(float) FAdd 639 638
-                              Store 39(doublev) 640
-             641:   51(fvec4) Load 53(dvec4v)
-             642:   51(fvec4) Load 53(dvec4v)
-             643:   37(float) Dot 641 642
-             644:   37(float) Load 39(doublev)
-             645:   37(float) FAdd 644 643
-                              Store 39(doublev) 645
-             646:   46(fvec3) Load 48(dvec3v)
-             647:   46(fvec3) Load 48(dvec3v)
-             648:   46(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 646 647
-             649:   46(fvec3) Load 48(dvec3v)
-             650:   46(fvec3) FAdd 649 648
-                              Store 48(dvec3v) 650
-             651:   37(float) Load 39(doublev)
-             652:   37(float) ExtInst 1(GLSL.std.450) 69(Normalize) 651
-             653:   37(float) Load 39(doublev)
-             654:   37(float) FAdd 653 652
-                              Store 39(doublev) 654
-             655:   41(fvec2) Load 43(dvec2v)
-             656:   41(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 655
-             657:   41(fvec2) Load 43(dvec2v)
-             658:   41(fvec2) FAdd 657 656
-                              Store 43(dvec2v) 658
-             659:   46(fvec3) Load 48(dvec3v)
-             660:   46(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 659
-             661:   46(fvec3) Load 48(dvec3v)
-             662:   46(fvec3) FAdd 661 660
-                              Store 48(dvec3v) 662
-             663:   51(fvec4) Load 53(dvec4v)
-             664:   51(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 663
-             665:   51(fvec4) Load 53(dvec4v)
-             666:   51(fvec4) FAdd 665 664
-                              Store 53(dvec4v) 666
-             667:   37(float) Load 39(doublev)
-             668:   37(float) Load 39(doublev)
-             669:   37(float) Load 39(doublev)
-             670:   37(float) ExtInst 1(GLSL.std.450) 70(FaceForward) 667 668 669
-             671:   37(float) Load 39(doublev)
-             672:   37(float) FAdd 671 670
-                              Store 39(doublev) 672
-             673:   41(fvec2) Load 43(dvec2v)
-             674:   41(fvec2) Load 43(dvec2v)
-             675:   41(fvec2) Load 43(dvec2v)
-             676:   41(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 673 674 675
-             677:   41(fvec2) Load 43(dvec2v)
-             678:   41(fvec2) FAdd 677 676
-                              Store 43(dvec2v) 678
-             679:   46(fvec3) Load 48(dvec3v)
-             680:   46(fvec3) Load 48(dvec3v)
-             681:   46(fvec3) Load 48(dvec3v)
-             682:   46(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 679 680 681
-             683:   46(fvec3) Load 48(dvec3v)
-             684:   46(fvec3) FAdd 683 682
-                              Store 48(dvec3v) 684
-             685:   51(fvec4) Load 53(dvec4v)
-             686:   51(fvec4) Load 53(dvec4v)
-             687:   51(fvec4) Load 53(dvec4v)
-             688:   51(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 685 686 687
-             689:   51(fvec4) Load 53(dvec4v)
-             690:   51(fvec4) FAdd 689 688
-                              Store 53(dvec4v) 690
-             691:   37(float) Load 39(doublev)
-             692:   37(float) Load 39(doublev)
-             693:   37(float) ExtInst 1(GLSL.std.450) 71(Reflect) 691 692
-             694:   37(float) Load 39(doublev)
-             695:   37(float) FAdd 694 693
-                              Store 39(doublev) 695
-             696:   41(fvec2) Load 43(dvec2v)
-             697:   41(fvec2) Load 43(dvec2v)
-             698:   41(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 696 697
-             699:   41(fvec2) Load 43(dvec2v)
-             700:   41(fvec2) FAdd 699 698
-                              Store 43(dvec2v) 700
-             701:   46(fvec3) Load 48(dvec3v)
-             702:   46(fvec3) Load 48(dvec3v)
-             703:   46(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 701 702
-             704:   46(fvec3) Load 48(dvec3v)
-             705:   46(fvec3) FAdd 704 703
-                              Store 48(dvec3v) 705
-             706:   51(fvec4) Load 53(dvec4v)
-             707:   51(fvec4) Load 53(dvec4v)
-             708:   51(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 706 707
-             709:   51(fvec4) Load 53(dvec4v)
-             710:   51(fvec4) FAdd 709 708
-                              Store 53(dvec4v) 710
-             711:   37(float) Load 39(doublev)
-             712:   37(float) Load 39(doublev)
-             713:   37(float) Load 39(doublev)
-             714:   37(float) ExtInst 1(GLSL.std.450) 72(Refract) 711 712 713
-             715:   37(float) Load 39(doublev)
-             716:   37(float) FAdd 715 714
-                              Store 39(doublev) 716
-             717:   41(fvec2) Load 43(dvec2v)
-             718:   41(fvec2) Load 43(dvec2v)
-             719:   37(float) Load 39(doublev)
-             720:   41(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 717 718 719
-             721:   41(fvec2) Load 43(dvec2v)
-             722:   41(fvec2) FAdd 721 720
-                              Store 43(dvec2v) 722
-             723:   46(fvec3) Load 48(dvec3v)
-             724:   46(fvec3) Load 48(dvec3v)
-             725:   37(float) Load 39(doublev)
-             726:   46(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 723 724 725
-             727:   46(fvec3) Load 48(dvec3v)
-             728:   46(fvec3) FAdd 727 726
-                              Store 48(dvec3v) 728
-             729:   51(fvec4) Load 53(dvec4v)
-             730:   51(fvec4) Load 53(dvec4v)
-             731:   37(float) Load 39(doublev)
-             732:   51(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 729 730 731
-             733:   51(fvec4) Load 53(dvec4v)
-             734:   51(fvec4) FAdd 733 732
-                              Store 53(dvec4v) 734
-             738:   41(fvec2) Load 43(dvec2v)
-             739:   41(fvec2) Load 43(dvec2v)
-             740:         735 OuterProduct 738 739
-                              Store 737(dmat2v) 740
-             744:   46(fvec3) Load 48(dvec3v)
-             745:   46(fvec3) Load 48(dvec3v)
-             746:         741 OuterProduct 744 745
-                              Store 743(dmat3v) 746
-             750:   51(fvec4) Load 53(dvec4v)
-             751:   51(fvec4) Load 53(dvec4v)
-             752:         747 OuterProduct 750 751
-                              Store 749(dmat4v) 752
-             756:   46(fvec3) Load 48(dvec3v)
-             757:   41(fvec2) Load 43(dvec2v)
-             758:         753 OuterProduct 756 757
-                              Store 755(dmat2x3v) 758
-             762:   41(fvec2) Load 43(dvec2v)
-             763:   46(fvec3) Load 48(dvec3v)
-             764:         759 OuterProduct 762 763
-                              Store 761(dmat3x2v) 764
-             768:   51(fvec4) Load 53(dvec4v)
-             769:   41(fvec2) Load 43(dvec2v)
-             770:         765 OuterProduct 768 769
-                              Store 767(dmat2x4v) 770
-             774:   41(fvec2) Load 43(dvec2v)
-             775:   51(fvec4) Load 53(dvec4v)
-             776:         771 OuterProduct 774 775
-                              Store 773(dmat4x2v) 776
-             780:   51(fvec4) Load 53(dvec4v)
-             781:   46(fvec3) Load 48(dvec3v)
-             782:         777 OuterProduct 780 781
-                              Store 779(dmat3x4v) 782
-             786:   46(fvec3) Load 48(dvec3v)
-             787:   51(fvec4) Load 53(dvec4v)
-             788:         783 OuterProduct 786 787
-                              Store 785(dmat4x3v) 788
-             789:         735 Load 737(dmat2v)
-             790:         735 Load 737(dmat2v)
-             791:   41(fvec2) CompositeExtract 789 0
-             792:   41(fvec2) CompositeExtract 790 0
-             793:   41(fvec2) FMul 791 792
-             794:   41(fvec2) CompositeExtract 789 1
-             795:   41(fvec2) CompositeExtract 790 1
-             796:   41(fvec2) FMul 794 795
-             797:         735 CompositeConstruct 793 796
-             798:         735 Load 737(dmat2v)
-             799:         735 MatrixTimesMatrix 798 797
-                              Store 737(dmat2v) 799
-             800:         741 Load 743(dmat3v)
-             801:         741 Load 743(dmat3v)
-             802:   46(fvec3) CompositeExtract 800 0
-             803:   46(fvec3) CompositeExtract 801 0
-             804:   46(fvec3) FMul 802 803
-             805:   46(fvec3) CompositeExtract 800 1
-             806:   46(fvec3) CompositeExtract 801 1
-             807:   46(fvec3) FMul 805 806
-             808:   46(fvec3) CompositeExtract 800 2
-             809:   46(fvec3) CompositeExtract 801 2
-             810:   46(fvec3) FMul 808 809
-             811:         741 CompositeConstruct 804 807 810
-             812:         741 Load 743(dmat3v)
-             813:         741 MatrixTimesMatrix 812 811
-                              Store 743(dmat3v) 813
-             814:         747 Load 749(dmat4v)
-             815:         747 Load 749(dmat4v)
-             816:   51(fvec4) CompositeExtract 814 0
-             817:   51(fvec4) CompositeExtract 815 0
-             818:   51(fvec4) FMul 816 817
-             819:   51(fvec4) CompositeExtract 814 1
-             820:   51(fvec4) CompositeExtract 815 1
-             821:   51(fvec4) FMul 819 820
-             822:   51(fvec4) CompositeExtract 814 2
-             823:   51(fvec4) CompositeExtract 815 2
-             824:   51(fvec4) FMul 822 823
-             825:   51(fvec4) CompositeExtract 814 3
-             826:   51(fvec4) CompositeExtract 815 3
-             827:   51(fvec4) FMul 825 826
-             828:         747 CompositeConstruct 818 821 824 827
-             829:         747 Load 749(dmat4v)
-             830:         747 MatrixTimesMatrix 829 828
-                              Store 749(dmat4v) 830
-             831:         753 Load 755(dmat2x3v)
-             832:         753 Load 755(dmat2x3v)
-             833:   46(fvec3) CompositeExtract 831 0
-             834:   46(fvec3) CompositeExtract 832 0
-             835:   46(fvec3) FMul 833 834
-             836:   46(fvec3) CompositeExtract 831 1
-             837:   46(fvec3) CompositeExtract 832 1
-             838:   46(fvec3) FMul 836 837
-             839:         753 CompositeConstruct 835 838
-                              Store 755(dmat2x3v) 839
-             840:         765 Load 767(dmat2x4v)
-             841:         765 Load 767(dmat2x4v)
-             842:   51(fvec4) CompositeExtract 840 0
-             843:   51(fvec4) CompositeExtract 841 0
-             844:   51(fvec4) FMul 842 843
-             845:   51(fvec4) CompositeExtract 840 1
-             846:   51(fvec4) CompositeExtract 841 1
-             847:   51(fvec4) FMul 845 846
-             848:         765 CompositeConstruct 844 847
-                              Store 767(dmat2x4v) 848
-             849:         759 Load 761(dmat3x2v)
-             850:         759 Load 761(dmat3x2v)
-             851:   41(fvec2) CompositeExtract 849 0
-             852:   41(fvec2) CompositeExtract 850 0
-             853:   41(fvec2) FMul 851 852
-             854:   41(fvec2) CompositeExtract 849 1
-             855:   41(fvec2) CompositeExtract 850 1
-             856:   41(fvec2) FMul 854 855
-             857:   41(fvec2) CompositeExtract 849 2
-             858:   41(fvec2) CompositeExtract 850 2
-             859:   41(fvec2) FMul 857 858
-             860:         759 CompositeConstruct 853 856 859
-                              Store 761(dmat3x2v) 860
-             861:         777 Load 779(dmat3x4v)
-             862:         777 Load 779(dmat3x4v)
-             863:   51(fvec4) CompositeExtract 861 0
-             864:   51(fvec4) CompositeExtract 862 0
-             865:   51(fvec4) FMul 863 864
-             866:   51(fvec4) CompositeExtract 861 1
-             867:   51(fvec4) CompositeExtract 862 1
-             868:   51(fvec4) FMul 866 867
-             869:   51(fvec4) CompositeExtract 861 2
-             870:   51(fvec4) CompositeExtract 862 2
-             871:   51(fvec4) FMul 869 870
-             872:         777 CompositeConstruct 865 868 871
-                              Store 779(dmat3x4v) 872
-             873:         771 Load 773(dmat4x2v)
-             874:         771 Load 773(dmat4x2v)
-             875:   41(fvec2) CompositeExtract 873 0
-             876:   41(fvec2) CompositeExtract 874 0
-             877:   41(fvec2) FMul 875 876
-             878:   41(fvec2) CompositeExtract 873 1
-             879:   41(fvec2) CompositeExtract 874 1
-             880:   41(fvec2) FMul 878 879
-             881:   41(fvec2) CompositeExtract 873 2
-             882:   41(fvec2) CompositeExtract 874 2
-             883:   41(fvec2) FMul 881 882
-             884:   41(fvec2) CompositeExtract 873 3
-             885:   41(fvec2) CompositeExtract 874 3
-             886:   41(fvec2) FMul 884 885
-             887:         771 CompositeConstruct 877 880 883 886
-                              Store 773(dmat4x2v) 887
-             888:         783 Load 785(dmat4x3v)
-             889:         783 Load 785(dmat4x3v)
-             890:   46(fvec3) CompositeExtract 888 0
-             891:   46(fvec3) CompositeExtract 889 0
-             892:   46(fvec3) FMul 890 891
-             893:   46(fvec3) CompositeExtract 888 1
-             894:   46(fvec3) CompositeExtract 889 1
-             895:   46(fvec3) FMul 893 894
-             896:   46(fvec3) CompositeExtract 888 2
-             897:   46(fvec3) CompositeExtract 889 2
-             898:   46(fvec3) FMul 896 897
-             899:   46(fvec3) CompositeExtract 888 3
-             900:   46(fvec3) CompositeExtract 889 3
-             901:   46(fvec3) FMul 899 900
-             902:         783 CompositeConstruct 892 895 898 901
-                              Store 785(dmat4x3v) 902
-             903:         735 Load 737(dmat2v)
-             904:         735 Transpose 903
-             905:         735 Load 737(dmat2v)
-             906:         735 MatrixTimesMatrix 905 904
-                              Store 737(dmat2v) 906
-             907:         741 Load 743(dmat3v)
-             908:         741 Transpose 907
-             909:         741 Load 743(dmat3v)
-             910:         741 MatrixTimesMatrix 909 908
-                              Store 743(dmat3v) 910
-             911:         747 Load 749(dmat4v)
-             912:         747 Transpose 911
-             913:         747 Load 749(dmat4v)
-             914:         747 MatrixTimesMatrix 913 912
-                              Store 749(dmat4v) 914
-             915:         759 Load 761(dmat3x2v)
-             916:         753 Transpose 915
-                              Store 755(dmat2x3v) 916
-             917:         753 Load 755(dmat2x3v)
-             918:         759 Transpose 917
-                              Store 761(dmat3x2v) 918
-             919:         771 Load 773(dmat4x2v)
-             920:         765 Transpose 919
-                              Store 767(dmat2x4v) 920
-             921:         765 Load 767(dmat2x4v)
-             922:         771 Transpose 921
-                              Store 773(dmat4x2v) 922
-             923:         783 Load 785(dmat4x3v)
-             924:         777 Transpose 923
-                              Store 779(dmat3x4v) 924
-             925:         777 Load 779(dmat3x4v)
-             926:         783 Transpose 925
-                              Store 785(dmat4x3v) 926
-             927:         735 Load 737(dmat2v)
-             928:   37(float) ExtInst 1(GLSL.std.450) 33(Determinant) 927
-             929:   37(float) Load 39(doublev)
-             930:   37(float) FAdd 929 928
-                              Store 39(doublev) 930
-             931:         741 Load 743(dmat3v)
-             932:   37(float) ExtInst 1(GLSL.std.450) 33(Determinant) 931
-             933:   37(float) Load 39(doublev)
-             934:   37(float) FAdd 933 932
-                              Store 39(doublev) 934
-             935:         747 Load 749(dmat4v)
-             936:   37(float) ExtInst 1(GLSL.std.450) 33(Determinant) 935
-             937:   37(float) Load 39(doublev)
-             938:   37(float) FAdd 937 936
-                              Store 39(doublev) 938
-             939:         735 Load 737(dmat2v)
-             940:         735 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 939
-             941:         735 Load 737(dmat2v)
-             942:         735 MatrixTimesMatrix 941 940
-                              Store 737(dmat2v) 942
-             943:         741 Load 743(dmat3v)
-             944:         741 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 943
-             945:         741 Load 743(dmat3v)
-             946:         741 MatrixTimesMatrix 945 944
-                              Store 743(dmat3v) 946
-             947:         747 Load 749(dmat4v)
-             948:         747 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 947
-             949:         747 Load 749(dmat4v)
-             950:         747 MatrixTimesMatrix 949 948
-                              Store 749(dmat4v) 950
-             951:   37(float) Load 39(doublev)
-             953:     38(ptr) AccessChain 43(dvec2v) 952
-             954:   37(float) Load 953
-             955:   37(float) FAdd 951 954
-             957:     38(ptr) AccessChain 48(dvec3v) 956
-             958:   37(float) Load 957
-             959:   37(float) FAdd 955 958
-             961:     38(ptr) AccessChain 53(dvec4v) 960
-             962:   37(float) Load 961
-             963:   37(float) FAdd 959 962
-             965:     38(ptr) AccessChain 737(dmat2v) 964 952
-             966:   37(float) Load 965
-             967:   37(float) FAdd 963 966
-             969:     38(ptr) AccessChain 743(dmat3v) 968 956
-             970:   37(float) Load 969
-             971:   37(float) FAdd 967 970
-             972:     38(ptr) AccessChain 749(dmat4v) 25 960
-             973:   37(float) Load 972
-             974:   37(float) FAdd 971 973
-             975:     38(ptr) AccessChain 755(dmat2x3v) 964 952
-             976:   37(float) Load 975
-             977:   37(float) FAdd 974 976
-             978:     38(ptr) AccessChain 761(dmat3x2v) 964 952
-             979:   37(float) Load 978
-             980:   37(float) FAdd 977 979
-             981:     38(ptr) AccessChain 779(dmat3x4v) 968 956
-             982:   37(float) Load 981
-             983:   37(float) FAdd 980 982
-             984:     38(ptr) AccessChain 785(dmat4x3v) 968 956
-             985:   37(float) Load 984
-             986:   37(float) FAdd 983 985
-             987:     38(ptr) AccessChain 767(dmat2x4v) 964 952
-             988:   37(float) Load 987
-             989:   37(float) FAdd 986 988
-             990:     38(ptr) AccessChain 773(dmat4x2v) 964 952
-             991:   37(float) Load 990
-             992:   37(float) FAdd 989 991
-             993:   426(bool) Load 428(boolv)
-             995:   10(float) Select 993 994 21
-             996:   37(float) FConvert 995
-             997:   37(float) FAdd 992 996
-             998:  435(bvec2) Load 437(bvec2v)
-             999:   426(bool) CompositeExtract 998 0
-            1000:   10(float) Select 999 994 21
-            1001:   37(float) FConvert 1000
-            1002:   37(float) FAdd 997 1001
-            1003:  444(bvec3) Load 446(bvec3v)
-            1004:   426(bool) CompositeExtract 1003 0
-            1005:   10(float) Select 1004 994 21
-            1006:   37(float) FConvert 1005
-            1007:   37(float) FAdd 1002 1006
-            1008:  453(bvec4) Load 455(bvec4v)
-            1009:   426(bool) CompositeExtract 1008 0
-            1010:   10(float) Select 1009 994 21
-            1011:   37(float) FConvert 1010
-            1012:   37(float) FAdd 1007 1011
-            1013:   10(float) FConvert 1012
-            1014:   11(fvec4) Load 13(outp)
-            1015:   11(fvec4) VectorTimesScalar 1014 1013
-                              Store 13(outp) 1015
+     41(doublev):     40(ptr) Variable Function
+      45(dvec2v):     44(ptr) Variable Function
+      50(dvec3v):     49(ptr) Variable Function
+      55(dvec4v):     54(ptr) Variable Function
+      430(boolv):    429(ptr) Variable Function
+     439(bvec2v):    438(ptr) Variable Function
+     448(bvec3v):    447(ptr) Variable Function
+     457(bvec4v):    456(ptr) Variable Function
+             556:    429(ptr) Variable Function
+             565:    438(ptr) Variable Function
+             574:    447(ptr) Variable Function
+             583:    456(ptr) Variable Function
+     739(dmat2v):    738(ptr) Variable Function
+     745(dmat3v):    744(ptr) Variable Function
+     751(dmat4v):    750(ptr) Variable Function
+   757(dmat2x3v):    756(ptr) Variable Function
+   763(dmat3x2v):    762(ptr) Variable Function
+   769(dmat2x4v):    768(ptr) Variable Function
+   775(dmat4x2v):    774(ptr) Variable Function
+   781(dmat3x4v):    780(ptr) Variable Function
+   787(dmat4x3v):    786(ptr) Variable Function
+                              Store 41(doublev) 42
+                              Store 45(dvec2v) 47
+                              Store 50(dvec3v) 52
+              56:   39(float) Load 41(doublev)
+              57:   53(fvec4) CompositeConstruct 56 56 56 56
+              58:   53(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 57
+                              Store 55(dvec4v) 58
+              59:   39(float) Load 41(doublev)
+              60:   39(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 59
+              61:   39(float) Load 41(doublev)
+              62:   39(float) FAdd 61 60
+                              Store 41(doublev) 62
+              63:   43(fvec2) Load 45(dvec2v)
+              64:   43(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 63
+              65:   43(fvec2) Load 45(dvec2v)
+              66:   43(fvec2) FAdd 65 64
+                              Store 45(dvec2v) 66
+              67:   48(fvec3) Load 50(dvec3v)
+              68:   48(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 67
+              69:   48(fvec3) Load 50(dvec3v)
+              70:   48(fvec3) FAdd 69 68
+                              Store 50(dvec3v) 70
+              71:   53(fvec4) Load 55(dvec4v)
+              72:   53(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 71
+              73:   53(fvec4) Load 55(dvec4v)
+              74:   53(fvec4) FAdd 73 72
+                              Store 55(dvec4v) 74
+              75:   39(float) Load 41(doublev)
+              76:   39(float) ExtInst 1(GLSL.std.450) 4(FAbs) 75
+              77:   39(float) Load 41(doublev)
+              78:   39(float) FAdd 77 76
+                              Store 41(doublev) 78
+              79:   43(fvec2) Load 45(dvec2v)
+              80:   43(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 79
+              81:   43(fvec2) Load 45(dvec2v)
+              82:   43(fvec2) FAdd 81 80
+                              Store 45(dvec2v) 82
+              83:   48(fvec3) Load 50(dvec3v)
+              84:   48(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 83
+              85:   48(fvec3) Load 50(dvec3v)
+              86:   48(fvec3) FAdd 85 84
+                              Store 50(dvec3v) 86
+              87:   53(fvec4) Load 55(dvec4v)
+              88:   53(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 87
+              89:   53(fvec4) Load 55(dvec4v)
+              90:   53(fvec4) FAdd 89 88
+                              Store 55(dvec4v) 90
+              91:   39(float) Load 41(doublev)
+              92:   39(float) ExtInst 1(GLSL.std.450) 6(FSign) 91
+              93:   39(float) Load 41(doublev)
+              94:   39(float) FAdd 93 92
+                              Store 41(doublev) 94
+              95:   43(fvec2) Load 45(dvec2v)
+              96:   43(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 95
+              97:   43(fvec2) Load 45(dvec2v)
+              98:   43(fvec2) FAdd 97 96
+                              Store 45(dvec2v) 98
+              99:   48(fvec3) Load 50(dvec3v)
+             100:   48(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 99
+             101:   48(fvec3) Load 50(dvec3v)
+             102:   48(fvec3) FAdd 101 100
+                              Store 50(dvec3v) 102
+             103:   53(fvec4) Load 55(dvec4v)
+             104:   53(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 103
+             105:   53(fvec4) Load 55(dvec4v)
+             106:   53(fvec4) FAdd 105 104
+                              Store 55(dvec4v) 106
+             107:   39(float) Load 41(doublev)
+             108:   39(float) ExtInst 1(GLSL.std.450) 8(Floor) 107
+             109:   39(float) Load 41(doublev)
+             110:   39(float) FAdd 109 108
+                              Store 41(doublev) 110
+             111:   43(fvec2) Load 45(dvec2v)
+             112:   43(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 111
+             113:   43(fvec2) Load 45(dvec2v)
+             114:   43(fvec2) FAdd 113 112
+                              Store 45(dvec2v) 114
+             115:   48(fvec3) Load 50(dvec3v)
+             116:   48(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 115
+             117:   48(fvec3) Load 50(dvec3v)
+             118:   48(fvec3) FAdd 117 116
+                              Store 50(dvec3v) 118
+             119:   53(fvec4) Load 55(dvec4v)
+             120:   53(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 119
+             121:   53(fvec4) Load 55(dvec4v)
+             122:   53(fvec4) FAdd 121 120
+                              Store 55(dvec4v) 122
+             123:   39(float) Load 41(doublev)
+             124:   39(float) ExtInst 1(GLSL.std.450) 3(Trunc) 123
+             125:   39(float) Load 41(doublev)
+             126:   39(float) FAdd 125 124
+                              Store 41(doublev) 126
+             127:   43(fvec2) Load 45(dvec2v)
+             128:   43(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 127
+             129:   43(fvec2) Load 45(dvec2v)
+             130:   43(fvec2) FAdd 129 128
+                              Store 45(dvec2v) 130
+             131:   48(fvec3) Load 50(dvec3v)
+             132:   48(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 131
+             133:   48(fvec3) Load 50(dvec3v)
+             134:   48(fvec3) FAdd 133 132
+                              Store 50(dvec3v) 134
+             135:   53(fvec4) Load 55(dvec4v)
+             136:   53(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 135
+             137:   53(fvec4) Load 55(dvec4v)
+             138:   53(fvec4) FAdd 137 136
+                              Store 55(dvec4v) 138
+             139:   39(float) Load 41(doublev)
+             140:   39(float) ExtInst 1(GLSL.std.450) 1(Round) 139
+             141:   39(float) Load 41(doublev)
+             142:   39(float) FAdd 141 140
+                              Store 41(doublev) 142
+             143:   43(fvec2) Load 45(dvec2v)
+             144:   43(fvec2) ExtInst 1(GLSL.std.450) 1(Round) 143
+             145:   43(fvec2) Load 45(dvec2v)
+             146:   43(fvec2) FAdd 145 144
+                              Store 45(dvec2v) 146
+             147:   48(fvec3) Load 50(dvec3v)
+             148:   48(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 147
+             149:   48(fvec3) Load 50(dvec3v)
+             150:   48(fvec3) FAdd 149 148
+                              Store 50(dvec3v) 150
+             151:   53(fvec4) Load 55(dvec4v)
+             152:   53(fvec4) ExtInst 1(GLSL.std.450) 1(Round) 151
+             153:   53(fvec4) Load 55(dvec4v)
+             154:   53(fvec4) FAdd 153 152
+                              Store 55(dvec4v) 154
+             155:   39(float) Load 41(doublev)
+             156:   39(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 155
+             157:   39(float) Load 41(doublev)
+             158:   39(float) FAdd 157 156
+                              Store 41(doublev) 158
+             159:   43(fvec2) Load 45(dvec2v)
+             160:   43(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 159
+             161:   43(fvec2) Load 45(dvec2v)
+             162:   43(fvec2) FAdd 161 160
+                              Store 45(dvec2v) 162
+             163:   48(fvec3) Load 50(dvec3v)
+             164:   48(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 163
+             165:   48(fvec3) Load 50(dvec3v)
+             166:   48(fvec3) FAdd 165 164
+                              Store 50(dvec3v) 166
+             167:   53(fvec4) Load 55(dvec4v)
+             168:   53(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 167
+             169:   53(fvec4) Load 55(dvec4v)
+             170:   53(fvec4) FAdd 169 168
+                              Store 55(dvec4v) 170
+             171:   39(float) Load 41(doublev)
+             172:   39(float) ExtInst 1(GLSL.std.450) 9(Ceil) 171
+             173:   39(float) Load 41(doublev)
+             174:   39(float) FAdd 173 172
+                              Store 41(doublev) 174
+             175:   43(fvec2) Load 45(dvec2v)
+             176:   43(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 175
+             177:   43(fvec2) Load 45(dvec2v)
+             178:   43(fvec2) FAdd 177 176
+                              Store 45(dvec2v) 178
+             179:   48(fvec3) Load 50(dvec3v)
+             180:   48(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 179
+             181:   48(fvec3) Load 50(dvec3v)
+             182:   48(fvec3) FAdd 181 180
+                              Store 50(dvec3v) 182
+             183:   53(fvec4) Load 55(dvec4v)
+             184:   53(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 183
+             185:   53(fvec4) Load 55(dvec4v)
+             186:   53(fvec4) FAdd 185 184
+                              Store 55(dvec4v) 186
+             187:   39(float) Load 41(doublev)
+             188:   39(float) ExtInst 1(GLSL.std.450) 10(Fract) 187
+             189:   39(float) Load 41(doublev)
+             190:   39(float) FAdd 189 188
+                              Store 41(doublev) 190
+             191:   43(fvec2) Load 45(dvec2v)
+             192:   43(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 191
+             193:   43(fvec2) Load 45(dvec2v)
+             194:   43(fvec2) FAdd 193 192
+                              Store 45(dvec2v) 194
+             195:   48(fvec3) Load 50(dvec3v)
+             196:   48(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 195
+             197:   48(fvec3) Load 50(dvec3v)
+             198:   48(fvec3) FAdd 197 196
+                              Store 50(dvec3v) 198
+             199:   53(fvec4) Load 55(dvec4v)
+             200:   53(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 199
+             201:   53(fvec4) Load 55(dvec4v)
+             202:   53(fvec4) FAdd 201 200
+                              Store 55(dvec4v) 202
+             203:   39(float) Load 41(doublev)
+             204:   39(float) Load 41(doublev)
+             205:   39(float) FMod 203 204
+             206:   39(float) Load 41(doublev)
+             207:   39(float) FAdd 206 205
+                              Store 41(doublev) 207
+             208:   43(fvec2) Load 45(dvec2v)
+             209:   39(float) Load 41(doublev)
+             210:   43(fvec2) CompositeConstruct 209 209
+             211:   43(fvec2) FMod 208 210
+             212:   43(fvec2) Load 45(dvec2v)
+             213:   43(fvec2) FAdd 212 211
+                              Store 45(dvec2v) 213
+             214:   48(fvec3) Load 50(dvec3v)
+             215:   39(float) Load 41(doublev)
+             216:   48(fvec3) CompositeConstruct 215 215 215
+             217:   48(fvec3) FMod 214 216
+             218:   48(fvec3) Load 50(dvec3v)
+             219:   48(fvec3) FAdd 218 217
+                              Store 50(dvec3v) 219
+             220:   53(fvec4) Load 55(dvec4v)
+             221:   39(float) Load 41(doublev)
+             222:   53(fvec4) CompositeConstruct 221 221 221 221
+             223:   53(fvec4) FMod 220 222
+             224:   53(fvec4) Load 55(dvec4v)
+             225:   53(fvec4) FAdd 224 223
+                              Store 55(dvec4v) 225
+             226:   43(fvec2) Load 45(dvec2v)
+             227:   43(fvec2) Load 45(dvec2v)
+             228:   43(fvec2) FMod 226 227
+             229:   43(fvec2) Load 45(dvec2v)
+             230:   43(fvec2) FAdd 229 228
+                              Store 45(dvec2v) 230
+             231:   48(fvec3) Load 50(dvec3v)
+             232:   48(fvec3) Load 50(dvec3v)
+             233:   48(fvec3) FMod 231 232
+             234:   48(fvec3) Load 50(dvec3v)
+             235:   48(fvec3) FAdd 234 233
+                              Store 50(dvec3v) 235
+             236:   53(fvec4) Load 55(dvec4v)
+             237:   53(fvec4) Load 55(dvec4v)
+             238:   53(fvec4) FMod 236 237
+             239:   53(fvec4) Load 55(dvec4v)
+             240:   53(fvec4) FAdd 239 238
+                              Store 55(dvec4v) 240
+             241:   39(float) Load 41(doublev)
+             242:   39(float) ExtInst 1(GLSL.std.450) 35(Modf) 241 41(doublev)
+             243:   39(float) Load 41(doublev)
+             244:   39(float) FAdd 243 242
+                              Store 41(doublev) 244
+             245:   43(fvec2) Load 45(dvec2v)
+             246:   43(fvec2) ExtInst 1(GLSL.std.450) 35(Modf) 245 45(dvec2v)
+             247:   43(fvec2) Load 45(dvec2v)
+             248:   43(fvec2) FAdd 247 246
+                              Store 45(dvec2v) 248
+             249:   48(fvec3) Load 50(dvec3v)
+             250:   48(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 249 50(dvec3v)
+             251:   48(fvec3) Load 50(dvec3v)
+             252:   48(fvec3) FAdd 251 250
+                              Store 50(dvec3v) 252
+             253:   53(fvec4) Load 55(dvec4v)
+             254:   53(fvec4) ExtInst 1(GLSL.std.450) 35(Modf) 253 55(dvec4v)
+             255:   53(fvec4) Load 55(dvec4v)
+             256:   53(fvec4) FAdd 255 254
+                              Store 55(dvec4v) 256
+             257:   39(float) Load 41(doublev)
+             258:   39(float) Load 41(doublev)
+             259:   39(float) ExtInst 1(GLSL.std.450) 37(FMin) 257 258
+             260:   39(float) Load 41(doublev)
+             261:   39(float) FAdd 260 259
+                              Store 41(doublev) 261
+             262:   43(fvec2) Load 45(dvec2v)
+             263:   39(float) Load 41(doublev)
+             264:   43(fvec2) CompositeConstruct 263 263
+             265:   43(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 262 264
+             266:   43(fvec2) Load 45(dvec2v)
+             267:   43(fvec2) FAdd 266 265
+                              Store 45(dvec2v) 267
+             268:   48(fvec3) Load 50(dvec3v)
+             269:   39(float) Load 41(doublev)
+             270:   48(fvec3) CompositeConstruct 269 269 269
+             271:   48(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 268 270
+             272:   48(fvec3) Load 50(dvec3v)
+             273:   48(fvec3) FAdd 272 271
+                              Store 50(dvec3v) 273
+             274:   53(fvec4) Load 55(dvec4v)
+             275:   39(float) Load 41(doublev)
+             276:   53(fvec4) CompositeConstruct 275 275 275 275
+             277:   53(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 274 276
+             278:   53(fvec4) Load 55(dvec4v)
+             279:   53(fvec4) FAdd 278 277
+                              Store 55(dvec4v) 279
+             280:   43(fvec2) Load 45(dvec2v)
+             281:   43(fvec2) Load 45(dvec2v)
+             282:   43(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 280 281
+             283:   43(fvec2) Load 45(dvec2v)
+             284:   43(fvec2) FAdd 283 282
+                              Store 45(dvec2v) 284
+             285:   48(fvec3) Load 50(dvec3v)
+             286:   48(fvec3) Load 50(dvec3v)
+             287:   48(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 285 286
+             288:   48(fvec3) Load 50(dvec3v)
+             289:   48(fvec3) FAdd 288 287
+                              Store 50(dvec3v) 289
+             290:   53(fvec4) Load 55(dvec4v)
+             291:   53(fvec4) Load 55(dvec4v)
+             292:   53(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 290 291
+             293:   53(fvec4) Load 55(dvec4v)
+             294:   53(fvec4) FAdd 293 292
+                              Store 55(dvec4v) 294
+             295:   39(float) Load 41(doublev)
+             296:   39(float) Load 41(doublev)
+             297:   39(float) ExtInst 1(GLSL.std.450) 40(FMax) 295 296
+             298:   39(float) Load 41(doublev)
+             299:   39(float) FAdd 298 297
+                              Store 41(doublev) 299
+             300:   43(fvec2) Load 45(dvec2v)
+             301:   39(float) Load 41(doublev)
+             302:   43(fvec2) CompositeConstruct 301 301
+             303:   43(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 300 302
+             304:   43(fvec2) Load 45(dvec2v)
+             305:   43(fvec2) FAdd 304 303
+                              Store 45(dvec2v) 305
+             306:   48(fvec3) Load 50(dvec3v)
+             307:   39(float) Load 41(doublev)
+             308:   48(fvec3) CompositeConstruct 307 307 307
+             309:   48(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 306 308
+             310:   48(fvec3) Load 50(dvec3v)
+             311:   48(fvec3) FAdd 310 309
+                              Store 50(dvec3v) 311
+             312:   53(fvec4) Load 55(dvec4v)
+             313:   39(float) Load 41(doublev)
+             314:   53(fvec4) CompositeConstruct 313 313 313 313
+             315:   53(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 312 314
+             316:   53(fvec4) Load 55(dvec4v)
+             317:   53(fvec4) FAdd 316 315
+                              Store 55(dvec4v) 317
+             318:   43(fvec2) Load 45(dvec2v)
+             319:   43(fvec2) Load 45(dvec2v)
+             320:   43(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 318 319
+             321:   43(fvec2) Load 45(dvec2v)
+             322:   43(fvec2) FAdd 321 320
+                              Store 45(dvec2v) 322
+             323:   48(fvec3) Load 50(dvec3v)
+             324:   48(fvec3) Load 50(dvec3v)
+             325:   48(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 323 324
+             326:   48(fvec3) Load 50(dvec3v)
+             327:   48(fvec3) FAdd 326 325
+                              Store 50(dvec3v) 327
+             328:   53(fvec4) Load 55(dvec4v)
+             329:   53(fvec4) Load 55(dvec4v)
+             330:   53(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 328 329
+             331:   53(fvec4) Load 55(dvec4v)
+             332:   53(fvec4) FAdd 331 330
+                              Store 55(dvec4v) 332
+             333:   39(float) Load 41(doublev)
+             334:   39(float) Load 41(doublev)
+             335:   39(float) Load 41(doublev)
+             336:   39(float) ExtInst 1(GLSL.std.450) 43(FClamp) 333 334 335
+             337:   39(float) Load 41(doublev)
+             338:   39(float) FAdd 337 336
+                              Store 41(doublev) 338
+             339:   43(fvec2) Load 45(dvec2v)
+             340:   39(float) Load 41(doublev)
+             341:   39(float) Load 41(doublev)
+             342:   43(fvec2) CompositeConstruct 340 340
+             343:   43(fvec2) CompositeConstruct 341 341
+             344:   43(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 339 342 343
+             345:   43(fvec2) Load 45(dvec2v)
+             346:   43(fvec2) FAdd 345 344
+                              Store 45(dvec2v) 346
+             347:   48(fvec3) Load 50(dvec3v)
+             348:   39(float) Load 41(doublev)
+             349:   39(float) Load 41(doublev)
+             350:   48(fvec3) CompositeConstruct 348 348 348
+             351:   48(fvec3) CompositeConstruct 349 349 349
+             352:   48(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 347 350 351
+             353:   48(fvec3) Load 50(dvec3v)
+             354:   48(fvec3) FAdd 353 352
+                              Store 50(dvec3v) 354
+             355:   53(fvec4) Load 55(dvec4v)
+             356:   39(float) Load 41(doublev)
+             357:   39(float) Load 41(doublev)
+             358:   53(fvec4) CompositeConstruct 356 356 356 356
+             359:   53(fvec4) CompositeConstruct 357 357 357 357
+             360:   53(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 355 358 359
+             361:   53(fvec4) Load 55(dvec4v)
+             362:   53(fvec4) FAdd 361 360
+                              Store 55(dvec4v) 362
+             363:   43(fvec2) Load 45(dvec2v)
+             364:   43(fvec2) Load 45(dvec2v)
+             365:   43(fvec2) Load 45(dvec2v)
+             366:   43(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 363 364 365
+             367:   43(fvec2) Load 45(dvec2v)
+             368:   43(fvec2) FAdd 367 366
+                              Store 45(dvec2v) 368
+             369:   48(fvec3) Load 50(dvec3v)
+             370:   48(fvec3) Load 50(dvec3v)
+             371:   48(fvec3) Load 50(dvec3v)
+             372:   48(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 369 370 371
+             373:   48(fvec3) Load 50(dvec3v)
+             374:   48(fvec3) FAdd 373 372
+                              Store 50(dvec3v) 374
+             375:   53(fvec4) Load 55(dvec4v)
+             376:   53(fvec4) Load 55(dvec4v)
+             377:   53(fvec4) Load 55(dvec4v)
+             378:   53(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 375 376 377
+             379:   53(fvec4) Load 55(dvec4v)
+             380:   53(fvec4) FAdd 379 378
+                              Store 55(dvec4v) 380
+             381:   39(float) Load 41(doublev)
+             382:   39(float) Load 41(doublev)
+             383:   39(float) Load 41(doublev)
+             384:   39(float) ExtInst 1(GLSL.std.450) 46(FMix) 381 382 383
+             385:   39(float) Load 41(doublev)
+             386:   39(float) FAdd 385 384
+                              Store 41(doublev) 386
+             387:   43(fvec2) Load 45(dvec2v)
+             388:   43(fvec2) Load 45(dvec2v)
+             389:   39(float) Load 41(doublev)
+             390:   43(fvec2) CompositeConstruct 389 389
+             391:   43(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 387 388 390
+             392:   43(fvec2) Load 45(dvec2v)
+             393:   43(fvec2) FAdd 392 391
+                              Store 45(dvec2v) 393
+             394:   48(fvec3) Load 50(dvec3v)
+             395:   48(fvec3) Load 50(dvec3v)
+             396:   39(float) Load 41(doublev)
+             397:   48(fvec3) CompositeConstruct 396 396 396
+             398:   48(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 394 395 397
+             399:   48(fvec3) Load 50(dvec3v)
+             400:   48(fvec3) FAdd 399 398
+                              Store 50(dvec3v) 400
+             401:   53(fvec4) Load 55(dvec4v)
+             402:   53(fvec4) Load 55(dvec4v)
+             403:   39(float) Load 41(doublev)
+             404:   53(fvec4) CompositeConstruct 403 403 403 403
+             405:   53(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 401 402 404
+             406:   53(fvec4) Load 55(dvec4v)
+             407:   53(fvec4) FAdd 406 405
+                              Store 55(dvec4v) 407
+             408:   43(fvec2) Load 45(dvec2v)
+             409:   43(fvec2) Load 45(dvec2v)
+             410:   43(fvec2) Load 45(dvec2v)
+             411:   43(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 408 409 410
+             412:   43(fvec2) Load 45(dvec2v)
+             413:   43(fvec2) FAdd 412 411
+                              Store 45(dvec2v) 413
+             414:   48(fvec3) Load 50(dvec3v)
+             415:   48(fvec3) Load 50(dvec3v)
+             416:   48(fvec3) Load 50(dvec3v)
+             417:   48(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 414 415 416
+             418:   48(fvec3) Load 50(dvec3v)
+             419:   48(fvec3) FAdd 418 417
+                              Store 50(dvec3v) 419
+             420:   53(fvec4) Load 55(dvec4v)
+             421:   53(fvec4) Load 55(dvec4v)
+             422:   53(fvec4) Load 55(dvec4v)
+             423:   53(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 420 421 422
+             424:   53(fvec4) Load 55(dvec4v)
+             425:   53(fvec4) FAdd 424 423
+                              Store 55(dvec4v) 425
+             426:   39(float) Load 41(doublev)
+             427:   39(float) Load 41(doublev)
+             431:   428(bool) Load 430(boolv)
+             432:   39(float) Select 431 427 426
+             433:   39(float) Load 41(doublev)
+             434:   39(float) FAdd 433 432
+                              Store 41(doublev) 434
+             435:   43(fvec2) Load 45(dvec2v)
+             436:   43(fvec2) Load 45(dvec2v)
+             440:  437(bvec2) Load 439(bvec2v)
+             441:   43(fvec2) Select 440 436 435
+             442:   43(fvec2) Load 45(dvec2v)
+             443:   43(fvec2) FAdd 442 441
+                              Store 45(dvec2v) 443
+             444:   48(fvec3) Load 50(dvec3v)
+             445:   48(fvec3) Load 50(dvec3v)
+             449:  446(bvec3) Load 448(bvec3v)
+             450:   48(fvec3) Select 449 445 444
+             451:   48(fvec3) Load 50(dvec3v)
+             452:   48(fvec3) FAdd 451 450
+                              Store 50(dvec3v) 452
+             453:   53(fvec4) Load 55(dvec4v)
+             454:   53(fvec4) Load 55(dvec4v)
+             458:  455(bvec4) Load 457(bvec4v)
+             459:   53(fvec4) Select 458 454 453
+             460:   53(fvec4) Load 55(dvec4v)
+             461:   53(fvec4) FAdd 460 459
+                              Store 55(dvec4v) 461
+             462:   39(float) Load 41(doublev)
+             463:   39(float) Load 41(doublev)
+             464:   39(float) ExtInst 1(GLSL.std.450) 48(Step) 462 463
+             465:   39(float) Load 41(doublev)
+             466:   39(float) FAdd 465 464
+                              Store 41(doublev) 466
+             467:   43(fvec2) Load 45(dvec2v)
+             468:   43(fvec2) Load 45(dvec2v)
+             469:   43(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 467 468
+             470:   43(fvec2) Load 45(dvec2v)
+             471:   43(fvec2) FAdd 470 469
+                              Store 45(dvec2v) 471
+             472:   48(fvec3) Load 50(dvec3v)
+             473:   48(fvec3) Load 50(dvec3v)
+             474:   48(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 472 473
+             475:   48(fvec3) Load 50(dvec3v)
+             476:   48(fvec3) FAdd 475 474
+                              Store 50(dvec3v) 476
+             477:   53(fvec4) Load 55(dvec4v)
+             478:   53(fvec4) Load 55(dvec4v)
+             479:   53(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 477 478
+             480:   53(fvec4) Load 55(dvec4v)
+             481:   53(fvec4) FAdd 480 479
+                              Store 55(dvec4v) 481
+             482:   39(float) Load 41(doublev)
+             483:   43(fvec2) Load 45(dvec2v)
+             484:   43(fvec2) CompositeConstruct 482 482
+             485:   43(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 484 483
+             486:   43(fvec2) Load 45(dvec2v)
+             487:   43(fvec2) FAdd 486 485
+                              Store 45(dvec2v) 487
+             488:   39(float) Load 41(doublev)
+             489:   48(fvec3) Load 50(dvec3v)
+             490:   48(fvec3) CompositeConstruct 488 488 488
+             491:   48(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 490 489
+             492:   48(fvec3) Load 50(dvec3v)
+             493:   48(fvec3) FAdd 492 491
+                              Store 50(dvec3v) 493
+             494:   39(float) Load 41(doublev)
+             495:   53(fvec4) Load 55(dvec4v)
+             496:   53(fvec4) CompositeConstruct 494 494 494 494
+             497:   53(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 496 495
+             498:   53(fvec4) Load 55(dvec4v)
+             499:   53(fvec4) FAdd 498 497
+                              Store 55(dvec4v) 499
+             500:   39(float) Load 41(doublev)
+             501:   39(float) Load 41(doublev)
+             502:   39(float) Load 41(doublev)
+             503:   39(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 500 501 502
+             504:   39(float) Load 41(doublev)
+             505:   39(float) FAdd 504 503
+                              Store 41(doublev) 505
+             506:   43(fvec2) Load 45(dvec2v)
+             507:   43(fvec2) Load 45(dvec2v)
+             508:   43(fvec2) Load 45(dvec2v)
+             509:   43(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 506 507 508
+             510:   43(fvec2) Load 45(dvec2v)
+             511:   43(fvec2) FAdd 510 509
+                              Store 45(dvec2v) 511
+             512:   48(fvec3) Load 50(dvec3v)
+             513:   48(fvec3) Load 50(dvec3v)
+             514:   48(fvec3) Load 50(dvec3v)
+             515:   48(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 512 513 514
+             516:   48(fvec3) Load 50(dvec3v)
+             517:   48(fvec3) FAdd 516 515
+                              Store 50(dvec3v) 517
+             518:   53(fvec4) Load 55(dvec4v)
+             519:   53(fvec4) Load 55(dvec4v)
+             520:   53(fvec4) Load 55(dvec4v)
+             521:   53(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 518 519 520
+             522:   53(fvec4) Load 55(dvec4v)
+             523:   53(fvec4) FAdd 522 521
+                              Store 55(dvec4v) 523
+             524:   39(float) Load 41(doublev)
+             525:   39(float) Load 41(doublev)
+             526:   43(fvec2) Load 45(dvec2v)
+             527:   43(fvec2) CompositeConstruct 524 524
+             528:   43(fvec2) CompositeConstruct 525 525
+             529:   43(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 527 528 526
+             530:   43(fvec2) Load 45(dvec2v)
+             531:   43(fvec2) FAdd 530 529
+                              Store 45(dvec2v) 531
+             532:   39(float) Load 41(doublev)
+             533:   39(float) Load 41(doublev)
+             534:   48(fvec3) Load 50(dvec3v)
+             535:   48(fvec3) CompositeConstruct 532 532 532
+             536:   48(fvec3) CompositeConstruct 533 533 533
+             537:   48(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 535 536 534
+             538:   48(fvec3) Load 50(dvec3v)
+             539:   48(fvec3) FAdd 538 537
+                              Store 50(dvec3v) 539
+             540:   39(float) Load 41(doublev)
+             541:   39(float) Load 41(doublev)
+             542:   53(fvec4) Load 55(dvec4v)
+             543:   53(fvec4) CompositeConstruct 540 540 540 540
+             544:   53(fvec4) CompositeConstruct 541 541 541 541
+             545:   53(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 543 544 542
+             546:   53(fvec4) Load 55(dvec4v)
+             547:   53(fvec4) FAdd 546 545
+                              Store 55(dvec4v) 547
+             548:   39(float) Load 41(doublev)
+             549:   428(bool) IsNan 548
+                              Store 430(boolv) 549
+             550:   43(fvec2) Load 45(dvec2v)
+             551:  437(bvec2) IsNan 550
+                              Store 439(bvec2v) 551
+             552:   48(fvec3) Load 50(dvec3v)
+             553:  446(bvec3) IsNan 552
+                              Store 448(bvec3v) 553
+             554:   53(fvec4) Load 55(dvec4v)
+             555:  455(bvec4) IsNan 554
+                              Store 457(bvec4v) 555
+             557:   428(bool) Load 430(boolv)
+                              SelectionMerge 559 None
+                              BranchConditional 557 558 562
+             558:               Label
+             560:   39(float)   Load 41(doublev)
+             561:   428(bool)   IsInf 560
+                                Store 556 561
+                                Branch 559
+             562:               Label
+                                Store 556 563
+                                Branch 559
+             559:             Label
+             564:   428(bool) Load 556
+                              Store 430(boolv) 564
+             566:   428(bool) Load 430(boolv)
+                              SelectionMerge 568 None
+                              BranchConditional 566 567 571
+             567:               Label
+             569:   43(fvec2)   Load 45(dvec2v)
+             570:  437(bvec2)   IsInf 569
+                                Store 565 570
+                                Branch 568
+             571:               Label
+                                Store 565 572
+                                Branch 568
+             568:             Label
+             573:  437(bvec2) Load 565
+                              Store 439(bvec2v) 573
+             575:   428(bool) Load 430(boolv)
+                              SelectionMerge 577 None
+                              BranchConditional 575 576 580
+             576:               Label
+             578:   48(fvec3)   Load 50(dvec3v)
+             579:  446(bvec3)   IsInf 578
+                                Store 574 579
+                                Branch 577
+             580:               Label
+                                Store 574 581
+                                Branch 577
+             577:             Label
+             582:  446(bvec3) Load 574
+                              Store 448(bvec3v) 582
+             584:   428(bool) Load 430(boolv)
+                              SelectionMerge 586 None
+                              BranchConditional 584 585 589
+             585:               Label
+             587:   53(fvec4)   Load 55(dvec4v)
+             588:  455(bvec4)   IsInf 587
+                                Store 583 588
+                                Branch 586
+             589:               Label
+                                Store 583 590
+                                Branch 586
+             586:             Label
+             591:  455(bvec4) Load 583
+                              Store 457(bvec4v) 591
+             592:   39(float) Load 41(doublev)
+             593:   39(float) ExtInst 1(GLSL.std.450) 66(Length) 592
+             594:   39(float) Load 41(doublev)
+             595:   39(float) FAdd 594 593
+                              Store 41(doublev) 595
+             596:   43(fvec2) Load 45(dvec2v)
+             597:   39(float) ExtInst 1(GLSL.std.450) 66(Length) 596
+             598:   39(float) Load 41(doublev)
+             599:   39(float) FAdd 598 597
+                              Store 41(doublev) 599
+             600:   48(fvec3) Load 50(dvec3v)
+             601:   39(float) ExtInst 1(GLSL.std.450) 66(Length) 600
+             602:   39(float) Load 41(doublev)
+             603:   39(float) FAdd 602 601
+                              Store 41(doublev) 603
+             604:   53(fvec4) Load 55(dvec4v)
+             605:   39(float) ExtInst 1(GLSL.std.450) 66(Length) 604
+             606:   39(float) Load 41(doublev)
+             607:   39(float) FAdd 606 605
+                              Store 41(doublev) 607
+             608:   39(float) Load 41(doublev)
+             609:   39(float) Load 41(doublev)
+             610:   39(float) ExtInst 1(GLSL.std.450) 67(Distance) 608 609
+             611:   39(float) Load 41(doublev)
+             612:   39(float) FAdd 611 610
+                              Store 41(doublev) 612
+             613:   43(fvec2) Load 45(dvec2v)
+             614:   43(fvec2) Load 45(dvec2v)
+             615:   39(float) ExtInst 1(GLSL.std.450) 67(Distance) 613 614
+             616:   39(float) Load 41(doublev)
+             617:   39(float) FAdd 616 615
+                              Store 41(doublev) 617
+             618:   48(fvec3) Load 50(dvec3v)
+             619:   48(fvec3) Load 50(dvec3v)
+             620:   39(float) ExtInst 1(GLSL.std.450) 67(Distance) 618 619
+             621:   39(float) Load 41(doublev)
+             622:   39(float) FAdd 621 620
+                              Store 41(doublev) 622
+             623:   53(fvec4) Load 55(dvec4v)
+             624:   53(fvec4) Load 55(dvec4v)
+             625:   39(float) ExtInst 1(GLSL.std.450) 67(Distance) 623 624
+             626:   39(float) Load 41(doublev)
+             627:   39(float) FAdd 626 625
+                              Store 41(doublev) 627
+             628:   39(float) Load 41(doublev)
+             629:   39(float) Load 41(doublev)
+             630:   39(float) FMul 628 629
+             631:   39(float) Load 41(doublev)
+             632:   39(float) FAdd 631 630
+                              Store 41(doublev) 632
+             633:   43(fvec2) Load 45(dvec2v)
+             634:   43(fvec2) Load 45(dvec2v)
+             635:   39(float) Dot 633 634
+             636:   39(float) Load 41(doublev)
+             637:   39(float) FAdd 636 635
+                              Store 41(doublev) 637
+             638:   48(fvec3) Load 50(dvec3v)
+             639:   48(fvec3) Load 50(dvec3v)
+             640:   39(float) Dot 638 639
+             641:   39(float) Load 41(doublev)
+             642:   39(float) FAdd 641 640
+                              Store 41(doublev) 642
+             643:   53(fvec4) Load 55(dvec4v)
+             644:   53(fvec4) Load 55(dvec4v)
+             645:   39(float) Dot 643 644
+             646:   39(float) Load 41(doublev)
+             647:   39(float) FAdd 646 645
+                              Store 41(doublev) 647
+             648:   48(fvec3) Load 50(dvec3v)
+             649:   48(fvec3) Load 50(dvec3v)
+             650:   48(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 648 649
+             651:   48(fvec3) Load 50(dvec3v)
+             652:   48(fvec3) FAdd 651 650
+                              Store 50(dvec3v) 652
+             653:   39(float) Load 41(doublev)
+             654:   39(float) ExtInst 1(GLSL.std.450) 69(Normalize) 653
+             655:   39(float) Load 41(doublev)
+             656:   39(float) FAdd 655 654
+                              Store 41(doublev) 656
+             657:   43(fvec2) Load 45(dvec2v)
+             658:   43(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 657
+             659:   43(fvec2) Load 45(dvec2v)
+             660:   43(fvec2) FAdd 659 658
+                              Store 45(dvec2v) 660
+             661:   48(fvec3) Load 50(dvec3v)
+             662:   48(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 661
+             663:   48(fvec3) Load 50(dvec3v)
+             664:   48(fvec3) FAdd 663 662
+                              Store 50(dvec3v) 664
+             665:   53(fvec4) Load 55(dvec4v)
+             666:   53(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 665
+             667:   53(fvec4) Load 55(dvec4v)
+             668:   53(fvec4) FAdd 667 666
+                              Store 55(dvec4v) 668
+             669:   39(float) Load 41(doublev)
+             670:   39(float) Load 41(doublev)
+             671:   39(float) Load 41(doublev)
+             672:   39(float) ExtInst 1(GLSL.std.450) 70(FaceForward) 669 670 671
+             673:   39(float) Load 41(doublev)
+             674:   39(float) FAdd 673 672
+                              Store 41(doublev) 674
+             675:   43(fvec2) Load 45(dvec2v)
+             676:   43(fvec2) Load 45(dvec2v)
+             677:   43(fvec2) Load 45(dvec2v)
+             678:   43(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 675 676 677
+             679:   43(fvec2) Load 45(dvec2v)
+             680:   43(fvec2) FAdd 679 678
+                              Store 45(dvec2v) 680
+             681:   48(fvec3) Load 50(dvec3v)
+             682:   48(fvec3) Load 50(dvec3v)
+             683:   48(fvec3) Load 50(dvec3v)
+             684:   48(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 681 682 683
+             685:   48(fvec3) Load 50(dvec3v)
+             686:   48(fvec3) FAdd 685 684
+                              Store 50(dvec3v) 686
+             687:   53(fvec4) Load 55(dvec4v)
+             688:   53(fvec4) Load 55(dvec4v)
+             689:   53(fvec4) Load 55(dvec4v)
+             690:   53(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 687 688 689
+             691:   53(fvec4) Load 55(dvec4v)
+             692:   53(fvec4) FAdd 691 690
+                              Store 55(dvec4v) 692
+             693:   39(float) Load 41(doublev)
+             694:   39(float) Load 41(doublev)
+             695:   39(float) ExtInst 1(GLSL.std.450) 71(Reflect) 693 694
+             696:   39(float) Load 41(doublev)
+             697:   39(float) FAdd 696 695
+                              Store 41(doublev) 697
+             698:   43(fvec2) Load 45(dvec2v)
+             699:   43(fvec2) Load 45(dvec2v)
+             700:   43(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 698 699
+             701:   43(fvec2) Load 45(dvec2v)
+             702:   43(fvec2) FAdd 701 700
+                              Store 45(dvec2v) 702
+             703:   48(fvec3) Load 50(dvec3v)
+             704:   48(fvec3) Load 50(dvec3v)
+             705:   48(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 703 704
+             706:   48(fvec3) Load 50(dvec3v)
+             707:   48(fvec3) FAdd 706 705
+                              Store 50(dvec3v) 707
+             708:   53(fvec4) Load 55(dvec4v)
+             709:   53(fvec4) Load 55(dvec4v)
+             710:   53(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 708 709
+             711:   53(fvec4) Load 55(dvec4v)
+             712:   53(fvec4) FAdd 711 710
+                              Store 55(dvec4v) 712
+             713:   39(float) Load 41(doublev)
+             714:   39(float) Load 41(doublev)
+             715:   39(float) Load 41(doublev)
+             716:   39(float) ExtInst 1(GLSL.std.450) 72(Refract) 713 714 715
+             717:   39(float) Load 41(doublev)
+             718:   39(float) FAdd 717 716
+                              Store 41(doublev) 718
+             719:   43(fvec2) Load 45(dvec2v)
+             720:   43(fvec2) Load 45(dvec2v)
+             721:   39(float) Load 41(doublev)
+             722:   43(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 719 720 721
+             723:   43(fvec2) Load 45(dvec2v)
+             724:   43(fvec2) FAdd 723 722
+                              Store 45(dvec2v) 724
+             725:   48(fvec3) Load 50(dvec3v)
+             726:   48(fvec3) Load 50(dvec3v)
+             727:   39(float) Load 41(doublev)
+             728:   48(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 725 726 727
+             729:   48(fvec3) Load 50(dvec3v)
+             730:   48(fvec3) FAdd 729 728
+                              Store 50(dvec3v) 730
+             731:   53(fvec4) Load 55(dvec4v)
+             732:   53(fvec4) Load 55(dvec4v)
+             733:   39(float) Load 41(doublev)
+             734:   53(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 731 732 733
+             735:   53(fvec4) Load 55(dvec4v)
+             736:   53(fvec4) FAdd 735 734
+                              Store 55(dvec4v) 736
+             740:   43(fvec2) Load 45(dvec2v)
+             741:   43(fvec2) Load 45(dvec2v)
+             742:         737 OuterProduct 740 741
+                              Store 739(dmat2v) 742
+             746:   48(fvec3) Load 50(dvec3v)
+             747:   48(fvec3) Load 50(dvec3v)
+             748:         743 OuterProduct 746 747
+                              Store 745(dmat3v) 748
+             752:   53(fvec4) Load 55(dvec4v)
+             753:   53(fvec4) Load 55(dvec4v)
+             754:         749 OuterProduct 752 753
+                              Store 751(dmat4v) 754
+             758:   48(fvec3) Load 50(dvec3v)
+             759:   43(fvec2) Load 45(dvec2v)
+             760:         755 OuterProduct 758 759
+                              Store 757(dmat2x3v) 760
+             764:   43(fvec2) Load 45(dvec2v)
+             765:   48(fvec3) Load 50(dvec3v)
+             766:         761 OuterProduct 764 765
+                              Store 763(dmat3x2v) 766
+             770:   53(fvec4) Load 55(dvec4v)
+             771:   43(fvec2) Load 45(dvec2v)
+             772:         767 OuterProduct 770 771
+                              Store 769(dmat2x4v) 772
+             776:   43(fvec2) Load 45(dvec2v)
+             777:   53(fvec4) Load 55(dvec4v)
+             778:         773 OuterProduct 776 777
+                              Store 775(dmat4x2v) 778
+             782:   53(fvec4) Load 55(dvec4v)
+             783:   48(fvec3) Load 50(dvec3v)
+             784:         779 OuterProduct 782 783
+                              Store 781(dmat3x4v) 784
+             788:   48(fvec3) Load 50(dvec3v)
+             789:   53(fvec4) Load 55(dvec4v)
+             790:         785 OuterProduct 788 789
+                              Store 787(dmat4x3v) 790
+             791:         737 Load 739(dmat2v)
+             792:         737 Load 739(dmat2v)
+             793:   43(fvec2) CompositeExtract 791 0
+             794:   43(fvec2) CompositeExtract 792 0
+             795:   43(fvec2) FMul 793 794
+             796:   43(fvec2) CompositeExtract 791 1
+             797:   43(fvec2) CompositeExtract 792 1
+             798:   43(fvec2) FMul 796 797
+             799:         737 CompositeConstruct 795 798
+             800:         737 Load 739(dmat2v)
+             801:         737 MatrixTimesMatrix 800 799
+                              Store 739(dmat2v) 801
+             802:         743 Load 745(dmat3v)
+             803:         743 Load 745(dmat3v)
+             804:   48(fvec3) CompositeExtract 802 0
+             805:   48(fvec3) CompositeExtract 803 0
+             806:   48(fvec3) FMul 804 805
+             807:   48(fvec3) CompositeExtract 802 1
+             808:   48(fvec3) CompositeExtract 803 1
+             809:   48(fvec3) FMul 807 808
+             810:   48(fvec3) CompositeExtract 802 2
+             811:   48(fvec3) CompositeExtract 803 2
+             812:   48(fvec3) FMul 810 811
+             813:         743 CompositeConstruct 806 809 812
+             814:         743 Load 745(dmat3v)
+             815:         743 MatrixTimesMatrix 814 813
+                              Store 745(dmat3v) 815
+             816:         749 Load 751(dmat4v)
+             817:         749 Load 751(dmat4v)
+             818:   53(fvec4) CompositeExtract 816 0
+             819:   53(fvec4) CompositeExtract 817 0
+             820:   53(fvec4) FMul 818 819
+             821:   53(fvec4) CompositeExtract 816 1
+             822:   53(fvec4) CompositeExtract 817 1
+             823:   53(fvec4) FMul 821 822
+             824:   53(fvec4) CompositeExtract 816 2
+             825:   53(fvec4) CompositeExtract 817 2
+             826:   53(fvec4) FMul 824 825
+             827:   53(fvec4) CompositeExtract 816 3
+             828:   53(fvec4) CompositeExtract 817 3
+             829:   53(fvec4) FMul 827 828
+             830:         749 CompositeConstruct 820 823 826 829
+             831:         749 Load 751(dmat4v)
+             832:         749 MatrixTimesMatrix 831 830
+                              Store 751(dmat4v) 832
+             833:         755 Load 757(dmat2x3v)
+             834:         755 Load 757(dmat2x3v)
+             835:   48(fvec3) CompositeExtract 833 0
+             836:   48(fvec3) CompositeExtract 834 0
+             837:   48(fvec3) FMul 835 836
+             838:   48(fvec3) CompositeExtract 833 1
+             839:   48(fvec3) CompositeExtract 834 1
+             840:   48(fvec3) FMul 838 839
+             841:         755 CompositeConstruct 837 840
+                              Store 757(dmat2x3v) 841
+             842:         767 Load 769(dmat2x4v)
+             843:         767 Load 769(dmat2x4v)
+             844:   53(fvec4) CompositeExtract 842 0
+             845:   53(fvec4) CompositeExtract 843 0
+             846:   53(fvec4) FMul 844 845
+             847:   53(fvec4) CompositeExtract 842 1
+             848:   53(fvec4) CompositeExtract 843 1
+             849:   53(fvec4) FMul 847 848
+             850:         767 CompositeConstruct 846 849
+                              Store 769(dmat2x4v) 850
+             851:         761 Load 763(dmat3x2v)
+             852:         761 Load 763(dmat3x2v)
+             853:   43(fvec2) CompositeExtract 851 0
+             854:   43(fvec2) CompositeExtract 852 0
+             855:   43(fvec2) FMul 853 854
+             856:   43(fvec2) CompositeExtract 851 1
+             857:   43(fvec2) CompositeExtract 852 1
+             858:   43(fvec2) FMul 856 857
+             859:   43(fvec2) CompositeExtract 851 2
+             860:   43(fvec2) CompositeExtract 852 2
+             861:   43(fvec2) FMul 859 860
+             862:         761 CompositeConstruct 855 858 861
+                              Store 763(dmat3x2v) 862
+             863:         779 Load 781(dmat3x4v)
+             864:         779 Load 781(dmat3x4v)
+             865:   53(fvec4) CompositeExtract 863 0
+             866:   53(fvec4) CompositeExtract 864 0
+             867:   53(fvec4) FMul 865 866
+             868:   53(fvec4) CompositeExtract 863 1
+             869:   53(fvec4) CompositeExtract 864 1
+             870:   53(fvec4) FMul 868 869
+             871:   53(fvec4) CompositeExtract 863 2
+             872:   53(fvec4) CompositeExtract 864 2
+             873:   53(fvec4) FMul 871 872
+             874:         779 CompositeConstruct 867 870 873
+                              Store 781(dmat3x4v) 874
+             875:         773 Load 775(dmat4x2v)
+             876:         773 Load 775(dmat4x2v)
+             877:   43(fvec2) CompositeExtract 875 0
+             878:   43(fvec2) CompositeExtract 876 0
+             879:   43(fvec2) FMul 877 878
+             880:   43(fvec2) CompositeExtract 875 1
+             881:   43(fvec2) CompositeExtract 876 1
+             882:   43(fvec2) FMul 880 881
+             883:   43(fvec2) CompositeExtract 875 2
+             884:   43(fvec2) CompositeExtract 876 2
+             885:   43(fvec2) FMul 883 884
+             886:   43(fvec2) CompositeExtract 875 3
+             887:   43(fvec2) CompositeExtract 876 3
+             888:   43(fvec2) FMul 886 887
+             889:         773 CompositeConstruct 879 882 885 888
+                              Store 775(dmat4x2v) 889
+             890:         785 Load 787(dmat4x3v)
+             891:         785 Load 787(dmat4x3v)
+             892:   48(fvec3) CompositeExtract 890 0
+             893:   48(fvec3) CompositeExtract 891 0
+             894:   48(fvec3) FMul 892 893
+             895:   48(fvec3) CompositeExtract 890 1
+             896:   48(fvec3) CompositeExtract 891 1
+             897:   48(fvec3) FMul 895 896
+             898:   48(fvec3) CompositeExtract 890 2
+             899:   48(fvec3) CompositeExtract 891 2
+             900:   48(fvec3) FMul 898 899
+             901:   48(fvec3) CompositeExtract 890 3
+             902:   48(fvec3) CompositeExtract 891 3
+             903:   48(fvec3) FMul 901 902
+             904:         785 CompositeConstruct 894 897 900 903
+                              Store 787(dmat4x3v) 904
+             905:         737 Load 739(dmat2v)
+             906:         737 Transpose 905
+             907:         737 Load 739(dmat2v)
+             908:         737 MatrixTimesMatrix 907 906
+                              Store 739(dmat2v) 908
+             909:         743 Load 745(dmat3v)
+             910:         743 Transpose 909
+             911:         743 Load 745(dmat3v)
+             912:         743 MatrixTimesMatrix 911 910
+                              Store 745(dmat3v) 912
+             913:         749 Load 751(dmat4v)
+             914:         749 Transpose 913
+             915:         749 Load 751(dmat4v)
+             916:         749 MatrixTimesMatrix 915 914
+                              Store 751(dmat4v) 916
+             917:         761 Load 763(dmat3x2v)
+             918:         755 Transpose 917
+                              Store 757(dmat2x3v) 918
+             919:         755 Load 757(dmat2x3v)
+             920:         761 Transpose 919
+                              Store 763(dmat3x2v) 920
+             921:         773 Load 775(dmat4x2v)
+             922:         767 Transpose 921
+                              Store 769(dmat2x4v) 922
+             923:         767 Load 769(dmat2x4v)
+             924:         773 Transpose 923
+                              Store 775(dmat4x2v) 924
+             925:         785 Load 787(dmat4x3v)
+             926:         779 Transpose 925
+                              Store 781(dmat3x4v) 926
+             927:         779 Load 781(dmat3x4v)
+             928:         785 Transpose 927
+                              Store 787(dmat4x3v) 928
+             929:         737 Load 739(dmat2v)
+             930:   39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 929
+             931:   39(float) Load 41(doublev)
+             932:   39(float) FAdd 931 930
+                              Store 41(doublev) 932
+             933:         743 Load 745(dmat3v)
+             934:   39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 933
+             935:   39(float) Load 41(doublev)
+             936:   39(float) FAdd 935 934
+                              Store 41(doublev) 936
+             937:         749 Load 751(dmat4v)
+             938:   39(float) ExtInst 1(GLSL.std.450) 33(Determinant) 937
+             939:   39(float) Load 41(doublev)
+             940:   39(float) FAdd 939 938
+                              Store 41(doublev) 940
+             941:         737 Load 739(dmat2v)
+             942:         737 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 941
+             943:         737 Load 739(dmat2v)
+             944:         737 MatrixTimesMatrix 943 942
+                              Store 739(dmat2v) 944
+             945:         743 Load 745(dmat3v)
+             946:         743 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 945
+             947:         743 Load 745(dmat3v)
+             948:         743 MatrixTimesMatrix 947 946
+                              Store 745(dmat3v) 948
+             949:         749 Load 751(dmat4v)
+             950:         749 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 949
+             951:         749 Load 751(dmat4v)
+             952:         749 MatrixTimesMatrix 951 950
+                              Store 751(dmat4v) 952
+             953:   39(float) Load 41(doublev)
+             955:     40(ptr) AccessChain 45(dvec2v) 954
+             956:   39(float) Load 955
+             957:   39(float) FAdd 953 956
+             959:     40(ptr) AccessChain 50(dvec3v) 958
+             960:   39(float) Load 959
+             961:   39(float) FAdd 957 960
+             963:     40(ptr) AccessChain 55(dvec4v) 962
+             964:   39(float) Load 963
+             965:   39(float) FAdd 961 964
+             967:     40(ptr) AccessChain 739(dmat2v) 966 954
+             968:   39(float) Load 967
+             969:   39(float) FAdd 965 968
+             971:     40(ptr) AccessChain 745(dmat3v) 970 958
+             972:   39(float) Load 971
+             973:   39(float) FAdd 969 972
+             974:     40(ptr) AccessChain 751(dmat4v) 25 962
+             975:   39(float) Load 974
+             976:   39(float) FAdd 973 975
+             977:     40(ptr) AccessChain 757(dmat2x3v) 966 954
+             978:   39(float) Load 977
+             979:   39(float) FAdd 976 978
+             980:     40(ptr) AccessChain 763(dmat3x2v) 966 954
+             981:   39(float) Load 980
+             982:   39(float) FAdd 979 981
+             983:     40(ptr) AccessChain 781(dmat3x4v) 970 958
+             984:   39(float) Load 983
+             985:   39(float) FAdd 982 984
+             986:     40(ptr) AccessChain 787(dmat4x3v) 970 958
+             987:   39(float) Load 986
+             988:   39(float) FAdd 985 987
+             989:     40(ptr) AccessChain 769(dmat2x4v) 966 954
+             990:   39(float) Load 989
+             991:   39(float) FAdd 988 990
+             992:     40(ptr) AccessChain 775(dmat4x2v) 966 954
+             993:   39(float) Load 992
+             994:   39(float) FAdd 991 993
+             995:   428(bool) Load 430(boolv)
+             997:   10(float) Select 995 996 21
+             998:   39(float) FConvert 997
+             999:   39(float) FAdd 994 998
+            1000:  437(bvec2) Load 439(bvec2v)
+            1001:   428(bool) CompositeExtract 1000 0
+            1002:   10(float) Select 1001 996 21
+            1003:   39(float) FConvert 1002
+            1004:   39(float) FAdd 999 1003
+            1005:  446(bvec3) Load 448(bvec3v)
+            1006:   428(bool) CompositeExtract 1005 0
+            1007:   10(float) Select 1006 996 21
+            1008:   39(float) FConvert 1007
+            1009:   39(float) FAdd 1004 1008
+            1010:  455(bvec4) Load 457(bvec4v)
+            1011:   428(bool) CompositeExtract 1010 0
+            1012:   10(float) Select 1011 996 21
+            1013:   39(float) FConvert 1012
+            1014:   39(float) FAdd 1009 1013
+            1015:   10(float) FConvert 1014
+            1016:   11(fvec4) Load 13(outp)
+            1017:   11(fvec4) VectorTimesScalar 1016 1015
+                              Store 13(outp) 1017
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.newTexture.frag.out b/Test/baseResults/spv.newTexture.frag.out
index 4390e26..3206faa 100755
--- a/Test/baseResults/spv.newTexture.frag.out
+++ b/Test/baseResults/spv.newTexture.frag.out
@@ -7,7 +7,7 @@
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 282
+// Id's are bound by 284
 
                               Capability Shader
                               Capability SampledRect
@@ -15,7 +15,7 @@
                               Capability ImageQuery
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 17 26 29 55 81 84 92 251 281
+                              EntryPoint Fragment 4  "main" 17 26 29 55 81 84 92 253 283
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 430
                               Name 4  "main"
@@ -37,18 +37,18 @@
                               Name 139  "s2DArrayShadow"
                               Name 167  "iv"
                               Name 171  "is2D"
-                              Name 206  "is3D"
-                              Name 218  "isCube"
-                              Name 230  "is2DArray"
-                              Name 241  "iv2"
-                              Name 245  "sCubeShadow"
-                              Name 251  "FragData"
-                              Name 263  "is2Dms"
-                              Name 267  "us2D"
-                              Name 271  "us3D"
-                              Name 275  "usCube"
-                              Name 279  "us2DArray"
-                              Name 281  "ic4D"
+                              Name 208  "is3D"
+                              Name 220  "isCube"
+                              Name 232  "is2DArray"
+                              Name 243  "iv2"
+                              Name 247  "sCubeShadow"
+                              Name 253  "FragData"
+                              Name 265  "is2Dms"
+                              Name 269  "us2D"
+                              Name 273  "us3D"
+                              Name 277  "usCube"
+                              Name 281  "us2DArray"
+                              Name 283  "ic4D"
                               Decorate 13(s2D) DescriptorSet 0
                               Decorate 23(sCubeArrayShadow) DescriptorSet 0
                               Decorate 42(s3D) DescriptorSet 0
@@ -61,16 +61,16 @@
                               Decorate 128(sCube) DescriptorSet 0
                               Decorate 139(s2DArrayShadow) DescriptorSet 0
                               Decorate 171(is2D) DescriptorSet 0
-                              Decorate 206(is3D) DescriptorSet 0
-                              Decorate 218(isCube) DescriptorSet 0
-                              Decorate 230(is2DArray) DescriptorSet 0
-                              Decorate 245(sCubeShadow) DescriptorSet 0
-                              Decorate 263(is2Dms) DescriptorSet 0
-                              Decorate 267(us2D) DescriptorSet 0
-                              Decorate 271(us3D) DescriptorSet 0
-                              Decorate 275(usCube) DescriptorSet 0
-                              Decorate 279(us2DArray) DescriptorSet 0
-                              Decorate 281(ic4D) Flat
+                              Decorate 208(is3D) DescriptorSet 0
+                              Decorate 220(isCube) DescriptorSet 0
+                              Decorate 232(is2DArray) DescriptorSet 0
+                              Decorate 247(sCubeShadow) DescriptorSet 0
+                              Decorate 265(is2Dms) DescriptorSet 0
+                              Decorate 269(us2D) DescriptorSet 0
+                              Decorate 273(us3D) DescriptorSet 0
+                              Decorate 277(usCube) DescriptorSet 0
+                              Decorate 281(us2DArray) DescriptorSet 0
+                              Decorate 283(ic4D) Flat
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -142,55 +142,55 @@
              169:             TypeSampledImage 168
              170:             TypePointer UniformConstant 169
        171(is2D):    170(ptr) Variable UniformConstant
-             203:             TypeImage 67(int) 3D sampled format:Unknown
-             204:             TypeSampledImage 203
-             205:             TypePointer UniformConstant 204
-       206(is3D):    205(ptr) Variable UniformConstant
-             209:    6(float) Constant 1082549862
-             215:             TypeImage 67(int) Cube sampled format:Unknown
-             216:             TypeSampledImage 215
-             217:             TypePointer UniformConstant 216
-     218(isCube):    217(ptr) Variable UniformConstant
-             227:             TypeImage 67(int) 2D array sampled format:Unknown
-             228:             TypeSampledImage 227
-             229:             TypePointer UniformConstant 228
-  230(is2DArray):    229(ptr) Variable UniformConstant
-             240:             TypePointer Function 68(ivec2)
-             242:             TypeImage 6(float) Cube depth sampled format:Unknown
-             243:             TypeSampledImage 242
-             244:             TypePointer UniformConstant 243
-245(sCubeShadow):    244(ptr) Variable UniformConstant
-             247:     67(int) Constant 2
-             250:             TypePointer Output 7(fvec4)
-   251(FragData):    250(ptr) Variable Output
-             255:    6(float) Constant 0
-             260:             TypeImage 67(int) 2D multi-sampled sampled format:Unknown
-             261:             TypeSampledImage 260
-             262:             TypePointer UniformConstant 261
-     263(is2Dms):    262(ptr) Variable UniformConstant
-             264:             TypeImage 32(int) 2D sampled format:Unknown
-             265:             TypeSampledImage 264
-             266:             TypePointer UniformConstant 265
-       267(us2D):    266(ptr) Variable UniformConstant
-             268:             TypeImage 32(int) 3D sampled format:Unknown
-             269:             TypeSampledImage 268
-             270:             TypePointer UniformConstant 269
-       271(us3D):    270(ptr) Variable UniformConstant
-             272:             TypeImage 32(int) Cube sampled format:Unknown
-             273:             TypeSampledImage 272
-             274:             TypePointer UniformConstant 273
-     275(usCube):    274(ptr) Variable UniformConstant
-             276:             TypeImage 32(int) 2D array sampled format:Unknown
-             277:             TypeSampledImage 276
-             278:             TypePointer UniformConstant 277
-  279(us2DArray):    278(ptr) Variable UniformConstant
-             280:             TypePointer Input 165(ivec4)
-       281(ic4D):    280(ptr) Variable Input
+             205:             TypeImage 67(int) 3D sampled format:Unknown
+             206:             TypeSampledImage 205
+             207:             TypePointer UniformConstant 206
+       208(is3D):    207(ptr) Variable UniformConstant
+             211:    6(float) Constant 1082549862
+             217:             TypeImage 67(int) Cube sampled format:Unknown
+             218:             TypeSampledImage 217
+             219:             TypePointer UniformConstant 218
+     220(isCube):    219(ptr) Variable UniformConstant
+             229:             TypeImage 67(int) 2D array sampled format:Unknown
+             230:             TypeSampledImage 229
+             231:             TypePointer UniformConstant 230
+  232(is2DArray):    231(ptr) Variable UniformConstant
+             242:             TypePointer Function 68(ivec2)
+             244:             TypeImage 6(float) Cube depth sampled format:Unknown
+             245:             TypeSampledImage 244
+             246:             TypePointer UniformConstant 245
+247(sCubeShadow):    246(ptr) Variable UniformConstant
+             249:     67(int) Constant 2
+             252:             TypePointer Output 7(fvec4)
+   253(FragData):    252(ptr) Variable Output
+             257:    6(float) Constant 0
+             262:             TypeImage 67(int) 2D multi-sampled sampled format:Unknown
+             263:             TypeSampledImage 262
+             264:             TypePointer UniformConstant 263
+     265(is2Dms):    264(ptr) Variable UniformConstant
+             266:             TypeImage 32(int) 2D sampled format:Unknown
+             267:             TypeSampledImage 266
+             268:             TypePointer UniformConstant 267
+       269(us2D):    268(ptr) Variable UniformConstant
+             270:             TypeImage 32(int) 3D sampled format:Unknown
+             271:             TypeSampledImage 270
+             272:             TypePointer UniformConstant 271
+       273(us3D):    272(ptr) Variable UniformConstant
+             274:             TypeImage 32(int) Cube sampled format:Unknown
+             275:             TypeSampledImage 274
+             276:             TypePointer UniformConstant 275
+     277(usCube):    276(ptr) Variable UniformConstant
+             278:             TypeImage 32(int) 2D array sampled format:Unknown
+             279:             TypeSampledImage 278
+             280:             TypePointer UniformConstant 279
+  281(us2DArray):    280(ptr) Variable UniformConstant
+             282:             TypePointer Input 165(ivec4)
+       283(ic4D):    282(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
             9(v):      8(ptr) Variable Function
          167(iv):    166(ptr) Variable Function
-        241(iv2):    240(ptr) Variable Function
+        243(iv2):    242(ptr) Variable Function
               14:          11 Load 13(s2D)
               18:   15(fvec2) Load 17(c2D)
               19:    7(fvec4) ImageSampleImplicitLod 14 18
@@ -311,75 +311,77 @@
                               Store 9(v) 178
              179:         169 Load 171(is2D)
              180:    7(fvec4) Load 26(c4D)
-             181:  165(ivec4) ImageSampleProjImplicitLod 179 180 ConstOffset 70
-                              Store 167(iv) 181
-             182:  165(ivec4) Load 167(iv)
-             183:    7(fvec4) ConvertSToF 182
-             184:    7(fvec4) Load 9(v)
-             185:    7(fvec4) FAdd 184 183
-                              Store 9(v) 185
-             186:         169 Load 171(is2D)
-             187:   53(fvec3) Load 55(c3D)
-             188:    6(float) Load 29(c1D)
-             189:  165(ivec4) ImageSampleProjExplicitLod 186 187 Lod 188
-                              Store 167(iv) 189
-             190:  165(ivec4) Load 167(iv)
-             191:    7(fvec4) ConvertSToF 190
-             192:    7(fvec4) Load 9(v)
-             193:    7(fvec4) FAdd 192 191
-                              Store 9(v) 193
-             194:         169 Load 171(is2D)
-             195:   53(fvec3) Load 55(c3D)
-             196:   15(fvec2) Load 17(c2D)
-             197:   15(fvec2) Load 17(c2D)
-             198:  165(ivec4) ImageSampleProjExplicitLod 194 195 Grad 196 197
-                              Store 167(iv) 198
-             199:  165(ivec4) Load 167(iv)
-             200:    7(fvec4) ConvertSToF 199
-             201:    7(fvec4) Load 9(v)
-             202:    7(fvec4) FAdd 201 200
-                              Store 9(v) 202
-             207:         204 Load 206(is3D)
-             208:   53(fvec3) Load 55(c3D)
-             210:  165(ivec4) ImageSampleImplicitLod 207 208 Bias 209
-                              Store 167(iv) 210
-             211:  165(ivec4) Load 167(iv)
-             212:    7(fvec4) ConvertSToF 211
-             213:    7(fvec4) Load 9(v)
-             214:    7(fvec4) FAdd 213 212
-                              Store 9(v) 214
-             219:         216 Load 218(isCube)
-             220:   53(fvec3) Load 55(c3D)
-             221:    6(float) Load 29(c1D)
-             222:  165(ivec4) ImageSampleExplicitLod 219 220 Lod 221
-                              Store 167(iv) 222
-             223:  165(ivec4) Load 167(iv)
-             224:    7(fvec4) ConvertSToF 223
-             225:    7(fvec4) Load 9(v)
-             226:    7(fvec4) FAdd 225 224
-                              Store 9(v) 226
-             231:         228 Load 230(is2DArray)
-             232:   79(ivec3) Load 81(ic3D)
-             233:     67(int) Load 84(ic1D)
-             234:         227 Image 231
-             235:  165(ivec4) ImageFetch 234 232 Lod 233
-                              Store 167(iv) 235
-             236:  165(ivec4) Load 167(iv)
-             237:    7(fvec4) ConvertSToF 236
-             238:    7(fvec4) Load 9(v)
-             239:    7(fvec4) FAdd 238 237
-                              Store 9(v) 239
-             246:         243 Load 245(sCubeShadow)
-             248:         242 Image 246
-             249:   68(ivec2) ImageQuerySizeLod 248 247
-                              Store 241(iv2) 249
-             252:    7(fvec4) Load 9(v)
-             253:   68(ivec2) Load 241(iv2)
-             254:   15(fvec2) ConvertSToF 253
-             256:    6(float) CompositeExtract 254 0
-             257:    6(float) CompositeExtract 254 1
-             258:    7(fvec4) CompositeConstruct 256 257 255 255
-             259:    7(fvec4) FAdd 252 258
-                              Store 251(FragData) 259
+             181:    6(float) CompositeExtract 180 3
+             182:    7(fvec4) CompositeInsert 181 180 2
+             183:  165(ivec4) ImageSampleProjImplicitLod 179 182 ConstOffset 70
+                              Store 167(iv) 183
+             184:  165(ivec4) Load 167(iv)
+             185:    7(fvec4) ConvertSToF 184
+             186:    7(fvec4) Load 9(v)
+             187:    7(fvec4) FAdd 186 185
+                              Store 9(v) 187
+             188:         169 Load 171(is2D)
+             189:   53(fvec3) Load 55(c3D)
+             190:    6(float) Load 29(c1D)
+             191:  165(ivec4) ImageSampleProjExplicitLod 188 189 Lod 190
+                              Store 167(iv) 191
+             192:  165(ivec4) Load 167(iv)
+             193:    7(fvec4) ConvertSToF 192
+             194:    7(fvec4) Load 9(v)
+             195:    7(fvec4) FAdd 194 193
+                              Store 9(v) 195
+             196:         169 Load 171(is2D)
+             197:   53(fvec3) Load 55(c3D)
+             198:   15(fvec2) Load 17(c2D)
+             199:   15(fvec2) Load 17(c2D)
+             200:  165(ivec4) ImageSampleProjExplicitLod 196 197 Grad 198 199
+                              Store 167(iv) 200
+             201:  165(ivec4) Load 167(iv)
+             202:    7(fvec4) ConvertSToF 201
+             203:    7(fvec4) Load 9(v)
+             204:    7(fvec4) FAdd 203 202
+                              Store 9(v) 204
+             209:         206 Load 208(is3D)
+             210:   53(fvec3) Load 55(c3D)
+             212:  165(ivec4) ImageSampleImplicitLod 209 210 Bias 211
+                              Store 167(iv) 212
+             213:  165(ivec4) Load 167(iv)
+             214:    7(fvec4) ConvertSToF 213
+             215:    7(fvec4) Load 9(v)
+             216:    7(fvec4) FAdd 215 214
+                              Store 9(v) 216
+             221:         218 Load 220(isCube)
+             222:   53(fvec3) Load 55(c3D)
+             223:    6(float) Load 29(c1D)
+             224:  165(ivec4) ImageSampleExplicitLod 221 222 Lod 223
+                              Store 167(iv) 224
+             225:  165(ivec4) Load 167(iv)
+             226:    7(fvec4) ConvertSToF 225
+             227:    7(fvec4) Load 9(v)
+             228:    7(fvec4) FAdd 227 226
+                              Store 9(v) 228
+             233:         230 Load 232(is2DArray)
+             234:   79(ivec3) Load 81(ic3D)
+             235:     67(int) Load 84(ic1D)
+             236:         229 Image 233
+             237:  165(ivec4) ImageFetch 236 234 Lod 235
+                              Store 167(iv) 237
+             238:  165(ivec4) Load 167(iv)
+             239:    7(fvec4) ConvertSToF 238
+             240:    7(fvec4) Load 9(v)
+             241:    7(fvec4) FAdd 240 239
+                              Store 9(v) 241
+             248:         245 Load 247(sCubeShadow)
+             250:         244 Image 248
+             251:   68(ivec2) ImageQuerySizeLod 250 249
+                              Store 243(iv2) 251
+             254:    7(fvec4) Load 9(v)
+             255:   68(ivec2) Load 243(iv2)
+             256:   15(fvec2) ConvertSToF 255
+             258:    6(float) CompositeExtract 256 0
+             259:    6(float) CompositeExtract 256 1
+             260:    7(fvec4) CompositeConstruct 258 259 257 257
+             261:    7(fvec4) FAdd 254 260
+                              Store 253(FragData) 261
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.texture.frag.out b/Test/baseResults/spv.texture.frag.out
index b579475..30f3f28 100755
--- a/Test/baseResults/spv.texture.frag.out
+++ b/Test/baseResults/spv.texture.frag.out
@@ -9,13 +9,13 @@
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 291
+// Id's are bound by 305
 
                               Capability Shader
                               Capability Sampled1D
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 47 277 280 283 289 290
+                              EntryPoint Fragment 4  "main" 47 291 294 297 303 304
                               ExecutionMode 4 OriginUpperLeft
                               Source GLSL 140
                               Name 4  "main"
@@ -29,26 +29,26 @@
                               Name 26  "color"
                               Name 32  "texSampler1D"
                               Name 47  "coords2D"
-                              Name 72  "texSampler2D"
-                              Name 98  "texSampler3D"
-                              Name 124  "texSamplerCube"
-                              Name 139  "shadowSampler1D"
-                              Name 158  "shadowSampler2D"
-                              Name 207  "iCoords2D"
-                              Name 212  "iLod"
-                              Name 222  "gradX"
-                              Name 225  "gradY"
-                              Name 277  "gl_FragColor"
-                              Name 280  "u"
-                              Name 283  "blend"
-                              Name 289  "scale"
-                              Name 290  "t"
+                              Name 76  "texSampler2D"
+                              Name 104  "texSampler3D"
+                              Name 130  "texSamplerCube"
+                              Name 145  "shadowSampler1D"
+                              Name 164  "shadowSampler2D"
+                              Name 221  "iCoords2D"
+                              Name 226  "iLod"
+                              Name 236  "gradX"
+                              Name 239  "gradY"
+                              Name 291  "gl_FragColor"
+                              Name 294  "u"
+                              Name 297  "blend"
+                              Name 303  "scale"
+                              Name 304  "t"
                               Decorate 32(texSampler1D) DescriptorSet 0
-                              Decorate 72(texSampler2D) DescriptorSet 0
-                              Decorate 98(texSampler3D) DescriptorSet 0
-                              Decorate 124(texSamplerCube) DescriptorSet 0
-                              Decorate 139(shadowSampler1D) DescriptorSet 0
-                              Decorate 158(shadowSampler2D) DescriptorSet 0
+                              Decorate 76(texSampler2D) DescriptorSet 0
+                              Decorate 104(texSampler3D) DescriptorSet 0
+                              Decorate 130(texSamplerCube) DescriptorSet 0
+                              Decorate 145(shadowSampler1D) DescriptorSet 0
+                              Decorate 164(shadowSampler2D) DescriptorSet 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -73,46 +73,46 @@
               45:             TypeVector 6(float) 2
               46:             TypePointer Input 45(fvec2)
     47(coords2D):     46(ptr) Variable Input
-              69:             TypeImage 6(float) 2D sampled format:Unknown
-              70:             TypeSampledImage 69
-              71:             TypePointer UniformConstant 70
-72(texSampler2D):     71(ptr) Variable UniformConstant
-              95:             TypeImage 6(float) 3D sampled format:Unknown
-              96:             TypeSampledImage 95
-              97:             TypePointer UniformConstant 96
-98(texSampler3D):     97(ptr) Variable UniformConstant
-             121:             TypeImage 6(float) Cube sampled format:Unknown
-             122:             TypeSampledImage 121
-             123:             TypePointer UniformConstant 122
-124(texSamplerCube):    123(ptr) Variable UniformConstant
-             136:             TypeImage 6(float) 1D depth sampled format:Unknown
-             137:             TypeSampledImage 136
-             138:             TypePointer UniformConstant 137
-139(shadowSampler1D):    138(ptr) Variable UniformConstant
-             155:             TypeImage 6(float) 2D depth sampled format:Unknown
-             156:             TypeSampledImage 155
-             157:             TypePointer UniformConstant 156
-158(shadowSampler2D):    157(ptr) Variable UniformConstant
-             204:             TypeInt 32 1
-             205:             TypeVector 204(int) 2
-             206:             TypePointer Function 205(ivec2)
-             208:    204(int) Constant 0
-             209:    204(int) Constant 5
-             210:  205(ivec2) ConstantComposite 208 209
-             211:             TypePointer Function 204(int)
-             213:    204(int) Constant 1
-             221:             TypePointer Function 45(fvec2)
-             250:    204(int) Constant 3
-             251:    204(int) Constant 4294967289
-             252:  205(ivec2) ConstantComposite 250 251
-             276:             TypePointer Output 22(fvec4)
-277(gl_FragColor):    276(ptr) Variable Output
-             279:             TypePointer Input 22(fvec4)
-          280(u):    279(ptr) Variable Input
-             282:             TypePointer Input 6(float)
-      283(blend):    282(ptr) Variable Input
-      289(scale):     46(ptr) Variable Input
-          290(t):     46(ptr) Variable Input
+              73:             TypeImage 6(float) 2D sampled format:Unknown
+              74:             TypeSampledImage 73
+              75:             TypePointer UniformConstant 74
+76(texSampler2D):     75(ptr) Variable UniformConstant
+             101:             TypeImage 6(float) 3D sampled format:Unknown
+             102:             TypeSampledImage 101
+             103:             TypePointer UniformConstant 102
+104(texSampler3D):    103(ptr) Variable UniformConstant
+             127:             TypeImage 6(float) Cube sampled format:Unknown
+             128:             TypeSampledImage 127
+             129:             TypePointer UniformConstant 128
+130(texSamplerCube):    129(ptr) Variable UniformConstant
+             142:             TypeImage 6(float) 1D depth sampled format:Unknown
+             143:             TypeSampledImage 142
+             144:             TypePointer UniformConstant 143
+145(shadowSampler1D):    144(ptr) Variable UniformConstant
+             161:             TypeImage 6(float) 2D depth sampled format:Unknown
+             162:             TypeSampledImage 161
+             163:             TypePointer UniformConstant 162
+164(shadowSampler2D):    163(ptr) Variable UniformConstant
+             218:             TypeInt 32 1
+             219:             TypeVector 218(int) 2
+             220:             TypePointer Function 219(ivec2)
+             222:    218(int) Constant 0
+             223:    218(int) Constant 5
+             224:  219(ivec2) ConstantComposite 222 223
+             225:             TypePointer Function 218(int)
+             227:    218(int) Constant 1
+             235:             TypePointer Function 45(fvec2)
+             264:    218(int) Constant 3
+             265:    218(int) Constant 4294967289
+             266:  219(ivec2) ConstantComposite 264 265
+             290:             TypePointer Output 22(fvec4)
+291(gl_FragColor):    290(ptr) Variable Output
+             293:             TypePointer Input 22(fvec4)
+          294(u):    293(ptr) Variable Input
+             296:             TypePointer Input 6(float)
+      297(blend):    296(ptr) Variable Input
+      303(scale):     46(ptr) Variable Input
+          304(t):     46(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
    8(blendscale):      7(ptr) Variable Function
@@ -123,10 +123,10 @@
     18(coords3D):     17(ptr) Variable Function
     24(coords4D):     23(ptr) Variable Function
        26(color):     23(ptr) Variable Function
-  207(iCoords2D):    206(ptr) Variable Function
-       212(iLod):    211(ptr) Variable Function
-      222(gradX):    221(ptr) Variable Function
-      225(gradY):    221(ptr) Variable Function
+  221(iCoords2D):    220(ptr) Variable Function
+       226(iLod):    225(ptr) Variable Function
+      236(gradX):    235(ptr) Variable Function
+      239(gradY):    235(ptr) Variable Function
                               Store 8(blendscale) 9
                               Store 10(bias) 11
                               Store 12(lod) 13
@@ -156,230 +156,244 @@
                               Store 26(color) 51
               52:          30 Load 32(texSampler1D)
               53:   22(fvec4) Load 24(coords4D)
-              54:   22(fvec4) ImageSampleProjImplicitLod 52 53
-              55:   22(fvec4) Load 26(color)
-              56:   22(fvec4) FAdd 55 54
-                              Store 26(color) 56
-              57:          30 Load 32(texSampler1D)
-              58:   45(fvec2) Load 47(coords2D)
-              59:    6(float) Load 10(bias)
-              60:   22(fvec4) ImageSampleProjImplicitLod 57 58 Bias 59
-              61:   22(fvec4) Load 26(color)
-              62:   22(fvec4) FAdd 61 60
-                              Store 26(color) 62
-              63:          30 Load 32(texSampler1D)
-              64:   22(fvec4) Load 24(coords4D)
-              65:    6(float) Load 10(bias)
-              66:   22(fvec4) ImageSampleProjImplicitLod 63 64 Bias 65
-              67:   22(fvec4) Load 26(color)
-              68:   22(fvec4) FAdd 67 66
-                              Store 26(color) 68
-              73:          70 Load 72(texSampler2D)
-              74:   45(fvec2) Load 47(coords2D)
-              75:   22(fvec4) ImageSampleImplicitLod 73 74
-              76:   22(fvec4) Load 26(color)
-              77:   22(fvec4) FAdd 76 75
-                              Store 26(color) 77
-              78:          70 Load 72(texSampler2D)
-              79:   45(fvec2) Load 47(coords2D)
-              80:    6(float) Load 10(bias)
-              81:   22(fvec4) ImageSampleImplicitLod 78 79 Bias 80
-              82:   22(fvec4) Load 26(color)
-              83:   22(fvec4) FAdd 82 81
-                              Store 26(color) 83
-              84:          70 Load 72(texSampler2D)
-              85:   16(fvec3) Load 18(coords3D)
-              86:   22(fvec4) ImageSampleProjImplicitLod 84 85
-              87:   22(fvec4) Load 26(color)
-              88:   22(fvec4) FAdd 87 86
-                              Store 26(color) 88
-              89:          70 Load 72(texSampler2D)
-              90:   22(fvec4) Load 24(coords4D)
-              91:    6(float) Load 10(bias)
-              92:   22(fvec4) ImageSampleProjImplicitLod 89 90 Bias 91
-              93:   22(fvec4) Load 26(color)
-              94:   22(fvec4) FAdd 93 92
-                              Store 26(color) 94
-              99:          96 Load 98(texSampler3D)
-             100:   16(fvec3) Load 18(coords3D)
-             101:   22(fvec4) ImageSampleImplicitLod 99 100
-             102:   22(fvec4) Load 26(color)
-             103:   22(fvec4) FAdd 102 101
-                              Store 26(color) 103
-             104:          96 Load 98(texSampler3D)
-             105:   16(fvec3) Load 18(coords3D)
-             106:    6(float) Load 10(bias)
-             107:   22(fvec4) ImageSampleImplicitLod 104 105 Bias 106
+              54:    6(float) CompositeExtract 53 3
+              55:   22(fvec4) CompositeInsert 54 53 1
+              56:   22(fvec4) ImageSampleProjImplicitLod 52 55
+              57:   22(fvec4) Load 26(color)
+              58:   22(fvec4) FAdd 57 56
+                              Store 26(color) 58
+              59:          30 Load 32(texSampler1D)
+              60:   45(fvec2) Load 47(coords2D)
+              61:    6(float) Load 10(bias)
+              62:   22(fvec4) ImageSampleProjImplicitLod 59 60 Bias 61
+              63:   22(fvec4) Load 26(color)
+              64:   22(fvec4) FAdd 63 62
+                              Store 26(color) 64
+              65:          30 Load 32(texSampler1D)
+              66:   22(fvec4) Load 24(coords4D)
+              67:    6(float) Load 10(bias)
+              68:    6(float) CompositeExtract 66 3
+              69:   22(fvec4) CompositeInsert 68 66 1
+              70:   22(fvec4) ImageSampleProjImplicitLod 65 69 Bias 67
+              71:   22(fvec4) Load 26(color)
+              72:   22(fvec4) FAdd 71 70
+                              Store 26(color) 72
+              77:          74 Load 76(texSampler2D)
+              78:   45(fvec2) Load 47(coords2D)
+              79:   22(fvec4) ImageSampleImplicitLod 77 78
+              80:   22(fvec4) Load 26(color)
+              81:   22(fvec4) FAdd 80 79
+                              Store 26(color) 81
+              82:          74 Load 76(texSampler2D)
+              83:   45(fvec2) Load 47(coords2D)
+              84:    6(float) Load 10(bias)
+              85:   22(fvec4) ImageSampleImplicitLod 82 83 Bias 84
+              86:   22(fvec4) Load 26(color)
+              87:   22(fvec4) FAdd 86 85
+                              Store 26(color) 87
+              88:          74 Load 76(texSampler2D)
+              89:   16(fvec3) Load 18(coords3D)
+              90:   22(fvec4) ImageSampleProjImplicitLod 88 89
+              91:   22(fvec4) Load 26(color)
+              92:   22(fvec4) FAdd 91 90
+                              Store 26(color) 92
+              93:          74 Load 76(texSampler2D)
+              94:   22(fvec4) Load 24(coords4D)
+              95:    6(float) Load 10(bias)
+              96:    6(float) CompositeExtract 94 3
+              97:   22(fvec4) CompositeInsert 96 94 2
+              98:   22(fvec4) ImageSampleProjImplicitLod 93 97 Bias 95
+              99:   22(fvec4) Load 26(color)
+             100:   22(fvec4) FAdd 99 98
+                              Store 26(color) 100
+             105:         102 Load 104(texSampler3D)
+             106:   16(fvec3) Load 18(coords3D)
+             107:   22(fvec4) ImageSampleImplicitLod 105 106
              108:   22(fvec4) Load 26(color)
              109:   22(fvec4) FAdd 108 107
                               Store 26(color) 109
-             110:          96 Load 98(texSampler3D)
-             111:   22(fvec4) Load 24(coords4D)
-             112:   22(fvec4) ImageSampleProjImplicitLod 110 111
-             113:   22(fvec4) Load 26(color)
-             114:   22(fvec4) FAdd 113 112
-                              Store 26(color) 114
-             115:          96 Load 98(texSampler3D)
-             116:   22(fvec4) Load 24(coords4D)
-             117:    6(float) Load 10(bias)
-             118:   22(fvec4) ImageSampleProjImplicitLod 115 116 Bias 117
+             110:         102 Load 104(texSampler3D)
+             111:   16(fvec3) Load 18(coords3D)
+             112:    6(float) Load 10(bias)
+             113:   22(fvec4) ImageSampleImplicitLod 110 111 Bias 112
+             114:   22(fvec4) Load 26(color)
+             115:   22(fvec4) FAdd 114 113
+                              Store 26(color) 115
+             116:         102 Load 104(texSampler3D)
+             117:   22(fvec4) Load 24(coords4D)
+             118:   22(fvec4) ImageSampleProjImplicitLod 116 117
              119:   22(fvec4) Load 26(color)
              120:   22(fvec4) FAdd 119 118
                               Store 26(color) 120
-             125:         122 Load 124(texSamplerCube)
-             126:   16(fvec3) Load 18(coords3D)
-             127:   22(fvec4) ImageSampleImplicitLod 125 126
-             128:   22(fvec4) Load 26(color)
-             129:   22(fvec4) FAdd 128 127
-                              Store 26(color) 129
-             130:         122 Load 124(texSamplerCube)
-             131:   16(fvec3) Load 18(coords3D)
-             132:    6(float) Load 10(bias)
-             133:   22(fvec4) ImageSampleImplicitLod 130 131 Bias 132
+             121:         102 Load 104(texSampler3D)
+             122:   22(fvec4) Load 24(coords4D)
+             123:    6(float) Load 10(bias)
+             124:   22(fvec4) ImageSampleProjImplicitLod 121 122 Bias 123
+             125:   22(fvec4) Load 26(color)
+             126:   22(fvec4) FAdd 125 124
+                              Store 26(color) 126
+             131:         128 Load 130(texSamplerCube)
+             132:   16(fvec3) Load 18(coords3D)
+             133:   22(fvec4) ImageSampleImplicitLod 131 132
              134:   22(fvec4) Load 26(color)
              135:   22(fvec4) FAdd 134 133
                               Store 26(color) 135
-             140:         137 Load 139(shadowSampler1D)
-             141:   16(fvec3) Load 18(coords3D)
-             142:    6(float) CompositeExtract 141 2
-             143:    6(float) ImageSampleDrefImplicitLod 140 141 142
-             144:   22(fvec4) Load 26(color)
-             145:   22(fvec4) CompositeConstruct 143 143 143 143
-             146:   22(fvec4) FAdd 144 145
-                              Store 26(color) 146
-             147:         137 Load 139(shadowSampler1D)
-             148:   16(fvec3) Load 18(coords3D)
-             149:    6(float) Load 10(bias)
-             150:    6(float) CompositeExtract 148 2
-             151:    6(float) ImageSampleDrefImplicitLod 147 148 150 Bias 149
-             152:   22(fvec4) Load 26(color)
-             153:   22(fvec4) CompositeConstruct 151 151 151 151
-             154:   22(fvec4) FAdd 152 153
-                              Store 26(color) 154
-             159:         156 Load 158(shadowSampler2D)
-             160:   16(fvec3) Load 18(coords3D)
-             161:    6(float) CompositeExtract 160 2
-             162:    6(float) ImageSampleDrefImplicitLod 159 160 161
-             163:   22(fvec4) Load 26(color)
-             164:   22(fvec4) CompositeConstruct 162 162 162 162
-             165:   22(fvec4) FAdd 163 164
-                              Store 26(color) 165
-             166:         156 Load 158(shadowSampler2D)
-             167:   16(fvec3) Load 18(coords3D)
-             168:    6(float) Load 10(bias)
-             169:    6(float) CompositeExtract 167 2
-             170:    6(float) ImageSampleDrefImplicitLod 166 167 169 Bias 168
-             171:   22(fvec4) Load 26(color)
-             172:   22(fvec4) CompositeConstruct 170 170 170 170
-             173:   22(fvec4) FAdd 171 172
-                              Store 26(color) 173
-             174:         137 Load 139(shadowSampler1D)
-             175:   22(fvec4) Load 24(coords4D)
-             176:    6(float) CompositeExtract 175 2
-             177:    6(float) ImageSampleProjDrefImplicitLod 174 175 176
-             178:   22(fvec4) Load 26(color)
-             179:   22(fvec4) CompositeConstruct 177 177 177 177
-             180:   22(fvec4) FAdd 178 179
-                              Store 26(color) 180
-             181:         137 Load 139(shadowSampler1D)
-             182:   22(fvec4) Load 24(coords4D)
-             183:    6(float) Load 10(bias)
-             184:    6(float) CompositeExtract 182 2
-             185:    6(float) ImageSampleProjDrefImplicitLod 181 182 184 Bias 183
+             136:         128 Load 130(texSamplerCube)
+             137:   16(fvec3) Load 18(coords3D)
+             138:    6(float) Load 10(bias)
+             139:   22(fvec4) ImageSampleImplicitLod 136 137 Bias 138
+             140:   22(fvec4) Load 26(color)
+             141:   22(fvec4) FAdd 140 139
+                              Store 26(color) 141
+             146:         143 Load 145(shadowSampler1D)
+             147:   16(fvec3) Load 18(coords3D)
+             148:    6(float) CompositeExtract 147 2
+             149:    6(float) ImageSampleDrefImplicitLod 146 147 148
+             150:   22(fvec4) Load 26(color)
+             151:   22(fvec4) CompositeConstruct 149 149 149 149
+             152:   22(fvec4) FAdd 150 151
+                              Store 26(color) 152
+             153:         143 Load 145(shadowSampler1D)
+             154:   16(fvec3) Load 18(coords3D)
+             155:    6(float) Load 10(bias)
+             156:    6(float) CompositeExtract 154 2
+             157:    6(float) ImageSampleDrefImplicitLod 153 154 156 Bias 155
+             158:   22(fvec4) Load 26(color)
+             159:   22(fvec4) CompositeConstruct 157 157 157 157
+             160:   22(fvec4) FAdd 158 159
+                              Store 26(color) 160
+             165:         162 Load 164(shadowSampler2D)
+             166:   16(fvec3) Load 18(coords3D)
+             167:    6(float) CompositeExtract 166 2
+             168:    6(float) ImageSampleDrefImplicitLod 165 166 167
+             169:   22(fvec4) Load 26(color)
+             170:   22(fvec4) CompositeConstruct 168 168 168 168
+             171:   22(fvec4) FAdd 169 170
+                              Store 26(color) 171
+             172:         162 Load 164(shadowSampler2D)
+             173:   16(fvec3) Load 18(coords3D)
+             174:    6(float) Load 10(bias)
+             175:    6(float) CompositeExtract 173 2
+             176:    6(float) ImageSampleDrefImplicitLod 172 173 175 Bias 174
+             177:   22(fvec4) Load 26(color)
+             178:   22(fvec4) CompositeConstruct 176 176 176 176
+             179:   22(fvec4) FAdd 177 178
+                              Store 26(color) 179
+             180:         143 Load 145(shadowSampler1D)
+             181:   22(fvec4) Load 24(coords4D)
+             182:    6(float) CompositeExtract 181 2
+             183:    6(float) CompositeExtract 181 3
+             184:   22(fvec4) CompositeInsert 183 181 1
+             185:    6(float) ImageSampleProjDrefImplicitLod 180 184 182
              186:   22(fvec4) Load 26(color)
              187:   22(fvec4) CompositeConstruct 185 185 185 185
              188:   22(fvec4) FAdd 186 187
                               Store 26(color) 188
-             189:         156 Load 158(shadowSampler2D)
+             189:         143 Load 145(shadowSampler1D)
              190:   22(fvec4) Load 24(coords4D)
-             191:    6(float) CompositeExtract 190 2
-             192:    6(float) ImageSampleProjDrefImplicitLod 189 190 191
-             193:   22(fvec4) Load 26(color)
-             194:   22(fvec4) CompositeConstruct 192 192 192 192
-             195:   22(fvec4) FAdd 193 194
-                              Store 26(color) 195
-             196:         156 Load 158(shadowSampler2D)
-             197:   22(fvec4) Load 24(coords4D)
-             198:    6(float) Load 10(bias)
-             199:    6(float) CompositeExtract 197 2
-             200:    6(float) ImageSampleProjDrefImplicitLod 196 197 199 Bias 198
-             201:   22(fvec4) Load 26(color)
-             202:   22(fvec4) CompositeConstruct 200 200 200 200
-             203:   22(fvec4) FAdd 201 202
-                              Store 26(color) 203
-                              Store 207(iCoords2D) 210
-                              Store 212(iLod) 213
-             214:          70 Load 72(texSampler2D)
-             215:  205(ivec2) Load 207(iCoords2D)
-             216:    204(int) Load 212(iLod)
-             217:          69 Image 214
-             218:   22(fvec4) ImageFetch 217 215 Lod 216
-             219:   22(fvec4) Load 26(color)
-             220:   22(fvec4) FAdd 219 218
-                              Store 26(color) 220
-             223:   45(fvec2) Load 47(coords2D)
-             224:   45(fvec2) DPdx 223
-                              Store 222(gradX) 224
-             226:   45(fvec2) Load 47(coords2D)
-             227:   45(fvec2) DPdy 226
-                              Store 225(gradY) 227
-             228:          70 Load 72(texSampler2D)
-             229:   45(fvec2) Load 47(coords2D)
-             230:   45(fvec2) Load 222(gradX)
-             231:   45(fvec2) Load 225(gradY)
-             232:   22(fvec4) ImageSampleExplicitLod 228 229 Grad 230 231
+             191:    6(float) Load 10(bias)
+             192:    6(float) CompositeExtract 190 2
+             193:    6(float) CompositeExtract 190 3
+             194:   22(fvec4) CompositeInsert 193 190 1
+             195:    6(float) ImageSampleProjDrefImplicitLod 189 194 192 Bias 191
+             196:   22(fvec4) Load 26(color)
+             197:   22(fvec4) CompositeConstruct 195 195 195 195
+             198:   22(fvec4) FAdd 196 197
+                              Store 26(color) 198
+             199:         162 Load 164(shadowSampler2D)
+             200:   22(fvec4) Load 24(coords4D)
+             201:    6(float) CompositeExtract 200 2
+             202:    6(float) CompositeExtract 200 3
+             203:   22(fvec4) CompositeInsert 202 200 2
+             204:    6(float) ImageSampleProjDrefImplicitLod 199 203 201
+             205:   22(fvec4) Load 26(color)
+             206:   22(fvec4) CompositeConstruct 204 204 204 204
+             207:   22(fvec4) FAdd 205 206
+                              Store 26(color) 207
+             208:         162 Load 164(shadowSampler2D)
+             209:   22(fvec4) Load 24(coords4D)
+             210:    6(float) Load 10(bias)
+             211:    6(float) CompositeExtract 209 2
+             212:    6(float) CompositeExtract 209 3
+             213:   22(fvec4) CompositeInsert 212 209 2
+             214:    6(float) ImageSampleProjDrefImplicitLod 208 213 211 Bias 210
+             215:   22(fvec4) Load 26(color)
+             216:   22(fvec4) CompositeConstruct 214 214 214 214
+             217:   22(fvec4) FAdd 215 216
+                              Store 26(color) 217
+                              Store 221(iCoords2D) 224
+                              Store 226(iLod) 227
+             228:          74 Load 76(texSampler2D)
+             229:  219(ivec2) Load 221(iCoords2D)
+             230:    218(int) Load 226(iLod)
+             231:          73 Image 228
+             232:   22(fvec4) ImageFetch 231 229 Lod 230
              233:   22(fvec4) Load 26(color)
              234:   22(fvec4) FAdd 233 232
                               Store 26(color) 234
-             235:          70 Load 72(texSampler2D)
-             236:   45(fvec2) Load 47(coords2D)
-             237:    6(float) Load 14(proj)
-             238:    6(float) CompositeExtract 236 0
-             239:    6(float) CompositeExtract 236 1
-             240:   16(fvec3) CompositeConstruct 238 239 237
-             241:   45(fvec2) Load 222(gradX)
-             242:   45(fvec2) Load 225(gradY)
-             243:   22(fvec4) ImageSampleProjExplicitLod 235 240 Grad 241 242
-             244:   22(fvec4) Load 26(color)
-             245:   22(fvec4) FAdd 244 243
-                              Store 26(color) 245
-             246:          70 Load 72(texSampler2D)
-             247:   45(fvec2) Load 47(coords2D)
-             248:   45(fvec2) Load 222(gradX)
-             249:   45(fvec2) Load 225(gradY)
-             253:   22(fvec4) ImageSampleExplicitLod 246 247 Grad ConstOffset 248 249 252
-             254:   22(fvec4) Load 26(color)
-             255:   22(fvec4) FAdd 254 253
-                              Store 26(color) 255
-             256:          70 Load 72(texSampler2D)
-             257:   16(fvec3) Load 18(coords3D)
-             258:   45(fvec2) Load 222(gradX)
-             259:   45(fvec2) Load 225(gradY)
-             260:   22(fvec4) ImageSampleProjExplicitLod 256 257 Grad ConstOffset 258 259 252
-             261:   22(fvec4) Load 26(color)
-             262:   22(fvec4) FAdd 261 260
-                              Store 26(color) 262
-             263:         156 Load 158(shadowSampler2D)
-             264:   45(fvec2) Load 47(coords2D)
-             265:    6(float) Load 12(lod)
-             266:    6(float) CompositeExtract 264 0
-             267:    6(float) CompositeExtract 264 1
-             268:   16(fvec3) CompositeConstruct 266 267 265
-             269:   45(fvec2) Load 222(gradX)
-             270:   45(fvec2) Load 225(gradY)
-             271:    6(float) CompositeExtract 268 2
-             272:    6(float) ImageSampleDrefExplicitLod 263 268 271 Grad 269 270
-             273:   22(fvec4) Load 26(color)
-             274:   22(fvec4) CompositeConstruct 272 272 272 272
-             275:   22(fvec4) FAdd 273 274
-                              Store 26(color) 275
-             278:   22(fvec4) Load 26(color)
-             281:   22(fvec4) Load 280(u)
-             284:    6(float) Load 283(blend)
-             285:    6(float) Load 8(blendscale)
-             286:    6(float) FMul 284 285
-             287:   22(fvec4) CompositeConstruct 286 286 286 286
-             288:   22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 278 281 287
-                              Store 277(gl_FragColor) 288
+             237:   45(fvec2) Load 47(coords2D)
+             238:   45(fvec2) DPdx 237
+                              Store 236(gradX) 238
+             240:   45(fvec2) Load 47(coords2D)
+             241:   45(fvec2) DPdy 240
+                              Store 239(gradY) 241
+             242:          74 Load 76(texSampler2D)
+             243:   45(fvec2) Load 47(coords2D)
+             244:   45(fvec2) Load 236(gradX)
+             245:   45(fvec2) Load 239(gradY)
+             246:   22(fvec4) ImageSampleExplicitLod 242 243 Grad 244 245
+             247:   22(fvec4) Load 26(color)
+             248:   22(fvec4) FAdd 247 246
+                              Store 26(color) 248
+             249:          74 Load 76(texSampler2D)
+             250:   45(fvec2) Load 47(coords2D)
+             251:    6(float) Load 14(proj)
+             252:    6(float) CompositeExtract 250 0
+             253:    6(float) CompositeExtract 250 1
+             254:   16(fvec3) CompositeConstruct 252 253 251
+             255:   45(fvec2) Load 236(gradX)
+             256:   45(fvec2) Load 239(gradY)
+             257:   22(fvec4) ImageSampleProjExplicitLod 249 254 Grad 255 256
+             258:   22(fvec4) Load 26(color)
+             259:   22(fvec4) FAdd 258 257
+                              Store 26(color) 259
+             260:          74 Load 76(texSampler2D)
+             261:   45(fvec2) Load 47(coords2D)
+             262:   45(fvec2) Load 236(gradX)
+             263:   45(fvec2) Load 239(gradY)
+             267:   22(fvec4) ImageSampleExplicitLod 260 261 Grad ConstOffset 262 263 266
+             268:   22(fvec4) Load 26(color)
+             269:   22(fvec4) FAdd 268 267
+                              Store 26(color) 269
+             270:          74 Load 76(texSampler2D)
+             271:   16(fvec3) Load 18(coords3D)
+             272:   45(fvec2) Load 236(gradX)
+             273:   45(fvec2) Load 239(gradY)
+             274:   22(fvec4) ImageSampleProjExplicitLod 270 271 Grad ConstOffset 272 273 266
+             275:   22(fvec4) Load 26(color)
+             276:   22(fvec4) FAdd 275 274
+                              Store 26(color) 276
+             277:         162 Load 164(shadowSampler2D)
+             278:   45(fvec2) Load 47(coords2D)
+             279:    6(float) Load 12(lod)
+             280:    6(float) CompositeExtract 278 0
+             281:    6(float) CompositeExtract 278 1
+             282:   16(fvec3) CompositeConstruct 280 281 279
+             283:   45(fvec2) Load 236(gradX)
+             284:   45(fvec2) Load 239(gradY)
+             285:    6(float) CompositeExtract 282 2
+             286:    6(float) ImageSampleDrefExplicitLod 277 282 285 Grad 283 284
+             287:   22(fvec4) Load 26(color)
+             288:   22(fvec4) CompositeConstruct 286 286 286 286
+             289:   22(fvec4) FAdd 287 288
+                              Store 26(color) 289
+             292:   22(fvec4) Load 26(color)
+             295:   22(fvec4) Load 294(u)
+             298:    6(float) Load 297(blend)
+             299:    6(float) Load 8(blendscale)
+             300:    6(float) FMul 298 299
+             301:   22(fvec4) CompositeConstruct 300 300 300 300
+             302:   22(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 292 295 301
+                              Store 291(gl_FragColor) 302
                               Return
                               FunctionEnd
diff --git a/Test/baseResults/spv.texture.vert.out b/Test/baseResults/spv.texture.vert.out
index 179e567..cc3d3da 100755
--- a/Test/baseResults/spv.texture.vert.out
+++ b/Test/baseResults/spv.texture.vert.out
@@ -5,13 +5,13 @@
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 142
+// Id's are bound by 150
 
                               Capability Shader
                               Capability Sampled1D
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Vertex 4  "main" 39 140
+                              EntryPoint Vertex 4  "main" 39 148
                               Source GLSL 140
                               Name 4  "main"
                               Name 8  "lod"
@@ -21,19 +21,19 @@
                               Name 23  "color"
                               Name 29  "texSampler1D"
                               Name 39  "coords2D"
-                              Name 54  "texSampler2D"
-                              Name 76  "texSampler3D"
-                              Name 92  "texSamplerCube"
-                              Name 102  "shadowSampler1D"
-                              Name 114  "shadowSampler2D"
-                              Name 140  "gl_Position"
+                              Name 56  "texSampler2D"
+                              Name 80  "texSampler3D"
+                              Name 96  "texSamplerCube"
+                              Name 106  "shadowSampler1D"
+                              Name 118  "shadowSampler2D"
+                              Name 148  "gl_Position"
                               Decorate 29(texSampler1D) DescriptorSet 0
-                              Decorate 54(texSampler2D) DescriptorSet 0
-                              Decorate 76(texSampler3D) DescriptorSet 0
-                              Decorate 92(texSamplerCube) DescriptorSet 0
-                              Decorate 102(shadowSampler1D) DescriptorSet 0
-                              Decorate 114(shadowSampler2D) DescriptorSet 0
-                              Decorate 140(gl_Position) BuiltIn Position
+                              Decorate 56(texSampler2D) DescriptorSet 0
+                              Decorate 80(texSampler3D) DescriptorSet 0
+                              Decorate 96(texSamplerCube) DescriptorSet 0
+                              Decorate 106(shadowSampler1D) DescriptorSet 0
+                              Decorate 118(shadowSampler2D) DescriptorSet 0
+                              Decorate 148(gl_Position) BuiltIn Position
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -58,28 +58,28 @@
               37:             TypeVector 6(float) 2
               38:             TypePointer Input 37(fvec2)
     39(coords2D):     38(ptr) Variable Input
-              51:             TypeImage 6(float) 2D sampled format:Unknown
-              52:             TypeSampledImage 51
-              53:             TypePointer UniformConstant 52
-54(texSampler2D):     53(ptr) Variable UniformConstant
-              73:             TypeImage 6(float) 3D sampled format:Unknown
-              74:             TypeSampledImage 73
-              75:             TypePointer UniformConstant 74
-76(texSampler3D):     75(ptr) Variable UniformConstant
-              89:             TypeImage 6(float) Cube sampled format:Unknown
-              90:             TypeSampledImage 89
-              91:             TypePointer UniformConstant 90
-92(texSamplerCube):     91(ptr) Variable UniformConstant
-              99:             TypeImage 6(float) 1D depth sampled format:Unknown
-             100:             TypeSampledImage 99
-             101:             TypePointer UniformConstant 100
-102(shadowSampler1D):    101(ptr) Variable UniformConstant
-             111:             TypeImage 6(float) 2D depth sampled format:Unknown
-             112:             TypeSampledImage 111
-             113:             TypePointer UniformConstant 112
-114(shadowSampler2D):    113(ptr) Variable UniformConstant
-             139:             TypePointer Output 18(fvec4)
-140(gl_Position):    139(ptr) Variable Output
+              53:             TypeImage 6(float) 2D sampled format:Unknown
+              54:             TypeSampledImage 53
+              55:             TypePointer UniformConstant 54
+56(texSampler2D):     55(ptr) Variable UniformConstant
+              77:             TypeImage 6(float) 3D sampled format:Unknown
+              78:             TypeSampledImage 77
+              79:             TypePointer UniformConstant 78
+80(texSampler3D):     79(ptr) Variable UniformConstant
+              93:             TypeImage 6(float) Cube sampled format:Unknown
+              94:             TypeSampledImage 93
+              95:             TypePointer UniformConstant 94
+96(texSamplerCube):     95(ptr) Variable UniformConstant
+             103:             TypeImage 6(float) 1D depth sampled format:Unknown
+             104:             TypeSampledImage 103
+             105:             TypePointer UniformConstant 104
+106(shadowSampler1D):    105(ptr) Variable UniformConstant
+             115:             TypeImage 6(float) 2D depth sampled format:Unknown
+             116:             TypeSampledImage 115
+             117:             TypePointer UniformConstant 116
+118(shadowSampler2D):    117(ptr) Variable UniformConstant
+             147:             TypePointer Output 18(fvec4)
+148(gl_Position):    147(ptr) Variable Output
          4(main):           2 Function None 3
                5:             Label
           8(lod):      7(ptr) Variable Function
@@ -109,89 +109,97 @@
               45:          27 Load 29(texSampler1D)
               46:   18(fvec4) Load 20(coords4D)
               47:    6(float) Load 8(lod)
-              48:   18(fvec4) ImageSampleProjExplicitLod 45 46 Lod 47
-              49:   18(fvec4) Load 23(color)
-              50:   18(fvec4) FAdd 49 48
-                              Store 23(color) 50
-              55:          52 Load 54(texSampler2D)
-              56:   37(fvec2) Load 39(coords2D)
-              57:    6(float) Load 8(lod)
-              58:   18(fvec4) ImageSampleExplicitLod 55 56 Lod 57
-              59:   18(fvec4) Load 23(color)
-              60:   18(fvec4) FAdd 59 58
-                              Store 23(color) 60
-              61:          52 Load 54(texSampler2D)
-              62:   12(fvec3) Load 14(coords3D)
-              63:    6(float) Load 8(lod)
-              64:   18(fvec4) ImageSampleProjExplicitLod 61 62 Lod 63
-              65:   18(fvec4) Load 23(color)
-              66:   18(fvec4) FAdd 65 64
-                              Store 23(color) 66
-              67:          52 Load 54(texSampler2D)
-              68:   18(fvec4) Load 20(coords4D)
-              69:    6(float) Load 8(lod)
-              70:   18(fvec4) ImageSampleProjExplicitLod 67 68 Lod 69
-              71:   18(fvec4) Load 23(color)
-              72:   18(fvec4) FAdd 71 70
-                              Store 23(color) 72
-              77:          74 Load 76(texSampler3D)
-              78:   12(fvec3) Load 14(coords3D)
-              79:    6(float) Load 8(lod)
-              80:   18(fvec4) ImageSampleExplicitLod 77 78 Lod 79
-              81:   18(fvec4) Load 23(color)
-              82:   18(fvec4) FAdd 81 80
-                              Store 23(color) 82
-              83:          74 Load 76(texSampler3D)
-              84:   18(fvec4) Load 20(coords4D)
-              85:    6(float) Load 8(lod)
-              86:   18(fvec4) ImageSampleProjExplicitLod 83 84 Lod 85
-              87:   18(fvec4) Load 23(color)
-              88:   18(fvec4) FAdd 87 86
-                              Store 23(color) 88
-              93:          90 Load 92(texSamplerCube)
-              94:   12(fvec3) Load 14(coords3D)
-              95:    6(float) Load 8(lod)
-              96:   18(fvec4) ImageSampleExplicitLod 93 94 Lod 95
-              97:   18(fvec4) Load 23(color)
-              98:   18(fvec4) FAdd 97 96
-                              Store 23(color) 98
-             103:         100 Load 102(shadowSampler1D)
-             104:   12(fvec3) Load 14(coords3D)
-             105:    6(float) Load 8(lod)
-             106:    6(float) CompositeExtract 104 2
-             107:    6(float) ImageSampleDrefExplicitLod 103 104 106 Lod 105
-             108:   18(fvec4) Load 23(color)
-             109:   18(fvec4) CompositeConstruct 107 107 107 107
-             110:   18(fvec4) FAdd 108 109
-                              Store 23(color) 110
-             115:         112 Load 114(shadowSampler2D)
-             116:   12(fvec3) Load 14(coords3D)
-             117:    6(float) Load 8(lod)
-             118:    6(float) CompositeExtract 116 2
-             119:    6(float) ImageSampleDrefExplicitLod 115 116 118 Lod 117
-             120:   18(fvec4) Load 23(color)
-             121:   18(fvec4) CompositeConstruct 119 119 119 119
-             122:   18(fvec4) FAdd 120 121
-                              Store 23(color) 122
-             123:         100 Load 102(shadowSampler1D)
-             124:   18(fvec4) Load 20(coords4D)
-             125:    6(float) Load 8(lod)
-             126:    6(float) CompositeExtract 124 2
-             127:    6(float) ImageSampleProjDrefExplicitLod 123 124 126 Lod 125
-             128:   18(fvec4) Load 23(color)
-             129:   18(fvec4) CompositeConstruct 127 127 127 127
-             130:   18(fvec4) FAdd 128 129
-                              Store 23(color) 130
-             131:         112 Load 114(shadowSampler2D)
-             132:   18(fvec4) Load 20(coords4D)
-             133:    6(float) Load 8(lod)
-             134:    6(float) CompositeExtract 132 2
-             135:    6(float) ImageSampleProjDrefExplicitLod 131 132 134 Lod 133
-             136:   18(fvec4) Load 23(color)
-             137:   18(fvec4) CompositeConstruct 135 135 135 135
-             138:   18(fvec4) FAdd 136 137
-                              Store 23(color) 138
-             141:   18(fvec4) Load 23(color)
-                              Store 140(gl_Position) 141
+              48:    6(float) CompositeExtract 46 3
+              49:   18(fvec4) CompositeInsert 48 46 1
+              50:   18(fvec4) ImageSampleProjExplicitLod 45 49 Lod 47
+              51:   18(fvec4) Load 23(color)
+              52:   18(fvec4) FAdd 51 50
+                              Store 23(color) 52
+              57:          54 Load 56(texSampler2D)
+              58:   37(fvec2) Load 39(coords2D)
+              59:    6(float) Load 8(lod)
+              60:   18(fvec4) ImageSampleExplicitLod 57 58 Lod 59
+              61:   18(fvec4) Load 23(color)
+              62:   18(fvec4) FAdd 61 60
+                              Store 23(color) 62
+              63:          54 Load 56(texSampler2D)
+              64:   12(fvec3) Load 14(coords3D)
+              65:    6(float) Load 8(lod)
+              66:   18(fvec4) ImageSampleProjExplicitLod 63 64 Lod 65
+              67:   18(fvec4) Load 23(color)
+              68:   18(fvec4) FAdd 67 66
+                              Store 23(color) 68
+              69:          54 Load 56(texSampler2D)
+              70:   18(fvec4) Load 20(coords4D)
+              71:    6(float) Load 8(lod)
+              72:    6(float) CompositeExtract 70 3
+              73:   18(fvec4) CompositeInsert 72 70 2
+              74:   18(fvec4) ImageSampleProjExplicitLod 69 73 Lod 71
+              75:   18(fvec4) Load 23(color)
+              76:   18(fvec4) FAdd 75 74
+                              Store 23(color) 76
+              81:          78 Load 80(texSampler3D)
+              82:   12(fvec3) Load 14(coords3D)
+              83:    6(float) Load 8(lod)
+              84:   18(fvec4) ImageSampleExplicitLod 81 82 Lod 83
+              85:   18(fvec4) Load 23(color)
+              86:   18(fvec4) FAdd 85 84
+                              Store 23(color) 86
+              87:          78 Load 80(texSampler3D)
+              88:   18(fvec4) Load 20(coords4D)
+              89:    6(float) Load 8(lod)
+              90:   18(fvec4) ImageSampleProjExplicitLod 87 88 Lod 89
+              91:   18(fvec4) Load 23(color)
+              92:   18(fvec4) FAdd 91 90
+                              Store 23(color) 92
+              97:          94 Load 96(texSamplerCube)
+              98:   12(fvec3) Load 14(coords3D)
+              99:    6(float) Load 8(lod)
+             100:   18(fvec4) ImageSampleExplicitLod 97 98 Lod 99
+             101:   18(fvec4) Load 23(color)
+             102:   18(fvec4) FAdd 101 100
+                              Store 23(color) 102
+             107:         104 Load 106(shadowSampler1D)
+             108:   12(fvec3) Load 14(coords3D)
+             109:    6(float) Load 8(lod)
+             110:    6(float) CompositeExtract 108 2
+             111:    6(float) ImageSampleDrefExplicitLod 107 108 110 Lod 109
+             112:   18(fvec4) Load 23(color)
+             113:   18(fvec4) CompositeConstruct 111 111 111 111
+             114:   18(fvec4) FAdd 112 113
+                              Store 23(color) 114
+             119:         116 Load 118(shadowSampler2D)
+             120:   12(fvec3) Load 14(coords3D)
+             121:    6(float) Load 8(lod)
+             122:    6(float) CompositeExtract 120 2
+             123:    6(float) ImageSampleDrefExplicitLod 119 120 122 Lod 121
+             124:   18(fvec4) Load 23(color)
+             125:   18(fvec4) CompositeConstruct 123 123 123 123
+             126:   18(fvec4) FAdd 124 125
+                              Store 23(color) 126
+             127:         104 Load 106(shadowSampler1D)
+             128:   18(fvec4) Load 20(coords4D)
+             129:    6(float) Load 8(lod)
+             130:    6(float) CompositeExtract 128 2
+             131:    6(float) CompositeExtract 128 3
+             132:   18(fvec4) CompositeInsert 131 128 1
+             133:    6(float) ImageSampleProjDrefExplicitLod 127 132 130 Lod 129
+             134:   18(fvec4) Load 23(color)
+             135:   18(fvec4) CompositeConstruct 133 133 133 133
+             136:   18(fvec4) FAdd 134 135
+                              Store 23(color) 136
+             137:         116 Load 118(shadowSampler2D)
+             138:   18(fvec4) Load 20(coords4D)
+             139:    6(float) Load 8(lod)
+             140:    6(float) CompositeExtract 138 2
+             141:    6(float) CompositeExtract 138 3
+             142:   18(fvec4) CompositeInsert 141 138 2
+             143:    6(float) ImageSampleProjDrefExplicitLod 137 142 140 Lod 139
+             144:   18(fvec4) Load 23(color)
+             145:   18(fvec4) CompositeConstruct 143 143 143 143
+             146:   18(fvec4) FAdd 144 145
+                              Store 23(color) 146
+             149:   18(fvec4) Load 23(color)
+                              Store 148(gl_Position) 149
                               Return
                               FunctionEnd