builder.createBranch(&blocks.head);
} else {
// Spec requires back edges to target header blocks, and every header
- // block must dominate its merge block. Create an empty header block
- // here to ensure these conditions are met even when body contains
- // non-trivial control flow.
+ // block must dominate its merge block. Make a header block first to
+ // ensure these conditions are met. By definition, it will contain
+ // OpLoopMerge, followed by a block-ending branch. But we don't want to
+ // put any other body instructions in it, since the body may have
+ // arbitrary instructions, including merges of its own.
builder.setBuildPoint(&blocks.head);
builder.createLoopMerge(&blocks.merge, &blocks.continue_target, spv::LoopControlMaskNone);
builder.createBranch(&blocks.body);
builder.accessChainLoad(convertGlslangToSpvType(node->getTest()->getType()));
builder.createConditionalBranch(condition, &blocks.head, &blocks.merge);
} else {
- // TODO: unless there was a break instruction somewhere in the body,
- // this is an infinite loop, so we should abort code generation with
- // a warning. As it stands now, nothing will jump to the merge
- // block, and it may be dropped as unreachable by the SPIR-V dumper.
- // That, in turn, will result in a non-existing %ID in the LoopMerge
- // above.
+ // TODO: unless there was a break/return/discard instruction
+ // somewhere in the body, this is an infinite loop, so we should
+ // issue a warning.
builder.createBranch(&blocks.head);
}
}
// If our function did not contain a return, add a return void now.
if (! block->isTerminated()) {
-
- // Whether we're in an unreachable (non-entry) block.
- bool unreachable = function.getEntryBlock() != block && block->getPredecessors().empty();
-
- if (unreachable) {
- // Given that this block is at the end of a function, it must be right after an
- // explicit return, just remove it.
- function.removeBlock(block);
- } else {
- // We'll add a return instruction at the end of the current block,
- // which for a non-void function is really error recovery (?), as the source
- // being translated should have had an explicit return, which would have been
- // followed by an unreachable block, which was handled above.
- if (function.getReturnType() == makeVoidType())
- makeReturn(true);
- else {
- makeReturn(true, createUndefined(function.getReturnType()));
- }
+ if (function.getReturnType() == makeVoidType())
+ makeReturn(true);
+ else {
+ makeReturn(true, createUndefined(function.getReturnType()));
}
}
}
void dump(std::vector<unsigned int>& out) const
{
- // skip the degenerate unreachable blocks
- // TODO: code gen: skip all unreachable blocks (transitive closure)
- // (but, until that's done safer to keep non-degenerate unreachable blocks, in case others depend on something)
- if (unreachable && instructions.size() <= 2)
- return;
-
instructions[0]->dump(out);
for (int i = 0; i < (int)localVariables.size(); ++i)
localVariables[i]->dump(out);
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 47
+// Id's are bound by 48
Capability Shader
1: ExtInstImport "GLSL.std.450"
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 100
+// Id's are bound by 101
Capability Shader
1: ExtInstImport "GLSL.std.450"
Name 43 "k"
Name 55 "sampR"
Name 63 "sampB"
- Name 86 "samp2Da"
- Name 91 "bn"
- MemberName 91(bn) 0 "matra"
- MemberName 91(bn) 1 "matca"
- MemberName 91(bn) 2 "matr"
- MemberName 91(bn) 3 "matc"
- MemberName 91(bn) 4 "matrdef"
- Name 93 ""
- Name 96 "bi"
- MemberName 96(bi) 0 "v"
- Name 99 "bname"
+ Name 87 "samp2Da"
+ Name 92 "bn"
+ MemberName 92(bn) 0 "matra"
+ MemberName 92(bn) 1 "matca"
+ MemberName 92(bn) 2 "matr"
+ MemberName 92(bn) 3 "matc"
+ MemberName 92(bn) 4 "matrdef"
+ Name 94 ""
+ Name 97 "bi"
+ MemberName 97(bi) 0 "v"
+ Name 100 "bname"
Decorate 16(gl_FrontFacing) BuiltIn FrontFacing
Decorate 33(gl_ClipDistance) BuiltIn ClipDistance
- Decorate 89 ArrayStride 64
Decorate 90 ArrayStride 64
- MemberDecorate 91(bn) 0 RowMajor
- MemberDecorate 91(bn) 0 Offset 0
- MemberDecorate 91(bn) 0 MatrixStride 16
- MemberDecorate 91(bn) 1 ColMajor
- MemberDecorate 91(bn) 1 Offset 256
- MemberDecorate 91(bn) 1 MatrixStride 16
- MemberDecorate 91(bn) 2 RowMajor
- MemberDecorate 91(bn) 2 Offset 512
- MemberDecorate 91(bn) 2 MatrixStride 16
- MemberDecorate 91(bn) 3 ColMajor
- MemberDecorate 91(bn) 3 Offset 576
- MemberDecorate 91(bn) 3 MatrixStride 16
- MemberDecorate 91(bn) 4 RowMajor
- MemberDecorate 91(bn) 4 Offset 640
- MemberDecorate 91(bn) 4 MatrixStride 16
- Decorate 91(bn) Block
- Decorate 95 ArrayStride 16
- MemberDecorate 96(bi) 0 Offset 0
- Decorate 96(bi) Block
+ Decorate 91 ArrayStride 64
+ MemberDecorate 92(bn) 0 RowMajor
+ MemberDecorate 92(bn) 0 Offset 0
+ MemberDecorate 92(bn) 0 MatrixStride 16
+ MemberDecorate 92(bn) 1 ColMajor
+ MemberDecorate 92(bn) 1 Offset 256
+ MemberDecorate 92(bn) 1 MatrixStride 16
+ MemberDecorate 92(bn) 2 RowMajor
+ MemberDecorate 92(bn) 2 Offset 512
+ MemberDecorate 92(bn) 2 MatrixStride 16
+ MemberDecorate 92(bn) 3 ColMajor
+ MemberDecorate 92(bn) 3 Offset 576
+ MemberDecorate 92(bn) 3 MatrixStride 16
+ MemberDecorate 92(bn) 4 RowMajor
+ MemberDecorate 92(bn) 4 Offset 640
+ MemberDecorate 92(bn) 4 MatrixStride 16
+ Decorate 92(bn) Block
+ Decorate 96 ArrayStride 16
+ MemberDecorate 97(bi) 0 Offset 0
+ Decorate 97(bi) Block
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
69: TypeVector 6(float) 2
72: 6(float) Constant 1120403456
74: 29(int) Constant 3
- 82: TypeImage 6(float) 2D sampled format:Unknown
- 83: TypeSampledImage 82
- 84: TypeArray 83 74
- 85: TypePointer UniformConstant 84
- 86(samp2Da): 85(ptr) Variable UniformConstant
- 87: TypeMatrix 26(fvec4) 4
- 88: 29(int) Constant 4
- 89: TypeArray 87 88
- 90: TypeArray 87 88
- 91(bn): TypeStruct 89 90 87 87 87
- 92: TypePointer Uniform 91(bn)
- 93: 92(ptr) Variable Uniform
- 94: TypeVector 6(float) 3
- 95: TypeArray 94(fvec3) 50
- 96(bi): TypeStruct 95
- 97: TypeArray 96(bi) 88
- 98: TypePointer Uniform 97
- 99(bname): 98(ptr) Variable Uniform
+ 83: TypeImage 6(float) 2D sampled format:Unknown
+ 84: TypeSampledImage 83
+ 85: TypeArray 84 74
+ 86: TypePointer UniformConstant 85
+ 87(samp2Da): 86(ptr) Variable UniformConstant
+ 88: TypeMatrix 26(fvec4) 4
+ 89: 29(int) Constant 4
+ 90: TypeArray 88 89
+ 91: TypeArray 88 89
+ 92(bn): TypeStruct 90 91 88 88 88
+ 93: TypePointer Uniform 92(bn)
+ 94: 93(ptr) Variable Uniform
+ 95: TypeVector 6(float) 3
+ 96: TypeArray 95(fvec3) 50
+ 97(bi): TypeStruct 96
+ 98: TypeArray 97(bi) 89
+ 99: TypePointer Uniform 98
+ 100(bname): 99(ptr) Variable Uniform
4(main): 2 Function None 3
5: Label
13: 12(ptr) Variable Function
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 103
+// Id's are bound by 104
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 38 43 77
+ EntryPoint Fragment 4 "main" 39 44 78
ExecutionMode 4 OriginLowerLeft
Source GLSL 430
Name 4 "main"
Name 17 "foo(f1[5][7];"
Name 16 "a"
Name 20 "r"
- Name 38 "outfloat"
- Name 41 "g4"
- Name 43 "g5"
- Name 44 "param"
- Name 47 "u"
- Name 51 "param"
- Name 65 "many"
- Name 67 "i"
- Name 69 "j"
- Name 71 "k"
- Name 77 "infloat"
- Name 93 "uAofA"
- MemberName 93(uAofA) 0 "f"
- Name 97 "nameAofA"
- Decorate 93(uAofA) GLSLShared
- Decorate 93(uAofA) Block
+ Name 39 "outfloat"
+ Name 42 "g4"
+ Name 44 "g5"
+ Name 45 "param"
+ Name 48 "u"
+ Name 52 "param"
+ Name 66 "many"
+ Name 68 "i"
+ Name 70 "j"
+ Name 72 "k"
+ Name 78 "infloat"
+ Name 94 "uAofA"
+ MemberName 94(uAofA) 0 "f"
+ Name 98 "nameAofA"
+ Decorate 94(uAofA) GLSLShared
+ Decorate 94(uAofA) Block
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
25: 21(int) Constant 0
28: 21(int) Constant 1
32: 21(int) Constant 3
- 37: TypePointer Output 6(float)
- 38(outfloat): 37(ptr) Variable Output
- 39: 6(float) Constant 0
- 40: TypePointer Private 14
- 41(g4): 40(ptr) Variable Private
- 42: TypePointer Input 11
- 43(g5): 42(ptr) Variable Input
- 48: 6(float) Constant 1077936128
- 49: TypePointer Function 6(float)
- 54: 7(int) Constant 6
- 55: TypeArray 6(float) 54
- 56: TypeArray 55 10
- 57: TypeArray 56 13
- 58: 7(int) Constant 3
- 59: TypeArray 57 58
- 60: 7(int) Constant 2
- 61: TypeArray 59 60
- 62: 7(int) Constant 1
- 63: TypeArray 61 62
- 64: TypePointer Private 63
- 65(many): 64(ptr) Variable Private
- 66: TypePointer UniformConstant 21(int)
- 67(i): 66(ptr) Variable UniformConstant
- 69(j): 66(ptr) Variable UniformConstant
- 71(k): 66(ptr) Variable UniformConstant
- 76: TypePointer Input 6(float)
- 77(infloat): 76(ptr) Variable Input
- 79: TypePointer Private 6(float)
- 91: TypeArray 6(float) 13
- 92: TypeArray 91 60
- 93(uAofA): TypeStruct 92
- 94: TypeArray 93(uAofA) 10
- 95: TypeArray 94 58
- 96: TypePointer Uniform 95
- 97(nameAofA): 96(ptr) Variable Uniform
- 98: TypePointer Uniform 6(float)
+ 38: TypePointer Output 6(float)
+ 39(outfloat): 38(ptr) Variable Output
+ 40: 6(float) Constant 0
+ 41: TypePointer Private 14
+ 42(g4): 41(ptr) Variable Private
+ 43: TypePointer Input 11
+ 44(g5): 43(ptr) Variable Input
+ 49: 6(float) Constant 1077936128
+ 50: TypePointer Function 6(float)
+ 55: 7(int) Constant 6
+ 56: TypeArray 6(float) 55
+ 57: TypeArray 56 10
+ 58: TypeArray 57 13
+ 59: 7(int) Constant 3
+ 60: TypeArray 58 59
+ 61: 7(int) Constant 2
+ 62: TypeArray 60 61
+ 63: 7(int) Constant 1
+ 64: TypeArray 62 63
+ 65: TypePointer Private 64
+ 66(many): 65(ptr) Variable Private
+ 67: TypePointer UniformConstant 21(int)
+ 68(i): 67(ptr) Variable UniformConstant
+ 70(j): 67(ptr) Variable UniformConstant
+ 72(k): 67(ptr) Variable UniformConstant
+ 77: TypePointer Input 6(float)
+ 78(infloat): 77(ptr) Variable Input
+ 80: TypePointer Private 6(float)
+ 92: TypeArray 6(float) 13
+ 93: TypeArray 92 61
+ 94(uAofA): TypeStruct 93
+ 95: TypeArray 94(uAofA) 10
+ 96: TypeArray 95 59
+ 97: TypePointer Uniform 96
+ 98(nameAofA): 97(ptr) Variable Uniform
+ 99: TypePointer Uniform 6(float)
4(main): 2 Function None 3
5: Label
- 44(param): 12(ptr) Variable Function
- 47(u): 12(ptr) Variable Function
- 51(param): 12(ptr) Variable Function
- Store 38(outfloat) 39
- 45: 11 Load 43(g5)
- Store 44(param) 45
- 46: 14 FunctionCall 17(foo(f1[5][7];) 44(param)
- Store 41(g4) 46
- 50: 49(ptr) AccessChain 47(u) 22 22
- Store 50 48
- 52: 11 Load 47(u)
- Store 51(param) 52
- 53: 14 FunctionCall 17(foo(f1[5][7];) 51(param)
- 68: 21(int) Load 67(i)
- 70: 21(int) Load 69(j)
- 72: 21(int) Load 71(k)
- 73: 21(int) Load 67(i)
- 74: 21(int) Load 69(j)
- 75: 21(int) Load 71(k)
- 78: 6(float) Load 77(infloat)
- 80: 79(ptr) AccessChain 65(many) 68 70 72 73 74 75
- Store 80 78
- 81: 21(int) Load 69(j)
- 82: 21(int) Load 69(j)
- 83: 21(int) Load 69(j)
- 84: 21(int) Load 69(j)
- 85: 21(int) Load 69(j)
- 86: 21(int) Load 69(j)
- 87: 79(ptr) AccessChain 65(many) 81 82 83 84 85 86
- 88: 6(float) Load 87
- 89: 6(float) Load 38(outfloat)
- 90: 6(float) FAdd 89 88
- Store 38(outfloat) 90
- 99: 98(ptr) AccessChain 97(nameAofA) 28 22 25 25 32
- 100: 6(float) Load 99
- 101: 6(float) Load 38(outfloat)
- 102: 6(float) FAdd 101 100
- Store 38(outfloat) 102
+ 45(param): 12(ptr) Variable Function
+ 48(u): 12(ptr) Variable Function
+ 52(param): 12(ptr) Variable Function
+ Store 39(outfloat) 40
+ 46: 11 Load 44(g5)
+ Store 45(param) 46
+ 47: 14 FunctionCall 17(foo(f1[5][7];) 45(param)
+ Store 42(g4) 47
+ 51: 50(ptr) AccessChain 48(u) 22 22
+ Store 51 49
+ 53: 11 Load 48(u)
+ Store 52(param) 53
+ 54: 14 FunctionCall 17(foo(f1[5][7];) 52(param)
+ 69: 21(int) Load 68(i)
+ 71: 21(int) Load 70(j)
+ 73: 21(int) Load 72(k)
+ 74: 21(int) Load 68(i)
+ 75: 21(int) Load 70(j)
+ 76: 21(int) Load 72(k)
+ 79: 6(float) Load 78(infloat)
+ 81: 80(ptr) AccessChain 66(many) 69 71 73 74 75 76
+ Store 81 79
+ 82: 21(int) Load 70(j)
+ 83: 21(int) Load 70(j)
+ 84: 21(int) Load 70(j)
+ 85: 21(int) Load 70(j)
+ 86: 21(int) Load 70(j)
+ 87: 21(int) Load 70(j)
+ 88: 80(ptr) AccessChain 66(many) 82 83 84 85 86 87
+ 89: 6(float) Load 88
+ 90: 6(float) Load 39(outfloat)
+ 91: 6(float) FAdd 90 89
+ Store 39(outfloat) 91
+ 100: 99(ptr) AccessChain 98(nameAofA) 28 22 25 25 32
+ 101: 6(float) Load 100
+ 102: 6(float) Load 39(outfloat)
+ 103: 6(float) FAdd 102 101
+ Store 39(outfloat) 103
Return
FunctionEnd
17(foo(f1[5][7];): 14 Function None 15
TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class?
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 74
+// Id's are bound by 75
Capability Shader
1: ExtInstImport "GLSL.std.450"
Name 10 "func(au1;"
Name 9 "c"
Name 12 "atoms("
- Name 20 "counter"
- Name 21 "param"
- Name 24 "val"
- Name 28 "countArr"
- Name 35 "origi"
- Name 37 "atomi"
- Name 40 "origu"
- Name 42 "atomu"
- Name 44 "value"
- Name 61 "dataSSB"
- MemberName 61(dataSSB) 0 "f"
- MemberName 61(dataSSB) 1 "n_frames_rendered"
- Name 63 "result"
- Name 71 "arrX"
- Name 72 "arrY"
- Name 73 "arrZ"
- Decorate 20(counter) Binding 0
- Decorate 28(countArr) Binding 0
- MemberDecorate 61(dataSSB) 0 Offset 0
- MemberDecorate 61(dataSSB) 1 Offset 16
- Decorate 61(dataSSB) BufferBlock
- Decorate 63(result) Binding 0
+ Name 21 "counter"
+ Name 22 "param"
+ Name 25 "val"
+ Name 29 "countArr"
+ Name 36 "origi"
+ Name 38 "atomi"
+ Name 41 "origu"
+ Name 43 "atomu"
+ Name 45 "value"
+ Name 62 "dataSSB"
+ MemberName 62(dataSSB) 0 "f"
+ MemberName 62(dataSSB) 1 "n_frames_rendered"
+ Name 64 "result"
+ Name 72 "arrX"
+ Name 73 "arrY"
+ Name 74 "arrZ"
+ Decorate 21(counter) Binding 0
+ Decorate 29(countArr) Binding 0
+ MemberDecorate 62(dataSSB) 0 Offset 0
+ MemberDecorate 62(dataSSB) 1 Offset 16
+ Decorate 62(dataSSB) BufferBlock
+ Decorate 64(result) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
8: TypeFunction 6(int) 7(ptr)
14: 6(int) Constant 1
15: 6(int) Constant 0
- 18: 6(int) Constant 1024
- 19: TypePointer AtomicCounter 6(int)
- 20(counter): 19(ptr) Variable AtomicCounter
- 25: 6(int) Constant 4
- 26: TypeArray 6(int) 25
- 27: TypePointer AtomicCounter 26
- 28(countArr): 27(ptr) Variable AtomicCounter
- 29: TypeInt 32 1
- 30: 29(int) Constant 2
- 34: TypePointer Function 29(int)
- 36: TypePointer Workgroup 29(int)
- 37(atomi): 36(ptr) Variable Workgroup
- 38: 29(int) Constant 3
- 41: TypePointer Workgroup 6(int)
- 42(atomu): 41(ptr) Variable Workgroup
- 43: TypePointer UniformConstant 6(int)
- 44(value): 43(ptr) Variable UniformConstant
- 47: 6(int) Constant 7
- 52: 29(int) Constant 7
- 56: 6(int) Constant 10
- 59: TypeFloat 32
- 60: TypeVector 29(int) 4
- 61(dataSSB): TypeStruct 59(float) 60(ivec4)
- 62: TypePointer Uniform 61(dataSSB)
- 63(result): 62(ptr) Variable Uniform
- 64: 29(int) Constant 1
- 65: 6(int) Constant 2
- 66: TypePointer Uniform 29(int)
- 69: TypeArray 29(int) 14
- 70: TypePointer Private 69
- 71(arrX): 70(ptr) Variable Private
- 72(arrY): 70(ptr) Variable Private
- 73(arrZ): 70(ptr) Variable Private
+ 19: 6(int) Constant 1024
+ 20: TypePointer AtomicCounter 6(int)
+ 21(counter): 20(ptr) Variable AtomicCounter
+ 26: 6(int) Constant 4
+ 27: TypeArray 6(int) 26
+ 28: TypePointer AtomicCounter 27
+ 29(countArr): 28(ptr) Variable AtomicCounter
+ 30: TypeInt 32 1
+ 31: 30(int) Constant 2
+ 35: TypePointer Function 30(int)
+ 37: TypePointer Workgroup 30(int)
+ 38(atomi): 37(ptr) Variable Workgroup
+ 39: 30(int) Constant 3
+ 42: TypePointer Workgroup 6(int)
+ 43(atomu): 42(ptr) Variable Workgroup
+ 44: TypePointer UniformConstant 6(int)
+ 45(value): 44(ptr) Variable UniformConstant
+ 48: 6(int) Constant 7
+ 53: 30(int) Constant 7
+ 57: 6(int) Constant 10
+ 60: TypeFloat 32
+ 61: TypeVector 30(int) 4
+ 62(dataSSB): TypeStruct 60(float) 61(ivec4)
+ 63: TypePointer Uniform 62(dataSSB)
+ 64(result): 63(ptr) Variable Uniform
+ 65: 30(int) Constant 1
+ 66: 6(int) Constant 2
+ 67: TypePointer Uniform 30(int)
+ 70: TypeArray 30(int) 14
+ 71: TypePointer Private 70
+ 72(arrX): 71(ptr) Variable Private
+ 73(arrY): 71(ptr) Variable Private
+ 74(arrZ): 71(ptr) Variable Private
4(main): 2 Function None 3
5: Label
- 21(param): 7(ptr) Variable Function
- 24(val): 7(ptr) Variable Function
- MemoryBarrier 14 18
- 22: 6(int) Load 20(counter)
- Store 21(param) 22
- 23: 6(int) FunctionCall 10(func(au1;) 21(param)
- 31: 19(ptr) AccessChain 28(countArr) 30
- 32: 6(int) AtomicLoad 31 14 15
- Store 24(val) 32
- 33: 6(int) AtomicIDecrement 20(counter) 14 15
+ 22(param): 7(ptr) Variable Function
+ 25(val): 7(ptr) Variable Function
+ MemoryBarrier 14 19
+ 23: 6(int) Load 21(counter)
+ Store 22(param) 23
+ 24: 6(int) FunctionCall 10(func(au1;) 22(param)
+ 32: 20(ptr) AccessChain 29(countArr) 31
+ 33: 6(int) AtomicLoad 32 14 15
+ Store 25(val) 33
+ 34: 6(int) AtomicIDecrement 21(counter) 14 15
Return
FunctionEnd
10(func(au1;): 6(int) Function None 8
FunctionEnd
12(atoms(): 2 Function None 3
13: Label
- 35(origi): 34(ptr) Variable Function
- 40(origu): 7(ptr) Variable Function
- 39: 29(int) AtomicIAdd 37(atomi) 14 15 38
- Store 35(origi) 39
- 45: 6(int) Load 44(value)
- 46: 6(int) AtomicAnd 42(atomu) 14 15 45
- Store 40(origu) 46
- 48: 6(int) AtomicOr 42(atomu) 14 15 47
- Store 40(origu) 48
- 49: 6(int) AtomicXor 42(atomu) 14 15 47
- Store 40(origu) 49
- 50: 6(int) Load 44(value)
- 51: 6(int) AtomicUMin 42(atomu) 14 15 50
- Store 40(origu) 51
- 53: 29(int) AtomicSMax 37(atomi) 14 15 52
- Store 35(origi) 53
- 54: 29(int) Load 35(origi)
- 55: 29(int) AtomicExchange 37(atomi) 14 15 54
- Store 35(origi) 55
- 57: 6(int) Load 44(value)
- 58: 6(int) AtomicCompareExchange 42(atomu) 14 15 15 57 56
- Store 40(origu) 58
- 67: 66(ptr) AccessChain 63(result) 64 65
- 68: 29(int) AtomicIAdd 67 14 15 64
+ 36(origi): 35(ptr) Variable Function
+ 41(origu): 7(ptr) Variable Function
+ 40: 30(int) AtomicIAdd 38(atomi) 14 15 39
+ Store 36(origi) 40
+ 46: 6(int) Load 45(value)
+ 47: 6(int) AtomicAnd 43(atomu) 14 15 46
+ Store 41(origu) 47
+ 49: 6(int) AtomicOr 43(atomu) 14 15 48
+ Store 41(origu) 49
+ 50: 6(int) AtomicXor 43(atomu) 14 15 48
+ Store 41(origu) 50
+ 51: 6(int) Load 45(value)
+ 52: 6(int) AtomicUMin 43(atomu) 14 15 51
+ Store 41(origu) 52
+ 54: 30(int) AtomicSMax 38(atomi) 14 15 53
+ Store 36(origi) 54
+ 55: 30(int) Load 36(origi)
+ 56: 30(int) AtomicExchange 38(atomi) 14 15 55
+ Store 36(origi) 56
+ 58: 6(int) Load 45(value)
+ 59: 6(int) AtomicCompareExchange 43(atomu) 14 15 15 58 57
+ Store 41(origu) 59
+ 68: 67(ptr) AccessChain 64(result) 65 66
+ 69: 30(int) AtomicIAdd 68 14 15 65
Return
FunctionEnd
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 49
+// Id's are bound by 50
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Vertex 4 "main" 23 47 48
+ EntryPoint Vertex 4 "main" 24 48 49
Source GLSL 450
Name 4 "main"
Name 10 "foo(b1;"
Name 9 "b"
- Name 21 "gl_PerVertex"
- MemberName 21(gl_PerVertex) 0 "gl_Position"
- MemberName 21(gl_PerVertex) 1 "gl_PointSize"
- MemberName 21(gl_PerVertex) 2 "gl_ClipDistance"
- MemberName 21(gl_PerVertex) 3 "gl_CullDistance"
- Name 23 ""
- Name 28 "ubname"
- MemberName 28(ubname) 0 "b"
- Name 30 "ubinst"
- Name 31 "param"
- Name 47 "gl_VertexID"
- Name 48 "gl_InstanceID"
- MemberDecorate 21(gl_PerVertex) 0 BuiltIn Position
- MemberDecorate 21(gl_PerVertex) 1 BuiltIn PointSize
- MemberDecorate 21(gl_PerVertex) 2 BuiltIn ClipDistance
- MemberDecorate 21(gl_PerVertex) 3 BuiltIn CullDistance
- Decorate 21(gl_PerVertex) Block
- Decorate 28(ubname) GLSLShared
- Decorate 28(ubname) Block
- Decorate 47(gl_VertexID) BuiltIn VertexId
- Decorate 48(gl_InstanceID) BuiltIn InstanceId
+ Name 22 "gl_PerVertex"
+ MemberName 22(gl_PerVertex) 0 "gl_Position"
+ MemberName 22(gl_PerVertex) 1 "gl_PointSize"
+ MemberName 22(gl_PerVertex) 2 "gl_ClipDistance"
+ MemberName 22(gl_PerVertex) 3 "gl_CullDistance"
+ Name 24 ""
+ Name 29 "ubname"
+ MemberName 29(ubname) 0 "b"
+ Name 31 "ubinst"
+ Name 32 "param"
+ Name 48 "gl_VertexID"
+ Name 49 "gl_InstanceID"
+ MemberDecorate 22(gl_PerVertex) 0 BuiltIn Position
+ MemberDecorate 22(gl_PerVertex) 1 BuiltIn PointSize
+ MemberDecorate 22(gl_PerVertex) 2 BuiltIn ClipDistance
+ MemberDecorate 22(gl_PerVertex) 3 BuiltIn CullDistance
+ Decorate 22(gl_PerVertex) Block
+ Decorate 29(ubname) GLSLShared
+ Decorate 29(ubname) Block
+ Decorate 48(gl_VertexID) BuiltIn VertexId
+ Decorate 49(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeBool
7: TypePointer Function 6(bool)
8: TypeFunction 6(bool) 7(ptr)
13: 6(bool) ConstantFalse
- 16: TypeFloat 32
- 17: TypeVector 16(float) 4
- 18: TypeInt 32 0
- 19: 18(int) Constant 1
- 20: TypeArray 16(float) 19
-21(gl_PerVertex): TypeStruct 17(fvec4) 16(float) 20 20
- 22: TypePointer Output 21(gl_PerVertex)
- 23: 22(ptr) Variable Output
- 24: TypeInt 32 1
- 25: 24(int) Constant 0
- 26: TypePointer Function 17(fvec4)
- 28(ubname): TypeStruct 6(bool)
- 29: TypePointer Uniform 28(ubname)
- 30(ubinst): 29(ptr) Variable Uniform
- 32: TypePointer Uniform 6(bool)
- 38: 16(float) Constant 0
- 39: 17(fvec4) ConstantComposite 38 38 38 38
- 41: 16(float) Constant 1065353216
- 42: 17(fvec4) ConstantComposite 41 41 41 41
- 44: TypePointer Output 17(fvec4)
- 46: TypePointer Input 24(int)
- 47(gl_VertexID): 46(ptr) Variable Input
-48(gl_InstanceID): 46(ptr) Variable Input
+ 17: TypeFloat 32
+ 18: TypeVector 17(float) 4
+ 19: TypeInt 32 0
+ 20: 19(int) Constant 1
+ 21: TypeArray 17(float) 20
+22(gl_PerVertex): TypeStruct 18(fvec4) 17(float) 21 21
+ 23: TypePointer Output 22(gl_PerVertex)
+ 24: 23(ptr) Variable Output
+ 25: TypeInt 32 1
+ 26: 25(int) Constant 0
+ 27: TypePointer Function 18(fvec4)
+ 29(ubname): TypeStruct 6(bool)
+ 30: TypePointer Uniform 29(ubname)
+ 31(ubinst): 30(ptr) Variable Uniform
+ 33: TypePointer Uniform 6(bool)
+ 39: 17(float) Constant 0
+ 40: 18(fvec4) ConstantComposite 39 39 39 39
+ 42: 17(float) Constant 1065353216
+ 43: 18(fvec4) ConstantComposite 42 42 42 42
+ 45: TypePointer Output 18(fvec4)
+ 47: TypePointer Input 25(int)
+ 48(gl_VertexID): 47(ptr) Variable Input
+49(gl_InstanceID): 47(ptr) Variable Input
4(main): 2 Function None 3
5: Label
- 27: 26(ptr) Variable Function
- 31(param): 7(ptr) Variable Function
- 33: 32(ptr) AccessChain 30(ubinst) 25
- 34: 6(bool) Load 33
- Store 31(param) 34
- 35: 6(bool) FunctionCall 10(foo(b1;) 31(param)
- SelectionMerge 37 None
- BranchConditional 35 36 40
- 36: Label
- Store 27 39
- Branch 37
- 40: Label
- Store 27 42
- Branch 37
- 37: Label
- 43: 17(fvec4) Load 27
- 45: 44(ptr) AccessChain 23 25
- Store 45 43
+ 28: 27(ptr) Variable Function
+ 32(param): 7(ptr) Variable Function
+ 34: 33(ptr) AccessChain 31(ubinst) 26
+ 35: 6(bool) Load 34
+ Store 32(param) 35
+ 36: 6(bool) FunctionCall 10(foo(b1;) 32(param)
+ SelectionMerge 38 None
+ BranchConditional 36 37 41
+ 37: Label
+ Store 28 40
+ Branch 38
+ 41: Label
+ Store 28 43
+ Branch 38
+ 38: Label
+ 44: 18(fvec4) Load 28
+ 46: 45(ptr) AccessChain 24 26
+ Store 46 44
Return
FunctionEnd
10(foo(b1;): 6(bool) Function None 8
19: 6(int) IAdd 17 18
Store 8(i) 19
Branch 10
+ 12: Label
+ Return
FunctionEnd
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 60
+// Id's are bound by 61
Capability Shader
1: ExtInstImport "GLSL.std.450"
Name 27 "f"
Name 30 "gl_FragColor"
Name 36 "d"
- Name 59 "bigColor"
+ Name 60 "bigColor"
Decorate 18(color) RelaxedPrecision
Decorate 20(BaseColor) RelaxedPrecision
Decorate 27(f) RelaxedPrecision
Decorate 30(gl_FragColor) RelaxedPrecision
Decorate 36(d) RelaxedPrecision
- Decorate 59(bigColor) RelaxedPrecision
+ Decorate 60(bigColor) RelaxedPrecision
2: TypeVoid
3: TypeFunction 2
8: TypeFloat 32
49: TypeInt 32 0
50: 49(int) Constant 0
53: 49(int) Constant 1
- 58: TypePointer UniformConstant 12(fvec4)
- 59(bigColor): 58(ptr) Variable UniformConstant
+ 59: TypePointer UniformConstant 12(fvec4)
+ 60(bigColor): 59(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
18(color): 13(ptr) Variable Function
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 76
+// Id's are bound by 77
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 57 68
+ EntryPoint Fragment 4 "main" 58 69
ExecutionMode 4 OriginLowerLeft
Source GLSL 130
Name 4 "main"
Name 16 "unreachableReturn("
Name 18 "missingReturn("
Name 21 "h"
- Name 34 "d"
- Name 55 "color"
- Name 57 "BaseColor"
- Name 58 "param"
- Name 63 "f"
- Name 65 "g"
- Name 68 "gl_FragColor"
- Name 75 "bigColor"
+ Name 35 "d"
+ Name 56 "color"
+ Name 58 "BaseColor"
+ Name 59 "param"
+ Name 64 "f"
+ Name 66 "g"
+ Name 69 "gl_FragColor"
+ Name 76 "bigColor"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
24: 23(int) Constant 0
25: TypePointer Function 6(float)
28: 23(int) Constant 1
- 33: TypePointer UniformConstant 6(float)
- 34(d): 33(ptr) Variable UniformConstant
- 36: 6(float) Constant 1082549862
- 37: TypeBool
- 41: 6(float) Constant 1067030938
- 44: 6(float) Constant 1083179008
- 52: 6(float) Constant 1081711002
- 56: TypePointer Input 7(fvec4)
- 57(BaseColor): 56(ptr) Variable Input
- 67: TypePointer Output 7(fvec4)
-68(gl_FragColor): 67(ptr) Variable Output
- 74: TypePointer UniformConstant 7(fvec4)
- 75(bigColor): 74(ptr) Variable UniformConstant
+ 34: TypePointer UniformConstant 6(float)
+ 35(d): 34(ptr) Variable UniformConstant
+ 37: 6(float) Constant 1082549862
+ 38: TypeBool
+ 42: 6(float) Constant 1067030938
+ 45: 6(float) Constant 1083179008
+ 53: 6(float) Constant 1081711002
+ 57: TypePointer Input 7(fvec4)
+ 58(BaseColor): 57(ptr) Variable Input
+ 68: TypePointer Output 7(fvec4)
+69(gl_FragColor): 68(ptr) Variable Output
+ 75: TypePointer UniformConstant 7(fvec4)
+ 76(bigColor): 75(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
- 55(color): 8(ptr) Variable Function
- 58(param): 8(ptr) Variable Function
- 63(f): 25(ptr) Variable Function
- 65(g): 25(ptr) Variable Function
+ 56(color): 8(ptr) Variable Function
+ 59(param): 8(ptr) Variable Function
+ 64(f): 25(ptr) Variable Function
+ 66(g): 25(ptr) Variable Function
Store 21(h) 22
- 59: 7(fvec4) Load 57(BaseColor)
- Store 58(param) 59
- 60: 6(float) FunctionCall 11(foo(vf4;) 58(param)
- 61: 7(fvec4) CompositeConstruct 60 60 60 60
- Store 55(color) 61
- 62: 2 FunctionCall 13(bar()
- 64: 6(float) FunctionCall 16(unreachableReturn()
- Store 63(f) 64
- 66: 6(float) FunctionCall 18(missingReturn()
- Store 65(g) 66
- 69: 7(fvec4) Load 55(color)
- 70: 6(float) Load 63(f)
- 71: 7(fvec4) VectorTimesScalar 69 70
- 72: 6(float) Load 21(h)
- 73: 7(fvec4) VectorTimesScalar 71 72
- Store 68(gl_FragColor) 73
+ 60: 7(fvec4) Load 58(BaseColor)
+ Store 59(param) 60
+ 61: 6(float) FunctionCall 11(foo(vf4;) 59(param)
+ 62: 7(fvec4) CompositeConstruct 61 61 61 61
+ Store 56(color) 62
+ 63: 2 FunctionCall 13(bar()
+ 65: 6(float) FunctionCall 16(unreachableReturn()
+ Store 64(f) 65
+ 67: 6(float) FunctionCall 18(missingReturn()
+ Store 66(g) 67
+ 70: 7(fvec4) Load 56(color)
+ 71: 6(float) Load 64(f)
+ 72: 7(fvec4) VectorTimesScalar 70 71
+ 73: 6(float) Load 21(h)
+ 74: 7(fvec4) VectorTimesScalar 72 73
+ Store 69(gl_FragColor) 74
Return
FunctionEnd
11(foo(vf4;): 6(float) Function None 9
FunctionEnd
16(unreachableReturn(): 6(float) Function None 15
17: Label
- 35: 6(float) Load 34(d)
- 38: 37(bool) FOrdLessThan 35 36
- SelectionMerge 40 None
- BranchConditional 38 39 43
- 39: Label
- ReturnValue 41
- 43: Label
- ReturnValue 44
- 40: Label
- 46: 6(float) Undef
- ReturnValue 46
+ 36: 6(float) Load 35(d)
+ 39: 38(bool) FOrdLessThan 36 37
+ SelectionMerge 41 None
+ BranchConditional 39 40 44
+ 40: Label
+ ReturnValue 42
+ 44: Label
+ ReturnValue 45
+ 41: Label
+ 47: 6(float) Undef
+ ReturnValue 47
FunctionEnd
18(missingReturn(): 6(float) Function None 15
19: Label
- 47: 6(float) Load 34(d)
- 48: 37(bool) FOrdLessThan 47 44
- SelectionMerge 50 None
- BranchConditional 48 49 50
- 49: Label
- 51: 6(float) Load 34(d)
- Store 21(h) 51
- ReturnValue 52
- 50: Label
- 54: 6(float) Undef
- ReturnValue 54
+ 48: 6(float) Load 35(d)
+ 49: 38(bool) FOrdLessThan 48 45
+ SelectionMerge 51 None
+ BranchConditional 49 50 51
+ 50: Label
+ 52: 6(float) Load 35(d)
+ Store 21(h) 52
+ ReturnValue 53
+ 51: Label
+ 55: 6(float) Undef
+ ReturnValue 55
FunctionEnd
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 153
+// Id's are bound by 156
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 149
+ EntryPoint Fragment 4 "main" 152
ExecutionMode 4 OriginLowerLeft
Source GLSL 400
Name 4 "main"
Name 24 "r"
Name 28 "foo3("
Name 30 "sum"
- Name 74 "u"
- Name 86 "t"
- Name 89 "s"
- MemberName 89(s) 0 "t"
- Name 91 "f"
- Name 95 "color"
- Name 101 "e"
- Name 102 "param"
- Name 103 "param"
- Name 104 "param"
+ Name 76 "u"
+ Name 89 "t"
+ Name 92 "s"
+ MemberName 92(s) 0 "t"
+ Name 94 "f"
+ Name 98 "color"
+ Name 104 "e"
Name 105 "param"
- Name 120 "ret"
- Name 122 "tempReturn"
- Name 127 "tempArg"
- Name 128 "param"
- Name 129 "param"
- Name 130 "param"
- Name 133 "arg"
- Name 149 "gl_FragColor"
+ Name 106 "param"
+ Name 107 "param"
+ Name 108 "param"
+ Name 123 "ret"
+ Name 125 "tempReturn"
+ Name 130 "tempArg"
+ Name 131 "param"
+ Name 132 "param"
+ Name 133 "param"
+ Name 136 "arg"
+ Name 152 "gl_FragColor"
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
27: TypeFunction 6(int)
38: 6(int) Constant 64
43: 6(int) Constant 1024
- 61: 17(float) Constant 1077936128
- 65: 17(float) Constant 1084227584
- 66: TypeInt 32 0
- 67: 66(int) Constant 1
- 73: TypePointer UniformConstant 17(float)
- 74(u): 73(ptr) Variable UniformConstant
- 76: 17(float) Constant 1078774989
- 77: TypeBool
- 82: 6(int) Constant 1000000
- 84: 6(int) Constant 2000000
- 87: 6(int) Constant 2
- 88: TypeVector 6(int) 4
- 89(s): TypeStruct 88(ivec4)
- 90: TypePointer Function 89(s)
- 92: 6(int) Constant 0
- 93: 6(int) Constant 32
- 96: 6(int) Constant 1
- 100: 6(int) Constant 8
- 112: 6(int) Constant 128
- 121: TypePointer Private 6(int)
- 122(tempReturn): 121(ptr) Variable Private
- 123: 17(float) Constant 1082130432
- 124: 17(float) Constant 1065353216
- 125: 17(float) Constant 1073741824
- 126: 19(fvec3) ConstantComposite 124 125 61
- 147: TypeVector 17(float) 4
- 148: TypePointer Output 147(fvec4)
-149(gl_FragColor): 148(ptr) Variable Output
+ 62: 17(float) Constant 1077936128
+ 66: 17(float) Constant 1084227584
+ 67: TypeInt 32 0
+ 68: 67(int) Constant 1
+ 75: TypePointer UniformConstant 17(float)
+ 76(u): 75(ptr) Variable UniformConstant
+ 78: 17(float) Constant 1078774989
+ 79: TypeBool
+ 84: 6(int) Constant 1000000
+ 86: 6(int) Constant 2000000
+ 90: 6(int) Constant 2
+ 91: TypeVector 6(int) 4
+ 92(s): TypeStruct 91(ivec4)
+ 93: TypePointer Function 92(s)
+ 95: 6(int) Constant 0
+ 96: 6(int) Constant 32
+ 99: 6(int) Constant 1
+ 103: 6(int) Constant 8
+ 115: 6(int) Constant 128
+ 124: TypePointer Private 6(int)
+ 125(tempReturn): 124(ptr) Variable Private
+ 126: 17(float) Constant 1082130432
+ 127: 17(float) Constant 1065353216
+ 128: 17(float) Constant 1073741824
+ 129: 19(fvec3) ConstantComposite 127 128 62
+ 150: TypeVector 17(float) 4
+ 151: TypePointer Output 150(fvec4)
+152(gl_FragColor): 151(ptr) Variable Output
4(main): 2 Function None 3
5: Label
- 86(t): 7(ptr) Variable Function
- 91(f): 90(ptr) Variable Function
- 95(color): 7(ptr) Variable Function
- 101(e): 7(ptr) Variable Function
- 102(param): 7(ptr) Variable Function
- 103(param): 7(ptr) Variable Function
- 104(param): 7(ptr) Variable Function
+ 89(t): 7(ptr) Variable Function
+ 94(f): 93(ptr) Variable Function
+ 98(color): 7(ptr) Variable Function
+ 104(e): 7(ptr) Variable Function
105(param): 7(ptr) Variable Function
- 120(ret): 18(ptr) Variable Function
- 127(tempArg): 7(ptr) Variable Function
- 128(param): 18(ptr) Variable Function
- 129(param): 20(ptr) Variable Function
- 130(param): 7(ptr) Variable Function
- 133(arg): 18(ptr) Variable Function
- Store 86(t) 87
- 94: 7(ptr) AccessChain 91(f) 92 67
- Store 94 93
- 97: 6(int) Load 86(t)
- 98: 6(int) Load 86(t)
- 99: 6(int) IAdd 97 98
- Store 102(param) 96
- Store 103(param) 99
- 106: 7(ptr) AccessChain 91(f) 92 67
- 107: 6(int) Load 106
- Store 105(param) 107
- 108: 6(int) FunctionCall 15(foo(i1;i1;i1;i1;i1;i1;) 102(param) 87 103(param) 100 104(param) 105(param)
- 109: 6(int) Load 104(param)
- Store 101(e) 109
- 110: 6(int) Load 105(param)
- 111: 7(ptr) AccessChain 91(f) 92 67
- Store 111 110
- Store 95(color) 108
- 113: 6(int) Load 101(e)
- 114: 7(ptr) AccessChain 91(f) 92 67
- 115: 6(int) Load 114
- 116: 6(int) IAdd 113 115
- 117: 6(int) IMul 112 116
- 118: 6(int) Load 95(color)
- 119: 6(int) IAdd 118 117
- Store 95(color) 119
- Store 128(param) 123
- Store 129(param) 126
- 131: 6(int) FunctionCall 25(foo2(f1;vf3;i1;) 128(param) 129(param) 130(param)
- 132: 6(int) Load 130(param)
- Store 127(tempArg) 132
- Store 122(tempReturn) 131
- 134: 6(int) Load 127(tempArg)
- 135: 17(float) ConvertSToF 134
- Store 133(arg) 135
- 136: 6(int) Load 122(tempReturn)
- 137: 17(float) ConvertSToF 136
- Store 120(ret) 137
- 138: 17(float) Load 120(ret)
- 139: 17(float) Load 133(arg)
- 140: 17(float) FAdd 138 139
- 141: 6(int) ConvertFToS 140
- 142: 6(int) Load 95(color)
- 143: 6(int) IAdd 142 141
- Store 95(color) 143
- 144: 6(int) FunctionCall 28(foo3()
- 145: 6(int) Load 95(color)
+ 106(param): 7(ptr) Variable Function
+ 107(param): 7(ptr) Variable Function
+ 108(param): 7(ptr) Variable Function
+ 123(ret): 18(ptr) Variable Function
+ 130(tempArg): 7(ptr) Variable Function
+ 131(param): 18(ptr) Variable Function
+ 132(param): 20(ptr) Variable Function
+ 133(param): 7(ptr) Variable Function
+ 136(arg): 18(ptr) Variable Function
+ Store 89(t) 90
+ 97: 7(ptr) AccessChain 94(f) 95 68
+ Store 97 96
+ 100: 6(int) Load 89(t)
+ 101: 6(int) Load 89(t)
+ 102: 6(int) IAdd 100 101
+ Store 105(param) 99
+ Store 106(param) 102
+ 109: 7(ptr) AccessChain 94(f) 95 68
+ 110: 6(int) Load 109
+ Store 108(param) 110
+ 111: 6(int) FunctionCall 15(foo(i1;i1;i1;i1;i1;i1;) 105(param) 90 106(param) 103 107(param) 108(param)
+ 112: 6(int) Load 107(param)
+ Store 104(e) 112
+ 113: 6(int) Load 108(param)
+ 114: 7(ptr) AccessChain 94(f) 95 68
+ Store 114 113
+ Store 98(color) 111
+ 116: 6(int) Load 104(e)
+ 117: 7(ptr) AccessChain 94(f) 95 68
+ 118: 6(int) Load 117
+ 119: 6(int) IAdd 116 118
+ 120: 6(int) IMul 115 119
+ 121: 6(int) Load 98(color)
+ 122: 6(int) IAdd 121 120
+ Store 98(color) 122
+ Store 131(param) 126
+ Store 132(param) 129
+ 134: 6(int) FunctionCall 25(foo2(f1;vf3;i1;) 131(param) 132(param) 133(param)
+ 135: 6(int) Load 133(param)
+ Store 130(tempArg) 135
+ Store 125(tempReturn) 134
+ 137: 6(int) Load 130(tempArg)
+ 138: 17(float) ConvertSToF 137
+ Store 136(arg) 138
+ 139: 6(int) Load 125(tempReturn)
+ 140: 17(float) ConvertSToF 139
+ Store 123(ret) 140
+ 141: 17(float) Load 123(ret)
+ 142: 17(float) Load 136(arg)
+ 143: 17(float) FAdd 141 142
+ 144: 6(int) ConvertFToS 143
+ 145: 6(int) Load 98(color)
146: 6(int) IAdd 145 144
- Store 95(color) 146
- 150: 6(int) Load 95(color)
- 151: 17(float) ConvertSToF 150
- 152: 147(fvec4) CompositeConstruct 151 151 151 151
- Store 149(gl_FragColor) 152
+ Store 98(color) 146
+ 147: 6(int) FunctionCall 28(foo3()
+ 148: 6(int) Load 98(color)
+ 149: 6(int) IAdd 148 147
+ Store 98(color) 149
+ 153: 6(int) Load 98(color)
+ 154: 17(float) ConvertSToF 153
+ 155: 150(fvec4) CompositeConstruct 154 154 154 154
+ Store 152(gl_FragColor) 155
Return
FunctionEnd
15(foo(i1;i1;i1;i1;i1;i1;): 6(int) Function None 8
23(b): 20(ptr) FunctionParameter
24(r): 7(ptr) FunctionParameter
26: Label
- 62: 17(float) Load 22(a)
- 63: 17(float) FMul 61 62
- 64: 6(int) ConvertFToS 63
- Store 24(r) 64
- 68: 18(ptr) AccessChain 23(b) 67
- 69: 17(float) Load 68
- 70: 17(float) FMul 65 69
- 71: 6(int) ConvertFToS 70
- ReturnValue 71
+ 63: 17(float) Load 22(a)
+ 64: 17(float) FMul 62 63
+ 65: 6(int) ConvertFToS 64
+ Store 24(r) 65
+ 69: 18(ptr) AccessChain 23(b) 68
+ 70: 17(float) Load 69
+ 71: 17(float) FMul 66 70
+ 72: 6(int) ConvertFToS 71
+ ReturnValue 72
FunctionEnd
28(foo3(): 6(int) Function None 27
29: Label
- 75: 17(float) Load 74(u)
- 78: 77(bool) FOrdGreaterThan 75 76
- SelectionMerge 80 None
- BranchConditional 78 79 80
- 79: Label
+ 77: 17(float) Load 76(u)
+ 80: 79(bool) FOrdGreaterThan 77 78
+ SelectionMerge 82 None
+ BranchConditional 80 81 82
+ 81: Label
Kill
- 80: Label
- ReturnValue 84
+ 82: Label
+ ReturnValue 86
FunctionEnd
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 93
+// Id's are bound by 96
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Vertex 4 "main" 69 73 92
+ EntryPoint Vertex 4 "main" 72 76 95
Source GLSL 130
Name 4 "main"
Name 14 "xf(mf33;vf3;"
Name 26 "mxv(mf44;vf3;"
Name 24 "m4"
Name 25 "v"
- Name 63 "param"
- Name 69 "gl_Position"
- Name 71 "m4"
- Name 73 "v3"
- Name 74 "param"
- Name 76 "param"
- Name 80 "m3"
- Name 81 "param"
- Name 83 "param"
- Name 92 "gl_VertexID"
- Decorate 69(gl_Position) BuiltIn Position
- Decorate 92(gl_VertexID) BuiltIn VertexId
+ Name 65 "param"
+ Name 72 "gl_Position"
+ Name 74 "m4"
+ Name 76 "v3"
+ Name 77 "param"
+ Name 79 "param"
+ Name 83 "m3"
+ Name 84 "param"
+ Name 86 "param"
+ Name 95 "gl_VertexID"
+ Decorate 72(gl_Position) BuiltIn Position
+ Decorate 95(gl_VertexID) BuiltIn VertexId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
18: TypePointer Function 17
19: TypeFunction 8 18(ptr)
23: TypeFunction 7(fvec3) 18(ptr) 10(ptr)
- 32: TypeInt 32 1
- 33: 32(int) Constant 0
- 34: TypePointer Function 16(fvec4)
- 38: 32(int) Constant 1
- 42: 32(int) Constant 2
- 46: 6(float) Constant 1065353216
- 47: 6(float) Constant 0
- 68: TypePointer Output 16(fvec4)
- 69(gl_Position): 68(ptr) Variable Output
- 70: TypePointer UniformConstant 17
- 71(m4): 70(ptr) Variable UniformConstant
- 72: TypePointer Input 7(fvec3)
- 73(v3): 72(ptr) Variable Input
- 79: TypePointer UniformConstant 8
- 80(m3): 79(ptr) Variable UniformConstant
- 91: TypePointer Input 32(int)
- 92(gl_VertexID): 91(ptr) Variable Input
+ 33: TypeInt 32 1
+ 34: 33(int) Constant 0
+ 35: TypePointer Function 16(fvec4)
+ 39: 33(int) Constant 1
+ 43: 33(int) Constant 2
+ 47: 6(float) Constant 1065353216
+ 48: 6(float) Constant 0
+ 71: TypePointer Output 16(fvec4)
+ 72(gl_Position): 71(ptr) Variable Output
+ 73: TypePointer UniformConstant 17
+ 74(m4): 73(ptr) Variable UniformConstant
+ 75: TypePointer Input 7(fvec3)
+ 76(v3): 75(ptr) Variable Input
+ 82: TypePointer UniformConstant 8
+ 83(m3): 82(ptr) Variable UniformConstant
+ 94: TypePointer Input 33(int)
+ 95(gl_VertexID): 94(ptr) Variable Input
4(main): 2 Function None 3
5: Label
- 74(param): 18(ptr) Variable Function
- 76(param): 10(ptr) Variable Function
- 81(param): 9(ptr) Variable Function
- 83(param): 10(ptr) Variable Function
- 75: 17 Load 71(m4)
- Store 74(param) 75
- 77: 7(fvec3) Load 73(v3)
- Store 76(param) 77
- 78: 7(fvec3) FunctionCall 26(mxv(mf44;vf3;) 74(param) 76(param)
- 82: 8 Load 80(m3)
- Store 81(param) 82
- 84: 7(fvec3) Load 73(v3)
- Store 83(param) 84
- 85: 7(fvec3) FunctionCall 14(xf(mf33;vf3;) 81(param) 83(param)
- 86: 7(fvec3) FAdd 78 85
- 87: 6(float) CompositeExtract 86 0
- 88: 6(float) CompositeExtract 86 1
- 89: 6(float) CompositeExtract 86 2
- 90: 16(fvec4) CompositeConstruct 87 88 89 46
- Store 69(gl_Position) 90
+ 77(param): 18(ptr) Variable Function
+ 79(param): 10(ptr) Variable Function
+ 84(param): 9(ptr) Variable Function
+ 86(param): 10(ptr) Variable Function
+ 78: 17 Load 74(m4)
+ Store 77(param) 78
+ 80: 7(fvec3) Load 76(v3)
+ Store 79(param) 80
+ 81: 7(fvec3) FunctionCall 26(mxv(mf44;vf3;) 77(param) 79(param)
+ 85: 8 Load 83(m3)
+ Store 84(param) 85
+ 87: 7(fvec3) Load 76(v3)
+ Store 86(param) 87
+ 88: 7(fvec3) FunctionCall 14(xf(mf33;vf3;) 84(param) 86(param)
+ 89: 7(fvec3) FAdd 81 88
+ 90: 6(float) CompositeExtract 89 0
+ 91: 6(float) CompositeExtract 89 1
+ 92: 6(float) CompositeExtract 89 2
+ 93: 16(fvec4) CompositeConstruct 90 91 92 47
+ Store 72(gl_Position) 93
Return
FunctionEnd
14(xf(mf33;vf3;): 7(fvec3) Function None 11
21(Mat3(mf44;): 8 Function None 19
20(m): 18(ptr) FunctionParameter
22: Label
- 35: 34(ptr) AccessChain 20(m) 33
- 36: 16(fvec4) Load 35
- 37: 7(fvec3) VectorShuffle 36 36 0 1 2
- 39: 34(ptr) AccessChain 20(m) 38
- 40: 16(fvec4) Load 39
- 41: 7(fvec3) VectorShuffle 40 40 0 1 2
- 43: 34(ptr) AccessChain 20(m) 42
- 44: 16(fvec4) Load 43
- 45: 7(fvec3) VectorShuffle 44 44 0 1 2
- 48: 6(float) CompositeExtract 37 0
- 49: 6(float) CompositeExtract 37 1
- 50: 6(float) CompositeExtract 37 2
- 51: 6(float) CompositeExtract 41 0
- 52: 6(float) CompositeExtract 41 1
- 53: 6(float) CompositeExtract 41 2
- 54: 6(float) CompositeExtract 45 0
- 55: 6(float) CompositeExtract 45 1
- 56: 6(float) CompositeExtract 45 2
- 57: 7(fvec3) CompositeConstruct 48 49 50
- 58: 7(fvec3) CompositeConstruct 51 52 53
- 59: 7(fvec3) CompositeConstruct 54 55 56
- 60: 8 CompositeConstruct 57 58 59
- ReturnValue 60
+ 36: 35(ptr) AccessChain 20(m) 34
+ 37: 16(fvec4) Load 36
+ 38: 7(fvec3) VectorShuffle 37 37 0 1 2
+ 40: 35(ptr) AccessChain 20(m) 39
+ 41: 16(fvec4) Load 40
+ 42: 7(fvec3) VectorShuffle 41 41 0 1 2
+ 44: 35(ptr) AccessChain 20(m) 43
+ 45: 16(fvec4) Load 44
+ 46: 7(fvec3) VectorShuffle 45 45 0 1 2
+ 49: 6(float) CompositeExtract 38 0
+ 50: 6(float) CompositeExtract 38 1
+ 51: 6(float) CompositeExtract 38 2
+ 52: 6(float) CompositeExtract 42 0
+ 53: 6(float) CompositeExtract 42 1
+ 54: 6(float) CompositeExtract 42 2
+ 55: 6(float) CompositeExtract 46 0
+ 56: 6(float) CompositeExtract 46 1
+ 57: 6(float) CompositeExtract 46 2
+ 58: 7(fvec3) CompositeConstruct 49 50 51
+ 59: 7(fvec3) CompositeConstruct 52 53 54
+ 60: 7(fvec3) CompositeConstruct 55 56 57
+ 61: 8 CompositeConstruct 58 59 60
+ ReturnValue 61
FunctionEnd
26(mxv(mf44;vf3;): 7(fvec3) Function None 23
24(m4): 18(ptr) FunctionParameter
25(v): 10(ptr) FunctionParameter
27: Label
- 63(param): 18(ptr) Variable Function
- 62: 7(fvec3) Load 25(v)
- 64: 17 Load 24(m4)
- Store 63(param) 64
- 65: 8 FunctionCall 21(Mat3(mf44;) 63(param)
- 66: 7(fvec3) VectorTimesMatrix 62 65
- ReturnValue 66
+ 65(param): 18(ptr) Variable Function
+ 64: 7(fvec3) Load 25(v)
+ 66: 17 Load 24(m4)
+ Store 65(param) 66
+ 67: 8 FunctionCall 21(Mat3(mf44;) 65(param)
+ 68: 7(fvec3) VectorTimesMatrix 64 67
+ ReturnValue 68
FunctionEnd
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 112
+// Id's are bound by 114
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 23 57 59 71
+ EntryPoint Fragment 4 "main" 23 59 61 73
ExecutionMode 4 OriginLowerLeft
Source ESSL 300
Name 4 "main"
Name 19 "boolfun(vb2;"
Name 18 "bv2"
Name 23 "highfin"
- Name 36 "sum"
- Name 38 "uniform_medium"
- Name 40 "uniform_high"
- Name 46 "uniform_low"
- Name 51 "arg1"
- Name 53 "arg2"
- Name 55 "d"
- Name 57 "lowfin"
- Name 59 "mediumfin"
- Name 63 "global_highp"
- Name 67 "local_highp"
- Name 71 "mediumfout"
- Name 102 "ub2"
- Name 103 "param"
- Decorate 36(sum) RelaxedPrecision
- Decorate 38(uniform_medium) RelaxedPrecision
- Decorate 46(uniform_low) RelaxedPrecision
- Decorate 51(arg1) RelaxedPrecision
- Decorate 53(arg2) RelaxedPrecision
- Decorate 55(d) RelaxedPrecision
- Decorate 57(lowfin) RelaxedPrecision
- Decorate 59(mediumfin) RelaxedPrecision
- Decorate 71(mediumfout) RelaxedPrecision
+ Name 38 "sum"
+ Name 40 "uniform_medium"
+ Name 42 "uniform_high"
+ Name 48 "uniform_low"
+ Name 53 "arg1"
+ Name 55 "arg2"
+ Name 57 "d"
+ Name 59 "lowfin"
+ Name 61 "mediumfin"
+ Name 65 "global_highp"
+ Name 69 "local_highp"
+ Name 73 "mediumfout"
+ Name 104 "ub2"
+ Name 105 "param"
+ Decorate 38(sum) RelaxedPrecision
+ Decorate 40(uniform_medium) RelaxedPrecision
+ Decorate 48(uniform_low) RelaxedPrecision
+ Decorate 53(arg1) RelaxedPrecision
+ Decorate 55(arg2) RelaxedPrecision
+ Decorate 57(d) RelaxedPrecision
+ Decorate 59(lowfin) RelaxedPrecision
+ Decorate 61(mediumfin) RelaxedPrecision
+ Decorate 73(mediumfout) RelaxedPrecision
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
21: TypeVector 6(float) 4
22: TypePointer Input 21(fvec4)
23(highfin): 22(ptr) Variable Input
- 28: 14(bool) ConstantFalse
- 29: 14(bool) ConstantTrue
- 30: 15(bvec2) ConstantComposite 28 29
- 34: TypeInt 32 1
- 35: TypePointer Function 34(int)
- 37: TypePointer UniformConstant 34(int)
-38(uniform_medium): 37(ptr) Variable UniformConstant
-40(uniform_high): 37(ptr) Variable UniformConstant
- 46(uniform_low): 37(ptr) Variable UniformConstant
- 50: TypePointer Function 6(float)
- 52: 6(float) Constant 1078774989
- 54: 6(float) Constant 1232730691
- 56: TypePointer Input 6(float)
- 57(lowfin): 56(ptr) Variable Input
- 59(mediumfin): 56(ptr) Variable Input
- 62: TypePointer Private 6(float)
-63(global_highp): 62(ptr) Variable Private
- 66: TypePointer Function 21(fvec4)
- 70: TypePointer Output 21(fvec4)
- 71(mediumfout): 70(ptr) Variable Output
- 80: 34(int) Constant 4
- 82: TypeVector 34(int) 2
- 90: TypeInt 32 0
- 91: 90(int) Constant 0
- 101: TypePointer UniformConstant 15(bvec2)
- 102(ub2): 101(ptr) Variable UniformConstant
- 109: 6(float) Constant 1065353216
+ 29: 14(bool) ConstantFalse
+ 30: 14(bool) ConstantTrue
+ 31: 15(bvec2) ConstantComposite 29 30
+ 36: TypeInt 32 1
+ 37: TypePointer Function 36(int)
+ 39: TypePointer UniformConstant 36(int)
+40(uniform_medium): 39(ptr) Variable UniformConstant
+42(uniform_high): 39(ptr) Variable UniformConstant
+ 48(uniform_low): 39(ptr) Variable UniformConstant
+ 52: TypePointer Function 6(float)
+ 54: 6(float) Constant 1078774989
+ 56: 6(float) Constant 1232730691
+ 58: TypePointer Input 6(float)
+ 59(lowfin): 58(ptr) Variable Input
+ 61(mediumfin): 58(ptr) Variable Input
+ 64: TypePointer Private 6(float)
+65(global_highp): 64(ptr) Variable Private
+ 68: TypePointer Function 21(fvec4)
+ 72: TypePointer Output 21(fvec4)
+ 73(mediumfout): 72(ptr) Variable Output
+ 82: 36(int) Constant 4
+ 84: TypeVector 36(int) 2
+ 92: TypeInt 32 0
+ 93: 92(int) Constant 0
+ 103: TypePointer UniformConstant 15(bvec2)
+ 104(ub2): 103(ptr) Variable UniformConstant
+ 111: 6(float) Constant 1065353216
4(main): 2 Function None 3
5: Label
- 36(sum): 35(ptr) Variable Function
- 51(arg1): 50(ptr) Variable Function
- 53(arg2): 50(ptr) Variable Function
- 55(d): 50(ptr) Variable Function
- 67(local_highp): 66(ptr) Variable Function
- 103(param): 16(ptr) Variable Function
- 39: 34(int) Load 38(uniform_medium)
- 41: 34(int) Load 40(uniform_high)
- 42: 34(int) IAdd 39 41
- Store 36(sum) 42
- 43: 34(int) Load 40(uniform_high)
- 44: 34(int) Load 36(sum)
- 45: 34(int) IAdd 44 43
- Store 36(sum) 45
- 47: 34(int) Load 46(uniform_low)
- 48: 34(int) Load 36(sum)
- 49: 34(int) IAdd 48 47
- Store 36(sum) 49
- Store 51(arg1) 52
- Store 53(arg2) 54
- 58: 6(float) Load 57(lowfin)
- 60: 6(float) Load 59(mediumfin)
- 61: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 58 60
- Store 55(d) 61
- 64: 21(fvec4) Load 23(highfin)
- 65: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 64
- Store 63(global_highp) 65
- 68: 6(float) Load 63(global_highp)
- 69: 21(fvec4) CompositeConstruct 68 68 68 68
- Store 67(local_highp) 69
- 72: 6(float) Load 55(d)
- 73: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 72
- 74: 21(fvec4) CompositeConstruct 73 73 73 73
- 75: 6(float) Load 53(arg2)
+ 38(sum): 37(ptr) Variable Function
+ 53(arg1): 52(ptr) Variable Function
+ 55(arg2): 52(ptr) Variable Function
+ 57(d): 52(ptr) Variable Function
+ 69(local_highp): 68(ptr) Variable Function
+ 105(param): 16(ptr) Variable Function
+ 41: 36(int) Load 40(uniform_medium)
+ 43: 36(int) Load 42(uniform_high)
+ 44: 36(int) IAdd 41 43
+ Store 38(sum) 44
+ 45: 36(int) Load 42(uniform_high)
+ 46: 36(int) Load 38(sum)
+ 47: 36(int) IAdd 46 45
+ Store 38(sum) 47
+ 49: 36(int) Load 48(uniform_low)
+ 50: 36(int) Load 38(sum)
+ 51: 36(int) IAdd 50 49
+ Store 38(sum) 51
+ Store 53(arg1) 54
+ Store 55(arg2) 56
+ 60: 6(float) Load 59(lowfin)
+ 62: 6(float) Load 61(mediumfin)
+ 63: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 60 62
+ Store 57(d) 63
+ 66: 21(fvec4) Load 23(highfin)
+ 67: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 66
+ Store 65(global_highp) 67
+ 70: 6(float) Load 65(global_highp)
+ 71: 21(fvec4) CompositeConstruct 70 70 70 70
+ Store 69(local_highp) 71
+ 74: 6(float) Load 57(d)
+ 75: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 74
76: 21(fvec4) CompositeConstruct 75 75 75 75
- 77: 21(fvec4) FAdd 74 76
- 78: 21(fvec4) Load 67(local_highp)
- 79: 21(fvec4) FAdd 77 78
- Store 71(mediumfout) 79
- 81: 34(int) Load 46(uniform_low)
- 83: 82(ivec2) CompositeConstruct 81 81
- 84: 34(int) Load 40(uniform_high)
- 85: 82(ivec2) CompositeConstruct 84 84
- 86: 82(ivec2) IMul 83 85
- 87: 34(int) Load 40(uniform_high)
- 88: 82(ivec2) CompositeConstruct 87 87
- 89: 82(ivec2) IAdd 86 88
- 92: 34(int) CompositeExtract 89 0
- 93: 34(int) IAdd 80 92
- 94: 34(int) Load 36(sum)
- 95: 34(int) IAdd 94 93
- Store 36(sum) 95
- 96: 34(int) Load 36(sum)
- 97: 6(float) ConvertSToF 96
- 98: 21(fvec4) CompositeConstruct 97 97 97 97
- 99: 21(fvec4) Load 71(mediumfout)
- 100: 21(fvec4) FAdd 99 98
- Store 71(mediumfout) 100
- 104: 15(bvec2) Load 102(ub2)
- Store 103(param) 104
- 105: 14(bool) FunctionCall 19(boolfun(vb2;) 103(param)
- SelectionMerge 107 None
- BranchConditional 105 106 107
- 106: Label
- 108: 21(fvec4) Load 71(mediumfout)
- 110: 21(fvec4) CompositeConstruct 109 109 109 109
- 111: 21(fvec4) FAdd 108 110
- Store 71(mediumfout) 111
- Branch 107
- 107: Label
+ 77: 6(float) Load 55(arg2)
+ 78: 21(fvec4) CompositeConstruct 77 77 77 77
+ 79: 21(fvec4) FAdd 76 78
+ 80: 21(fvec4) Load 69(local_highp)
+ 81: 21(fvec4) FAdd 79 80
+ Store 73(mediumfout) 81
+ 83: 36(int) Load 48(uniform_low)
+ 85: 84(ivec2) CompositeConstruct 83 83
+ 86: 36(int) Load 42(uniform_high)
+ 87: 84(ivec2) CompositeConstruct 86 86
+ 88: 84(ivec2) IMul 85 87
+ 89: 36(int) Load 42(uniform_high)
+ 90: 84(ivec2) CompositeConstruct 89 89
+ 91: 84(ivec2) IAdd 88 90
+ 94: 36(int) CompositeExtract 91 0
+ 95: 36(int) IAdd 82 94
+ 96: 36(int) Load 38(sum)
+ 97: 36(int) IAdd 96 95
+ Store 38(sum) 97
+ 98: 36(int) Load 38(sum)
+ 99: 6(float) ConvertSToF 98
+ 100: 21(fvec4) CompositeConstruct 99 99 99 99
+ 101: 21(fvec4) Load 73(mediumfout)
+ 102: 21(fvec4) FAdd 101 100
+ Store 73(mediumfout) 102
+ 106: 15(bvec2) Load 104(ub2)
+ Store 105(param) 106
+ 107: 14(bool) FunctionCall 19(boolfun(vb2;) 105(param)
+ SelectionMerge 109 None
+ BranchConditional 107 108 109
+ 108: Label
+ 110: 21(fvec4) Load 73(mediumfout)
+ 112: 21(fvec4) CompositeConstruct 111 111 111 111
+ 113: 21(fvec4) FAdd 110 112
+ Store 73(mediumfout) 113
+ Branch 109
+ 109: Label
Return
FunctionEnd
12(foo(vf3;): 9(fvec2) Function None 10
19(boolfun(vb2;): 14(bool) Function None 17
18(bv2): 16(ptr) FunctionParameter
20: Label
- 27: 15(bvec2) Load 18(bv2)
- 31: 15(bvec2) LogicalEqual 27 30
- 32: 14(bool) All 31
- ReturnValue 32
+ 28: 15(bvec2) Load 18(bv2)
+ 32: 15(bvec2) LogicalEqual 28 31
+ 33: 14(bool) All 32
+ ReturnValue 33
FunctionEnd
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 143
+// Id's are bound by 144
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 12 23
+ EntryPoint Fragment 4 "main" 12 24
ExecutionMode 4 OriginLowerLeft
Source GLSL 400
Name 4 "main"
Name 8 "foo("
Name 12 "of1"
- Name 23 "of4"
- Name 26 "ub"
- Name 30 "ui"
- Name 40 "uba"
- Name 109 "uf"
- Name 136 "uiv4"
- Name 138 "uv4"
- Name 141 "ub41"
- Name 142 "ub42"
+ Name 24 "of4"
+ Name 27 "ub"
+ Name 31 "ui"
+ Name 41 "uba"
+ Name 110 "uf"
+ Name 137 "uiv4"
+ Name 139 "uv4"
+ Name 142 "ub41"
+ Name 143 "ub42"
2: TypeVoid
3: TypeFunction 2
6: TypeBool
12(of1): 11(ptr) Variable Output
14: 10(float) Constant 1065353216
17: 10(float) Constant 1092616192
- 20: 10(float) Constant 0
- 21: TypeVector 10(float) 4
- 22: TypePointer Output 21(fvec4)
- 23(of4): 22(ptr) Variable Output
- 24: 21(fvec4) ConstantComposite 20 20 20 20
- 25: TypePointer UniformConstant 6(bool)
- 26(ub): 25(ptr) Variable UniformConstant
- 28: TypeInt 32 1
- 29: TypePointer UniformConstant 28(int)
- 30(ui): 29(ptr) Variable UniformConstant
- 32: 28(int) Constant 2
- 40(uba): 25(ptr) Variable UniformConstant
- 108: TypePointer UniformConstant 10(float)
- 109(uf): 108(ptr) Variable UniformConstant
- 112: 10(float) Constant 1082130432
- 134: TypeVector 28(int) 4
- 135: TypePointer UniformConstant 134(ivec4)
- 136(uiv4): 135(ptr) Variable UniformConstant
- 137: TypePointer UniformConstant 21(fvec4)
- 138(uv4): 137(ptr) Variable UniformConstant
- 139: TypeVector 6(bool) 4
- 140: TypePointer UniformConstant 139(bvec4)
- 141(ub41): 140(ptr) Variable UniformConstant
- 142(ub42): 140(ptr) Variable UniformConstant
+ 21: 10(float) Constant 0
+ 22: TypeVector 10(float) 4
+ 23: TypePointer Output 22(fvec4)
+ 24(of4): 23(ptr) Variable Output
+ 25: 22(fvec4) ConstantComposite 21 21 21 21
+ 26: TypePointer UniformConstant 6(bool)
+ 27(ub): 26(ptr) Variable UniformConstant
+ 29: TypeInt 32 1
+ 30: TypePointer UniformConstant 29(int)
+ 31(ui): 30(ptr) Variable UniformConstant
+ 33: 29(int) Constant 2
+ 41(uba): 26(ptr) Variable UniformConstant
+ 109: TypePointer UniformConstant 10(float)
+ 110(uf): 109(ptr) Variable UniformConstant
+ 113: 10(float) Constant 1082130432
+ 135: TypeVector 29(int) 4
+ 136: TypePointer UniformConstant 135(ivec4)
+ 137(uiv4): 136(ptr) Variable UniformConstant
+ 138: TypePointer UniformConstant 22(fvec4)
+ 139(uv4): 138(ptr) Variable UniformConstant
+ 140: TypeVector 6(bool) 4
+ 141: TypePointer UniformConstant 140(bvec4)
+ 142(ub41): 141(ptr) Variable UniformConstant
+ 143(ub42): 141(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
- Store 12(of1) 20
- Store 23(of4) 24
- 27: 6(bool) Load 26(ub)
- 31: 28(int) Load 30(ui)
- 33: 6(bool) SGreaterThan 31 32
- 34: 6(bool) LogicalOr 27 33
- SelectionMerge 36 None
- BranchConditional 34 35 36
- 35: Label
- 37: 10(float) Load 12(of1)
- 38: 10(float) FAdd 37 14
- Store 12(of1) 38
- Branch 36
- 36: Label
- 39: 6(bool) Load 26(ub)
- 41: 6(bool) Load 40(uba)
- 42: 6(bool) LogicalNot 41
- 43: 6(bool) LogicalAnd 39 42
- SelectionMerge 45 None
- BranchConditional 43 44 45
- 44: Label
- 46: 10(float) Load 12(of1)
- 47: 10(float) FAdd 46 14
- Store 12(of1) 47
- Branch 45
- 45: Label
- 48: 6(bool) Load 26(ub)
- 49: 6(bool) LogicalNot 48
- SelectionMerge 51 None
- BranchConditional 49 50 51
- 50: Label
- 52: 6(bool) FunctionCall 8(foo()
- Branch 51
- 51: Label
- 53: 6(bool) Phi 48 45 52 50
- SelectionMerge 55 None
- BranchConditional 53 54 55
- 54: Label
- 56: 10(float) Load 12(of1)
- 57: 10(float) FAdd 56 14
- Store 12(of1) 57
- Branch 55
- 55: Label
- 58: 6(bool) Load 26(ub)
- SelectionMerge 60 None
- BranchConditional 58 59 60
- 59: Label
- 61: 6(bool) FunctionCall 8(foo()
- Branch 60
- 60: Label
- 62: 6(bool) Phi 58 55 61 59
- SelectionMerge 64 None
- BranchConditional 62 63 64
- 63: Label
- 65: 10(float) Load 12(of1)
- 66: 10(float) FAdd 65 14
- Store 12(of1) 66
- Branch 64
- 64: Label
- 67: 6(bool) FunctionCall 8(foo()
- 68: 6(bool) Load 26(ub)
- 69: 6(bool) LogicalOr 67 68
- SelectionMerge 71 None
- BranchConditional 69 70 71
- 70: Label
- 72: 10(float) Load 12(of1)
- 73: 10(float) FAdd 72 14
- Store 12(of1) 73
- Branch 71
- 71: Label
- 74: 6(bool) FunctionCall 8(foo()
- 75: 6(bool) Load 26(ub)
- 76: 6(bool) LogicalAnd 74 75
- SelectionMerge 78 None
- BranchConditional 76 77 78
- 77: Label
- 79: 10(float) Load 12(of1)
- 80: 10(float) FAdd 79 14
- Store 12(of1) 80
- Branch 78
- 78: Label
- 81: 6(bool) Load 26(ub)
- 82: 6(bool) LogicalNot 81
- SelectionMerge 84 None
- BranchConditional 82 83 84
- 83: Label
- 85: 10(float) Load 12(of1)
- 86: 10(float) FAdd 85 14
- Store 12(of1) 86
- 87: 6(bool) FOrdGreaterThan 86 14
- Branch 84
- 84: Label
- 88: 6(bool) Phi 81 78 87 83
- SelectionMerge 90 None
- BranchConditional 88 89 90
- 89: Label
- 91: 21(fvec4) Load 23(of4)
- 92: 21(fvec4) CompositeConstruct 14 14 14 14
- 93: 21(fvec4) FAdd 91 92
- Store 23(of4) 93
- Branch 90
- 90: Label
- 94: 10(float) Load 12(of1)
- 95: 10(float) FAdd 94 14
- Store 12(of1) 95
- 96: 6(bool) FOrdGreaterThan 95 14
- 97: 6(bool) Load 26(ub)
- 98: 6(bool) LogicalOr 96 97
- SelectionMerge 100 None
- BranchConditional 98 99 100
- 99: Label
- 101: 21(fvec4) Load 23(of4)
- 102: 21(fvec4) CompositeConstruct 14 14 14 14
- 103: 21(fvec4) FAdd 101 102
- Store 23(of4) 103
- Branch 100
- 100: Label
- 104: 6(bool) Load 26(ub)
- 105: 6(bool) LogicalNot 104
- SelectionMerge 107 None
- BranchConditional 105 106 107
- 106: Label
- 110: 10(float) Load 109(uf)
- 111: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 110
- 113: 10(float) FMul 111 112
- 114: 10(float) Load 12(of1)
- 115: 6(bool) FOrdGreaterThan 113 114
- Branch 107
- 107: Label
- 116: 6(bool) Phi 104 100 115 106
- SelectionMerge 118 None
- BranchConditional 116 117 118
- 117: Label
- 119: 10(float) Load 12(of1)
- 120: 10(float) FAdd 119 14
- Store 12(of1) 120
- Branch 118
- 118: Label
- 121: 6(bool) Load 26(ub)
- SelectionMerge 123 None
- BranchConditional 121 122 123
- 122: Label
- 124: 10(float) Load 109(uf)
- 125: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 124
- 126: 10(float) FMul 125 112
- 127: 10(float) Load 12(of1)
- 128: 6(bool) FOrdGreaterThan 126 127
- Branch 123
- 123: Label
- 129: 6(bool) Phi 121 118 128 122
- SelectionMerge 131 None
- BranchConditional 129 130 131
- 130: Label
- 132: 10(float) Load 12(of1)
- 133: 10(float) FAdd 132 14
- Store 12(of1) 133
- Branch 131
- 131: Label
+ Store 12(of1) 21
+ Store 24(of4) 25
+ 28: 6(bool) Load 27(ub)
+ 32: 29(int) Load 31(ui)
+ 34: 6(bool) SGreaterThan 32 33
+ 35: 6(bool) LogicalOr 28 34
+ SelectionMerge 37 None
+ BranchConditional 35 36 37
+ 36: Label
+ 38: 10(float) Load 12(of1)
+ 39: 10(float) FAdd 38 14
+ Store 12(of1) 39
+ Branch 37
+ 37: Label
+ 40: 6(bool) Load 27(ub)
+ 42: 6(bool) Load 41(uba)
+ 43: 6(bool) LogicalNot 42
+ 44: 6(bool) LogicalAnd 40 43
+ SelectionMerge 46 None
+ BranchConditional 44 45 46
+ 45: Label
+ 47: 10(float) Load 12(of1)
+ 48: 10(float) FAdd 47 14
+ Store 12(of1) 48
+ Branch 46
+ 46: Label
+ 49: 6(bool) Load 27(ub)
+ 50: 6(bool) LogicalNot 49
+ SelectionMerge 52 None
+ BranchConditional 50 51 52
+ 51: Label
+ 53: 6(bool) FunctionCall 8(foo()
+ Branch 52
+ 52: Label
+ 54: 6(bool) Phi 49 46 53 51
+ SelectionMerge 56 None
+ BranchConditional 54 55 56
+ 55: Label
+ 57: 10(float) Load 12(of1)
+ 58: 10(float) FAdd 57 14
+ Store 12(of1) 58
+ Branch 56
+ 56: Label
+ 59: 6(bool) Load 27(ub)
+ SelectionMerge 61 None
+ BranchConditional 59 60 61
+ 60: Label
+ 62: 6(bool) FunctionCall 8(foo()
+ Branch 61
+ 61: Label
+ 63: 6(bool) Phi 59 56 62 60
+ SelectionMerge 65 None
+ BranchConditional 63 64 65
+ 64: Label
+ 66: 10(float) Load 12(of1)
+ 67: 10(float) FAdd 66 14
+ Store 12(of1) 67
+ Branch 65
+ 65: Label
+ 68: 6(bool) FunctionCall 8(foo()
+ 69: 6(bool) Load 27(ub)
+ 70: 6(bool) LogicalOr 68 69
+ SelectionMerge 72 None
+ BranchConditional 70 71 72
+ 71: Label
+ 73: 10(float) Load 12(of1)
+ 74: 10(float) FAdd 73 14
+ Store 12(of1) 74
+ Branch 72
+ 72: Label
+ 75: 6(bool) FunctionCall 8(foo()
+ 76: 6(bool) Load 27(ub)
+ 77: 6(bool) LogicalAnd 75 76
+ SelectionMerge 79 None
+ BranchConditional 77 78 79
+ 78: Label
+ 80: 10(float) Load 12(of1)
+ 81: 10(float) FAdd 80 14
+ Store 12(of1) 81
+ Branch 79
+ 79: Label
+ 82: 6(bool) Load 27(ub)
+ 83: 6(bool) LogicalNot 82
+ SelectionMerge 85 None
+ BranchConditional 83 84 85
+ 84: Label
+ 86: 10(float) Load 12(of1)
+ 87: 10(float) FAdd 86 14
+ Store 12(of1) 87
+ 88: 6(bool) FOrdGreaterThan 87 14
+ Branch 85
+ 85: Label
+ 89: 6(bool) Phi 82 79 88 84
+ SelectionMerge 91 None
+ BranchConditional 89 90 91
+ 90: Label
+ 92: 22(fvec4) Load 24(of4)
+ 93: 22(fvec4) CompositeConstruct 14 14 14 14
+ 94: 22(fvec4) FAdd 92 93
+ Store 24(of4) 94
+ Branch 91
+ 91: Label
+ 95: 10(float) Load 12(of1)
+ 96: 10(float) FAdd 95 14
+ Store 12(of1) 96
+ 97: 6(bool) FOrdGreaterThan 96 14
+ 98: 6(bool) Load 27(ub)
+ 99: 6(bool) LogicalOr 97 98
+ SelectionMerge 101 None
+ BranchConditional 99 100 101
+ 100: Label
+ 102: 22(fvec4) Load 24(of4)
+ 103: 22(fvec4) CompositeConstruct 14 14 14 14
+ 104: 22(fvec4) FAdd 102 103
+ Store 24(of4) 104
+ Branch 101
+ 101: Label
+ 105: 6(bool) Load 27(ub)
+ 106: 6(bool) LogicalNot 105
+ SelectionMerge 108 None
+ BranchConditional 106 107 108
+ 107: Label
+ 111: 10(float) Load 110(uf)
+ 112: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 111
+ 114: 10(float) FMul 112 113
+ 115: 10(float) Load 12(of1)
+ 116: 6(bool) FOrdGreaterThan 114 115
+ Branch 108
+ 108: Label
+ 117: 6(bool) Phi 105 101 116 107
+ SelectionMerge 119 None
+ BranchConditional 117 118 119
+ 118: Label
+ 120: 10(float) Load 12(of1)
+ 121: 10(float) FAdd 120 14
+ Store 12(of1) 121
+ Branch 119
+ 119: Label
+ 122: 6(bool) Load 27(ub)
+ SelectionMerge 124 None
+ BranchConditional 122 123 124
+ 123: Label
+ 125: 10(float) Load 110(uf)
+ 126: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 125
+ 127: 10(float) FMul 126 113
+ 128: 10(float) Load 12(of1)
+ 129: 6(bool) FOrdGreaterThan 127 128
+ Branch 124
+ 124: Label
+ 130: 6(bool) Phi 122 119 129 123
+ SelectionMerge 132 None
+ BranchConditional 130 131 132
+ 131: Label
+ 133: 10(float) Load 12(of1)
+ 134: 10(float) FAdd 133 14
+ Store 12(of1) 134
+ Branch 132
+ 132: Label
Return
FunctionEnd
8(foo(): 6(bool) Function None 7
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 22
+// Id's are bound by 23
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 12 16
+ EntryPoint Fragment 4 "main" 12 17
ExecutionMode 4 OriginLowerLeft
Source GLSL 150
Name 4 "main"
Name 9 "foo("
Name 12 "BaseColor"
- Name 16 "gl_FragColor"
- Name 19 "bigColor"
- Name 21 "d"
+ Name 17 "gl_FragColor"
+ Name 20 "bigColor"
+ Name 22 "d"
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
8: TypeFunction 7(fvec4)
11: TypePointer Input 7(fvec4)
12(BaseColor): 11(ptr) Variable Input
- 15: TypePointer Output 7(fvec4)
-16(gl_FragColor): 15(ptr) Variable Output
- 18: TypePointer UniformConstant 7(fvec4)
- 19(bigColor): 18(ptr) Variable UniformConstant
- 20: TypePointer UniformConstant 6(float)
- 21(d): 20(ptr) Variable UniformConstant
+ 16: TypePointer Output 7(fvec4)
+17(gl_FragColor): 16(ptr) Variable Output
+ 19: TypePointer UniformConstant 7(fvec4)
+ 20(bigColor): 19(ptr) Variable UniformConstant
+ 21: TypePointer UniformConstant 6(float)
+ 22(d): 21(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
- 17: 7(fvec4) FunctionCall 9(foo()
- Store 16(gl_FragColor) 17
+ 18: 7(fvec4) FunctionCall 9(foo()
+ Store 17(gl_FragColor) 18
Return
FunctionEnd
9(foo(): 7(fvec4) Function None 8
// Module Version 10000
// Generated by (magic number): 80001
-// Id's are bound by 265
+// Id's are bound by 267
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 73 223
+ EntryPoint Fragment 4 "main" 75 225
ExecutionMode 4 OriginLowerLeft
Source ESSL 310
Name 4 "main"
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 60 "local"
+ Name 62 "c"
+ Name 73 "f"
+ Name 75 "x"
+ Name 129 "d"
+ Name 155 "i"
+ Name 174 "j"
+ Name 225 "color"
+ Name 231 "v"
Name 232 "param"
Name 234 "param"
- Name 242 "param"
+ Name 236 "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
+ Name 248 "param"
+ Decorate 60(local) RelaxedPrecision
+ Decorate 62(c) RelaxedPrecision
+ Decorate 73(f) RelaxedPrecision
+ Decorate 75(x) RelaxedPrecision
+ Decorate 129(d) RelaxedPrecision
+ Decorate 155(i) RelaxedPrecision
+ Decorate 174(j) RelaxedPrecision
+ Decorate 225(color) RelaxedPrecision
+ Decorate 231(v) RelaxedPrecision
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
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
+ 48: 6(float) Constant 1065353216
+ 49: 7(fvec4) ConstantComposite 48 48 48 48
+ 61: TypePointer UniformConstant 9(int)
+ 62(c): 61(ptr) Variable UniformConstant
+ 65: 9(int) Constant 1
+ 72: TypePointer Function 6(float)
+ 74: TypePointer Input 6(float)
+ 75(x): 74(ptr) Variable Input
+ 129(d): 61(ptr) Variable UniformConstant
+ 156: 9(int) Constant 0
+ 162: 9(int) Constant 10
+ 163: TypeBool
+ 175: 9(int) Constant 20
+ 181: 9(int) Constant 30
+ 186: 6(float) Constant 1120429670
+ 206: 6(float) Constant 1079739679
+ 224: TypePointer Output 6(float)
+ 225(color): 224(ptr) Variable Output
+ 230: TypePointer UniformConstant 7(fvec4)
+ 231(v): 230(ptr) Variable UniformConstant
+ 239: TypeInt 32 0
+ 240: 239(int) Constant 1
+ 251: 239(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
+ 60(local): 10(ptr) Variable Function
+ 73(f): 72(ptr) Variable Function
+ 155(i): 10(ptr) Variable Function
+ 174(j): 10(ptr) Variable Function
232(param): 8(ptr) Variable Function
- 234(param): 10(ptr) Variable Function
- 242(param): 8(ptr) Variable Function
+ 234(param): 8(ptr) Variable Function
+ 236(param): 10(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
+ 246(param): 8(ptr) Variable Function
+ 248(param): 10(ptr) Variable Function
+ 63: 9(int) Load 62(c)
+ Store 60(local) 63
+ 64: 9(int) Load 60(local)
+ 66: 9(int) IAdd 64 65
+ Store 60(local) 66
+ 67: 9(int) Load 62(c)
+ SelectionMerge 71 None
+ Switch 67 70
+ case 1: 68
+ case 2: 69
+ 70: Label
+ 82: 6(float) Load 75(x)
+ 83: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 82
+ Store 73(f) 83
+ Branch 71
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
- 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
- 69: Label
- 83: 9(int) Load 60(c)
- SelectionMerge 87 None
- Switch 83 86
- case 1: 84
- case 2: 85
+ 76: 6(float) Load 75(x)
+ 77: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 76
+ Store 73(f) 77
+ Branch 71
+ 69: Label
+ 79: 6(float) Load 75(x)
+ 80: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 79
+ Store 73(f) 80
+ Branch 71
+ 71: Label
+ 85: 9(int) Load 62(c)
+ SelectionMerge 89 None
+ Switch 85 88
+ case 1: 86
+ case 2: 87
+ 88: Label
+ 99: 6(float) Load 75(x)
+ 100: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 99
+ 101: 6(float) Load 73(f)
+ 102: 6(float) FAdd 101 100
+ Store 73(f) 102
+ Branch 89
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
+ 90: 6(float) Load 75(x)
+ 91: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 90
+ 92: 6(float) Load 73(f)
+ 93: 6(float) FAdd 92 91
+ Store 73(f) 93
Branch 87
- 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
- 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
+ 87: Label
+ 94: 6(float) Load 75(x)
+ 95: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 94
+ 96: 6(float) Load 73(f)
+ 97: 6(float) FAdd 96 95
+ Store 73(f) 97
+ Branch 89
+ 89: Label
+ 104: 9(int) Load 62(c)
+ SelectionMerge 107 None
+ Switch 104 107
+ case 1: 105
+ case 2: 106
+ 105: Label
+ 108: 6(float) Load 75(x)
+ 109: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 108
+ 110: 6(float) Load 73(f)
+ 111: 6(float) FAdd 110 109
+ Store 73(f) 111
+ Branch 107
+ 106: Label
+ 113: 6(float) Load 75(x)
+ 114: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 113
+ 115: 6(float) Load 73(f)
+ 116: 6(float) FAdd 115 114
+ Store 73(f) 116
+ Branch 107
+ 107: Label
+ 119: 9(int) Load 62(c)
+ SelectionMerge 123 None
+ Switch 119 122
+ case 1: 120
+ case 2: 121
+ 122: Label
+ 150: 6(float) Load 75(x)
+ 151: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 150
+ 152: 6(float) Load 73(f)
+ 153: 6(float) FAdd 152 151
+ Store 73(f) 153
+ Branch 123
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
- 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)
+ 124: 6(float) Load 75(x)
+ 125: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 124
+ 126: 6(float) Load 73(f)
+ 127: 6(float) FAdd 126 125
+ Store 73(f) 127
+ Branch 123
+ 121: Label
+ 130: 9(int) Load 129(d)
+ SelectionMerge 133 None
+ Switch 130 133
+ case 1: 131
+ case 2: 132
+ 131: Label
+ 134: 6(float) Load 75(x)
+ 135: 6(float) Load 75(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
- 121: Label
- Store 153(i) 154
- Branch 155
- 155: Label
- 159: 9(int) Load 153(i)
- 162: 161(bool) SLessThan 159 160
- LoopMerge 157 158 None
- BranchConditional 162 156 157
- 156: Label
- 163: 9(int) Load 60(c)
- SelectionMerge 167 None
- Switch 163 166
- case 1: 164
- case 2: 165
+ 137: 6(float) Load 75(x)
+ 138: 6(float) FMul 136 137
+ 139: 6(float) Load 73(f)
+ 140: 6(float) FAdd 139 138
+ Store 73(f) 140
+ Branch 133
+ 132: Label
+ 142: 6(float) Load 75(x)
+ 143: 6(float) Load 75(x)
+ 144: 6(float) FMul 142 143
+ 145: 6(float) Load 73(f)
+ 146: 6(float) FAdd 145 144
+ Store 73(f) 146
+ Branch 133
+ 133: Label
+ Branch 123
+ 123: Label
+ Store 155(i) 156
+ Branch 157
+ 157: Label
+ 161: 9(int) Load 155(i)
+ 164: 163(bool) SLessThan 161 162
+ LoopMerge 159 160 None
+ BranchConditional 164 158 159
+ 158: Label
+ 165: 9(int) Load 62(c)
+ SelectionMerge 169 None
+ Switch 165 168
+ case 1: 166
+ case 2: 167
+ 168: Label
+ 200: 6(float) Load 75(x)
+ 201: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 200
+ 202: 6(float) Load 73(f)
+ 203: 6(float) FAdd 202 201
+ Store 73(f) 203
+ Branch 169
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
- 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 174
- 174: Label
- 178: 9(int) Load 172(j)
- 180: 161(bool) SLessThan 178 179
- LoopMerge 176 177 None
- BranchConditional 180 175 176
- 175: 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
- 186: Label
- Branch 176
- 187: Label
- Branch 177
- 177: Label
- 189: 9(int) Load 172(j)
- 190: 9(int) IAdd 189 63
- Store 172(j) 190
- Branch 174
+ 170: 6(float) Load 75(x)
+ 171: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 170
+ 172: 6(float) Load 73(f)
+ 173: 6(float) FAdd 172 171
+ Store 73(f) 173
+ Store 174(j) 175
+ Branch 176
176: Label
- Branch 167
- 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
- 167: Label
- 203: 6(float) Load 71(f)
- 205: 161(bool) FOrdLessThan 203 204
- SelectionMerge 207 None
- BranchConditional 205 206 207
- 206: Label
- Branch 157
- 207: Label
- Branch 158
- 158: Label
- 209: 9(int) Load 153(i)
- 210: 9(int) IAdd 209 63
- Store 153(i) 210
- Branch 155
- 157: Label
- 211: 9(int) Load 60(c)
- SelectionMerge 214 None
- Switch 211 214
- case 1: 212
- case 2: 213
- 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)
+ 180: 9(int) Load 174(j)
+ 182: 163(bool) SLessThan 180 181
+ LoopMerge 178 179 None
+ BranchConditional 182 177 178
+ 177: Label
+ 183: 6(float) Load 73(f)
+ 184: 6(float) FAdd 183 48
+ Store 73(f) 184
+ 185: 6(float) Load 73(f)
+ 187: 163(bool) FOrdLessThan 185 186
+ SelectionMerge 189 None
+ BranchConditional 187 188 189
+ 188: Label
+ Branch 178
+ 189: Label
+ Branch 179
+ 179: Label
+ 191: 9(int) Load 174(j)
+ 192: 9(int) IAdd 191 65
+ Store 174(j) 192
+ Branch 176
+ 178: Label
+ Branch 169
+ 167: Label
+ 194: 6(float) Load 75(x)
+ 195: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 194
+ 196: 6(float) Load 73(f)
+ 197: 6(float) FAdd 196 195
+ Store 73(f) 197
+ Branch 169
+ 169: Label
+ 205: 6(float) Load 73(f)
+ 207: 163(bool) FOrdLessThan 205 206
+ SelectionMerge 209 None
+ BranchConditional 207 208 209
+ 208: Label
+ Branch 159
+ 209: Label
+ Branch 160
+ 160: Label
+ 211: 9(int) Load 155(i)
+ 212: 9(int) IAdd 211 65
+ Store 155(i) 212
+ Branch 157
+ 159: Label
+ 213: 9(int) Load 62(c)
+ SelectionMerge 216 None
+ Switch 213 216
+ case 1: 214
+ case 2: 215
+ 214: Label
+ 217: 6(float) Load 75(x)
+ 218: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 217
+ 219: 6(float) Load 73(f)
+ 220: 6(float) FAdd 219 218
+ Store 73(f) 220
+ Branch 216
+ 215: Label
+ Branch 216
+ 216: Label
+ 226: 6(float) Load 73(f)
+ 227: 9(int) Load 60(local)
+ 228: 6(float) ConvertSToF 227
+ 229: 6(float) FAdd 226 228
+ Store 225(color) 229
+ 233: 7(fvec4) Load 231(v)
Store 232(param) 233
- 235: 9(int) Load 60(c)
+ 235: 7(fvec4) Load 231(v)
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)
+ 237: 9(int) Load 62(c)
+ Store 236(param) 237
+ 238: 7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 232(param) 234(param) 236(param)
+ 241: 6(float) CompositeExtract 238 1
+ 242: 6(float) Load 225(color)
+ 243: 6(float) FAdd 242 241
+ Store 225(color) 243
+ 245: 7(fvec4) Load 231(v)
Store 244(param) 245
- 247: 9(int) Load 60(c)
+ 247: 7(fvec4) Load 231(v)
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
- 255: Label
- Branch 256
- 254: Label
- Branch 256
- 256: Label
- 260: 9(int) Load 60(c)
- SelectionMerge 262 None
- Switch 260 261
- 261: Label
- Branch 262
- 262: Label
+ 249: 9(int) Load 62(c)
+ Store 248(param) 249
+ 250: 7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 244(param) 246(param) 248(param)
+ 252: 6(float) CompositeExtract 250 2
+ 253: 6(float) Load 225(color)
+ 254: 6(float) FAdd 253 252
+ Store 225(color) 254
+ 255: 9(int) Load 62(c)
+ SelectionMerge 258 None
+ Switch 255 257
+ case 0: 256
+ 257: Label
+ Branch 258
+ 256: Label
+ Branch 258
+ 258: Label
+ 262: 9(int) Load 62(c)
+ SelectionMerge 264 None
+ Switch 262 263
+ 263: Label
+ Branch 264
+ 264: Label
Return
FunctionEnd
15(foo1(vf4;vf4;i1;): 7(fvec4) Function None 11
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
+ 40: 9(int) Load 19(i1)
+ SelectionMerge 45 None
+ Switch 40 45
+ case 0: 41
+ case 2: 42
+ case 1: 43
+ case 3: 44
41: Label
- ReturnValue 48
+ 46: 7(fvec4) Load 17(v1)
+ ReturnValue 46
42: Label
- 50: 7(fvec4) Load 18(v2)
- ReturnValue 50
+ ReturnValue 49
43: Label
- 52: 7(fvec4) Load 17(v1)
- 53: 7(fvec4) Load 18(v2)
- 54: 7(fvec4) FMul 52 53
- ReturnValue 54
- 44: Label
+ 51: 7(fvec4) Load 18(v2)
+ ReturnValue 51
+ 44: Label
+ 53: 7(fvec4) Load 17(v1)
+ 54: 7(fvec4) Load 18(v2)
+ 55: 7(fvec4) FMul 53 54
+ ReturnValue 55
+ 45: Label
ReturnValue 37
FunctionEnd