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