diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 06ab0948..e5e2169b 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -142,7 +142,6 @@ protected: std::unordered_map structMap; std::unordered_map > memberRemapper; // for mapping glslang block indices to spv indices (e.g., due to hidden members) std::stack breakForLoop; // false means break for switch - std::stack loopTerminal; // code from the last part of a for loop: for(...; ...; terminal), needed for e.g., continue }; }; // @@ -1354,10 +1353,12 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn builder.createLoopMerge(&blocks.merge, &blocks.continue_target, spv::LoopControlMaskNone); builder.createConditionalBranch(condition, &blocks.body, &blocks.merge); + breakForLoop.push(true); builder.setBuildPoint(&blocks.body); if (node->getBody()) node->getBody()->traverse(this); builder.createBranch(&blocks.continue_target); + breakForLoop.pop(); builder.setBuildPoint(&blocks.continue_target); if (node->getTerminal()) @@ -1366,10 +1367,12 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn } else { builder.createBranch(&blocks.body); + breakForLoop.push(true); builder.setBuildPoint(&blocks.body); if (node->getBody()) node->getBody()->traverse(this); builder.createBranch(&blocks.continue_target); + breakForLoop.pop(); builder.setBuildPoint(&blocks.continue_target); if (node->getTerminal()) @@ -1387,6 +1390,7 @@ bool TGlslangToSpvTraverser::visitLoop(glslang::TVisit /* visit */, glslang::TIn } builder.setBuildPoint(&blocks.merge); + builder.closeLoop(); return false; } @@ -1406,8 +1410,6 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T builder.addSwitchBreak(); break; case glslang::EOpContinue: - if (loopTerminal.top()) - loopTerminal.top()->traverse(this); builder.createLoopContinue(); break; case glslang::EOpReturn: diff --git a/Test/baseResults/spv.dataOutIndirect.vert.out b/Test/baseResults/spv.dataOutIndirect.vert.out index 0b24b624..0efe6568 100755 --- a/Test/baseResults/spv.dataOutIndirect.vert.out +++ b/Test/baseResults/spv.dataOutIndirect.vert.out @@ -1,71 +1,73 @@ -spv.dataOutIndirect.vert -WARNING: 0:3: attribute deprecated in version 130; may be removed in future release -WARNING: 0:4: varying deprecated in version 130; may be removed in future release - - -Linked vertex stage: - - -// Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 38 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 26 23 37 - Source GLSL 130 - Name 4 "main" - Name 8 "i" - Name 23 "colorOut" - Name 26 "color" - Name 32 "gl_Position" - Name 37 "gl_VertexID" - Decorate 32(gl_Position) BuiltIn Position - Decorate 37(gl_VertexID) BuiltIn VertexId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 1 - 14: 6(int) Constant 5 - 15: TypeBool - 17: TypeFloat 32 - 18: TypeVector 17(float) 4 - 19: TypeInt 32 0 - 20: 19(int) Constant 6 - 21: TypeArray 18(fvec4) 20 - 22: TypePointer Output 21 - 23(colorOut): 22(ptr) Variable Output - 25: TypePointer Input 18(fvec4) - 26(color): 25(ptr) Variable Input - 28: TypePointer Output 18(fvec4) - 32(gl_Position): 28(ptr) Variable Output - 33: 6(int) Constant 2 - 36: TypePointer Input 6(int) - 37(gl_VertexID): 36(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - 13: 6(int) Load 8(i) - 16: 15(bool) SLessThan 13 14 - LoopMerge 11 10 None - BranchConditional 16 12 11 - 12: Label - 24: 6(int) Load 8(i) - 27: 18(fvec4) Load 26(color) - 29: 28(ptr) AccessChain 23(colorOut) 24 - Store 29 27 - 30: 6(int) Load 8(i) - 31: 6(int) IAdd 30 9 - Store 8(i) 31 - Branch 10 - 11: Label - 34: 28(ptr) AccessChain 23(colorOut) 33 - 35: 18(fvec4) Load 34 - Store 32(gl_Position) 35 - Return - FunctionEnd +spv.dataOutIndirect.vert +WARNING: 0:3: attribute deprecated in version 130; may be removed in future release +WARNING: 0:4: varying deprecated in version 130; may be removed in future release + + +Linked vertex stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 39 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 27 24 38 + Source GLSL 130 + Name 4 "main" + Name 8 "i" + Name 24 "colorOut" + Name 27 "color" + Name 33 "gl_Position" + Name 38 "gl_VertexID" + Decorate 33(gl_Position) BuiltIn Position + Decorate 38(gl_VertexID) BuiltIn VertexId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 1 + 15: 6(int) Constant 5 + 16: TypeBool + 18: TypeFloat 32 + 19: TypeVector 18(float) 4 + 20: TypeInt 32 0 + 21: 20(int) Constant 6 + 22: TypeArray 19(fvec4) 21 + 23: TypePointer Output 22 + 24(colorOut): 23(ptr) Variable Output + 26: TypePointer Input 19(fvec4) + 27(color): 26(ptr) Variable Input + 29: TypePointer Output 19(fvec4) + 33(gl_Position): 29(ptr) Variable Output + 34: 6(int) Constant 2 + 37: TypePointer Input 6(int) + 38(gl_VertexID): 37(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + Store 8(i) 9 + Branch 13 + 10: Label + 25: 6(int) Load 8(i) + 28: 19(fvec4) Load 27(color) + 30: 29(ptr) AccessChain 24(colorOut) 25 + Store 30 28 + Branch 12 + 11: Label + 35: 29(ptr) AccessChain 24(colorOut) 34 + 36: 19(fvec4) Load 35 + Store 33(gl_Position) 36 + Return + 12: Label + 31: 6(int) Load 8(i) + 32: 6(int) IAdd 31 9 + Store 8(i) 32 + Branch 13 + 13: Label + 14: 6(int) Load 8(i) + 17: 16(bool) SLessThan 14 15 + LoopMerge 11 12 None + BranchConditional 17 10 11 + FunctionEnd diff --git a/Test/baseResults/spv.do-simple.vert.out b/Test/baseResults/spv.do-simple.vert.out index 5da88276..694da83a 100755 --- a/Test/baseResults/spv.do-simple.vert.out +++ b/Test/baseResults/spv.do-simple.vert.out @@ -5,56 +5,45 @@ Linked vertex stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 29 +// Id's are bound by 23 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 27 28 + EntryPoint Vertex 4 "main" 21 22 Source ESSL 300 Name 4 "main" Name 8 "i" - Name 27 "gl_VertexID" - Name 28 "gl_InstanceID" - Decorate 27(gl_VertexID) BuiltIn VertexId - Decorate 28(gl_InstanceID) BuiltIn InstanceId + Name 21 "gl_VertexID" + Name 22 "gl_InstanceID" + Decorate 21(gl_VertexID) BuiltIn VertexId + Decorate 22(gl_InstanceID) BuiltIn InstanceId 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypePointer Function 6(int) 9: 6(int) Constant 0 - 14: TypeBool - 15: 14(bool) ConstantTrue - 19: 6(int) Constant 10 - 23: 6(int) Constant 1 - 25: 14(bool) ConstantFalse - 26: TypePointer Input 6(int) - 27(gl_VertexID): 26(ptr) Variable Input -28(gl_InstanceID): 26(ptr) Variable Input + 14: 6(int) Constant 1 + 17: 6(int) Constant 10 + 18: TypeBool + 20: TypePointer Input 6(int) + 21(gl_VertexID): 20(ptr) Variable Input +22(gl_InstanceID): 20(ptr) Variable Input 4(main): 2 Function None 3 5: Label 8(i): 7(ptr) Variable Function Store 8(i) 9 Branch 10 10: Label - 13: 14(bool) Phi 15 5 25 12 - LoopMerge 11 10 None - Branch 16 - 16: Label - SelectionMerge 12 None - BranchConditional 13 12 17 - 17: Label - 18: 6(int) Load 8(i) - 20: 14(bool) SLessThan 18 19 - SelectionMerge 21 None - BranchConditional 20 21 11 - 21: Label - Branch 12 - 12: Label - 22: 6(int) Load 8(i) - 24: 6(int) IAdd 22 23 - Store 8(i) 24 - Branch 10 + 13: 6(int) Load 8(i) + 15: 6(int) IAdd 13 14 + Store 8(i) 15 + Branch 12 11: Label Return - FunctionEnd + 12: Label + 16: 6(int) Load 8(i) + 19: 18(bool) SLessThan 16 17 + LoopMerge 11 12 None + BranchConditional 19 10 11 + FunctionEnd diff --git a/Test/baseResults/spv.do-while-continue-break.vert.out b/Test/baseResults/spv.do-while-continue-break.vert.out index f148d51d..c70c28da 100755 --- a/Test/baseResults/spv.do-while-continue-break.vert.out +++ b/Test/baseResults/spv.do-while-continue-break.vert.out @@ -1,104 +1,93 @@ -spv.do-while-continue-break.vert - -Linked vertex stage: - - -// Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 51 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 49 50 - Source ESSL 300 - Name 4 "main" - Name 8 "i" - Name 24 "A" - Name 30 "B" - Name 33 "C" - Name 39 "D" - Name 42 "E" - Name 44 "F" - Name 46 "G" - Name 49 "gl_VertexID" - Name 50 "gl_InstanceID" - Decorate 49(gl_VertexID) BuiltIn VertexId - Decorate 50(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 14: TypeBool - 15: 14(bool) ConstantTrue - 19: 6(int) Constant 1 - 21: 6(int) Constant 19 - 26: 6(int) Constant 2 - 31: 14(bool) ConstantFalse - 35: 6(int) Constant 5 - 40: 6(int) Constant 3 - 43: 6(int) Constant 42 - 45: 6(int) Constant 99 - 47: 6(int) Constant 12 - 48: TypePointer Input 6(int) - 49(gl_VertexID): 48(ptr) Variable Input -50(gl_InstanceID): 48(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - 24(A): 7(ptr) Variable Function - 30(B): 7(ptr) Variable Function - 33(C): 7(ptr) Variable Function - 39(D): 7(ptr) Variable Function - 42(E): 7(ptr) Variable Function - 44(F): 7(ptr) Variable Function - 46(G): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - 13: 14(bool) Phi 15 5 31 28 31 38 - LoopMerge 11 10 None - Branch 16 - 16: Label - SelectionMerge 12 None - BranchConditional 13 12 17 - 17: Label - 18: 6(int) Load 8(i) - 20: 6(int) IAdd 18 19 - Store 8(i) 20 - 22: 14(bool) SLessThan 20 21 - SelectionMerge 23 None - BranchConditional 22 23 11 - 23: Label - Branch 12 - 12: Label - Store 24(A) 9 - 25: 6(int) Load 8(i) - 27: 14(bool) IEqual 25 26 - SelectionMerge 29 None - BranchConditional 27 28 29 - 28: Label - Store 30(B) 19 - Branch 10 - 32: Label - Store 33(C) 26 - Branch 29 - 29: Label - 34: 6(int) Load 8(i) - 36: 14(bool) IEqual 34 35 - SelectionMerge 38 None - BranchConditional 36 37 38 - 37: Label - Store 39(D) 40 - Branch 11 - 41: Label - Store 42(E) 43 - Branch 38 - 38: Label - Store 44(F) 45 - Branch 10 - 11: Label - Store 46(G) 47 - Return - FunctionEnd +spv.do-while-continue-break.vert + +Linked vertex stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 45 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 43 44 + Source ESSL 300 + Name 4 "main" + Name 8 "i" + Name 13 "A" + Name 20 "B" + Name 23 "C" + Name 29 "D" + Name 32 "E" + Name 34 "F" + Name 40 "G" + Name 43 "gl_VertexID" + Name 44 "gl_InstanceID" + Decorate 43(gl_VertexID) BuiltIn VertexId + Decorate 44(gl_InstanceID) BuiltIn InstanceId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 15: 6(int) Constant 2 + 16: TypeBool + 21: 6(int) Constant 1 + 25: 6(int) Constant 5 + 30: 6(int) Constant 3 + 33: 6(int) Constant 42 + 35: 6(int) Constant 99 + 38: 6(int) Constant 19 + 41: 6(int) Constant 12 + 42: TypePointer Input 6(int) + 43(gl_VertexID): 42(ptr) Variable Input +44(gl_InstanceID): 42(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + 13(A): 7(ptr) Variable Function + 20(B): 7(ptr) Variable Function + 23(C): 7(ptr) Variable Function + 29(D): 7(ptr) Variable Function + 32(E): 7(ptr) Variable Function + 34(F): 7(ptr) Variable Function + 40(G): 7(ptr) Variable Function + Store 8(i) 9 + Branch 10 + 10: Label + Store 13(A) 9 + 14: 6(int) Load 8(i) + 17: 16(bool) IEqual 14 15 + SelectionMerge 19 None + BranchConditional 17 18 19 + 11: Label + Store 40(G) 41 + Return + 12: Label + 36: 6(int) Load 8(i) + 37: 6(int) IAdd 36 21 + Store 8(i) 37 + 39: 16(bool) SLessThan 37 38 + LoopMerge 11 12 None + BranchConditional 39 10 11 + 18: Label + Store 20(B) 21 + Branch 12 + 22: Label + Store 23(C) 15 + Branch 19 + 19: Label + 24: 6(int) Load 8(i) + 26: 16(bool) IEqual 24 25 + SelectionMerge 28 None + BranchConditional 26 27 28 + 27: Label + Store 29(D) 30 + Branch 11 + 31: Label + Store 32(E) 33 + Branch 28 + 28: Label + Store 34(F) 35 + Branch 12 + FunctionEnd diff --git a/Test/baseResults/spv.doWhileLoop.frag.out b/Test/baseResults/spv.doWhileLoop.frag.out index d33fb8b1..64d05813 100755 --- a/Test/baseResults/spv.doWhileLoop.frag.out +++ b/Test/baseResults/spv.doWhileLoop.frag.out @@ -1,73 +1,62 @@ -spv.doWhileLoop.frag - -Linked fragment stage: - - -// Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 40 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 - ExecutionMode 4 OriginLowerLeft - Source GLSL 110 - Name 4 "main" - Name 9 "color" - Name 11 "BaseColor" - Name 27 "d" - Name 32 "bigColor" - Name 38 "gl_FragColor" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(BaseColor): 10(ptr) Variable Input - 17: TypeBool - 18: 17(bool) ConstantTrue - 21: TypeInt 32 0 - 22: 21(int) Constant 0 - 23: TypePointer Function 6(float) - 26: TypePointer UniformConstant 6(float) - 27(d): 26(ptr) Variable UniformConstant - 31: TypePointer UniformConstant 7(fvec4) - 32(bigColor): 31(ptr) Variable UniformConstant - 36: 17(bool) ConstantFalse - 37: TypePointer Output 7(fvec4) -38(gl_FragColor): 37(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 12: 7(fvec4) Load 11(BaseColor) - Store 9(color) 12 - Branch 13 - 13: Label - 16: 17(bool) Phi 18 5 36 15 - LoopMerge 14 13 None - Branch 19 - 19: Label - SelectionMerge 15 None - BranchConditional 16 15 20 - 20: Label - 24: 23(ptr) AccessChain 9(color) 22 - 25: 6(float) Load 24 - 28: 6(float) Load 27(d) - 29: 17(bool) FOrdLessThan 25 28 - SelectionMerge 30 None - BranchConditional 29 30 14 - 30: Label - Branch 15 - 15: Label - 33: 7(fvec4) Load 32(bigColor) - 34: 7(fvec4) Load 9(color) - 35: 7(fvec4) FAdd 34 33 - Store 9(color) 35 - Branch 13 - 14: Label - 39: 7(fvec4) Load 9(color) - Store 38(gl_FragColor) 39 - Return - FunctionEnd +spv.doWhileLoop.frag + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 34 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 + ExecutionMode 4 OriginLowerLeft + Source GLSL 110 + Name 4 "main" + Name 9 "color" + Name 11 "BaseColor" + Name 17 "bigColor" + Name 27 "d" + Name 32 "gl_FragColor" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 16: TypePointer UniformConstant 7(fvec4) + 17(bigColor): 16(ptr) Variable UniformConstant + 21: TypeInt 32 0 + 22: 21(int) Constant 0 + 23: TypePointer Function 6(float) + 26: TypePointer UniformConstant 6(float) + 27(d): 26(ptr) Variable UniformConstant + 29: TypeBool + 31: TypePointer Output 7(fvec4) +32(gl_FragColor): 31(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 9(color): 8(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Branch 13 + 13: Label + 18: 7(fvec4) Load 17(bigColor) + 19: 7(fvec4) Load 9(color) + 20: 7(fvec4) FAdd 19 18 + Store 9(color) 20 + Branch 15 + 14: Label + 33: 7(fvec4) Load 9(color) + Store 32(gl_FragColor) 33 + Return + 15: Label + 24: 23(ptr) AccessChain 9(color) 22 + 25: 6(float) Load 24 + 28: 6(float) Load 27(d) + 30: 29(bool) FOrdLessThan 25 28 + LoopMerge 14 15 None + BranchConditional 30 13 14 + FunctionEnd diff --git a/Test/baseResults/spv.for-continue-break.vert.out b/Test/baseResults/spv.for-continue-break.vert.out index eac3ddb8..df2acab4 100755 --- a/Test/baseResults/spv.for-continue-break.vert.out +++ b/Test/baseResults/spv.for-continue-break.vert.out @@ -1,97 +1,96 @@ -spv.for-continue-break.vert - -Linked vertex stage: - - -// Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 48 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 46 47 - Source ESSL 300 - Name 4 "main" - Name 8 "i" - Name 17 "A" - Name 25 "B" - Name 29 "C" - Name 36 "D" - Name 38 "E" - Name 39 "F" - Name 43 "G" - Name 46 "gl_VertexID" - Name 47 "gl_InstanceID" - Decorate 46(gl_VertexID) BuiltIn VertexId - Decorate 47(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 14: 6(int) Constant 10 - 15: TypeBool - 18: 6(int) Constant 1 - 20: 6(int) Constant 2 - 31: 6(int) Constant 3 - 40: 6(int) Constant 12 - 44: 6(int) Constant 99 - 45: TypePointer Input 6(int) - 46(gl_VertexID): 45(ptr) Variable Input -47(gl_InstanceID): 45(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - 17(A): 7(ptr) Variable Function - 25(B): 7(ptr) Variable Function - 29(C): 7(ptr) Variable Function - 36(D): 7(ptr) Variable Function - 38(E): 7(ptr) Variable Function - 39(F): 7(ptr) Variable Function - 43(G): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - 13: 6(int) Load 8(i) - 16: 15(bool) SLessThan 13 14 - LoopMerge 11 10 None - BranchConditional 16 12 11 - 12: Label - Store 17(A) 18 - 19: 6(int) Load 8(i) - 21: 6(int) SMod 19 20 - 22: 15(bool) IEqual 21 9 - SelectionMerge 24 None - BranchConditional 22 23 24 - 23: Label - Store 25(B) 18 - 26: 6(int) Load 8(i) - 27: 6(int) IAdd 26 18 - Store 8(i) 27 - Branch 10 - 28: Label - Store 29(C) 18 - Branch 24 - 24: Label - 30: 6(int) Load 8(i) - 32: 6(int) SMod 30 31 - 33: 15(bool) IEqual 32 9 - SelectionMerge 35 None - BranchConditional 33 34 35 - 34: Label - Store 36(D) 18 - Branch 11 - 37: Label - Store 38(E) 18 - Branch 35 - 35: Label - Store 39(F) 40 - 41: 6(int) Load 8(i) - 42: 6(int) IAdd 41 18 - Store 8(i) 42 - Branch 10 - 11: Label - Store 43(G) 44 - Return - FunctionEnd +spv.for-continue-break.vert + +Linked vertex stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 47 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 45 46 + Source ESSL 300 + Name 4 "main" + Name 8 "i" + Name 18 "A" + Name 26 "B" + Name 28 "C" + Name 35 "D" + Name 37 "E" + Name 38 "F" + Name 42 "G" + Name 45 "gl_VertexID" + Name 46 "gl_InstanceID" + Decorate 45(gl_VertexID) BuiltIn VertexId + Decorate 46(gl_InstanceID) BuiltIn InstanceId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 15: 6(int) Constant 10 + 16: TypeBool + 19: 6(int) Constant 1 + 21: 6(int) Constant 2 + 30: 6(int) Constant 3 + 39: 6(int) Constant 12 + 43: 6(int) Constant 99 + 44: TypePointer Input 6(int) + 45(gl_VertexID): 44(ptr) Variable Input +46(gl_InstanceID): 44(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + 18(A): 7(ptr) Variable Function + 26(B): 7(ptr) Variable Function + 28(C): 7(ptr) Variable Function + 35(D): 7(ptr) Variable Function + 37(E): 7(ptr) Variable Function + 38(F): 7(ptr) Variable Function + 42(G): 7(ptr) Variable Function + Store 8(i) 9 + Branch 13 + 10: Label + Store 18(A) 19 + 20: 6(int) Load 8(i) + 22: 6(int) SMod 20 21 + 23: 16(bool) IEqual 22 9 + SelectionMerge 25 None + BranchConditional 23 24 25 + 11: Label + Store 42(G) 43 + Return + 12: Label + 40: 6(int) Load 8(i) + 41: 6(int) IAdd 40 19 + Store 8(i) 41 + Branch 13 + 13: Label + 14: 6(int) Load 8(i) + 17: 16(bool) SLessThan 14 15 + LoopMerge 11 12 None + BranchConditional 17 10 11 + 24: Label + Store 26(B) 19 + Branch 12 + 27: Label + Store 28(C) 19 + Branch 25 + 25: Label + 29: 6(int) Load 8(i) + 31: 6(int) SMod 29 30 + 32: 16(bool) IEqual 31 9 + SelectionMerge 34 None + BranchConditional 32 33 34 + 33: Label + Store 35(D) 19 + Branch 11 + 36: Label + Store 37(E) 19 + Branch 34 + 34: Label + Store 38(F) 39 + Branch 12 + FunctionEnd diff --git a/Test/baseResults/spv.forLoop.frag.out b/Test/baseResults/spv.forLoop.frag.out index 1be209b4..3e4cb28a 100755 --- a/Test/baseResults/spv.forLoop.frag.out +++ b/Test/baseResults/spv.forLoop.frag.out @@ -1,194 +1,204 @@ -spv.forLoop.frag - -Linked fragment stage: - - -// Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 122 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 97 - ExecutionMode 4 OriginLowerLeft - Source GLSL 130 - Name 4 "main" - Name 9 "color" - Name 11 "BaseColor" - Name 15 "i" - Name 22 "Count" - Name 27 "bigColor" - Name 35 "gl_FragColor" - Name 38 "sum" - Name 40 "i" - Name 50 "v4" - Name 60 "i" - Name 66 "tv4" - Name 83 "r" - Name 89 "i" - Name 97 "f" - Name 110 "i" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(BaseColor): 10(ptr) Variable Input - 13: TypeInt 32 1 - 14: TypePointer Function 13(int) - 16: 13(int) Constant 0 - 21: TypePointer UniformConstant 13(int) - 22(Count): 21(ptr) Variable UniformConstant - 24: TypeBool - 26: TypePointer UniformConstant 7(fvec4) - 27(bigColor): 26(ptr) Variable UniformConstant - 32: 13(int) Constant 1 - 34: TypePointer Output 7(fvec4) -35(gl_FragColor): 34(ptr) Variable Output - 37: TypePointer Function 6(float) - 39: 6(float) Constant 0 - 45: 13(int) Constant 4 - 47: TypeInt 32 0 - 48: TypeVector 47(int) 4 - 49: TypePointer UniformConstant 48(ivec4) - 50(v4): 49(ptr) Variable UniformConstant - 52: TypePointer UniformConstant 47(int) - 71: 47(int) Constant 4 - 84: TypeVector 6(float) 3 - 96: TypePointer Input 6(float) - 97(f): 96(ptr) Variable Input - 99: 47(int) Constant 3 - 115: 13(int) Constant 16 - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 15(i): 14(ptr) Variable Function - 38(sum): 37(ptr) Variable Function - 40(i): 14(ptr) Variable Function - 60(i): 14(ptr) Variable Function - 66(tv4): 8(ptr) Variable Function - 83(r): 8(ptr) Variable Function - 89(i): 14(ptr) Variable Function - 110(i): 14(ptr) Variable Function - 12: 7(fvec4) Load 11(BaseColor) - Store 9(color) 12 - Store 15(i) 16 - Branch 17 - 17: Label - 20: 13(int) Load 15(i) - 23: 13(int) Load 22(Count) - 25: 24(bool) SLessThan 20 23 - LoopMerge 18 17 None - BranchConditional 25 19 18 - 19: Label - 28: 7(fvec4) Load 27(bigColor) - 29: 7(fvec4) Load 9(color) - 30: 7(fvec4) FAdd 29 28 - Store 9(color) 30 - 31: 13(int) Load 15(i) - 33: 13(int) IAdd 31 32 - Store 15(i) 33 - Branch 17 - 18: Label - 36: 7(fvec4) Load 9(color) - Store 35(gl_FragColor) 36 - Store 38(sum) 39 - Store 40(i) 16 - Branch 41 - 41: Label - 44: 13(int) Load 40(i) - 46: 24(bool) SLessThan 44 45 - LoopMerge 42 41 None - BranchConditional 46 43 42 - 43: Label - 51: 13(int) Load 40(i) - 53: 52(ptr) AccessChain 50(v4) 51 - 54: 47(int) Load 53 - 55: 6(float) ConvertUToF 54 - 56: 6(float) Load 38(sum) - 57: 6(float) FAdd 56 55 - Store 38(sum) 57 - 58: 13(int) Load 40(i) - 59: 13(int) IAdd 58 32 - Store 40(i) 59 - Branch 41 - 42: Label - Store 60(i) 16 - Branch 61 - 61: Label - 64: 13(int) Load 60(i) - 65: 24(bool) SLessThan 64 45 - LoopMerge 62 61 None - BranchConditional 65 63 62 - 63: Label - 67: 13(int) Load 60(i) - 68: 13(int) Load 60(i) - 69: 52(ptr) AccessChain 50(v4) 68 - 70: 47(int) Load 69 - 72: 47(int) IMul 70 71 - 73: 6(float) ConvertUToF 72 - 74: 37(ptr) AccessChain 66(tv4) 67 - Store 74 73 - 75: 13(int) Load 60(i) - 76: 13(int) IAdd 75 32 - Store 60(i) 76 - Branch 61 - 62: Label - 77: 6(float) Load 38(sum) - 78: 7(fvec4) CompositeConstruct 77 77 77 77 - 79: 7(fvec4) Load 66(tv4) - 80: 7(fvec4) FAdd 78 79 - 81: 7(fvec4) Load 35(gl_FragColor) - 82: 7(fvec4) FAdd 81 80 - Store 35(gl_FragColor) 82 - 85: 7(fvec4) Load 11(BaseColor) - 86: 84(fvec3) VectorShuffle 85 85 0 1 2 - 87: 7(fvec4) Load 83(r) - 88: 7(fvec4) VectorShuffle 87 86 4 5 6 3 - Store 83(r) 88 - Store 89(i) 16 - Branch 90 - 90: Label - 93: 13(int) Load 89(i) - 94: 13(int) Load 22(Count) - 95: 24(bool) SLessThan 93 94 - LoopMerge 91 90 None - BranchConditional 95 92 91 - 92: Label - 98: 6(float) Load 97(f) - 100: 37(ptr) AccessChain 83(r) 99 - Store 100 98 - 101: 13(int) Load 89(i) - 102: 13(int) IAdd 101 32 - Store 89(i) 102 - Branch 90 - 91: Label - 103: 7(fvec4) Load 83(r) - 104: 84(fvec3) VectorShuffle 103 103 0 1 2 - 105: 7(fvec4) Load 35(gl_FragColor) - 106: 84(fvec3) VectorShuffle 105 105 0 1 2 - 107: 84(fvec3) FAdd 106 104 - 108: 7(fvec4) Load 35(gl_FragColor) - 109: 7(fvec4) VectorShuffle 108 107 4 5 6 3 - Store 35(gl_FragColor) 109 - Store 110(i) 16 - Branch 111 - 111: Label - 114: 13(int) Load 110(i) - 116: 24(bool) SLessThan 114 115 - LoopMerge 112 111 None - BranchConditional 116 113 112 - 113: Label - 117: 6(float) Load 97(f) - 118: 7(fvec4) Load 35(gl_FragColor) - 119: 7(fvec4) VectorTimesScalar 118 117 - Store 35(gl_FragColor) 119 - 120: 13(int) Load 110(i) - 121: 13(int) IAdd 120 45 - Store 110(i) 121 - Branch 111 - 112: Label - Return - FunctionEnd +spv.forLoop.frag + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 127 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 101 + ExecutionMode 4 OriginLowerLeft + Source GLSL 130 + Name 4 "main" + Name 9 "color" + Name 11 "BaseColor" + Name 15 "i" + Name 23 "Count" + Name 28 "bigColor" + Name 36 "gl_FragColor" + Name 39 "sum" + Name 41 "i" + Name 52 "v4" + Name 62 "i" + Name 69 "tv4" + Name 86 "r" + Name 92 "i" + Name 101 "f" + Name 114 "i" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 13: TypeInt 32 1 + 14: TypePointer Function 13(int) + 16: 13(int) Constant 0 + 22: TypePointer UniformConstant 13(int) + 23(Count): 22(ptr) Variable UniformConstant + 25: TypeBool + 27: TypePointer UniformConstant 7(fvec4) + 28(bigColor): 27(ptr) Variable UniformConstant + 33: 13(int) Constant 1 + 35: TypePointer Output 7(fvec4) +36(gl_FragColor): 35(ptr) Variable Output + 38: TypePointer Function 6(float) + 40: 6(float) Constant 0 + 47: 13(int) Constant 4 + 49: TypeInt 32 0 + 50: TypeVector 49(int) 4 + 51: TypePointer UniformConstant 50(ivec4) + 52(v4): 51(ptr) Variable UniformConstant + 54: TypePointer UniformConstant 49(int) + 74: 49(int) Constant 4 + 87: TypeVector 6(float) 3 + 100: TypePointer Input 6(float) + 101(f): 100(ptr) Variable Input + 103: 49(int) Constant 3 + 120: 13(int) Constant 16 + 4(main): 2 Function None 3 + 5: Label + 9(color): 8(ptr) Variable Function + 15(i): 14(ptr) Variable Function + 39(sum): 38(ptr) Variable Function + 41(i): 14(ptr) Variable Function + 62(i): 14(ptr) Variable Function + 69(tv4): 8(ptr) Variable Function + 86(r): 8(ptr) Variable Function + 92(i): 14(ptr) Variable Function + 114(i): 14(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Store 15(i) 16 + Branch 20 + 17: Label + 29: 7(fvec4) Load 28(bigColor) + 30: 7(fvec4) Load 9(color) + 31: 7(fvec4) FAdd 30 29 + Store 9(color) 31 + Branch 19 + 18: Label + 37: 7(fvec4) Load 9(color) + Store 36(gl_FragColor) 37 + Store 39(sum) 40 + Store 41(i) 16 + Branch 45 + 19: Label + 32: 13(int) Load 15(i) + 34: 13(int) IAdd 32 33 + Store 15(i) 34 + Branch 20 + 20: Label + 21: 13(int) Load 15(i) + 24: 13(int) Load 23(Count) + 26: 25(bool) SLessThan 21 24 + LoopMerge 18 19 None + BranchConditional 26 17 18 + 42: Label + 53: 13(int) Load 41(i) + 55: 54(ptr) AccessChain 52(v4) 53 + 56: 49(int) Load 55 + 57: 6(float) ConvertUToF 56 + 58: 6(float) Load 39(sum) + 59: 6(float) FAdd 58 57 + Store 39(sum) 59 + Branch 44 + 43: Label + Store 62(i) 16 + Branch 66 + 44: Label + 60: 13(int) Load 41(i) + 61: 13(int) IAdd 60 33 + Store 41(i) 61 + Branch 45 + 45: Label + 46: 13(int) Load 41(i) + 48: 25(bool) SLessThan 46 47 + LoopMerge 43 44 None + BranchConditional 48 42 43 + 63: Label + 70: 13(int) Load 62(i) + 71: 13(int) Load 62(i) + 72: 54(ptr) AccessChain 52(v4) 71 + 73: 49(int) Load 72 + 75: 49(int) IMul 73 74 + 76: 6(float) ConvertUToF 75 + 77: 38(ptr) AccessChain 69(tv4) 70 + Store 77 76 + Branch 65 + 64: Label + 80: 6(float) Load 39(sum) + 81: 7(fvec4) CompositeConstruct 80 80 80 80 + 82: 7(fvec4) Load 69(tv4) + 83: 7(fvec4) FAdd 81 82 + 84: 7(fvec4) Load 36(gl_FragColor) + 85: 7(fvec4) FAdd 84 83 + Store 36(gl_FragColor) 85 + 88: 7(fvec4) Load 11(BaseColor) + 89: 87(fvec3) VectorShuffle 88 88 0 1 2 + 90: 7(fvec4) Load 86(r) + 91: 7(fvec4) VectorShuffle 90 89 4 5 6 3 + Store 86(r) 91 + Store 92(i) 16 + Branch 96 + 65: Label + 78: 13(int) Load 62(i) + 79: 13(int) IAdd 78 33 + Store 62(i) 79 + Branch 66 + 66: Label + 67: 13(int) Load 62(i) + 68: 25(bool) SLessThan 67 47 + LoopMerge 64 65 None + BranchConditional 68 63 64 + 93: Label + 102: 6(float) Load 101(f) + 104: 38(ptr) AccessChain 86(r) 103 + Store 104 102 + Branch 95 + 94: Label + 107: 7(fvec4) Load 86(r) + 108: 87(fvec3) VectorShuffle 107 107 0 1 2 + 109: 7(fvec4) Load 36(gl_FragColor) + 110: 87(fvec3) VectorShuffle 109 109 0 1 2 + 111: 87(fvec3) FAdd 110 108 + 112: 7(fvec4) Load 36(gl_FragColor) + 113: 7(fvec4) VectorShuffle 112 111 4 5 6 3 + Store 36(gl_FragColor) 113 + Store 114(i) 16 + Branch 118 + 95: Label + 105: 13(int) Load 92(i) + 106: 13(int) IAdd 105 33 + Store 92(i) 106 + Branch 96 + 96: Label + 97: 13(int) Load 92(i) + 98: 13(int) Load 23(Count) + 99: 25(bool) SLessThan 97 98 + LoopMerge 94 95 None + BranchConditional 99 93 94 + 115: Label + 122: 6(float) Load 101(f) + 123: 7(fvec4) Load 36(gl_FragColor) + 124: 7(fvec4) VectorTimesScalar 123 122 + Store 36(gl_FragColor) 124 + Branch 117 + 116: Label + Return + 117: Label + 125: 13(int) Load 114(i) + 126: 13(int) IAdd 125 47 + Store 114(i) 126 + Branch 118 + 118: Label + 119: 13(int) Load 114(i) + 121: 25(bool) SLessThan 119 120 + LoopMerge 116 117 None + BranchConditional 121 115 116 + FunctionEnd diff --git a/Test/baseResults/spv.localAggregates.frag.out b/Test/baseResults/spv.localAggregates.frag.out index 721b5a8c..1f9cbce6 100755 --- a/Test/baseResults/spv.localAggregates.frag.out +++ b/Test/baseResults/spv.localAggregates.frag.out @@ -1,215 +1,217 @@ -spv.localAggregates.frag -WARNING: 0:4: varying deprecated in version 130; may be removed in future release -WARNING: 0:5: varying deprecated in version 130; may be removed in future release - - -Linked fragment stage: - - -// Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 136 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 40 96 - ExecutionMode 4 OriginLowerLeft - Source GLSL 130 - Name 4 "main" - Name 8 "s1" - MemberName 8(s1) 0 "i" - MemberName 8(s1) 1 "f" - Name 10 "s2" - MemberName 10(s2) 0 "i" - MemberName 10(s2) 1 "f" - MemberName 10(s2) 2 "s1_1" - MemberName 10(s2) 3 "bleh" - Name 12 "locals2" - Name 13 "s3" - MemberName 13(s3) 0 "s2_1" - MemberName 13(s3) 1 "i" - MemberName 13(s3) 2 "f" - MemberName 13(s3) 3 "s1_1" - Name 15 "foo3" - Name 36 "localFArray" - Name 40 "coord" - Name 49 "localIArray" - Name 68 "x" - Name 70 "localArray" - Name 75 "i" - Name 82 "a" - Name 88 "condition" - Name 96 "color" - Name 106 "gl_FragColor" - Name 126 "samp2D" - Name 132 "foo" - Name 133 "foo2" - Name 135 "uFloatArray" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypeFloat 32 - 8(s1): TypeStruct 6(int) 7(float) - 9: TypeVector 7(float) 4 - 10(s2): TypeStruct 6(int) 7(float) 8(s1) 9(fvec4) - 11: TypePointer Function 10(s2) - 13(s3): TypeStruct 10(s2) 6(int) 7(float) 8(s1) - 14: TypePointer UniformConstant 13(s3) - 15(foo3): 14(ptr) Variable UniformConstant - 16: 6(int) Constant 0 - 17: TypePointer UniformConstant 10(s2) - 20: TypePointer UniformConstant 6(int) - 23: TypeBool - 27: 6(int) Constant 2 - 28: 6(int) Constant 1 - 29: 7(float) Constant 1065353216 - 30: TypePointer Function 7(float) - 32: TypeInt 32 0 - 33: 32(int) Constant 16 - 34: TypeArray 7(float) 33 - 35: TypePointer Function 34 - 37: 6(int) Constant 4 - 38: TypeVector 7(float) 2 - 39: TypePointer Input 38(fvec2) - 40(coord): 39(ptr) Variable Input - 41: 32(int) Constant 0 - 42: TypePointer Input 7(float) - 46: 32(int) Constant 8 - 47: TypeArray 6(int) 46 - 48: TypePointer Function 47 - 52: TypePointer Function 6(int) - 69: 6(int) Constant 5 - 80: 6(int) Constant 16 - 84: 7(float) Constant 0 - 88(condition): 20(ptr) Variable UniformConstant - 94: 6(int) Constant 3 - 95: TypePointer Input 9(fvec4) - 96(color): 95(ptr) Variable Input - 98: TypePointer Function 9(fvec4) - 100: 32(int) Constant 1 - 103: 32(int) Constant 2 - 105: TypePointer Output 9(fvec4) -106(gl_FragColor): 105(ptr) Variable Output - 123: TypeImage 7(float) 2D sampled format:Unknown - 124: TypeSampledImage 123 - 125: TypePointer UniformConstant 124 - 126(samp2D): 125(ptr) Variable UniformConstant - 131: TypePointer UniformConstant 8(s1) - 132(foo): 131(ptr) Variable UniformConstant - 133(foo2): 17(ptr) Variable UniformConstant - 134: TypePointer UniformConstant 34 -135(uFloatArray): 134(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 12(locals2): 11(ptr) Variable Function - 36(localFArray): 35(ptr) Variable Function - 49(localIArray): 48(ptr) Variable Function - 68(x): 52(ptr) Variable Function - 70(localArray): 35(ptr) Variable Function - 75(i): 52(ptr) Variable Function - 82(a): 35(ptr) Variable Function - 18: 17(ptr) AccessChain 15(foo3) 16 - 19: 10(s2) Load 18 - Store 12(locals2) 19 - 21: 20(ptr) AccessChain 15(foo3) 16 16 - 22: 6(int) Load 21 - 24: 23(bool) SGreaterThan 22 16 - SelectionMerge 26 None - BranchConditional 24 25 54 - 25: Label - 31: 30(ptr) AccessChain 12(locals2) 27 28 - Store 31 29 - 43: 42(ptr) AccessChain 40(coord) 41 - 44: 7(float) Load 43 - 45: 30(ptr) AccessChain 36(localFArray) 37 - Store 45 44 - 50: 20(ptr) AccessChain 15(foo3) 16 16 - 51: 6(int) Load 50 - 53: 52(ptr) AccessChain 49(localIArray) 27 - Store 53 51 - Branch 26 - 54: Label - 55: 42(ptr) AccessChain 40(coord) 41 - 56: 7(float) Load 55 - 57: 30(ptr) AccessChain 12(locals2) 27 28 - Store 57 56 - 58: 30(ptr) AccessChain 36(localFArray) 37 - Store 58 29 - 59: 52(ptr) AccessChain 49(localIArray) 27 - Store 59 16 - Branch 26 - 26: Label - 60: 52(ptr) AccessChain 49(localIArray) 27 - 61: 6(int) Load 60 - 62: 23(bool) IEqual 61 16 - SelectionMerge 64 None - BranchConditional 62 63 64 - 63: Label - 65: 30(ptr) AccessChain 36(localFArray) 37 - 66: 7(float) Load 65 - 67: 7(float) FAdd 66 29 - Store 65 67 - Branch 64 - 64: Label - Store 68(x) 69 - 71: 6(int) Load 68(x) - 72: 42(ptr) AccessChain 40(coord) 41 - 73: 7(float) Load 72 - 74: 30(ptr) AccessChain 70(localArray) 71 - Store 74 73 - Store 75(i) 16 - Branch 76 - 76: Label - 79: 6(int) Load 75(i) - 81: 23(bool) SLessThan 79 80 - LoopMerge 77 76 None - BranchConditional 81 78 77 - 78: Label - 83: 6(int) Load 75(i) - 85: 30(ptr) AccessChain 82(a) 83 - Store 85 84 - 86: 6(int) Load 75(i) - 87: 6(int) IAdd 86 28 - Store 75(i) 87 - Branch 76 - 77: Label - 89: 6(int) Load 88(condition) - 90: 23(bool) IEqual 89 28 - SelectionMerge 92 None - BranchConditional 90 91 92 - 91: Label - 93: 34 Load 70(localArray) - Store 82(a) 93 - Branch 92 - 92: Label - 97: 9(fvec4) Load 96(color) - 99: 98(ptr) AccessChain 12(locals2) 94 - Store 99 97 - 101: 42(ptr) AccessChain 40(coord) 100 - 102: 7(float) Load 101 - 104: 30(ptr) AccessChain 12(locals2) 94 103 - Store 104 102 - 107: 98(ptr) AccessChain 12(locals2) 94 - 108: 9(fvec4) Load 107 - 109: 30(ptr) AccessChain 36(localFArray) 37 - 110: 7(float) Load 109 - 111: 30(ptr) AccessChain 12(locals2) 27 28 - 112: 7(float) Load 111 - 113: 7(float) FAdd 110 112 - 114: 6(int) Load 68(x) - 115: 30(ptr) AccessChain 70(localArray) 114 - 116: 7(float) Load 115 - 117: 7(float) FAdd 113 116 - 118: 6(int) Load 68(x) - 119: 30(ptr) AccessChain 82(a) 118 - 120: 7(float) Load 119 - 121: 7(float) FAdd 117 120 - 122: 9(fvec4) VectorTimesScalar 108 121 - 127: 124 Load 126(samp2D) - 128: 38(fvec2) Load 40(coord) - 129: 9(fvec4) ImageSampleImplicitLod 127 128 - 130: 9(fvec4) FMul 122 129 - Store 106(gl_FragColor) 130 - Return - FunctionEnd +spv.localAggregates.frag +WARNING: 0:4: varying deprecated in version 130; may be removed in future release +WARNING: 0:5: varying deprecated in version 130; may be removed in future release + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 137 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 40 97 + ExecutionMode 4 OriginLowerLeft + Source GLSL 130 + Name 4 "main" + Name 8 "s1" + MemberName 8(s1) 0 "i" + MemberName 8(s1) 1 "f" + Name 10 "s2" + MemberName 10(s2) 0 "i" + MemberName 10(s2) 1 "f" + MemberName 10(s2) 2 "s1_1" + MemberName 10(s2) 3 "bleh" + Name 12 "locals2" + Name 13 "s3" + MemberName 13(s3) 0 "s2_1" + MemberName 13(s3) 1 "i" + MemberName 13(s3) 2 "f" + MemberName 13(s3) 3 "s1_1" + Name 15 "foo3" + Name 36 "localFArray" + Name 40 "coord" + Name 49 "localIArray" + Name 68 "x" + Name 70 "localArray" + Name 75 "i" + Name 83 "a" + Name 89 "condition" + Name 97 "color" + Name 107 "gl_FragColor" + Name 127 "samp2D" + Name 133 "foo" + Name 134 "foo2" + Name 136 "uFloatArray" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeFloat 32 + 8(s1): TypeStruct 6(int) 7(float) + 9: TypeVector 7(float) 4 + 10(s2): TypeStruct 6(int) 7(float) 8(s1) 9(fvec4) + 11: TypePointer Function 10(s2) + 13(s3): TypeStruct 10(s2) 6(int) 7(float) 8(s1) + 14: TypePointer UniformConstant 13(s3) + 15(foo3): 14(ptr) Variable UniformConstant + 16: 6(int) Constant 0 + 17: TypePointer UniformConstant 10(s2) + 20: TypePointer UniformConstant 6(int) + 23: TypeBool + 27: 6(int) Constant 2 + 28: 6(int) Constant 1 + 29: 7(float) Constant 1065353216 + 30: TypePointer Function 7(float) + 32: TypeInt 32 0 + 33: 32(int) Constant 16 + 34: TypeArray 7(float) 33 + 35: TypePointer Function 34 + 37: 6(int) Constant 4 + 38: TypeVector 7(float) 2 + 39: TypePointer Input 38(fvec2) + 40(coord): 39(ptr) Variable Input + 41: 32(int) Constant 0 + 42: TypePointer Input 7(float) + 46: 32(int) Constant 8 + 47: TypeArray 6(int) 46 + 48: TypePointer Function 47 + 52: TypePointer Function 6(int) + 69: 6(int) Constant 5 + 81: 6(int) Constant 16 + 85: 7(float) Constant 0 + 89(condition): 20(ptr) Variable UniformConstant + 95: 6(int) Constant 3 + 96: TypePointer Input 9(fvec4) + 97(color): 96(ptr) Variable Input + 99: TypePointer Function 9(fvec4) + 101: 32(int) Constant 1 + 104: 32(int) Constant 2 + 106: TypePointer Output 9(fvec4) +107(gl_FragColor): 106(ptr) Variable Output + 124: TypeImage 7(float) 2D sampled format:Unknown + 125: TypeSampledImage 124 + 126: TypePointer UniformConstant 125 + 127(samp2D): 126(ptr) Variable UniformConstant + 132: TypePointer UniformConstant 8(s1) + 133(foo): 132(ptr) Variable UniformConstant + 134(foo2): 17(ptr) Variable UniformConstant + 135: TypePointer UniformConstant 34 +136(uFloatArray): 135(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 12(locals2): 11(ptr) Variable Function + 36(localFArray): 35(ptr) Variable Function + 49(localIArray): 48(ptr) Variable Function + 68(x): 52(ptr) Variable Function + 70(localArray): 35(ptr) Variable Function + 75(i): 52(ptr) Variable Function + 83(a): 35(ptr) Variable Function + 18: 17(ptr) AccessChain 15(foo3) 16 + 19: 10(s2) Load 18 + Store 12(locals2) 19 + 21: 20(ptr) AccessChain 15(foo3) 16 16 + 22: 6(int) Load 21 + 24: 23(bool) SGreaterThan 22 16 + SelectionMerge 26 None + BranchConditional 24 25 54 + 25: Label + 31: 30(ptr) AccessChain 12(locals2) 27 28 + Store 31 29 + 43: 42(ptr) AccessChain 40(coord) 41 + 44: 7(float) Load 43 + 45: 30(ptr) AccessChain 36(localFArray) 37 + Store 45 44 + 50: 20(ptr) AccessChain 15(foo3) 16 16 + 51: 6(int) Load 50 + 53: 52(ptr) AccessChain 49(localIArray) 27 + Store 53 51 + Branch 26 + 54: Label + 55: 42(ptr) AccessChain 40(coord) 41 + 56: 7(float) Load 55 + 57: 30(ptr) AccessChain 12(locals2) 27 28 + Store 57 56 + 58: 30(ptr) AccessChain 36(localFArray) 37 + Store 58 29 + 59: 52(ptr) AccessChain 49(localIArray) 27 + Store 59 16 + Branch 26 + 26: Label + 60: 52(ptr) AccessChain 49(localIArray) 27 + 61: 6(int) Load 60 + 62: 23(bool) IEqual 61 16 + SelectionMerge 64 None + BranchConditional 62 63 64 + 63: Label + 65: 30(ptr) AccessChain 36(localFArray) 37 + 66: 7(float) Load 65 + 67: 7(float) FAdd 66 29 + Store 65 67 + Branch 64 + 64: Label + Store 68(x) 69 + 71: 6(int) Load 68(x) + 72: 42(ptr) AccessChain 40(coord) 41 + 73: 7(float) Load 72 + 74: 30(ptr) AccessChain 70(localArray) 71 + Store 74 73 + Store 75(i) 16 + Branch 79 + 76: Label + 84: 6(int) Load 75(i) + 86: 30(ptr) AccessChain 83(a) 84 + Store 86 85 + Branch 78 + 77: Label + 90: 6(int) Load 89(condition) + 91: 23(bool) IEqual 90 28 + SelectionMerge 93 None + BranchConditional 91 92 93 + 78: Label + 87: 6(int) Load 75(i) + 88: 6(int) IAdd 87 28 + Store 75(i) 88 + Branch 79 + 79: Label + 80: 6(int) Load 75(i) + 82: 23(bool) SLessThan 80 81 + LoopMerge 77 78 None + BranchConditional 82 76 77 + 92: Label + 94: 34 Load 70(localArray) + Store 83(a) 94 + Branch 93 + 93: Label + 98: 9(fvec4) Load 97(color) + 100: 99(ptr) AccessChain 12(locals2) 95 + Store 100 98 + 102: 42(ptr) AccessChain 40(coord) 101 + 103: 7(float) Load 102 + 105: 30(ptr) AccessChain 12(locals2) 95 104 + Store 105 103 + 108: 99(ptr) AccessChain 12(locals2) 95 + 109: 9(fvec4) Load 108 + 110: 30(ptr) AccessChain 36(localFArray) 37 + 111: 7(float) Load 110 + 112: 30(ptr) AccessChain 12(locals2) 27 28 + 113: 7(float) Load 112 + 114: 7(float) FAdd 111 113 + 115: 6(int) Load 68(x) + 116: 30(ptr) AccessChain 70(localArray) 115 + 117: 7(float) Load 116 + 118: 7(float) FAdd 114 117 + 119: 6(int) Load 68(x) + 120: 30(ptr) AccessChain 83(a) 119 + 121: 7(float) Load 120 + 122: 7(float) FAdd 118 121 + 123: 9(fvec4) VectorTimesScalar 109 122 + 128: 125 Load 127(samp2D) + 129: 38(fvec2) Load 40(coord) + 130: 9(fvec4) ImageSampleImplicitLod 128 129 + 131: 9(fvec4) FMul 123 130 + Store 107(gl_FragColor) 131 + Return + FunctionEnd diff --git a/Test/baseResults/spv.loops.frag.out b/Test/baseResults/spv.loops.frag.out index 5602e080..d6ec0a99 100755 --- a/Test/baseResults/spv.loops.frag.out +++ b/Test/baseResults/spv.loops.frag.out @@ -1,1098 +1,1086 @@ -spv.loops.frag -WARNING: 0:14: varying deprecated in version 130; may be removed in future release - - -Linked fragment stage: - - -// Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 718 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 - ExecutionMode 4 OriginLowerLeft - Source GLSL 130 - Name 4 "main" - Name 9 "color" - Name 11 "BaseColor" - Name 50 "d" - Name 54 "bigColor" - Name 66 "bigColor1_1" - Name 97 "d2" - Name 105 "d3" - Name 109 "bigColor1_2" - Name 120 "bigColor1_3" - Name 126 "d4" - Name 137 "i" - Name 144 "Count" - Name 147 "bigColor2" - Name 165 "bigColor3" - Name 170 "i" - Name 184 "i" - Name 218 "i" - Name 239 "i" - Name 264 "i" - Name 298 "bigColor4" - Name 334 "d5" - Name 338 "bigColor5" - Name 355 "d6" - Name 367 "bigColor6" - Name 401 "d7" - Name 434 "bigColor7" - Name 457 "d8" - Name 497 "d9" - Name 527 "d10" - Name 535 "d11" - Name 545 "d12" - Name 569 "bigColor8" - Name 596 "gl_FragColor" - Name 603 "d14" - Name 608 "d15" - Name 626 "d16" - Name 664 "d17" - Name 670 "d18" - Name 701 "d13" - Name 702 "d19" - Name 703 "d20" - Name 704 "d21" - Name 705 "d22" - Name 706 "d23" - Name 707 "d24" - Name 708 "d25" - Name 709 "d26" - Name 710 "d27" - Name 711 "d28" - Name 712 "d29" - Name 713 "d30" - Name 714 "d31" - Name 715 "d32" - Name 716 "d33" - Name 717 "d34" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(BaseColor): 10(ptr) Variable Input - 16: TypeBool - 17: 16(bool) ConstantTrue - 18: TypeInt 32 0 - 19: 18(int) Constant 0 - 20: TypePointer Function 6(float) - 23: 6(float) Constant 1051260355 - 27: 7(fvec4) ConstantComposite 23 23 23 23 - 33: 6(float) Constant 1059648963 - 37: 7(fvec4) ConstantComposite 33 33 33 33 - 49: TypePointer UniformConstant 6(float) - 50(d): 49(ptr) Variable UniformConstant - 53: TypePointer UniformConstant 7(fvec4) - 54(bigColor): 53(ptr) Variable UniformConstant - 61: 18(int) Constant 2 - 66(bigColor1_1): 53(ptr) Variable UniformConstant - 70: 18(int) Constant 3 - 86: 6(float) Constant 1109917696 - 89: 6(float) Constant 1065353216 - 97(d2): 49(ptr) Variable UniformConstant - 102: 18(int) Constant 1 - 105(d3): 49(ptr) Variable UniformConstant -109(bigColor1_2): 53(ptr) Variable UniformConstant -120(bigColor1_3): 53(ptr) Variable UniformConstant - 126(d4): 49(ptr) Variable UniformConstant - 135: TypeInt 32 1 - 136: TypePointer Function 135(int) - 138: 135(int) Constant 0 - 143: TypePointer UniformConstant 135(int) - 144(Count): 143(ptr) Variable UniformConstant - 147(bigColor2): 53(ptr) Variable UniformConstant - 152: 135(int) Constant 1 - 165(bigColor3): 53(ptr) Variable UniformConstant - 169: 16(bool) ConstantFalse - 175: 135(int) Constant 42 - 189: 135(int) Constant 100 - 193: 6(float) Constant 1101004800 - 223: 135(int) Constant 120 - 298(bigColor4): 53(ptr) Variable UniformConstant - 334(d5): 49(ptr) Variable UniformConstant - 338(bigColor5): 53(ptr) Variable UniformConstant - 355(d6): 49(ptr) Variable UniformConstant - 367(bigColor6): 53(ptr) Variable UniformConstant - 401(d7): 49(ptr) Variable UniformConstant - 429: 6(float) Constant 0 - 434(bigColor7): 53(ptr) Variable UniformConstant - 457(d8): 49(ptr) Variable UniformConstant - 477: 6(float) Constant 1073741824 - 497(d9): 49(ptr) Variable UniformConstant - 513: 6(float) Constant 1084227584 - 527(d10): 49(ptr) Variable UniformConstant - 535(d11): 49(ptr) Variable UniformConstant - 545(d12): 49(ptr) Variable UniformConstant - 567: 6(float) Constant 1092616192 - 569(bigColor8): 53(ptr) Variable UniformConstant - 595: TypePointer Output 7(fvec4) -596(gl_FragColor): 595(ptr) Variable Output - 603(d14): 49(ptr) Variable UniformConstant - 608(d15): 49(ptr) Variable UniformConstant - 626(d16): 49(ptr) Variable UniformConstant - 664(d17): 49(ptr) Variable UniformConstant - 670(d18): 49(ptr) Variable UniformConstant - 701(d13): 49(ptr) Variable UniformConstant - 702(d19): 49(ptr) Variable UniformConstant - 703(d20): 49(ptr) Variable UniformConstant - 704(d21): 49(ptr) Variable UniformConstant - 705(d22): 49(ptr) Variable UniformConstant - 706(d23): 49(ptr) Variable UniformConstant - 707(d24): 49(ptr) Variable UniformConstant - 708(d25): 49(ptr) Variable UniformConstant - 709(d26): 49(ptr) Variable UniformConstant - 710(d27): 49(ptr) Variable UniformConstant - 711(d28): 49(ptr) Variable UniformConstant - 712(d29): 49(ptr) Variable UniformConstant - 713(d30): 49(ptr) Variable UniformConstant - 714(d31): 49(ptr) Variable UniformConstant - 715(d32): 49(ptr) Variable UniformConstant - 716(d33): 49(ptr) Variable UniformConstant - 717(d34): 49(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 137(i): 136(ptr) Variable Function - 170(i): 136(ptr) Variable Function - 184(i): 136(ptr) Variable Function - 218(i): 136(ptr) Variable Function - 239(i): 136(ptr) Variable Function - 264(i): 136(ptr) Variable Function - 12: 7(fvec4) Load 11(BaseColor) - Store 9(color) 12 - Branch 13 - 13: Label - LoopMerge 14 13 None - BranchConditional 17 15 14 - 15: Label - 21: 20(ptr) AccessChain 9(color) 19 - 22: 6(float) Load 21 - 24: 16(bool) FOrdLessThan 22 23 - SelectionMerge 26 None - BranchConditional 24 25 26 - 25: Label - 28: 7(fvec4) Load 9(color) - 29: 7(fvec4) FAdd 28 27 - Store 9(color) 29 - Branch 14 - 26: Label - 31: 20(ptr) AccessChain 9(color) 19 - 32: 6(float) Load 31 - 34: 16(bool) FOrdLessThan 32 33 - SelectionMerge 36 None - BranchConditional 34 35 36 - 35: Label - 38: 7(fvec4) Load 9(color) - 39: 7(fvec4) FAdd 38 37 - Store 9(color) 39 - Branch 14 - 36: Label - 41: 7(fvec4) Load 9(color) - 42: 7(fvec4) FAdd 41 27 - Store 9(color) 42 - Branch 14 - 14: Label - Branch 44 - 44: Label - 47: 20(ptr) AccessChain 9(color) 19 - 48: 6(float) Load 47 - 51: 6(float) Load 50(d) - 52: 16(bool) FOrdLessThan 48 51 - LoopMerge 45 44 None - BranchConditional 52 46 45 - 46: Label - 55: 7(fvec4) Load 54(bigColor) - 56: 7(fvec4) Load 9(color) - 57: 7(fvec4) FAdd 56 55 - Store 9(color) 57 - Branch 44 - 45: Label - Branch 58 - 58: Label - 62: 20(ptr) AccessChain 9(color) 61 - 63: 6(float) Load 62 - 64: 6(float) Load 50(d) - 65: 16(bool) FOrdLessThan 63 64 - LoopMerge 59 58 None - BranchConditional 65 60 59 - 60: Label - 67: 7(fvec4) Load 66(bigColor1_1) - 68: 7(fvec4) Load 9(color) - 69: 7(fvec4) FAdd 68 67 - Store 9(color) 69 - 71: 20(ptr) AccessChain 9(color) 70 - 72: 6(float) Load 71 - 73: 6(float) Load 50(d) - 74: 16(bool) FOrdLessThan 72 73 - SelectionMerge 76 None - BranchConditional 74 75 76 - 75: Label - Branch 58 - 76: Label - 78: 7(fvec4) Load 66(bigColor1_1) - 79: 7(fvec4) Load 9(color) - 80: 7(fvec4) FAdd 79 78 - Store 9(color) 80 - Branch 58 - 59: Label - Branch 81 - 81: Label - 84: 20(ptr) AccessChain 9(color) 19 - 85: 6(float) Load 84 - 87: 16(bool) FOrdLessThan 85 86 - LoopMerge 82 81 None - BranchConditional 87 83 82 - 83: Label - 88: 7(fvec4) Load 9(color) - 90: 7(fvec4) CompositeConstruct 89 89 89 89 - 91: 7(fvec4) FAdd 88 90 - Store 9(color) 91 - Branch 81 - 82: Label - Branch 92 - 92: Label - 95: 20(ptr) AccessChain 9(color) 70 - 96: 6(float) Load 95 - 98: 6(float) Load 97(d2) - 99: 16(bool) FOrdLessThan 96 98 - SelectionMerge 101 None - BranchConditional 99 100 101 - 100: Label - 103: 20(ptr) AccessChain 9(color) 102 - 104: 6(float) Load 103 - 106: 6(float) Load 105(d3) - 107: 16(bool) FOrdLessThan 104 106 - Branch 101 - 101: Label - 108: 16(bool) Phi 99 92 107 100 - LoopMerge 93 92 None - BranchConditional 108 94 93 - 94: Label - 110: 7(fvec4) Load 109(bigColor1_2) - 111: 7(fvec4) Load 9(color) - 112: 7(fvec4) FAdd 111 110 - Store 9(color) 112 - Branch 92 - 93: Label - Branch 113 - 113: Label - 116: 20(ptr) AccessChain 9(color) 61 - 117: 6(float) Load 116 - 118: 6(float) Load 105(d3) - 119: 16(bool) FOrdLessThan 117 118 - LoopMerge 114 113 None - BranchConditional 119 115 114 - 115: Label - 121: 7(fvec4) Load 120(bigColor1_3) - 122: 7(fvec4) Load 9(color) - 123: 7(fvec4) FAdd 122 121 - Store 9(color) 123 - 124: 20(ptr) AccessChain 9(color) 102 - 125: 6(float) Load 124 - 127: 6(float) Load 126(d4) - 128: 16(bool) FOrdLessThan 125 127 - SelectionMerge 130 None - BranchConditional 128 129 130 - 129: Label - Branch 114 - 130: Label - 132: 7(fvec4) Load 120(bigColor1_3) - 133: 7(fvec4) Load 9(color) - 134: 7(fvec4) FAdd 133 132 - Store 9(color) 134 - Branch 113 - 114: Label - Store 137(i) 138 - Branch 139 - 139: Label - 142: 135(int) Load 137(i) - 145: 135(int) Load 144(Count) - 146: 16(bool) SLessThan 142 145 - LoopMerge 140 139 None - BranchConditional 146 141 140 - 141: Label - 148: 7(fvec4) Load 147(bigColor2) - 149: 7(fvec4) Load 9(color) - 150: 7(fvec4) FAdd 149 148 - Store 9(color) 150 - 151: 135(int) Load 137(i) - 153: 135(int) IAdd 151 152 - Store 137(i) 153 - Branch 139 - 140: Label - Branch 154 - 154: Label - 157: 16(bool) Phi 17 140 169 156 - LoopMerge 155 154 None - Branch 158 - 158: Label - SelectionMerge 156 None - BranchConditional 157 156 159 - 159: Label - 160: 20(ptr) AccessChain 9(color) 19 - 161: 6(float) Load 160 - 162: 6(float) Load 97(d2) - 163: 16(bool) FOrdLessThan 161 162 - SelectionMerge 164 None - BranchConditional 163 164 155 - 164: Label - Branch 156 - 156: Label - 166: 7(fvec4) Load 165(bigColor3) - 167: 7(fvec4) Load 9(color) - 168: 7(fvec4) FAdd 167 166 - Store 9(color) 168 - Branch 154 - 155: Label - Store 170(i) 138 - Branch 171 - 171: Label - 174: 135(int) Load 170(i) - 176: 16(bool) SLessThan 174 175 - LoopMerge 172 171 None - BranchConditional 176 173 172 - 173: Label - 177: 6(float) Load 105(d3) - 178: 20(ptr) AccessChain 9(color) 61 - 179: 6(float) Load 178 - 180: 6(float) FAdd 179 177 - 181: 20(ptr) AccessChain 9(color) 61 - Store 181 180 - 182: 135(int) Load 170(i) - 183: 135(int) IAdd 182 152 - Store 170(i) 183 - Branch 171 - 172: Label - Store 184(i) 138 - Branch 185 - 185: Label - 188: 135(int) Load 184(i) - 190: 16(bool) SLessThan 188 189 - LoopMerge 186 185 None - BranchConditional 190 187 186 - 187: Label - 191: 20(ptr) AccessChain 9(color) 61 - 192: 6(float) Load 191 - 194: 16(bool) FOrdLessThan 192 193 - SelectionMerge 196 None - BranchConditional 194 195 200 - 195: Label - 197: 20(ptr) AccessChain 9(color) 19 - 198: 6(float) Load 197 - 199: 6(float) FAdd 198 89 - Store 197 199 - Branch 196 - 200: Label - 201: 20(ptr) AccessChain 9(color) 102 - 202: 6(float) Load 201 - 203: 6(float) FAdd 202 89 - Store 201 203 - Branch 196 - 196: Label - 204: 20(ptr) AccessChain 9(color) 70 - 205: 6(float) Load 204 - 206: 16(bool) FOrdLessThan 205 193 - SelectionMerge 208 None - BranchConditional 206 207 208 - 207: Label - 209: 20(ptr) AccessChain 9(color) 61 - 210: 6(float) Load 209 - 211: 20(ptr) AccessChain 9(color) 102 - 212: 6(float) Load 211 - 213: 16(bool) FOrdGreaterThan 210 212 - SelectionMerge 215 None - BranchConditional 213 214 215 - 214: Label - Branch 215 - 215: Label - Branch 208 - 208: Label - 216: 135(int) Load 184(i) - 217: 135(int) IAdd 216 152 - Store 184(i) 217 - Branch 185 - 186: Label - Store 218(i) 138 - Branch 219 - 219: Label - 222: 135(int) Load 218(i) - 224: 16(bool) SLessThan 222 223 - LoopMerge 220 219 None - BranchConditional 224 221 220 - 221: Label - 225: 20(ptr) AccessChain 9(color) 61 - 226: 6(float) Load 225 - 227: 16(bool) FOrdLessThan 226 193 - SelectionMerge 229 None - BranchConditional 227 228 233 - 228: Label - 230: 20(ptr) AccessChain 9(color) 19 - 231: 6(float) Load 230 - 232: 6(float) FAdd 231 89 - Store 230 232 - Branch 229 - 233: Label - 234: 20(ptr) AccessChain 9(color) 102 - 235: 6(float) Load 234 - 236: 6(float) FAdd 235 89 - Store 234 236 - Branch 229 - 229: Label - 237: 135(int) Load 218(i) - 238: 135(int) IAdd 237 152 - Store 218(i) 238 - Branch 219 - 220: Label - Store 239(i) 138 - Branch 240 - 240: Label - 243: 135(int) Load 239(i) - 244: 16(bool) SLessThan 243 175 - LoopMerge 241 240 None - BranchConditional 244 242 241 - 242: Label - 245: 6(float) Load 105(d3) - 246: 20(ptr) AccessChain 9(color) 61 - 247: 6(float) Load 246 - 248: 6(float) FAdd 247 245 - 249: 20(ptr) AccessChain 9(color) 61 - Store 249 248 - 250: 20(ptr) AccessChain 9(color) 19 - 251: 6(float) Load 250 - 252: 6(float) Load 126(d4) - 253: 16(bool) FOrdLessThan 251 252 - SelectionMerge 255 None - BranchConditional 253 254 255 - 254: Label - 256: 135(int) Load 239(i) - 257: 135(int) IAdd 256 152 - Store 239(i) 257 - Branch 240 - 255: Label - 259: 20(ptr) AccessChain 9(color) 70 - 260: 6(float) Load 259 - 261: 6(float) FAdd 260 89 - Store 259 261 - 262: 135(int) Load 239(i) - 263: 135(int) IAdd 262 152 - Store 239(i) 263 - Branch 240 - 241: Label - Store 264(i) 138 - Branch 265 - 265: Label - 268: 135(int) Load 264(i) - 269: 16(bool) SLessThan 268 175 - LoopMerge 266 265 None - BranchConditional 269 267 266 - 267: Label - 270: 6(float) Load 105(d3) - 271: 20(ptr) AccessChain 9(color) 61 - 272: 6(float) Load 271 - 273: 6(float) FAdd 272 270 - 274: 20(ptr) AccessChain 9(color) 61 - Store 274 273 - 275: 20(ptr) AccessChain 9(color) 19 - 276: 6(float) Load 275 - 277: 6(float) Load 126(d4) - 278: 16(bool) FOrdLessThan 276 277 - SelectionMerge 280 None - BranchConditional 278 279 280 - 279: Label - Branch 266 - 280: Label - 282: 20(ptr) AccessChain 9(color) 70 - 283: 6(float) Load 282 - 284: 6(float) FAdd 283 89 - Store 282 284 - 285: 135(int) Load 264(i) - 286: 135(int) IAdd 285 152 - Store 264(i) 286 - Branch 265 - 266: Label - Branch 287 - 287: Label - 290: 16(bool) Phi 17 266 169 306 169 314 - LoopMerge 288 287 None - Branch 291 - 291: Label - SelectionMerge 289 None - BranchConditional 290 289 292 - 292: Label - 293: 20(ptr) AccessChain 9(color) 61 - 294: 6(float) Load 293 - 295: 6(float) Load 126(d4) - 296: 16(bool) FOrdLessThan 294 295 - SelectionMerge 297 None - BranchConditional 296 297 288 - 297: Label - Branch 289 - 289: Label - 299: 7(fvec4) Load 298(bigColor4) - 300: 7(fvec4) Load 9(color) - 301: 7(fvec4) FAdd 300 299 - Store 9(color) 301 - 302: 20(ptr) AccessChain 9(color) 19 - 303: 6(float) Load 302 - 304: 6(float) Load 126(d4) - 305: 16(bool) FOrdLessThan 303 304 - SelectionMerge 307 None - BranchConditional 305 306 307 - 306: Label - Branch 287 - 307: Label - 309: 20(ptr) AccessChain 9(color) 102 - 310: 6(float) Load 309 - 311: 6(float) Load 126(d4) - 312: 16(bool) FOrdLessThan 310 311 - SelectionMerge 314 None - BranchConditional 312 313 320 - 313: Label - 315: 6(float) Load 126(d4) - 316: 20(ptr) AccessChain 9(color) 102 - 317: 6(float) Load 316 - 318: 6(float) FAdd 317 315 - 319: 20(ptr) AccessChain 9(color) 102 - Store 319 318 - Branch 314 - 320: Label - 321: 6(float) Load 126(d4) - 322: 20(ptr) AccessChain 9(color) 19 - 323: 6(float) Load 322 - 324: 6(float) FAdd 323 321 - 325: 20(ptr) AccessChain 9(color) 19 - Store 325 324 - Branch 314 - 314: Label - Branch 287 - 288: Label - Branch 326 - 326: Label - 329: 16(bool) Phi 17 288 169 347 - LoopMerge 327 326 None - Branch 330 - 330: Label - SelectionMerge 328 None - BranchConditional 329 328 331 - 331: Label - 332: 20(ptr) AccessChain 9(color) 19 - 333: 6(float) Load 332 - 335: 6(float) Load 334(d5) - 336: 16(bool) FOrdLessThan 333 335 - SelectionMerge 337 None - BranchConditional 336 337 327 - 337: Label - Branch 328 - 328: Label - 339: 7(fvec4) Load 338(bigColor5) - 340: 7(fvec4) Load 9(color) - 341: 7(fvec4) FAdd 340 339 - Store 9(color) 341 - 342: 20(ptr) AccessChain 9(color) 102 - 343: 6(float) Load 342 - 344: 6(float) Load 334(d5) - 345: 16(bool) FOrdLessThan 343 344 - SelectionMerge 347 None - BranchConditional 345 346 347 - 346: Label - 348: 6(float) Load 334(d5) - 349: 20(ptr) AccessChain 9(color) 102 - 350: 6(float) Load 349 - 351: 6(float) FAdd 350 348 - 352: 20(ptr) AccessChain 9(color) 102 - Store 352 351 - Branch 347 - 347: Label - Branch 326 - 327: Label - 353: 20(ptr) AccessChain 9(color) 19 - 354: 6(float) Load 353 - 356: 6(float) Load 355(d6) - 357: 16(bool) FOrdLessThan 354 356 - SelectionMerge 359 None - BranchConditional 357 358 371 - 358: Label - Branch 360 - 360: Label - 363: 20(ptr) AccessChain 9(color) 102 - 364: 6(float) Load 363 - 365: 6(float) Load 355(d6) - 366: 16(bool) FOrdLessThan 364 365 - LoopMerge 361 360 None - BranchConditional 366 362 361 - 362: Label - 368: 7(fvec4) Load 367(bigColor6) - 369: 7(fvec4) Load 9(color) - 370: 7(fvec4) FAdd 369 368 - Store 9(color) 370 - Branch 360 - 361: Label - Branch 359 - 371: Label - Branch 372 - 372: Label - 375: 20(ptr) AccessChain 9(color) 61 - 376: 6(float) Load 375 - 377: 6(float) Load 355(d6) - 378: 16(bool) FOrdLessThan 376 377 - LoopMerge 373 372 None - BranchConditional 378 374 373 - 374: Label - 379: 49(ptr) AccessChain 367(bigColor6) 61 - 380: 6(float) Load 379 - 381: 20(ptr) AccessChain 9(color) 61 - 382: 6(float) Load 381 - 383: 6(float) FAdd 382 380 - 384: 20(ptr) AccessChain 9(color) 61 - Store 384 383 - Branch 372 - 373: Label - Branch 359 - 359: Label - 385: 20(ptr) AccessChain 9(color) 19 - 386: 6(float) Load 385 - 387: 6(float) Load 355(d6) - 388: 16(bool) FOrdLessThan 386 387 - SelectionMerge 390 None - BranchConditional 388 389 407 - 389: Label - Branch 391 - 391: Label - 394: 20(ptr) AccessChain 9(color) 102 - 395: 6(float) Load 394 - 396: 6(float) Load 355(d6) - 397: 16(bool) FOrdLessThan 395 396 - LoopMerge 392 391 None - BranchConditional 397 393 392 - 393: Label - 398: 7(fvec4) Load 367(bigColor6) - 399: 7(fvec4) Load 9(color) - 400: 7(fvec4) FAdd 399 398 - Store 9(color) 400 - 402: 6(float) Load 401(d7) - 403: 16(bool) FOrdLessThan 402 89 - SelectionMerge 405 None - BranchConditional 403 404 405 - 404: Label - Branch 392 - 405: Label - Branch 391 - 392: Label - Branch 390 - 407: Label - Branch 408 - 408: Label - 411: 20(ptr) AccessChain 9(color) 61 - 412: 6(float) Load 411 - 413: 6(float) Load 355(d6) - 414: 16(bool) FOrdLessThan 412 413 - LoopMerge 409 408 None - BranchConditional 414 410 409 - 410: Label - 415: 49(ptr) AccessChain 367(bigColor6) 61 - 416: 6(float) Load 415 - 417: 20(ptr) AccessChain 9(color) 61 - 418: 6(float) Load 417 - 419: 6(float) FAdd 418 416 - 420: 20(ptr) AccessChain 9(color) 61 - Store 420 419 - Branch 408 - 409: Label - Branch 390 - 390: Label - Branch 421 - 421: Label - 424: 16(bool) Phi 17 390 169 441 - LoopMerge 422 421 None - Branch 425 - 425: Label - SelectionMerge 423 None - BranchConditional 424 423 426 - 426: Label - SelectionMerge 427 None - BranchConditional 17 427 422 - 427: Label - Branch 423 - 423: Label - 428: 6(float) Load 401(d7) - 430: 16(bool) FOrdLessThan 428 429 - SelectionMerge 432 None - BranchConditional 430 431 432 - 431: Label - Branch 422 - 432: Label - 435: 7(fvec4) Load 434(bigColor7) - 436: 7(fvec4) Load 9(color) - 437: 7(fvec4) FAdd 436 435 - Store 9(color) 437 - 438: 6(float) Load 401(d7) - 439: 16(bool) FOrdLessThan 438 89 - SelectionMerge 441 None - BranchConditional 439 440 441 - 440: Label - 442: 20(ptr) AccessChain 9(color) 61 - 443: 6(float) Load 442 - 444: 6(float) FAdd 443 89 - Store 442 444 - Branch 422 - 441: Label - 446: 7(fvec4) Load 11(BaseColor) - 447: 7(fvec4) Load 9(color) - 448: 7(fvec4) FAdd 447 446 - Store 9(color) 448 - Branch 421 - 422: Label - Branch 449 - 449: Label - 452: 16(bool) Phi 17 422 169 472 - LoopMerge 450 449 None - Branch 453 - 453: Label - SelectionMerge 451 None - BranchConditional 452 451 454 - 454: Label - 455: 20(ptr) AccessChain 9(color) 61 - 456: 6(float) Load 455 - 458: 6(float) Load 457(d8) - 459: 16(bool) FOrdLessThan 456 458 - SelectionMerge 460 None - BranchConditional 459 460 450 - 460: Label - Branch 451 - 451: Label - 461: 6(float) Load 457(d8) - 462: 16(bool) FOrdLessThan 461 429 - SelectionMerge 464 None - BranchConditional 462 463 464 - 463: Label - Branch 450 - 464: Label - 466: 7(fvec4) Load 434(bigColor7) - 467: 7(fvec4) Load 9(color) - 468: 7(fvec4) FAdd 467 466 - Store 9(color) 468 - 469: 6(float) Load 457(d8) - 470: 16(bool) FOrdLessThan 469 89 - SelectionMerge 472 None - BranchConditional 470 471 472 - 471: Label - 473: 20(ptr) AccessChain 9(color) 61 - 474: 6(float) Load 473 - 475: 6(float) FAdd 474 89 - Store 473 475 - 476: 6(float) Load 457(d8) - 478: 16(bool) FOrdLessThan 476 477 - SelectionMerge 480 None - BranchConditional 478 479 484 - 479: Label - 481: 20(ptr) AccessChain 9(color) 102 - 482: 6(float) Load 481 - 483: 6(float) FAdd 482 89 - Store 481 483 - Branch 480 - 484: Label - 485: 20(ptr) AccessChain 9(color) 19 - 486: 6(float) Load 485 - 487: 6(float) FAdd 486 89 - Store 485 487 - Branch 480 - 480: Label - Branch 450 - 472: Label - 489: 7(fvec4) Load 11(BaseColor) - 490: 7(fvec4) Load 9(color) - 491: 7(fvec4) FAdd 490 489 - Store 9(color) 491 - Branch 449 - 450: Label - Branch 492 - 492: Label - 495: 20(ptr) AccessChain 9(color) 70 - 496: 6(float) Load 495 - 498: 6(float) Load 497(d9) - 499: 16(bool) FOrdLessThan 496 498 - LoopMerge 493 492 None - BranchConditional 499 494 493 - 494: Label - 500: 6(float) Load 497(d9) - 501: 6(float) Load 457(d8) - 502: 16(bool) FOrdGreaterThan 500 501 - SelectionMerge 504 None - BranchConditional 502 503 504 - 503: Label - 505: 20(ptr) AccessChain 9(color) 19 - 506: 6(float) Load 505 - 507: 6(float) Load 401(d7) - 508: 16(bool) FOrdLessThanEqual 506 507 - SelectionMerge 510 None - BranchConditional 508 509 510 - 509: Label - 511: 20(ptr) AccessChain 9(color) 61 - 512: 6(float) Load 511 - 514: 16(bool) FOrdEqual 512 513 - SelectionMerge 516 None - BranchConditional 514 515 520 - 515: Label - 517: 20(ptr) AccessChain 9(color) 70 - 518: 6(float) Load 517 - 519: 6(float) FAdd 518 89 - Store 517 519 - Branch 516 - 520: Label - Branch 493 - 516: Label - Branch 510 - 510: Label - Branch 504 - 504: Label - Branch 492 - 493: Label - Branch 522 - 522: Label - 525: 20(ptr) AccessChain 9(color) 61 - 526: 6(float) Load 525 - 528: 6(float) Load 527(d10) - 529: 16(bool) FOrdLessThan 526 528 - LoopMerge 523 522 None - BranchConditional 529 524 523 - 524: Label - 530: 20(ptr) AccessChain 9(color) 102 - 531: 6(float) Load 530 - 532: 6(float) FAdd 531 89 - Store 530 532 - 533: 20(ptr) AccessChain 9(color) 102 - 534: 6(float) Load 533 - 536: 6(float) Load 535(d11) - 537: 16(bool) FOrdLessThan 534 536 - SelectionMerge 539 None - BranchConditional 537 538 539 - 538: Label - 540: 20(ptr) AccessChain 9(color) 61 - 541: 6(float) Load 540 - 542: 6(float) FAdd 541 89 - Store 540 542 - 543: 20(ptr) AccessChain 9(color) 70 - 544: 6(float) Load 543 - 546: 6(float) Load 545(d12) - 547: 16(bool) FOrdLessThan 544 546 - SelectionMerge 549 None - BranchConditional 547 548 553 - 548: Label - 550: 20(ptr) AccessChain 9(color) 70 - 551: 6(float) Load 550 - 552: 6(float) FAdd 551 89 - Store 550 552 - Branch 549 - 553: Label - 554: 20(ptr) AccessChain 9(color) 19 - 555: 6(float) Load 554 - 556: 6(float) FAdd 555 89 - Store 554 556 - Branch 549 - 549: Label - Branch 522 - 539: Label - 558: 7(fvec4) Load 9(color) - 559: 7(fvec4) CompositeConstruct 89 89 89 89 - 560: 7(fvec4) FAdd 558 559 - Store 9(color) 560 - Branch 523 - 523: Label - Branch 562 - 562: Label - 565: 20(ptr) AccessChain 9(color) 19 - 566: 6(float) Load 565 - 568: 16(bool) FOrdLessThan 566 567 - LoopMerge 563 562 None - BranchConditional 568 564 563 - 564: Label - 570: 7(fvec4) Load 569(bigColor8) - 571: 7(fvec4) Load 9(color) - 572: 7(fvec4) FAdd 571 570 - Store 9(color) 572 - 573: 20(ptr) AccessChain 9(color) 61 - 574: 6(float) Load 573 - 575: 6(float) Load 457(d8) - 576: 16(bool) FOrdLessThan 574 575 - SelectionMerge 578 None - BranchConditional 576 577 578 - 577: Label - 579: 20(ptr) AccessChain 9(color) 70 - 580: 6(float) Load 579 - 581: 6(float) Load 355(d6) - 582: 16(bool) FOrdLessThan 580 581 - SelectionMerge 584 None - BranchConditional 582 583 584 - 583: Label - Branch 562 - 584: Label - Branch 578 - 578: Label - 586: 49(ptr) AccessChain 569(bigColor8) 19 - 587: 6(float) Load 586 - 588: 20(ptr) AccessChain 9(color) 102 - 589: 6(float) Load 588 - 590: 6(float) FAdd 589 587 - 591: 20(ptr) AccessChain 9(color) 102 - Store 591 590 - Branch 562 - 563: Label - 592: 7(fvec4) Load 9(color) - 593: 7(fvec4) CompositeConstruct 89 89 89 89 - 594: 7(fvec4) FAdd 592 593 - Store 9(color) 594 - 597: 7(fvec4) Load 9(color) - Store 596(gl_FragColor) 597 - Branch 598 - 598: Label - 601: 20(ptr) AccessChain 9(color) 19 - 602: 6(float) Load 601 - 604: 6(float) Load 603(d14) - 605: 16(bool) FOrdLessThan 602 604 - LoopMerge 599 598 None - BranchConditional 605 600 599 - 600: Label - 606: 20(ptr) AccessChain 9(color) 102 - 607: 6(float) Load 606 - 609: 6(float) Load 608(d15) - 610: 16(bool) FOrdLessThan 607 609 - SelectionMerge 612 None - BranchConditional 610 611 614 - 611: Label - Return - 614: Label - 615: 7(fvec4) Load 9(color) - 616: 7(fvec4) CompositeConstruct 89 89 89 89 - 617: 7(fvec4) FAdd 615 616 - Store 9(color) 617 - Branch 612 - 612: Label - Branch 598 - 599: Label - 618: 7(fvec4) Load 9(color) - 619: 7(fvec4) CompositeConstruct 89 89 89 89 - 620: 7(fvec4) FAdd 618 619 - Store 9(color) 620 - Branch 621 - 621: Label - 624: 20(ptr) AccessChain 9(color) 70 - 625: 6(float) Load 624 - 627: 6(float) Load 626(d16) - 628: 16(bool) FOrdLessThan 625 627 - LoopMerge 622 621 None - BranchConditional 628 623 622 - 623: Label - 629: 20(ptr) AccessChain 9(color) 70 - 630: 6(float) Load 629 - 631: 6(float) FAdd 630 89 - Store 629 631 - Branch 621 - 622: Label - Branch 632 - 632: Label - 635: 20(ptr) AccessChain 9(color) 70 - 636: 6(float) Load 635 - 637: 6(float) Load 97(d2) - 638: 16(bool) FOrdLessThan 636 637 - SelectionMerge 640 None - BranchConditional 638 639 640 - 639: Label - 641: 20(ptr) AccessChain 9(color) 102 - 642: 6(float) Load 641 - 643: 6(float) Load 105(d3) - 644: 16(bool) FOrdLessThan 642 643 - Branch 640 - 640: Label - 645: 16(bool) Phi 638 632 644 639 - LoopMerge 633 632 None - BranchConditional 645 634 633 - 634: Label - 646: 7(fvec4) Load 109(bigColor1_2) - 647: 7(fvec4) Load 9(color) - 648: 7(fvec4) FAdd 647 646 - Store 9(color) 648 - 649: 20(ptr) AccessChain 9(color) 61 - 650: 6(float) Load 649 - 651: 6(float) Load 105(d3) - 652: 16(bool) FOrdLessThan 650 651 - SelectionMerge 654 None - BranchConditional 652 653 654 - 653: Label - Return - 654: Label - Branch 632 - 633: Label - Branch 656 - 656: Label - 659: 16(bool) Phi 17 633 169 674 - LoopMerge 657 656 None - Branch 660 - 660: Label - SelectionMerge 658 None - BranchConditional 659 658 661 - 661: Label - 662: 20(ptr) AccessChain 9(color) 19 - 663: 6(float) Load 662 - 665: 6(float) Load 664(d17) - 666: 16(bool) FOrdLessThan 663 665 - SelectionMerge 667 None - BranchConditional 666 667 657 - 667: Label - Branch 658 - 658: Label - 668: 20(ptr) AccessChain 9(color) 102 - 669: 6(float) Load 668 - 671: 6(float) Load 670(d18) - 672: 16(bool) FOrdLessThan 669 671 - SelectionMerge 674 None - BranchConditional 672 673 674 - 673: Label - Return - 674: Label - 676: 7(fvec4) Load 9(color) - 677: 7(fvec4) CompositeConstruct 89 89 89 89 - 678: 7(fvec4) FAdd 676 677 - Store 9(color) 678 - Branch 656 - 657: Label - Branch 679 - 679: Label - 682: 20(ptr) AccessChain 9(color) 102 - 683: 6(float) Load 682 - 684: 6(float) Load 626(d16) - 685: 16(bool) FOrdLessThan 683 684 - LoopMerge 680 679 None - BranchConditional 685 681 680 - 681: Label - 686: 20(ptr) AccessChain 9(color) 70 - 687: 6(float) Load 686 - 688: 6(float) Load 626(d16) - 689: 16(bool) FOrdLessThan 687 688 - SelectionMerge 691 None - BranchConditional 689 690 693 - 690: Label - Kill - 693: Label - 694: 7(fvec4) Load 9(color) - 695: 7(fvec4) CompositeConstruct 89 89 89 89 - 696: 7(fvec4) FAdd 694 695 - Store 9(color) 696 - Branch 691 - 691: Label - Branch 679 - 680: Label - 697: 7(fvec4) Load 9(color) - 698: 7(fvec4) CompositeConstruct 89 89 89 89 - 699: 7(fvec4) FAdd 697 698 - Store 9(color) 699 - 700: 7(fvec4) Load 9(color) - Store 596(gl_FragColor) 700 - Return - FunctionEnd +spv.loops.frag +WARNING: 0:14: varying deprecated in version 130; may be removed in future release + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 714 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 + ExecutionMode 4 OriginLowerLeft + Source GLSL 130 + Name 4 "main" + Name 9 "color" + Name 11 "BaseColor" + Name 52 "d" + Name 56 "bigColor" + Name 69 "bigColor1_1" + Name 102 "d2" + Name 110 "d3" + Name 114 "bigColor1_2" + Name 126 "bigColor1_3" + Name 132 "d4" + Name 143 "i" + Name 151 "Count" + Name 154 "bigColor2" + Name 164 "bigColor3" + Name 172 "i" + Name 187 "i" + Name 222 "i" + Name 244 "i" + Name 268 "i" + Name 295 "bigColor4" + Name 330 "bigColor5" + Name 336 "d5" + Name 352 "d6" + Name 365 "bigColor6" + Name 401 "d7" + Name 431 "bigColor7" + Name 449 "d8" + Name 491 "d9" + Name 522 "d10" + Name 530 "d11" + Name 540 "d12" + Name 565 "bigColor8" + Name 592 "gl_FragColor" + Name 600 "d14" + Name 605 "d15" + Name 624 "d16" + Name 660 "d18" + Name 671 "d17" + Name 697 "d13" + Name 698 "d19" + Name 699 "d20" + Name 700 "d21" + Name 701 "d22" + Name 702 "d23" + Name 703 "d24" + Name 704 "d25" + Name 705 "d26" + Name 706 "d27" + Name 707 "d28" + Name 708 "d29" + Name 709 "d30" + Name 710 "d31" + Name 711 "d32" + Name 712 "d33" + Name 713 "d34" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 17: TypeBool + 18: 17(bool) ConstantTrue + 19: TypeInt 32 0 + 20: 19(int) Constant 0 + 21: TypePointer Function 6(float) + 24: 6(float) Constant 1051260355 + 28: 7(fvec4) ConstantComposite 24 24 24 24 + 34: 6(float) Constant 1059648963 + 38: 7(fvec4) ConstantComposite 34 34 34 34 + 51: TypePointer UniformConstant 6(float) + 52(d): 51(ptr) Variable UniformConstant + 55: TypePointer UniformConstant 7(fvec4) + 56(bigColor): 55(ptr) Variable UniformConstant + 64: 19(int) Constant 2 + 69(bigColor1_1): 55(ptr) Variable UniformConstant + 73: 19(int) Constant 3 + 90: 6(float) Constant 1109917696 + 93: 6(float) Constant 1065353216 + 102(d2): 51(ptr) Variable UniformConstant + 107: 19(int) Constant 1 + 110(d3): 51(ptr) Variable UniformConstant +114(bigColor1_2): 55(ptr) Variable UniformConstant +126(bigColor1_3): 55(ptr) Variable UniformConstant + 132(d4): 51(ptr) Variable UniformConstant + 141: TypeInt 32 1 + 142: TypePointer Function 141(int) + 144: 141(int) Constant 0 + 150: TypePointer UniformConstant 141(int) + 151(Count): 150(ptr) Variable UniformConstant + 154(bigColor2): 55(ptr) Variable UniformConstant + 159: 141(int) Constant 1 + 164(bigColor3): 55(ptr) Variable UniformConstant + 178: 141(int) Constant 42 + 193: 141(int) Constant 100 + 197: 6(float) Constant 1101004800 + 228: 141(int) Constant 120 + 295(bigColor4): 55(ptr) Variable UniformConstant + 330(bigColor5): 55(ptr) Variable UniformConstant + 336(d5): 51(ptr) Variable UniformConstant + 352(d6): 51(ptr) Variable UniformConstant + 365(bigColor6): 55(ptr) Variable UniformConstant + 401(d7): 51(ptr) Variable UniformConstant + 426: 6(float) Constant 0 + 431(bigColor7): 55(ptr) Variable UniformConstant + 449(d8): 51(ptr) Variable UniformConstant + 466: 6(float) Constant 1073741824 + 491(d9): 51(ptr) Variable UniformConstant + 507: 6(float) Constant 1084227584 + 522(d10): 51(ptr) Variable UniformConstant + 530(d11): 51(ptr) Variable UniformConstant + 540(d12): 51(ptr) Variable UniformConstant + 563: 6(float) Constant 1092616192 + 565(bigColor8): 55(ptr) Variable UniformConstant + 591: TypePointer Output 7(fvec4) +592(gl_FragColor): 591(ptr) Variable Output + 600(d14): 51(ptr) Variable UniformConstant + 605(d15): 51(ptr) Variable UniformConstant + 624(d16): 51(ptr) Variable UniformConstant + 660(d18): 51(ptr) Variable UniformConstant + 671(d17): 51(ptr) Variable UniformConstant + 697(d13): 51(ptr) Variable UniformConstant + 698(d19): 51(ptr) Variable UniformConstant + 699(d20): 51(ptr) Variable UniformConstant + 700(d21): 51(ptr) Variable UniformConstant + 701(d22): 51(ptr) Variable UniformConstant + 702(d23): 51(ptr) Variable UniformConstant + 703(d24): 51(ptr) Variable UniformConstant + 704(d25): 51(ptr) Variable UniformConstant + 705(d26): 51(ptr) Variable UniformConstant + 706(d27): 51(ptr) Variable UniformConstant + 707(d28): 51(ptr) Variable UniformConstant + 708(d29): 51(ptr) Variable UniformConstant + 709(d30): 51(ptr) Variable UniformConstant + 710(d31): 51(ptr) Variable UniformConstant + 711(d32): 51(ptr) Variable UniformConstant + 712(d33): 51(ptr) Variable UniformConstant + 713(d34): 51(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(color): 8(ptr) Variable Function + 143(i): 142(ptr) Variable Function + 172(i): 142(ptr) Variable Function + 187(i): 142(ptr) Variable Function + 222(i): 142(ptr) Variable Function + 244(i): 142(ptr) Variable Function + 268(i): 142(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Branch 16 + 13: Label + 22: 21(ptr) AccessChain 9(color) 20 + 23: 6(float) Load 22 + 25: 17(bool) FOrdLessThan 23 24 + SelectionMerge 27 None + BranchConditional 25 26 27 + 14: Label + Branch 48 + 15: Label + Branch 16 + 16: Label + LoopMerge 14 15 None + BranchConditional 18 13 14 + 26: Label + 29: 7(fvec4) Load 9(color) + 30: 7(fvec4) FAdd 29 28 + Store 9(color) 30 + Branch 14 + 27: Label + 32: 21(ptr) AccessChain 9(color) 20 + 33: 6(float) Load 32 + 35: 17(bool) FOrdLessThan 33 34 + SelectionMerge 37 None + BranchConditional 35 36 37 + 36: Label + 39: 7(fvec4) Load 9(color) + 40: 7(fvec4) FAdd 39 38 + Store 9(color) 40 + Branch 14 + 37: Label + 42: 7(fvec4) Load 9(color) + 43: 7(fvec4) FAdd 42 28 + Store 9(color) 43 + Branch 14 + 45: Label + 57: 7(fvec4) Load 56(bigColor) + 58: 7(fvec4) Load 9(color) + 59: 7(fvec4) FAdd 58 57 + Store 9(color) 59 + Branch 47 + 46: Label + Branch 63 + 47: Label + Branch 48 + 48: Label + 49: 21(ptr) AccessChain 9(color) 20 + 50: 6(float) Load 49 + 53: 6(float) Load 52(d) + 54: 17(bool) FOrdLessThan 50 53 + LoopMerge 46 47 None + BranchConditional 54 45 46 + 60: Label + 70: 7(fvec4) Load 69(bigColor1_1) + 71: 7(fvec4) Load 9(color) + 72: 7(fvec4) FAdd 71 70 + Store 9(color) 72 + 74: 21(ptr) AccessChain 9(color) 73 + 75: 6(float) Load 74 + 76: 6(float) Load 52(d) + 77: 17(bool) FOrdLessThan 75 76 + SelectionMerge 79 None + BranchConditional 77 78 79 + 61: Label + Branch 87 + 62: Label + Branch 63 + 63: Label + 65: 21(ptr) AccessChain 9(color) 64 + 66: 6(float) Load 65 + 67: 6(float) Load 52(d) + 68: 17(bool) FOrdLessThan 66 67 + LoopMerge 61 62 None + BranchConditional 68 60 61 + 78: Label + Branch 62 + 79: Label + 81: 7(fvec4) Load 69(bigColor1_1) + 82: 7(fvec4) Load 9(color) + 83: 7(fvec4) FAdd 82 81 + Store 9(color) 83 + Branch 62 + 84: Label + 92: 7(fvec4) Load 9(color) + 94: 7(fvec4) CompositeConstruct 93 93 93 93 + 95: 7(fvec4) FAdd 92 94 + Store 9(color) 95 + Branch 86 + 85: Label + Branch 99 + 86: Label + Branch 87 + 87: Label + 88: 21(ptr) AccessChain 9(color) 20 + 89: 6(float) Load 88 + 91: 17(bool) FOrdLessThan 89 90 + LoopMerge 85 86 None + BranchConditional 91 84 85 + 96: Label + 115: 7(fvec4) Load 114(bigColor1_2) + 116: 7(fvec4) Load 9(color) + 117: 7(fvec4) FAdd 116 115 + Store 9(color) 117 + Branch 98 + 97: Label + Branch 121 + 98: Label + Branch 99 + 99: Label + 100: 21(ptr) AccessChain 9(color) 73 + 101: 6(float) Load 100 + 103: 6(float) Load 102(d2) + 104: 17(bool) FOrdLessThan 101 103 + SelectionMerge 106 None + BranchConditional 104 105 106 + 105: Label + 108: 21(ptr) AccessChain 9(color) 107 + 109: 6(float) Load 108 + 111: 6(float) Load 110(d3) + 112: 17(bool) FOrdLessThan 109 111 + Branch 106 + 106: Label + 113: 17(bool) Phi 104 99 112 105 + LoopMerge 97 98 None + BranchConditional 113 96 97 + 118: Label + 127: 7(fvec4) Load 126(bigColor1_3) + 128: 7(fvec4) Load 9(color) + 129: 7(fvec4) FAdd 128 127 + Store 9(color) 129 + 130: 21(ptr) AccessChain 9(color) 107 + 131: 6(float) Load 130 + 133: 6(float) Load 132(d4) + 134: 17(bool) FOrdLessThan 131 133 + SelectionMerge 136 None + BranchConditional 134 135 136 + 119: Label + Store 143(i) 144 + Branch 148 + 120: Label + Branch 121 + 121: Label + 122: 21(ptr) AccessChain 9(color) 64 + 123: 6(float) Load 122 + 124: 6(float) Load 110(d3) + 125: 17(bool) FOrdLessThan 123 124 + LoopMerge 119 120 None + BranchConditional 125 118 119 + 135: Label + Branch 119 + 136: Label + 138: 7(fvec4) Load 126(bigColor1_3) + 139: 7(fvec4) Load 9(color) + 140: 7(fvec4) FAdd 139 138 + Store 9(color) 140 + Branch 120 + 145: Label + 155: 7(fvec4) Load 154(bigColor2) + 156: 7(fvec4) Load 9(color) + 157: 7(fvec4) FAdd 156 155 + Store 9(color) 157 + Branch 147 + 146: Label + Branch 161 + 147: Label + 158: 141(int) Load 143(i) + 160: 141(int) IAdd 158 159 + Store 143(i) 160 + Branch 148 + 148: Label + 149: 141(int) Load 143(i) + 152: 141(int) Load 151(Count) + 153: 17(bool) SLessThan 149 152 + LoopMerge 146 147 None + BranchConditional 153 145 146 + 161: Label + 165: 7(fvec4) Load 164(bigColor3) + 166: 7(fvec4) Load 9(color) + 167: 7(fvec4) FAdd 166 165 + Store 9(color) 167 + Branch 163 + 162: Label + Store 172(i) 144 + Branch 176 + 163: Label + 168: 21(ptr) AccessChain 9(color) 20 + 169: 6(float) Load 168 + 170: 6(float) Load 102(d2) + 171: 17(bool) FOrdLessThan 169 170 + LoopMerge 162 163 None + BranchConditional 171 161 162 + 173: Label + 180: 6(float) Load 110(d3) + 181: 21(ptr) AccessChain 9(color) 64 + 182: 6(float) Load 181 + 183: 6(float) FAdd 182 180 + 184: 21(ptr) AccessChain 9(color) 64 + Store 184 183 + Branch 175 + 174: Label + Store 187(i) 144 + Branch 191 + 175: Label + 185: 141(int) Load 172(i) + 186: 141(int) IAdd 185 159 + Store 172(i) 186 + Branch 176 + 176: Label + 177: 141(int) Load 172(i) + 179: 17(bool) SLessThan 177 178 + LoopMerge 174 175 None + BranchConditional 179 173 174 + 188: Label + 195: 21(ptr) AccessChain 9(color) 64 + 196: 6(float) Load 195 + 198: 17(bool) FOrdLessThan 196 197 + SelectionMerge 200 None + BranchConditional 198 199 204 + 189: Label + Store 222(i) 144 + Branch 226 + 190: Label + 220: 141(int) Load 187(i) + 221: 141(int) IAdd 220 159 + Store 187(i) 221 + Branch 191 + 191: Label + 192: 141(int) Load 187(i) + 194: 17(bool) SLessThan 192 193 + LoopMerge 189 190 None + BranchConditional 194 188 189 + 199: Label + 201: 21(ptr) AccessChain 9(color) 20 + 202: 6(float) Load 201 + 203: 6(float) FAdd 202 93 + Store 201 203 + Branch 200 + 204: Label + 205: 21(ptr) AccessChain 9(color) 107 + 206: 6(float) Load 205 + 207: 6(float) FAdd 206 93 + Store 205 207 + Branch 200 + 200: Label + 208: 21(ptr) AccessChain 9(color) 73 + 209: 6(float) Load 208 + 210: 17(bool) FOrdLessThan 209 197 + SelectionMerge 212 None + BranchConditional 210 211 212 + 211: Label + 213: 21(ptr) AccessChain 9(color) 64 + 214: 6(float) Load 213 + 215: 21(ptr) AccessChain 9(color) 107 + 216: 6(float) Load 215 + 217: 17(bool) FOrdGreaterThan 214 216 + SelectionMerge 219 None + BranchConditional 217 218 219 + 218: Label + Branch 219 + 219: Label + Branch 212 + 212: Label + Branch 190 + 223: Label + 230: 21(ptr) AccessChain 9(color) 64 + 231: 6(float) Load 230 + 232: 17(bool) FOrdLessThan 231 197 + SelectionMerge 234 None + BranchConditional 232 233 238 + 224: Label + Store 244(i) 144 + Branch 248 + 225: Label + 242: 141(int) Load 222(i) + 243: 141(int) IAdd 242 159 + Store 222(i) 243 + Branch 226 + 226: Label + 227: 141(int) Load 222(i) + 229: 17(bool) SLessThan 227 228 + LoopMerge 224 225 None + BranchConditional 229 223 224 + 233: Label + 235: 21(ptr) AccessChain 9(color) 20 + 236: 6(float) Load 235 + 237: 6(float) FAdd 236 93 + Store 235 237 + Branch 234 + 238: Label + 239: 21(ptr) AccessChain 9(color) 107 + 240: 6(float) Load 239 + 241: 6(float) FAdd 240 93 + Store 239 241 + Branch 234 + 234: Label + Branch 225 + 245: Label + 251: 6(float) Load 110(d3) + 252: 21(ptr) AccessChain 9(color) 64 + 253: 6(float) Load 252 + 254: 6(float) FAdd 253 251 + 255: 21(ptr) AccessChain 9(color) 64 + Store 255 254 + 256: 21(ptr) AccessChain 9(color) 20 + 257: 6(float) Load 256 + 258: 6(float) Load 132(d4) + 259: 17(bool) FOrdLessThan 257 258 + SelectionMerge 261 None + BranchConditional 259 260 261 + 246: Label + Store 268(i) 144 + Branch 272 + 247: Label + 266: 141(int) Load 244(i) + 267: 141(int) IAdd 266 159 + Store 244(i) 267 + Branch 248 + 248: Label + 249: 141(int) Load 244(i) + 250: 17(bool) SLessThan 249 178 + LoopMerge 246 247 None + BranchConditional 250 245 246 + 260: Label + Branch 247 + 261: Label + 263: 21(ptr) AccessChain 9(color) 73 + 264: 6(float) Load 263 + 265: 6(float) FAdd 264 93 + Store 263 265 + Branch 247 + 269: Label + 275: 6(float) Load 110(d3) + 276: 21(ptr) AccessChain 9(color) 64 + 277: 6(float) Load 276 + 278: 6(float) FAdd 277 275 + 279: 21(ptr) AccessChain 9(color) 64 + Store 279 278 + 280: 21(ptr) AccessChain 9(color) 20 + 281: 6(float) Load 280 + 282: 6(float) Load 132(d4) + 283: 17(bool) FOrdLessThan 281 282 + SelectionMerge 285 None + BranchConditional 283 284 285 + 270: Label + Branch 292 + 271: Label + 290: 141(int) Load 268(i) + 291: 141(int) IAdd 290 159 + Store 268(i) 291 + Branch 272 + 272: Label + 273: 141(int) Load 268(i) + 274: 17(bool) SLessThan 273 178 + LoopMerge 270 271 None + BranchConditional 274 269 270 + 284: Label + Branch 270 + 285: Label + 287: 21(ptr) AccessChain 9(color) 73 + 288: 6(float) Load 287 + 289: 6(float) FAdd 288 93 + Store 287 289 + Branch 271 + 292: Label + 296: 7(fvec4) Load 295(bigColor4) + 297: 7(fvec4) Load 9(color) + 298: 7(fvec4) FAdd 297 296 + Store 9(color) 298 + 299: 21(ptr) AccessChain 9(color) 20 + 300: 6(float) Load 299 + 301: 6(float) Load 132(d4) + 302: 17(bool) FOrdLessThan 300 301 + SelectionMerge 304 None + BranchConditional 302 303 304 + 293: Label + Branch 327 + 294: Label + 323: 21(ptr) AccessChain 9(color) 64 + 324: 6(float) Load 323 + 325: 6(float) Load 132(d4) + 326: 17(bool) FOrdLessThan 324 325 + LoopMerge 293 294 None + BranchConditional 326 292 293 + 303: Label + Branch 294 + 304: Label + 306: 21(ptr) AccessChain 9(color) 107 + 307: 6(float) Load 306 + 308: 6(float) Load 132(d4) + 309: 17(bool) FOrdLessThan 307 308 + SelectionMerge 311 None + BranchConditional 309 310 317 + 310: Label + 312: 6(float) Load 132(d4) + 313: 21(ptr) AccessChain 9(color) 107 + 314: 6(float) Load 313 + 315: 6(float) FAdd 314 312 + 316: 21(ptr) AccessChain 9(color) 107 + Store 316 315 + Branch 311 + 317: Label + 318: 6(float) Load 132(d4) + 319: 21(ptr) AccessChain 9(color) 20 + 320: 6(float) Load 319 + 321: 6(float) FAdd 320 318 + 322: 21(ptr) AccessChain 9(color) 20 + Store 322 321 + Branch 311 + 311: Label + Branch 294 + 327: Label + 331: 7(fvec4) Load 330(bigColor5) + 332: 7(fvec4) Load 9(color) + 333: 7(fvec4) FAdd 332 331 + Store 9(color) 333 + 334: 21(ptr) AccessChain 9(color) 107 + 335: 6(float) Load 334 + 337: 6(float) Load 336(d5) + 338: 17(bool) FOrdLessThan 335 337 + SelectionMerge 340 None + BranchConditional 338 339 340 + 328: Label + 350: 21(ptr) AccessChain 9(color) 20 + 351: 6(float) Load 350 + 353: 6(float) Load 352(d6) + 354: 17(bool) FOrdLessThan 351 353 + SelectionMerge 356 None + BranchConditional 354 355 369 + 329: Label + 346: 21(ptr) AccessChain 9(color) 20 + 347: 6(float) Load 346 + 348: 6(float) Load 336(d5) + 349: 17(bool) FOrdLessThan 347 348 + LoopMerge 328 329 None + BranchConditional 349 327 328 + 339: Label + 341: 6(float) Load 336(d5) + 342: 21(ptr) AccessChain 9(color) 107 + 343: 6(float) Load 342 + 344: 6(float) FAdd 343 341 + 345: 21(ptr) AccessChain 9(color) 107 + Store 345 344 + Branch 340 + 340: Label + Branch 329 + 355: Label + Branch 360 + 357: Label + 366: 7(fvec4) Load 365(bigColor6) + 367: 7(fvec4) Load 9(color) + 368: 7(fvec4) FAdd 367 366 + Store 9(color) 368 + Branch 359 + 358: Label + Branch 356 + 359: Label + Branch 360 + 360: Label + 361: 21(ptr) AccessChain 9(color) 107 + 362: 6(float) Load 361 + 363: 6(float) Load 352(d6) + 364: 17(bool) FOrdLessThan 362 363 + LoopMerge 358 359 None + BranchConditional 364 357 358 + 369: Label + Branch 373 + 370: Label + 378: 51(ptr) AccessChain 365(bigColor6) 64 + 379: 6(float) Load 378 + 380: 21(ptr) AccessChain 9(color) 64 + 381: 6(float) Load 380 + 382: 6(float) FAdd 381 379 + 383: 21(ptr) AccessChain 9(color) 64 + Store 383 382 + Branch 372 + 371: Label + Branch 356 + 372: Label + Branch 373 + 373: Label + 374: 21(ptr) AccessChain 9(color) 64 + 375: 6(float) Load 374 + 376: 6(float) Load 352(d6) + 377: 17(bool) FOrdLessThan 375 376 + LoopMerge 371 372 None + BranchConditional 377 370 371 + 356: Label + 384: 21(ptr) AccessChain 9(color) 20 + 385: 6(float) Load 384 + 386: 6(float) Load 352(d6) + 387: 17(bool) FOrdLessThan 385 386 + SelectionMerge 389 None + BranchConditional 387 388 407 + 388: Label + Branch 393 + 390: Label + 398: 7(fvec4) Load 365(bigColor6) + 399: 7(fvec4) Load 9(color) + 400: 7(fvec4) FAdd 399 398 + Store 9(color) 400 + 402: 6(float) Load 401(d7) + 403: 17(bool) FOrdLessThan 402 93 + SelectionMerge 405 None + BranchConditional 403 404 405 + 391: Label + Branch 389 + 392: Label + Branch 393 + 393: Label + 394: 21(ptr) AccessChain 9(color) 107 + 395: 6(float) Load 394 + 396: 6(float) Load 352(d6) + 397: 17(bool) FOrdLessThan 395 396 + LoopMerge 391 392 None + BranchConditional 397 390 391 + 404: Label + Branch 391 + 405: Label + Branch 392 + 407: Label + Branch 411 + 408: Label + 416: 51(ptr) AccessChain 365(bigColor6) 64 + 417: 6(float) Load 416 + 418: 21(ptr) AccessChain 9(color) 64 + 419: 6(float) Load 418 + 420: 6(float) FAdd 419 417 + 421: 21(ptr) AccessChain 9(color) 64 + Store 421 420 + Branch 410 + 409: Label + Branch 389 + 410: Label + Branch 411 + 411: Label + 412: 21(ptr) AccessChain 9(color) 64 + 413: 6(float) Load 412 + 414: 6(float) Load 352(d6) + 415: 17(bool) FOrdLessThan 413 414 + LoopMerge 409 410 None + BranchConditional 415 408 409 + 389: Label + Branch 422 + 422: Label + 425: 6(float) Load 401(d7) + 427: 17(bool) FOrdLessThan 425 426 + SelectionMerge 429 None + BranchConditional 427 428 429 + 423: Label + Branch 446 + 424: Label + LoopMerge 423 424 None + BranchConditional 18 422 423 + 428: Label + Branch 423 + 429: Label + 432: 7(fvec4) Load 431(bigColor7) + 433: 7(fvec4) Load 9(color) + 434: 7(fvec4) FAdd 433 432 + Store 9(color) 434 + 435: 6(float) Load 401(d7) + 436: 17(bool) FOrdLessThan 435 93 + SelectionMerge 438 None + BranchConditional 436 437 438 + 437: Label + 439: 21(ptr) AccessChain 9(color) 64 + 440: 6(float) Load 439 + 441: 6(float) FAdd 440 93 + Store 439 441 + Branch 423 + 438: Label + 443: 7(fvec4) Load 11(BaseColor) + 444: 7(fvec4) Load 9(color) + 445: 7(fvec4) FAdd 444 443 + Store 9(color) 445 + Branch 424 + 446: Label + 450: 6(float) Load 449(d8) + 451: 17(bool) FOrdLessThan 450 426 + SelectionMerge 453 None + BranchConditional 451 452 453 + 447: Label + Branch 488 + 448: Label + 481: 21(ptr) AccessChain 9(color) 64 + 482: 6(float) Load 481 + 483: 6(float) Load 449(d8) + 484: 17(bool) FOrdLessThan 482 483 + LoopMerge 447 448 None + BranchConditional 484 446 447 + 452: Label + Branch 447 + 453: Label + 455: 7(fvec4) Load 431(bigColor7) + 456: 7(fvec4) Load 9(color) + 457: 7(fvec4) FAdd 456 455 + Store 9(color) 457 + 458: 6(float) Load 449(d8) + 459: 17(bool) FOrdLessThan 458 93 + SelectionMerge 461 None + BranchConditional 459 460 461 + 460: Label + 462: 21(ptr) AccessChain 9(color) 64 + 463: 6(float) Load 462 + 464: 6(float) FAdd 463 93 + Store 462 464 + 465: 6(float) Load 449(d8) + 467: 17(bool) FOrdLessThan 465 466 + SelectionMerge 469 None + BranchConditional 467 468 473 + 468: Label + 470: 21(ptr) AccessChain 9(color) 107 + 471: 6(float) Load 470 + 472: 6(float) FAdd 471 93 + Store 470 472 + Branch 469 + 473: Label + 474: 21(ptr) AccessChain 9(color) 20 + 475: 6(float) Load 474 + 476: 6(float) FAdd 475 93 + Store 474 476 + Branch 469 + 469: Label + Branch 447 + 461: Label + 478: 7(fvec4) Load 11(BaseColor) + 479: 7(fvec4) Load 9(color) + 480: 7(fvec4) FAdd 479 478 + Store 9(color) 480 + Branch 448 + 485: Label + 494: 6(float) Load 491(d9) + 495: 6(float) Load 449(d8) + 496: 17(bool) FOrdGreaterThan 494 495 + SelectionMerge 498 None + BranchConditional 496 497 498 + 486: Label + Branch 519 + 487: Label + Branch 488 + 488: Label + 489: 21(ptr) AccessChain 9(color) 73 + 490: 6(float) Load 489 + 492: 6(float) Load 491(d9) + 493: 17(bool) FOrdLessThan 490 492 + LoopMerge 486 487 None + BranchConditional 493 485 486 + 497: Label + 499: 21(ptr) AccessChain 9(color) 20 + 500: 6(float) Load 499 + 501: 6(float) Load 401(d7) + 502: 17(bool) FOrdLessThanEqual 500 501 + SelectionMerge 504 None + BranchConditional 502 503 504 + 503: Label + 505: 21(ptr) AccessChain 9(color) 64 + 506: 6(float) Load 505 + 508: 17(bool) FOrdEqual 506 507 + SelectionMerge 510 None + BranchConditional 508 509 514 + 509: Label + 511: 21(ptr) AccessChain 9(color) 73 + 512: 6(float) Load 511 + 513: 6(float) FAdd 512 93 + Store 511 513 + Branch 510 + 514: Label + Branch 486 + 510: Label + Branch 504 + 504: Label + Branch 498 + 498: Label + Branch 487 + 516: Label + 525: 21(ptr) AccessChain 9(color) 107 + 526: 6(float) Load 525 + 527: 6(float) FAdd 526 93 + Store 525 527 + 528: 21(ptr) AccessChain 9(color) 107 + 529: 6(float) Load 528 + 531: 6(float) Load 530(d11) + 532: 17(bool) FOrdLessThan 529 531 + SelectionMerge 534 None + BranchConditional 532 533 534 + 517: Label + Branch 560 + 518: Label + Branch 519 + 519: Label + 520: 21(ptr) AccessChain 9(color) 64 + 521: 6(float) Load 520 + 523: 6(float) Load 522(d10) + 524: 17(bool) FOrdLessThan 521 523 + LoopMerge 517 518 None + BranchConditional 524 516 517 + 533: Label + 535: 21(ptr) AccessChain 9(color) 64 + 536: 6(float) Load 535 + 537: 6(float) FAdd 536 93 + Store 535 537 + 538: 21(ptr) AccessChain 9(color) 73 + 539: 6(float) Load 538 + 541: 6(float) Load 540(d12) + 542: 17(bool) FOrdLessThan 539 541 + SelectionMerge 544 None + BranchConditional 542 543 548 + 543: Label + 545: 21(ptr) AccessChain 9(color) 73 + 546: 6(float) Load 545 + 547: 6(float) FAdd 546 93 + Store 545 547 + Branch 544 + 548: Label + 549: 21(ptr) AccessChain 9(color) 20 + 550: 6(float) Load 549 + 551: 6(float) FAdd 550 93 + Store 549 551 + Branch 544 + 544: Label + Branch 518 + 534: Label + 553: 7(fvec4) Load 9(color) + 554: 7(fvec4) CompositeConstruct 93 93 93 93 + 555: 7(fvec4) FAdd 553 554 + Store 9(color) 555 + Branch 517 + 557: Label + 566: 7(fvec4) Load 565(bigColor8) + 567: 7(fvec4) Load 9(color) + 568: 7(fvec4) FAdd 567 566 + Store 9(color) 568 + 569: 21(ptr) AccessChain 9(color) 64 + 570: 6(float) Load 569 + 571: 6(float) Load 449(d8) + 572: 17(bool) FOrdLessThan 570 571 + SelectionMerge 574 None + BranchConditional 572 573 574 + 558: Label + 588: 7(fvec4) Load 9(color) + 589: 7(fvec4) CompositeConstruct 93 93 93 93 + 590: 7(fvec4) FAdd 588 589 + Store 9(color) 590 + 593: 7(fvec4) Load 9(color) + Store 592(gl_FragColor) 593 + Branch 597 + 559: Label + Branch 560 + 560: Label + 561: 21(ptr) AccessChain 9(color) 20 + 562: 6(float) Load 561 + 564: 17(bool) FOrdLessThan 562 563 + LoopMerge 558 559 None + BranchConditional 564 557 558 + 573: Label + 575: 21(ptr) AccessChain 9(color) 73 + 576: 6(float) Load 575 + 577: 6(float) Load 352(d6) + 578: 17(bool) FOrdLessThan 576 577 + SelectionMerge 580 None + BranchConditional 578 579 580 + 579: Label + Branch 559 + 580: Label + Branch 574 + 574: Label + 582: 51(ptr) AccessChain 565(bigColor8) 20 + 583: 6(float) Load 582 + 584: 21(ptr) AccessChain 9(color) 107 + 585: 6(float) Load 584 + 586: 6(float) FAdd 585 583 + 587: 21(ptr) AccessChain 9(color) 107 + Store 587 586 + Branch 559 + 594: Label + 603: 21(ptr) AccessChain 9(color) 107 + 604: 6(float) Load 603 + 606: 6(float) Load 605(d15) + 607: 17(bool) FOrdLessThan 604 606 + SelectionMerge 609 None + BranchConditional 607 608 611 + 595: Label + 615: 7(fvec4) Load 9(color) + 616: 7(fvec4) CompositeConstruct 93 93 93 93 + 617: 7(fvec4) FAdd 615 616 + Store 9(color) 617 + Branch 621 + 596: Label + Branch 597 + 597: Label + 598: 21(ptr) AccessChain 9(color) 20 + 599: 6(float) Load 598 + 601: 6(float) Load 600(d14) + 602: 17(bool) FOrdLessThan 599 601 + LoopMerge 595 596 None + BranchConditional 602 594 595 + 608: Label + Return + 611: Label + 612: 7(fvec4) Load 9(color) + 613: 7(fvec4) CompositeConstruct 93 93 93 93 + 614: 7(fvec4) FAdd 612 613 + Store 9(color) 614 + Branch 609 + 609: Label + Branch 596 + 618: Label + 627: 21(ptr) AccessChain 9(color) 73 + 628: 6(float) Load 627 + 629: 6(float) FAdd 628 93 + Store 627 629 + Branch 620 + 619: Label + Branch 633 + 620: Label + Branch 621 + 621: Label + 622: 21(ptr) AccessChain 9(color) 73 + 623: 6(float) Load 622 + 625: 6(float) Load 624(d16) + 626: 17(bool) FOrdLessThan 623 625 + LoopMerge 619 620 None + BranchConditional 626 618 619 + 630: Label + 645: 7(fvec4) Load 114(bigColor1_2) + 646: 7(fvec4) Load 9(color) + 647: 7(fvec4) FAdd 646 645 + Store 9(color) 647 + 648: 21(ptr) AccessChain 9(color) 64 + 649: 6(float) Load 648 + 650: 6(float) Load 110(d3) + 651: 17(bool) FOrdLessThan 649 650 + SelectionMerge 653 None + BranchConditional 651 652 653 + 631: Label + Branch 655 + 632: Label + Branch 633 + 633: Label + 634: 21(ptr) AccessChain 9(color) 73 + 635: 6(float) Load 634 + 636: 6(float) Load 102(d2) + 637: 17(bool) FOrdLessThan 635 636 + SelectionMerge 639 None + BranchConditional 637 638 639 + 638: Label + 640: 21(ptr) AccessChain 9(color) 107 + 641: 6(float) Load 640 + 642: 6(float) Load 110(d3) + 643: 17(bool) FOrdLessThan 641 642 + Branch 639 + 639: Label + 644: 17(bool) Phi 637 633 643 638 + LoopMerge 631 632 None + BranchConditional 644 630 631 + 652: Label + Return + 653: Label + Branch 632 + 655: Label + 658: 21(ptr) AccessChain 9(color) 107 + 659: 6(float) Load 658 + 661: 6(float) Load 660(d18) + 662: 17(bool) FOrdLessThan 659 661 + SelectionMerge 664 None + BranchConditional 662 663 664 + 656: Label + Branch 677 + 657: Label + 669: 21(ptr) AccessChain 9(color) 20 + 670: 6(float) Load 669 + 672: 6(float) Load 671(d17) + 673: 17(bool) FOrdLessThan 670 672 + LoopMerge 656 657 None + BranchConditional 673 655 656 + 663: Label + Return + 664: Label + 666: 7(fvec4) Load 9(color) + 667: 7(fvec4) CompositeConstruct 93 93 93 93 + 668: 7(fvec4) FAdd 666 667 + Store 9(color) 668 + Branch 657 + 674: Label + 682: 21(ptr) AccessChain 9(color) 73 + 683: 6(float) Load 682 + 684: 6(float) Load 624(d16) + 685: 17(bool) FOrdLessThan 683 684 + SelectionMerge 687 None + BranchConditional 685 686 689 + 675: Label + 693: 7(fvec4) Load 9(color) + 694: 7(fvec4) CompositeConstruct 93 93 93 93 + 695: 7(fvec4) FAdd 693 694 + Store 9(color) 695 + 696: 7(fvec4) Load 9(color) + Store 592(gl_FragColor) 696 + Return + 676: Label + Branch 677 + 677: Label + 678: 21(ptr) AccessChain 9(color) 107 + 679: 6(float) Load 678 + 680: 6(float) Load 624(d16) + 681: 17(bool) FOrdLessThan 679 680 + LoopMerge 675 676 None + BranchConditional 681 674 675 + 686: Label + Kill + 689: Label + 690: 7(fvec4) Load 9(color) + 691: 7(fvec4) CompositeConstruct 93 93 93 93 + 692: 7(fvec4) FAdd 690 691 + Store 9(color) 692 + Branch 687 + 687: Label + Branch 676 + FunctionEnd diff --git a/Test/baseResults/spv.loopsArtificial.frag.out b/Test/baseResults/spv.loopsArtificial.frag.out index 314a9691..ff7a8f2f 100755 --- a/Test/baseResults/spv.loopsArtificial.frag.out +++ b/Test/baseResults/spv.loopsArtificial.frag.out @@ -1,308 +1,299 @@ -spv.loopsArtificial.frag -WARNING: 0:14: varying deprecated in version 130; may be removed in future release - - -Linked fragment stage: - - -// Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 191 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 - ExecutionMode 4 OriginLowerLeft - Source GLSL 130 - Name 4 "main" - Name 9 "color" - Name 11 "BaseColor" - Name 27 "d4" - Name 32 "bigColor4" - Name 84 "d13" - Name 144 "gl_FragColor" - Name 146 "bigColor" - Name 147 "bigColor1_1" - Name 148 "bigColor1_2" - Name 149 "bigColor1_3" - Name 150 "bigColor2" - Name 151 "bigColor3" - Name 152 "bigColor5" - Name 153 "bigColor6" - Name 154 "bigColor7" - Name 155 "bigColor8" - Name 156 "d" - Name 157 "d2" - Name 158 "d3" - Name 159 "d5" - Name 160 "d6" - Name 161 "d7" - Name 162 "d8" - Name 163 "d9" - Name 164 "d10" - Name 165 "d11" - Name 166 "d12" - Name 167 "d14" - Name 168 "d15" - Name 169 "d16" - Name 170 "d17" - Name 171 "d18" - Name 172 "d19" - Name 173 "d20" - Name 174 "d21" - Name 175 "d22" - Name 176 "d23" - Name 177 "d24" - Name 178 "d25" - Name 179 "d26" - Name 180 "d27" - Name 181 "d28" - Name 182 "d29" - Name 183 "d30" - Name 184 "d31" - Name 185 "d32" - Name 186 "d33" - Name 187 "d34" - Name 190 "Count" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(BaseColor): 10(ptr) Variable Input - 17: TypeBool - 18: 17(bool) ConstantTrue - 21: TypeInt 32 0 - 22: 21(int) Constant 2 - 23: TypePointer Function 6(float) - 26: TypePointer UniformConstant 6(float) - 27(d4): 26(ptr) Variable UniformConstant - 31: TypePointer UniformConstant 7(fvec4) - 32(bigColor4): 31(ptr) Variable UniformConstant - 36: 21(int) Constant 0 - 43: 6(float) Constant 1073741824 - 56: 6(float) Constant 1065353216 - 58: 17(bool) ConstantFalse - 60: 21(int) Constant 1 - 81: 21(int) Constant 3 - 84(d13): 26(ptr) Variable UniformConstant - 143: TypePointer Output 7(fvec4) -144(gl_FragColor): 143(ptr) Variable Output - 146(bigColor): 31(ptr) Variable UniformConstant -147(bigColor1_1): 31(ptr) Variable UniformConstant -148(bigColor1_2): 31(ptr) Variable UniformConstant -149(bigColor1_3): 31(ptr) Variable UniformConstant - 150(bigColor2): 31(ptr) Variable UniformConstant - 151(bigColor3): 31(ptr) Variable UniformConstant - 152(bigColor5): 31(ptr) Variable UniformConstant - 153(bigColor6): 31(ptr) Variable UniformConstant - 154(bigColor7): 31(ptr) Variable UniformConstant - 155(bigColor8): 31(ptr) Variable UniformConstant - 156(d): 26(ptr) Variable UniformConstant - 157(d2): 26(ptr) Variable UniformConstant - 158(d3): 26(ptr) Variable UniformConstant - 159(d5): 26(ptr) Variable UniformConstant - 160(d6): 26(ptr) Variable UniformConstant - 161(d7): 26(ptr) Variable UniformConstant - 162(d8): 26(ptr) Variable UniformConstant - 163(d9): 26(ptr) Variable UniformConstant - 164(d10): 26(ptr) Variable UniformConstant - 165(d11): 26(ptr) Variable UniformConstant - 166(d12): 26(ptr) Variable UniformConstant - 167(d14): 26(ptr) Variable UniformConstant - 168(d15): 26(ptr) Variable UniformConstant - 169(d16): 26(ptr) Variable UniformConstant - 170(d17): 26(ptr) Variable UniformConstant - 171(d18): 26(ptr) Variable UniformConstant - 172(d19): 26(ptr) Variable UniformConstant - 173(d20): 26(ptr) Variable UniformConstant - 174(d21): 26(ptr) Variable UniformConstant - 175(d22): 26(ptr) Variable UniformConstant - 176(d23): 26(ptr) Variable UniformConstant - 177(d24): 26(ptr) Variable UniformConstant - 178(d25): 26(ptr) Variable UniformConstant - 179(d26): 26(ptr) Variable UniformConstant - 180(d27): 26(ptr) Variable UniformConstant - 181(d28): 26(ptr) Variable UniformConstant - 182(d29): 26(ptr) Variable UniformConstant - 183(d30): 26(ptr) Variable UniformConstant - 184(d31): 26(ptr) Variable UniformConstant - 185(d32): 26(ptr) Variable UniformConstant - 186(d33): 26(ptr) Variable UniformConstant - 187(d34): 26(ptr) Variable UniformConstant - 188: TypeInt 32 1 - 189: TypePointer UniformConstant 188(int) - 190(Count): 189(ptr) Variable UniformConstant - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 12: 7(fvec4) Load 11(BaseColor) - Store 9(color) 12 - Branch 13 - 13: Label - 16: 17(bool) Phi 18 5 58 52 58 66 - LoopMerge 14 13 None - Branch 19 - 19: Label - SelectionMerge 15 None - BranchConditional 16 15 20 - 20: Label - 24: 23(ptr) AccessChain 9(color) 22 - 25: 6(float) Load 24 - 28: 6(float) Load 27(d4) - 29: 17(bool) FOrdLessThan 25 28 - SelectionMerge 30 None - BranchConditional 29 30 14 - 30: Label - Branch 15 - 15: Label - 33: 7(fvec4) Load 32(bigColor4) - 34: 7(fvec4) Load 9(color) - 35: 7(fvec4) FAdd 34 33 - Store 9(color) 35 - 37: 23(ptr) AccessChain 9(color) 36 - 38: 6(float) Load 37 - 39: 6(float) Load 27(d4) - 40: 17(bool) FOrdLessThan 38 39 - SelectionMerge 42 None - BranchConditional 40 41 42 - 41: Label - 44: 23(ptr) AccessChain 9(color) 22 - 45: 6(float) Load 44 - 46: 6(float) FAdd 45 43 - 47: 23(ptr) AccessChain 9(color) 22 - Store 47 46 - 48: 23(ptr) AccessChain 9(color) 22 - 49: 6(float) Load 48 - 50: 6(float) Load 27(d4) - 51: 17(bool) FOrdLessThan 49 50 - SelectionMerge 53 None - BranchConditional 51 52 53 - 52: Label - 54: 23(ptr) AccessChain 9(color) 36 - 55: 6(float) Load 54 - 57: 6(float) FAdd 55 56 - Store 54 57 - Branch 13 - 53: Label - Branch 42 - 42: Label - 61: 23(ptr) AccessChain 9(color) 60 - 62: 6(float) Load 61 - 63: 6(float) Load 27(d4) - 64: 17(bool) FOrdLessThan 62 63 - SelectionMerge 66 None - BranchConditional 64 65 72 - 65: Label - 67: 6(float) Load 27(d4) - 68: 23(ptr) AccessChain 9(color) 60 - 69: 6(float) Load 68 - 70: 6(float) FAdd 69 67 - 71: 23(ptr) AccessChain 9(color) 60 - Store 71 70 - Branch 66 - 72: Label - 73: 6(float) Load 27(d4) - 74: 23(ptr) AccessChain 9(color) 36 - 75: 6(float) Load 74 - 76: 6(float) FAdd 75 73 - 77: 23(ptr) AccessChain 9(color) 36 - Store 77 76 - Branch 66 - 66: Label - Branch 13 - 14: Label - Branch 78 - 78: Label - 82: 23(ptr) AccessChain 9(color) 81 - 83: 6(float) Load 82 - 85: 6(float) Load 84(d13) - 86: 17(bool) FOrdLessThan 83 85 - LoopMerge 79 78 None - BranchConditional 86 80 79 - 80: Label - 87: 23(ptr) AccessChain 9(color) 22 - 88: 6(float) Load 87 - 89: 6(float) Load 84(d13) - 90: 17(bool) FOrdLessThan 88 89 - SelectionMerge 92 None - BranchConditional 90 91 96 - 91: Label - 93: 7(fvec4) Load 9(color) - 94: 7(fvec4) CompositeConstruct 56 56 56 56 - 95: 7(fvec4) FAdd 93 94 - Store 9(color) 95 - Branch 92 - 96: Label - 97: 7(fvec4) Load 9(color) - 98: 7(fvec4) CompositeConstruct 56 56 56 56 - 99: 7(fvec4) FSub 97 98 - Store 9(color) 99 - Branch 92 - 92: Label - 100: 7(fvec4) Load 32(bigColor4) - 101: 7(fvec4) Load 9(color) - 102: 7(fvec4) FAdd 101 100 - Store 9(color) 102 - 103: 23(ptr) AccessChain 9(color) 36 - 104: 6(float) Load 103 - 105: 6(float) Load 27(d4) - 106: 17(bool) FOrdLessThan 104 105 - SelectionMerge 108 None - BranchConditional 106 107 108 - 107: Label - 109: 23(ptr) AccessChain 9(color) 22 - 110: 6(float) Load 109 - 111: 6(float) FAdd 110 43 - 112: 23(ptr) AccessChain 9(color) 22 - Store 112 111 - 113: 23(ptr) AccessChain 9(color) 22 - 114: 6(float) Load 113 - 115: 6(float) Load 27(d4) - 116: 17(bool) FOrdLessThan 114 115 - SelectionMerge 118 None - BranchConditional 116 117 118 - 117: Label - 119: 23(ptr) AccessChain 9(color) 36 - 120: 6(float) Load 119 - 121: 6(float) FAdd 120 56 - Store 119 121 - Branch 78 - 118: Label - Branch 108 - 108: Label - 123: 23(ptr) AccessChain 9(color) 60 - 124: 6(float) Load 123 - 125: 6(float) Load 27(d4) - 126: 17(bool) FOrdLessThan 124 125 - SelectionMerge 128 None - BranchConditional 126 127 134 - 127: Label - 129: 6(float) Load 27(d4) - 130: 23(ptr) AccessChain 9(color) 60 - 131: 6(float) Load 130 - 132: 6(float) FAdd 131 129 - 133: 23(ptr) AccessChain 9(color) 60 - Store 133 132 - Branch 128 - 134: Label - 135: 6(float) Load 27(d4) - 136: 23(ptr) AccessChain 9(color) 36 - 137: 6(float) Load 136 - 138: 6(float) FAdd 137 135 - 139: 23(ptr) AccessChain 9(color) 36 - Store 139 138 - Branch 128 - 128: Label - Branch 78 - 79: Label - 140: 7(fvec4) Load 9(color) - 141: 7(fvec4) CompositeConstruct 56 56 56 56 - 142: 7(fvec4) FAdd 140 141 - Store 9(color) 142 - 145: 7(fvec4) Load 9(color) - Store 144(gl_FragColor) 145 - Return - FunctionEnd +spv.loopsArtificial.frag +WARNING: 0:14: varying deprecated in version 130; may be removed in future release + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 186 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 + ExecutionMode 4 OriginLowerLeft + Source GLSL 130 + Name 4 "main" + Name 9 "color" + Name 11 "BaseColor" + Name 17 "bigColor4" + Name 27 "d4" + Name 79 "d13" + Name 139 "gl_FragColor" + Name 141 "bigColor" + Name 142 "bigColor1_1" + Name 143 "bigColor1_2" + Name 144 "bigColor1_3" + Name 145 "bigColor2" + Name 146 "bigColor3" + Name 147 "bigColor5" + Name 148 "bigColor6" + Name 149 "bigColor7" + Name 150 "bigColor8" + Name 151 "d" + Name 152 "d2" + Name 153 "d3" + Name 154 "d5" + Name 155 "d6" + Name 156 "d7" + Name 157 "d8" + Name 158 "d9" + Name 159 "d10" + Name 160 "d11" + Name 161 "d12" + Name 162 "d14" + Name 163 "d15" + Name 164 "d16" + Name 165 "d17" + Name 166 "d18" + Name 167 "d19" + Name 168 "d20" + Name 169 "d21" + Name 170 "d22" + Name 171 "d23" + Name 172 "d24" + Name 173 "d25" + Name 174 "d26" + Name 175 "d27" + Name 176 "d28" + Name 177 "d29" + Name 178 "d30" + Name 179 "d31" + Name 180 "d32" + Name 181 "d33" + Name 182 "d34" + Name 185 "Count" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 16: TypePointer UniformConstant 7(fvec4) + 17(bigColor4): 16(ptr) Variable UniformConstant + 21: TypeInt 32 0 + 22: 21(int) Constant 0 + 23: TypePointer Function 6(float) + 26: TypePointer UniformConstant 6(float) + 27(d4): 26(ptr) Variable UniformConstant + 29: TypeBool + 33: 6(float) Constant 1073741824 + 34: 21(int) Constant 2 + 47: 6(float) Constant 1065353216 + 50: 21(int) Constant 1 + 76: 21(int) Constant 3 + 79(d13): 26(ptr) Variable UniformConstant + 138: TypePointer Output 7(fvec4) +139(gl_FragColor): 138(ptr) Variable Output + 141(bigColor): 16(ptr) Variable UniformConstant +142(bigColor1_1): 16(ptr) Variable UniformConstant +143(bigColor1_2): 16(ptr) Variable UniformConstant +144(bigColor1_3): 16(ptr) Variable UniformConstant + 145(bigColor2): 16(ptr) Variable UniformConstant + 146(bigColor3): 16(ptr) Variable UniformConstant + 147(bigColor5): 16(ptr) Variable UniformConstant + 148(bigColor6): 16(ptr) Variable UniformConstant + 149(bigColor7): 16(ptr) Variable UniformConstant + 150(bigColor8): 16(ptr) Variable UniformConstant + 151(d): 26(ptr) Variable UniformConstant + 152(d2): 26(ptr) Variable UniformConstant + 153(d3): 26(ptr) Variable UniformConstant + 154(d5): 26(ptr) Variable UniformConstant + 155(d6): 26(ptr) Variable UniformConstant + 156(d7): 26(ptr) Variable UniformConstant + 157(d8): 26(ptr) Variable UniformConstant + 158(d9): 26(ptr) Variable UniformConstant + 159(d10): 26(ptr) Variable UniformConstant + 160(d11): 26(ptr) Variable UniformConstant + 161(d12): 26(ptr) Variable UniformConstant + 162(d14): 26(ptr) Variable UniformConstant + 163(d15): 26(ptr) Variable UniformConstant + 164(d16): 26(ptr) Variable UniformConstant + 165(d17): 26(ptr) Variable UniformConstant + 166(d18): 26(ptr) Variable UniformConstant + 167(d19): 26(ptr) Variable UniformConstant + 168(d20): 26(ptr) Variable UniformConstant + 169(d21): 26(ptr) Variable UniformConstant + 170(d22): 26(ptr) Variable UniformConstant + 171(d23): 26(ptr) Variable UniformConstant + 172(d24): 26(ptr) Variable UniformConstant + 173(d25): 26(ptr) Variable UniformConstant + 174(d26): 26(ptr) Variable UniformConstant + 175(d27): 26(ptr) Variable UniformConstant + 176(d28): 26(ptr) Variable UniformConstant + 177(d29): 26(ptr) Variable UniformConstant + 178(d30): 26(ptr) Variable UniformConstant + 179(d31): 26(ptr) Variable UniformConstant + 180(d32): 26(ptr) Variable UniformConstant + 181(d33): 26(ptr) Variable UniformConstant + 182(d34): 26(ptr) Variable UniformConstant + 183: TypeInt 32 1 + 184: TypePointer UniformConstant 183(int) + 185(Count): 184(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 9(color): 8(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Branch 13 + 13: Label + 18: 7(fvec4) Load 17(bigColor4) + 19: 7(fvec4) Load 9(color) + 20: 7(fvec4) FAdd 19 18 + Store 9(color) 20 + 24: 23(ptr) AccessChain 9(color) 22 + 25: 6(float) Load 24 + 28: 6(float) Load 27(d4) + 30: 29(bool) FOrdLessThan 25 28 + SelectionMerge 32 None + BranchConditional 30 31 32 + 14: Label + Branch 75 + 15: Label + 68: 23(ptr) AccessChain 9(color) 34 + 69: 6(float) Load 68 + 70: 6(float) Load 27(d4) + 71: 29(bool) FOrdLessThan 69 70 + LoopMerge 14 15 None + BranchConditional 71 13 14 + 31: Label + 35: 23(ptr) AccessChain 9(color) 34 + 36: 6(float) Load 35 + 37: 6(float) FAdd 36 33 + 38: 23(ptr) AccessChain 9(color) 34 + Store 38 37 + 39: 23(ptr) AccessChain 9(color) 34 + 40: 6(float) Load 39 + 41: 6(float) Load 27(d4) + 42: 29(bool) FOrdLessThan 40 41 + SelectionMerge 44 None + BranchConditional 42 43 44 + 43: Label + 45: 23(ptr) AccessChain 9(color) 22 + 46: 6(float) Load 45 + 48: 6(float) FAdd 46 47 + Store 45 48 + Branch 15 + 44: Label + Branch 32 + 32: Label + 51: 23(ptr) AccessChain 9(color) 50 + 52: 6(float) Load 51 + 53: 6(float) Load 27(d4) + 54: 29(bool) FOrdLessThan 52 53 + SelectionMerge 56 None + BranchConditional 54 55 62 + 55: Label + 57: 6(float) Load 27(d4) + 58: 23(ptr) AccessChain 9(color) 50 + 59: 6(float) Load 58 + 60: 6(float) FAdd 59 57 + 61: 23(ptr) AccessChain 9(color) 50 + Store 61 60 + Branch 56 + 62: Label + 63: 6(float) Load 27(d4) + 64: 23(ptr) AccessChain 9(color) 22 + 65: 6(float) Load 64 + 66: 6(float) FAdd 65 63 + 67: 23(ptr) AccessChain 9(color) 22 + Store 67 66 + Branch 56 + 56: Label + Branch 15 + 72: Label + 82: 23(ptr) AccessChain 9(color) 34 + 83: 6(float) Load 82 + 84: 6(float) Load 79(d13) + 85: 29(bool) FOrdLessThan 83 84 + SelectionMerge 87 None + BranchConditional 85 86 91 + 73: Label + 135: 7(fvec4) Load 9(color) + 136: 7(fvec4) CompositeConstruct 47 47 47 47 + 137: 7(fvec4) FAdd 135 136 + Store 9(color) 137 + 140: 7(fvec4) Load 9(color) + Store 139(gl_FragColor) 140 + Return + 74: Label + Branch 75 + 75: Label + 77: 23(ptr) AccessChain 9(color) 76 + 78: 6(float) Load 77 + 80: 6(float) Load 79(d13) + 81: 29(bool) FOrdLessThan 78 80 + LoopMerge 73 74 None + BranchConditional 81 72 73 + 86: Label + 88: 7(fvec4) Load 9(color) + 89: 7(fvec4) CompositeConstruct 47 47 47 47 + 90: 7(fvec4) FAdd 88 89 + Store 9(color) 90 + Branch 87 + 91: Label + 92: 7(fvec4) Load 9(color) + 93: 7(fvec4) CompositeConstruct 47 47 47 47 + 94: 7(fvec4) FSub 92 93 + Store 9(color) 94 + Branch 87 + 87: Label + 95: 7(fvec4) Load 17(bigColor4) + 96: 7(fvec4) Load 9(color) + 97: 7(fvec4) FAdd 96 95 + Store 9(color) 97 + 98: 23(ptr) AccessChain 9(color) 22 + 99: 6(float) Load 98 + 100: 6(float) Load 27(d4) + 101: 29(bool) FOrdLessThan 99 100 + SelectionMerge 103 None + BranchConditional 101 102 103 + 102: Label + 104: 23(ptr) AccessChain 9(color) 34 + 105: 6(float) Load 104 + 106: 6(float) FAdd 105 33 + 107: 23(ptr) AccessChain 9(color) 34 + Store 107 106 + 108: 23(ptr) AccessChain 9(color) 34 + 109: 6(float) Load 108 + 110: 6(float) Load 27(d4) + 111: 29(bool) FOrdLessThan 109 110 + SelectionMerge 113 None + BranchConditional 111 112 113 + 112: Label + 114: 23(ptr) AccessChain 9(color) 22 + 115: 6(float) Load 114 + 116: 6(float) FAdd 115 47 + Store 114 116 + Branch 74 + 113: Label + Branch 103 + 103: Label + 118: 23(ptr) AccessChain 9(color) 50 + 119: 6(float) Load 118 + 120: 6(float) Load 27(d4) + 121: 29(bool) FOrdLessThan 119 120 + SelectionMerge 123 None + BranchConditional 121 122 129 + 122: Label + 124: 6(float) Load 27(d4) + 125: 23(ptr) AccessChain 9(color) 50 + 126: 6(float) Load 125 + 127: 6(float) FAdd 126 124 + 128: 23(ptr) AccessChain 9(color) 50 + Store 128 127 + Branch 123 + 129: Label + 130: 6(float) Load 27(d4) + 131: 23(ptr) AccessChain 9(color) 22 + 132: 6(float) Load 131 + 133: 6(float) FAdd 132 130 + 134: 23(ptr) AccessChain 9(color) 22 + Store 134 133 + Branch 123 + 123: Label + Branch 74 + FunctionEnd diff --git a/Test/baseResults/spv.switch.frag.out b/Test/baseResults/spv.switch.frag.out index 97cbcf91..bc91acc5 100755 --- a/Test/baseResults/spv.switch.frag.out +++ b/Test/baseResults/spv.switch.frag.out @@ -1,400 +1,404 @@ -spv.switch.frag -Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. -WARNING: 0:121: 'switch' : last case/default label not followed by statements -WARNING: 0:134: 'switch' : last case/default label not followed by statements -WARNING: 0:139: 'switch' : last case/default label not followed by statements - - -Linked fragment stage: - - -// Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 263 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 73 221 - ExecutionMode 4 OriginLowerLeft - Source ESSL 310 - Name 4 "main" - Name 15 "foo1(vf4;vf4;i1;" - Name 12 "v1" - Name 13 "v2" - Name 14 "i1" - Name 20 "foo2(vf4;vf4;i1;" - Name 17 "v1" - Name 18 "v2" - Name 19 "i1" - Name 58 "local" - Name 60 "c" - Name 71 "f" - Name 73 "x" - Name 127 "d" - Name 153 "i" - Name 171 "j" - Name 221 "color" - Name 227 "v" - Name 228 "param" - Name 230 "param" - Name 232 "param" - Name 240 "param" - Name 242 "param" - Name 244 "param" - Decorate 58(local) RelaxedPrecision - Decorate 60(c) RelaxedPrecision - Decorate 71(f) RelaxedPrecision - Decorate 73(x) RelaxedPrecision - Decorate 127(d) RelaxedPrecision - Decorate 153(i) RelaxedPrecision - Decorate 171(j) RelaxedPrecision - Decorate 221(color) RelaxedPrecision - Decorate 227(v) RelaxedPrecision - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 9: TypeInt 32 1 - 10: TypePointer Function 9(int) - 11: TypeFunction 7(fvec4) 8(ptr) 8(ptr) 10(ptr) - 36: 6(float) Constant 0 - 37: 7(fvec4) ConstantComposite 36 36 36 36 - 47: 6(float) Constant 1065353216 - 48: 7(fvec4) ConstantComposite 47 47 47 47 - 59: TypePointer UniformConstant 9(int) - 60(c): 59(ptr) Variable UniformConstant - 63: 9(int) Constant 1 - 70: TypePointer Function 6(float) - 72: TypePointer Input 6(float) - 73(x): 72(ptr) Variable Input - 127(d): 59(ptr) Variable UniformConstant - 154: 9(int) Constant 0 - 159: 9(int) Constant 10 - 160: TypeBool - 172: 9(int) Constant 20 - 177: 9(int) Constant 30 - 182: 6(float) Constant 1120429670 - 202: 6(float) Constant 1079739679 - 220: TypePointer Output 6(float) - 221(color): 220(ptr) Variable Output - 226: TypePointer UniformConstant 7(fvec4) - 227(v): 226(ptr) Variable UniformConstant - 235: TypeInt 32 0 - 236: 235(int) Constant 1 - 247: 235(int) Constant 2 - 4(main): 2 Function None 3 - 5: Label - 58(local): 10(ptr) Variable Function - 71(f): 70(ptr) Variable Function - 153(i): 10(ptr) Variable Function - 171(j): 10(ptr) Variable Function - 228(param): 8(ptr) Variable Function - 230(param): 8(ptr) Variable Function - 232(param): 10(ptr) Variable Function - 240(param): 8(ptr) Variable Function - 242(param): 8(ptr) Variable Function - 244(param): 10(ptr) Variable Function - 61: 9(int) Load 60(c) - Store 58(local) 61 - 62: 9(int) Load 58(local) - 64: 9(int) IAdd 62 63 - Store 58(local) 64 - 65: 9(int) Load 60(c) - SelectionMerge 69 None - Switch 65 68 - case 1: 66 - case 2: 67 - 66: Label - 74: 6(float) Load 73(x) - 75: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74 - Store 71(f) 75 - Branch 69 - 67: Label - 77: 6(float) Load 73(x) - 78: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 77 - Store 71(f) 78 - Branch 69 - 68: Label - 80: 6(float) Load 73(x) - 81: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 80 - Store 71(f) 81 - Branch 69 - 69: Label - 83: 9(int) Load 60(c) - SelectionMerge 87 None - Switch 83 86 - case 1: 84 - case 2: 85 - 84: Label - 88: 6(float) Load 73(x) - 89: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 88 - 90: 6(float) Load 71(f) - 91: 6(float) FAdd 90 89 - Store 71(f) 91 - Branch 85 - 85: Label - 92: 6(float) Load 73(x) - 93: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 92 - 94: 6(float) Load 71(f) - 95: 6(float) FAdd 94 93 - Store 71(f) 95 - Branch 87 - 86: Label - 97: 6(float) Load 73(x) - 98: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 97 - 99: 6(float) Load 71(f) - 100: 6(float) FAdd 99 98 - Store 71(f) 100 - Branch 87 - 87: Label - 102: 9(int) Load 60(c) - SelectionMerge 105 None - Switch 102 105 - case 1: 103 - case 2: 104 - 103: Label - 106: 6(float) Load 73(x) - 107: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 106 - 108: 6(float) Load 71(f) - 109: 6(float) FAdd 108 107 - Store 71(f) 109 - Branch 105 - 104: Label - 111: 6(float) Load 73(x) - 112: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 111 - 113: 6(float) Load 71(f) - 114: 6(float) FAdd 113 112 - Store 71(f) 114 - Branch 105 - 105: Label - 117: 9(int) Load 60(c) - SelectionMerge 121 None - Switch 117 120 - case 1: 118 - case 2: 119 - 118: Label - 122: 6(float) Load 73(x) - 123: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 122 - 124: 6(float) Load 71(f) - 125: 6(float) FAdd 124 123 - Store 71(f) 125 - Branch 121 - 119: Label - 128: 9(int) Load 127(d) - SelectionMerge 131 None - Switch 128 131 - case 1: 129 - case 2: 130 - 129: Label - 132: 6(float) Load 73(x) - 133: 6(float) Load 73(x) - 134: 6(float) FMul 132 133 - 135: 6(float) Load 73(x) - 136: 6(float) FMul 134 135 - 137: 6(float) Load 71(f) - 138: 6(float) FAdd 137 136 - Store 71(f) 138 - Branch 131 - 130: Label - 140: 6(float) Load 73(x) - 141: 6(float) Load 73(x) - 142: 6(float) FMul 140 141 - 143: 6(float) Load 71(f) - 144: 6(float) FAdd 143 142 - Store 71(f) 144 - Branch 131 - 131: Label - Branch 121 - 120: Label - 148: 6(float) Load 73(x) - 149: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 148 - 150: 6(float) Load 71(f) - 151: 6(float) FAdd 150 149 - Store 71(f) 151 - Branch 121 - 121: Label - Store 153(i) 154 - Branch 155 - 155: Label - 158: 9(int) Load 153(i) - 161: 160(bool) SLessThan 158 159 - LoopMerge 156 155 None - BranchConditional 161 157 156 - 157: Label - 162: 9(int) Load 60(c) - SelectionMerge 166 None - Switch 162 165 - case 1: 163 - case 2: 164 - 163: Label - 167: 6(float) Load 73(x) - 168: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 167 - 169: 6(float) Load 71(f) - 170: 6(float) FAdd 169 168 - Store 71(f) 170 - Store 171(j) 172 - Branch 173 - 173: Label - 176: 9(int) Load 171(j) - 178: 160(bool) SLessThan 176 177 - LoopMerge 174 173 None - BranchConditional 178 175 174 - 175: Label - 179: 6(float) Load 71(f) - 180: 6(float) FAdd 179 47 - Store 71(f) 180 - 181: 6(float) Load 71(f) - 183: 160(bool) FOrdLessThan 181 182 - SelectionMerge 185 None - BranchConditional 183 184 185 - 184: Label - Branch 174 - 185: Label - 187: 9(int) Load 171(j) - 188: 9(int) IAdd 187 63 - Store 171(j) 188 - Branch 173 - 174: Label - Branch 166 - 164: Label - 190: 6(float) Load 73(x) - 191: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 190 - 192: 6(float) Load 71(f) - 193: 6(float) FAdd 192 191 - Store 71(f) 193 - Branch 166 - 165: Label - 196: 6(float) Load 73(x) - 197: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 196 - 198: 6(float) Load 71(f) - 199: 6(float) FAdd 198 197 - Store 71(f) 199 - Branch 166 - 166: Label - 201: 6(float) Load 71(f) - 203: 160(bool) FOrdLessThan 201 202 - SelectionMerge 205 None - BranchConditional 203 204 205 - 204: Label - Branch 156 - 205: Label - 207: 9(int) Load 153(i) - 208: 9(int) IAdd 207 63 - Store 153(i) 208 - Branch 155 - 156: Label - 209: 9(int) Load 60(c) - SelectionMerge 212 None - Switch 209 212 - case 1: 210 - case 2: 211 - 210: Label - 213: 6(float) Load 73(x) - 214: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 213 - 215: 6(float) Load 71(f) - 216: 6(float) FAdd 215 214 - Store 71(f) 216 - Branch 212 - 211: Label - Branch 212 - 212: Label - 222: 6(float) Load 71(f) - 223: 9(int) Load 58(local) - 224: 6(float) ConvertSToF 223 - 225: 6(float) FAdd 222 224 - Store 221(color) 225 - 229: 7(fvec4) Load 227(v) - Store 228(param) 229 - 231: 7(fvec4) Load 227(v) - Store 230(param) 231 - 233: 9(int) Load 60(c) - Store 232(param) 233 - 234: 7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 228(param) 230(param) 232(param) - 237: 6(float) CompositeExtract 234 1 - 238: 6(float) Load 221(color) - 239: 6(float) FAdd 238 237 - Store 221(color) 239 - 241: 7(fvec4) Load 227(v) - Store 240(param) 241 - 243: 7(fvec4) Load 227(v) - Store 242(param) 243 - 245: 9(int) Load 60(c) - Store 244(param) 245 - 246: 7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 240(param) 242(param) 244(param) - 248: 6(float) CompositeExtract 246 2 - 249: 6(float) Load 221(color) - 250: 6(float) FAdd 249 248 - Store 221(color) 250 - 251: 9(int) Load 60(c) - SelectionMerge 254 None - Switch 251 253 - case 0: 252 - 252: Label - Branch 254 - 253: Label - Branch 254 - 254: Label - 258: 9(int) Load 60(c) - SelectionMerge 260 None - Switch 258 259 - 259: Label - Branch 260 - 260: Label - Return - FunctionEnd -15(foo1(vf4;vf4;i1;): 7(fvec4) Function None 11 - 12(v1): 8(ptr) FunctionParameter - 13(v2): 8(ptr) FunctionParameter - 14(i1): 10(ptr) FunctionParameter - 16: Label - 22: 9(int) Load 14(i1) - SelectionMerge 26 None - Switch 22 26 - case 0: 23 - case 2: 24 - case 1: 24 - case 3: 25 - 23: Label - 27: 7(fvec4) Load 12(v1) - ReturnValue 27 - 24: Label - 29: 7(fvec4) Load 13(v2) - ReturnValue 29 - 25: Label - 31: 7(fvec4) Load 12(v1) - 32: 7(fvec4) Load 13(v2) - 33: 7(fvec4) FMul 31 32 - ReturnValue 33 - 26: Label - ReturnValue 37 - FunctionEnd -20(foo2(vf4;vf4;i1;): 7(fvec4) Function None 11 - 17(v1): 8(ptr) FunctionParameter - 18(v2): 8(ptr) FunctionParameter - 19(i1): 10(ptr) FunctionParameter - 21: Label - 39: 9(int) Load 19(i1) - SelectionMerge 44 None - Switch 39 44 - case 0: 40 - case 2: 41 - case 1: 42 - case 3: 43 - 40: Label - 45: 7(fvec4) Load 17(v1) - ReturnValue 45 - 41: Label - ReturnValue 48 - 42: Label - 50: 7(fvec4) Load 18(v2) - ReturnValue 50 - 43: Label - 52: 7(fvec4) Load 17(v1) - 53: 7(fvec4) Load 18(v2) - 54: 7(fvec4) FMul 52 53 - ReturnValue 54 - 44: Label - ReturnValue 37 - FunctionEnd +spv.switch.frag +Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. +WARNING: 0:121: 'switch' : last case/default label not followed by statements +WARNING: 0:134: 'switch' : last case/default label not followed by statements +WARNING: 0:139: 'switch' : last case/default label not followed by statements + + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 265 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 73 223 + ExecutionMode 4 OriginLowerLeft + Source ESSL 310 + Name 4 "main" + Name 15 "foo1(vf4;vf4;i1;" + Name 12 "v1" + Name 13 "v2" + Name 14 "i1" + Name 20 "foo2(vf4;vf4;i1;" + Name 17 "v1" + Name 18 "v2" + Name 19 "i1" + Name 58 "local" + Name 60 "c" + Name 71 "f" + Name 73 "x" + Name 127 "d" + Name 153 "i" + Name 172 "j" + Name 223 "color" + Name 229 "v" + Name 230 "param" + Name 232 "param" + Name 234 "param" + Name 242 "param" + Name 244 "param" + Name 246 "param" + Decorate 58(local) RelaxedPrecision + Decorate 60(c) RelaxedPrecision + Decorate 71(f) RelaxedPrecision + Decorate 73(x) RelaxedPrecision + Decorate 127(d) RelaxedPrecision + Decorate 153(i) RelaxedPrecision + Decorate 172(j) RelaxedPrecision + Decorate 223(color) RelaxedPrecision + Decorate 229(v) RelaxedPrecision + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeInt 32 1 + 10: TypePointer Function 9(int) + 11: TypeFunction 7(fvec4) 8(ptr) 8(ptr) 10(ptr) + 36: 6(float) Constant 0 + 37: 7(fvec4) ConstantComposite 36 36 36 36 + 47: 6(float) Constant 1065353216 + 48: 7(fvec4) ConstantComposite 47 47 47 47 + 59: TypePointer UniformConstant 9(int) + 60(c): 59(ptr) Variable UniformConstant + 63: 9(int) Constant 1 + 70: TypePointer Function 6(float) + 72: TypePointer Input 6(float) + 73(x): 72(ptr) Variable Input + 127(d): 59(ptr) Variable UniformConstant + 154: 9(int) Constant 0 + 160: 9(int) Constant 10 + 161: TypeBool + 173: 9(int) Constant 20 + 179: 9(int) Constant 30 + 184: 6(float) Constant 1120429670 + 204: 6(float) Constant 1079739679 + 222: TypePointer Output 6(float) + 223(color): 222(ptr) Variable Output + 228: TypePointer UniformConstant 7(fvec4) + 229(v): 228(ptr) Variable UniformConstant + 237: TypeInt 32 0 + 238: 237(int) Constant 1 + 249: 237(int) Constant 2 + 4(main): 2 Function None 3 + 5: Label + 58(local): 10(ptr) Variable Function + 71(f): 70(ptr) Variable Function + 153(i): 10(ptr) Variable Function + 172(j): 10(ptr) Variable Function + 230(param): 8(ptr) Variable Function + 232(param): 8(ptr) Variable Function + 234(param): 10(ptr) Variable Function + 242(param): 8(ptr) Variable Function + 244(param): 8(ptr) Variable Function + 246(param): 10(ptr) Variable Function + 61: 9(int) Load 60(c) + Store 58(local) 61 + 62: 9(int) Load 58(local) + 64: 9(int) IAdd 62 63 + Store 58(local) 64 + 65: 9(int) Load 60(c) + SelectionMerge 69 None + Switch 65 68 + case 1: 66 + case 2: 67 + 66: Label + 74: 6(float) Load 73(x) + 75: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74 + Store 71(f) 75 + Branch 69 + 67: Label + 77: 6(float) Load 73(x) + 78: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 77 + Store 71(f) 78 + Branch 69 + 68: Label + 80: 6(float) Load 73(x) + 81: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 80 + Store 71(f) 81 + Branch 69 + 69: Label + 83: 9(int) Load 60(c) + SelectionMerge 87 None + Switch 83 86 + case 1: 84 + case 2: 85 + 84: Label + 88: 6(float) Load 73(x) + 89: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 88 + 90: 6(float) Load 71(f) + 91: 6(float) FAdd 90 89 + Store 71(f) 91 + Branch 85 + 85: Label + 92: 6(float) Load 73(x) + 93: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 92 + 94: 6(float) Load 71(f) + 95: 6(float) FAdd 94 93 + Store 71(f) 95 + Branch 87 + 86: Label + 97: 6(float) Load 73(x) + 98: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 97 + 99: 6(float) Load 71(f) + 100: 6(float) FAdd 99 98 + Store 71(f) 100 + Branch 87 + 87: Label + 102: 9(int) Load 60(c) + SelectionMerge 105 None + Switch 102 105 + case 1: 103 + case 2: 104 + 103: Label + 106: 6(float) Load 73(x) + 107: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 106 + 108: 6(float) Load 71(f) + 109: 6(float) FAdd 108 107 + Store 71(f) 109 + Branch 105 + 104: Label + 111: 6(float) Load 73(x) + 112: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 111 + 113: 6(float) Load 71(f) + 114: 6(float) FAdd 113 112 + Store 71(f) 114 + Branch 105 + 105: Label + 117: 9(int) Load 60(c) + SelectionMerge 121 None + Switch 117 120 + case 1: 118 + case 2: 119 + 118: Label + 122: 6(float) Load 73(x) + 123: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 122 + 124: 6(float) Load 71(f) + 125: 6(float) FAdd 124 123 + Store 71(f) 125 + Branch 121 + 119: Label + 128: 9(int) Load 127(d) + SelectionMerge 131 None + Switch 128 131 + case 1: 129 + case 2: 130 + 129: Label + 132: 6(float) Load 73(x) + 133: 6(float) Load 73(x) + 134: 6(float) FMul 132 133 + 135: 6(float) Load 73(x) + 136: 6(float) FMul 134 135 + 137: 6(float) Load 71(f) + 138: 6(float) FAdd 137 136 + Store 71(f) 138 + Branch 131 + 130: Label + 140: 6(float) Load 73(x) + 141: 6(float) Load 73(x) + 142: 6(float) FMul 140 141 + 143: 6(float) Load 71(f) + 144: 6(float) FAdd 143 142 + Store 71(f) 144 + Branch 131 + 131: Label + Branch 121 + 120: Label + 148: 6(float) Load 73(x) + 149: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 148 + 150: 6(float) Load 71(f) + 151: 6(float) FAdd 150 149 + Store 71(f) 151 + Branch 121 + 121: Label + Store 153(i) 154 + Branch 158 + 155: Label + 163: 9(int) Load 60(c) + SelectionMerge 167 None + Switch 163 166 + case 1: 164 + case 2: 165 + 156: Label + 211: 9(int) Load 60(c) + SelectionMerge 214 None + Switch 211 214 + case 1: 212 + case 2: 213 + 157: Label + 209: 9(int) Load 153(i) + 210: 9(int) IAdd 209 63 + Store 153(i) 210 + Branch 158 + 158: Label + 159: 9(int) Load 153(i) + 162: 161(bool) SLessThan 159 160 + LoopMerge 156 157 None + BranchConditional 162 155 156 + 164: Label + 168: 6(float) Load 73(x) + 169: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 168 + 170: 6(float) Load 71(f) + 171: 6(float) FAdd 170 169 + Store 71(f) 171 + Store 172(j) 173 + Branch 177 + 174: Label + 181: 6(float) Load 71(f) + 182: 6(float) FAdd 181 47 + Store 71(f) 182 + 183: 6(float) Load 71(f) + 185: 161(bool) FOrdLessThan 183 184 + SelectionMerge 187 None + BranchConditional 185 186 187 + 175: Label + Branch 167 + 176: Label + 189: 9(int) Load 172(j) + 190: 9(int) IAdd 189 63 + Store 172(j) 190 + Branch 177 + 177: Label + 178: 9(int) Load 172(j) + 180: 161(bool) SLessThan 178 179 + LoopMerge 175 176 None + BranchConditional 180 174 175 + 186: Label + Branch 175 + 187: Label + Branch 176 + 165: Label + 192: 6(float) Load 73(x) + 193: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 192 + 194: 6(float) Load 71(f) + 195: 6(float) FAdd 194 193 + Store 71(f) 195 + Branch 167 + 166: Label + 198: 6(float) Load 73(x) + 199: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 198 + 200: 6(float) Load 71(f) + 201: 6(float) FAdd 200 199 + Store 71(f) 201 + Branch 167 + 167: Label + 203: 6(float) Load 71(f) + 205: 161(bool) FOrdLessThan 203 204 + SelectionMerge 207 None + BranchConditional 205 206 207 + 206: Label + Branch 156 + 207: Label + Branch 157 + 212: Label + 215: 6(float) Load 73(x) + 216: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 215 + 217: 6(float) Load 71(f) + 218: 6(float) FAdd 217 216 + Store 71(f) 218 + Branch 214 + 213: Label + Branch 214 + 214: Label + 224: 6(float) Load 71(f) + 225: 9(int) Load 58(local) + 226: 6(float) ConvertSToF 225 + 227: 6(float) FAdd 224 226 + Store 223(color) 227 + 231: 7(fvec4) Load 229(v) + Store 230(param) 231 + 233: 7(fvec4) Load 229(v) + Store 232(param) 233 + 235: 9(int) Load 60(c) + Store 234(param) 235 + 236: 7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 230(param) 232(param) 234(param) + 239: 6(float) CompositeExtract 236 1 + 240: 6(float) Load 223(color) + 241: 6(float) FAdd 240 239 + Store 223(color) 241 + 243: 7(fvec4) Load 229(v) + Store 242(param) 243 + 245: 7(fvec4) Load 229(v) + Store 244(param) 245 + 247: 9(int) Load 60(c) + Store 246(param) 247 + 248: 7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 242(param) 244(param) 246(param) + 250: 6(float) CompositeExtract 248 2 + 251: 6(float) Load 223(color) + 252: 6(float) FAdd 251 250 + Store 223(color) 252 + 253: 9(int) Load 60(c) + SelectionMerge 256 None + Switch 253 255 + case 0: 254 + 254: Label + Branch 256 + 255: Label + Branch 256 + 256: Label + 260: 9(int) Load 60(c) + SelectionMerge 262 None + Switch 260 261 + 261: Label + Branch 262 + 262: Label + Return + FunctionEnd +15(foo1(vf4;vf4;i1;): 7(fvec4) Function None 11 + 12(v1): 8(ptr) FunctionParameter + 13(v2): 8(ptr) FunctionParameter + 14(i1): 10(ptr) FunctionParameter + 16: Label + 22: 9(int) Load 14(i1) + SelectionMerge 26 None + Switch 22 26 + case 0: 23 + case 2: 24 + case 1: 24 + case 3: 25 + 23: Label + 27: 7(fvec4) Load 12(v1) + ReturnValue 27 + 24: Label + 29: 7(fvec4) Load 13(v2) + ReturnValue 29 + 25: Label + 31: 7(fvec4) Load 12(v1) + 32: 7(fvec4) Load 13(v2) + 33: 7(fvec4) FMul 31 32 + ReturnValue 33 + 26: Label + ReturnValue 37 + FunctionEnd +20(foo2(vf4;vf4;i1;): 7(fvec4) Function None 11 + 17(v1): 8(ptr) FunctionParameter + 18(v2): 8(ptr) FunctionParameter + 19(i1): 10(ptr) FunctionParameter + 21: Label + 39: 9(int) Load 19(i1) + SelectionMerge 44 None + Switch 39 44 + case 0: 40 + case 2: 41 + case 1: 42 + case 3: 43 + 40: Label + 45: 7(fvec4) Load 17(v1) + ReturnValue 45 + 41: Label + ReturnValue 48 + 42: Label + 50: 7(fvec4) Load 18(v2) + ReturnValue 50 + 43: Label + 52: 7(fvec4) Load 17(v1) + 53: 7(fvec4) Load 18(v2) + 54: 7(fvec4) FMul 52 53 + ReturnValue 54 + 44: Label + ReturnValue 37 + FunctionEnd diff --git a/Test/baseResults/spv.while-continue-break.vert.out b/Test/baseResults/spv.while-continue-break.vert.out index 5305b987..0938db43 100755 --- a/Test/baseResults/spv.while-continue-break.vert.out +++ b/Test/baseResults/spv.while-continue-break.vert.out @@ -1,86 +1,88 @@ -spv.while-continue-break.vert - -Linked vertex stage: - - -// Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 42 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 40 41 - Source ESSL 300 - Name 4 "main" - Name 8 "i" - Name 17 "A" - Name 25 "B" - Name 27 "C" - Name 37 "D" - Name 40 "gl_VertexID" - Name 41 "gl_InstanceID" - Decorate 40(gl_VertexID) BuiltIn VertexId - Decorate 41(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 14: 6(int) Constant 10 - 15: TypeBool - 18: 6(int) Constant 1 - 20: 6(int) Constant 2 - 29: 6(int) Constant 5 - 38: 6(int) Constant 3 - 39: TypePointer Input 6(int) - 40(gl_VertexID): 39(ptr) Variable Input -41(gl_InstanceID): 39(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - 17(A): 7(ptr) Variable Function - 25(B): 7(ptr) Variable Function - 27(C): 7(ptr) Variable Function - 37(D): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - 13: 6(int) Load 8(i) - 16: 15(bool) SLessThan 13 14 - LoopMerge 11 10 None - BranchConditional 16 12 11 - 12: Label - Store 17(A) 18 - 19: 6(int) Load 8(i) - 21: 6(int) SMod 19 20 - 22: 15(bool) IEqual 21 9 - SelectionMerge 24 None - BranchConditional 22 23 24 - 23: Label - Store 25(B) 20 - Branch 10 - 26: Label - Store 27(C) 20 - Branch 24 - 24: Label - 28: 6(int) Load 8(i) - 30: 6(int) SMod 28 29 - 31: 15(bool) IEqual 30 9 - SelectionMerge 33 None - BranchConditional 31 32 33 - 32: Label - Store 25(B) 20 - Branch 11 - 34: Label - Store 27(C) 20 - Branch 33 - 33: Label - 35: 6(int) Load 8(i) - 36: 6(int) IAdd 35 18 - Store 8(i) 36 - Branch 10 - 11: Label - Store 37(D) 38 - Return - FunctionEnd +spv.while-continue-break.vert + +Linked vertex stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 43 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 41 42 + Source ESSL 300 + Name 4 "main" + Name 8 "i" + Name 18 "A" + Name 26 "B" + Name 28 "C" + Name 38 "D" + Name 41 "gl_VertexID" + Name 42 "gl_InstanceID" + Decorate 41(gl_VertexID) BuiltIn VertexId + Decorate 42(gl_InstanceID) BuiltIn InstanceId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 15: 6(int) Constant 10 + 16: TypeBool + 19: 6(int) Constant 1 + 21: 6(int) Constant 2 + 30: 6(int) Constant 5 + 39: 6(int) Constant 3 + 40: TypePointer Input 6(int) + 41(gl_VertexID): 40(ptr) Variable Input +42(gl_InstanceID): 40(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + 18(A): 7(ptr) Variable Function + 26(B): 7(ptr) Variable Function + 28(C): 7(ptr) Variable Function + 38(D): 7(ptr) Variable Function + Store 8(i) 9 + Branch 13 + 10: Label + Store 18(A) 19 + 20: 6(int) Load 8(i) + 22: 6(int) SMod 20 21 + 23: 16(bool) IEqual 22 9 + SelectionMerge 25 None + BranchConditional 23 24 25 + 11: Label + Store 38(D) 39 + Return + 12: Label + Branch 13 + 13: Label + 14: 6(int) Load 8(i) + 17: 16(bool) SLessThan 14 15 + LoopMerge 11 12 None + BranchConditional 17 10 11 + 24: Label + Store 26(B) 21 + Branch 12 + 27: Label + Store 28(C) 21 + Branch 25 + 25: Label + 29: 6(int) Load 8(i) + 31: 6(int) SMod 29 30 + 32: 16(bool) IEqual 31 9 + SelectionMerge 34 None + BranchConditional 32 33 34 + 33: Label + Store 26(B) 21 + Branch 11 + 35: Label + Store 28(C) 21 + Branch 34 + 34: Label + 36: 6(int) Load 8(i) + 37: 6(int) IAdd 36 19 + Store 8(i) 37 + Branch 12 + FunctionEnd diff --git a/Test/baseResults/spv.while-simple.vert.out b/Test/baseResults/spv.while-simple.vert.out index 14d46dd3..3684101c 100755 --- a/Test/baseResults/spv.while-simple.vert.out +++ b/Test/baseResults/spv.while-simple.vert.out @@ -1,49 +1,51 @@ -spv.while-simple.vert - -Linked vertex stage: - - -// Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 23 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 21 22 - Source ESSL 300 - Name 4 "main" - Name 8 "i" - Name 21 "gl_VertexID" - Name 22 "gl_InstanceID" - Decorate 21(gl_VertexID) BuiltIn VertexId - Decorate 22(gl_InstanceID) BuiltIn InstanceId - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeInt 32 1 - 7: TypePointer Function 6(int) - 9: 6(int) Constant 0 - 14: 6(int) Constant 10 - 15: TypeBool - 18: 6(int) Constant 1 - 20: TypePointer Input 6(int) - 21(gl_VertexID): 20(ptr) Variable Input -22(gl_InstanceID): 20(ptr) Variable Input - 4(main): 2 Function None 3 - 5: Label - 8(i): 7(ptr) Variable Function - Store 8(i) 9 - Branch 10 - 10: Label - 13: 6(int) Load 8(i) - 16: 15(bool) SLessThan 13 14 - LoopMerge 11 10 None - BranchConditional 16 12 11 - 12: Label - 17: 6(int) Load 8(i) - 19: 6(int) IAdd 17 18 - Store 8(i) 19 - Branch 10 - 11: Label - Return - FunctionEnd +spv.while-simple.vert + +Linked vertex stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 24 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 22 23 + Source ESSL 300 + Name 4 "main" + Name 8 "i" + Name 22 "gl_VertexID" + Name 23 "gl_InstanceID" + Decorate 22(gl_VertexID) BuiltIn VertexId + Decorate 23(gl_InstanceID) BuiltIn InstanceId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 15: 6(int) Constant 10 + 16: TypeBool + 19: 6(int) Constant 1 + 21: TypePointer Input 6(int) + 22(gl_VertexID): 21(ptr) Variable Input +23(gl_InstanceID): 21(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 8(i): 7(ptr) Variable Function + Store 8(i) 9 + Branch 13 + 10: Label + 18: 6(int) Load 8(i) + 20: 6(int) IAdd 18 19 + Store 8(i) 20 + Branch 12 + 11: Label + Return + 12: Label + Branch 13 + 13: Label + 14: 6(int) Load 8(i) + 17: 16(bool) SLessThan 14 15 + LoopMerge 11 12 None + BranchConditional 17 10 11 + FunctionEnd diff --git a/Test/baseResults/spv.whileLoop.frag.out b/Test/baseResults/spv.whileLoop.frag.out index 591129cd..62279827 100755 --- a/Test/baseResults/spv.whileLoop.frag.out +++ b/Test/baseResults/spv.whileLoop.frag.out @@ -1,62 +1,64 @@ -spv.whileLoop.frag - -Linked fragment stage: - - -// Module Version 10000 -// Generated by (magic number): 80001 -// Id's are bound by 34 - - Capability Shader - 1: ExtInstImport "GLSL.std.450" - MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 11 - ExecutionMode 4 OriginLowerLeft - Source GLSL 110 - Name 4 "main" - Name 9 "color" - Name 11 "BaseColor" - Name 22 "d" - Name 27 "bigColor" - Name 32 "gl_FragColor" - 2: TypeVoid - 3: TypeFunction 2 - 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Function 7(fvec4) - 10: TypePointer Input 7(fvec4) - 11(BaseColor): 10(ptr) Variable Input - 16: TypeInt 32 0 - 17: 16(int) Constant 0 - 18: TypePointer Function 6(float) - 21: TypePointer UniformConstant 6(float) - 22(d): 21(ptr) Variable UniformConstant - 24: TypeBool - 26: TypePointer UniformConstant 7(fvec4) - 27(bigColor): 26(ptr) Variable UniformConstant - 31: TypePointer Output 7(fvec4) -32(gl_FragColor): 31(ptr) Variable Output - 4(main): 2 Function None 3 - 5: Label - 9(color): 8(ptr) Variable Function - 12: 7(fvec4) Load 11(BaseColor) - Store 9(color) 12 - Branch 13 - 13: Label - 19: 18(ptr) AccessChain 9(color) 17 - 20: 6(float) Load 19 - 23: 6(float) Load 22(d) - 25: 24(bool) FOrdLessThan 20 23 - LoopMerge 14 13 None - BranchConditional 25 15 14 - 15: Label - 28: 7(fvec4) Load 27(bigColor) - 29: 7(fvec4) Load 9(color) - 30: 7(fvec4) FAdd 29 28 - Store 9(color) 30 - Branch 13 - 14: Label - 33: 7(fvec4) Load 9(color) - Store 32(gl_FragColor) 33 - Return - FunctionEnd +spv.whileLoop.frag + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 35 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 11 + ExecutionMode 4 OriginLowerLeft + Source GLSL 110 + Name 4 "main" + Name 9 "color" + Name 11 "BaseColor" + Name 23 "d" + Name 28 "bigColor" + Name 33 "gl_FragColor" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 10: TypePointer Input 7(fvec4) + 11(BaseColor): 10(ptr) Variable Input + 17: TypeInt 32 0 + 18: 17(int) Constant 0 + 19: TypePointer Function 6(float) + 22: TypePointer UniformConstant 6(float) + 23(d): 22(ptr) Variable UniformConstant + 25: TypeBool + 27: TypePointer UniformConstant 7(fvec4) + 28(bigColor): 27(ptr) Variable UniformConstant + 32: TypePointer Output 7(fvec4) +33(gl_FragColor): 32(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 9(color): 8(ptr) Variable Function + 12: 7(fvec4) Load 11(BaseColor) + Store 9(color) 12 + Branch 16 + 13: Label + 29: 7(fvec4) Load 28(bigColor) + 30: 7(fvec4) Load 9(color) + 31: 7(fvec4) FAdd 30 29 + Store 9(color) 31 + Branch 15 + 14: Label + 34: 7(fvec4) Load 9(color) + Store 33(gl_FragColor) 34 + Return + 15: Label + Branch 16 + 16: Label + 20: 19(ptr) AccessChain 9(color) 18 + 21: 6(float) Load 20 + 24: 6(float) Load 23(d) + 26: 25(bool) FOrdLessThan 21 24 + LoopMerge 14 15 None + BranchConditional 26 13 14 + FunctionEnd diff --git a/Test/test-spirv-list b/Test/test-spirv-list index 1efcfcb3..504ee6d3 100644 --- a/Test/test-spirv-list +++ b/Test/test-spirv-list @@ -5,6 +5,8 @@ spv.do-simple.vert spv.do-while-continue-break.vert spv.for-continue-break.vert spv.for-simple.vert +spv.for-notest.vert +spv.for-nobody.vert spv.while-continue-break.vert spv.while-simple.vert # vulkan-specific tests