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