From 33d517470eaeba6665755243547a73f901063976 Mon Sep 17 00:00:00 2001 From: Arcady Goldmints-Orlov Date: Fri, 21 Jun 2024 14:07:50 -0400 Subject: [PATCH] Generate vector constructions more efficiently when sizes match When two vectors are the same size, there is no need to extract the components and construct a new vector. --- SPIRV/SpvBuilder.cpp | 6 + .../hlsl.samplecmp.array.dx10.frag.out | 273 ++-- ...lsl.samplecmplevelzero.array.dx10.frag.out | 273 ++-- .../baseResults/spv.16bitstorage-int.frag.out | 20 +- .../spv.16bitstorage-uint.frag.out | 20 +- Test/baseResults/spv.16bitstorage.frag.out | 20 +- Test/baseResults/spv.8bitstorage-int.frag.out | 20 +- .../baseResults/spv.8bitstorage-uint.frag.out | 20 +- Test/baseResults/spv.debuginfo.glsl.frag.out | 106 +- Test/baseResults/spv.explicittypes.frag.out | 503 ++++--- Test/baseResults/spv.float16.frag.out | 1154 ++++++++--------- Test/baseResults/spv.floatFetch.frag.out | 165 ++- Test/baseResults/spv.int32.frag.out | 1064 ++++++++------- 13 files changed, 1777 insertions(+), 1867 deletions(-) diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index 51c6bc21d..6e5c00b5c 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -3424,6 +3424,12 @@ Id Builder::createConstructor(Decoration precision, const std::vector& sourc if (sources.size() == 1 && isScalar(sources[0]) && numTargetComponents > 1) return smearScalar(precision, sources[0], resultTypeId); + // Special case: 2 vectors of equal size + if (sources.size() == 1 && isVector(sources[0]) && numTargetComponents == getNumComponents(sources[0])) { + assert(resultTypeId == getTypeId(sources[0])); + return sources[0]; + } + // accumulate the arguments for OpCompositeConstruct std::vector constituents; Id scalarTypeId = getScalarTypeId(resultTypeId); diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index caddceeb8..cde1d519c 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -400,14 +400,14 @@ using depth_any Validation failed // Module Version 10000 // Generated by (magic number): 8000b -// Id's are bound by 209 +// Id's are bound by 194 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 166 170 + EntryPoint Fragment 4 "main" 151 155 ExecutionMode 4 OriginUpperLeft ExecutionMode 4 DepthReplacing Source HLSL 500 @@ -431,26 +431,26 @@ Validation failed Name 96 "g_tTex2du4a" Name 107 "r60" Name 110 "g_tTexcdf4a" - Name 123 "r62" - Name 126 "g_tTexcdi4a" - Name 137 "r64" - Name 140 "g_tTexcdu4a" - Name 152 "psout" - Name 163 "flattenTemp" - Name 166 "@entryPointOutput.Color" - Name 170 "@entryPointOutput.Depth" - Name 175 "g_tTex1df4" - Name 178 "g_tTex1di4" - Name 181 "g_tTex1du4" - Name 184 "g_tTex2df4" - Name 187 "g_tTex2di4" - Name 190 "g_tTex2du4" - Name 193 "g_tTex3df4" - Name 196 "g_tTex3di4" - Name 199 "g_tTex3du4" - Name 202 "g_tTexcdf4" - Name 205 "g_tTexcdi4" - Name 208 "g_tTexcdu4" + Name 118 "r62" + Name 121 "g_tTexcdi4a" + Name 127 "r64" + Name 130 "g_tTexcdu4a" + Name 137 "psout" + Name 148 "flattenTemp" + Name 151 "@entryPointOutput.Color" + Name 155 "@entryPointOutput.Depth" + Name 160 "g_tTex1df4" + Name 163 "g_tTex1di4" + Name 166 "g_tTex1du4" + Name 169 "g_tTex2df4" + Name 172 "g_tTex2di4" + Name 175 "g_tTex2du4" + Name 178 "g_tTex3df4" + Name 181 "g_tTex3di4" + Name 184 "g_tTex3du4" + Name 187 "g_tTexcdf4" + Name 190 "g_tTexcdi4" + Name 193 "g_tTexcdu4" Decorate 16(g_tTex1df4a) DescriptorSet 0 Decorate 16(g_tTex1df4a) Binding 1 Decorate 20(g_sSamp) DescriptorSet 0 @@ -467,36 +467,36 @@ Validation failed Decorate 96(g_tTex2du4a) Binding 6 Decorate 110(g_tTexcdf4a) DescriptorSet 0 Decorate 110(g_tTexcdf4a) Binding 7 - Decorate 126(g_tTexcdi4a) DescriptorSet 0 - Decorate 126(g_tTexcdi4a) Binding 8 - Decorate 140(g_tTexcdu4a) DescriptorSet 0 - Decorate 140(g_tTexcdu4a) Binding 9 - Decorate 166(@entryPointOutput.Color) Location 0 - Decorate 170(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 175(g_tTex1df4) DescriptorSet 0 - Decorate 175(g_tTex1df4) Binding 0 - Decorate 178(g_tTex1di4) DescriptorSet 0 - Decorate 178(g_tTex1di4) Binding 0 - Decorate 181(g_tTex1du4) DescriptorSet 0 - Decorate 181(g_tTex1du4) Binding 0 - Decorate 184(g_tTex2df4) DescriptorSet 0 - Decorate 184(g_tTex2df4) Binding 0 - Decorate 187(g_tTex2di4) DescriptorSet 0 - Decorate 187(g_tTex2di4) Binding 0 - Decorate 190(g_tTex2du4) DescriptorSet 0 - Decorate 190(g_tTex2du4) Binding 0 - Decorate 193(g_tTex3df4) DescriptorSet 0 - Decorate 193(g_tTex3df4) Binding 0 - Decorate 196(g_tTex3di4) DescriptorSet 0 - Decorate 196(g_tTex3di4) Binding 0 - Decorate 199(g_tTex3du4) DescriptorSet 0 - Decorate 199(g_tTex3du4) Binding 0 - Decorate 202(g_tTexcdf4) DescriptorSet 0 - Decorate 202(g_tTexcdf4) Binding 0 - Decorate 205(g_tTexcdi4) DescriptorSet 0 - Decorate 205(g_tTexcdi4) Binding 0 - Decorate 208(g_tTexcdu4) DescriptorSet 0 - Decorate 208(g_tTexcdu4) Binding 0 + Decorate 121(g_tTexcdi4a) DescriptorSet 0 + Decorate 121(g_tTexcdi4a) Binding 8 + Decorate 130(g_tTexcdu4a) DescriptorSet 0 + Decorate 130(g_tTexcdu4a) Binding 9 + Decorate 151(@entryPointOutput.Color) Location 0 + Decorate 155(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 160(g_tTex1df4) DescriptorSet 0 + Decorate 160(g_tTex1df4) Binding 0 + Decorate 163(g_tTex1di4) DescriptorSet 0 + Decorate 163(g_tTex1di4) Binding 0 + Decorate 166(g_tTex1du4) DescriptorSet 0 + Decorate 166(g_tTex1du4) Binding 0 + Decorate 169(g_tTex2df4) DescriptorSet 0 + Decorate 169(g_tTex2df4) Binding 0 + Decorate 172(g_tTex2di4) DescriptorSet 0 + Decorate 172(g_tTex2di4) Binding 0 + Decorate 175(g_tTex2du4) DescriptorSet 0 + Decorate 175(g_tTex2du4) Binding 0 + Decorate 178(g_tTex3df4) DescriptorSet 0 + Decorate 178(g_tTex3df4) Binding 0 + Decorate 181(g_tTex3di4) DescriptorSet 0 + Decorate 181(g_tTex3di4) Binding 0 + Decorate 184(g_tTex3du4) DescriptorSet 0 + Decorate 184(g_tTex3du4) Binding 0 + Decorate 187(g_tTexcdf4) DescriptorSet 0 + Decorate 187(g_tTexcdf4) Binding 0 + Decorate 190(g_tTexcdi4) DescriptorSet 0 + Decorate 190(g_tTexcdi4) Binding 0 + Decorate 193(g_tTexcdu4) DescriptorSet 0 + Decorate 193(g_tTexcdu4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -547,71 +547,71 @@ Validation failed 113: TypeSampledImage 108 115: 6(float) Constant 1053609165 116: 7(fvec4) ConstantComposite 25 26 71 115 - 124: TypeImage 36(int) Cube depth array sampled format:Unknown - 125: TypePointer UniformConstant 124 -126(g_tTexcdi4a): 125(ptr) Variable UniformConstant - 129: TypeSampledImage 124 - 138: TypeImage 50(int) Cube depth array sampled format:Unknown - 139: TypePointer UniformConstant 138 -140(g_tTexcdu4a): 139(ptr) Variable UniformConstant - 143: TypeSampledImage 138 - 151: TypePointer Function 8(PS_OUTPUT) - 153: 36(int) Constant 0 - 154: 6(float) Constant 1065353216 - 155: 7(fvec4) ConstantComposite 154 154 154 154 - 156: TypePointer Function 7(fvec4) - 158: 36(int) Constant 1 - 165: TypePointer Output 7(fvec4) -166(@entryPointOutput.Color): 165(ptr) Variable Output - 169: TypePointer Output 6(float) -170(@entryPointOutput.Depth): 169(ptr) Variable Output - 173: TypeImage 6(float) 1D sampled format:Unknown + 119: TypeImage 36(int) Cube depth array sampled format:Unknown + 120: TypePointer UniformConstant 119 +121(g_tTexcdi4a): 120(ptr) Variable UniformConstant + 124: TypeSampledImage 119 + 128: TypeImage 50(int) Cube depth array sampled format:Unknown + 129: TypePointer UniformConstant 128 +130(g_tTexcdu4a): 129(ptr) Variable UniformConstant + 133: TypeSampledImage 128 + 136: TypePointer Function 8(PS_OUTPUT) + 138: 36(int) Constant 0 + 139: 6(float) Constant 1065353216 + 140: 7(fvec4) ConstantComposite 139 139 139 139 + 141: TypePointer Function 7(fvec4) + 143: 36(int) Constant 1 + 150: TypePointer Output 7(fvec4) +151(@entryPointOutput.Color): 150(ptr) Variable Output + 154: TypePointer Output 6(float) +155(@entryPointOutput.Depth): 154(ptr) Variable Output + 158: TypeImage 6(float) 1D sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTex1df4): 159(ptr) Variable UniformConstant + 161: TypeImage 36(int) 1D sampled format:Unknown + 162: TypePointer UniformConstant 161 + 163(g_tTex1di4): 162(ptr) Variable UniformConstant + 164: TypeImage 50(int) 1D sampled format:Unknown + 165: TypePointer UniformConstant 164 + 166(g_tTex1du4): 165(ptr) Variable UniformConstant + 167: TypeImage 6(float) 2D sampled format:Unknown + 168: TypePointer UniformConstant 167 + 169(g_tTex2df4): 168(ptr) Variable UniformConstant + 170: TypeImage 36(int) 2D sampled format:Unknown + 171: TypePointer UniformConstant 170 + 172(g_tTex2di4): 171(ptr) Variable UniformConstant + 173: TypeImage 50(int) 2D sampled format:Unknown 174: TypePointer UniformConstant 173 - 175(g_tTex1df4): 174(ptr) Variable UniformConstant - 176: TypeImage 36(int) 1D sampled format:Unknown + 175(g_tTex2du4): 174(ptr) Variable UniformConstant + 176: TypeImage 6(float) 3D sampled format:Unknown 177: TypePointer UniformConstant 176 - 178(g_tTex1di4): 177(ptr) Variable UniformConstant - 179: TypeImage 50(int) 1D sampled format:Unknown + 178(g_tTex3df4): 177(ptr) Variable UniformConstant + 179: TypeImage 36(int) 3D sampled format:Unknown 180: TypePointer UniformConstant 179 - 181(g_tTex1du4): 180(ptr) Variable UniformConstant - 182: TypeImage 6(float) 2D sampled format:Unknown + 181(g_tTex3di4): 180(ptr) Variable UniformConstant + 182: TypeImage 50(int) 3D sampled format:Unknown 183: TypePointer UniformConstant 182 - 184(g_tTex2df4): 183(ptr) Variable UniformConstant - 185: TypeImage 36(int) 2D sampled format:Unknown + 184(g_tTex3du4): 183(ptr) Variable UniformConstant + 185: TypeImage 6(float) Cube sampled format:Unknown 186: TypePointer UniformConstant 185 - 187(g_tTex2di4): 186(ptr) Variable UniformConstant - 188: TypeImage 50(int) 2D sampled format:Unknown + 187(g_tTexcdf4): 186(ptr) Variable UniformConstant + 188: TypeImage 36(int) Cube sampled format:Unknown 189: TypePointer UniformConstant 188 - 190(g_tTex2du4): 189(ptr) Variable UniformConstant - 191: TypeImage 6(float) 3D sampled format:Unknown + 190(g_tTexcdi4): 189(ptr) Variable UniformConstant + 191: TypeImage 50(int) Cube sampled format:Unknown 192: TypePointer UniformConstant 191 - 193(g_tTex3df4): 192(ptr) Variable UniformConstant - 194: TypeImage 36(int) 3D sampled format:Unknown - 195: TypePointer UniformConstant 194 - 196(g_tTex3di4): 195(ptr) Variable UniformConstant - 197: TypeImage 50(int) 3D sampled format:Unknown - 198: TypePointer UniformConstant 197 - 199(g_tTex3du4): 198(ptr) Variable UniformConstant - 200: TypeImage 6(float) Cube sampled format:Unknown - 201: TypePointer UniformConstant 200 - 202(g_tTexcdf4): 201(ptr) Variable UniformConstant - 203: TypeImage 36(int) Cube sampled format:Unknown - 204: TypePointer UniformConstant 203 - 205(g_tTexcdi4): 204(ptr) Variable UniformConstant - 206: TypeImage 50(int) Cube sampled format:Unknown - 207: TypePointer UniformConstant 206 - 208(g_tTexcdu4): 207(ptr) Variable UniformConstant + 193(g_tTexcdu4): 192(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label -163(flattenTemp): 151(ptr) Variable Function - 164:8(PS_OUTPUT) FunctionCall 10(@main() - Store 163(flattenTemp) 164 - 167: 156(ptr) AccessChain 163(flattenTemp) 153 - 168: 7(fvec4) Load 167 - Store 166(@entryPointOutput.Color) 168 - 171: 12(ptr) AccessChain 163(flattenTemp) 158 - 172: 6(float) Load 171 - Store 170(@entryPointOutput.Depth) 172 +148(flattenTemp): 136(ptr) Variable Function + 149:8(PS_OUTPUT) FunctionCall 10(@main() + Store 148(flattenTemp) 149 + 152: 141(ptr) AccessChain 148(flattenTemp) 138 + 153: 7(fvec4) Load 152 + Store 151(@entryPointOutput.Color) 153 + 156: 12(ptr) AccessChain 148(flattenTemp) 143 + 157: 6(float) Load 156 + Store 155(@entryPointOutput.Depth) 157 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 @@ -623,9 +623,9 @@ Validation failed 79(r32): 12(ptr) Variable Function 93(r34): 12(ptr) Variable Function 107(r60): 12(ptr) Variable Function - 123(r62): 12(ptr) Variable Function - 137(r64): 12(ptr) Variable Function - 152(psout): 151(ptr) Variable Function + 118(r62): 12(ptr) Variable Function + 127(r64): 12(ptr) Variable Function + 137(psout): 136(ptr) Variable Function 17: 14 Load 16(g_tTex1df4a) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 @@ -686,37 +686,22 @@ Validation failed 111: 108 Load 110(g_tTexcdf4a) 112: 18 Load 20(g_sSamp) 114: 113 SampledImage 111 112 - 117: 6(float) CompositeExtract 116 0 - 118: 6(float) CompositeExtract 116 1 - 119: 6(float) CompositeExtract 116 2 - 120: 6(float) CompositeExtract 116 3 - 121: 7(fvec4) CompositeConstruct 117 118 119 120 - 122: 6(float) ImageSampleDrefImplicitLod 114 121 28 - Store 107(r60) 122 - 127: 124 Load 126(g_tTexcdi4a) - 128: 18 Load 20(g_sSamp) - 130: 129 SampledImage 127 128 - 131: 6(float) CompositeExtract 116 0 - 132: 6(float) CompositeExtract 116 1 - 133: 6(float) CompositeExtract 116 2 - 134: 6(float) CompositeExtract 116 3 - 135: 7(fvec4) CompositeConstruct 131 132 133 134 - 136: 6(float) ImageSampleDrefImplicitLod 130 135 28 - Store 123(r62) 136 - 141: 138 Load 140(g_tTexcdu4a) - 142: 18 Load 20(g_sSamp) - 144: 143 SampledImage 141 142 - 145: 6(float) CompositeExtract 116 0 - 146: 6(float) CompositeExtract 116 1 - 147: 6(float) CompositeExtract 116 2 - 148: 6(float) CompositeExtract 116 3 - 149: 7(fvec4) CompositeConstruct 145 146 147 148 - 150: 6(float) ImageSampleDrefImplicitLod 144 149 28 - Store 137(r64) 150 - 157: 156(ptr) AccessChain 152(psout) 153 - Store 157 155 - 159: 12(ptr) AccessChain 152(psout) 158 - Store 159 154 - 160:8(PS_OUTPUT) Load 152(psout) - ReturnValue 160 + 117: 6(float) ImageSampleDrefImplicitLod 114 116 28 + Store 107(r60) 117 + 122: 119 Load 121(g_tTexcdi4a) + 123: 18 Load 20(g_sSamp) + 125: 124 SampledImage 122 123 + 126: 6(float) ImageSampleDrefImplicitLod 125 116 28 + Store 118(r62) 126 + 131: 128 Load 130(g_tTexcdu4a) + 132: 18 Load 20(g_sSamp) + 134: 133 SampledImage 131 132 + 135: 6(float) ImageSampleDrefImplicitLod 134 116 28 + Store 127(r64) 135 + 142: 141(ptr) AccessChain 137(psout) 138 + Store 142 140 + 144: 12(ptr) AccessChain 137(psout) 143 + Store 144 139 + 145:8(PS_OUTPUT) Load 137(psout) + ReturnValue 145 FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index 45e33ffad..b9adf6fe5 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -436,14 +436,14 @@ using depth_any Validation failed // Module Version 10000 // Generated by (magic number): 8000b -// Id's are bound by 210 +// Id's are bound by 195 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 167 171 + EntryPoint Fragment 4 "main" 152 156 ExecutionMode 4 OriginUpperLeft ExecutionMode 4 DepthReplacing Source HLSL 500 @@ -467,26 +467,26 @@ Validation failed Name 97 "g_tTex2du4a" Name 108 "r60" Name 111 "g_tTexcdf4a" - Name 124 "r62" - Name 127 "g_tTexcdi4a" - Name 138 "r64" - Name 141 "g_tTexcdu4a" - Name 153 "psout" - Name 164 "flattenTemp" - Name 167 "@entryPointOutput.Color" - Name 171 "@entryPointOutput.Depth" - Name 176 "g_tTex1df4" - Name 179 "g_tTex1di4" - Name 182 "g_tTex1du4" - Name 185 "g_tTex2df4" - Name 188 "g_tTex2di4" - Name 191 "g_tTex2du4" - Name 194 "g_tTex3df4" - Name 197 "g_tTex3di4" - Name 200 "g_tTex3du4" - Name 203 "g_tTexcdf4" - Name 206 "g_tTexcdi4" - Name 209 "g_tTexcdu4" + Name 119 "r62" + Name 122 "g_tTexcdi4a" + Name 128 "r64" + Name 131 "g_tTexcdu4a" + Name 138 "psout" + Name 149 "flattenTemp" + Name 152 "@entryPointOutput.Color" + Name 156 "@entryPointOutput.Depth" + Name 161 "g_tTex1df4" + Name 164 "g_tTex1di4" + Name 167 "g_tTex1du4" + Name 170 "g_tTex2df4" + Name 173 "g_tTex2di4" + Name 176 "g_tTex2du4" + Name 179 "g_tTex3df4" + Name 182 "g_tTex3di4" + Name 185 "g_tTex3du4" + Name 188 "g_tTexcdf4" + Name 191 "g_tTexcdi4" + Name 194 "g_tTexcdu4" Decorate 16(g_tTex1df4a) DescriptorSet 0 Decorate 16(g_tTex1df4a) Binding 1 Decorate 20(g_sSamp) DescriptorSet 0 @@ -503,36 +503,36 @@ Validation failed Decorate 97(g_tTex2du4a) Binding 6 Decorate 111(g_tTexcdf4a) DescriptorSet 0 Decorate 111(g_tTexcdf4a) Binding 7 - Decorate 127(g_tTexcdi4a) DescriptorSet 0 - Decorate 127(g_tTexcdi4a) Binding 8 - Decorate 141(g_tTexcdu4a) DescriptorSet 0 - Decorate 141(g_tTexcdu4a) Binding 9 - Decorate 167(@entryPointOutput.Color) Location 0 - Decorate 171(@entryPointOutput.Depth) BuiltIn FragDepth - Decorate 176(g_tTex1df4) DescriptorSet 0 - Decorate 176(g_tTex1df4) Binding 0 - Decorate 179(g_tTex1di4) DescriptorSet 0 - Decorate 179(g_tTex1di4) Binding 0 - Decorate 182(g_tTex1du4) DescriptorSet 0 - Decorate 182(g_tTex1du4) Binding 0 - Decorate 185(g_tTex2df4) DescriptorSet 0 - Decorate 185(g_tTex2df4) Binding 0 - Decorate 188(g_tTex2di4) DescriptorSet 0 - Decorate 188(g_tTex2di4) Binding 0 - Decorate 191(g_tTex2du4) DescriptorSet 0 - Decorate 191(g_tTex2du4) Binding 0 - Decorate 194(g_tTex3df4) DescriptorSet 0 - Decorate 194(g_tTex3df4) Binding 0 - Decorate 197(g_tTex3di4) DescriptorSet 0 - Decorate 197(g_tTex3di4) Binding 0 - Decorate 200(g_tTex3du4) DescriptorSet 0 - Decorate 200(g_tTex3du4) Binding 0 - Decorate 203(g_tTexcdf4) DescriptorSet 0 - Decorate 203(g_tTexcdf4) Binding 0 - Decorate 206(g_tTexcdi4) DescriptorSet 0 - Decorate 206(g_tTexcdi4) Binding 0 - Decorate 209(g_tTexcdu4) DescriptorSet 0 - Decorate 209(g_tTexcdu4) Binding 0 + Decorate 122(g_tTexcdi4a) DescriptorSet 0 + Decorate 122(g_tTexcdi4a) Binding 8 + Decorate 131(g_tTexcdu4a) DescriptorSet 0 + Decorate 131(g_tTexcdu4a) Binding 9 + Decorate 152(@entryPointOutput.Color) Location 0 + Decorate 156(@entryPointOutput.Depth) BuiltIn FragDepth + Decorate 161(g_tTex1df4) DescriptorSet 0 + Decorate 161(g_tTex1df4) Binding 0 + Decorate 164(g_tTex1di4) DescriptorSet 0 + Decorate 164(g_tTex1di4) Binding 0 + Decorate 167(g_tTex1du4) DescriptorSet 0 + Decorate 167(g_tTex1du4) Binding 0 + Decorate 170(g_tTex2df4) DescriptorSet 0 + Decorate 170(g_tTex2df4) Binding 0 + Decorate 173(g_tTex2di4) DescriptorSet 0 + Decorate 173(g_tTex2di4) Binding 0 + Decorate 176(g_tTex2du4) DescriptorSet 0 + Decorate 176(g_tTex2du4) Binding 0 + Decorate 179(g_tTex3df4) DescriptorSet 0 + Decorate 179(g_tTex3df4) Binding 0 + Decorate 182(g_tTex3di4) DescriptorSet 0 + Decorate 182(g_tTex3di4) Binding 0 + Decorate 185(g_tTex3du4) DescriptorSet 0 + Decorate 185(g_tTex3du4) Binding 0 + Decorate 188(g_tTexcdf4) DescriptorSet 0 + Decorate 188(g_tTexcdf4) Binding 0 + Decorate 191(g_tTexcdi4) DescriptorSet 0 + Decorate 191(g_tTexcdi4) Binding 0 + Decorate 194(g_tTexcdu4) DescriptorSet 0 + Decorate 194(g_tTexcdu4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -584,71 +584,71 @@ Validation failed 114: TypeSampledImage 109 116: 6(float) Constant 1053609165 117: 7(fvec4) ConstantComposite 25 26 72 116 - 125: TypeImage 37(int) Cube depth array sampled format:Unknown - 126: TypePointer UniformConstant 125 -127(g_tTexcdi4a): 126(ptr) Variable UniformConstant - 130: TypeSampledImage 125 - 139: TypeImage 51(int) Cube depth array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTexcdu4a): 140(ptr) Variable UniformConstant - 144: TypeSampledImage 139 - 152: TypePointer Function 8(PS_OUTPUT) - 154: 37(int) Constant 0 - 155: 6(float) Constant 1065353216 - 156: 7(fvec4) ConstantComposite 155 155 155 155 - 157: TypePointer Function 7(fvec4) - 159: 37(int) Constant 1 - 166: TypePointer Output 7(fvec4) -167(@entryPointOutput.Color): 166(ptr) Variable Output - 170: TypePointer Output 6(float) -171(@entryPointOutput.Depth): 170(ptr) Variable Output - 174: TypeImage 6(float) 1D sampled format:Unknown + 120: TypeImage 37(int) Cube depth array sampled format:Unknown + 121: TypePointer UniformConstant 120 +122(g_tTexcdi4a): 121(ptr) Variable UniformConstant + 125: TypeSampledImage 120 + 129: TypeImage 51(int) Cube depth array sampled format:Unknown + 130: TypePointer UniformConstant 129 +131(g_tTexcdu4a): 130(ptr) Variable UniformConstant + 134: TypeSampledImage 129 + 137: TypePointer Function 8(PS_OUTPUT) + 139: 37(int) Constant 0 + 140: 6(float) Constant 1065353216 + 141: 7(fvec4) ConstantComposite 140 140 140 140 + 142: TypePointer Function 7(fvec4) + 144: 37(int) Constant 1 + 151: TypePointer Output 7(fvec4) +152(@entryPointOutput.Color): 151(ptr) Variable Output + 155: TypePointer Output 6(float) +156(@entryPointOutput.Depth): 155(ptr) Variable Output + 159: TypeImage 6(float) 1D sampled format:Unknown + 160: TypePointer UniformConstant 159 + 161(g_tTex1df4): 160(ptr) Variable UniformConstant + 162: TypeImage 37(int) 1D sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(g_tTex1di4): 163(ptr) Variable UniformConstant + 165: TypeImage 51(int) 1D sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTex1du4): 166(ptr) Variable UniformConstant + 168: TypeImage 6(float) 2D sampled format:Unknown + 169: TypePointer UniformConstant 168 + 170(g_tTex2df4): 169(ptr) Variable UniformConstant + 171: TypeImage 37(int) 2D sampled format:Unknown + 172: TypePointer UniformConstant 171 + 173(g_tTex2di4): 172(ptr) Variable UniformConstant + 174: TypeImage 51(int) 2D sampled format:Unknown 175: TypePointer UniformConstant 174 - 176(g_tTex1df4): 175(ptr) Variable UniformConstant - 177: TypeImage 37(int) 1D sampled format:Unknown + 176(g_tTex2du4): 175(ptr) Variable UniformConstant + 177: TypeImage 6(float) 3D sampled format:Unknown 178: TypePointer UniformConstant 177 - 179(g_tTex1di4): 178(ptr) Variable UniformConstant - 180: TypeImage 51(int) 1D sampled format:Unknown + 179(g_tTex3df4): 178(ptr) Variable UniformConstant + 180: TypeImage 37(int) 3D sampled format:Unknown 181: TypePointer UniformConstant 180 - 182(g_tTex1du4): 181(ptr) Variable UniformConstant - 183: TypeImage 6(float) 2D sampled format:Unknown + 182(g_tTex3di4): 181(ptr) Variable UniformConstant + 183: TypeImage 51(int) 3D sampled format:Unknown 184: TypePointer UniformConstant 183 - 185(g_tTex2df4): 184(ptr) Variable UniformConstant - 186: TypeImage 37(int) 2D sampled format:Unknown + 185(g_tTex3du4): 184(ptr) Variable UniformConstant + 186: TypeImage 6(float) Cube sampled format:Unknown 187: TypePointer UniformConstant 186 - 188(g_tTex2di4): 187(ptr) Variable UniformConstant - 189: TypeImage 51(int) 2D sampled format:Unknown + 188(g_tTexcdf4): 187(ptr) Variable UniformConstant + 189: TypeImage 37(int) Cube sampled format:Unknown 190: TypePointer UniformConstant 189 - 191(g_tTex2du4): 190(ptr) Variable UniformConstant - 192: TypeImage 6(float) 3D sampled format:Unknown + 191(g_tTexcdi4): 190(ptr) Variable UniformConstant + 192: TypeImage 51(int) Cube sampled format:Unknown 193: TypePointer UniformConstant 192 - 194(g_tTex3df4): 193(ptr) Variable UniformConstant - 195: TypeImage 37(int) 3D sampled format:Unknown - 196: TypePointer UniformConstant 195 - 197(g_tTex3di4): 196(ptr) Variable UniformConstant - 198: TypeImage 51(int) 3D sampled format:Unknown - 199: TypePointer UniformConstant 198 - 200(g_tTex3du4): 199(ptr) Variable UniformConstant - 201: TypeImage 6(float) Cube sampled format:Unknown - 202: TypePointer UniformConstant 201 - 203(g_tTexcdf4): 202(ptr) Variable UniformConstant - 204: TypeImage 37(int) Cube sampled format:Unknown - 205: TypePointer UniformConstant 204 - 206(g_tTexcdi4): 205(ptr) Variable UniformConstant - 207: TypeImage 51(int) Cube sampled format:Unknown - 208: TypePointer UniformConstant 207 - 209(g_tTexcdu4): 208(ptr) Variable UniformConstant + 194(g_tTexcdu4): 193(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label -164(flattenTemp): 152(ptr) Variable Function - 165:8(PS_OUTPUT) FunctionCall 10(@main() - Store 164(flattenTemp) 165 - 168: 157(ptr) AccessChain 164(flattenTemp) 154 - 169: 7(fvec4) Load 168 - Store 167(@entryPointOutput.Color) 169 - 172: 12(ptr) AccessChain 164(flattenTemp) 159 - 173: 6(float) Load 172 - Store 171(@entryPointOutput.Depth) 173 +149(flattenTemp): 137(ptr) Variable Function + 150:8(PS_OUTPUT) FunctionCall 10(@main() + Store 149(flattenTemp) 150 + 153: 142(ptr) AccessChain 149(flattenTemp) 139 + 154: 7(fvec4) Load 153 + Store 152(@entryPointOutput.Color) 154 + 157: 12(ptr) AccessChain 149(flattenTemp) 144 + 158: 6(float) Load 157 + Store 156(@entryPointOutput.Depth) 158 Return FunctionEnd 10(@main():8(PS_OUTPUT) Function None 9 @@ -660,9 +660,9 @@ Validation failed 80(r32): 12(ptr) Variable Function 94(r34): 12(ptr) Variable Function 108(r60): 12(ptr) Variable Function - 124(r62): 12(ptr) Variable Function - 138(r64): 12(ptr) Variable Function - 153(psout): 152(ptr) Variable Function + 119(r62): 12(ptr) Variable Function + 128(r64): 12(ptr) Variable Function + 138(psout): 137(ptr) Variable Function 17: 14 Load 16(g_tTex1df4a) 21: 18 Load 20(g_sSamp) 23: 22 SampledImage 17 21 @@ -723,37 +723,22 @@ Validation failed 112: 109 Load 111(g_tTexcdf4a) 113: 18 Load 20(g_sSamp) 115: 114 SampledImage 112 113 - 118: 6(float) CompositeExtract 117 0 - 119: 6(float) CompositeExtract 117 1 - 120: 6(float) CompositeExtract 117 2 - 121: 6(float) CompositeExtract 117 3 - 122: 7(fvec4) CompositeConstruct 118 119 120 121 - 123: 6(float) ImageSampleDrefExplicitLod 115 122 28 Lod 33 - Store 108(r60) 123 - 128: 125 Load 127(g_tTexcdi4a) - 129: 18 Load 20(g_sSamp) - 131: 130 SampledImage 128 129 - 132: 6(float) CompositeExtract 117 0 - 133: 6(float) CompositeExtract 117 1 - 134: 6(float) CompositeExtract 117 2 - 135: 6(float) CompositeExtract 117 3 - 136: 7(fvec4) CompositeConstruct 132 133 134 135 - 137: 6(float) ImageSampleDrefExplicitLod 131 136 28 Lod 33 - Store 124(r62) 137 - 142: 139 Load 141(g_tTexcdu4a) - 143: 18 Load 20(g_sSamp) - 145: 144 SampledImage 142 143 - 146: 6(float) CompositeExtract 117 0 - 147: 6(float) CompositeExtract 117 1 - 148: 6(float) CompositeExtract 117 2 - 149: 6(float) CompositeExtract 117 3 - 150: 7(fvec4) CompositeConstruct 146 147 148 149 - 151: 6(float) ImageSampleDrefExplicitLod 145 150 28 Lod 33 - Store 138(r64) 151 - 158: 157(ptr) AccessChain 153(psout) 154 - Store 158 156 - 160: 12(ptr) AccessChain 153(psout) 159 - Store 160 155 - 161:8(PS_OUTPUT) Load 153(psout) - ReturnValue 161 + 118: 6(float) ImageSampleDrefExplicitLod 115 117 28 Lod 33 + Store 108(r60) 118 + 123: 120 Load 122(g_tTexcdi4a) + 124: 18 Load 20(g_sSamp) + 126: 125 SampledImage 123 124 + 127: 6(float) ImageSampleDrefExplicitLod 126 117 28 Lod 33 + Store 119(r62) 127 + 132: 129 Load 131(g_tTexcdu4a) + 133: 18 Load 20(g_sSamp) + 135: 134 SampledImage 132 133 + 136: 6(float) ImageSampleDrefExplicitLod 135 117 28 Lod 33 + Store 128(r64) 136 + 143: 142(ptr) AccessChain 138(psout) 139 + Store 143 141 + 145: 12(ptr) AccessChain 138(psout) 144 + Store 145 140 + 146:8(PS_OUTPUT) Load 138(psout) + ReturnValue 146 FunctionEnd diff --git a/Test/baseResults/spv.16bitstorage-int.frag.out b/Test/baseResults/spv.16bitstorage-int.frag.out index 143983cb2..bced9d308 100644 --- a/Test/baseResults/spv.16bitstorage-int.frag.out +++ b/Test/baseResults/spv.16bitstorage-int.frag.out @@ -1,10 +1,9 @@ spv.16bitstorage-int.frag // Module Version 10000 // Generated by (magic number): 8000b -// Id's are bound by 187 +// Id's are bound by 180 Capability Shader - Capability Int16 Capability StorageUniformBufferBlock16 Capability StorageUniform16 Extension "SPV_KHR_16bit_storage" @@ -342,18 +341,11 @@ spv.16bitstorage-int.frag Store 173 172 174: 42(ptr) AccessChain 27(b1) 32 175: 7(i16vec2) Load 174 - 176: 6(int16_t) CompositeExtract 175 0 - 177: 6(int16_t) CompositeExtract 175 1 - 178: 7(i16vec2) CompositeConstruct 176 177 - 179: 42(ptr) AccessChain 19(b2) 32 + 176: 42(ptr) AccessChain 19(b2) 32 + Store 176 175 + 177: 34(ptr) AccessChain 27(b1) 33 + 178: 8(i16vec3) Load 177 + 179: 34(ptr) AccessChain 19(b2) 33 Store 179 178 - 180: 34(ptr) AccessChain 27(b1) 33 - 181: 8(i16vec3) Load 180 - 182: 6(int16_t) CompositeExtract 181 0 - 183: 6(int16_t) CompositeExtract 181 1 - 184: 6(int16_t) CompositeExtract 181 2 - 185: 8(i16vec3) CompositeConstruct 182 183 184 - 186: 34(ptr) AccessChain 19(b2) 33 - Store 186 185 Return FunctionEnd diff --git a/Test/baseResults/spv.16bitstorage-uint.frag.out b/Test/baseResults/spv.16bitstorage-uint.frag.out index 4b30c2974..adf5237b0 100644 --- a/Test/baseResults/spv.16bitstorage-uint.frag.out +++ b/Test/baseResults/spv.16bitstorage-uint.frag.out @@ -1,10 +1,9 @@ spv.16bitstorage-uint.frag // Module Version 10000 // Generated by (magic number): 8000b -// Id's are bound by 189 +// Id's are bound by 182 Capability Shader - Capability Int16 Capability StorageUniformBufferBlock16 Capability StorageUniform16 Extension "SPV_KHR_16bit_storage" @@ -344,18 +343,11 @@ spv.16bitstorage-uint.frag Store 175 174 176: 42(ptr) AccessChain 27(b1) 32 177: 7(i16vec2) Load 176 - 178: 6(int16_t) CompositeExtract 177 0 - 179: 6(int16_t) CompositeExtract 177 1 - 180: 7(i16vec2) CompositeConstruct 178 179 - 181: 42(ptr) AccessChain 19(b2) 32 + 178: 42(ptr) AccessChain 19(b2) 32 + Store 178 177 + 179: 34(ptr) AccessChain 27(b1) 33 + 180: 8(i16vec3) Load 179 + 181: 34(ptr) AccessChain 19(b2) 33 Store 181 180 - 182: 34(ptr) AccessChain 27(b1) 33 - 183: 8(i16vec3) Load 182 - 184: 6(int16_t) CompositeExtract 183 0 - 185: 6(int16_t) CompositeExtract 183 1 - 186: 6(int16_t) CompositeExtract 183 2 - 187: 8(i16vec3) CompositeConstruct 184 185 186 - 188: 34(ptr) AccessChain 19(b2) 33 - Store 188 187 Return FunctionEnd diff --git a/Test/baseResults/spv.16bitstorage.frag.out b/Test/baseResults/spv.16bitstorage.frag.out index 7e186809c..bb1b1642a 100644 --- a/Test/baseResults/spv.16bitstorage.frag.out +++ b/Test/baseResults/spv.16bitstorage.frag.out @@ -1,10 +1,9 @@ spv.16bitstorage.frag // Module Version 10000 // Generated by (magic number): 8000b -// Id's are bound by 189 +// Id's are bound by 182 Capability Shader - Capability Float16 Capability StorageUniformBufferBlock16 Capability StorageUniform16 Extension "SPV_KHR_16bit_storage" @@ -344,18 +343,11 @@ spv.16bitstorage.frag Store 175 174 176: 43(ptr) AccessChain 27(b1) 32 177: 7(f16vec2) Load 176 - 178:6(float16_t) CompositeExtract 177 0 - 179:6(float16_t) CompositeExtract 177 1 - 180: 7(f16vec2) CompositeConstruct 178 179 - 181: 43(ptr) AccessChain 19(b2) 32 + 178: 43(ptr) AccessChain 19(b2) 32 + Store 178 177 + 179: 34(ptr) AccessChain 27(b1) 33 + 180: 8(f16vec3) Load 179 + 181: 34(ptr) AccessChain 19(b2) 33 Store 181 180 - 182: 34(ptr) AccessChain 27(b1) 33 - 183: 8(f16vec3) Load 182 - 184:6(float16_t) CompositeExtract 183 0 - 185:6(float16_t) CompositeExtract 183 1 - 186:6(float16_t) CompositeExtract 183 2 - 187: 8(f16vec3) CompositeConstruct 184 185 186 - 188: 34(ptr) AccessChain 19(b2) 33 - Store 188 187 Return FunctionEnd diff --git a/Test/baseResults/spv.8bitstorage-int.frag.out b/Test/baseResults/spv.8bitstorage-int.frag.out index da8fe267b..25db1d86d 100644 --- a/Test/baseResults/spv.8bitstorage-int.frag.out +++ b/Test/baseResults/spv.8bitstorage-int.frag.out @@ -1,10 +1,9 @@ spv.8bitstorage-int.frag // Module Version 10000 // Generated by (magic number): 8000b -// Id's are bound by 187 +// Id's are bound by 180 Capability Shader - Capability Int8 Capability UniformAndStorageBuffer8BitAccess Extension "SPV_KHR_8bit_storage" 1: ExtInstImport "GLSL.std.450" @@ -341,18 +340,11 @@ spv.8bitstorage-int.frag Store 173 172 174: 42(ptr) AccessChain 27(b1) 32 175: 7(i8vec2) Load 174 - 176: 6(int8_t) CompositeExtract 175 0 - 177: 6(int8_t) CompositeExtract 175 1 - 178: 7(i8vec2) CompositeConstruct 176 177 - 179: 42(ptr) AccessChain 19(b2) 32 + 176: 42(ptr) AccessChain 19(b2) 32 + Store 176 175 + 177: 34(ptr) AccessChain 27(b1) 33 + 178: 8(i8vec3) Load 177 + 179: 34(ptr) AccessChain 19(b2) 33 Store 179 178 - 180: 34(ptr) AccessChain 27(b1) 33 - 181: 8(i8vec3) Load 180 - 182: 6(int8_t) CompositeExtract 181 0 - 183: 6(int8_t) CompositeExtract 181 1 - 184: 6(int8_t) CompositeExtract 181 2 - 185: 8(i8vec3) CompositeConstruct 182 183 184 - 186: 34(ptr) AccessChain 19(b2) 33 - Store 186 185 Return FunctionEnd diff --git a/Test/baseResults/spv.8bitstorage-uint.frag.out b/Test/baseResults/spv.8bitstorage-uint.frag.out index eb1ecca56..d89756b2f 100644 --- a/Test/baseResults/spv.8bitstorage-uint.frag.out +++ b/Test/baseResults/spv.8bitstorage-uint.frag.out @@ -1,10 +1,9 @@ spv.8bitstorage-uint.frag // Module Version 10000 // Generated by (magic number): 8000b -// Id's are bound by 189 +// Id's are bound by 182 Capability Shader - Capability Int8 Capability UniformAndStorageBuffer8BitAccess Extension "SPV_KHR_8bit_storage" 1: ExtInstImport "GLSL.std.450" @@ -343,18 +342,11 @@ spv.8bitstorage-uint.frag Store 175 174 176: 42(ptr) AccessChain 27(b1) 32 177: 7(i8vec2) Load 176 - 178: 6(int8_t) CompositeExtract 177 0 - 179: 6(int8_t) CompositeExtract 177 1 - 180: 7(i8vec2) CompositeConstruct 178 179 - 181: 42(ptr) AccessChain 19(b2) 32 + 178: 42(ptr) AccessChain 19(b2) 32 + Store 178 177 + 179: 34(ptr) AccessChain 27(b1) 33 + 180: 8(i8vec3) Load 179 + 181: 34(ptr) AccessChain 19(b2) 33 Store 181 180 - 182: 34(ptr) AccessChain 27(b1) 33 - 183: 8(i8vec3) Load 182 - 184: 6(int8_t) CompositeExtract 183 0 - 185: 6(int8_t) CompositeExtract 183 1 - 186: 6(int8_t) CompositeExtract 183 2 - 187: 8(i8vec3) CompositeConstruct 184 185 186 - 188: 34(ptr) AccessChain 19(b2) 33 - Store 188 187 Return FunctionEnd diff --git a/Test/baseResults/spv.debuginfo.glsl.frag.out b/Test/baseResults/spv.debuginfo.glsl.frag.out index c2023e593..6c5e4da6b 100644 --- a/Test/baseResults/spv.debuginfo.glsl.frag.out +++ b/Test/baseResults/spv.debuginfo.glsl.frag.out @@ -2,7 +2,7 @@ spv.debuginfo.glsl.frag Validation failed // Module Version 10000 // Generated by (magic number): 8000b -// Id's are bound by 881 +// Id's are bound by 877 Capability Shader Capability ImageQuery @@ -350,8 +350,8 @@ void main() Name 794 "R" Name 804 "NdotR" Name 814 "spec" - Name 865 "param" - Name 870 "param" + Name 861 "param" + Name 866 "param" Decorate 177(samplerShadowMap) DescriptorSet 0 Decorate 177(samplerShadowMap) Binding 5 MemberDecorate 405(Light) 0 Offset 0 @@ -624,10 +624,10 @@ void main() 821: 16(float) Constant 1098907648 826: 16(float) Constant 1075838976 831: 7(int) Constant 184 - 843: 96(int) Constant 2 - 860: 7(int) Constant 188 - 869: 7(int) Constant 190 - 876: 7(int) Constant 193 + 839: 96(int) Constant 2 + 856: 7(int) Constant 188 + 865: 7(int) Constant 190 + 872: 7(int) Constant 193 14(main): 4 Function None 5 15: Label 475(fragPos): 75(ptr) Variable Function @@ -653,8 +653,8 @@ void main() 794(R): 75(ptr) Variable Function 804(NdotR): 25(ptr) Variable Function 814(spec): 75(ptr) Variable Function - 865(param): 75(ptr) Variable Function - 870(param): 75(ptr) Variable Function + 861(param): 75(ptr) Variable Function + 866(param): 75(ptr) Variable Function 107: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 44 108: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 104 104 12 12 Store 101(global_var) 106 @@ -931,56 +931,52 @@ void main() 835: 73(fvec3) VectorTimesScalar 833 834 836: 16(float) Load 767(heightAttenuation) 837: 73(fvec3) VectorTimesScalar 835 836 - 838: 16(float) CompositeExtract 837 0 - 839: 16(float) CompositeExtract 837 1 - 840: 16(float) CompositeExtract 837 2 - 841: 73(fvec3) CompositeConstruct 838 839 840 - 842: 96(int) Load 654(i) - 844: 678(ptr) AccessChain 431(ubo) 290 842 843 - 845: 19(fvec4) Load 844 - 846: 73(fvec3) VectorShuffle 845 845 0 1 2 - 847: 73(fvec3) FMul 841 846 - 848: 19(fvec4) Load 512(albedo) - 849: 73(fvec3) VectorShuffle 848 848 0 1 2 - 850: 73(fvec3) FMul 847 849 - 851: 73(fvec3) Load 636(fragcolor) - 852: 73(fvec3) FAdd 851 850 - Store 636(fragcolor) 852 + 838: 96(int) Load 654(i) + 840: 678(ptr) AccessChain 431(ubo) 290 838 839 + 841: 19(fvec4) Load 840 + 842: 73(fvec3) VectorShuffle 841 841 0 1 2 + 843: 73(fvec3) FMul 837 842 + 844: 19(fvec4) Load 512(albedo) + 845: 73(fvec3) VectorShuffle 844 844 0 1 2 + 846: 73(fvec3) FMul 843 845 + 847: 73(fvec3) Load 636(fragcolor) + 848: 73(fvec3) FAdd 847 846 + Store 636(fragcolor) 848 Branch 662 662: Label - 854: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 - 855: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 656 656 12 12 - 853: 96(int) Load 654(i) - 856: 96(int) IAdd 853 290 - Store 654(i) 856 + 850: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 + 851: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 656 656 12 12 + 849: 96(int) Load 654(i) + 852: 96(int) IAdd 849 290 + Store 654(i) 852 Branch 659 661: Label - 858: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 - 859: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 860 860 12 12 - 857: 524(ptr) AccessChain 431(ubo) 843 - 861: 96(int) Load 857 - 862: 139(bool) SGreaterThan 861 106 - SelectionMerge 864 None - BranchConditional 862 863 864 - 863: Label - 867: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 - 868: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 869 869 12 12 - 866: 73(fvec3) Load 636(fragcolor) - Store 865(param) 866 - 871: 73(fvec3) Load 475(fragPos) - Store 870(param) 871 - 872: 73(fvec3) FunctionCall 81(shadow(vf3;vf3;) 865(param) 870(param) - Store 636(fragcolor) 872 - Branch 864 - 864: Label - 874: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 - 875: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 876 876 12 12 - 873: 73(fvec3) Load 636(fragcolor) - 877: 16(float) CompositeExtract 873 0 - 878: 16(float) CompositeExtract 873 1 - 879: 16(float) CompositeExtract 873 2 - 880: 19(fvec4) CompositeConstruct 877 878 879 115 - Store 546(outFragColor) 880 + 854: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 + 855: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 856 856 12 12 + 853: 524(ptr) AccessChain 431(ubo) 839 + 857: 96(int) Load 853 + 858: 139(bool) SGreaterThan 857 106 + SelectionMerge 860 None + BranchConditional 858 859 860 + 859: Label + 863: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 + 864: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 865 865 12 12 + 862: 73(fvec3) Load 636(fragcolor) + Store 861(param) 862 + 867: 73(fvec3) Load 475(fragPos) + Store 866(param) 867 + 868: 73(fvec3) FunctionCall 81(shadow(vf3;vf3;) 861(param) 866(param) + Store 636(fragcolor) 868 + Branch 860 + 860: Label + 870: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(DebugScope) 94 + 871: 4 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103(DebugLine) 41 872 872 12 12 + 869: 73(fvec3) Load 636(fragcolor) + 873: 16(float) CompositeExtract 869 0 + 874: 16(float) CompositeExtract 869 1 + 875: 16(float) CompositeExtract 869 2 + 876: 19(fvec4) CompositeConstruct 873 874 875 115 + Store 546(outFragColor) 876 Return FunctionEnd 37(textureProj(vf4;f1;vf2;): 16(float) Function None 32 diff --git a/Test/baseResults/spv.explicittypes.frag.out b/Test/baseResults/spv.explicittypes.frag.out index 65d3b1ff2..3b3346031 100644 --- a/Test/baseResults/spv.explicittypes.frag.out +++ b/Test/baseResults/spv.explicittypes.frag.out @@ -1,7 +1,7 @@ spv.explicittypes.frag // Module Version 10300 // Generated by (magic number): 8000b -// Id's are bound by 576 +// Id's are bound by 567 Capability Shader Capability Float16 @@ -80,63 +80,63 @@ spv.explicittypes.frag Name 399 "f64v" Name 406 "i8v" Name 412 "i16v" - Name 429 "u8v" - Name 435 "u16v" - Name 452 "f16v" - Name 465 "bv" - Name 481 "u64v" - Name 482 "i64v" - Name 485 "f64v" - Name 490 "i8v" - Name 496 "i16v" - Name 502 "i32v" - Name 510 "u8v" - Name 516 "u16v" - Name 522 "u32v" - Name 534 "f16v" - Name 537 "f32v" - Name 548 "bv" - Name 573 "Block" - MemberName 573(Block) 0 "i16" - MemberName 573(Block) 1 "i16v2" - MemberName 573(Block) 2 "i16v3" - MemberName 573(Block) 3 "i16v4" - MemberName 573(Block) 4 "u16" - MemberName 573(Block) 5 "u16v2" - MemberName 573(Block) 6 "u16v3" - MemberName 573(Block) 7 "u16v4" - MemberName 573(Block) 8 "i32" - MemberName 573(Block) 9 "i32v2" - MemberName 573(Block) 10 "i32v3" - MemberName 573(Block) 11 "i32v4" - MemberName 573(Block) 12 "u32" - MemberName 573(Block) 13 "u32v2" - MemberName 573(Block) 14 "u32v3" - MemberName 573(Block) 15 "u32v4" - Name 575 "block" + Name 426 "u8v" + Name 432 "u16v" + Name 446 "f16v" + Name 459 "bv" + Name 475 "u64v" + Name 476 "i64v" + Name 479 "f64v" + Name 484 "i8v" + Name 490 "i16v" + Name 496 "i32v" + Name 504 "u8v" + Name 510 "u16v" + Name 516 "u32v" + Name 525 "f16v" + Name 528 "f32v" + Name 539 "bv" + Name 564 "Block" + MemberName 564(Block) 0 "i16" + MemberName 564(Block) 1 "i16v2" + MemberName 564(Block) 2 "i16v3" + MemberName 564(Block) 3 "i16v4" + MemberName 564(Block) 4 "u16" + MemberName 564(Block) 5 "u16v2" + MemberName 564(Block) 6 "u16v3" + MemberName 564(Block) 7 "u16v4" + MemberName 564(Block) 8 "i32" + MemberName 564(Block) 9 "i32v2" + MemberName 564(Block) 10 "i32v3" + MemberName 564(Block) 11 "i32v4" + MemberName 564(Block) 12 "u32" + MemberName 564(Block) 13 "u32v2" + MemberName 564(Block) 14 "u32v3" + MemberName 564(Block) 15 "u32v4" + Name 566 "block" MemberDecorate 26(Uniforms) 0 Offset 0 Decorate 26(Uniforms) Block Decorate 28 DescriptorSet 0 Decorate 28 Binding 0 - MemberDecorate 573(Block) 0 Offset 0 - MemberDecorate 573(Block) 1 Offset 4 - MemberDecorate 573(Block) 2 Offset 8 - MemberDecorate 573(Block) 3 Offset 16 - MemberDecorate 573(Block) 4 Offset 24 - MemberDecorate 573(Block) 5 Offset 28 - MemberDecorate 573(Block) 6 Offset 32 - MemberDecorate 573(Block) 7 Offset 40 - MemberDecorate 573(Block) 8 Offset 48 - MemberDecorate 573(Block) 9 Offset 56 - MemberDecorate 573(Block) 10 Offset 64 - MemberDecorate 573(Block) 11 Offset 80 - MemberDecorate 573(Block) 12 Offset 96 - MemberDecorate 573(Block) 13 Offset 104 - MemberDecorate 573(Block) 14 Offset 112 - MemberDecorate 573(Block) 15 Offset 128 - Decorate 573(Block) Block - Decorate 575(block) DescriptorSet 0 - Decorate 575(block) Binding 1 + MemberDecorate 564(Block) 0 Offset 0 + MemberDecorate 564(Block) 1 Offset 4 + MemberDecorate 564(Block) 2 Offset 8 + MemberDecorate 564(Block) 3 Offset 16 + MemberDecorate 564(Block) 4 Offset 24 + MemberDecorate 564(Block) 5 Offset 28 + MemberDecorate 564(Block) 6 Offset 32 + MemberDecorate 564(Block) 7 Offset 40 + MemberDecorate 564(Block) 8 Offset 48 + MemberDecorate 564(Block) 9 Offset 56 + MemberDecorate 564(Block) 10 Offset 64 + MemberDecorate 564(Block) 11 Offset 80 + MemberDecorate 564(Block) 12 Offset 96 + MemberDecorate 564(Block) 13 Offset 104 + MemberDecorate 564(Block) 14 Offset 112 + MemberDecorate 564(Block) 15 Offset 128 + Decorate 564(Block) Block + Decorate 566(block) DescriptorSet 0 + Decorate 566(block) Binding 1 2: TypeVoid 3: TypeFunction 2 16: TypeInt 64 1 @@ -249,32 +249,32 @@ spv.explicittypes.frag 372: 91(int16_t) Constant 1 373:145(i16vec2) ConstantComposite 371 371 374:145(i16vec2) ConstantComposite 372 372 - 467: 29(int) Constant 1 - 468: 148(ivec2) ConstantComposite 30 30 - 469: 148(ivec2) ConstantComposite 467 467 - 472: 19(int) Constant 0 - 473: 19(int) Constant 1 - 474: 154(ivec2) ConstantComposite 472 472 - 475: 154(ivec2) ConstantComposite 473 473 - 550: 16(int64_t) Constant 0 0 - 551: 16(int64_t) Constant 1 0 - 552:162(i64vec2) ConstantComposite 550 550 - 553:162(i64vec2) ConstantComposite 551 551 - 556: 38(int64_t) Constant 0 0 - 557: 38(int64_t) Constant 1 0 - 558:167(i64vec2) ConstantComposite 556 556 - 559:167(i64vec2) ConstantComposite 557 557 - 565: TypeVector 77(int16_t) 3 - 566: TypeVector 77(int16_t) 4 - 567: TypeVector 91(int16_t) 3 - 568: TypeVector 91(int16_t) 4 - 569: TypeVector 29(int) 3 - 570: TypeVector 29(int) 4 - 571: TypeVector 19(int) 3 - 572: TypeVector 19(int) 4 - 573(Block): TypeStruct 77(int16_t) 139(i16vec2) 565(i16vec3) 566(i16vec4) 91(int16_t) 145(i16vec2) 567(i16vec3) 568(i16vec4) 29(int) 148(ivec2) 569(ivec3) 570(ivec4) 19(int) 154(ivec2) 571(ivec3) 572(ivec4) - 574: TypePointer Uniform 573(Block) - 575(block): 574(ptr) Variable Uniform + 461: 29(int) Constant 1 + 462: 148(ivec2) ConstantComposite 30 30 + 463: 148(ivec2) ConstantComposite 461 461 + 466: 19(int) Constant 0 + 467: 19(int) Constant 1 + 468: 154(ivec2) ConstantComposite 466 466 + 469: 154(ivec2) ConstantComposite 467 467 + 541: 16(int64_t) Constant 0 0 + 542: 16(int64_t) Constant 1 0 + 543:162(i64vec2) ConstantComposite 541 541 + 544:162(i64vec2) ConstantComposite 542 542 + 547: 38(int64_t) Constant 0 0 + 548: 38(int64_t) Constant 1 0 + 549:167(i64vec2) ConstantComposite 547 547 + 550:167(i64vec2) ConstantComposite 548 548 + 556: TypeVector 77(int16_t) 3 + 557: TypeVector 77(int16_t) 4 + 558: TypeVector 91(int16_t) 3 + 559: TypeVector 91(int16_t) 4 + 560: TypeVector 29(int) 3 + 561: TypeVector 29(int) 4 + 562: TypeVector 19(int) 3 + 563: TypeVector 19(int) 4 + 564(Block): TypeStruct 77(int16_t) 139(i16vec2) 556(i16vec3) 557(i16vec4) 91(int16_t) 145(i16vec2) 558(i16vec3) 559(i16vec4) 29(int) 148(ivec2) 560(ivec3) 561(ivec4) 19(int) 154(ivec2) 562(ivec3) 563(ivec4) + 565: TypePointer Uniform 564(Block) + 566(block): 565(ptr) Variable Uniform 4(main): 2 Function None 3 5: Label Return @@ -649,10 +649,10 @@ spv.explicittypes.frag 399(f64v): 194(ptr) Variable Function 406(i8v): 135(ptr) Variable Function 412(i16v): 140(ptr) Variable Function - 429(u8v): 132(ptr) Variable Function - 435(u16v): 221(ptr) Variable Function - 452(f16v): 182(ptr) Variable Function - 465(bv): 251(ptr) Variable Function + 426(u8v): 132(ptr) Variable Function + 432(u16v): 221(ptr) Variable Function + 446(f16v): 182(ptr) Variable Function + 459(bv): 251(ptr) Variable Function 382: 148(ivec2) Load 381(i32v) 383: 154(ivec2) Bitcast 382 Store 380(u32v) 383 @@ -697,186 +697,177 @@ spv.explicittypes.frag 417:139(i16vec2) Bitcast 416 Store 412(i16v) 417 418: 148(ivec2) Load 381(i32v) - 419: 29(int) CompositeExtract 418 0 - 420: 29(int) CompositeExtract 418 1 - 421: 148(ivec2) CompositeConstruct 419 420 - Store 381(i32v) 421 - 422: 154(ivec2) Load 380(u32v) - 423: 148(ivec2) Bitcast 422 - Store 381(i32v) 423 - 424: 148(ivec2) Load 381(i32v) - 425:162(i64vec2) SConvert 424 + Store 381(i32v) 418 + 419: 154(ivec2) Load 380(u32v) + 420: 148(ivec2) Bitcast 419 + Store 381(i32v) 420 + 421: 148(ivec2) Load 381(i32v) + 422:162(i64vec2) SConvert 421 + Store 384(i64v) 422 + 423: 154(ivec2) Load 380(u32v) + 424:167(i64vec2) UConvert 423 + 425:162(i64vec2) Bitcast 424 Store 384(i64v) 425 - 426: 154(ivec2) Load 380(u32v) - 427:167(i64vec2) UConvert 426 - 428:162(i64vec2) Bitcast 427 - Store 384(i64v) 428 - 430: 148(ivec2) Load 381(i32v) - 431: 134(i8vec2) SConvert 430 - 432: 131(i8vec2) Bitcast 431 - Store 429(u8v) 432 - 433: 154(ivec2) Load 380(u32v) - 434: 131(i8vec2) UConvert 433 - Store 429(u8v) 434 - 436: 148(ivec2) Load 381(i32v) - 437:139(i16vec2) SConvert 436 - 438:145(i16vec2) Bitcast 437 - Store 435(u16v) 438 - 439: 154(ivec2) Load 380(u32v) - 440:145(i16vec2) UConvert 439 - Store 435(u16v) 440 + 427: 148(ivec2) Load 381(i32v) + 428: 134(i8vec2) SConvert 427 + 429: 131(i8vec2) Bitcast 428 + Store 426(u8v) 429 + 430: 154(ivec2) Load 380(u32v) + 431: 131(i8vec2) UConvert 430 + Store 426(u8v) 431 + 433: 148(ivec2) Load 381(i32v) + 434:139(i16vec2) SConvert 433 + 435:145(i16vec2) Bitcast 434 + Store 432(u16v) 435 + 436: 154(ivec2) Load 380(u32v) + 437:145(i16vec2) UConvert 436 + Store 432(u16v) 437 + 438: 148(ivec2) Load 381(i32v) + 439: 154(ivec2) Bitcast 438 + Store 380(u32v) 439 + 440: 154(ivec2) Load 380(u32v) + Store 380(u32v) 440 441: 148(ivec2) Load 381(i32v) - 442: 154(ivec2) Bitcast 441 - Store 380(u32v) 442 - 443: 154(ivec2) Load 380(u32v) - 444: 19(int) CompositeExtract 443 0 - 445: 19(int) CompositeExtract 443 1 - 446: 154(ivec2) CompositeConstruct 444 445 - Store 380(u32v) 446 + 442:162(i64vec2) SConvert 441 + 443:167(i64vec2) Bitcast 442 + Store 387(u64v) 443 + 444: 154(ivec2) Load 380(u32v) + 445:167(i64vec2) UConvert 444 + Store 387(u64v) 445 447: 148(ivec2) Load 381(i32v) - 448:162(i64vec2) SConvert 447 - 449:167(i64vec2) Bitcast 448 - Store 387(u64v) 449 - 450: 154(ivec2) Load 380(u32v) - 451:167(i64vec2) UConvert 450 - Store 387(u64v) 451 - 453: 148(ivec2) Load 381(i32v) - 454:181(f16vec2) ConvertSToF 453 - Store 452(f16v) 454 - 455: 148(ivec2) Load 381(i32v) - 456: 187(fvec2) ConvertSToF 455 + 448:181(f16vec2) ConvertSToF 447 + Store 446(f16v) 448 + 449: 148(ivec2) Load 381(i32v) + 450: 187(fvec2) ConvertSToF 449 + Store 396(f32v) 450 + 451: 148(ivec2) Load 381(i32v) + 452:193(f64vec2) ConvertSToF 451 + Store 399(f64v) 452 + 453: 154(ivec2) Load 380(u32v) + 454:181(f16vec2) ConvertUToF 453 + Store 446(f16v) 454 + 455: 154(ivec2) Load 380(u32v) + 456: 187(fvec2) ConvertUToF 455 Store 396(f32v) 456 - 457: 148(ivec2) Load 381(i32v) - 458:193(f64vec2) ConvertSToF 457 + 457: 154(ivec2) Load 380(u32v) + 458:193(f64vec2) ConvertUToF 457 Store 399(f64v) 458 - 459: 154(ivec2) Load 380(u32v) - 460:181(f16vec2) ConvertUToF 459 - Store 452(f16v) 460 - 461: 154(ivec2) Load 380(u32v) - 462: 187(fvec2) ConvertUToF 461 - Store 396(f32v) 462 - 463: 154(ivec2) Load 380(u32v) - 464:193(f64vec2) ConvertUToF 463 - Store 399(f64v) 464 - 466: 250(bvec2) Load 465(bv) - 470: 148(ivec2) Select 466 469 468 - Store 381(i32v) 470 - 471: 250(bvec2) Load 465(bv) - 476: 154(ivec2) Select 471 475 474 - Store 380(u32v) 476 - 477: 148(ivec2) Load 381(i32v) - 478: 250(bvec2) INotEqual 477 474 - Store 465(bv) 478 - 479: 154(ivec2) Load 380(u32v) - 480: 250(bvec2) INotEqual 479 474 - Store 465(bv) 480 + 460: 250(bvec2) Load 459(bv) + 464: 148(ivec2) Select 460 463 462 + Store 381(i32v) 464 + 465: 250(bvec2) Load 459(bv) + 470: 154(ivec2) Select 465 469 468 + Store 380(u32v) 470 + 471: 148(ivec2) Load 381(i32v) + 472: 250(bvec2) INotEqual 471 468 + Store 459(bv) 472 + 473: 154(ivec2) Load 380(u32v) + 474: 250(bvec2) INotEqual 473 468 + Store 459(bv) 474 Return FunctionEnd 14(typeCast64(): 2 Function None 3 15: Label - 481(u64v): 168(ptr) Variable Function - 482(i64v): 163(ptr) Variable Function - 485(f64v): 194(ptr) Variable Function - 490(i8v): 135(ptr) Variable Function - 496(i16v): 140(ptr) Variable Function - 502(i32v): 149(ptr) Variable Function - 510(u8v): 132(ptr) Variable Function - 516(u16v): 221(ptr) Variable Function - 522(u32v): 157(ptr) Variable Function - 534(f16v): 182(ptr) Variable Function - 537(f32v): 188(ptr) Variable Function - 548(bv): 251(ptr) Variable Function - 483:162(i64vec2) Load 482(i64v) - 484:167(i64vec2) Bitcast 483 - Store 481(u64v) 484 - 486:162(i64vec2) Load 482(i64v) - 487:193(f64vec2) ConvertSToF 486 - Store 485(f64v) 487 - 488:167(i64vec2) Load 481(u64v) - 489:193(f64vec2) ConvertUToF 488 - Store 485(f64v) 489 - 491:162(i64vec2) Load 482(i64v) - 492: 134(i8vec2) SConvert 491 - Store 490(i8v) 492 - 493:167(i64vec2) Load 481(u64v) - 494: 131(i8vec2) UConvert 493 - 495: 134(i8vec2) Bitcast 494 - Store 490(i8v) 495 - 497:162(i64vec2) Load 482(i64v) - 498:139(i16vec2) SConvert 497 - Store 496(i16v) 498 - 499:167(i64vec2) Load 481(u64v) - 500:145(i16vec2) UConvert 499 - 501:139(i16vec2) Bitcast 500 - Store 496(i16v) 501 - 503:162(i64vec2) Load 482(i64v) - 504: 148(ivec2) SConvert 503 - Store 502(i32v) 504 - 505:167(i64vec2) Load 481(u64v) - 506: 154(ivec2) UConvert 505 - 507: 148(ivec2) Bitcast 506 - Store 502(i32v) 507 - 508:167(i64vec2) Load 481(u64v) - 509:162(i64vec2) Bitcast 508 - Store 482(i64v) 509 - 511:162(i64vec2) Load 482(i64v) - 512: 134(i8vec2) SConvert 511 - 513: 131(i8vec2) Bitcast 512 - Store 510(u8v) 513 - 514:167(i64vec2) Load 481(u64v) - 515: 131(i8vec2) UConvert 514 - Store 510(u8v) 515 - 517:162(i64vec2) Load 482(i64v) - 518:139(i16vec2) SConvert 517 - 519:145(i16vec2) Bitcast 518 - Store 516(u16v) 519 - 520:167(i64vec2) Load 481(u64v) - 521:145(i16vec2) UConvert 520 - Store 516(u16v) 521 - 523:162(i64vec2) Load 482(i64v) - 524: 148(ivec2) SConvert 523 - 525: 154(ivec2) Bitcast 524 - Store 522(u32v) 525 - 526:167(i64vec2) Load 481(u64v) - 527: 154(ivec2) UConvert 526 - Store 522(u32v) 527 - 528:162(i64vec2) Load 482(i64v) - 529:167(i64vec2) Bitcast 528 - Store 481(u64v) 529 - 530:167(i64vec2) Load 481(u64v) - 531: 38(int64_t) CompositeExtract 530 0 - 532: 38(int64_t) CompositeExtract 530 1 - 533:167(i64vec2) CompositeConstruct 531 532 - Store 481(u64v) 533 - 535:162(i64vec2) Load 482(i64v) - 536:181(f16vec2) ConvertSToF 535 - Store 534(f16v) 536 - 538:162(i64vec2) Load 482(i64v) - 539: 187(fvec2) ConvertSToF 538 - Store 537(f32v) 539 - 540:162(i64vec2) Load 482(i64v) - 541:193(f64vec2) ConvertSToF 540 - Store 485(f64v) 541 - 542:167(i64vec2) Load 481(u64v) - 543:181(f16vec2) ConvertUToF 542 - Store 534(f16v) 543 - 544:167(i64vec2) Load 481(u64v) - 545: 187(fvec2) ConvertUToF 544 - Store 537(f32v) 545 - 546:167(i64vec2) Load 481(u64v) - 547:193(f64vec2) ConvertUToF 546 - Store 485(f64v) 547 - 549: 250(bvec2) Load 548(bv) - 554:162(i64vec2) Select 549 553 552 - Store 482(i64v) 554 - 555: 250(bvec2) Load 548(bv) - 560:167(i64vec2) Select 555 559 558 - Store 481(u64v) 560 - 561:162(i64vec2) Load 482(i64v) - 562: 250(bvec2) INotEqual 561 558 - Store 548(bv) 562 - 563:167(i64vec2) Load 481(u64v) - 564: 250(bvec2) INotEqual 563 558 - Store 548(bv) 564 + 475(u64v): 168(ptr) Variable Function + 476(i64v): 163(ptr) Variable Function + 479(f64v): 194(ptr) Variable Function + 484(i8v): 135(ptr) Variable Function + 490(i16v): 140(ptr) Variable Function + 496(i32v): 149(ptr) Variable Function + 504(u8v): 132(ptr) Variable Function + 510(u16v): 221(ptr) Variable Function + 516(u32v): 157(ptr) Variable Function + 525(f16v): 182(ptr) Variable Function + 528(f32v): 188(ptr) Variable Function + 539(bv): 251(ptr) Variable Function + 477:162(i64vec2) Load 476(i64v) + 478:167(i64vec2) Bitcast 477 + Store 475(u64v) 478 + 480:162(i64vec2) Load 476(i64v) + 481:193(f64vec2) ConvertSToF 480 + Store 479(f64v) 481 + 482:167(i64vec2) Load 475(u64v) + 483:193(f64vec2) ConvertUToF 482 + Store 479(f64v) 483 + 485:162(i64vec2) Load 476(i64v) + 486: 134(i8vec2) SConvert 485 + Store 484(i8v) 486 + 487:167(i64vec2) Load 475(u64v) + 488: 131(i8vec2) UConvert 487 + 489: 134(i8vec2) Bitcast 488 + Store 484(i8v) 489 + 491:162(i64vec2) Load 476(i64v) + 492:139(i16vec2) SConvert 491 + Store 490(i16v) 492 + 493:167(i64vec2) Load 475(u64v) + 494:145(i16vec2) UConvert 493 + 495:139(i16vec2) Bitcast 494 + Store 490(i16v) 495 + 497:162(i64vec2) Load 476(i64v) + 498: 148(ivec2) SConvert 497 + Store 496(i32v) 498 + 499:167(i64vec2) Load 475(u64v) + 500: 154(ivec2) UConvert 499 + 501: 148(ivec2) Bitcast 500 + Store 496(i32v) 501 + 502:167(i64vec2) Load 475(u64v) + 503:162(i64vec2) Bitcast 502 + Store 476(i64v) 503 + 505:162(i64vec2) Load 476(i64v) + 506: 134(i8vec2) SConvert 505 + 507: 131(i8vec2) Bitcast 506 + Store 504(u8v) 507 + 508:167(i64vec2) Load 475(u64v) + 509: 131(i8vec2) UConvert 508 + Store 504(u8v) 509 + 511:162(i64vec2) Load 476(i64v) + 512:139(i16vec2) SConvert 511 + 513:145(i16vec2) Bitcast 512 + Store 510(u16v) 513 + 514:167(i64vec2) Load 475(u64v) + 515:145(i16vec2) UConvert 514 + Store 510(u16v) 515 + 517:162(i64vec2) Load 476(i64v) + 518: 148(ivec2) SConvert 517 + 519: 154(ivec2) Bitcast 518 + Store 516(u32v) 519 + 520:167(i64vec2) Load 475(u64v) + 521: 154(ivec2) UConvert 520 + Store 516(u32v) 521 + 522:162(i64vec2) Load 476(i64v) + 523:167(i64vec2) Bitcast 522 + Store 475(u64v) 523 + 524:167(i64vec2) Load 475(u64v) + Store 475(u64v) 524 + 526:162(i64vec2) Load 476(i64v) + 527:181(f16vec2) ConvertSToF 526 + Store 525(f16v) 527 + 529:162(i64vec2) Load 476(i64v) + 530: 187(fvec2) ConvertSToF 529 + Store 528(f32v) 530 + 531:162(i64vec2) Load 476(i64v) + 532:193(f64vec2) ConvertSToF 531 + Store 479(f64v) 532 + 533:167(i64vec2) Load 475(u64v) + 534:181(f16vec2) ConvertUToF 533 + Store 525(f16v) 534 + 535:167(i64vec2) Load 475(u64v) + 536: 187(fvec2) ConvertUToF 535 + Store 528(f32v) 536 + 537:167(i64vec2) Load 475(u64v) + 538:193(f64vec2) ConvertUToF 537 + Store 479(f64v) 538 + 540: 250(bvec2) Load 539(bv) + 545:162(i64vec2) Select 540 544 543 + Store 476(i64v) 545 + 546: 250(bvec2) Load 539(bv) + 551:167(i64vec2) Select 546 550 549 + Store 475(u64v) 551 + 552:162(i64vec2) Load 476(i64v) + 553: 250(bvec2) INotEqual 552 549 + Store 539(bv) 553 + 554:167(i64vec2) Load 475(u64v) + 555: 250(bvec2) INotEqual 554 549 + Store 539(bv) 555 Return FunctionEnd diff --git a/Test/baseResults/spv.float16.frag.out b/Test/baseResults/spv.float16.frag.out index 2cce81550..5c33e2ceb 100644 --- a/Test/baseResults/spv.float16.frag.out +++ b/Test/baseResults/spv.float16.frag.out @@ -2,7 +2,7 @@ spv.float16.frag Validation failed // Module Version 10000 // Generated by (magic number): 8000b -// Id's are bound by 542 +// Id's are bound by 538 Capability Shader Capability Float16 @@ -17,7 +17,7 @@ Validation failed Extension "SPV_KHR_16bit_storage" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 465 + EntryPoint Fragment 4 "main" 461 ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_AMD_gpu_shader_half_float" @@ -43,124 +43,124 @@ Validation failed Name 156 "bv" Name 167 "fv" Name 175 "dv" - Name 186 "iv" - Name 193 "uv" - Name 201 "i64v" - Name 209 "u64v" - Name 216 "f16v2" - Name 217 "f16v1" - Name 249 "f16v2" - Name 250 "f16v1" - Name 266 "f16v2" - Name 267 "f16v1" - Name 288 "f16" - Name 292 "f16v3" - Name 332 "bv" - Name 353 "b" - Name 363 "iv" - Name 364 "ResType" - Name 372 "u" - Name 373 "f16v" - Name 378 "f16" - Name 379 "f16v1" - Name 383 "f16v2" - Name 389 "f16v3" - Name 408 "f16m3" - Name 409 "f16m1" - Name 411 "f16m2" - Name 420 "f16v1" - Name 422 "f16v2" - Name 427 "f16m4" - Name 430 "f16" - Name 433 "f16m5" - Name 438 "f16m6" - Name 439 "f16m7" - Name 442 "bv" - Name 443 "f16v1" - Name 445 "f16v2" - Name 463 "f16v" - Name 465 "if16v" - Name 522 "S" - MemberName 522(S) 0 "x" - MemberName 522(S) 1 "y" - MemberName 522(S) 2 "z" - Name 524 "B1" - MemberName 524(B1) 0 "a" - MemberName 524(B1) 1 "b" - MemberName 524(B1) 2 "c" - MemberName 524(B1) 3 "d" - MemberName 524(B1) 4 "e" - MemberName 524(B1) 5 "f" - MemberName 524(B1) 6 "g" - MemberName 524(B1) 7 "h" - Name 526 "" - Name 529 "S" - MemberName 529(S) 0 "x" - MemberName 529(S) 1 "y" - MemberName 529(S) 2 "z" - Name 531 "B2" - MemberName 531(B2) 0 "o" - MemberName 531(B2) 1 "p" - MemberName 531(B2) 2 "q" - MemberName 531(B2) 3 "r" - MemberName 531(B2) 4 "s" - MemberName 531(B2) 5 "t" - MemberName 531(B2) 6 "u" - MemberName 531(B2) 7 "v" - Name 533 "" - Name 534 "sf16" - Name 535 "sf" - Name 536 "sd" - Name 537 "f16_to_f" - Name 539 "f16_to_d" - Name 540 "f_to_f16" - Name 541 "d_to_f16" - Decorate 465(if16v) Location 0 - Decorate 520 ArrayStride 16 - Decorate 521 ArrayStride 32 - MemberDecorate 522(S) 0 Offset 0 - MemberDecorate 522(S) 1 Offset 4 - MemberDecorate 522(S) 2 Offset 8 - Decorate 523 ArrayStride 16 - MemberDecorate 524(B1) 0 Offset 0 - MemberDecorate 524(B1) 1 Offset 4 - MemberDecorate 524(B1) 2 Offset 8 - MemberDecorate 524(B1) 3 Offset 16 - MemberDecorate 524(B1) 4 ColMajor - MemberDecorate 524(B1) 4 Offset 48 - MemberDecorate 524(B1) 4 MatrixStride 16 - MemberDecorate 524(B1) 5 ColMajor - MemberDecorate 524(B1) 5 Offset 80 - MemberDecorate 524(B1) 5 MatrixStride 16 - MemberDecorate 524(B1) 6 Offset 144 - MemberDecorate 524(B1) 7 Offset 160 - Decorate 524(B1) Block - Decorate 526 DescriptorSet 0 - Decorate 526 Binding 0 - Decorate 527 ArrayStride 2 - Decorate 528 ArrayStride 12 - MemberDecorate 529(S) 0 Offset 0 - MemberDecorate 529(S) 1 Offset 4 - MemberDecorate 529(S) 2 Offset 8 - Decorate 530 ArrayStride 16 - MemberDecorate 531(B2) 0 Offset 0 - MemberDecorate 531(B2) 1 Offset 4 - MemberDecorate 531(B2) 2 Offset 8 - MemberDecorate 531(B2) 3 Offset 14 - MemberDecorate 531(B2) 4 RowMajor - MemberDecorate 531(B2) 4 Offset 20 - MemberDecorate 531(B2) 4 MatrixStride 4 - MemberDecorate 531(B2) 5 RowMajor - MemberDecorate 531(B2) 5 Offset 32 - MemberDecorate 531(B2) 5 MatrixStride 4 - MemberDecorate 531(B2) 6 Offset 56 - MemberDecorate 531(B2) 7 Offset 72 - Decorate 531(B2) BufferBlock - Decorate 533 DescriptorSet 0 - Decorate 533 Binding 0 - Decorate 534(sf16) SpecId 100 - Decorate 535(sf) SpecId 101 - Decorate 536(sd) SpecId 102 + Name 182 "iv" + Name 189 "uv" + Name 197 "i64v" + Name 205 "u64v" + Name 212 "f16v2" + Name 213 "f16v1" + Name 245 "f16v2" + Name 246 "f16v1" + Name 262 "f16v2" + Name 263 "f16v1" + Name 284 "f16" + Name 288 "f16v3" + Name 328 "bv" + Name 349 "b" + Name 359 "iv" + Name 360 "ResType" + Name 368 "u" + Name 369 "f16v" + Name 374 "f16" + Name 375 "f16v1" + Name 379 "f16v2" + Name 385 "f16v3" + Name 404 "f16m3" + Name 405 "f16m1" + Name 407 "f16m2" + Name 416 "f16v1" + Name 418 "f16v2" + Name 423 "f16m4" + Name 426 "f16" + Name 429 "f16m5" + Name 434 "f16m6" + Name 435 "f16m7" + Name 438 "bv" + Name 439 "f16v1" + Name 441 "f16v2" + Name 459 "f16v" + Name 461 "if16v" + Name 518 "S" + MemberName 518(S) 0 "x" + MemberName 518(S) 1 "y" + MemberName 518(S) 2 "z" + Name 520 "B1" + MemberName 520(B1) 0 "a" + MemberName 520(B1) 1 "b" + MemberName 520(B1) 2 "c" + MemberName 520(B1) 3 "d" + MemberName 520(B1) 4 "e" + MemberName 520(B1) 5 "f" + MemberName 520(B1) 6 "g" + MemberName 520(B1) 7 "h" + Name 522 "" + Name 525 "S" + MemberName 525(S) 0 "x" + MemberName 525(S) 1 "y" + MemberName 525(S) 2 "z" + Name 527 "B2" + MemberName 527(B2) 0 "o" + MemberName 527(B2) 1 "p" + MemberName 527(B2) 2 "q" + MemberName 527(B2) 3 "r" + MemberName 527(B2) 4 "s" + MemberName 527(B2) 5 "t" + MemberName 527(B2) 6 "u" + MemberName 527(B2) 7 "v" + Name 529 "" + Name 530 "sf16" + Name 531 "sf" + Name 532 "sd" + Name 533 "f16_to_f" + Name 535 "f16_to_d" + Name 536 "f_to_f16" + Name 537 "d_to_f16" + Decorate 461(if16v) Location 0 + Decorate 516 ArrayStride 16 + Decorate 517 ArrayStride 32 + MemberDecorate 518(S) 0 Offset 0 + MemberDecorate 518(S) 1 Offset 4 + MemberDecorate 518(S) 2 Offset 8 + Decorate 519 ArrayStride 16 + MemberDecorate 520(B1) 0 Offset 0 + MemberDecorate 520(B1) 1 Offset 4 + MemberDecorate 520(B1) 2 Offset 8 + MemberDecorate 520(B1) 3 Offset 16 + MemberDecorate 520(B1) 4 ColMajor + MemberDecorate 520(B1) 4 Offset 48 + MemberDecorate 520(B1) 4 MatrixStride 16 + MemberDecorate 520(B1) 5 ColMajor + MemberDecorate 520(B1) 5 Offset 80 + MemberDecorate 520(B1) 5 MatrixStride 16 + MemberDecorate 520(B1) 6 Offset 144 + MemberDecorate 520(B1) 7 Offset 160 + Decorate 520(B1) Block + Decorate 522 DescriptorSet 0 + Decorate 522 Binding 0 + Decorate 523 ArrayStride 2 + Decorate 524 ArrayStride 12 + MemberDecorate 525(S) 0 Offset 0 + MemberDecorate 525(S) 1 Offset 4 + MemberDecorate 525(S) 2 Offset 8 + Decorate 526 ArrayStride 16 + MemberDecorate 527(B2) 0 Offset 0 + MemberDecorate 527(B2) 1 Offset 4 + MemberDecorate 527(B2) 2 Offset 8 + MemberDecorate 527(B2) 3 Offset 14 + MemberDecorate 527(B2) 4 RowMajor + MemberDecorate 527(B2) 4 Offset 20 + MemberDecorate 527(B2) 4 MatrixStride 4 + MemberDecorate 527(B2) 5 RowMajor + MemberDecorate 527(B2) 5 Offset 32 + MemberDecorate 527(B2) 5 MatrixStride 4 + MemberDecorate 527(B2) 6 Offset 56 + MemberDecorate 527(B2) 7 Offset 72 + Decorate 527(B2) BufferBlock + Decorate 529 DescriptorSet 0 + Decorate 529 Binding 0 + Decorate 530(sf16) SpecId 100 + Decorate 531(sf) SpecId 101 + Decorate 532(sd) SpecId 102 2: TypeVoid 3: TypeFunction 2 28: TypeFloat 16 @@ -192,58 +192,58 @@ Validation failed 172: TypeFloat 64 173: TypeVector 172(float64_t) 3 174: TypePointer Function 173(f64vec3) - 183: TypeInt 32 1 - 184: TypeVector 183(int) 3 - 185: TypePointer Function 184(ivec3) - 191: TypeVector 33(int) 3 - 192: TypePointer Function 191(ivec3) - 198: TypeInt 64 1 - 199: TypeVector 198(int64_t) 3 - 200: TypePointer Function 199(i64vec3) - 206: TypeInt 64 0 - 207: TypeVector 206(int64_t) 3 - 208: TypePointer Function 207(i64vec3) - 214: TypeVector 28(float16_t) 4 - 215: TypePointer Function 214(f16vec4) - 364(ResType): TypeStruct 151(f16vec3) 184(ivec3) - 371: TypePointer Function 33(int) - 406: TypeMatrix 151(f16vec3) 2 - 407: TypePointer Function 406 - 425: TypeMatrix 29(f16vec2) 3 - 426: TypePointer Function 425 - 431: TypeMatrix 151(f16vec3) 3 - 432: TypePointer Function 431 - 436: TypeMatrix 214(f16vec4) 4 - 437: TypePointer Function 436 - 464: TypePointer Input 151(f16vec3) - 465(if16v): 464(ptr) Variable Input - 466: TypePointer Input 28(float16_t) - 509: 183(int) Constant 1 - 516:28(float16_t) Constant 14336 - 517: 29(f16vec2) ConstantComposite 516 516 - 519: 33(int) Constant 2 - 520: TypeArray 28(float16_t) 519 - 521: TypeArray 406 519 - 522(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) - 523: TypeArray 522(S) 519 - 524(B1): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 520 406 521 522(S) 523 - 525: TypePointer Uniform 524(B1) - 526: 525(ptr) Variable Uniform - 527: TypeArray 28(float16_t) 519 - 528: TypeArray 406 519 - 529(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) - 530: TypeArray 529(S) 519 - 531(B2): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 527 406 528 529(S) 530 - 532: TypePointer Uniform 531(B2) - 533: 532(ptr) Variable Uniform - 534(sf16):28(float16_t) SpecConstant 12288 - 535(sf): 164(float) SpecConstant 1048576000 - 536(sd):172(float64_t) SpecConstant 0 1071644672 - 537(f16_to_f): 164(float) SpecConstantOp 115 534(sf16) - 538: 164(float) SpecConstantOp 115 534(sf16) - 539(f16_to_d):172(float64_t) SpecConstantOp 115 538 - 540(f_to_f16):28(float16_t) SpecConstantOp 115 535(sf) - 541(d_to_f16):28(float16_t) SpecConstantOp 115 536(sd) + 179: TypeInt 32 1 + 180: TypeVector 179(int) 3 + 181: TypePointer Function 180(ivec3) + 187: TypeVector 33(int) 3 + 188: TypePointer Function 187(ivec3) + 194: TypeInt 64 1 + 195: TypeVector 194(int64_t) 3 + 196: TypePointer Function 195(i64vec3) + 202: TypeInt 64 0 + 203: TypeVector 202(int64_t) 3 + 204: TypePointer Function 203(i64vec3) + 210: TypeVector 28(float16_t) 4 + 211: TypePointer Function 210(f16vec4) + 360(ResType): TypeStruct 151(f16vec3) 180(ivec3) + 367: TypePointer Function 33(int) + 402: TypeMatrix 151(f16vec3) 2 + 403: TypePointer Function 402 + 421: TypeMatrix 29(f16vec2) 3 + 422: TypePointer Function 421 + 427: TypeMatrix 151(f16vec3) 3 + 428: TypePointer Function 427 + 432: TypeMatrix 210(f16vec4) 4 + 433: TypePointer Function 432 + 460: TypePointer Input 151(f16vec3) + 461(if16v): 460(ptr) Variable Input + 462: TypePointer Input 28(float16_t) + 505: 179(int) Constant 1 + 512:28(float16_t) Constant 14336 + 513: 29(f16vec2) ConstantComposite 512 512 + 515: 33(int) Constant 2 + 516: TypeArray 28(float16_t) 515 + 517: TypeArray 402 515 + 518(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) + 519: TypeArray 518(S) 515 + 520(B1): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 516 402 517 518(S) 519 + 521: TypePointer Uniform 520(B1) + 522: 521(ptr) Variable Uniform + 523: TypeArray 28(float16_t) 515 + 524: TypeArray 402 515 + 525(S): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) + 526: TypeArray 525(S) 515 + 527(B2): TypeStruct 28(float16_t) 29(f16vec2) 151(f16vec3) 523 402 524 525(S) 526 + 528: TypePointer Uniform 527(B2) + 529: 528(ptr) Variable Uniform + 530(sf16):28(float16_t) SpecConstant 12288 + 531(sf): 164(float) SpecConstant 1048576000 + 532(sd):172(float64_t) SpecConstant 0 1071644672 + 533(f16_to_f): 164(float) SpecConstantOp 115 530(sf16) + 534: 164(float) SpecConstantOp 115 530(sf16) + 535(f16_to_d):172(float64_t) SpecConstantOp 115 534 + 536(f_to_f16):28(float16_t) SpecConstantOp 115 531(sf) + 537(d_to_f16):28(float16_t) SpecConstantOp 115 532(sd) 4(main): 2 Function None 3 5: Label Return @@ -396,10 +396,10 @@ Validation failed 156(bv): 155(ptr) Variable Function 167(fv): 166(ptr) Variable Function 175(dv): 174(ptr) Variable Function - 186(iv): 185(ptr) Variable Function - 193(uv): 192(ptr) Variable Function - 201(i64v): 200(ptr) Variable Function - 209(u64v): 208(ptr) Variable Function + 182(iv): 181(ptr) Variable Function + 189(uv): 188(ptr) Variable Function + 197(i64v): 196(ptr) Variable Function + 205(u64v): 204(ptr) Variable Function 157: 154(bvec3) Load 156(bv) 161:151(f16vec3) Select 157 160 159 Store 153(f16v) 161 @@ -416,442 +416,438 @@ Validation failed 177:151(f16vec3) FConvert 176 Store 153(f16v) 177 178:173(f64vec3) Load 175(dv) - 179:172(float64_t) CompositeExtract 178 0 - 180:172(float64_t) CompositeExtract 178 1 - 181:172(float64_t) CompositeExtract 178 2 - 182:173(f64vec3) CompositeConstruct 179 180 181 - Store 175(dv) 182 - 187: 184(ivec3) Load 186(iv) - 188:151(f16vec3) ConvertSToF 187 - Store 153(f16v) 188 - 189:151(f16vec3) Load 153(f16v) - 190: 184(ivec3) ConvertFToS 189 - Store 186(iv) 190 - 194: 191(ivec3) Load 193(uv) - 195:151(f16vec3) ConvertUToF 194 - Store 153(f16v) 195 - 196:151(f16vec3) Load 153(f16v) - 197: 191(ivec3) ConvertFToU 196 - Store 193(uv) 197 - 202:199(i64vec3) Load 201(i64v) - 203:151(f16vec3) ConvertSToF 202 - Store 153(f16v) 203 - 204:151(f16vec3) Load 153(f16v) - 205:199(i64vec3) ConvertFToS 204 - Store 201(i64v) 205 - 210:207(i64vec3) Load 209(u64v) - 211:151(f16vec3) ConvertUToF 210 - Store 153(f16v) 211 - 212:151(f16vec3) Load 153(f16v) - 213:207(i64vec3) ConvertFToU 212 - Store 209(u64v) 213 + Store 175(dv) 178 + 183: 180(ivec3) Load 182(iv) + 184:151(f16vec3) ConvertSToF 183 + Store 153(f16v) 184 + 185:151(f16vec3) Load 153(f16v) + 186: 180(ivec3) ConvertFToS 185 + Store 182(iv) 186 + 190: 187(ivec3) Load 189(uv) + 191:151(f16vec3) ConvertUToF 190 + Store 153(f16v) 191 + 192:151(f16vec3) Load 153(f16v) + 193: 187(ivec3) ConvertFToU 192 + Store 189(uv) 193 + 198:195(i64vec3) Load 197(i64v) + 199:151(f16vec3) ConvertSToF 198 + Store 153(f16v) 199 + 200:151(f16vec3) Load 153(f16v) + 201:195(i64vec3) ConvertFToS 200 + Store 197(i64v) 201 + 206:203(i64vec3) Load 205(u64v) + 207:151(f16vec3) ConvertUToF 206 + Store 153(f16v) 207 + 208:151(f16vec3) Load 153(f16v) + 209:203(i64vec3) ConvertFToU 208 + Store 205(u64v) 209 Return FunctionEnd 12(builtinAngleTrigFuncs(): 2 Function None 3 13: Label - 216(f16v2): 215(ptr) Variable Function - 217(f16v1): 215(ptr) Variable Function - 218:214(f16vec4) Load 217(f16v1) - 219:214(f16vec4) ExtInst 1(GLSL.std.450) 11(Radians) 218 - Store 216(f16v2) 219 - 220:214(f16vec4) Load 217(f16v1) - 221:214(f16vec4) ExtInst 1(GLSL.std.450) 12(Degrees) 220 - Store 216(f16v2) 221 - 222:214(f16vec4) Load 217(f16v1) - 223:214(f16vec4) ExtInst 1(GLSL.std.450) 13(Sin) 222 - Store 216(f16v2) 223 - 224:214(f16vec4) Load 217(f16v1) - 225:214(f16vec4) ExtInst 1(GLSL.std.450) 14(Cos) 224 - Store 216(f16v2) 225 - 226:214(f16vec4) Load 217(f16v1) - 227:214(f16vec4) ExtInst 1(GLSL.std.450) 15(Tan) 226 - Store 216(f16v2) 227 - 228:214(f16vec4) Load 217(f16v1) - 229:214(f16vec4) ExtInst 1(GLSL.std.450) 16(Asin) 228 - Store 216(f16v2) 229 - 230:214(f16vec4) Load 217(f16v1) - 231:214(f16vec4) ExtInst 1(GLSL.std.450) 17(Acos) 230 - Store 216(f16v2) 231 - 232:214(f16vec4) Load 217(f16v1) - 233:214(f16vec4) Load 216(f16v2) - 234:214(f16vec4) ExtInst 1(GLSL.std.450) 25(Atan2) 232 233 - Store 216(f16v2) 234 - 235:214(f16vec4) Load 217(f16v1) - 236:214(f16vec4) ExtInst 1(GLSL.std.450) 18(Atan) 235 - Store 216(f16v2) 236 - 237:214(f16vec4) Load 217(f16v1) - 238:214(f16vec4) ExtInst 1(GLSL.std.450) 19(Sinh) 237 - Store 216(f16v2) 238 - 239:214(f16vec4) Load 217(f16v1) - 240:214(f16vec4) ExtInst 1(GLSL.std.450) 20(Cosh) 239 - Store 216(f16v2) 240 - 241:214(f16vec4) Load 217(f16v1) - 242:214(f16vec4) ExtInst 1(GLSL.std.450) 21(Tanh) 241 - Store 216(f16v2) 242 - 243:214(f16vec4) Load 217(f16v1) - 244:214(f16vec4) ExtInst 1(GLSL.std.450) 22(Asinh) 243 - Store 216(f16v2) 244 - 245:214(f16vec4) Load 217(f16v1) - 246:214(f16vec4) ExtInst 1(GLSL.std.450) 23(Acosh) 245 - Store 216(f16v2) 246 - 247:214(f16vec4) Load 217(f16v1) - 248:214(f16vec4) ExtInst 1(GLSL.std.450) 24(Atanh) 247 - Store 216(f16v2) 248 + 212(f16v2): 211(ptr) Variable Function + 213(f16v1): 211(ptr) Variable Function + 214:210(f16vec4) Load 213(f16v1) + 215:210(f16vec4) ExtInst 1(GLSL.std.450) 11(Radians) 214 + Store 212(f16v2) 215 + 216:210(f16vec4) Load 213(f16v1) + 217:210(f16vec4) ExtInst 1(GLSL.std.450) 12(Degrees) 216 + Store 212(f16v2) 217 + 218:210(f16vec4) Load 213(f16v1) + 219:210(f16vec4) ExtInst 1(GLSL.std.450) 13(Sin) 218 + Store 212(f16v2) 219 + 220:210(f16vec4) Load 213(f16v1) + 221:210(f16vec4) ExtInst 1(GLSL.std.450) 14(Cos) 220 + Store 212(f16v2) 221 + 222:210(f16vec4) Load 213(f16v1) + 223:210(f16vec4) ExtInst 1(GLSL.std.450) 15(Tan) 222 + Store 212(f16v2) 223 + 224:210(f16vec4) Load 213(f16v1) + 225:210(f16vec4) ExtInst 1(GLSL.std.450) 16(Asin) 224 + Store 212(f16v2) 225 + 226:210(f16vec4) Load 213(f16v1) + 227:210(f16vec4) ExtInst 1(GLSL.std.450) 17(Acos) 226 + Store 212(f16v2) 227 + 228:210(f16vec4) Load 213(f16v1) + 229:210(f16vec4) Load 212(f16v2) + 230:210(f16vec4) ExtInst 1(GLSL.std.450) 25(Atan2) 228 229 + Store 212(f16v2) 230 + 231:210(f16vec4) Load 213(f16v1) + 232:210(f16vec4) ExtInst 1(GLSL.std.450) 18(Atan) 231 + Store 212(f16v2) 232 + 233:210(f16vec4) Load 213(f16v1) + 234:210(f16vec4) ExtInst 1(GLSL.std.450) 19(Sinh) 233 + Store 212(f16v2) 234 + 235:210(f16vec4) Load 213(f16v1) + 236:210(f16vec4) ExtInst 1(GLSL.std.450) 20(Cosh) 235 + Store 212(f16v2) 236 + 237:210(f16vec4) Load 213(f16v1) + 238:210(f16vec4) ExtInst 1(GLSL.std.450) 21(Tanh) 237 + Store 212(f16v2) 238 + 239:210(f16vec4) Load 213(f16v1) + 240:210(f16vec4) ExtInst 1(GLSL.std.450) 22(Asinh) 239 + Store 212(f16v2) 240 + 241:210(f16vec4) Load 213(f16v1) + 242:210(f16vec4) ExtInst 1(GLSL.std.450) 23(Acosh) 241 + Store 212(f16v2) 242 + 243:210(f16vec4) Load 213(f16v1) + 244:210(f16vec4) ExtInst 1(GLSL.std.450) 24(Atanh) 243 + Store 212(f16v2) 244 Return FunctionEnd 14(builtinExpFuncs(): 2 Function None 3 15: Label - 249(f16v2): 30(ptr) Variable Function - 250(f16v1): 30(ptr) Variable Function - 251: 29(f16vec2) Load 250(f16v1) - 252: 29(f16vec2) Load 249(f16v2) - 253: 29(f16vec2) ExtInst 1(GLSL.std.450) 26(Pow) 251 252 - Store 249(f16v2) 253 - 254: 29(f16vec2) Load 250(f16v1) - 255: 29(f16vec2) ExtInst 1(GLSL.std.450) 27(Exp) 254 - Store 249(f16v2) 255 - 256: 29(f16vec2) Load 250(f16v1) - 257: 29(f16vec2) ExtInst 1(GLSL.std.450) 28(Log) 256 - Store 249(f16v2) 257 - 258: 29(f16vec2) Load 250(f16v1) - 259: 29(f16vec2) ExtInst 1(GLSL.std.450) 29(Exp2) 258 - Store 249(f16v2) 259 - 260: 29(f16vec2) Load 250(f16v1) - 261: 29(f16vec2) ExtInst 1(GLSL.std.450) 30(Log2) 260 - Store 249(f16v2) 261 - 262: 29(f16vec2) Load 250(f16v1) - 263: 29(f16vec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 262 - Store 249(f16v2) 263 - 264: 29(f16vec2) Load 250(f16v1) - 265: 29(f16vec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 264 - Store 249(f16v2) 265 + 245(f16v2): 30(ptr) Variable Function + 246(f16v1): 30(ptr) Variable Function + 247: 29(f16vec2) Load 246(f16v1) + 248: 29(f16vec2) Load 245(f16v2) + 249: 29(f16vec2) ExtInst 1(GLSL.std.450) 26(Pow) 247 248 + Store 245(f16v2) 249 + 250: 29(f16vec2) Load 246(f16v1) + 251: 29(f16vec2) ExtInst 1(GLSL.std.450) 27(Exp) 250 + Store 245(f16v2) 251 + 252: 29(f16vec2) Load 246(f16v1) + 253: 29(f16vec2) ExtInst 1(GLSL.std.450) 28(Log) 252 + Store 245(f16v2) 253 + 254: 29(f16vec2) Load 246(f16v1) + 255: 29(f16vec2) ExtInst 1(GLSL.std.450) 29(Exp2) 254 + Store 245(f16v2) 255 + 256: 29(f16vec2) Load 246(f16v1) + 257: 29(f16vec2) ExtInst 1(GLSL.std.450) 30(Log2) 256 + Store 245(f16v2) 257 + 258: 29(f16vec2) Load 246(f16v1) + 259: 29(f16vec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 258 + Store 245(f16v2) 259 + 260: 29(f16vec2) Load 246(f16v1) + 261: 29(f16vec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 260 + Store 245(f16v2) 261 Return FunctionEnd 16(builtinCommonFuncs(): 2 Function None 3 17: Label - 266(f16v2): 152(ptr) Variable Function - 267(f16v1): 152(ptr) Variable Function - 288(f16): 35(ptr) Variable Function - 292(f16v3): 152(ptr) Variable Function - 332(bv): 155(ptr) Variable Function - 353(b): 110(ptr) Variable Function - 363(iv): 185(ptr) Variable Function - 268:151(f16vec3) Load 267(f16v1) - 269:151(f16vec3) ExtInst 1(GLSL.std.450) 4(FAbs) 268 - Store 266(f16v2) 269 - 270:151(f16vec3) Load 267(f16v1) - 271:151(f16vec3) ExtInst 1(GLSL.std.450) 6(FSign) 270 - Store 266(f16v2) 271 - 272:151(f16vec3) Load 267(f16v1) - 273:151(f16vec3) ExtInst 1(GLSL.std.450) 8(Floor) 272 - Store 266(f16v2) 273 - 274:151(f16vec3) Load 267(f16v1) - 275:151(f16vec3) ExtInst 1(GLSL.std.450) 3(Trunc) 274 - Store 266(f16v2) 275 - 276:151(f16vec3) Load 267(f16v1) - 277:151(f16vec3) ExtInst 1(GLSL.std.450) 1(Round) 276 - Store 266(f16v2) 277 - 278:151(f16vec3) Load 267(f16v1) - 279:151(f16vec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 278 - Store 266(f16v2) 279 - 280:151(f16vec3) Load 267(f16v1) - 281:151(f16vec3) ExtInst 1(GLSL.std.450) 9(Ceil) 280 - Store 266(f16v2) 281 - 282:151(f16vec3) Load 267(f16v1) - 283:151(f16vec3) ExtInst 1(GLSL.std.450) 10(Fract) 282 - Store 266(f16v2) 283 - 284:151(f16vec3) Load 267(f16v1) - 285:151(f16vec3) Load 266(f16v2) - 286:151(f16vec3) FMod 284 285 - Store 266(f16v2) 286 - 287:151(f16vec3) Load 267(f16v1) - 289:28(float16_t) Load 288(f16) - 290:151(f16vec3) CompositeConstruct 289 289 289 - 291:151(f16vec3) FMod 287 290 - Store 266(f16v2) 291 - 293:151(f16vec3) Load 267(f16v1) - 294:151(f16vec3) ExtInst 1(GLSL.std.450) 35(Modf) 293 266(f16v2) - Store 292(f16v3) 294 - 295:151(f16vec3) Load 267(f16v1) - 296:151(f16vec3) Load 266(f16v2) - 297:151(f16vec3) ExtInst 1(GLSL.std.450) 37(FMin) 295 296 - Store 292(f16v3) 297 - 298:151(f16vec3) Load 267(f16v1) - 299:28(float16_t) Load 288(f16) - 300:151(f16vec3) CompositeConstruct 299 299 299 - 301:151(f16vec3) ExtInst 1(GLSL.std.450) 37(FMin) 298 300 - Store 292(f16v3) 301 - 302:151(f16vec3) Load 267(f16v1) - 303:151(f16vec3) Load 266(f16v2) - 304:151(f16vec3) ExtInst 1(GLSL.std.450) 40(FMax) 302 303 - Store 292(f16v3) 304 - 305:151(f16vec3) Load 267(f16v1) - 306:28(float16_t) Load 288(f16) - 307:151(f16vec3) CompositeConstruct 306 306 306 - 308:151(f16vec3) ExtInst 1(GLSL.std.450) 40(FMax) 305 307 - Store 292(f16v3) 308 - 309:151(f16vec3) Load 267(f16v1) - 310:28(float16_t) Load 288(f16) - 311: 35(ptr) AccessChain 266(f16v2) 34 - 312:28(float16_t) Load 311 - 313:151(f16vec3) CompositeConstruct 310 310 310 - 314:151(f16vec3) CompositeConstruct 312 312 312 - 315:151(f16vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 309 313 314 - Store 292(f16v3) 315 - 316:151(f16vec3) Load 267(f16v1) - 317:151(f16vec3) Load 266(f16v2) - 318:28(float16_t) Load 288(f16) - 319:151(f16vec3) CompositeConstruct 318 318 318 - 320:151(f16vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 316 317 319 - Store 292(f16v3) 320 - 321:151(f16vec3) Load 267(f16v1) - 322:151(f16vec3) Load 266(f16v2) - 323:28(float16_t) Load 288(f16) - 324:151(f16vec3) CompositeConstruct 323 323 323 - 325:151(f16vec3) ExtInst 1(GLSL.std.450) 46(FMix) 321 322 324 - Store 292(f16v3) 325 - 326:151(f16vec3) Load 267(f16v1) - 327:151(f16vec3) Load 266(f16v2) - 328:151(f16vec3) Load 292(f16v3) - 329:151(f16vec3) ExtInst 1(GLSL.std.450) 46(FMix) 326 327 328 - Store 292(f16v3) 329 - 330:151(f16vec3) Load 267(f16v1) - 331:151(f16vec3) Load 266(f16v2) - 333: 154(bvec3) Load 332(bv) - 334:151(f16vec3) Select 333 331 330 - Store 292(f16v3) 334 - 335:151(f16vec3) Load 267(f16v1) - 336:151(f16vec3) Load 266(f16v2) - 337:151(f16vec3) ExtInst 1(GLSL.std.450) 48(Step) 335 336 - Store 292(f16v3) 337 - 338:28(float16_t) Load 288(f16) - 339:151(f16vec3) Load 292(f16v3) - 340:151(f16vec3) CompositeConstruct 338 338 338 - 341:151(f16vec3) ExtInst 1(GLSL.std.450) 48(Step) 340 339 - Store 292(f16v3) 341 - 342:151(f16vec3) Load 267(f16v1) - 343:151(f16vec3) Load 266(f16v2) - 344:151(f16vec3) Load 292(f16v3) - 345:151(f16vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 342 343 344 - Store 292(f16v3) 345 - 346:28(float16_t) Load 288(f16) - 347: 35(ptr) AccessChain 267(f16v1) 34 - 348:28(float16_t) Load 347 - 349:151(f16vec3) Load 266(f16v2) - 350:151(f16vec3) CompositeConstruct 346 346 346 - 351:151(f16vec3) CompositeConstruct 348 348 348 - 352:151(f16vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 350 351 349 - Store 292(f16v3) 352 - 354:28(float16_t) Load 288(f16) - 355: 109(bool) IsNan 354 - Store 353(b) 355 - 356:151(f16vec3) Load 267(f16v1) - 357: 154(bvec3) IsInf 356 - Store 332(bv) 357 - 358:151(f16vec3) Load 267(f16v1) - 359:151(f16vec3) Load 266(f16v2) - 360:151(f16vec3) Load 292(f16v3) - 361:151(f16vec3) ExtInst 1(GLSL.std.450) 50(Fma) 358 359 360 - Store 292(f16v3) 361 - 362:151(f16vec3) Load 267(f16v1) - 365:364(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 362 - 366: 184(ivec3) CompositeExtract 365 1 - Store 363(iv) 366 - 367:151(f16vec3) CompositeExtract 365 0 - Store 266(f16v2) 367 - 368:151(f16vec3) Load 267(f16v1) - 369: 184(ivec3) Load 363(iv) - 370:151(f16vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 368 369 - Store 266(f16v2) 370 + 262(f16v2): 152(ptr) Variable Function + 263(f16v1): 152(ptr) Variable Function + 284(f16): 35(ptr) Variable Function + 288(f16v3): 152(ptr) Variable Function + 328(bv): 155(ptr) Variable Function + 349(b): 110(ptr) Variable Function + 359(iv): 181(ptr) Variable Function + 264:151(f16vec3) Load 263(f16v1) + 265:151(f16vec3) ExtInst 1(GLSL.std.450) 4(FAbs) 264 + Store 262(f16v2) 265 + 266:151(f16vec3) Load 263(f16v1) + 267:151(f16vec3) ExtInst 1(GLSL.std.450) 6(FSign) 266 + Store 262(f16v2) 267 + 268:151(f16vec3) Load 263(f16v1) + 269:151(f16vec3) ExtInst 1(GLSL.std.450) 8(Floor) 268 + Store 262(f16v2) 269 + 270:151(f16vec3) Load 263(f16v1) + 271:151(f16vec3) ExtInst 1(GLSL.std.450) 3(Trunc) 270 + Store 262(f16v2) 271 + 272:151(f16vec3) Load 263(f16v1) + 273:151(f16vec3) ExtInst 1(GLSL.std.450) 1(Round) 272 + Store 262(f16v2) 273 + 274:151(f16vec3) Load 263(f16v1) + 275:151(f16vec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 274 + Store 262(f16v2) 275 + 276:151(f16vec3) Load 263(f16v1) + 277:151(f16vec3) ExtInst 1(GLSL.std.450) 9(Ceil) 276 + Store 262(f16v2) 277 + 278:151(f16vec3) Load 263(f16v1) + 279:151(f16vec3) ExtInst 1(GLSL.std.450) 10(Fract) 278 + Store 262(f16v2) 279 + 280:151(f16vec3) Load 263(f16v1) + 281:151(f16vec3) Load 262(f16v2) + 282:151(f16vec3) FMod 280 281 + Store 262(f16v2) 282 + 283:151(f16vec3) Load 263(f16v1) + 285:28(float16_t) Load 284(f16) + 286:151(f16vec3) CompositeConstruct 285 285 285 + 287:151(f16vec3) FMod 283 286 + Store 262(f16v2) 287 + 289:151(f16vec3) Load 263(f16v1) + 290:151(f16vec3) ExtInst 1(GLSL.std.450) 35(Modf) 289 262(f16v2) + Store 288(f16v3) 290 + 291:151(f16vec3) Load 263(f16v1) + 292:151(f16vec3) Load 262(f16v2) + 293:151(f16vec3) ExtInst 1(GLSL.std.450) 37(FMin) 291 292 + Store 288(f16v3) 293 + 294:151(f16vec3) Load 263(f16v1) + 295:28(float16_t) Load 284(f16) + 296:151(f16vec3) CompositeConstruct 295 295 295 + 297:151(f16vec3) ExtInst 1(GLSL.std.450) 37(FMin) 294 296 + Store 288(f16v3) 297 + 298:151(f16vec3) Load 263(f16v1) + 299:151(f16vec3) Load 262(f16v2) + 300:151(f16vec3) ExtInst 1(GLSL.std.450) 40(FMax) 298 299 + Store 288(f16v3) 300 + 301:151(f16vec3) Load 263(f16v1) + 302:28(float16_t) Load 284(f16) + 303:151(f16vec3) CompositeConstruct 302 302 302 + 304:151(f16vec3) ExtInst 1(GLSL.std.450) 40(FMax) 301 303 + Store 288(f16v3) 304 + 305:151(f16vec3) Load 263(f16v1) + 306:28(float16_t) Load 284(f16) + 307: 35(ptr) AccessChain 262(f16v2) 34 + 308:28(float16_t) Load 307 + 309:151(f16vec3) CompositeConstruct 306 306 306 + 310:151(f16vec3) CompositeConstruct 308 308 308 + 311:151(f16vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 305 309 310 + Store 288(f16v3) 311 + 312:151(f16vec3) Load 263(f16v1) + 313:151(f16vec3) Load 262(f16v2) + 314:28(float16_t) Load 284(f16) + 315:151(f16vec3) CompositeConstruct 314 314 314 + 316:151(f16vec3) ExtInst 1(GLSL.std.450) 43(FClamp) 312 313 315 + Store 288(f16v3) 316 + 317:151(f16vec3) Load 263(f16v1) + 318:151(f16vec3) Load 262(f16v2) + 319:28(float16_t) Load 284(f16) + 320:151(f16vec3) CompositeConstruct 319 319 319 + 321:151(f16vec3) ExtInst 1(GLSL.std.450) 46(FMix) 317 318 320 + Store 288(f16v3) 321 + 322:151(f16vec3) Load 263(f16v1) + 323:151(f16vec3) Load 262(f16v2) + 324:151(f16vec3) Load 288(f16v3) + 325:151(f16vec3) ExtInst 1(GLSL.std.450) 46(FMix) 322 323 324 + Store 288(f16v3) 325 + 326:151(f16vec3) Load 263(f16v1) + 327:151(f16vec3) Load 262(f16v2) + 329: 154(bvec3) Load 328(bv) + 330:151(f16vec3) Select 329 327 326 + Store 288(f16v3) 330 + 331:151(f16vec3) Load 263(f16v1) + 332:151(f16vec3) Load 262(f16v2) + 333:151(f16vec3) ExtInst 1(GLSL.std.450) 48(Step) 331 332 + Store 288(f16v3) 333 + 334:28(float16_t) Load 284(f16) + 335:151(f16vec3) Load 288(f16v3) + 336:151(f16vec3) CompositeConstruct 334 334 334 + 337:151(f16vec3) ExtInst 1(GLSL.std.450) 48(Step) 336 335 + Store 288(f16v3) 337 + 338:151(f16vec3) Load 263(f16v1) + 339:151(f16vec3) Load 262(f16v2) + 340:151(f16vec3) Load 288(f16v3) + 341:151(f16vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 338 339 340 + Store 288(f16v3) 341 + 342:28(float16_t) Load 284(f16) + 343: 35(ptr) AccessChain 263(f16v1) 34 + 344:28(float16_t) Load 343 + 345:151(f16vec3) Load 262(f16v2) + 346:151(f16vec3) CompositeConstruct 342 342 342 + 347:151(f16vec3) CompositeConstruct 344 344 344 + 348:151(f16vec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 346 347 345 + Store 288(f16v3) 348 + 350:28(float16_t) Load 284(f16) + 351: 109(bool) IsNan 350 + Store 349(b) 351 + 352:151(f16vec3) Load 263(f16v1) + 353: 154(bvec3) IsInf 352 + Store 328(bv) 353 + 354:151(f16vec3) Load 263(f16v1) + 355:151(f16vec3) Load 262(f16v2) + 356:151(f16vec3) Load 288(f16v3) + 357:151(f16vec3) ExtInst 1(GLSL.std.450) 50(Fma) 354 355 356 + Store 288(f16v3) 357 + 358:151(f16vec3) Load 263(f16v1) + 361:360(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 358 + 362: 180(ivec3) CompositeExtract 361 1 + Store 359(iv) 362 + 363:151(f16vec3) CompositeExtract 361 0 + Store 262(f16v2) 363 + 364:151(f16vec3) Load 263(f16v1) + 365: 180(ivec3) Load 359(iv) + 366:151(f16vec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 364 365 + Store 262(f16v2) 366 Return FunctionEnd 18(builtinPackUnpackFuncs(): 2 Function None 3 19: Label - 372(u): 371(ptr) Variable Function - 373(f16v): 30(ptr) Variable Function - 374: 29(f16vec2) Load 373(f16v) - 375: 33(int) Bitcast 374 - Store 372(u) 375 - 376: 33(int) Load 372(u) - 377: 29(f16vec2) Bitcast 376 - Store 373(f16v) 377 + 368(u): 367(ptr) Variable Function + 369(f16v): 30(ptr) Variable Function + 370: 29(f16vec2) Load 369(f16v) + 371: 33(int) Bitcast 370 + Store 368(u) 371 + 372: 33(int) Load 368(u) + 373: 29(f16vec2) Bitcast 372 + Store 369(f16v) 373 Return FunctionEnd 20(builtinGeometryFuncs(): 2 Function None 3 21: Label - 378(f16): 35(ptr) Variable Function - 379(f16v1): 152(ptr) Variable Function - 383(f16v2): 152(ptr) Variable Function - 389(f16v3): 152(ptr) Variable Function - 380:151(f16vec3) Load 379(f16v1) - 381:28(float16_t) ExtInst 1(GLSL.std.450) 66(Length) 380 - Store 378(f16) 381 - 382:151(f16vec3) Load 379(f16v1) - 384:151(f16vec3) Load 383(f16v2) - 385:28(float16_t) ExtInst 1(GLSL.std.450) 67(Distance) 382 384 - Store 378(f16) 385 - 386:151(f16vec3) Load 379(f16v1) - 387:151(f16vec3) Load 383(f16v2) - 388:28(float16_t) Dot 386 387 - Store 378(f16) 388 - 390:151(f16vec3) Load 379(f16v1) - 391:151(f16vec3) Load 383(f16v2) - 392:151(f16vec3) ExtInst 1(GLSL.std.450) 68(Cross) 390 391 - Store 389(f16v3) 392 - 393:151(f16vec3) Load 379(f16v1) - 394:151(f16vec3) ExtInst 1(GLSL.std.450) 69(Normalize) 393 - Store 383(f16v2) 394 - 395:151(f16vec3) Load 379(f16v1) - 396:151(f16vec3) Load 383(f16v2) - 397:151(f16vec3) Load 389(f16v3) - 398:151(f16vec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 395 396 397 - Store 389(f16v3) 398 - 399:151(f16vec3) Load 379(f16v1) - 400:151(f16vec3) Load 383(f16v2) - 401:151(f16vec3) ExtInst 1(GLSL.std.450) 71(Reflect) 399 400 - Store 389(f16v3) 401 - 402:151(f16vec3) Load 379(f16v1) - 403:151(f16vec3) Load 383(f16v2) - 404:28(float16_t) Load 378(f16) - 405:151(f16vec3) ExtInst 1(GLSL.std.450) 72(Refract) 402 403 404 - Store 389(f16v3) 405 + 374(f16): 35(ptr) Variable Function + 375(f16v1): 152(ptr) Variable Function + 379(f16v2): 152(ptr) Variable Function + 385(f16v3): 152(ptr) Variable Function + 376:151(f16vec3) Load 375(f16v1) + 377:28(float16_t) ExtInst 1(GLSL.std.450) 66(Length) 376 + Store 374(f16) 377 + 378:151(f16vec3) Load 375(f16v1) + 380:151(f16vec3) Load 379(f16v2) + 381:28(float16_t) ExtInst 1(GLSL.std.450) 67(Distance) 378 380 + Store 374(f16) 381 + 382:151(f16vec3) Load 375(f16v1) + 383:151(f16vec3) Load 379(f16v2) + 384:28(float16_t) Dot 382 383 + Store 374(f16) 384 + 386:151(f16vec3) Load 375(f16v1) + 387:151(f16vec3) Load 379(f16v2) + 388:151(f16vec3) ExtInst 1(GLSL.std.450) 68(Cross) 386 387 + Store 385(f16v3) 388 + 389:151(f16vec3) Load 375(f16v1) + 390:151(f16vec3) ExtInst 1(GLSL.std.450) 69(Normalize) 389 + Store 379(f16v2) 390 + 391:151(f16vec3) Load 375(f16v1) + 392:151(f16vec3) Load 379(f16v2) + 393:151(f16vec3) Load 385(f16v3) + 394:151(f16vec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 391 392 393 + Store 385(f16v3) 394 + 395:151(f16vec3) Load 375(f16v1) + 396:151(f16vec3) Load 379(f16v2) + 397:151(f16vec3) ExtInst 1(GLSL.std.450) 71(Reflect) 395 396 + Store 385(f16v3) 397 + 398:151(f16vec3) Load 375(f16v1) + 399:151(f16vec3) Load 379(f16v2) + 400:28(float16_t) Load 374(f16) + 401:151(f16vec3) ExtInst 1(GLSL.std.450) 72(Refract) 398 399 400 + Store 385(f16v3) 401 Return FunctionEnd 22(builtinMatrixFuncs(): 2 Function None 3 23: Label - 408(f16m3): 407(ptr) Variable Function - 409(f16m1): 407(ptr) Variable Function - 411(f16m2): 407(ptr) Variable Function - 420(f16v1): 152(ptr) Variable Function - 422(f16v2): 30(ptr) Variable Function - 427(f16m4): 426(ptr) Variable Function - 430(f16): 35(ptr) Variable Function - 433(f16m5): 432(ptr) Variable Function - 438(f16m6): 437(ptr) Variable Function - 439(f16m7): 437(ptr) Variable Function - 410: 406 Load 409(f16m1) - 412: 406 Load 411(f16m2) - 413:151(f16vec3) CompositeExtract 410 0 - 414:151(f16vec3) CompositeExtract 412 0 - 415:151(f16vec3) FMul 413 414 - 416:151(f16vec3) CompositeExtract 410 1 - 417:151(f16vec3) CompositeExtract 412 1 - 418:151(f16vec3) FMul 416 417 - 419: 406 CompositeConstruct 415 418 - Store 408(f16m3) 419 - 421:151(f16vec3) Load 420(f16v1) - 423: 29(f16vec2) Load 422(f16v2) - 424: 406 OuterProduct 421 423 - Store 409(f16m1) 424 - 428: 406 Load 409(f16m1) - 429: 425 Transpose 428 - Store 427(f16m4) 429 - 434: 431 Load 433(f16m5) - 435:28(float16_t) ExtInst 1(GLSL.std.450) 33(Determinant) 434 - Store 430(f16) 435 - 440: 436 Load 439(f16m7) - 441: 436 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 440 - Store 438(f16m6) 441 + 404(f16m3): 403(ptr) Variable Function + 405(f16m1): 403(ptr) Variable Function + 407(f16m2): 403(ptr) Variable Function + 416(f16v1): 152(ptr) Variable Function + 418(f16v2): 30(ptr) Variable Function + 423(f16m4): 422(ptr) Variable Function + 426(f16): 35(ptr) Variable Function + 429(f16m5): 428(ptr) Variable Function + 434(f16m6): 433(ptr) Variable Function + 435(f16m7): 433(ptr) Variable Function + 406: 402 Load 405(f16m1) + 408: 402 Load 407(f16m2) + 409:151(f16vec3) CompositeExtract 406 0 + 410:151(f16vec3) CompositeExtract 408 0 + 411:151(f16vec3) FMul 409 410 + 412:151(f16vec3) CompositeExtract 406 1 + 413:151(f16vec3) CompositeExtract 408 1 + 414:151(f16vec3) FMul 412 413 + 415: 402 CompositeConstruct 411 414 + Store 404(f16m3) 415 + 417:151(f16vec3) Load 416(f16v1) + 419: 29(f16vec2) Load 418(f16v2) + 420: 402 OuterProduct 417 419 + Store 405(f16m1) 420 + 424: 402 Load 405(f16m1) + 425: 421 Transpose 424 + Store 423(f16m4) 425 + 430: 427 Load 429(f16m5) + 431:28(float16_t) ExtInst 1(GLSL.std.450) 33(Determinant) 430 + Store 426(f16) 431 + 436: 432 Load 435(f16m7) + 437: 432 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 436 + Store 434(f16m6) 437 Return FunctionEnd 24(builtinVecRelFuncs(): 2 Function None 3 25: Label - 442(bv): 155(ptr) Variable Function - 443(f16v1): 152(ptr) Variable Function - 445(f16v2): 152(ptr) Variable Function - 444:151(f16vec3) Load 443(f16v1) - 446:151(f16vec3) Load 445(f16v2) - 447: 154(bvec3) FOrdLessThan 444 446 - Store 442(bv) 447 - 448:151(f16vec3) Load 443(f16v1) - 449:151(f16vec3) Load 445(f16v2) - 450: 154(bvec3) FOrdLessThanEqual 448 449 - Store 442(bv) 450 - 451:151(f16vec3) Load 443(f16v1) - 452:151(f16vec3) Load 445(f16v2) - 453: 154(bvec3) FOrdGreaterThan 451 452 - Store 442(bv) 453 - 454:151(f16vec3) Load 443(f16v1) - 455:151(f16vec3) Load 445(f16v2) - 456: 154(bvec3) FOrdGreaterThanEqual 454 455 - Store 442(bv) 456 - 457:151(f16vec3) Load 443(f16v1) - 458:151(f16vec3) Load 445(f16v2) - 459: 154(bvec3) FOrdEqual 457 458 - Store 442(bv) 459 - 460:151(f16vec3) Load 443(f16v1) - 461:151(f16vec3) Load 445(f16v2) - 462: 154(bvec3) FUnordNotEqual 460 461 - Store 442(bv) 462 + 438(bv): 155(ptr) Variable Function + 439(f16v1): 152(ptr) Variable Function + 441(f16v2): 152(ptr) Variable Function + 440:151(f16vec3) Load 439(f16v1) + 442:151(f16vec3) Load 441(f16v2) + 443: 154(bvec3) FOrdLessThan 440 442 + Store 438(bv) 443 + 444:151(f16vec3) Load 439(f16v1) + 445:151(f16vec3) Load 441(f16v2) + 446: 154(bvec3) FOrdLessThanEqual 444 445 + Store 438(bv) 446 + 447:151(f16vec3) Load 439(f16v1) + 448:151(f16vec3) Load 441(f16v2) + 449: 154(bvec3) FOrdGreaterThan 447 448 + Store 438(bv) 449 + 450:151(f16vec3) Load 439(f16v1) + 451:151(f16vec3) Load 441(f16v2) + 452: 154(bvec3) FOrdGreaterThanEqual 450 451 + Store 438(bv) 452 + 453:151(f16vec3) Load 439(f16v1) + 454:151(f16vec3) Load 441(f16v2) + 455: 154(bvec3) FOrdEqual 453 454 + Store 438(bv) 455 + 456:151(f16vec3) Load 439(f16v1) + 457:151(f16vec3) Load 441(f16v2) + 458: 154(bvec3) FUnordNotEqual 456 457 + Store 438(bv) 458 Return FunctionEnd 26(builtinFragProcFuncs(): 2 Function None 3 27: Label - 463(f16v): 152(ptr) Variable Function - 467: 466(ptr) AccessChain 465(if16v) 34 + 459(f16v): 152(ptr) Variable Function + 463: 462(ptr) AccessChain 461(if16v) 34 + 464:28(float16_t) Load 463 + 465:28(float16_t) DPdx 464 + 466: 35(ptr) AccessChain 459(f16v) 34 + Store 466 465 + 467: 462(ptr) AccessChain 461(if16v) 90 468:28(float16_t) Load 467 - 469:28(float16_t) DPdx 468 - 470: 35(ptr) AccessChain 463(f16v) 34 + 469:28(float16_t) DPdy 468 + 470: 35(ptr) AccessChain 459(f16v) 90 Store 470 469 - 471: 466(ptr) AccessChain 465(if16v) 90 - 472:28(float16_t) Load 471 - 473:28(float16_t) DPdy 472 - 474: 35(ptr) AccessChain 463(f16v) 90 - Store 474 473 - 475:151(f16vec3) Load 465(if16v) - 476: 29(f16vec2) VectorShuffle 475 475 0 1 - 477: 29(f16vec2) DPdxFine 476 - 478: 35(ptr) AccessChain 463(f16v) 34 - 479:28(float16_t) CompositeExtract 477 0 - Store 478 479 - 480: 35(ptr) AccessChain 463(f16v) 90 - 481:28(float16_t) CompositeExtract 477 1 - Store 480 481 - 482:151(f16vec3) Load 465(if16v) - 483: 29(f16vec2) VectorShuffle 482 482 0 1 - 484: 29(f16vec2) DPdyFine 483 - 485: 35(ptr) AccessChain 463(f16v) 34 - 486:28(float16_t) CompositeExtract 484 0 - Store 485 486 - 487: 35(ptr) AccessChain 463(f16v) 90 - 488:28(float16_t) CompositeExtract 484 1 - Store 487 488 - 489:151(f16vec3) Load 465(if16v) - 490:151(f16vec3) DPdxCoarse 489 - Store 463(f16v) 490 - 491:151(f16vec3) Load 465(if16v) - 492:151(f16vec3) DPdxCoarse 491 - Store 463(f16v) 492 - 493: 466(ptr) AccessChain 465(if16v) 34 - 494:28(float16_t) Load 493 - 495:28(float16_t) Fwidth 494 - 496: 35(ptr) AccessChain 463(f16v) 34 - Store 496 495 - 497:151(f16vec3) Load 465(if16v) - 498: 29(f16vec2) VectorShuffle 497 497 0 1 - 499: 29(f16vec2) FwidthFine 498 - 500: 35(ptr) AccessChain 463(f16v) 34 - 501:28(float16_t) CompositeExtract 499 0 - Store 500 501 - 502: 35(ptr) AccessChain 463(f16v) 90 - 503:28(float16_t) CompositeExtract 499 1 - Store 502 503 - 504:151(f16vec3) Load 465(if16v) - 505:151(f16vec3) FwidthCoarse 504 - Store 463(f16v) 505 - 506: 466(ptr) AccessChain 465(if16v) 34 - 507:28(float16_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 506 - 508: 35(ptr) AccessChain 463(f16v) 34 - Store 508 507 - 510:151(f16vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 465(if16v) 509 - 511: 29(f16vec2) VectorShuffle 510 510 0 1 - 512: 35(ptr) AccessChain 463(f16v) 34 - 513:28(float16_t) CompositeExtract 511 0 - Store 512 513 - 514: 35(ptr) AccessChain 463(f16v) 90 - 515:28(float16_t) CompositeExtract 511 1 - Store 514 515 - 518:151(f16vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 517 - Store 463(f16v) 518 + 471:151(f16vec3) Load 461(if16v) + 472: 29(f16vec2) VectorShuffle 471 471 0 1 + 473: 29(f16vec2) DPdxFine 472 + 474: 35(ptr) AccessChain 459(f16v) 34 + 475:28(float16_t) CompositeExtract 473 0 + Store 474 475 + 476: 35(ptr) AccessChain 459(f16v) 90 + 477:28(float16_t) CompositeExtract 473 1 + Store 476 477 + 478:151(f16vec3) Load 461(if16v) + 479: 29(f16vec2) VectorShuffle 478 478 0 1 + 480: 29(f16vec2) DPdyFine 479 + 481: 35(ptr) AccessChain 459(f16v) 34 + 482:28(float16_t) CompositeExtract 480 0 + Store 481 482 + 483: 35(ptr) AccessChain 459(f16v) 90 + 484:28(float16_t) CompositeExtract 480 1 + Store 483 484 + 485:151(f16vec3) Load 461(if16v) + 486:151(f16vec3) DPdxCoarse 485 + Store 459(f16v) 486 + 487:151(f16vec3) Load 461(if16v) + 488:151(f16vec3) DPdxCoarse 487 + Store 459(f16v) 488 + 489: 462(ptr) AccessChain 461(if16v) 34 + 490:28(float16_t) Load 489 + 491:28(float16_t) Fwidth 490 + 492: 35(ptr) AccessChain 459(f16v) 34 + Store 492 491 + 493:151(f16vec3) Load 461(if16v) + 494: 29(f16vec2) VectorShuffle 493 493 0 1 + 495: 29(f16vec2) FwidthFine 494 + 496: 35(ptr) AccessChain 459(f16v) 34 + 497:28(float16_t) CompositeExtract 495 0 + Store 496 497 + 498: 35(ptr) AccessChain 459(f16v) 90 + 499:28(float16_t) CompositeExtract 495 1 + Store 498 499 + 500:151(f16vec3) Load 461(if16v) + 501:151(f16vec3) FwidthCoarse 500 + Store 459(f16v) 501 + 502: 462(ptr) AccessChain 461(if16v) 34 + 503:28(float16_t) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 502 + 504: 35(ptr) AccessChain 459(f16v) 34 + Store 504 503 + 506:151(f16vec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 461(if16v) 505 + 507: 29(f16vec2) VectorShuffle 506 506 0 1 + 508: 35(ptr) AccessChain 459(f16v) 34 + 509:28(float16_t) CompositeExtract 507 0 + Store 508 509 + 510: 35(ptr) AccessChain 459(f16v) 90 + 511:28(float16_t) CompositeExtract 507 1 + Store 510 511 + 514:151(f16vec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 461(if16v) 513 + Store 459(f16v) 514 Return FunctionEnd diff --git a/Test/baseResults/spv.floatFetch.frag.out b/Test/baseResults/spv.floatFetch.frag.out index 05d04e07a..251074d4a 100644 --- a/Test/baseResults/spv.floatFetch.frag.out +++ b/Test/baseResults/spv.floatFetch.frag.out @@ -2,7 +2,7 @@ spv.floatFetch.frag Validation failed // Module Version 10000 // Generated by (magic number): 8000b -// Id's are bound by 3503 +// Id's are bound by 3500 Capability Shader Capability ImageGatherExtended @@ -24,7 +24,7 @@ Validation failed Extension "SPV_AMD_texture_gather_bias_lod" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 127 138 150 197 283 371 866 873 880 2603 3494 3502 + EntryPoint Fragment 4 "main" 127 138 150 197 283 371 866 873 880 2603 3491 3499 ExecutionMode 4 OriginUpperLeft Source GLSL 450 SourceExtension "GL_AMD_texture_gather_bias_lod" @@ -184,12 +184,12 @@ Validation failed Name 3318 "subpass" Name 3324 "subpassMS" Name 3330 "result" - Name 3415 "param" - Name 3494 "fragColor" - Name 3497 "tBuffer" - Name 3499 "t2DMS" - Name 3501 "t2DMSArray" - Name 3502 "bias" + Name 3412 "param" + Name 3491 "fragColor" + Name 3494 "tBuffer" + Name 3496 "t2DMS" + Name 3498 "t2DMSArray" + Name 3499 "bias" Decorate 124(s1D) DescriptorSet 0 Decorate 124(s1D) Binding 0 Decorate 127(c1) Location 0 @@ -284,14 +284,14 @@ Validation failed Decorate 3324(subpassMS) DescriptorSet 3 Decorate 3324(subpassMS) Binding 1 Decorate 3324(subpassMS) InputAttachmentIndex 0 - Decorate 3494(fragColor) Location 0 - Decorate 3497(tBuffer) DescriptorSet 2 - Decorate 3497(tBuffer) Binding 8 - Decorate 3499(t2DMS) DescriptorSet 2 - Decorate 3499(t2DMS) Binding 9 - Decorate 3501(t2DMSArray) DescriptorSet 2 - Decorate 3501(t2DMSArray) Binding 10 - Decorate 3502(bias) Location 6 + Decorate 3491(fragColor) Location 0 + Decorate 3494(tBuffer) DescriptorSet 2 + Decorate 3494(tBuffer) Binding 8 + Decorate 3496(t2DMS) DescriptorSet 2 + Decorate 3496(t2DMS) Binding 9 + Decorate 3498(t2DMSArray) DescriptorSet 2 + Decorate 3498(t2DMSArray) Binding 10 + Decorate 3499(bias) Location 6 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -486,19 +486,19 @@ Validation failed 3322: TypeImage 6(float) SubpassData multi-sampled nonsampled format:Unknown 3323: TypePointer UniformConstant 3322 3324(subpassMS): 3323(ptr) Variable UniformConstant - 3493: TypePointer Output 7(fvec4) - 3494(fragColor): 3493(ptr) Variable Output - 3496: TypePointer UniformConstant 770 - 3497(tBuffer): 3496(ptr) Variable UniformConstant - 3498: TypePointer UniformConstant 781 - 3499(t2DMS): 3498(ptr) Variable UniformConstant - 3500: TypePointer UniformConstant 792 -3501(t2DMSArray): 3500(ptr) Variable UniformConstant - 3502(bias): 126(ptr) Variable Input + 3490: TypePointer Output 7(fvec4) + 3491(fragColor): 3490(ptr) Variable Output + 3493: TypePointer UniformConstant 770 + 3494(tBuffer): 3493(ptr) Variable UniformConstant + 3495: TypePointer UniformConstant 781 + 3496(t2DMS): 3495(ptr) Variable UniformConstant + 3497: TypePointer UniformConstant 792 +3498(t2DMSArray): 3497(ptr) Variable UniformConstant + 3499(bias): 126(ptr) Variable Input 4(main): 2 Function None 3 5: Label 3330(result): 63(ptr) Variable Function - 3415(param): 63(ptr) Variable Function + 3412(param): 63(ptr) Variable Function Store 3330(result) 120 3331: 7(fvec4) FunctionCall 9(testTexture() 3332: 7(fvec4) Load 3330(result) @@ -578,141 +578,138 @@ Validation failed 3388: 7(fvec4) FAdd 3387 3386 Store 3330(result) 3388 3389: 52(fvec2) FunctionCall 54(testTextureQueryLod() - 3390: 6(float) CompositeExtract 3389 0 - 3391: 6(float) CompositeExtract 3389 1 - 3392: 52(fvec2) CompositeConstruct 3390 3391 - 3393: 7(fvec4) Load 3330(result) - 3394: 52(fvec2) VectorShuffle 3393 3393 0 1 - 3395: 52(fvec2) FAdd 3394 3392 - 3396: 174(ptr) AccessChain 3330(result) 173 - 3397: 6(float) CompositeExtract 3395 0 - Store 3396 3397 - 3398: 174(ptr) AccessChain 3330(result) 1447 - 3399: 6(float) CompositeExtract 3395 1 - Store 3398 3399 - 3400: 47(int) FunctionCall 57(testTextureQueryLevels() - 3401: 6(float) ConvertSToF 3400 + 3390: 7(fvec4) Load 3330(result) + 3391: 52(fvec2) VectorShuffle 3390 3390 0 1 + 3392: 52(fvec2) FAdd 3391 3389 + 3393: 174(ptr) AccessChain 3330(result) 173 + 3394: 6(float) CompositeExtract 3392 0 + Store 3393 3394 + 3395: 174(ptr) AccessChain 3330(result) 1447 + 3396: 6(float) CompositeExtract 3392 1 + Store 3395 3396 + 3397: 47(int) FunctionCall 57(testTextureQueryLevels() + 3398: 6(float) ConvertSToF 3397 + 3399: 174(ptr) AccessChain 3330(result) 173 + 3400: 6(float) Load 3399 + 3401: 6(float) FAdd 3400 3398 3402: 174(ptr) AccessChain 3330(result) 173 - 3403: 6(float) Load 3402 - 3404: 6(float) FAdd 3403 3401 + Store 3402 3401 + 3403: 47(int) FunctionCall 59(testTextureSamples() + 3404: 6(float) ConvertSToF 3403 3405: 174(ptr) AccessChain 3330(result) 173 - Store 3405 3404 - 3406: 47(int) FunctionCall 59(testTextureSamples() - 3407: 6(float) ConvertSToF 3406 + 3406: 6(float) Load 3405 + 3407: 6(float) FAdd 3406 3404 3408: 174(ptr) AccessChain 3330(result) 173 - 3409: 6(float) Load 3408 - 3410: 6(float) FAdd 3409 3407 - 3411: 174(ptr) AccessChain 3330(result) 173 - Store 3411 3410 - 3412: 7(fvec4) FunctionCall 61(testImageLoad() + Store 3408 3407 + 3409: 7(fvec4) FunctionCall 61(testImageLoad() + 3410: 7(fvec4) Load 3330(result) + 3411: 7(fvec4) FAdd 3410 3409 + Store 3330(result) 3411 3413: 7(fvec4) Load 3330(result) - 3414: 7(fvec4) FAdd 3413 3412 - Store 3330(result) 3414 + Store 3412(param) 3413 + 3414: 2 FunctionCall 66(testImageStore(vf4;) 3412(param) + 3415: 7(fvec4) FunctionCall 68(testSparseTexture() 3416: 7(fvec4) Load 3330(result) - Store 3415(param) 3416 - 3417: 2 FunctionCall 66(testImageStore(vf4;) 3415(param) - 3418: 7(fvec4) FunctionCall 68(testSparseTexture() + 3417: 7(fvec4) FAdd 3416 3415 + Store 3330(result) 3417 + 3418: 7(fvec4) FunctionCall 70(testSparseTextureLod() 3419: 7(fvec4) Load 3330(result) 3420: 7(fvec4) FAdd 3419 3418 Store 3330(result) 3420 - 3421: 7(fvec4) FunctionCall 70(testSparseTextureLod() + 3421: 7(fvec4) FunctionCall 72(testSparseTextureOffset() 3422: 7(fvec4) Load 3330(result) 3423: 7(fvec4) FAdd 3422 3421 Store 3330(result) 3423 - 3424: 7(fvec4) FunctionCall 72(testSparseTextureOffset() + 3424: 7(fvec4) FunctionCall 74(testSparseTextureLodOffset() 3425: 7(fvec4) Load 3330(result) 3426: 7(fvec4) FAdd 3425 3424 Store 3330(result) 3426 - 3427: 7(fvec4) FunctionCall 74(testSparseTextureLodOffset() + 3427: 7(fvec4) FunctionCall 76(testSparseTextureGrad() 3428: 7(fvec4) Load 3330(result) 3429: 7(fvec4) FAdd 3428 3427 Store 3330(result) 3429 - 3430: 7(fvec4) FunctionCall 76(testSparseTextureGrad() + 3430: 7(fvec4) FunctionCall 78(testSparseTextureGradOffset() 3431: 7(fvec4) Load 3330(result) 3432: 7(fvec4) FAdd 3431 3430 Store 3330(result) 3432 - 3433: 7(fvec4) FunctionCall 78(testSparseTextureGradOffset() + 3433: 7(fvec4) FunctionCall 80(testSparseTexelFetch() 3434: 7(fvec4) Load 3330(result) 3435: 7(fvec4) FAdd 3434 3433 Store 3330(result) 3435 - 3436: 7(fvec4) FunctionCall 80(testSparseTexelFetch() + 3436: 7(fvec4) FunctionCall 82(testSparseTexelFetchOffset() 3437: 7(fvec4) Load 3330(result) 3438: 7(fvec4) FAdd 3437 3436 Store 3330(result) 3438 - 3439: 7(fvec4) FunctionCall 82(testSparseTexelFetchOffset() + 3439: 7(fvec4) FunctionCall 84(testSparseTextureGather() 3440: 7(fvec4) Load 3330(result) 3441: 7(fvec4) FAdd 3440 3439 Store 3330(result) 3441 - 3442: 7(fvec4) FunctionCall 84(testSparseTextureGather() + 3442: 7(fvec4) FunctionCall 86(testSparseTextureGatherOffset() 3443: 7(fvec4) Load 3330(result) 3444: 7(fvec4) FAdd 3443 3442 Store 3330(result) 3444 - 3445: 7(fvec4) FunctionCall 86(testSparseTextureGatherOffset() + 3445: 7(fvec4) FunctionCall 88(testSparseTextureGatherOffsets() 3446: 7(fvec4) Load 3330(result) 3447: 7(fvec4) FAdd 3446 3445 Store 3330(result) 3447 - 3448: 7(fvec4) FunctionCall 88(testSparseTextureGatherOffsets() + 3448: 7(fvec4) FunctionCall 90(testSparseTextureGatherLod() 3449: 7(fvec4) Load 3330(result) 3450: 7(fvec4) FAdd 3449 3448 Store 3330(result) 3450 - 3451: 7(fvec4) FunctionCall 90(testSparseTextureGatherLod() + 3451: 7(fvec4) FunctionCall 92(testSparseTextureGatherLodOffset() 3452: 7(fvec4) Load 3330(result) 3453: 7(fvec4) FAdd 3452 3451 Store 3330(result) 3453 - 3454: 7(fvec4) FunctionCall 92(testSparseTextureGatherLodOffset() + 3454: 7(fvec4) FunctionCall 94(testSparseTextureGatherLodOffsets() 3455: 7(fvec4) Load 3330(result) 3456: 7(fvec4) FAdd 3455 3454 Store 3330(result) 3456 - 3457: 7(fvec4) FunctionCall 94(testSparseTextureGatherLodOffsets() + 3457: 7(fvec4) FunctionCall 96(testSparseImageLoad() 3458: 7(fvec4) Load 3330(result) 3459: 7(fvec4) FAdd 3458 3457 Store 3330(result) 3459 - 3460: 7(fvec4) FunctionCall 96(testSparseImageLoad() + 3460: 7(fvec4) FunctionCall 98(testSparseTextureClamp() 3461: 7(fvec4) Load 3330(result) 3462: 7(fvec4) FAdd 3461 3460 Store 3330(result) 3462 - 3463: 7(fvec4) FunctionCall 98(testSparseTextureClamp() + 3463: 7(fvec4) FunctionCall 100(testTextureClamp() 3464: 7(fvec4) Load 3330(result) 3465: 7(fvec4) FAdd 3464 3463 Store 3330(result) 3465 - 3466: 7(fvec4) FunctionCall 100(testTextureClamp() + 3466: 7(fvec4) FunctionCall 102(testSparseTextureOffsetClamp() 3467: 7(fvec4) Load 3330(result) 3468: 7(fvec4) FAdd 3467 3466 Store 3330(result) 3468 - 3469: 7(fvec4) FunctionCall 102(testSparseTextureOffsetClamp() + 3469: 7(fvec4) FunctionCall 104(testTextureOffsetClamp() 3470: 7(fvec4) Load 3330(result) 3471: 7(fvec4) FAdd 3470 3469 Store 3330(result) 3471 - 3472: 7(fvec4) FunctionCall 104(testTextureOffsetClamp() + 3472: 7(fvec4) FunctionCall 76(testSparseTextureGrad() 3473: 7(fvec4) Load 3330(result) 3474: 7(fvec4) FAdd 3473 3472 Store 3330(result) 3474 - 3475: 7(fvec4) FunctionCall 76(testSparseTextureGrad() + 3475: 7(fvec4) FunctionCall 27(testTextureGrad() 3476: 7(fvec4) Load 3330(result) 3477: 7(fvec4) FAdd 3476 3475 Store 3330(result) 3477 - 3478: 7(fvec4) FunctionCall 27(testTextureGrad() + 3478: 7(fvec4) FunctionCall 110(testSparseTextureGradOffsetClamp() 3479: 7(fvec4) Load 3330(result) 3480: 7(fvec4) FAdd 3479 3478 Store 3330(result) 3480 - 3481: 7(fvec4) FunctionCall 110(testSparseTextureGradOffsetClamp() + 3481: 7(fvec4) FunctionCall 112(testTextureGradOffsetClamp() 3482: 7(fvec4) Load 3330(result) 3483: 7(fvec4) FAdd 3482 3481 Store 3330(result) 3483 - 3484: 7(fvec4) FunctionCall 112(testTextureGradOffsetClamp() + 3484: 7(fvec4) FunctionCall 114(testCombinedTextureSampler() 3485: 7(fvec4) Load 3330(result) 3486: 7(fvec4) FAdd 3485 3484 Store 3330(result) 3486 - 3487: 7(fvec4) FunctionCall 114(testCombinedTextureSampler() + 3487: 7(fvec4) FunctionCall 116(testSubpassLoad() 3488: 7(fvec4) Load 3330(result) 3489: 7(fvec4) FAdd 3488 3487 Store 3330(result) 3489 - 3490: 7(fvec4) FunctionCall 116(testSubpassLoad() - 3491: 7(fvec4) Load 3330(result) - 3492: 7(fvec4) FAdd 3491 3490 - Store 3330(result) 3492 - 3495: 7(fvec4) Load 3330(result) - Store 3494(fragColor) 3495 + 3492: 7(fvec4) Load 3330(result) + Store 3491(fragColor) 3492 Return FunctionEnd 9(testTexture(): 7(fvec4) Function None 8 diff --git a/Test/baseResults/spv.int32.frag.out b/Test/baseResults/spv.int32.frag.out index 2c260dd2b..4ee05c825 100644 --- a/Test/baseResults/spv.int32.frag.out +++ b/Test/baseResults/spv.int32.frag.out @@ -1,7 +1,7 @@ spv.int32.frag // Module Version 10300 // Generated by (magic number): 8000b -// Id's are bound by 505 +// Id's are bound by 499 Capability Shader Capability Float16 @@ -43,63 +43,63 @@ spv.int32.frag Name 84 "f64v" Name 94 "i8v" Name 105 "i16v" - Name 125 "u8v" - Name 132 "u16v" - Name 152 "f16v" - Name 168 "bv" - Name 186 "u32v" - Name 191 "i32" - Name 210 "i" - Name 214 "uv" - Name 227 "i64" - Name 260 "b" - Name 312 "i32v" - Name 315 "i32" - Name 325 "u32v" - Name 327 "u32" - Name 399 "i8v4" - Name 402 "i16v2" - Name 407 "u8v4" - Name 410 "u16v2" - Name 413 "i64" - Name 416 "u32v2" - Name 418 "u64" - Name 422 "bv" - Name 497 "Block" - MemberName 497(Block) 0 "i32" - MemberName 497(Block) 1 "i32v2" - MemberName 497(Block) 2 "i32v3" - MemberName 497(Block) 3 "i32v4" - MemberName 497(Block) 4 "u32" - MemberName 497(Block) 5 "u32v2" - MemberName 497(Block) 6 "u32v3" - MemberName 497(Block) 7 "u32v4" - Name 499 "block" - Name 500 "si32" - Name 501 "su32" - Name 502 "si" - Name 503 "su" - Name 504 "sb" + Name 122 "u8v" + Name 129 "u16v" + Name 146 "f16v" + Name 162 "bv" + Name 180 "u32v" + Name 185 "i32" + Name 204 "i" + Name 208 "uv" + Name 221 "i64" + Name 254 "b" + Name 306 "i32v" + Name 309 "i32" + Name 319 "u32v" + Name 321 "u32" + Name 393 "i8v4" + Name 396 "i16v2" + Name 401 "u8v4" + Name 404 "u16v2" + Name 407 "i64" + Name 410 "u32v2" + Name 412 "u64" + Name 416 "bv" + Name 491 "Block" + MemberName 491(Block) 0 "i32" + MemberName 491(Block) 1 "i32v2" + MemberName 491(Block) 2 "i32v3" + MemberName 491(Block) 3 "i32v4" + MemberName 491(Block) 4 "u32" + MemberName 491(Block) 5 "u32v2" + MemberName 491(Block) 6 "u32v3" + MemberName 491(Block) 7 "u32v4" + Name 493 "block" + Name 494 "si32" + Name 495 "su32" + Name 496 "si" + Name 497 "su" + Name 498 "sb" MemberDecorate 27(Uniforms) 0 Offset 0 Decorate 27(Uniforms) Block Decorate 29 DescriptorSet 0 Decorate 29 Binding 0 - MemberDecorate 497(Block) 0 Offset 0 - MemberDecorate 497(Block) 1 Offset 8 - MemberDecorate 497(Block) 2 Offset 16 - MemberDecorate 497(Block) 3 Offset 32 - MemberDecorate 497(Block) 4 Offset 48 - MemberDecorate 497(Block) 5 Offset 56 - MemberDecorate 497(Block) 6 Offset 64 - MemberDecorate 497(Block) 7 Offset 80 - Decorate 497(Block) Block - Decorate 499(block) DescriptorSet 0 - Decorate 499(block) Binding 1 - Decorate 500(si32) SpecId 100 - Decorate 501(su32) SpecId 101 - Decorate 502(si) SpecId 102 - Decorate 503(su) SpecId 103 - Decorate 504(sb) SpecId 104 + MemberDecorate 491(Block) 0 Offset 0 + MemberDecorate 491(Block) 1 Offset 8 + MemberDecorate 491(Block) 2 Offset 16 + MemberDecorate 491(Block) 3 Offset 32 + MemberDecorate 491(Block) 4 Offset 48 + MemberDecorate 491(Block) 5 Offset 56 + MemberDecorate 491(Block) 6 Offset 64 + MemberDecorate 491(Block) 7 Offset 80 + Decorate 491(Block) Block + Decorate 493(block) DescriptorSet 0 + Decorate 493(block) Binding 1 + Decorate 494(si32) SpecId 100 + Decorate 495(su32) SpecId 101 + Decorate 496(si) SpecId 102 + Decorate 497(su) SpecId 103 + Decorate 498(sb) SpecId 104 2: TypeVoid 3: TypeFunction 2 14: TypeInt 32 0 @@ -151,50 +151,50 @@ spv.int32.frag 104: TypePointer Function 103(i16vec2) 109: TypeInt 16 0 110: TypeVector 109(int16_t) 2 - 124: TypePointer Function 99(i8vec2) - 131: TypePointer Function 110(i16vec2) - 149: TypeFloat 16 - 150: TypeVector 149(float16_t) 2 - 151: TypePointer Function 150(f16vec2) - 165: TypeBool - 166: TypeVector 165(bool) 2 - 167: TypePointer Function 166(bvec2) - 170: 18(int) Constant 1 - 171: 52(ivec2) ConstantComposite 30 30 - 172: 52(ivec2) ConstantComposite 170 170 - 175: 14(int) Constant 0 - 176: 14(int) Constant 1 - 177: 49(ivec2) ConstantComposite 175 175 - 178: 49(ivec2) ConstantComposite 176 176 - 184: TypeVector 14(int) 3 - 185: TypePointer Function 184(ivec3) - 188: TypeVector 18(int) 3 - 226: TypePointer Function 57(int64_t) - 251: 14(int) Constant 2 - 259: TypePointer Function 165(bool) - 323: 52(ivec2) ConstantComposite 24 24 - 332: 184(ivec3) ConstantComposite 175 175 175 - 374: 165(bool) ConstantTrue - 381: 165(bool) ConstantFalse - 382: 166(bvec2) ConstantComposite 381 381 - 394: TypeVector 165(bool) 3 - 395: 394(bvec3) ConstantComposite 381 381 381 - 397: TypeVector 91(int8_t) 4 - 398: TypePointer Function 397(i8vec4) - 405: TypeVector 98(int8_t) 4 - 406: TypePointer Function 405(i8vec4) - 417: TypePointer Function 63(int64_t) - 421: TypePointer Function 394(bvec3) - 495: TypeVector 18(int) 4 - 496: TypeVector 14(int) 4 - 497(Block): TypeStruct 18(int) 52(ivec2) 188(ivec3) 495(ivec4) 14(int) 49(ivec2) 184(ivec3) 496(ivec4) - 498: TypePointer Uniform 497(Block) - 499(block): 498(ptr) Variable Uniform - 500(si32): 18(int) SpecConstant 4294967286 - 501(su32): 14(int) SpecConstant 20 - 502(si): 18(int) SpecConstant 4294967291 - 503(su): 14(int) SpecConstant 4 - 504(sb): 165(bool) SpecConstantTrue + 121: TypePointer Function 99(i8vec2) + 128: TypePointer Function 110(i16vec2) + 143: TypeFloat 16 + 144: TypeVector 143(float16_t) 2 + 145: TypePointer Function 144(f16vec2) + 159: TypeBool + 160: TypeVector 159(bool) 2 + 161: TypePointer Function 160(bvec2) + 164: 18(int) Constant 1 + 165: 52(ivec2) ConstantComposite 30 30 + 166: 52(ivec2) ConstantComposite 164 164 + 169: 14(int) Constant 0 + 170: 14(int) Constant 1 + 171: 49(ivec2) ConstantComposite 169 169 + 172: 49(ivec2) ConstantComposite 170 170 + 178: TypeVector 14(int) 3 + 179: TypePointer Function 178(ivec3) + 182: TypeVector 18(int) 3 + 220: TypePointer Function 57(int64_t) + 245: 14(int) Constant 2 + 253: TypePointer Function 159(bool) + 317: 52(ivec2) ConstantComposite 24 24 + 326: 178(ivec3) ConstantComposite 169 169 169 + 368: 159(bool) ConstantTrue + 375: 159(bool) ConstantFalse + 376: 160(bvec2) ConstantComposite 375 375 + 388: TypeVector 159(bool) 3 + 389: 388(bvec3) ConstantComposite 375 375 375 + 391: TypeVector 91(int8_t) 4 + 392: TypePointer Function 391(i8vec4) + 399: TypeVector 98(int8_t) 4 + 400: TypePointer Function 399(i8vec4) + 411: TypePointer Function 63(int64_t) + 415: TypePointer Function 388(bvec3) + 489: TypeVector 18(int) 4 + 490: TypeVector 14(int) 4 + 491(Block): TypeStruct 18(int) 52(ivec2) 182(ivec3) 489(ivec4) 14(int) 49(ivec2) 178(ivec3) 490(ivec4) + 492: TypePointer Uniform 491(Block) + 493(block): 492(ptr) Variable Uniform + 494(si32): 18(int) SpecConstant 4294967286 + 495(su32): 14(int) SpecConstant 20 + 496(si): 18(int) SpecConstant 4294967291 + 497(su): 14(int) SpecConstant 4 + 498(sb): 159(bool) SpecConstantTrue 4(main): 2 Function None 3 5: Label Store 16(u32Max) 17 @@ -230,10 +230,10 @@ spv.int32.frag 84(f64v): 83(ptr) Variable Function 94(i8v): 93(ptr) Variable Function 105(i16v): 104(ptr) Variable Function - 125(u8v): 124(ptr) Variable Function - 132(u16v): 131(ptr) Variable Function - 152(f16v): 151(ptr) Variable Function - 168(bv): 167(ptr) Variable Function + 122(u8v): 121(ptr) Variable Function + 129(u16v): 128(ptr) Variable Function + 146(f16v): 145(ptr) Variable Function + 162(bv): 161(ptr) Variable Function 55: 52(ivec2) Load 54(i32v) 56: 49(ivec2) Bitcast 55 Store 51(u32v) 56 @@ -278,453 +278,447 @@ spv.int32.frag 112:103(i16vec2) Bitcast 111 Store 105(i16v) 112 113: 52(ivec2) Load 54(i32v) - 114: 18(int) CompositeExtract 113 0 - 115: 18(int) CompositeExtract 113 1 - 116: 52(ivec2) CompositeConstruct 114 115 - Store 54(i32v) 116 - 117: 49(ivec2) Load 51(u32v) - 118: 52(ivec2) Bitcast 117 - Store 54(i32v) 118 - 119: 52(ivec2) Load 54(i32v) - 120: 58(i64vec2) SConvert 119 + Store 54(i32v) 113 + 114: 49(ivec2) Load 51(u32v) + 115: 52(ivec2) Bitcast 114 + Store 54(i32v) 115 + 116: 52(ivec2) Load 54(i32v) + 117: 58(i64vec2) SConvert 116 + Store 60(i64v) 117 + 118: 49(ivec2) Load 51(u32v) + 119: 64(i64vec2) UConvert 118 + 120: 58(i64vec2) Bitcast 119 Store 60(i64v) 120 - 121: 49(ivec2) Load 51(u32v) - 122: 64(i64vec2) UConvert 121 - 123: 58(i64vec2) Bitcast 122 - Store 60(i64v) 123 - 126: 52(ivec2) Load 54(i32v) - 127: 92(i8vec2) SConvert 126 - 128: 99(i8vec2) Bitcast 127 - Store 125(u8v) 128 - 129: 49(ivec2) Load 51(u32v) - 130: 99(i8vec2) UConvert 129 - Store 125(u8v) 130 - 133: 52(ivec2) Load 54(i32v) - 134:103(i16vec2) SConvert 133 - 135:110(i16vec2) Bitcast 134 - Store 132(u16v) 135 - 136: 49(ivec2) Load 51(u32v) - 137:110(i16vec2) UConvert 136 - Store 132(u16v) 137 + 123: 52(ivec2) Load 54(i32v) + 124: 92(i8vec2) SConvert 123 + 125: 99(i8vec2) Bitcast 124 + Store 122(u8v) 125 + 126: 49(ivec2) Load 51(u32v) + 127: 99(i8vec2) UConvert 126 + Store 122(u8v) 127 + 130: 52(ivec2) Load 54(i32v) + 131:103(i16vec2) SConvert 130 + 132:110(i16vec2) Bitcast 131 + Store 129(u16v) 132 + 133: 49(ivec2) Load 51(u32v) + 134:110(i16vec2) UConvert 133 + Store 129(u16v) 134 + 135: 52(ivec2) Load 54(i32v) + 136: 49(ivec2) Bitcast 135 + Store 51(u32v) 136 + 137: 49(ivec2) Load 51(u32v) + Store 51(u32v) 137 138: 52(ivec2) Load 54(i32v) - 139: 49(ivec2) Bitcast 138 - Store 51(u32v) 139 - 140: 49(ivec2) Load 51(u32v) - 141: 14(int) CompositeExtract 140 0 - 142: 14(int) CompositeExtract 140 1 - 143: 49(ivec2) CompositeConstruct 141 142 - Store 51(u32v) 143 - 144: 52(ivec2) Load 54(i32v) - 145: 58(i64vec2) SConvert 144 - 146: 64(i64vec2) Bitcast 145 - Store 66(u64v) 146 - 147: 49(ivec2) Load 51(u32v) - 148: 64(i64vec2) UConvert 147 - Store 66(u64v) 148 - 153: 52(ivec2) Load 54(i32v) - 154:150(f16vec2) ConvertSToF 153 - Store 152(f16v) 154 - 155: 52(ivec2) Load 54(i32v) - 156: 76(fvec2) ConvertSToF 155 + 139: 58(i64vec2) SConvert 138 + 140: 64(i64vec2) Bitcast 139 + Store 66(u64v) 140 + 141: 49(ivec2) Load 51(u32v) + 142: 64(i64vec2) UConvert 141 + Store 66(u64v) 142 + 147: 52(ivec2) Load 54(i32v) + 148:144(f16vec2) ConvertSToF 147 + Store 146(f16v) 148 + 149: 52(ivec2) Load 54(i32v) + 150: 76(fvec2) ConvertSToF 149 + Store 78(f32v) 150 + 151: 52(ivec2) Load 54(i32v) + 152: 82(f64vec2) ConvertSToF 151 + Store 84(f64v) 152 + 153: 49(ivec2) Load 51(u32v) + 154:144(f16vec2) ConvertUToF 153 + Store 146(f16v) 154 + 155: 49(ivec2) Load 51(u32v) + 156: 76(fvec2) ConvertUToF 155 Store 78(f32v) 156 - 157: 52(ivec2) Load 54(i32v) - 158: 82(f64vec2) ConvertSToF 157 + 157: 49(ivec2) Load 51(u32v) + 158: 82(f64vec2) ConvertUToF 157 Store 84(f64v) 158 - 159: 49(ivec2) Load 51(u32v) - 160:150(f16vec2) ConvertUToF 159 - Store 152(f16v) 160 - 161: 49(ivec2) Load 51(u32v) - 162: 76(fvec2) ConvertUToF 161 - Store 78(f32v) 162 - 163: 49(ivec2) Load 51(u32v) - 164: 82(f64vec2) ConvertUToF 163 - Store 84(f64v) 164 - 169: 166(bvec2) Load 168(bv) - 173: 52(ivec2) Select 169 172 171 - Store 54(i32v) 173 - 174: 166(bvec2) Load 168(bv) - 179: 49(ivec2) Select 174 178 177 - Store 51(u32v) 179 - 180: 52(ivec2) Load 54(i32v) - 181: 166(bvec2) INotEqual 180 177 - Store 168(bv) 181 - 182: 49(ivec2) Load 51(u32v) - 183: 166(bvec2) INotEqual 182 177 - Store 168(bv) 183 + 163: 160(bvec2) Load 162(bv) + 167: 52(ivec2) Select 163 166 165 + Store 54(i32v) 167 + 168: 160(bvec2) Load 162(bv) + 173: 49(ivec2) Select 168 172 171 + Store 51(u32v) 173 + 174: 52(ivec2) Load 54(i32v) + 175: 160(bvec2) INotEqual 174 171 + Store 162(bv) 175 + 176: 49(ivec2) Load 51(u32v) + 177: 160(bvec2) INotEqual 176 171 + Store 162(bv) 177 Return FunctionEnd 10(operators(): 2 Function None 3 11: Label - 186(u32v): 185(ptr) Variable Function - 191(i32): 19(ptr) Variable Function - 210(i): 19(ptr) Variable Function - 214(uv): 185(ptr) Variable Function - 227(i64): 226(ptr) Variable Function - 260(b): 259(ptr) Variable Function - 187: 184(ivec3) Load 186(u32v) - 189: 188(ivec3) CompositeConstruct 170 170 170 - 190: 184(ivec3) IAdd 187 189 - Store 186(u32v) 190 - 192: 18(int) Load 191(i32) - 193: 18(int) ISub 192 170 - Store 191(i32) 193 - 194: 18(int) Load 191(i32) - 195: 18(int) IAdd 194 170 - Store 191(i32) 195 - 196: 184(ivec3) Load 186(u32v) - 197: 188(ivec3) CompositeConstruct 170 170 170 - 198: 184(ivec3) ISub 196 197 - Store 186(u32v) 198 - 199: 184(ivec3) Load 186(u32v) - 200: 184(ivec3) Not 199 - Store 186(u32v) 200 - 201: 18(int) Load 191(i32) - Store 191(i32) 201 - 202: 184(ivec3) Load 186(u32v) - 203: 184(ivec3) SNegate 202 - Store 186(u32v) 203 - 204: 18(int) Load 191(i32) - 205: 18(int) Load 191(i32) - 206: 18(int) IAdd 205 204 - Store 191(i32) 206 - 207: 184(ivec3) Load 186(u32v) - 208: 184(ivec3) Load 186(u32v) - 209: 184(ivec3) ISub 208 207 - Store 186(u32v) 209 - 211: 18(int) Load 191(i32) - 212: 18(int) Load 210(i) - 213: 18(int) IMul 212 211 - Store 210(i) 213 - 215: 184(ivec3) Load 186(u32v) - 216: 184(ivec3) Load 214(uv) - 217: 184(ivec3) UDiv 216 215 - Store 214(uv) 217 - 218: 18(int) Load 191(i32) - 219: 14(int) Bitcast 218 - 220: 184(ivec3) Load 214(uv) - 221: 184(ivec3) CompositeConstruct 219 219 219 - 222: 184(ivec3) UMod 220 221 - Store 214(uv) 222 - 223: 184(ivec3) Load 186(u32v) - 224: 184(ivec3) Load 214(uv) - 225: 184(ivec3) IAdd 223 224 - Store 214(uv) 225 - 228: 18(int) Load 191(i32) - 229: 57(int64_t) SConvert 228 - 230: 57(int64_t) Load 227(i64) - 231: 57(int64_t) ISub 229 230 - Store 227(i64) 231 - 232: 184(ivec3) Load 186(u32v) - 233: 184(ivec3) Load 214(uv) - 234: 184(ivec3) IMul 232 233 - Store 214(uv) 234 - 235: 18(int) Load 191(i32) - 236: 57(int64_t) SConvert 235 - 237: 57(int64_t) Load 227(i64) - 238: 57(int64_t) IMul 236 237 - Store 227(i64) 238 - 239: 18(int) Load 191(i32) - 240: 18(int) Load 210(i) - 241: 18(int) SMod 239 240 - Store 210(i) 241 - 242: 18(int) Load 191(i32) - 243: 184(ivec3) Load 186(u32v) - 244: 188(ivec3) CompositeConstruct 242 242 242 - 245: 184(ivec3) ShiftLeftLogical 243 244 - Store 186(u32v) 245 - 246: 38(ptr) AccessChain 186(u32v) 176 + 180(u32v): 179(ptr) Variable Function + 185(i32): 19(ptr) Variable Function + 204(i): 19(ptr) Variable Function + 208(uv): 179(ptr) Variable Function + 221(i64): 220(ptr) Variable Function + 254(b): 253(ptr) Variable Function + 181: 178(ivec3) Load 180(u32v) + 183: 182(ivec3) CompositeConstruct 164 164 164 + 184: 178(ivec3) IAdd 181 183 + Store 180(u32v) 184 + 186: 18(int) Load 185(i32) + 187: 18(int) ISub 186 164 + Store 185(i32) 187 + 188: 18(int) Load 185(i32) + 189: 18(int) IAdd 188 164 + Store 185(i32) 189 + 190: 178(ivec3) Load 180(u32v) + 191: 182(ivec3) CompositeConstruct 164 164 164 + 192: 178(ivec3) ISub 190 191 + Store 180(u32v) 192 + 193: 178(ivec3) Load 180(u32v) + 194: 178(ivec3) Not 193 + Store 180(u32v) 194 + 195: 18(int) Load 185(i32) + Store 185(i32) 195 + 196: 178(ivec3) Load 180(u32v) + 197: 178(ivec3) SNegate 196 + Store 180(u32v) 197 + 198: 18(int) Load 185(i32) + 199: 18(int) Load 185(i32) + 200: 18(int) IAdd 199 198 + Store 185(i32) 200 + 201: 178(ivec3) Load 180(u32v) + 202: 178(ivec3) Load 180(u32v) + 203: 178(ivec3) ISub 202 201 + Store 180(u32v) 203 + 205: 18(int) Load 185(i32) + 206: 18(int) Load 204(i) + 207: 18(int) IMul 206 205 + Store 204(i) 207 + 209: 178(ivec3) Load 180(u32v) + 210: 178(ivec3) Load 208(uv) + 211: 178(ivec3) UDiv 210 209 + Store 208(uv) 211 + 212: 18(int) Load 185(i32) + 213: 14(int) Bitcast 212 + 214: 178(ivec3) Load 208(uv) + 215: 178(ivec3) CompositeConstruct 213 213 213 + 216: 178(ivec3) UMod 214 215 + Store 208(uv) 216 + 217: 178(ivec3) Load 180(u32v) + 218: 178(ivec3) Load 208(uv) + 219: 178(ivec3) IAdd 217 218 + Store 208(uv) 219 + 222: 18(int) Load 185(i32) + 223: 57(int64_t) SConvert 222 + 224: 57(int64_t) Load 221(i64) + 225: 57(int64_t) ISub 223 224 + Store 221(i64) 225 + 226: 178(ivec3) Load 180(u32v) + 227: 178(ivec3) Load 208(uv) + 228: 178(ivec3) IMul 226 227 + Store 208(uv) 228 + 229: 18(int) Load 185(i32) + 230: 57(int64_t) SConvert 229 + 231: 57(int64_t) Load 221(i64) + 232: 57(int64_t) IMul 230 231 + Store 221(i64) 232 + 233: 18(int) Load 185(i32) + 234: 18(int) Load 204(i) + 235: 18(int) SMod 233 234 + Store 204(i) 235 + 236: 18(int) Load 185(i32) + 237: 178(ivec3) Load 180(u32v) + 238: 182(ivec3) CompositeConstruct 236 236 236 + 239: 178(ivec3) ShiftLeftLogical 237 238 + Store 180(u32v) 239 + 240: 38(ptr) AccessChain 180(u32v) 170 + 241: 14(int) Load 240 + 242: 18(int) Load 185(i32) + 243: 18(int) ShiftRightArithmetic 242 241 + Store 185(i32) 243 + 244: 57(int64_t) Load 221(i64) + 246: 38(ptr) AccessChain 180(u32v) 245 247: 14(int) Load 246 - 248: 18(int) Load 191(i32) - 249: 18(int) ShiftRightArithmetic 248 247 - Store 191(i32) 249 - 250: 57(int64_t) Load 227(i64) - 252: 38(ptr) AccessChain 186(u32v) 251 - 253: 14(int) Load 252 - 254: 57(int64_t) ShiftLeftLogical 250 253 - Store 227(i64) 254 - 255: 184(ivec3) Load 186(u32v) - 256: 18(int) Load 210(i) - 257: 188(ivec3) CompositeConstruct 256 256 256 - 258: 184(ivec3) ShiftLeftLogical 255 257 - Store 214(uv) 258 - 261: 38(ptr) AccessChain 186(u32v) 175 - 262: 14(int) Load 261 - 263: 18(int) Load 191(i32) - 264: 14(int) Bitcast 263 - 265: 165(bool) INotEqual 262 264 - Store 260(b) 265 - 266: 18(int) Load 191(i32) - 267: 14(int) Bitcast 266 - 268: 38(ptr) AccessChain 186(u32v) 175 - 269: 14(int) Load 268 - 270: 165(bool) IEqual 267 269 - Store 260(b) 270 - 271: 38(ptr) AccessChain 186(u32v) 175 - 272: 14(int) Load 271 - 273: 38(ptr) AccessChain 214(uv) 176 + 248: 57(int64_t) ShiftLeftLogical 244 247 + Store 221(i64) 248 + 249: 178(ivec3) Load 180(u32v) + 250: 18(int) Load 204(i) + 251: 182(ivec3) CompositeConstruct 250 250 250 + 252: 178(ivec3) ShiftLeftLogical 249 251 + Store 208(uv) 252 + 255: 38(ptr) AccessChain 180(u32v) 169 + 256: 14(int) Load 255 + 257: 18(int) Load 185(i32) + 258: 14(int) Bitcast 257 + 259: 159(bool) INotEqual 256 258 + Store 254(b) 259 + 260: 18(int) Load 185(i32) + 261: 14(int) Bitcast 260 + 262: 38(ptr) AccessChain 180(u32v) 169 + 263: 14(int) Load 262 + 264: 159(bool) IEqual 261 263 + Store 254(b) 264 + 265: 38(ptr) AccessChain 180(u32v) 169 + 266: 14(int) Load 265 + 267: 38(ptr) AccessChain 208(uv) 170 + 268: 14(int) Load 267 + 269: 159(bool) UGreaterThan 266 268 + Store 254(b) 269 + 270: 18(int) Load 185(i32) + 271: 18(int) Load 204(i) + 272: 159(bool) SLessThan 270 271 + Store 254(b) 272 + 273: 38(ptr) AccessChain 180(u32v) 170 274: 14(int) Load 273 - 275: 165(bool) UGreaterThan 272 274 - Store 260(b) 275 - 276: 18(int) Load 191(i32) - 277: 18(int) Load 210(i) - 278: 165(bool) SLessThan 276 277 - Store 260(b) 278 - 279: 38(ptr) AccessChain 186(u32v) 176 - 280: 14(int) Load 279 - 281: 38(ptr) AccessChain 214(uv) 175 - 282: 14(int) Load 281 - 283: 165(bool) UGreaterThanEqual 280 282 - Store 260(b) 283 - 284: 18(int) Load 191(i32) - 285: 18(int) Load 210(i) - 286: 165(bool) SLessThanEqual 284 285 - Store 260(b) 286 - 287: 18(int) Load 191(i32) - 288: 14(int) Bitcast 287 - 289: 184(ivec3) Load 214(uv) - 290: 184(ivec3) CompositeConstruct 288 288 288 - 291: 184(ivec3) BitwiseOr 289 290 - Store 214(uv) 291 - 292: 18(int) Load 191(i32) - 293: 18(int) Load 210(i) - 294: 18(int) BitwiseOr 292 293 - Store 210(i) 294 - 295: 18(int) Load 191(i32) - 296: 57(int64_t) SConvert 295 - 297: 57(int64_t) Load 227(i64) - 298: 57(int64_t) BitwiseAnd 297 296 - Store 227(i64) 298 - 299: 184(ivec3) Load 186(u32v) - 300: 184(ivec3) Load 214(uv) - 301: 184(ivec3) BitwiseAnd 299 300 - Store 214(uv) 301 - 302: 18(int) Load 191(i32) + 275: 38(ptr) AccessChain 208(uv) 169 + 276: 14(int) Load 275 + 277: 159(bool) UGreaterThanEqual 274 276 + Store 254(b) 277 + 278: 18(int) Load 185(i32) + 279: 18(int) Load 204(i) + 280: 159(bool) SLessThanEqual 278 279 + Store 254(b) 280 + 281: 18(int) Load 185(i32) + 282: 14(int) Bitcast 281 + 283: 178(ivec3) Load 208(uv) + 284: 178(ivec3) CompositeConstruct 282 282 282 + 285: 178(ivec3) BitwiseOr 283 284 + Store 208(uv) 285 + 286: 18(int) Load 185(i32) + 287: 18(int) Load 204(i) + 288: 18(int) BitwiseOr 286 287 + Store 204(i) 288 + 289: 18(int) Load 185(i32) + 290: 57(int64_t) SConvert 289 + 291: 57(int64_t) Load 221(i64) + 292: 57(int64_t) BitwiseAnd 291 290 + Store 221(i64) 292 + 293: 178(ivec3) Load 180(u32v) + 294: 178(ivec3) Load 208(uv) + 295: 178(ivec3) BitwiseAnd 293 294 + Store 208(uv) 295 + 296: 18(int) Load 185(i32) + 297: 14(int) Bitcast 296 + 298: 178(ivec3) Load 208(uv) + 299: 178(ivec3) CompositeConstruct 297 297 297 + 300: 178(ivec3) BitwiseXor 298 299 + Store 208(uv) 300 + 301: 178(ivec3) Load 180(u32v) + 302: 18(int) Load 185(i32) 303: 14(int) Bitcast 302 - 304: 184(ivec3) Load 214(uv) - 305: 184(ivec3) CompositeConstruct 303 303 303 - 306: 184(ivec3) BitwiseXor 304 305 - Store 214(uv) 306 - 307: 184(ivec3) Load 186(u32v) - 308: 18(int) Load 191(i32) - 309: 14(int) Bitcast 308 - 310: 184(ivec3) CompositeConstruct 309 309 309 - 311: 184(ivec3) BitwiseXor 307 310 - Store 186(u32v) 311 + 304: 178(ivec3) CompositeConstruct 303 303 303 + 305: 178(ivec3) BitwiseXor 301 304 + Store 180(u32v) 305 Return FunctionEnd 12(builtinFuncs(): 2 Function None 3 13: Label - 312(i32v): 53(ptr) Variable Function - 315(i32): 19(ptr) Variable Function - 325(u32v): 185(ptr) Variable Function - 327(u32): 38(ptr) Variable Function - 399(i8v4): 398(ptr) Variable Function - 402(i16v2): 104(ptr) Variable Function - 407(u8v4): 406(ptr) Variable Function - 410(u16v2): 131(ptr) Variable Function - 413(i64): 226(ptr) Variable Function - 416(u32v2): 50(ptr) Variable Function - 418(u64): 417(ptr) Variable Function - 422(bv): 421(ptr) Variable Function - 313: 52(ivec2) Load 312(i32v) - 314: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 313 - Store 312(i32v) 314 - 316: 18(int) Load 315(i32) - 317: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 316 - Store 315(i32) 317 - 318: 52(ivec2) Load 312(i32v) - 319: 18(int) Load 315(i32) - 320: 52(ivec2) CompositeConstruct 319 319 - 321: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 318 320 - Store 312(i32v) 321 - 322: 52(ivec2) Load 312(i32v) - 324: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 322 323 - Store 312(i32v) 324 - 326: 184(ivec3) Load 325(u32v) - 328: 14(int) Load 327(u32) - 329: 184(ivec3) CompositeConstruct 328 328 328 - 330: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 326 329 - Store 325(u32v) 330 - 331: 184(ivec3) Load 325(u32v) - 333: 184(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 331 332 - Store 325(u32v) 333 - 334: 52(ivec2) Load 312(i32v) - 335: 18(int) Load 315(i32) - 336: 52(ivec2) CompositeConstruct 335 335 - 337: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 334 336 - Store 312(i32v) 337 - 338: 52(ivec2) Load 312(i32v) - 339: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 338 323 - Store 312(i32v) 339 - 340: 184(ivec3) Load 325(u32v) - 341: 14(int) Load 327(u32) - 342: 184(ivec3) CompositeConstruct 341 341 341 - 343: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 340 342 - Store 325(u32v) 343 - 344: 184(ivec3) Load 325(u32v) - 345: 184(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 344 332 - Store 325(u32v) 345 - 346: 52(ivec2) Load 312(i32v) - 347: 18(int) Load 315(i32) - 348: 18(int) SNegate 347 - 349: 18(int) Load 315(i32) - 350: 52(ivec2) CompositeConstruct 348 348 - 351: 52(ivec2) CompositeConstruct 349 349 - 352: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 346 350 351 - Store 312(i32v) 352 - 353: 52(ivec2) Load 312(i32v) - 354: 52(ivec2) Load 312(i32v) - 355: 52(ivec2) SNegate 354 - 356: 52(ivec2) Load 312(i32v) - 357: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 353 355 356 - Store 312(i32v) 357 - 358: 184(ivec3) Load 325(u32v) - 359: 14(int) Load 327(u32) - 360: 14(int) SNegate 359 - 361: 14(int) Load 327(u32) - 362: 184(ivec3) CompositeConstruct 360 360 360 - 363: 184(ivec3) CompositeConstruct 361 361 361 - 364: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 358 362 363 - Store 325(u32v) 364 - 365: 184(ivec3) Load 325(u32v) - 366: 184(ivec3) Load 325(u32v) - 367: 184(ivec3) SNegate 366 - 368: 184(ivec3) Load 325(u32v) - 369: 184(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 365 367 368 - Store 325(u32v) 369 - 370: 19(ptr) AccessChain 312(i32v) 175 - 371: 18(int) Load 370 - 372: 19(ptr) AccessChain 312(i32v) 176 - 373: 18(int) Load 372 - 375: 18(int) Select 374 373 371 - Store 315(i32) 375 - 376: 18(int) Load 315(i32) - 377: 52(ivec2) CompositeConstruct 376 376 - 378: 18(int) Load 315(i32) - 379: 18(int) SNegate 378 - 380: 52(ivec2) CompositeConstruct 379 379 - 383: 52(ivec2) Select 382 380 377 - Store 312(i32v) 383 - 384: 38(ptr) AccessChain 325(u32v) 175 - 385: 14(int) Load 384 - 386: 38(ptr) AccessChain 325(u32v) 176 - 387: 14(int) Load 386 - 388: 14(int) Select 374 387 385 - Store 327(u32) 388 - 389: 14(int) Load 327(u32) - 390: 184(ivec3) CompositeConstruct 389 389 389 - 391: 14(int) Load 327(u32) - 392: 14(int) SNegate 391 - 393: 184(ivec3) CompositeConstruct 392 392 392 - 396: 184(ivec3) Select 395 393 390 - Store 325(u32v) 396 - 400: 397(i8vec4) Load 399(i8v4) - 401: 18(int) Bitcast 400 - Store 315(i32) 401 - 403:103(i16vec2) Load 402(i16v2) - 404: 18(int) Bitcast 403 - Store 315(i32) 404 - 408: 405(i8vec4) Load 407(u8v4) - 409: 14(int) Bitcast 408 - Store 327(u32) 409 - 411:110(i16vec2) Load 410(u16v2) - 412: 14(int) Bitcast 411 - Store 327(u32) 412 - 414: 57(int64_t) Load 413(i64) - 415: 52(ivec2) Bitcast 414 - Store 312(i32v) 415 - 419: 63(int64_t) Load 418(u64) - 420: 49(ivec2) Bitcast 419 - Store 416(u32v2) 420 - 423: 184(ivec3) Load 325(u32v) - 424: 14(int) Load 327(u32) - 425: 184(ivec3) CompositeConstruct 424 424 424 - 426: 394(bvec3) ULessThan 423 425 - Store 422(bv) 426 - 427: 52(ivec2) Load 312(i32v) - 428: 18(int) Load 315(i32) - 429: 52(ivec2) CompositeConstruct 428 428 - 430: 166(bvec2) SLessThan 427 429 - 431: 259(ptr) AccessChain 422(bv) 175 - 432: 165(bool) CompositeExtract 430 0 - Store 431 432 - 433: 259(ptr) AccessChain 422(bv) 176 - 434: 165(bool) CompositeExtract 430 1 - Store 433 434 - 435: 184(ivec3) Load 325(u32v) - 436: 14(int) Load 327(u32) - 437: 184(ivec3) CompositeConstruct 436 436 436 - 438: 394(bvec3) ULessThanEqual 435 437 - Store 422(bv) 438 - 439: 52(ivec2) Load 312(i32v) - 440: 18(int) Load 315(i32) - 441: 52(ivec2) CompositeConstruct 440 440 - 442: 166(bvec2) SLessThanEqual 439 441 - 443: 259(ptr) AccessChain 422(bv) 175 - 444: 165(bool) CompositeExtract 442 0 - Store 443 444 - 445: 259(ptr) AccessChain 422(bv) 176 - 446: 165(bool) CompositeExtract 442 1 - Store 445 446 - 447: 184(ivec3) Load 325(u32v) - 448: 14(int) Load 327(u32) - 449: 184(ivec3) CompositeConstruct 448 448 448 - 450: 394(bvec3) UGreaterThan 447 449 - Store 422(bv) 450 - 451: 52(ivec2) Load 312(i32v) - 452: 18(int) Load 315(i32) - 453: 52(ivec2) CompositeConstruct 452 452 - 454: 166(bvec2) SGreaterThan 451 453 - 455: 259(ptr) AccessChain 422(bv) 175 - 456: 165(bool) CompositeExtract 454 0 - Store 455 456 - 457: 259(ptr) AccessChain 422(bv) 176 - 458: 165(bool) CompositeExtract 454 1 - Store 457 458 - 459: 184(ivec3) Load 325(u32v) - 460: 14(int) Load 327(u32) - 461: 184(ivec3) CompositeConstruct 460 460 460 - 462: 394(bvec3) UGreaterThanEqual 459 461 - Store 422(bv) 462 - 463: 52(ivec2) Load 312(i32v) - 464: 18(int) Load 315(i32) - 465: 52(ivec2) CompositeConstruct 464 464 - 466: 166(bvec2) SGreaterThanEqual 463 465 - 467: 259(ptr) AccessChain 422(bv) 175 - 468: 165(bool) CompositeExtract 466 0 - Store 467 468 - 469: 259(ptr) AccessChain 422(bv) 176 - 470: 165(bool) CompositeExtract 466 1 - Store 469 470 - 471: 184(ivec3) Load 325(u32v) - 472: 14(int) Load 327(u32) - 473: 184(ivec3) CompositeConstruct 472 472 472 - 474: 394(bvec3) IEqual 471 473 - Store 422(bv) 474 - 475: 52(ivec2) Load 312(i32v) - 476: 18(int) Load 315(i32) - 477: 52(ivec2) CompositeConstruct 476 476 - 478: 166(bvec2) IEqual 475 477 - 479: 259(ptr) AccessChain 422(bv) 175 - 480: 165(bool) CompositeExtract 478 0 - Store 479 480 - 481: 259(ptr) AccessChain 422(bv) 176 - 482: 165(bool) CompositeExtract 478 1 - Store 481 482 - 483: 184(ivec3) Load 325(u32v) - 484: 14(int) Load 327(u32) - 485: 184(ivec3) CompositeConstruct 484 484 484 - 486: 394(bvec3) INotEqual 483 485 - Store 422(bv) 486 - 487: 52(ivec2) Load 312(i32v) - 488: 18(int) Load 315(i32) - 489: 52(ivec2) CompositeConstruct 488 488 - 490: 166(bvec2) INotEqual 487 489 - 491: 259(ptr) AccessChain 422(bv) 175 - 492: 165(bool) CompositeExtract 490 0 - Store 491 492 - 493: 259(ptr) AccessChain 422(bv) 176 - 494: 165(bool) CompositeExtract 490 1 - Store 493 494 + 306(i32v): 53(ptr) Variable Function + 309(i32): 19(ptr) Variable Function + 319(u32v): 179(ptr) Variable Function + 321(u32): 38(ptr) Variable Function + 393(i8v4): 392(ptr) Variable Function + 396(i16v2): 104(ptr) Variable Function + 401(u8v4): 400(ptr) Variable Function + 404(u16v2): 128(ptr) Variable Function + 407(i64): 220(ptr) Variable Function + 410(u32v2): 50(ptr) Variable Function + 412(u64): 411(ptr) Variable Function + 416(bv): 415(ptr) Variable Function + 307: 52(ivec2) Load 306(i32v) + 308: 52(ivec2) ExtInst 1(GLSL.std.450) 5(SAbs) 307 + Store 306(i32v) 308 + 310: 18(int) Load 309(i32) + 311: 18(int) ExtInst 1(GLSL.std.450) 7(SSign) 310 + Store 309(i32) 311 + 312: 52(ivec2) Load 306(i32v) + 313: 18(int) Load 309(i32) + 314: 52(ivec2) CompositeConstruct 313 313 + 315: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 312 314 + Store 306(i32v) 315 + 316: 52(ivec2) Load 306(i32v) + 318: 52(ivec2) ExtInst 1(GLSL.std.450) 39(SMin) 316 317 + Store 306(i32v) 318 + 320: 178(ivec3) Load 319(u32v) + 322: 14(int) Load 321(u32) + 323: 178(ivec3) CompositeConstruct 322 322 322 + 324: 178(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 320 323 + Store 319(u32v) 324 + 325: 178(ivec3) Load 319(u32v) + 327: 178(ivec3) ExtInst 1(GLSL.std.450) 38(UMin) 325 326 + Store 319(u32v) 327 + 328: 52(ivec2) Load 306(i32v) + 329: 18(int) Load 309(i32) + 330: 52(ivec2) CompositeConstruct 329 329 + 331: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 328 330 + Store 306(i32v) 331 + 332: 52(ivec2) Load 306(i32v) + 333: 52(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 332 317 + Store 306(i32v) 333 + 334: 178(ivec3) Load 319(u32v) + 335: 14(int) Load 321(u32) + 336: 178(ivec3) CompositeConstruct 335 335 335 + 337: 178(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 334 336 + Store 319(u32v) 337 + 338: 178(ivec3) Load 319(u32v) + 339: 178(ivec3) ExtInst 1(GLSL.std.450) 41(UMax) 338 326 + Store 319(u32v) 339 + 340: 52(ivec2) Load 306(i32v) + 341: 18(int) Load 309(i32) + 342: 18(int) SNegate 341 + 343: 18(int) Load 309(i32) + 344: 52(ivec2) CompositeConstruct 342 342 + 345: 52(ivec2) CompositeConstruct 343 343 + 346: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 340 344 345 + Store 306(i32v) 346 + 347: 52(ivec2) Load 306(i32v) + 348: 52(ivec2) Load 306(i32v) + 349: 52(ivec2) SNegate 348 + 350: 52(ivec2) Load 306(i32v) + 351: 52(ivec2) ExtInst 1(GLSL.std.450) 45(SClamp) 347 349 350 + Store 306(i32v) 351 + 352: 178(ivec3) Load 319(u32v) + 353: 14(int) Load 321(u32) + 354: 14(int) SNegate 353 + 355: 14(int) Load 321(u32) + 356: 178(ivec3) CompositeConstruct 354 354 354 + 357: 178(ivec3) CompositeConstruct 355 355 355 + 358: 178(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 352 356 357 + Store 319(u32v) 358 + 359: 178(ivec3) Load 319(u32v) + 360: 178(ivec3) Load 319(u32v) + 361: 178(ivec3) SNegate 360 + 362: 178(ivec3) Load 319(u32v) + 363: 178(ivec3) ExtInst 1(GLSL.std.450) 44(UClamp) 359 361 362 + Store 319(u32v) 363 + 364: 19(ptr) AccessChain 306(i32v) 169 + 365: 18(int) Load 364 + 366: 19(ptr) AccessChain 306(i32v) 170 + 367: 18(int) Load 366 + 369: 18(int) Select 368 367 365 + Store 309(i32) 369 + 370: 18(int) Load 309(i32) + 371: 52(ivec2) CompositeConstruct 370 370 + 372: 18(int) Load 309(i32) + 373: 18(int) SNegate 372 + 374: 52(ivec2) CompositeConstruct 373 373 + 377: 52(ivec2) Select 376 374 371 + Store 306(i32v) 377 + 378: 38(ptr) AccessChain 319(u32v) 169 + 379: 14(int) Load 378 + 380: 38(ptr) AccessChain 319(u32v) 170 + 381: 14(int) Load 380 + 382: 14(int) Select 368 381 379 + Store 321(u32) 382 + 383: 14(int) Load 321(u32) + 384: 178(ivec3) CompositeConstruct 383 383 383 + 385: 14(int) Load 321(u32) + 386: 14(int) SNegate 385 + 387: 178(ivec3) CompositeConstruct 386 386 386 + 390: 178(ivec3) Select 389 387 384 + Store 319(u32v) 390 + 394: 391(i8vec4) Load 393(i8v4) + 395: 18(int) Bitcast 394 + Store 309(i32) 395 + 397:103(i16vec2) Load 396(i16v2) + 398: 18(int) Bitcast 397 + Store 309(i32) 398 + 402: 399(i8vec4) Load 401(u8v4) + 403: 14(int) Bitcast 402 + Store 321(u32) 403 + 405:110(i16vec2) Load 404(u16v2) + 406: 14(int) Bitcast 405 + Store 321(u32) 406 + 408: 57(int64_t) Load 407(i64) + 409: 52(ivec2) Bitcast 408 + Store 306(i32v) 409 + 413: 63(int64_t) Load 412(u64) + 414: 49(ivec2) Bitcast 413 + Store 410(u32v2) 414 + 417: 178(ivec3) Load 319(u32v) + 418: 14(int) Load 321(u32) + 419: 178(ivec3) CompositeConstruct 418 418 418 + 420: 388(bvec3) ULessThan 417 419 + Store 416(bv) 420 + 421: 52(ivec2) Load 306(i32v) + 422: 18(int) Load 309(i32) + 423: 52(ivec2) CompositeConstruct 422 422 + 424: 160(bvec2) SLessThan 421 423 + 425: 253(ptr) AccessChain 416(bv) 169 + 426: 159(bool) CompositeExtract 424 0 + Store 425 426 + 427: 253(ptr) AccessChain 416(bv) 170 + 428: 159(bool) CompositeExtract 424 1 + Store 427 428 + 429: 178(ivec3) Load 319(u32v) + 430: 14(int) Load 321(u32) + 431: 178(ivec3) CompositeConstruct 430 430 430 + 432: 388(bvec3) ULessThanEqual 429 431 + Store 416(bv) 432 + 433: 52(ivec2) Load 306(i32v) + 434: 18(int) Load 309(i32) + 435: 52(ivec2) CompositeConstruct 434 434 + 436: 160(bvec2) SLessThanEqual 433 435 + 437: 253(ptr) AccessChain 416(bv) 169 + 438: 159(bool) CompositeExtract 436 0 + Store 437 438 + 439: 253(ptr) AccessChain 416(bv) 170 + 440: 159(bool) CompositeExtract 436 1 + Store 439 440 + 441: 178(ivec3) Load 319(u32v) + 442: 14(int) Load 321(u32) + 443: 178(ivec3) CompositeConstruct 442 442 442 + 444: 388(bvec3) UGreaterThan 441 443 + Store 416(bv) 444 + 445: 52(ivec2) Load 306(i32v) + 446: 18(int) Load 309(i32) + 447: 52(ivec2) CompositeConstruct 446 446 + 448: 160(bvec2) SGreaterThan 445 447 + 449: 253(ptr) AccessChain 416(bv) 169 + 450: 159(bool) CompositeExtract 448 0 + Store 449 450 + 451: 253(ptr) AccessChain 416(bv) 170 + 452: 159(bool) CompositeExtract 448 1 + Store 451 452 + 453: 178(ivec3) Load 319(u32v) + 454: 14(int) Load 321(u32) + 455: 178(ivec3) CompositeConstruct 454 454 454 + 456: 388(bvec3) UGreaterThanEqual 453 455 + Store 416(bv) 456 + 457: 52(ivec2) Load 306(i32v) + 458: 18(int) Load 309(i32) + 459: 52(ivec2) CompositeConstruct 458 458 + 460: 160(bvec2) SGreaterThanEqual 457 459 + 461: 253(ptr) AccessChain 416(bv) 169 + 462: 159(bool) CompositeExtract 460 0 + Store 461 462 + 463: 253(ptr) AccessChain 416(bv) 170 + 464: 159(bool) CompositeExtract 460 1 + Store 463 464 + 465: 178(ivec3) Load 319(u32v) + 466: 14(int) Load 321(u32) + 467: 178(ivec3) CompositeConstruct 466 466 466 + 468: 388(bvec3) IEqual 465 467 + Store 416(bv) 468 + 469: 52(ivec2) Load 306(i32v) + 470: 18(int) Load 309(i32) + 471: 52(ivec2) CompositeConstruct 470 470 + 472: 160(bvec2) IEqual 469 471 + 473: 253(ptr) AccessChain 416(bv) 169 + 474: 159(bool) CompositeExtract 472 0 + Store 473 474 + 475: 253(ptr) AccessChain 416(bv) 170 + 476: 159(bool) CompositeExtract 472 1 + Store 475 476 + 477: 178(ivec3) Load 319(u32v) + 478: 14(int) Load 321(u32) + 479: 178(ivec3) CompositeConstruct 478 478 478 + 480: 388(bvec3) INotEqual 477 479 + Store 416(bv) 480 + 481: 52(ivec2) Load 306(i32v) + 482: 18(int) Load 309(i32) + 483: 52(ivec2) CompositeConstruct 482 482 + 484: 160(bvec2) INotEqual 481 483 + 485: 253(ptr) AccessChain 416(bv) 169 + 486: 159(bool) CompositeExtract 484 0 + Store 485 486 + 487: 253(ptr) AccessChain 416(bv) 170 + 488: 159(bool) CompositeExtract 484 1 + Store 487 488 Return FunctionEnd