1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %main "main" %_GLF_color
5               OpExecutionMode %main OriginUpperLeft
6               OpSource ESSL 320
7               OpName %main "main"
8               OpName %_GLF_global_loop_count "_GLF_global_loop_count"
9               OpName %m "m"
10               OpName %buf1 "buf1"
11               OpMemberName %buf1 0 "_GLF_uniform_float_values"
12               OpName %_ ""
13               OpName %v "v"
14               OpName %f "f"
15               OpName %a "a"
16               OpName %buf0 "buf0"
17               OpMemberName %buf0 0 "_GLF_uniform_int_values"
18               OpName %__0 ""
19               OpName %b "b"
20               OpName %buf2 "buf2"
21               OpMemberName %buf2 0 "one"
22               OpName %__1 ""
23               OpName %zero "zero"
24               OpName %_GLF_color "_GLF_color"
25               OpDecorate %_arr_float_uint_18 ArrayStride 16
26               OpMemberDecorate %buf1 0 Offset 0
27               OpDecorate %buf1 Block
28               OpDecorate %_ DescriptorSet 0
29               OpDecorate %_ Binding 1
30               OpDecorate %_arr_int_uint_4 ArrayStride 16
31               OpMemberDecorate %buf0 0 Offset 0
32               OpDecorate %buf0 Block
33               OpDecorate %__0 DescriptorSet 0
34               OpDecorate %__0 Binding 0
35               OpMemberDecorate %buf2 0 Offset 0
36               OpDecorate %buf2 Block
37               OpDecorate %__1 DescriptorSet 0
38               OpDecorate %__1 Binding 2
39               OpDecorate %_GLF_color Location 0
40       %void = OpTypeVoid
41         %20 = OpTypeFunction %void
42        %int = OpTypeInt 32 1
43%_ptr_Private_int = OpTypePointer Private %int
44%_GLF_global_loop_count = OpVariable %_ptr_Private_int Private
45      %int_0 = OpConstant %int 0
46      %float = OpTypeFloat 32
47    %v4float = OpTypeVector %float 4
48%mat4v4float = OpTypeMatrix %v4float 4
49%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
50       %uint = OpTypeInt 32 0
51    %uint_18 = OpConstant %uint 18
52%_arr_float_uint_18 = OpTypeArray %float %uint_18
53       %buf1 = OpTypeStruct %_arr_float_uint_18
54%_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
55          %_ = OpVariable %_ptr_Uniform_buf1 Uniform
56      %int_1 = OpConstant %int 1
57%_ptr_Uniform_float = OpTypePointer Uniform %float
58      %int_2 = OpConstant %int 2
59      %int_3 = OpConstant %int 3
60      %int_4 = OpConstant %int 4
61      %int_5 = OpConstant %int 5
62      %int_6 = OpConstant %int 6
63      %int_7 = OpConstant %int 7
64      %int_8 = OpConstant %int 8
65      %int_9 = OpConstant %int 9
66     %int_10 = OpConstant %int 10
67     %int_11 = OpConstant %int 11
68     %int_12 = OpConstant %int 12
69     %int_13 = OpConstant %int 13
70     %int_14 = OpConstant %int 14
71     %int_15 = OpConstant %int 15
72     %int_16 = OpConstant %int 16
73    %float_1 = OpConstant %float 1
74    %float_0 = OpConstant %float 0
75%_ptr_Function_v4float = OpTypePointer Function %v4float
76%_ptr_Function_float = OpTypePointer Function %float
77%_ptr_Function_int = OpTypePointer Function %int
78     %uint_4 = OpConstant %uint 4
79%_arr_int_uint_4 = OpTypeArray %int %uint_4
80       %buf0 = OpTypeStruct %_arr_int_uint_4
81%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
82        %__0 = OpVariable %_ptr_Uniform_buf0 Uniform
83%_ptr_Uniform_int = OpTypePointer Uniform %int
84       %bool = OpTypeBool
85       %buf2 = OpTypeStruct %int
86%_ptr_Uniform_buf2 = OpTypePointer Uniform %buf2
87        %__1 = OpVariable %_ptr_Uniform_buf2 Uniform
88     %int_17 = OpConstant %int 17
89%_ptr_Output_v4float = OpTypePointer Output %v4float
90 %_GLF_color = OpVariable %_ptr_Output_v4float Output
91       %main = OpFunction %void None %20
92         %60 = OpLabel
93          %m = OpVariable %_ptr_Function_mat4v4float Function
94          %v = OpVariable %_ptr_Function_v4float Function
95          %f = OpVariable %_ptr_Function_float Function
96          %a = OpVariable %_ptr_Function_int Function
97          %b = OpVariable %_ptr_Function_int Function
98       %zero = OpVariable %_ptr_Function_float Function
99               OpStore %_GLF_global_loop_count %int_0
100         %61 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1
101         %62 = OpLoad %float %61
102         %63 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_2
103         %64 = OpLoad %float %63
104         %65 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_3
105         %66 = OpLoad %float %65
106         %67 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_4
107         %68 = OpLoad %float %67
108         %69 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_5
109         %70 = OpLoad %float %69
110         %71 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_6
111         %72 = OpLoad %float %71
112         %73 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_7
113         %74 = OpLoad %float %73
114         %75 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_8
115         %76 = OpLoad %float %75
116         %77 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_9
117         %78 = OpLoad %float %77
118         %79 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_10
119         %80 = OpLoad %float %79
120         %81 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_11
121         %82 = OpLoad %float %81
122         %83 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_12
123         %84 = OpLoad %float %83
124         %85 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_13
125         %86 = OpLoad %float %85
126         %87 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_14
127         %88 = OpLoad %float %87
128         %89 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_15
129         %90 = OpLoad %float %89
130         %91 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_16
131         %92 = OpLoad %float %91
132         %93 = OpCompositeConstruct %v4float %62 %64 %66 %68
133         %94 = OpCompositeConstruct %v4float %70 %72 %74 %76
134         %95 = OpCompositeConstruct %v4float %78 %80 %82 %84
135         %96 = OpCompositeConstruct %v4float %86 %88 %90 %92
136         %97 = OpCompositeConstruct %mat4v4float %93 %94 %95 %96
137               OpStore %m %97
138         %98 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1
139         %99 = OpLoad %float %98
140        %100 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_2
141        %101 = OpLoad %float %100
142        %102 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_3
143        %103 = OpLoad %float %102
144        %104 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_4
145        %105 = OpLoad %float %104
146        %106 = OpCompositeConstruct %v4float %99 %101 %103 %105
147               OpStore %v %106
148        %107 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1
149        %108 = OpLoad %float %107
150               OpStore %f %108
151        %109 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_0
152        %110 = OpLoad %int %109
153               OpStore %a %110
154               OpBranch %111
155        %111 = OpLabel
156               OpLoopMerge %112 %113 None
157               OpBranch %114
158        %114 = OpLabel
159        %115 = OpLoad %int %_GLF_global_loop_count
160        %116 = OpSLessThan %bool %115 %int_10
161               OpBranchConditional %116 %117 %112
162        %117 = OpLabel
163        %118 = OpLoad %int %_GLF_global_loop_count
164        %119 = OpIAdd %int %118 %int_1
165               OpStore %_GLF_global_loop_count %119
166        %120 = OpLoad %int %a
167        %121 = OpExtInst %int %1 SClamp %120 %int_0 %int_3
168        %122 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1
169        %123 = OpLoad %float %122
170        %124 = OpAccessChain %_ptr_Function_float %v %121
171        %125 = OpLoad %float %124
172        %126 = OpFAdd %float %125 %123
173        %127 = OpAccessChain %_ptr_Function_float %v %121
174               OpStore %127 %126
175        %128 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_2
176        %129 = OpLoad %int %128
177               OpStore %b %129
178               OpBranch %130
179        %130 = OpLabel
180               OpLoopMerge %131 %132 None
181               OpBranch %133
182        %133 = OpLabel
183        %134 = OpLoad %int %_GLF_global_loop_count
184        %135 = OpSLessThan %bool %134 %int_10
185               OpBranchConditional %135 %136 %131
186        %136 = OpLabel
187        %137 = OpLoad %int %_GLF_global_loop_count
188        %138 = OpIAdd %int %137 %int_1
189               OpStore %_GLF_global_loop_count %138
190        %139 = OpLoad %int %b
191        %140 = OpExtInst %int %1 SClamp %139 %int_0 %int_3
192        %141 = OpAccessChain %_ptr_Function_float %v %140
193        %142 = OpLoad %float %141
194        %143 = OpLoad %int %b
195        %144 = OpExtInst %int %1 SClamp %143 %int_0 %int_3
196        %145 = OpLoad %int %a
197        %146 = OpAccessChain %_ptr_Function_float %m %144 %145
198        %147 = OpLoad %float %146
199        %148 = OpFMul %float %142 %147
200        %149 = OpLoad %float %f
201        %150 = OpFAdd %float %149 %148
202               OpStore %f %150
203               OpBranch %132
204        %132 = OpLabel
205        %151 = OpLoad %int %b
206        %152 = OpISub %int %151 %int_1
207               OpStore %b %152
208               OpBranch %130
209        %131 = OpLabel
210        %153 = OpLoad %int %a
211        %154 = OpExtInst %int %1 SClamp %153 %int_0 %int_3
212        %155 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1
213        %156 = OpLoad %float %155
214        %157 = OpAccessChain %_ptr_Function_float %m %int_1 %154
215               OpStore %157 %156
216        %158 = OpAccessChain %_ptr_Uniform_int %__1 %int_0
217        %159 = OpLoad %int %158
218        %160 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_0
219        %161 = OpLoad %int %160
220        %162 = OpIEqual %bool %159 %161
221               OpSelectionMerge %163 None
222               OpBranchConditional %162 %164 %163
223        %164 = OpLabel
224               OpKill
225        %163 = OpLabel
226        %165 = OpAccessChain %_ptr_Uniform_int %__1 %int_0
227        %166 = OpLoad %int %165
228        %167 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_1
229        %168 = OpLoad %int %167
230        %169 = OpIEqual %bool %166 %168
231               OpSelectionMerge %170 None
232               OpBranchConditional %169 %171 %170
233        %171 = OpLabel
234               OpKill
235        %170 = OpLabel
236               OpBranch %113
237        %113 = OpLabel
238        %172 = OpLoad %int %a
239        %173 = OpIAdd %int %172 %int_1
240               OpStore %a %173
241               OpBranch %111
242        %112 = OpLabel
243        %174 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_0
244        %175 = OpLoad %float %174
245               OpStore %zero %175
246        %176 = OpLoad %float %f
247        %177 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_17
248        %178 = OpLoad %float %177
249        %179 = OpFUnordNotEqual %bool %176 %178
250               OpSelectionMerge %180 None
251               OpBranchConditional %179 %181 %180
252        %181 = OpLabel
253        %182 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %int_1
254        %183 = OpLoad %float %182
255               OpStore %zero %183
256               OpBranch %180
257        %180 = OpLabel
258        %184 = OpLoad %float %f
259        %185 = OpLoad %float %zero
260        %186 = OpAccessChain %_ptr_Uniform_int %__0 %int_0 %int_0
261        %187 = OpLoad %int %186
262        %188 = OpConvertSToF %float %187
263        %189 = OpLoad %float %f
264        %190 = OpCompositeConstruct %v4float %184 %185 %188 %189
265               OpStore %_GLF_color %190
266               OpReturn
267               OpFunctionEnd
268