SPV return from main: Simplify a legacy design such returns are not jumps to exit block.

Structured control-flow rules allow leaving the middle of a construct through
a return, but not through a jump to a block that does a return.

Addresses issue #58.
This commit is contained in:
John Kessenich
2015-09-14 20:58:02 -06:00
parent 5f5b205ce9
commit e770b3e6cf
74 changed files with 9648 additions and 9816 deletions

View File

@@ -7,7 +7,7 @@ Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 196
// Id's are bound by 195
Source GLSL 130
Capability Shader
@@ -16,344 +16,342 @@ Linked fragment stage:
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft
Name 4 "main"
Name 10 "color"
Name 12 "BaseColor"
Name 25 "d4"
Name 30 "bigColor4"
Name 84 "d13"
Name 149 "gl_FragColor"
Name 151 "bigColor"
Name 152 "bigColor1_1"
Name 153 "bigColor1_2"
Name 154 "bigColor1_3"
Name 155 "bigColor2"
Name 156 "bigColor3"
Name 157 "bigColor5"
Name 158 "bigColor6"
Name 159 "bigColor7"
Name 160 "bigColor8"
Name 161 "d"
Name 162 "d2"
Name 163 "d3"
Name 164 "d5"
Name 165 "d6"
Name 166 "d7"
Name 167 "d8"
Name 168 "d9"
Name 169 "d10"
Name 170 "d11"
Name 171 "d12"
Name 172 "d14"
Name 173 "d15"
Name 174 "d16"
Name 175 "d17"
Name 176 "d18"
Name 177 "d19"
Name 178 "d20"
Name 179 "d21"
Name 180 "d22"
Name 181 "d23"
Name 182 "d24"
Name 183 "d25"
Name 184 "d26"
Name 185 "d27"
Name 186 "d28"
Name 187 "d29"
Name 188 "d30"
Name 189 "d31"
Name 190 "d32"
Name 191 "d33"
Name 192 "d34"
Name 195 "Count"
Decorate 12(BaseColor) Smooth
Decorate 149(gl_FragColor) BuiltIn FragColor
Decorate 151(bigColor) NoStaticUse
Decorate 152(bigColor1_1) NoStaticUse
Decorate 153(bigColor1_2) NoStaticUse
Decorate 154(bigColor1_3) NoStaticUse
Decorate 155(bigColor2) NoStaticUse
Decorate 156(bigColor3) NoStaticUse
Decorate 157(bigColor5) NoStaticUse
Decorate 158(bigColor6) NoStaticUse
Decorate 159(bigColor7) NoStaticUse
Decorate 160(bigColor8) NoStaticUse
Decorate 161(d) NoStaticUse
Decorate 162(d2) NoStaticUse
Decorate 163(d3) NoStaticUse
Decorate 164(d5) NoStaticUse
Decorate 165(d6) NoStaticUse
Decorate 166(d7) NoStaticUse
Decorate 167(d8) NoStaticUse
Decorate 168(d9) NoStaticUse
Decorate 169(d10) NoStaticUse
Decorate 170(d11) NoStaticUse
Decorate 171(d12) NoStaticUse
Decorate 172(d14) NoStaticUse
Decorate 173(d15) NoStaticUse
Decorate 174(d16) NoStaticUse
Decorate 175(d17) NoStaticUse
Decorate 176(d18) NoStaticUse
Decorate 177(d19) NoStaticUse
Decorate 178(d20) NoStaticUse
Decorate 179(d21) NoStaticUse
Decorate 180(d22) NoStaticUse
Decorate 181(d23) NoStaticUse
Decorate 182(d24) NoStaticUse
Decorate 183(d25) NoStaticUse
Decorate 184(d26) NoStaticUse
Decorate 185(d27) NoStaticUse
Decorate 186(d28) NoStaticUse
Decorate 187(d29) NoStaticUse
Decorate 188(d30) NoStaticUse
Decorate 189(d31) NoStaticUse
Decorate 190(d32) NoStaticUse
Decorate 191(d33) NoStaticUse
Decorate 192(d34) NoStaticUse
Decorate 195(Count) NoStaticUse
Name 9 "color"
Name 11 "BaseColor"
Name 24 "d4"
Name 29 "bigColor4"
Name 83 "d13"
Name 148 "gl_FragColor"
Name 150 "bigColor"
Name 151 "bigColor1_1"
Name 152 "bigColor1_2"
Name 153 "bigColor1_3"
Name 154 "bigColor2"
Name 155 "bigColor3"
Name 156 "bigColor5"
Name 157 "bigColor6"
Name 158 "bigColor7"
Name 159 "bigColor8"
Name 160 "d"
Name 161 "d2"
Name 162 "d3"
Name 163 "d5"
Name 164 "d6"
Name 165 "d7"
Name 166 "d8"
Name 167 "d9"
Name 168 "d10"
Name 169 "d11"
Name 170 "d12"
Name 171 "d14"
Name 172 "d15"
Name 173 "d16"
Name 174 "d17"
Name 175 "d18"
Name 176 "d19"
Name 177 "d20"
Name 178 "d21"
Name 179 "d22"
Name 180 "d23"
Name 181 "d24"
Name 182 "d25"
Name 183 "d26"
Name 184 "d27"
Name 185 "d28"
Name 186 "d29"
Name 187 "d30"
Name 188 "d31"
Name 189 "d32"
Name 190 "d33"
Name 191 "d34"
Name 194 "Count"
Decorate 11(BaseColor) Smooth
Decorate 148(gl_FragColor) BuiltIn FragColor
Decorate 150(bigColor) NoStaticUse
Decorate 151(bigColor1_1) NoStaticUse
Decorate 152(bigColor1_2) NoStaticUse
Decorate 153(bigColor1_3) NoStaticUse
Decorate 154(bigColor2) NoStaticUse
Decorate 155(bigColor3) NoStaticUse
Decorate 156(bigColor5) NoStaticUse
Decorate 157(bigColor6) NoStaticUse
Decorate 158(bigColor7) NoStaticUse
Decorate 159(bigColor8) NoStaticUse
Decorate 160(d) NoStaticUse
Decorate 161(d2) NoStaticUse
Decorate 162(d3) NoStaticUse
Decorate 163(d5) NoStaticUse
Decorate 164(d6) NoStaticUse
Decorate 165(d7) NoStaticUse
Decorate 166(d8) NoStaticUse
Decorate 167(d9) NoStaticUse
Decorate 168(d10) NoStaticUse
Decorate 169(d11) NoStaticUse
Decorate 170(d12) NoStaticUse
Decorate 171(d14) NoStaticUse
Decorate 172(d15) NoStaticUse
Decorate 173(d16) NoStaticUse
Decorate 174(d17) NoStaticUse
Decorate 175(d18) NoStaticUse
Decorate 176(d19) NoStaticUse
Decorate 177(d20) NoStaticUse
Decorate 178(d21) NoStaticUse
Decorate 179(d22) NoStaticUse
Decorate 180(d23) NoStaticUse
Decorate 181(d24) NoStaticUse
Decorate 182(d25) NoStaticUse
Decorate 183(d26) NoStaticUse
Decorate 184(d27) NoStaticUse
Decorate 185(d28) NoStaticUse
Decorate 186(d29) NoStaticUse
Decorate 187(d30) NoStaticUse
Decorate 188(d31) NoStaticUse
Decorate 189(d32) NoStaticUse
Decorate 190(d33) NoStaticUse
Decorate 191(d34) NoStaticUse
Decorate 194(Count) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: TypePointer Input 8(fvec4)
12(BaseColor): 11(ptr) Variable Input
18: TypeBool
19: 18(bool) ConstantTrue
24: TypePointer UniformConstant 7(float)
25(d4): 24(ptr) Variable UniformConstant
29: TypePointer UniformConstant 8(fvec4)
30(bigColor4): 29(ptr) Variable UniformConstant
40: 7(float) Constant 1073741824
54: 7(float) Constant 1065353216
58: 18(bool) ConstantFalse
84(d13): 24(ptr) Variable UniformConstant
148: TypePointer Output 8(fvec4)
149(gl_FragColor): 148(ptr) Variable Output
151(bigColor): 29(ptr) Variable UniformConstant
152(bigColor1_1): 29(ptr) Variable UniformConstant
153(bigColor1_2): 29(ptr) Variable UniformConstant
154(bigColor1_3): 29(ptr) Variable UniformConstant
155(bigColor2): 29(ptr) Variable UniformConstant
156(bigColor3): 29(ptr) Variable UniformConstant
157(bigColor5): 29(ptr) Variable UniformConstant
158(bigColor6): 29(ptr) Variable UniformConstant
159(bigColor7): 29(ptr) Variable UniformConstant
160(bigColor8): 29(ptr) Variable UniformConstant
161(d): 24(ptr) Variable UniformConstant
162(d2): 24(ptr) Variable UniformConstant
163(d3): 24(ptr) Variable UniformConstant
164(d5): 24(ptr) Variable UniformConstant
165(d6): 24(ptr) Variable UniformConstant
166(d7): 24(ptr) Variable UniformConstant
167(d8): 24(ptr) Variable UniformConstant
168(d9): 24(ptr) Variable UniformConstant
169(d10): 24(ptr) Variable UniformConstant
170(d11): 24(ptr) Variable UniformConstant
171(d12): 24(ptr) Variable UniformConstant
172(d14): 24(ptr) Variable UniformConstant
173(d15): 24(ptr) Variable UniformConstant
174(d16): 24(ptr) Variable UniformConstant
175(d17): 24(ptr) Variable UniformConstant
176(d18): 24(ptr) Variable UniformConstant
177(d19): 24(ptr) Variable UniformConstant
178(d20): 24(ptr) Variable UniformConstant
179(d21): 24(ptr) Variable UniformConstant
180(d22): 24(ptr) Variable UniformConstant
181(d23): 24(ptr) Variable UniformConstant
182(d24): 24(ptr) Variable UniformConstant
183(d25): 24(ptr) Variable UniformConstant
184(d26): 24(ptr) Variable UniformConstant
185(d27): 24(ptr) Variable UniformConstant
186(d28): 24(ptr) Variable UniformConstant
187(d29): 24(ptr) Variable UniformConstant
188(d30): 24(ptr) Variable UniformConstant
189(d31): 24(ptr) Variable UniformConstant
190(d32): 24(ptr) Variable UniformConstant
191(d33): 24(ptr) Variable UniformConstant
192(d34): 24(ptr) Variable UniformConstant
193: TypeInt 32 1
194: TypePointer UniformConstant 193(int)
195(Count): 194(ptr) Variable UniformConstant
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
23: TypePointer UniformConstant 6(float)
24(d4): 23(ptr) Variable UniformConstant
28: TypePointer UniformConstant 7(fvec4)
29(bigColor4): 28(ptr) Variable UniformConstant
39: 6(float) Constant 1073741824
53: 6(float) Constant 1065353216
57: 17(bool) ConstantFalse
83(d13): 23(ptr) Variable UniformConstant
147: TypePointer Output 7(fvec4)
148(gl_FragColor): 147(ptr) Variable Output
150(bigColor): 28(ptr) Variable UniformConstant
151(bigColor1_1): 28(ptr) Variable UniformConstant
152(bigColor1_2): 28(ptr) Variable UniformConstant
153(bigColor1_3): 28(ptr) Variable UniformConstant
154(bigColor2): 28(ptr) Variable UniformConstant
155(bigColor3): 28(ptr) Variable UniformConstant
156(bigColor5): 28(ptr) Variable UniformConstant
157(bigColor6): 28(ptr) Variable UniformConstant
158(bigColor7): 28(ptr) Variable UniformConstant
159(bigColor8): 28(ptr) Variable UniformConstant
160(d): 23(ptr) Variable UniformConstant
161(d2): 23(ptr) Variable UniformConstant
162(d3): 23(ptr) Variable UniformConstant
163(d5): 23(ptr) Variable UniformConstant
164(d6): 23(ptr) Variable UniformConstant
165(d7): 23(ptr) Variable UniformConstant
166(d8): 23(ptr) Variable UniformConstant
167(d9): 23(ptr) Variable UniformConstant
168(d10): 23(ptr) Variable UniformConstant
169(d11): 23(ptr) Variable UniformConstant
170(d12): 23(ptr) Variable UniformConstant
171(d14): 23(ptr) Variable UniformConstant
172(d15): 23(ptr) Variable UniformConstant
173(d16): 23(ptr) Variable UniformConstant
174(d17): 23(ptr) Variable UniformConstant
175(d18): 23(ptr) Variable UniformConstant
176(d19): 23(ptr) Variable UniformConstant
177(d20): 23(ptr) Variable UniformConstant
178(d21): 23(ptr) Variable UniformConstant
179(d22): 23(ptr) Variable UniformConstant
180(d23): 23(ptr) Variable UniformConstant
181(d24): 23(ptr) Variable UniformConstant
182(d25): 23(ptr) Variable UniformConstant
183(d26): 23(ptr) Variable UniformConstant
184(d27): 23(ptr) Variable UniformConstant
185(d28): 23(ptr) Variable UniformConstant
186(d29): 23(ptr) Variable UniformConstant
187(d30): 23(ptr) Variable UniformConstant
188(d31): 23(ptr) Variable UniformConstant
189(d32): 23(ptr) Variable UniformConstant
190(d33): 23(ptr) Variable UniformConstant
191(d34): 23(ptr) Variable UniformConstant
192: TypeInt 32 1
193: TypePointer UniformConstant 192(int)
194(Count): 193(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
10(color): 9(ptr) Variable Function
13: 8(fvec4) Load 12(BaseColor)
Store 10(color) 13
Branch 14
14: Label
17: 18(bool) Phi 19 5 58 50 58 65
LoopMerge 15 None
Branch 20
20: Label
SelectionMerge 16 None
BranchConditional 17 16 21
21: Label
22: 8(fvec4) Load 10(color)
23: 7(float) CompositeExtract 22 2
26: 7(float) Load 25(d4)
27: 18(bool) FOrdLessThan 23 26
SelectionMerge 28 None
BranchConditional 27 28 15
28: Label
Branch 16
16: Label
31: 8(fvec4) Load 30(bigColor4)
32: 8(fvec4) Load 10(color)
33: 8(fvec4) FAdd 32 31
Store 10(color) 33
34: 8(fvec4) Load 10(color)
35: 7(float) CompositeExtract 34 0
36: 7(float) Load 25(d4)
37: 18(bool) FOrdLessThan 35 36
SelectionMerge 39 None
BranchConditional 37 38 39
38: Label
41: 8(fvec4) Load 10(color)
42: 7(float) CompositeExtract 41 2
43: 7(float) FAdd 42 40
44: 8(fvec4) Load 10(color)
45: 8(fvec4) CompositeInsert 43 44 2
Store 10(color) 45
46: 8(fvec4) Load 10(color)
47: 7(float) CompositeExtract 46 2
48: 7(float) Load 25(d4)
49: 18(bool) FOrdLessThan 47 48
SelectionMerge 51 None
BranchConditional 49 50 51
50: Label
52: 8(fvec4) Load 10(color)
53: 7(float) CompositeExtract 52 0
55: 7(float) FAdd 53 54
56: 8(fvec4) Load 10(color)
57: 8(fvec4) CompositeInsert 55 56 0
Store 10(color) 57
Branch 14
51: Label
Branch 39
39: Label
60: 8(fvec4) Load 10(color)
61: 7(float) CompositeExtract 60 1
62: 7(float) Load 25(d4)
63: 18(bool) FOrdLessThan 61 62
SelectionMerge 65 None
BranchConditional 63 64 72
64: Label
66: 7(float) Load 25(d4)
67: 8(fvec4) Load 10(color)
68: 7(float) CompositeExtract 67 1
69: 7(float) FAdd 68 66
70: 8(fvec4) Load 10(color)
71: 8(fvec4) CompositeInsert 69 70 1
Store 10(color) 71
Branch 65
72: Label
73: 7(float) Load 25(d4)
74: 8(fvec4) Load 10(color)
75: 7(float) CompositeExtract 74 0
76: 7(float) FAdd 75 73
77: 8(fvec4) Load 10(color)
78: 8(fvec4) CompositeInsert 76 77 0
Store 10(color) 78
Branch 65
65: Label
Branch 14
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 57 49 57 64
LoopMerge 14 None
Branch 19
19: Label
SelectionMerge 15 None
BranchConditional 16 15 20
20: Label
21: 7(fvec4) Load 9(color)
22: 6(float) CompositeExtract 21 2
25: 6(float) Load 24(d4)
26: 17(bool) FOrdLessThan 22 25
SelectionMerge 27 None
BranchConditional 26 27 14
27: Label
Branch 15
15: Label
Branch 79
30: 7(fvec4) Load 29(bigColor4)
31: 7(fvec4) Load 9(color)
32: 7(fvec4) FAdd 31 30
Store 9(color) 32
33: 7(fvec4) Load 9(color)
34: 6(float) CompositeExtract 33 0
35: 6(float) Load 24(d4)
36: 17(bool) FOrdLessThan 34 35
SelectionMerge 38 None
BranchConditional 36 37 38
37: Label
40: 7(fvec4) Load 9(color)
41: 6(float) CompositeExtract 40 2
42: 6(float) FAdd 41 39
43: 7(fvec4) Load 9(color)
44: 7(fvec4) CompositeInsert 42 43 2
Store 9(color) 44
45: 7(fvec4) Load 9(color)
46: 6(float) CompositeExtract 45 2
47: 6(float) Load 24(d4)
48: 17(bool) FOrdLessThan 46 47
SelectionMerge 50 None
BranchConditional 48 49 50
49: Label
51: 7(fvec4) Load 9(color)
52: 6(float) CompositeExtract 51 0
54: 6(float) FAdd 52 53
55: 7(fvec4) Load 9(color)
56: 7(fvec4) CompositeInsert 54 55 0
Store 9(color) 56
Branch 13
50: Label
Branch 38
38: Label
59: 7(fvec4) Load 9(color)
60: 6(float) CompositeExtract 59 1
61: 6(float) Load 24(d4)
62: 17(bool) FOrdLessThan 60 61
SelectionMerge 64 None
BranchConditional 62 63 71
63: Label
65: 6(float) Load 24(d4)
66: 7(fvec4) Load 9(color)
67: 6(float) CompositeExtract 66 1
68: 6(float) FAdd 67 65
69: 7(fvec4) Load 9(color)
70: 7(fvec4) CompositeInsert 68 69 1
Store 9(color) 70
Branch 64
71: Label
72: 6(float) Load 24(d4)
73: 7(fvec4) Load 9(color)
74: 6(float) CompositeExtract 73 0
75: 6(float) FAdd 74 72
76: 7(fvec4) Load 9(color)
77: 7(fvec4) CompositeInsert 75 76 0
Store 9(color) 77
Branch 64
64: Label
Branch 13
14: Label
Branch 78
78: Label
81: 7(fvec4) Load 9(color)
82: 6(float) CompositeExtract 81 3
84: 6(float) Load 83(d13)
85: 17(bool) FOrdLessThan 82 84
LoopMerge 79 None
BranchConditional 85 80 79
80: Label
86: 7(fvec4) Load 9(color)
87: 6(float) CompositeExtract 86 2
88: 6(float) Load 83(d13)
89: 17(bool) FOrdLessThan 87 88
SelectionMerge 91 None
BranchConditional 89 90 95
90: Label
92: 7(fvec4) Load 9(color)
93: 7(fvec4) CompositeConstruct 53 53 53 53
94: 7(fvec4) FAdd 92 93
Store 9(color) 94
Branch 91
95: Label
96: 7(fvec4) Load 9(color)
97: 7(fvec4) CompositeConstruct 53 53 53 53
98: 7(fvec4) FSub 96 97
Store 9(color) 98
Branch 91
91: Label
99: 7(fvec4) Load 29(bigColor4)
100: 7(fvec4) Load 9(color)
101: 7(fvec4) FAdd 100 99
Store 9(color) 101
102: 7(fvec4) Load 9(color)
103: 6(float) CompositeExtract 102 0
104: 6(float) Load 24(d4)
105: 17(bool) FOrdLessThan 103 104
SelectionMerge 107 None
BranchConditional 105 106 107
106: Label
108: 7(fvec4) Load 9(color)
109: 6(float) CompositeExtract 108 2
110: 6(float) FAdd 109 39
111: 7(fvec4) Load 9(color)
112: 7(fvec4) CompositeInsert 110 111 2
Store 9(color) 112
113: 7(fvec4) Load 9(color)
114: 6(float) CompositeExtract 113 2
115: 6(float) Load 24(d4)
116: 17(bool) FOrdLessThan 114 115
SelectionMerge 118 None
BranchConditional 116 117 118
117: Label
119: 7(fvec4) Load 9(color)
120: 6(float) CompositeExtract 119 0
121: 6(float) FAdd 120 53
122: 7(fvec4) Load 9(color)
123: 7(fvec4) CompositeInsert 121 122 0
Store 9(color) 123
Branch 78
118: Label
Branch 107
107: Label
125: 7(fvec4) Load 9(color)
126: 6(float) CompositeExtract 125 1
127: 6(float) Load 24(d4)
128: 17(bool) FOrdLessThan 126 127
SelectionMerge 130 None
BranchConditional 128 129 137
129: Label
131: 6(float) Load 24(d4)
132: 7(fvec4) Load 9(color)
133: 6(float) CompositeExtract 132 1
134: 6(float) FAdd 133 131
135: 7(fvec4) Load 9(color)
136: 7(fvec4) CompositeInsert 134 135 1
Store 9(color) 136
Branch 130
137: Label
138: 6(float) Load 24(d4)
139: 7(fvec4) Load 9(color)
140: 6(float) CompositeExtract 139 0
141: 6(float) FAdd 140 138
142: 7(fvec4) Load 9(color)
143: 7(fvec4) CompositeInsert 141 142 0
Store 9(color) 143
Branch 130
130: Label
Branch 78
79: Label
82: 8(fvec4) Load 10(color)
83: 7(float) CompositeExtract 82 3
85: 7(float) Load 84(d13)
86: 18(bool) FOrdLessThan 83 85
LoopMerge 80 None
BranchConditional 86 81 80
81: Label
87: 8(fvec4) Load 10(color)
88: 7(float) CompositeExtract 87 2
89: 7(float) Load 84(d13)
90: 18(bool) FOrdLessThan 88 89
SelectionMerge 92 None
BranchConditional 90 91 96
91: Label
93: 8(fvec4) Load 10(color)
94: 8(fvec4) CompositeConstruct 54 54 54 54
95: 8(fvec4) FAdd 93 94
Store 10(color) 95
Branch 92
96: Label
97: 8(fvec4) Load 10(color)
98: 8(fvec4) CompositeConstruct 54 54 54 54
99: 8(fvec4) FSub 97 98
Store 10(color) 99
Branch 92
92: Label
100: 8(fvec4) Load 30(bigColor4)
101: 8(fvec4) Load 10(color)
102: 8(fvec4) FAdd 101 100
Store 10(color) 102
103: 8(fvec4) Load 10(color)
104: 7(float) CompositeExtract 103 0
105: 7(float) Load 25(d4)
106: 18(bool) FOrdLessThan 104 105
SelectionMerge 108 None
BranchConditional 106 107 108
107: Label
109: 8(fvec4) Load 10(color)
110: 7(float) CompositeExtract 109 2
111: 7(float) FAdd 110 40
112: 8(fvec4) Load 10(color)
113: 8(fvec4) CompositeInsert 111 112 2
Store 10(color) 113
114: 8(fvec4) Load 10(color)
115: 7(float) CompositeExtract 114 2
116: 7(float) Load 25(d4)
117: 18(bool) FOrdLessThan 115 116
SelectionMerge 119 None
BranchConditional 117 118 119
118: Label
120: 8(fvec4) Load 10(color)
121: 7(float) CompositeExtract 120 0
122: 7(float) FAdd 121 54
123: 8(fvec4) Load 10(color)
124: 8(fvec4) CompositeInsert 122 123 0
Store 10(color) 124
Branch 79
119: Label
Branch 108
108: Label
126: 8(fvec4) Load 10(color)
127: 7(float) CompositeExtract 126 1
128: 7(float) Load 25(d4)
129: 18(bool) FOrdLessThan 127 128
SelectionMerge 131 None
BranchConditional 129 130 138
130: Label
132: 7(float) Load 25(d4)
133: 8(fvec4) Load 10(color)
134: 7(float) CompositeExtract 133 1
135: 7(float) FAdd 134 132
136: 8(fvec4) Load 10(color)
137: 8(fvec4) CompositeInsert 135 136 1
Store 10(color) 137
Branch 131
138: Label
139: 7(float) Load 25(d4)
140: 8(fvec4) Load 10(color)
141: 7(float) CompositeExtract 140 0
142: 7(float) FAdd 141 139
143: 8(fvec4) Load 10(color)
144: 8(fvec4) CompositeInsert 142 143 0
Store 10(color) 144
Branch 131
131: Label
Branch 79
80: Label
145: 8(fvec4) Load 10(color)
146: 8(fvec4) CompositeConstruct 54 54 54 54
147: 8(fvec4) FAdd 145 146
Store 10(color) 147
150: 8(fvec4) Load 10(color)
Store 149(gl_FragColor) 150
Branch 6
6: Label
144: 7(fvec4) Load 9(color)
145: 7(fvec4) CompositeConstruct 53 53 53 53
146: 7(fvec4) FAdd 144 145
Store 9(color) 146
149: 7(fvec4) Load 9(color)
Store 148(gl_FragColor) 149
Return
FunctionEnd