• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1OpCapability Shader
2%1 = OpExtInstImport "GLSL.std.450"
3OpMemoryModel Logical GLSL450
4OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
5OpExecutionMode %_entrypoint_v OriginUpperLeft
6OpName %sk_FragColor "sk_FragColor"
7OpName %sk_Clockwise "sk_Clockwise"
8OpName %_UniformBuffer "_UniformBuffer"
9OpMemberName %_UniformBuffer 0 "colorGreen"
10OpMemberName %_UniformBuffer 1 "colorRed"
11OpName %_entrypoint_v "_entrypoint_v"
12OpName %test_half_b "test_half_b"
13OpName %ok "ok"
14OpName %main "main"
15OpName %_0_ok "_0_ok"
16OpDecorate %sk_FragColor RelaxedPrecision
17OpDecorate %sk_FragColor Location 0
18OpDecorate %sk_FragColor Index 0
19OpDecorate %sk_Clockwise BuiltIn FrontFacing
20OpMemberDecorate %_UniformBuffer 0 Offset 0
21OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
22OpMemberDecorate %_UniformBuffer 1 Offset 16
23OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
24OpDecorate %_UniformBuffer Block
25OpDecorate %11 Binding 0
26OpDecorate %11 DescriptorSet 0
27OpDecorate %30 RelaxedPrecision
28OpDecorate %34 RelaxedPrecision
29OpDecorate %36 RelaxedPrecision
30OpDecorate %37 RelaxedPrecision
31OpDecorate %38 RelaxedPrecision
32OpDecorate %41 RelaxedPrecision
33OpDecorate %42 RelaxedPrecision
34OpDecorate %43 RelaxedPrecision
35OpDecorate %44 RelaxedPrecision
36OpDecorate %45 RelaxedPrecision
37OpDecorate %46 RelaxedPrecision
38OpDecorate %47 RelaxedPrecision
39OpDecorate %48 RelaxedPrecision
40OpDecorate %49 RelaxedPrecision
41OpDecorate %50 RelaxedPrecision
42OpDecorate %51 RelaxedPrecision
43OpDecorate %52 RelaxedPrecision
44OpDecorate %54 RelaxedPrecision
45OpDecorate %55 RelaxedPrecision
46OpDecorate %56 RelaxedPrecision
47OpDecorate %57 RelaxedPrecision
48OpDecorate %74 RelaxedPrecision
49OpDecorate %77 RelaxedPrecision
50OpDecorate %78 RelaxedPrecision
51OpDecorate %79 RelaxedPrecision
52OpDecorate %80 RelaxedPrecision
53OpDecorate %81 RelaxedPrecision
54OpDecorate %82 RelaxedPrecision
55OpDecorate %83 RelaxedPrecision
56OpDecorate %84 RelaxedPrecision
57OpDecorate %85 RelaxedPrecision
58OpDecorate %86 RelaxedPrecision
59OpDecorate %87 RelaxedPrecision
60OpDecorate %88 RelaxedPrecision
61OpDecorate %89 RelaxedPrecision
62OpDecorate %90 RelaxedPrecision
63OpDecorate %91 RelaxedPrecision
64OpDecorate %92 RelaxedPrecision
65OpDecorate %95 RelaxedPrecision
66OpDecorate %96 RelaxedPrecision
67OpDecorate %97 RelaxedPrecision
68OpDecorate %98 RelaxedPrecision
69OpDecorate %114 RelaxedPrecision
70OpDecorate %117 RelaxedPrecision
71OpDecorate %118 RelaxedPrecision
72OpDecorate %119 RelaxedPrecision
73OpDecorate %120 RelaxedPrecision
74OpDecorate %121 RelaxedPrecision
75OpDecorate %123 RelaxedPrecision
76OpDecorate %124 RelaxedPrecision
77OpDecorate %125 RelaxedPrecision
78OpDecorate %126 RelaxedPrecision
79OpDecorate %142 RelaxedPrecision
80OpDecorate %145 RelaxedPrecision
81OpDecorate %146 RelaxedPrecision
82OpDecorate %147 RelaxedPrecision
83OpDecorate %148 RelaxedPrecision
84OpDecorate %150 RelaxedPrecision
85OpDecorate %152 RelaxedPrecision
86OpDecorate %153 RelaxedPrecision
87OpDecorate %154 RelaxedPrecision
88OpDecorate %155 RelaxedPrecision
89OpDecorate %171 RelaxedPrecision
90OpDecorate %174 RelaxedPrecision
91OpDecorate %175 RelaxedPrecision
92OpDecorate %176 RelaxedPrecision
93OpDecorate %177 RelaxedPrecision
94OpDecorate %178 RelaxedPrecision
95OpDecorate %179 RelaxedPrecision
96OpDecorate %180 RelaxedPrecision
97OpDecorate %181 RelaxedPrecision
98OpDecorate %182 RelaxedPrecision
99OpDecorate %183 RelaxedPrecision
100OpDecorate %184 RelaxedPrecision
101OpDecorate %185 RelaxedPrecision
102OpDecorate %186 RelaxedPrecision
103OpDecorate %187 RelaxedPrecision
104OpDecorate %188 RelaxedPrecision
105OpDecorate %189 RelaxedPrecision
106OpDecorate %190 RelaxedPrecision
107OpDecorate %191 RelaxedPrecision
108OpDecorate %192 RelaxedPrecision
109OpDecorate %193 RelaxedPrecision
110OpDecorate %209 RelaxedPrecision
111OpDecorate %212 RelaxedPrecision
112OpDecorate %213 RelaxedPrecision
113OpDecorate %214 RelaxedPrecision
114OpDecorate %215 RelaxedPrecision
115OpDecorate %216 RelaxedPrecision
116OpDecorate %217 RelaxedPrecision
117OpDecorate %218 RelaxedPrecision
118OpDecorate %219 RelaxedPrecision
119OpDecorate %220 RelaxedPrecision
120OpDecorate %221 RelaxedPrecision
121OpDecorate %222 RelaxedPrecision
122OpDecorate %223 RelaxedPrecision
123OpDecorate %224 RelaxedPrecision
124OpDecorate %225 RelaxedPrecision
125OpDecorate %226 RelaxedPrecision
126OpDecorate %227 RelaxedPrecision
127OpDecorate %228 RelaxedPrecision
128OpDecorate %229 RelaxedPrecision
129OpDecorate %230 RelaxedPrecision
130OpDecorate %231 RelaxedPrecision
131OpDecorate %247 RelaxedPrecision
132OpDecorate %250 RelaxedPrecision
133OpDecorate %251 RelaxedPrecision
134OpDecorate %252 RelaxedPrecision
135OpDecorate %253 RelaxedPrecision
136OpDecorate %254 RelaxedPrecision
137OpDecorate %255 RelaxedPrecision
138OpDecorate %256 RelaxedPrecision
139OpDecorate %257 RelaxedPrecision
140OpDecorate %258 RelaxedPrecision
141OpDecorate %274 RelaxedPrecision
142OpDecorate %277 RelaxedPrecision
143OpDecorate %278 RelaxedPrecision
144OpDecorate %279 RelaxedPrecision
145OpDecorate %281 RelaxedPrecision
146OpDecorate %282 RelaxedPrecision
147OpDecorate %283 RelaxedPrecision
148OpDecorate %284 RelaxedPrecision
149OpDecorate %285 RelaxedPrecision
150OpDecorate %286 RelaxedPrecision
151OpDecorate %287 RelaxedPrecision
152OpDecorate %288 RelaxedPrecision
153OpDecorate %289 RelaxedPrecision
154OpDecorate %290 RelaxedPrecision
155OpDecorate %291 RelaxedPrecision
156OpDecorate %292 RelaxedPrecision
157OpDecorate %304 RelaxedPrecision
158OpDecorate %309 RelaxedPrecision
159OpDecorate %347 RelaxedPrecision
160OpDecorate %385 RelaxedPrecision
161OpDecorate %412 RelaxedPrecision
162OpDecorate %439 RelaxedPrecision
163OpDecorate %477 RelaxedPrecision
164OpDecorate %515 RelaxedPrecision
165OpDecorate %542 RelaxedPrecision
166OpDecorate %570 RelaxedPrecision
167OpDecorate %584 RelaxedPrecision
168OpDecorate %587 RelaxedPrecision
169OpDecorate %588 RelaxedPrecision
170%float = OpTypeFloat 32
171%v4float = OpTypeVector %float 4
172%_ptr_Output_v4float = OpTypePointer Output %v4float
173%sk_FragColor = OpVariable %_ptr_Output_v4float Output
174%bool = OpTypeBool
175%_ptr_Input_bool = OpTypePointer Input %bool
176%sk_Clockwise = OpVariable %_ptr_Input_bool Input
177%_UniformBuffer = OpTypeStruct %v4float %v4float
178%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
179%11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
180%void = OpTypeVoid
181%16 = OpTypeFunction %void
182%v2float = OpTypeVector %float 2
183%float_0 = OpConstant %float 0
184%20 = OpConstantComposite %v2float %float_0 %float_0
185%_ptr_Function_v2float = OpTypePointer Function %v2float
186%24 = OpTypeFunction %bool
187%_ptr_Function_bool = OpTypePointer Function %bool
188%true = OpConstantTrue %bool
189%false = OpConstantFalse %bool
190%float_2 = OpConstant %float 2
191%v3float = OpTypeVector %float 3
192%mat3v3float = OpTypeMatrix %v3float 3
193%float_4 = OpConstant %float 4
194%float_6 = OpConstant %float 6
195%v3bool = OpTypeVector %bool 3
196%float_n2 = OpConstant %float -2
197%float_n4 = OpConstant %float -4
198%float_8 = OpConstant %float 8
199%float_0_25 = OpConstant %float 0.25
200%float_0_5 = OpConstant %float 0.5
201%mat2v2float = OpTypeMatrix %v2float 2
202%v2bool = OpTypeVector %bool 2
203%305 = OpTypeFunction %v4float %_ptr_Function_v2float
204%_ptr_Function_v4float = OpTypePointer Function %v4float
205%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
206%int = OpTypeInt 32 1
207%int_0 = OpConstant %int 0
208%int_1 = OpConstant %int 1
209%_entrypoint_v = OpFunction %void None %16
210%17 = OpLabel
211%21 = OpVariable %_ptr_Function_v2float Function
212OpStore %21 %20
213%23 = OpFunctionCall %v4float %main %21
214OpStore %sk_FragColor %23
215OpReturn
216OpFunctionEnd
217%test_half_b = OpFunction %bool None %24
218%25 = OpLabel
219%ok = OpVariable %_ptr_Function_bool Function
220OpStore %ok %true
221%30 = OpLoad %bool %ok
222OpSelectionMerge %32 None
223OpBranchConditional %30 %31 %32
224%31 = OpLabel
225%36 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
226%37 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
227%38 = OpCompositeConstruct %v3float %float_0 %float_0 %float_2
228%34 = OpCompositeConstruct %mat3v3float %36 %37 %38
229%41 = OpCompositeConstruct %v3float %float_4 %float_4 %float_4
230%42 = OpCompositeConstruct %mat3v3float %41 %41 %41
231%43 = OpCompositeExtract %v3float %34 0
232%44 = OpCompositeExtract %v3float %42 0
233%45 = OpFAdd %v3float %43 %44
234%46 = OpCompositeExtract %v3float %34 1
235%47 = OpCompositeExtract %v3float %42 1
236%48 = OpFAdd %v3float %46 %47
237%49 = OpCompositeExtract %v3float %34 2
238%50 = OpCompositeExtract %v3float %42 2
239%51 = OpFAdd %v3float %49 %50
240%52 = OpCompositeConstruct %mat3v3float %45 %48 %51
241%54 = OpCompositeConstruct %v3float %float_6 %float_4 %float_4
242%55 = OpCompositeConstruct %v3float %float_4 %float_6 %float_4
243%56 = OpCompositeConstruct %v3float %float_4 %float_4 %float_6
244%57 = OpCompositeConstruct %mat3v3float %54 %55 %56
245%59 = OpCompositeExtract %v3float %52 0
246%60 = OpCompositeExtract %v3float %57 0
247%61 = OpFOrdEqual %v3bool %59 %60
248%62 = OpAll %bool %61
249%63 = OpCompositeExtract %v3float %52 1
250%64 = OpCompositeExtract %v3float %57 1
251%65 = OpFOrdEqual %v3bool %63 %64
252%66 = OpAll %bool %65
253%67 = OpLogicalAnd %bool %62 %66
254%68 = OpCompositeExtract %v3float %52 2
255%69 = OpCompositeExtract %v3float %57 2
256%70 = OpFOrdEqual %v3bool %68 %69
257%71 = OpAll %bool %70
258%72 = OpLogicalAnd %bool %67 %71
259OpBranch %32
260%32 = OpLabel
261%73 = OpPhi %bool %false %25 %72 %31
262OpStore %ok %73
263%74 = OpLoad %bool %ok
264OpSelectionMerge %76 None
265OpBranchConditional %74 %75 %76
266%75 = OpLabel
267%78 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
268%79 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
269%80 = OpCompositeConstruct %v3float %float_0 %float_0 %float_2
270%77 = OpCompositeConstruct %mat3v3float %78 %79 %80
271%81 = OpCompositeConstruct %v3float %float_4 %float_4 %float_4
272%82 = OpCompositeConstruct %mat3v3float %81 %81 %81
273%83 = OpCompositeExtract %v3float %77 0
274%84 = OpCompositeExtract %v3float %82 0
275%85 = OpFSub %v3float %83 %84
276%86 = OpCompositeExtract %v3float %77 1
277%87 = OpCompositeExtract %v3float %82 1
278%88 = OpFSub %v3float %86 %87
279%89 = OpCompositeExtract %v3float %77 2
280%90 = OpCompositeExtract %v3float %82 2
281%91 = OpFSub %v3float %89 %90
282%92 = OpCompositeConstruct %mat3v3float %85 %88 %91
283%95 = OpCompositeConstruct %v3float %float_n2 %float_n4 %float_n4
284%96 = OpCompositeConstruct %v3float %float_n4 %float_n2 %float_n4
285%97 = OpCompositeConstruct %v3float %float_n4 %float_n4 %float_n2
286%98 = OpCompositeConstruct %mat3v3float %95 %96 %97
287%99 = OpCompositeExtract %v3float %92 0
288%100 = OpCompositeExtract %v3float %98 0
289%101 = OpFOrdEqual %v3bool %99 %100
290%102 = OpAll %bool %101
291%103 = OpCompositeExtract %v3float %92 1
292%104 = OpCompositeExtract %v3float %98 1
293%105 = OpFOrdEqual %v3bool %103 %104
294%106 = OpAll %bool %105
295%107 = OpLogicalAnd %bool %102 %106
296%108 = OpCompositeExtract %v3float %92 2
297%109 = OpCompositeExtract %v3float %98 2
298%110 = OpFOrdEqual %v3bool %108 %109
299%111 = OpAll %bool %110
300%112 = OpLogicalAnd %bool %107 %111
301OpBranch %76
302%76 = OpLabel
303%113 = OpPhi %bool %false %32 %112 %75
304OpStore %ok %113
305%114 = OpLoad %bool %ok
306OpSelectionMerge %116 None
307OpBranchConditional %114 %115 %116
308%115 = OpLabel
309%118 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
310%119 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
311%120 = OpCompositeConstruct %v3float %float_0 %float_0 %float_2
312%117 = OpCompositeConstruct %mat3v3float %118 %119 %120
313%121 = OpMatrixTimesScalar %mat3v3float %117 %float_4
314%124 = OpCompositeConstruct %v3float %float_8 %float_0 %float_0
315%125 = OpCompositeConstruct %v3float %float_0 %float_8 %float_0
316%126 = OpCompositeConstruct %v3float %float_0 %float_0 %float_8
317%123 = OpCompositeConstruct %mat3v3float %124 %125 %126
318%127 = OpCompositeExtract %v3float %121 0
319%128 = OpCompositeExtract %v3float %123 0
320%129 = OpFOrdEqual %v3bool %127 %128
321%130 = OpAll %bool %129
322%131 = OpCompositeExtract %v3float %121 1
323%132 = OpCompositeExtract %v3float %123 1
324%133 = OpFOrdEqual %v3bool %131 %132
325%134 = OpAll %bool %133
326%135 = OpLogicalAnd %bool %130 %134
327%136 = OpCompositeExtract %v3float %121 2
328%137 = OpCompositeExtract %v3float %123 2
329%138 = OpFOrdEqual %v3bool %136 %137
330%139 = OpAll %bool %138
331%140 = OpLogicalAnd %bool %135 %139
332OpBranch %116
333%116 = OpLabel
334%141 = OpPhi %bool %false %76 %140 %115
335OpStore %ok %141
336%142 = OpLoad %bool %ok
337OpSelectionMerge %144 None
338OpBranchConditional %142 %143 %144
339%143 = OpLabel
340%146 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
341%147 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
342%148 = OpCompositeConstruct %v3float %float_0 %float_0 %float_2
343%145 = OpCompositeConstruct %mat3v3float %146 %147 %148
344%150 = OpMatrixTimesScalar %mat3v3float %145 %float_0_25
345%153 = OpCompositeConstruct %v3float %float_0_5 %float_0 %float_0
346%154 = OpCompositeConstruct %v3float %float_0 %float_0_5 %float_0
347%155 = OpCompositeConstruct %v3float %float_0 %float_0 %float_0_5
348%152 = OpCompositeConstruct %mat3v3float %153 %154 %155
349%156 = OpCompositeExtract %v3float %150 0
350%157 = OpCompositeExtract %v3float %152 0
351%158 = OpFOrdEqual %v3bool %156 %157
352%159 = OpAll %bool %158
353%160 = OpCompositeExtract %v3float %150 1
354%161 = OpCompositeExtract %v3float %152 1
355%162 = OpFOrdEqual %v3bool %160 %161
356%163 = OpAll %bool %162
357%164 = OpLogicalAnd %bool %159 %163
358%165 = OpCompositeExtract %v3float %150 2
359%166 = OpCompositeExtract %v3float %152 2
360%167 = OpFOrdEqual %v3bool %165 %166
361%168 = OpAll %bool %167
362%169 = OpLogicalAnd %bool %164 %168
363OpBranch %144
364%144 = OpLabel
365%170 = OpPhi %bool %false %116 %169 %143
366OpStore %ok %170
367%171 = OpLoad %bool %ok
368OpSelectionMerge %173 None
369OpBranchConditional %171 %172 %173
370%172 = OpLabel
371%175 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
372%176 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
373%177 = OpCompositeConstruct %v3float %float_0 %float_0 %float_2
374%174 = OpCompositeConstruct %mat3v3float %175 %176 %177
375%178 = OpCompositeConstruct %v3float %float_4 %float_4 %float_4
376%179 = OpCompositeConstruct %mat3v3float %178 %178 %178
377%180 = OpCompositeExtract %v3float %179 0
378%181 = OpCompositeExtract %v3float %174 0
379%182 = OpFAdd %v3float %180 %181
380%183 = OpCompositeExtract %v3float %179 1
381%184 = OpCompositeExtract %v3float %174 1
382%185 = OpFAdd %v3float %183 %184
383%186 = OpCompositeExtract %v3float %179 2
384%187 = OpCompositeExtract %v3float %174 2
385%188 = OpFAdd %v3float %186 %187
386%189 = OpCompositeConstruct %mat3v3float %182 %185 %188
387%190 = OpCompositeConstruct %v3float %float_6 %float_4 %float_4
388%191 = OpCompositeConstruct %v3float %float_4 %float_6 %float_4
389%192 = OpCompositeConstruct %v3float %float_4 %float_4 %float_6
390%193 = OpCompositeConstruct %mat3v3float %190 %191 %192
391%194 = OpCompositeExtract %v3float %189 0
392%195 = OpCompositeExtract %v3float %193 0
393%196 = OpFOrdEqual %v3bool %194 %195
394%197 = OpAll %bool %196
395%198 = OpCompositeExtract %v3float %189 1
396%199 = OpCompositeExtract %v3float %193 1
397%200 = OpFOrdEqual %v3bool %198 %199
398%201 = OpAll %bool %200
399%202 = OpLogicalAnd %bool %197 %201
400%203 = OpCompositeExtract %v3float %189 2
401%204 = OpCompositeExtract %v3float %193 2
402%205 = OpFOrdEqual %v3bool %203 %204
403%206 = OpAll %bool %205
404%207 = OpLogicalAnd %bool %202 %206
405OpBranch %173
406%173 = OpLabel
407%208 = OpPhi %bool %false %144 %207 %172
408OpStore %ok %208
409%209 = OpLoad %bool %ok
410OpSelectionMerge %211 None
411OpBranchConditional %209 %210 %211
412%210 = OpLabel
413%213 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
414%214 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
415%215 = OpCompositeConstruct %v3float %float_0 %float_0 %float_2
416%212 = OpCompositeConstruct %mat3v3float %213 %214 %215
417%216 = OpCompositeConstruct %v3float %float_4 %float_4 %float_4
418%217 = OpCompositeConstruct %mat3v3float %216 %216 %216
419%218 = OpCompositeExtract %v3float %217 0
420%219 = OpCompositeExtract %v3float %212 0
421%220 = OpFSub %v3float %218 %219
422%221 = OpCompositeExtract %v3float %217 1
423%222 = OpCompositeExtract %v3float %212 1
424%223 = OpFSub %v3float %221 %222
425%224 = OpCompositeExtract %v3float %217 2
426%225 = OpCompositeExtract %v3float %212 2
427%226 = OpFSub %v3float %224 %225
428%227 = OpCompositeConstruct %mat3v3float %220 %223 %226
429%228 = OpCompositeConstruct %v3float %float_2 %float_4 %float_4
430%229 = OpCompositeConstruct %v3float %float_4 %float_2 %float_4
431%230 = OpCompositeConstruct %v3float %float_4 %float_4 %float_2
432%231 = OpCompositeConstruct %mat3v3float %228 %229 %230
433%232 = OpCompositeExtract %v3float %227 0
434%233 = OpCompositeExtract %v3float %231 0
435%234 = OpFOrdEqual %v3bool %232 %233
436%235 = OpAll %bool %234
437%236 = OpCompositeExtract %v3float %227 1
438%237 = OpCompositeExtract %v3float %231 1
439%238 = OpFOrdEqual %v3bool %236 %237
440%239 = OpAll %bool %238
441%240 = OpLogicalAnd %bool %235 %239
442%241 = OpCompositeExtract %v3float %227 2
443%242 = OpCompositeExtract %v3float %231 2
444%243 = OpFOrdEqual %v3bool %241 %242
445%244 = OpAll %bool %243
446%245 = OpLogicalAnd %bool %240 %244
447OpBranch %211
448%211 = OpLabel
449%246 = OpPhi %bool %false %173 %245 %210
450OpStore %ok %246
451%247 = OpLoad %bool %ok
452OpSelectionMerge %249 None
453OpBranchConditional %247 %248 %249
454%248 = OpLabel
455%251 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
456%252 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
457%253 = OpCompositeConstruct %v3float %float_0 %float_0 %float_2
458%250 = OpCompositeConstruct %mat3v3float %251 %252 %253
459%254 = OpMatrixTimesScalar %mat3v3float %250 %float_4
460%256 = OpCompositeConstruct %v3float %float_8 %float_0 %float_0
461%257 = OpCompositeConstruct %v3float %float_0 %float_8 %float_0
462%258 = OpCompositeConstruct %v3float %float_0 %float_0 %float_8
463%255 = OpCompositeConstruct %mat3v3float %256 %257 %258
464%259 = OpCompositeExtract %v3float %254 0
465%260 = OpCompositeExtract %v3float %255 0
466%261 = OpFOrdEqual %v3bool %259 %260
467%262 = OpAll %bool %261
468%263 = OpCompositeExtract %v3float %254 1
469%264 = OpCompositeExtract %v3float %255 1
470%265 = OpFOrdEqual %v3bool %263 %264
471%266 = OpAll %bool %265
472%267 = OpLogicalAnd %bool %262 %266
473%268 = OpCompositeExtract %v3float %254 2
474%269 = OpCompositeExtract %v3float %255 2
475%270 = OpFOrdEqual %v3bool %268 %269
476%271 = OpAll %bool %270
477%272 = OpLogicalAnd %bool %267 %271
478OpBranch %249
479%249 = OpLabel
480%273 = OpPhi %bool %false %211 %272 %248
481OpStore %ok %273
482%274 = OpLoad %bool %ok
483OpSelectionMerge %276 None
484OpBranchConditional %274 %275 %276
485%275 = OpLabel
486%277 = OpCompositeConstruct %v2float %float_2 %float_2
487%278 = OpCompositeConstruct %v2float %float_2 %float_2
488%279 = OpCompositeConstruct %mat2v2float %277 %278
489%281 = OpCompositeConstruct %v2float %float_4 %float_4
490%282 = OpCompositeConstruct %mat2v2float %281 %281
491%283 = OpCompositeExtract %v2float %282 0
492%284 = OpCompositeExtract %v2float %279 0
493%285 = OpFDiv %v2float %283 %284
494%286 = OpCompositeExtract %v2float %282 1
495%287 = OpCompositeExtract %v2float %279 1
496%288 = OpFDiv %v2float %286 %287
497%289 = OpCompositeConstruct %mat2v2float %285 %288
498%290 = OpCompositeConstruct %v2float %float_2 %float_2
499%291 = OpCompositeConstruct %v2float %float_2 %float_2
500%292 = OpCompositeConstruct %mat2v2float %290 %291
501%294 = OpCompositeExtract %v2float %289 0
502%295 = OpCompositeExtract %v2float %292 0
503%296 = OpFOrdEqual %v2bool %294 %295
504%297 = OpAll %bool %296
505%298 = OpCompositeExtract %v2float %289 1
506%299 = OpCompositeExtract %v2float %292 1
507%300 = OpFOrdEqual %v2bool %298 %299
508%301 = OpAll %bool %300
509%302 = OpLogicalAnd %bool %297 %301
510OpBranch %276
511%276 = OpLabel
512%303 = OpPhi %bool %false %249 %302 %275
513OpStore %ok %303
514%304 = OpLoad %bool %ok
515OpReturnValue %304
516OpFunctionEnd
517%main = OpFunction %v4float None %305
518%306 = OpFunctionParameter %_ptr_Function_v2float
519%307 = OpLabel
520%_0_ok = OpVariable %_ptr_Function_bool Function
521%575 = OpVariable %_ptr_Function_v4float Function
522OpStore %_0_ok %true
523%309 = OpLoad %bool %_0_ok
524OpSelectionMerge %311 None
525OpBranchConditional %309 %310 %311
526%310 = OpLabel
527%313 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
528%314 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
529%315 = OpCompositeConstruct %v3float %float_0 %float_0 %float_2
530%312 = OpCompositeConstruct %mat3v3float %313 %314 %315
531%316 = OpCompositeConstruct %v3float %float_4 %float_4 %float_4
532%317 = OpCompositeConstruct %mat3v3float %316 %316 %316
533%318 = OpCompositeExtract %v3float %312 0
534%319 = OpCompositeExtract %v3float %317 0
535%320 = OpFAdd %v3float %318 %319
536%321 = OpCompositeExtract %v3float %312 1
537%322 = OpCompositeExtract %v3float %317 1
538%323 = OpFAdd %v3float %321 %322
539%324 = OpCompositeExtract %v3float %312 2
540%325 = OpCompositeExtract %v3float %317 2
541%326 = OpFAdd %v3float %324 %325
542%327 = OpCompositeConstruct %mat3v3float %320 %323 %326
543%328 = OpCompositeConstruct %v3float %float_6 %float_4 %float_4
544%329 = OpCompositeConstruct %v3float %float_4 %float_6 %float_4
545%330 = OpCompositeConstruct %v3float %float_4 %float_4 %float_6
546%331 = OpCompositeConstruct %mat3v3float %328 %329 %330
547%332 = OpCompositeExtract %v3float %327 0
548%333 = OpCompositeExtract %v3float %331 0
549%334 = OpFOrdEqual %v3bool %332 %333
550%335 = OpAll %bool %334
551%336 = OpCompositeExtract %v3float %327 1
552%337 = OpCompositeExtract %v3float %331 1
553%338 = OpFOrdEqual %v3bool %336 %337
554%339 = OpAll %bool %338
555%340 = OpLogicalAnd %bool %335 %339
556%341 = OpCompositeExtract %v3float %327 2
557%342 = OpCompositeExtract %v3float %331 2
558%343 = OpFOrdEqual %v3bool %341 %342
559%344 = OpAll %bool %343
560%345 = OpLogicalAnd %bool %340 %344
561OpBranch %311
562%311 = OpLabel
563%346 = OpPhi %bool %false %307 %345 %310
564OpStore %_0_ok %346
565%347 = OpLoad %bool %_0_ok
566OpSelectionMerge %349 None
567OpBranchConditional %347 %348 %349
568%348 = OpLabel
569%351 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
570%352 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
571%353 = OpCompositeConstruct %v3float %float_0 %float_0 %float_2
572%350 = OpCompositeConstruct %mat3v3float %351 %352 %353
573%354 = OpCompositeConstruct %v3float %float_4 %float_4 %float_4
574%355 = OpCompositeConstruct %mat3v3float %354 %354 %354
575%356 = OpCompositeExtract %v3float %350 0
576%357 = OpCompositeExtract %v3float %355 0
577%358 = OpFSub %v3float %356 %357
578%359 = OpCompositeExtract %v3float %350 1
579%360 = OpCompositeExtract %v3float %355 1
580%361 = OpFSub %v3float %359 %360
581%362 = OpCompositeExtract %v3float %350 2
582%363 = OpCompositeExtract %v3float %355 2
583%364 = OpFSub %v3float %362 %363
584%365 = OpCompositeConstruct %mat3v3float %358 %361 %364
585%366 = OpCompositeConstruct %v3float %float_n2 %float_n4 %float_n4
586%367 = OpCompositeConstruct %v3float %float_n4 %float_n2 %float_n4
587%368 = OpCompositeConstruct %v3float %float_n4 %float_n4 %float_n2
588%369 = OpCompositeConstruct %mat3v3float %366 %367 %368
589%370 = OpCompositeExtract %v3float %365 0
590%371 = OpCompositeExtract %v3float %369 0
591%372 = OpFOrdEqual %v3bool %370 %371
592%373 = OpAll %bool %372
593%374 = OpCompositeExtract %v3float %365 1
594%375 = OpCompositeExtract %v3float %369 1
595%376 = OpFOrdEqual %v3bool %374 %375
596%377 = OpAll %bool %376
597%378 = OpLogicalAnd %bool %373 %377
598%379 = OpCompositeExtract %v3float %365 2
599%380 = OpCompositeExtract %v3float %369 2
600%381 = OpFOrdEqual %v3bool %379 %380
601%382 = OpAll %bool %381
602%383 = OpLogicalAnd %bool %378 %382
603OpBranch %349
604%349 = OpLabel
605%384 = OpPhi %bool %false %311 %383 %348
606OpStore %_0_ok %384
607%385 = OpLoad %bool %_0_ok
608OpSelectionMerge %387 None
609OpBranchConditional %385 %386 %387
610%386 = OpLabel
611%389 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
612%390 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
613%391 = OpCompositeConstruct %v3float %float_0 %float_0 %float_2
614%388 = OpCompositeConstruct %mat3v3float %389 %390 %391
615%392 = OpMatrixTimesScalar %mat3v3float %388 %float_4
616%394 = OpCompositeConstruct %v3float %float_8 %float_0 %float_0
617%395 = OpCompositeConstruct %v3float %float_0 %float_8 %float_0
618%396 = OpCompositeConstruct %v3float %float_0 %float_0 %float_8
619%393 = OpCompositeConstruct %mat3v3float %394 %395 %396
620%397 = OpCompositeExtract %v3float %392 0
621%398 = OpCompositeExtract %v3float %393 0
622%399 = OpFOrdEqual %v3bool %397 %398
623%400 = OpAll %bool %399
624%401 = OpCompositeExtract %v3float %392 1
625%402 = OpCompositeExtract %v3float %393 1
626%403 = OpFOrdEqual %v3bool %401 %402
627%404 = OpAll %bool %403
628%405 = OpLogicalAnd %bool %400 %404
629%406 = OpCompositeExtract %v3float %392 2
630%407 = OpCompositeExtract %v3float %393 2
631%408 = OpFOrdEqual %v3bool %406 %407
632%409 = OpAll %bool %408
633%410 = OpLogicalAnd %bool %405 %409
634OpBranch %387
635%387 = OpLabel
636%411 = OpPhi %bool %false %349 %410 %386
637OpStore %_0_ok %411
638%412 = OpLoad %bool %_0_ok
639OpSelectionMerge %414 None
640OpBranchConditional %412 %413 %414
641%413 = OpLabel
642%416 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
643%417 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
644%418 = OpCompositeConstruct %v3float %float_0 %float_0 %float_2
645%415 = OpCompositeConstruct %mat3v3float %416 %417 %418
646%419 = OpMatrixTimesScalar %mat3v3float %415 %float_0_25
647%421 = OpCompositeConstruct %v3float %float_0_5 %float_0 %float_0
648%422 = OpCompositeConstruct %v3float %float_0 %float_0_5 %float_0
649%423 = OpCompositeConstruct %v3float %float_0 %float_0 %float_0_5
650%420 = OpCompositeConstruct %mat3v3float %421 %422 %423
651%424 = OpCompositeExtract %v3float %419 0
652%425 = OpCompositeExtract %v3float %420 0
653%426 = OpFOrdEqual %v3bool %424 %425
654%427 = OpAll %bool %426
655%428 = OpCompositeExtract %v3float %419 1
656%429 = OpCompositeExtract %v3float %420 1
657%430 = OpFOrdEqual %v3bool %428 %429
658%431 = OpAll %bool %430
659%432 = OpLogicalAnd %bool %427 %431
660%433 = OpCompositeExtract %v3float %419 2
661%434 = OpCompositeExtract %v3float %420 2
662%435 = OpFOrdEqual %v3bool %433 %434
663%436 = OpAll %bool %435
664%437 = OpLogicalAnd %bool %432 %436
665OpBranch %414
666%414 = OpLabel
667%438 = OpPhi %bool %false %387 %437 %413
668OpStore %_0_ok %438
669%439 = OpLoad %bool %_0_ok
670OpSelectionMerge %441 None
671OpBranchConditional %439 %440 %441
672%440 = OpLabel
673%443 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
674%444 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
675%445 = OpCompositeConstruct %v3float %float_0 %float_0 %float_2
676%442 = OpCompositeConstruct %mat3v3float %443 %444 %445
677%446 = OpCompositeConstruct %v3float %float_4 %float_4 %float_4
678%447 = OpCompositeConstruct %mat3v3float %446 %446 %446
679%448 = OpCompositeExtract %v3float %447 0
680%449 = OpCompositeExtract %v3float %442 0
681%450 = OpFAdd %v3float %448 %449
682%451 = OpCompositeExtract %v3float %447 1
683%452 = OpCompositeExtract %v3float %442 1
684%453 = OpFAdd %v3float %451 %452
685%454 = OpCompositeExtract %v3float %447 2
686%455 = OpCompositeExtract %v3float %442 2
687%456 = OpFAdd %v3float %454 %455
688%457 = OpCompositeConstruct %mat3v3float %450 %453 %456
689%458 = OpCompositeConstruct %v3float %float_6 %float_4 %float_4
690%459 = OpCompositeConstruct %v3float %float_4 %float_6 %float_4
691%460 = OpCompositeConstruct %v3float %float_4 %float_4 %float_6
692%461 = OpCompositeConstruct %mat3v3float %458 %459 %460
693%462 = OpCompositeExtract %v3float %457 0
694%463 = OpCompositeExtract %v3float %461 0
695%464 = OpFOrdEqual %v3bool %462 %463
696%465 = OpAll %bool %464
697%466 = OpCompositeExtract %v3float %457 1
698%467 = OpCompositeExtract %v3float %461 1
699%468 = OpFOrdEqual %v3bool %466 %467
700%469 = OpAll %bool %468
701%470 = OpLogicalAnd %bool %465 %469
702%471 = OpCompositeExtract %v3float %457 2
703%472 = OpCompositeExtract %v3float %461 2
704%473 = OpFOrdEqual %v3bool %471 %472
705%474 = OpAll %bool %473
706%475 = OpLogicalAnd %bool %470 %474
707OpBranch %441
708%441 = OpLabel
709%476 = OpPhi %bool %false %414 %475 %440
710OpStore %_0_ok %476
711%477 = OpLoad %bool %_0_ok
712OpSelectionMerge %479 None
713OpBranchConditional %477 %478 %479
714%478 = OpLabel
715%481 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
716%482 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
717%483 = OpCompositeConstruct %v3float %float_0 %float_0 %float_2
718%480 = OpCompositeConstruct %mat3v3float %481 %482 %483
719%484 = OpCompositeConstruct %v3float %float_4 %float_4 %float_4
720%485 = OpCompositeConstruct %mat3v3float %484 %484 %484
721%486 = OpCompositeExtract %v3float %485 0
722%487 = OpCompositeExtract %v3float %480 0
723%488 = OpFSub %v3float %486 %487
724%489 = OpCompositeExtract %v3float %485 1
725%490 = OpCompositeExtract %v3float %480 1
726%491 = OpFSub %v3float %489 %490
727%492 = OpCompositeExtract %v3float %485 2
728%493 = OpCompositeExtract %v3float %480 2
729%494 = OpFSub %v3float %492 %493
730%495 = OpCompositeConstruct %mat3v3float %488 %491 %494
731%496 = OpCompositeConstruct %v3float %float_2 %float_4 %float_4
732%497 = OpCompositeConstruct %v3float %float_4 %float_2 %float_4
733%498 = OpCompositeConstruct %v3float %float_4 %float_4 %float_2
734%499 = OpCompositeConstruct %mat3v3float %496 %497 %498
735%500 = OpCompositeExtract %v3float %495 0
736%501 = OpCompositeExtract %v3float %499 0
737%502 = OpFOrdEqual %v3bool %500 %501
738%503 = OpAll %bool %502
739%504 = OpCompositeExtract %v3float %495 1
740%505 = OpCompositeExtract %v3float %499 1
741%506 = OpFOrdEqual %v3bool %504 %505
742%507 = OpAll %bool %506
743%508 = OpLogicalAnd %bool %503 %507
744%509 = OpCompositeExtract %v3float %495 2
745%510 = OpCompositeExtract %v3float %499 2
746%511 = OpFOrdEqual %v3bool %509 %510
747%512 = OpAll %bool %511
748%513 = OpLogicalAnd %bool %508 %512
749OpBranch %479
750%479 = OpLabel
751%514 = OpPhi %bool %false %441 %513 %478
752OpStore %_0_ok %514
753%515 = OpLoad %bool %_0_ok
754OpSelectionMerge %517 None
755OpBranchConditional %515 %516 %517
756%516 = OpLabel
757%519 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
758%520 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
759%521 = OpCompositeConstruct %v3float %float_0 %float_0 %float_2
760%518 = OpCompositeConstruct %mat3v3float %519 %520 %521
761%522 = OpMatrixTimesScalar %mat3v3float %518 %float_4
762%524 = OpCompositeConstruct %v3float %float_8 %float_0 %float_0
763%525 = OpCompositeConstruct %v3float %float_0 %float_8 %float_0
764%526 = OpCompositeConstruct %v3float %float_0 %float_0 %float_8
765%523 = OpCompositeConstruct %mat3v3float %524 %525 %526
766%527 = OpCompositeExtract %v3float %522 0
767%528 = OpCompositeExtract %v3float %523 0
768%529 = OpFOrdEqual %v3bool %527 %528
769%530 = OpAll %bool %529
770%531 = OpCompositeExtract %v3float %522 1
771%532 = OpCompositeExtract %v3float %523 1
772%533 = OpFOrdEqual %v3bool %531 %532
773%534 = OpAll %bool %533
774%535 = OpLogicalAnd %bool %530 %534
775%536 = OpCompositeExtract %v3float %522 2
776%537 = OpCompositeExtract %v3float %523 2
777%538 = OpFOrdEqual %v3bool %536 %537
778%539 = OpAll %bool %538
779%540 = OpLogicalAnd %bool %535 %539
780OpBranch %517
781%517 = OpLabel
782%541 = OpPhi %bool %false %479 %540 %516
783OpStore %_0_ok %541
784%542 = OpLoad %bool %_0_ok
785OpSelectionMerge %544 None
786OpBranchConditional %542 %543 %544
787%543 = OpLabel
788%545 = OpCompositeConstruct %v2float %float_2 %float_2
789%546 = OpCompositeConstruct %v2float %float_2 %float_2
790%547 = OpCompositeConstruct %mat2v2float %545 %546
791%548 = OpCompositeConstruct %v2float %float_4 %float_4
792%549 = OpCompositeConstruct %mat2v2float %548 %548
793%550 = OpCompositeExtract %v2float %549 0
794%551 = OpCompositeExtract %v2float %547 0
795%552 = OpFDiv %v2float %550 %551
796%553 = OpCompositeExtract %v2float %549 1
797%554 = OpCompositeExtract %v2float %547 1
798%555 = OpFDiv %v2float %553 %554
799%556 = OpCompositeConstruct %mat2v2float %552 %555
800%557 = OpCompositeConstruct %v2float %float_2 %float_2
801%558 = OpCompositeConstruct %v2float %float_2 %float_2
802%559 = OpCompositeConstruct %mat2v2float %557 %558
803%560 = OpCompositeExtract %v2float %556 0
804%561 = OpCompositeExtract %v2float %559 0
805%562 = OpFOrdEqual %v2bool %560 %561
806%563 = OpAll %bool %562
807%564 = OpCompositeExtract %v2float %556 1
808%565 = OpCompositeExtract %v2float %559 1
809%566 = OpFOrdEqual %v2bool %564 %565
810%567 = OpAll %bool %566
811%568 = OpLogicalAnd %bool %563 %567
812OpBranch %544
813%544 = OpLabel
814%569 = OpPhi %bool %false %517 %568 %543
815OpStore %_0_ok %569
816%570 = OpLoad %bool %_0_ok
817OpSelectionMerge %572 None
818OpBranchConditional %570 %571 %572
819%571 = OpLabel
820%573 = OpFunctionCall %bool %test_half_b
821OpBranch %572
822%572 = OpLabel
823%574 = OpPhi %bool %false %544 %573 %571
824OpSelectionMerge %579 None
825OpBranchConditional %574 %577 %578
826%577 = OpLabel
827%580 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0
828%584 = OpLoad %v4float %580
829OpStore %575 %584
830OpBranch %579
831%578 = OpLabel
832%585 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1
833%587 = OpLoad %v4float %585
834OpStore %575 %587
835OpBranch %579
836%579 = OpLabel
837%588 = OpLoad %v4float %575
838OpReturnValue %588
839OpFunctionEnd
840