dawn-cmake/test/bug/tint/749.spvasm.expected.spvasm

2130 lines
84 KiB
Plaintext

; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 1887
; Schema: 0
OpCapability Shader
%1759 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %gl_FragCoord %x_GLF_color
OpExecutionMode %main OriginUpperLeft
OpName %QuicksortObject "QuicksortObject"
OpMemberName %QuicksortObject 0 "numbers"
OpName %obj "obj"
OpName %gl_FragCoord "gl_FragCoord"
OpName %buf0 "buf0"
OpMemberName %buf0 0 "resolution"
OpName %x_188 "x_188"
OpName %x_GLF_color "x_GLF_color"
OpName %swap_i1_i1_ "swap_i1_i1_"
OpName %i "i"
OpName %j "j"
OpName %temp "temp"
OpName %performPartition_i1_i1_ "performPartition_i1_i1_"
OpName %l "l"
OpName %h "h"
OpName %param_3 "param_3"
OpName %i_1 "i_1"
OpName %j_1 "j_1"
OpName %param_2 "param_2"
OpName %param_1 "param_1"
OpName %param "param"
OpName %pivot "pivot"
OpName %x_537 "x_537"
OpName %x_538 "x_538"
OpName %quicksort_ "quicksort_"
OpName %param_4 "param_4"
OpName %h_1 "h_1"
OpName %p "p"
OpName %l_1 "l_1"
OpName %top "top"
OpName %stack "stack"
OpName %param_5 "param_5"
OpName %main "main"
OpName %color "color"
OpName %i_2 "i_2"
OpName %uv "uv"
OpMemberDecorate %QuicksortObject 0 Offset 0
OpDecorate %_arr_int_uint_10 ArrayStride 4
OpDecorate %gl_FragCoord BuiltIn FragCoord
OpDecorate %buf0 Block
OpMemberDecorate %buf0 0 Offset 0
OpDecorate %x_188 DescriptorSet 0
OpDecorate %x_188 Binding 0
OpDecorate %x_GLF_color Location 0
%int = OpTypeInt 32 1
%uint = OpTypeInt 32 0
%uint_10 = OpConstant %uint 10
%_arr_int_uint_10 = OpTypeArray %int %uint_10
%QuicksortObject = OpTypeStruct %_arr_int_uint_10
%_ptr_Private_QuicksortObject = OpTypePointer Private %QuicksortObject
%8 = OpConstantNull %QuicksortObject
%obj = OpVariable %_ptr_Private_QuicksortObject Private %8
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%gl_FragCoord = OpVariable %_ptr_Input_v4float Input
%v2float = OpTypeVector %float 2
%buf0 = OpTypeStruct %v2float
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%x_188 = OpVariable %_ptr_Uniform_buf0 Uniform
%_ptr_Output_v4float = OpTypePointer Output %v4float
%19 = OpConstantNull %v4float
%x_GLF_color = OpVariable %_ptr_Output_v4float Output %19
%void = OpTypeVoid
%_ptr_Function_int = OpTypePointer Function %int
%20 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
%28 = OpConstantNull %int
%int_0 = OpConstant %int 0
%v3float = OpTypeVector %float 3
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%35 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%uint_0 = OpConstant %uint 0
%_ptr_Private_int = OpTypePointer Private %int
%103 = OpConstantComposite %_arr_int_uint_10 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0
%104 = OpConstantComposite %QuicksortObject %103
%157 = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_int
%_ptr_Function_v2float = OpTypePointer Function %v2float
%171 = OpConstantNull %v2float
%_ptr_Function_v3float = OpTypePointer Function %v3float
%174 = OpConstantNull %v3float
%uint_1 = OpConstant %uint 1
%int_10 = OpConstant %int 10
%_ptr_Function_float = OpTypePointer Function %float
%bool = OpTypeBool
%int_1 = OpConstant %int 1
%426 = OpTypeFunction %void
%_ptr_Function__arr_int_uint_10 = OpTypePointer Function %_arr_int_uint_10
%436 = OpConstantNull %_arr_int_uint_10
%int_9 = OpConstant %int 9
%int_n1 = OpConstant %int -1
%float_0 = OpConstant %float 0
%897 = OpConstantComposite %v2float %float_0 %float_0
%true = OpConstantTrue %bool
%909 = OpConstantComposite %v3float %float_0 %float_0 %float_0
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
%float_0_25 = OpConstant %float 0.25
%float_0_5 = OpConstant %float 0.5
%uint_2 = OpConstant %uint 2
%float_0_75 = OpConstant %float 0.75
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_5 = OpConstant %uint 5
%uint_6 = OpConstant %uint 6
%int_7 = OpConstant %int 7
%int_8 = OpConstant %int 8
%uint_9 = OpConstant %uint 9
%swap_i1_i1_ = OpFunction %void None %20
%i = OpFunctionParameter %_ptr_Function_int
%j = OpFunctionParameter %_ptr_Function_int
%26 = OpLabel
%temp = OpVariable %_ptr_Function_int Function %28
%29 = OpLoad %int %temp
OpStore %temp %int_0
OpStore %temp %29
%36 = OpCompositeExtract %float %35 2
%37 = OpCompositeExtract %float %35 1
%38 = OpCompositeExtract %float %35 2
%39 = OpCompositeConstruct %v3float %36 %37 %38
%41 = OpLoad %int %i
OpStore %i %int_0
OpStore %i %41
%45 = OpLoad %int %i
%47 = OpLoad %int %j
OpStore %j %int_0
OpStore %j %47
%50 = OpCompositeExtract %float %39 1
%51 = OpCompositeExtract %float %39 0
%52 = OpCompositeExtract %float %39 1
%53 = OpCompositeConstruct %v3float %50 %51 %52
%54 = OpLoad %int %temp
OpStore %temp %int_0
OpStore %temp %54
%58 = OpAccessChain %_ptr_Private_int %obj %uint_0 %45
%60 = OpLoad %int %58
OpStore %58 %int_0
OpStore %58 %60
%64 = OpLoad %int %58
%65 = OpLoad %int %temp
OpStore %temp %int_0
OpStore %temp %65
OpStore %temp %64
%67 = OpLoad %int %j
OpStore %j %int_0
OpStore %j %67
%70 = OpCompositeExtract %float %39 2
%71 = OpCompositeExtract %float %35 0
%72 = OpCompositeExtract %float %39 1
%73 = OpCompositeConstruct %v3float %70 %71 %72
%75 = OpLoad %int %i
OpStore %i %int_0
OpStore %i %75
%79 = OpLoad %int %i
%81 = OpLoad %int %58
OpStore %58 %int_0
OpStore %58 %81
%85 = OpLoad %int %j
%87 = OpLoad %int %i
OpStore %i %int_0
OpStore %i %87
%90 = OpCompositeExtract %float %73 0
%91 = OpCompositeExtract %float %73 2
%92 = OpCompositeExtract %float %73 2
%93 = OpCompositeConstruct %v3float %90 %91 %92
%95 = OpLoad %int %58
OpStore %58 %int_0
OpStore %58 %95
%99 = OpAccessChain %_ptr_Private_int %obj %uint_0 %85
%101 = OpLoad %int %99
%102 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %102
%105 = OpCompositeExtract %float %93 0
%106 = OpCompositeExtract %float %93 0
%107 = OpCompositeConstruct %v2float %105 %106
%109 = OpAccessChain %_ptr_Private_int %obj %uint_0 %79
%110 = OpCompositeExtract %float %53 0
%111 = OpCompositeExtract %float %53 2
%112 = OpCompositeExtract %float %53 0
%113 = OpCompositeConstruct %v3float %110 %111 %112
OpStore %109 %101
%115 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %115
%116 = OpCompositeExtract %float %93 1
%117 = OpCompositeExtract %float %93 2
%118 = OpCompositeExtract %float %93 0
%119 = OpCompositeConstruct %v3float %116 %117 %118
%121 = OpLoad %int %i
OpStore %i %int_0
OpStore %i %121
%125 = OpLoad %int %j
%126 = OpLoad %int %temp
OpStore %temp %int_0
OpStore %temp %126
%127 = OpCompositeExtract %float %119 2
%128 = OpCompositeExtract %float %119 1
%129 = OpCompositeConstruct %v2float %127 %128
%131 = OpLoad %int %99
OpStore %99 %int_0
OpStore %99 %131
%134 = OpLoad %int %temp
%136 = OpLoad %int %j
OpStore %j %int_0
OpStore %j %136
%139 = OpCompositeExtract %float %107 0
%140 = OpCompositeExtract %float %93 1
%141 = OpCompositeExtract %float %93 0
%142 = OpCompositeConstruct %v3float %139 %140 %141
%144 = OpLoad %int %109
OpStore %109 %int_0
OpStore %109 %144
%147 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %147
%148 = OpCompositeExtract %float %113 0
%149 = OpCompositeExtract %float %113 1
%150 = OpCompositeExtract %float %113 0
%151 = OpCompositeConstruct %v3float %148 %149 %150
%153 = OpLoad %int %99
OpStore %99 %int_0
OpStore %99 %153
%156 = OpAccessChain %_ptr_Private_int %obj %uint_0 %125
OpStore %156 %134
OpReturn
OpFunctionEnd
%performPartition_i1_i1_ = OpFunction %int None %157
%l = OpFunctionParameter %_ptr_Function_int
%h = OpFunctionParameter %_ptr_Function_int
%161 = OpLabel
%param_3 = OpVariable %_ptr_Function_int Function %28
%i_1 = OpVariable %_ptr_Function_int Function %28
%j_1 = OpVariable %_ptr_Function_int Function %28
%param_2 = OpVariable %_ptr_Function_int Function %28
%param_1 = OpVariable %_ptr_Function_int Function %28
%param = OpVariable %_ptr_Function_int Function %28
%pivot = OpVariable %_ptr_Function_int Function %28
%x_537 = OpVariable %_ptr_Function_v2float Function %171
%x_538 = OpVariable %_ptr_Function_v3float Function %174
%176 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %176
%180 = OpLoad %int %h
%182 = OpLoad %int %l
OpStore %l %int_0
OpStore %l %182
%186 = OpAccessChain %_ptr_Private_int %obj %uint_0 %180
%188 = OpLoad %int %186
OpStore %186 %int_0
OpStore %186 %188
%192 = OpLoad %int %186
%193 = OpLoad %int %param_3
OpStore %param_3 %int_0
OpStore %param_3 %193
%194 = OpCompositeExtract %float %35 2
%195 = OpCompositeExtract %float %35 0
%196 = OpCompositeExtract %float %35 2
%197 = OpCompositeConstruct %v3float %194 %195 %196
%198 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %198
OpStore %pivot %192
%200 = OpLoad %int %l
%202 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %202
%205 = OpLoad %int %j_1
OpStore %j_1 %int_0
OpStore %j_1 %205
%206 = OpCompositeExtract %float %197 1
%207 = OpCompositeExtract %float %197 2
%208 = OpCompositeExtract %float %197 1
%209 = OpCompositeConstruct %v3float %206 %207 %208
%211 = OpLoad %int %l
OpStore %l %int_0
OpStore %l %211
%214 = OpBitcast %int %uint_1
%216 = OpISub %int %200 %214
OpStore %i_1 %216
%218 = OpLoad %int %l
%219 = OpCompositeExtract %float %197 0
%220 = OpCompositeExtract %float %197 2
%221 = OpCompositeExtract %float %209 0
%222 = OpCompositeConstruct %v3float %219 %220 %221
OpStore %j_1 %int_10
%224 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %224
OpBranch %225
%225 = OpLabel
OpLoopMerge %226 %227 None
OpBranch %228
%228 = OpLabel
%229 = OpLoad %int %pivot
OpStore %pivot %int_0
OpStore %pivot %229
%230 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %230
%231 = OpLoad %int %j_1
%232 = OpLoad %int %pivot
OpStore %pivot %int_0
OpStore %pivot %232
%233 = OpCompositeExtract %float %35 1
%234 = OpCompositeExtract %float %35 2
%235 = OpCompositeConstruct %v2float %233 %234
OpStore %x_537 %235
%236 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %236
%238 = OpLoad %int %h
%240 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %240
%243 = OpLoad %int %param
OpStore %param %int_0
OpStore %param %243
%244 = OpLoad %int %j_1
OpStore %j_1 %int_0
OpStore %j_1 %244
%245 = OpCompositeExtract %float %197 0
%247 = OpAccessChain %_ptr_Function_float %x_537 %uint_1
%248 = OpLoad %float %247
%249 = OpCompositeExtract %float %197 2
%250 = OpCompositeConstruct %v3float %245 %248 %249
OpStore %x_538 %250
%251 = OpLoad %int %param
OpStore %param %int_0
OpStore %param %251
%252 = OpBitcast %int %uint_1
%253 = OpISub %int %238 %252
%254 = OpSLessThanEqual %bool %231 %253
OpSelectionMerge %256 None
OpBranchConditional %254 %257 %258
%257 = OpLabel
OpBranch %256
%258 = OpLabel
OpBranch %226
%256 = OpLabel
%259 = OpLoad %int %j_1
%261 = OpLoad %int %186
OpStore %186 %int_0
OpStore %186 %261
%265 = OpAccessChain %_ptr_Private_int %obj %uint_0 %259
%267 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %267
%270 = OpAccessChain %_ptr_Function_float %x_537 %uint_0
%271 = OpLoad %float %270
%272 = OpCompositeExtract %float %209 2
%273 = OpAccessChain %_ptr_Function_float %x_537 %uint_0
%274 = OpLoad %float %273
%275 = OpCompositeConstruct %v3float %271 %272 %274
%276 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %276
%278 = OpLoad %int %265
%279 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %279
%280 = OpLoad %int %pivot
%281 = OpCompositeExtract %float %35 1
%282 = OpCompositeExtract %float %197 2
%283 = OpCompositeConstruct %v2float %281 %282
%284 = OpLoad %int %i_1
OpStore %i_1 %int_0
OpStore %i_1 %284
%286 = OpLoad %int %l
OpStore %l %int_0
OpStore %l %286
%289 = OpCompositeExtract %float %197 1
%290 = OpCompositeExtract %float %197 0
%291 = OpCompositeExtract %float %197 1
%292 = OpCompositeConstruct %v3float %289 %290 %291
%293 = OpLoad %int %pivot
OpStore %pivot %int_0
OpStore %pivot %293
%294 = OpSLessThanEqual %bool %278 %280
OpSelectionMerge %295 None
OpBranchConditional %294 %296 %295
%296 = OpLabel
%297 = OpCompositeExtract %float %292 2
%298 = OpCompositeExtract %float %292 0
%299 = OpCompositeExtract %float %292 0
%300 = OpCompositeConstruct %v3float %297 %298 %299
%301 = OpLoad %int %param_3
OpStore %param_3 %int_0
OpStore %param_3 %301
%302 = OpLoad %int %i_1
%303 = OpLoad %int %pivot
OpStore %pivot %int_0
OpStore %pivot %303
%304 = OpCompositeExtract %float %275 0
%305 = OpCompositeExtract %float %292 1
%306 = OpCompositeConstruct %v2float %304 %305
%307 = OpLoad %int %i_1
OpStore %i_1 %int_0
OpStore %i_1 %307
%308 = OpLoad %int %param
OpStore %param %int_0
OpStore %param %308
%309 = OpBitcast %int %uint_1
%310 = OpIAdd %int %302 %309
OpStore %i_1 %310
%312 = OpLoad %int %l
OpStore %l %int_0
OpStore %l %312
%315 = OpCompositeExtract %float %35 2
%316 = OpCompositeExtract %float %35 1
%317 = OpCompositeExtract %float %283 0
%318 = OpCompositeConstruct %v3float %315 %316 %317
%319 = OpLoad %int %i_1
%320 = OpAccessChain %_ptr_Function_float %x_537 %uint_1
%321 = OpLoad %float %320
%322 = OpAccessChain %_ptr_Function_float %x_538 %uint_0
%323 = OpLoad %float %322
%324 = OpCompositeConstruct %v2float %321 %323
%325 = OpLoad %int %param
OpStore %param %int_0
OpStore %param %325
OpStore %param %319
%326 = OpLoad %int %param
OpStore %param %int_0
OpStore %param %326
%327 = OpCompositeExtract %float %324 0
%328 = OpCompositeExtract %float %324 0
%329 = OpCompositeConstruct %v2float %327 %328
%330 = OpLoad %int %i_1
OpStore %i_1 %int_0
OpStore %i_1 %330
%331 = OpLoad %int %j_1
OpStore %param_1 %331
%332 = OpLoad %int %param_3
OpStore %param_3 %int_0
OpStore %param_3 %332
%333 = OpFunctionCall %void %swap_i1_i1_ %param %param_1
%336 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %336
OpBranch %295
%295 = OpLabel
%337 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %337
OpBranch %227
%227 = OpLabel
%339 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %339
%342 = OpLoad %int %j_1
%344 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %344
%347 = OpCompositeExtract %float %275 0
%348 = OpCompositeExtract %float %292 2
%349 = OpCompositeExtract %float %292 2
%350 = OpCompositeConstruct %v3float %347 %348 %349
%352 = OpLoad %int %265
OpStore %265 %int_0
OpStore %265 %352
%355 = OpLoad %int %param
OpStore %param %int_0
OpStore %param %355
%357 = OpIAdd %int %int_1 %342
OpStore %j_1 %357
%358 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %358
%359 = OpCompositeExtract %float %292 1
%360 = OpCompositeExtract %float %292 2
%361 = OpCompositeExtract %float %292 0
%362 = OpCompositeConstruct %v3float %359 %360 %361
%364 = OpLoad %int %265
OpStore %265 %int_0
OpStore %265 %364
OpBranch %225
%226 = OpLabel
%367 = OpLoad %int %i_1
%369 = OpLoad %int %186
OpStore %186 %int_0
OpStore %186 %369
%372 = OpCompositeExtract %float %197 0
%373 = OpCompositeExtract %float %197 1
%374 = OpCompositeConstruct %v2float %372 %373
%375 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %375
%377 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %377
%380 = OpIAdd %int %int_1 %367
OpStore %i_1 %380
%381 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %381
%382 = OpLoad %int %i_1
%383 = OpLoad %int %j_1
OpStore %j_1 %int_0
OpStore %j_1 %383
%384 = OpCompositeExtract %float %197 0
%385 = OpCompositeExtract %float %197 0
%386 = OpCompositeConstruct %v2float %384 %385
%387 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %387
OpStore %param_2 %382
%388 = OpCompositeExtract %float %197 1
%389 = OpCompositeExtract %float %222 0
%390 = OpCompositeConstruct %v2float %388 %389
%391 = OpLoad %int %pivot
OpStore %pivot %int_0
OpStore %pivot %391
%393 = OpLoad %int %h
%394 = OpCompositeExtract %float %386 0
%395 = OpCompositeExtract %float %374 1
%396 = OpCompositeConstruct %v2float %394 %395
%398 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %398
OpStore %param_3 %393
%401 = OpLoad %int %i_1
OpStore %i_1 %int_0
OpStore %i_1 %401
%402 = OpCompositeExtract %float %374 1
%403 = OpCompositeExtract %float %396 0
%404 = OpCompositeConstruct %v2float %402 %403
%406 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %406
%409 = OpFunctionCall %void %swap_i1_i1_ %param_2 %param_3
%413 = OpLoad %int %l
OpStore %l %int_0
OpStore %l %413
%416 = OpCompositeExtract %float %222 2
%417 = OpCompositeExtract %float %35 1
%418 = OpCompositeConstruct %v2float %416 %417
%419 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %419
%420 = OpLoad %int %i_1
%421 = OpLoad %int %param
OpStore %param %int_0
OpStore %param %421
%422 = OpCompositeExtract %float %197 1
%423 = OpCompositeExtract %float %197 0
%424 = OpCompositeConstruct %v2float %422 %423
%425 = OpLoad %int %j_1
OpStore %j_1 %int_0
OpStore %j_1 %425
OpReturnValue %420
OpFunctionEnd
%quicksort_ = OpFunction %void None %426
%428 = OpLabel
%param_4 = OpVariable %_ptr_Function_int Function %28
%h_1 = OpVariable %_ptr_Function_int Function %28
%p = OpVariable %_ptr_Function_int Function %28
%l_1 = OpVariable %_ptr_Function_int Function %28
%top = OpVariable %_ptr_Function_int Function %28
%stack = OpVariable %_ptr_Function__arr_int_uint_10 Function %436
%param_5 = OpVariable %_ptr_Function_int Function %28
OpStore %l_1 %int_0
%438 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %438
OpStore %h_1 %int_9
%440 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %103
OpStore %stack %440
%441 = OpCompositeExtract %float %35 1
%442 = OpCompositeExtract %float %35 1
%443 = OpCompositeConstruct %v2float %441 %442
%444 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %444
OpStore %top %int_n1
%446 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %446
%447 = OpLoad %int %top
%448 = OpCompositeExtract %float %35 0
%449 = OpCompositeExtract %float %35 0
%450 = OpCompositeConstruct %v2float %448 %449
%451 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %451
%452 = OpBitcast %int %uint_1
%453 = OpIAdd %int %447 %452
%454 = OpLoad %int %top
OpStore %top %int_0
OpStore %top %454
%455 = OpCompositeExtract %float %443 1
%456 = OpCompositeExtract %float %450 1
%457 = OpCompositeConstruct %v2float %455 %456
%458 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %458
OpStore %top %453
%459 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %459
%460 = OpCompositeExtract %float %450 1
%461 = OpCompositeExtract %float %450 0
%462 = OpCompositeExtract %float %450 0
%463 = OpCompositeConstruct %v3float %460 %461 %462
%464 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %464
%465 = OpLoad %int %l_1
%466 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %466
%467 = OpCompositeExtract %float %463 1
%468 = OpCompositeExtract %float %463 0
%469 = OpCompositeExtract %float %450 0
%470 = OpCompositeConstruct %v3float %467 %468 %469
%472 = OpAccessChain %_ptr_Function_int %stack %453
%473 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %103
OpStore %stack %473
%474 = OpCompositeExtract %float %443 1
%475 = OpCompositeExtract %float %443 1
%476 = OpCompositeExtract %float %443 1
%477 = OpCompositeConstruct %v3float %474 %475 %476
%478 = OpLoad %int %l_1
OpStore %l_1 %int_0
OpStore %l_1 %int_0
OpStore %472 %465
%480 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %480
%481 = OpLoad %int %top
%482 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %482
%483 = OpCompositeExtract %float %35 2
%484 = OpCompositeExtract %float %457 1
%485 = OpCompositeExtract %float %35 1
%486 = OpCompositeConstruct %v3float %483 %484 %485
%488 = OpLoad %int %472
OpStore %472 %int_0
OpStore %472 %488
%491 = OpIAdd %int %481 %int_1
%493 = OpLoad %int %472
OpStore %472 %int_0
OpStore %472 %493
%496 = OpCompositeExtract %float %463 0
%497 = OpCompositeExtract %float %463 2
%498 = OpCompositeExtract %float %443 1
%499 = OpCompositeConstruct %v3float %496 %497 %498
OpStore %top %491
%500 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %500
%501 = OpLoad %int %h_1
%502 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %502
%503 = OpCompositeExtract %float %457 0
%504 = OpCompositeExtract %float %477 0
%505 = OpCompositeExtract %float %457 1
%506 = OpCompositeConstruct %v3float %503 %504 %505
%507 = OpLoad %int %l_1
OpStore %l_1 %int_0
OpStore %l_1 %507
%509 = OpAccessChain %_ptr_Function_int %stack %491
%510 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %510
%511 = OpCompositeExtract %float %506 2
%512 = OpCompositeExtract %float %506 2
%513 = OpCompositeConstruct %v2float %511 %512
%514 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %514
OpStore %509 %501
OpBranch %516
%516 = OpLabel
OpLoopMerge %517 %518 None
OpBranch %519
%519 = OpLabel
%520 = OpCompositeExtract %float %499 0
%521 = OpCompositeExtract %float %499 0
%522 = OpCompositeExtract %float %499 0
%523 = OpCompositeConstruct %v3float %520 %521 %522
%524 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %524
%525 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %103
OpStore %stack %525
%526 = OpLoad %int %top
%527 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %103
OpStore %stack %527
%528 = OpCompositeExtract %float %457 0
%529 = OpCompositeExtract %float %506 2
%530 = OpCompositeConstruct %v2float %528 %529
%531 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %531
%532 = OpBitcast %int %uint_0
%533 = OpSGreaterThanEqual %bool %526 %532
OpSelectionMerge %534 None
OpBranchConditional %533 %535 %536
%535 = OpLabel
OpBranch %534
%536 = OpLabel
OpBranch %517
%534 = OpLabel
%537 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %537
%538 = OpCompositeExtract %float %463 1
%539 = OpCompositeExtract %float %463 0
%540 = OpCompositeExtract %float %499 1
%541 = OpCompositeConstruct %v3float %538 %539 %540
%542 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %542
%543 = OpLoad %int %top
%544 = OpCompositeExtract %float %513 0
%545 = OpCompositeExtract %float %530 1
%546 = OpCompositeExtract %float %513 0
%547 = OpCompositeConstruct %v3float %544 %545 %546
%548 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %548
%549 = OpCompositeExtract %float %443 0
%550 = OpCompositeExtract %float %443 0
%551 = OpCompositeConstruct %v2float %549 %550
%552 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %552
%553 = OpBitcast %int %uint_1
%554 = OpISub %int %543 %553
OpStore %top %554
%555 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %555
%557 = OpAccessChain %_ptr_Function_int %stack %543
%559 = OpLoad %int %472
OpStore %472 %int_0
OpStore %472 %559
%563 = OpLoad %int %557
%564 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %103
OpStore %stack %564
%565 = OpCompositeExtract %float %463 1
%566 = OpCompositeExtract %float %463 0
%567 = OpCompositeExtract %float %506 1
%568 = OpCompositeConstruct %v3float %565 %566 %567
%569 = OpLoad %int %l_1
OpStore %l_1 %int_0
OpStore %l_1 %569
OpStore %h_1 %563
%570 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %103
OpStore %stack %570
%571 = OpCompositeExtract %float %486 1
%572 = OpCompositeExtract %float %477 1
%573 = OpCompositeConstruct %v2float %571 %572
%574 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %574
%575 = OpLoad %int %top
%576 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %576
%578 = OpLoad %int %509
OpStore %509 %int_0
OpStore %509 %578
%581 = OpCompositeExtract %float %35 1
%582 = OpCompositeExtract %float %35 2
%583 = OpCompositeConstruct %v2float %581 %582
%584 = OpISub %int %575 %int_1
OpStore %top %584
%585 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %585
%586 = OpCompositeExtract %float %551 1
%587 = OpCompositeExtract %float %513 0
%588 = OpCompositeExtract %float %551 1
%589 = OpCompositeConstruct %v3float %586 %587 %588
%590 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %590
%592 = OpAccessChain %_ptr_Function_int %stack %575
%593 = OpCompositeExtract %float %506 1
%594 = OpCompositeExtract %float %506 2
%595 = OpCompositeConstruct %v2float %593 %594
%597 = OpLoad %int %509
OpStore %509 %int_0
OpStore %509 %597
%601 = OpLoad %int %592
%602 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %602
%603 = OpCompositeExtract %float %583 1
%604 = OpCompositeExtract %float %583 1
%605 = OpCompositeExtract %float %513 0
%606 = OpCompositeConstruct %v3float %603 %604 %605
%607 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %607
OpStore %l_1 %601
%608 = OpLoad %int %top
OpStore %top %int_0
OpStore %top %608
%609 = OpLoad %int %l_1
OpStore %param_4 %609
%611 = OpLoad %int %557
OpStore %557 %int_0
OpStore %557 %611
%614 = OpCompositeExtract %float %547 1
%615 = OpCompositeExtract %float %547 2
%616 = OpCompositeConstruct %v2float %614 %615
%617 = OpLoad %int %h_1
%618 = OpCompositeExtract %float %457 0
%619 = OpCompositeExtract %float %35 1
%620 = OpCompositeConstruct %v2float %618 %619
OpStore %param_5 %617
%622 = OpLoad %int %509
OpStore %509 %int_0
OpStore %509 %622
%625 = OpFunctionCall %int %performPartition_i1_i1_ %param_4 %param_5
%628 = OpCompositeExtract %float %530 0
%629 = OpCompositeExtract %float %541 0
%630 = OpCompositeConstruct %v2float %628 %629
%631 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %631
OpStore %p %625
%632 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %632
%633 = OpLoad %int %p
%634 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %634
%635 = OpCompositeExtract %float %541 1
%636 = OpCompositeExtract %float %541 1
%637 = OpCompositeConstruct %v2float %635 %636
%638 = OpLoad %int %l_1
OpStore %l_1 %int_0
OpStore %l_1 %638
%639 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %639
%640 = OpLoad %int %l_1
%642 = OpLoad %int %557
OpStore %557 %int_0
OpStore %557 %642
%645 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %645
%646 = OpCompositeExtract %float %530 1
%647 = OpCompositeExtract %float %583 0
%648 = OpCompositeConstruct %v2float %646 %647
%650 = OpLoad %int %509
OpStore %509 %int_0
OpStore %509 %650
%653 = OpBitcast %int %uint_1
%654 = OpISub %int %633 %653
%655 = OpSGreaterThan %bool %654 %640
OpSelectionMerge %656 None
OpBranchConditional %655 %657 %656
%657 = OpLabel
%658 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %658
%659 = OpLoad %int %top
%660 = OpCompositeExtract %float %568 1
%661 = OpCompositeExtract %float %443 1
%662 = OpCompositeConstruct %v2float %660 %661
%664 = OpLoad %int %509
OpStore %509 %int_0
OpStore %509 %664
%667 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %103
OpStore %stack %667
%668 = OpCompositeExtract %float %547 2
%669 = OpCompositeExtract %float %547 1
%670 = OpCompositeConstruct %v2float %668 %669
%671 = OpCompositeExtract %float %637 1
%672 = OpCompositeExtract %float %616 0
%673 = OpCompositeExtract %float %616 0
%674 = OpCompositeConstruct %v3float %671 %672 %673
%675 = OpLoad %int %l_1
%677 = OpLoad %int %592
OpStore %592 %int_0
OpStore %592 %677
%680 = OpCompositeExtract %float %506 0
%681 = OpCompositeExtract %float %674 0
%682 = OpCompositeConstruct %v2float %680 %681
%683 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %683
%685 = OpIAdd %int %int_1 %659
%686 = OpAccessChain %_ptr_Function_int %stack %685
%688 = OpLoad %int %557
OpStore %557 %int_0
OpStore %557 %688
%691 = OpCompositeExtract %float %523 1
%692 = OpCompositeExtract %float %523 1
%693 = OpCompositeExtract %float %499 0
%694 = OpCompositeConstruct %v3float %691 %692 %693
%695 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %695
OpStore %686 %675
%697 = OpLoad %int %top
%699 = OpLoad %int %509
OpStore %509 %int_0
OpStore %509 %699
%702 = OpCompositeExtract %float %595 1
%703 = OpCompositeExtract %float %595 0
%704 = OpCompositeConstruct %v2float %702 %703
%706 = OpLoad %int %686
OpStore %686 %int_0
OpStore %686 %706
%710 = OpBitcast %uint %697
%711 = OpIAdd %uint %uint_1 %710
%709 = OpBitcast %int %711
%713 = OpLoad %int %509
OpStore %509 %int_0
OpStore %509 %713
%716 = OpCompositeExtract %float %606 2
%717 = OpCompositeExtract %float %704 1
%718 = OpCompositeExtract %float %606 2
%719 = OpCompositeConstruct %v3float %716 %717 %718
%720 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %720
OpStore %top %709
%721 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %103
OpStore %stack %721
%722 = OpLoad %int %p
%723 = OpCompositeExtract %float %606 0
%724 = OpCompositeExtract %float %583 1
%725 = OpCompositeConstruct %v2float %723 %724
%727 = OpLoad %int %592
OpStore %592 %int_0
OpStore %592 %727
%731 = OpAccessChain %_ptr_Function_int %stack %709
%733 = OpLoad %int %592
OpStore %592 %int_0
OpStore %592 %733
%737 = OpBitcast %int %uint_1
%738 = OpISub %int %722 %737
OpStore %731 %738
%740 = OpLoad %int %472
OpStore %472 %int_0
OpStore %472 %740
%743 = OpCompositeExtract %float %547 2
%744 = OpCompositeExtract %float %547 1
%745 = OpCompositeConstruct %v2float %743 %744
%747 = OpLoad %int %731
OpStore %731 %int_0
OpStore %731 %747
OpBranch %656
%656 = OpLabel
%751 = OpLoad %int %472
OpStore %472 %int_0
OpStore %472 %751
%754 = OpCompositeExtract %float %35 0
%755 = OpCompositeExtract %float %35 1
%756 = OpCompositeConstruct %v2float %754 %755
%757 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %757
%758 = OpLoad %int %p
%760 = OpLoad %int %592
OpStore %592 %int_0
OpStore %592 %760
%763 = OpCompositeExtract %float %568 2
%764 = OpCompositeExtract %float %443 0
%765 = OpCompositeExtract %float %443 1
%766 = OpCompositeConstruct %v3float %763 %764 %765
%767 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %767
%768 = OpCompositeExtract %float %499 2
%769 = OpCompositeExtract %float %499 0
%770 = OpCompositeExtract %float %595 0
%771 = OpCompositeConstruct %v3float %768 %769 %770
%773 = OpLoad %int %592
OpStore %592 %int_0
OpStore %592 %773
%776 = OpLoad %int %h_1
%777 = OpLoad %int %top
OpStore %top %int_0
OpStore %top %777
%778 = OpCompositeExtract %float %470 2
%779 = OpCompositeExtract %float %541 0
%780 = OpCompositeExtract %float %470 0
%781 = OpCompositeConstruct %v3float %778 %779 %780
%783 = OpLoad %int %509
OpStore %509 %int_0
OpStore %509 %783
%786 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %786
%788 = OpBitcast %uint %758
%789 = OpIAdd %uint %uint_1 %788
%787 = OpBitcast %int %789
%790 = OpSLessThan %bool %787 %776
OpSelectionMerge %791 None
OpBranchConditional %790 %792 %791
%792 = OpLabel
%794 = OpLoad %int %592
OpStore %592 %int_0
OpStore %592 %794
%797 = OpCompositeExtract %float %756 1
%798 = OpCompositeExtract %float %648 0
%799 = OpCompositeConstruct %v2float %797 %798
%800 = OpLoad %int %l_1
OpStore %l_1 %int_0
OpStore %l_1 %800
%801 = OpLoad %int %top
%803 = OpLoad %int %592
OpStore %592 %int_0
OpStore %592 %803
%806 = OpCompositeExtract %float %486 1
%807 = OpCompositeExtract %float %470 1
%808 = OpCompositeExtract %float %470 1
%809 = OpCompositeConstruct %v3float %806 %807 %808
%810 = OpIAdd %int %801 %int_1
%811 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %811
OpStore %top %810
%813 = OpLoad %int %592
OpStore %592 %int_0
OpStore %592 %813
%816 = OpLoad %int %p
%817 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %817
%818 = OpCompositeExtract %float %470 2
%819 = OpCompositeExtract %float %470 0
%820 = OpCompositeExtract %float %541 0
%821 = OpCompositeConstruct %v3float %818 %819 %820
%822 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %822
%823 = OpCompositeExtract %float %443 0
%824 = OpCompositeExtract %float %637 0
%825 = OpCompositeExtract %float %637 0
%826 = OpCompositeConstruct %v3float %823 %824 %825
%828 = OpLoad %int %509
OpStore %509 %int_0
OpStore %509 %828
%832 = OpAccessChain %_ptr_Function_int %stack %810
%834 = OpLoad %int %557
OpStore %557 %int_0
OpStore %557 %834
%837 = OpCompositeExtract %float %499 0
%838 = OpCompositeExtract %float %499 1
%839 = OpCompositeConstruct %v2float %837 %838
%842 = OpBitcast %uint %816
%843 = OpIAdd %uint %uint_1 %842
%841 = OpBitcast %int %843
OpStore %832 %841
%844 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %103
OpStore %stack %844
%845 = OpLoad %int %top
%847 = OpLoad %int %592
OpStore %592 %int_0
OpStore %592 %847
%850 = OpCompositeExtract %float %513 1
%851 = OpCompositeExtract %float %821 1
%852 = OpCompositeConstruct %v2float %850 %851
%853 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %103
OpStore %stack %853
%854 = OpBitcast %int %uint_1
%855 = OpIAdd %int %845 %854
%857 = OpLoad %int %832
OpStore %832 %int_0
OpStore %832 %857
OpStore %top %855
%860 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %860
%861 = OpLoad %int %h_1
%863 = OpLoad %int %509
OpStore %509 %int_0
OpStore %509 %863
%867 = OpLoad %int %472
OpStore %472 %int_0
OpStore %472 %867
%870 = OpAccessChain %_ptr_Function_int %stack %855
OpStore %870 %861
%872 = OpLoad %int %592
OpStore %592 %int_0
OpStore %592 %872
%875 = OpCompositeExtract %float %541 1
%876 = OpCompositeExtract %float %506 0
%877 = OpCompositeExtract %float %506 0
%878 = OpCompositeConstruct %v3float %875 %876 %877
%879 = OpLoad %int %l_1
OpStore %l_1 %int_0
OpStore %l_1 %879
OpBranch %791
%791 = OpLabel
%881 = OpLoad %int %509
OpStore %509 %int_0
OpStore %509 %881
OpBranch %518
%518 = OpLabel
%884 = OpLoad %int %l_1
OpStore %l_1 %int_0
OpStore %l_1 %884
%885 = OpCompositeExtract %float %499 2
%886 = OpCompositeExtract %float %506 0
%887 = OpCompositeConstruct %v2float %885 %886
%888 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %888
OpBranch %516
%517 = OpLabel
%889 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %889
OpReturn
OpFunctionEnd
%main = OpFunction %void None %426
%891 = OpLabel
%color = OpVariable %_ptr_Function_v3float Function %174
%i_2 = OpVariable %_ptr_Function_int Function %28
%uv = OpVariable %_ptr_Function_v2float Function %171
%895 = OpLoad %v2float %uv
OpStore %uv %897
OpStore %uv %895
OpStore %i_2 %int_0
%898 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %898
OpSelectionMerge %900 None
OpBranchConditional %true %901 %900
%901 = OpLabel
%902 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %902
%903 = OpCompositeExtract %float %35 0
%904 = OpCompositeExtract %float %35 0
%905 = OpCompositeConstruct %v2float %903 %904
%906 = OpLoad %int %i_2
%907 = OpLoad %v2float %uv
OpStore %uv %897
OpStore %uv %907
%908 = OpLoad %v3float %color
OpStore %color %909
OpStore %color %908
%910 = OpCompositeExtract %float %905 1
%911 = OpCompositeExtract %float %905 1
%912 = OpCompositeConstruct %v2float %910 %911
%913 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %913
OpBranch %900
%900 = OpLabel
%914 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %914
%915 = OpCompositeExtract %float %897 0
%916 = OpCompositeExtract %float %897 0
%917 = OpCompositeConstruct %v2float %915 %916
%918 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %918
%919 = OpFunctionCall %void %quicksort_
%920 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %920
%921 = OpLoad %v4float %gl_FragCoord
%922 = OpLoad %v2float %uv
OpStore %uv %897
OpStore %uv %922
%923 = OpCompositeExtract %float %897 1
%924 = OpCompositeExtract %float %897 1
%925 = OpCompositeConstruct %v2float %923 %924
%926 = OpLoad %v2float %uv
OpStore %uv %897
OpStore %uv %926
%927 = OpCompositeExtract %float %921 0
%928 = OpCompositeExtract %float %921 1
%929 = OpCompositeConstruct %v2float %927 %928
%930 = OpCompositeExtract %float %929 1
%931 = OpCompositeExtract %float %917 1
%932 = OpCompositeExtract %float %917 1
%933 = OpCompositeConstruct %v3float %930 %931 %932
%934 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %934
%935 = OpLoad %v2float %uv
OpStore %uv %897
OpStore %uv %935
%937 = OpAccessChain %_ptr_Uniform_v2float %x_188 %uint_0
%938 = OpLoad %v2float %937
%939 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %939
%940 = OpCompositeExtract %float %921 1
%941 = OpCompositeExtract %float %35 2
%942 = OpCompositeExtract %float %921 3
%943 = OpCompositeConstruct %v3float %940 %941 %942
%944 = OpLoad %v3float %color
OpStore %color %909
OpStore %color %944
%945 = OpFDiv %v2float %929 %938
%946 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %946
%947 = OpCompositeExtract %float %925 0
%948 = OpCompositeExtract %float %929 1
%949 = OpCompositeConstruct %v2float %947 %948
%950 = OpLoad %v3float %color
OpStore %color %909
%951 = OpLoad %v3float %color
OpStore %color %909
OpStore %color %951
OpStore %color %950
OpStore %uv %945
OpStore %color %35
%952 = OpLoad %v3float %color
OpStore %color %909
OpStore %color %952
%953 = OpCompositeExtract %float %929 0
%954 = OpCompositeExtract %float %929 1
%955 = OpCompositeExtract %float %917 1
%956 = OpCompositeConstruct %v3float %953 %954 %955
%957 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %957
%959 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
%961 = OpLoad %int %959
OpStore %959 %int_0
OpStore %959 %961
%965 = OpLoad %int %959
%966 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %966
%968 = OpAccessChain %_ptr_Function_float %color %uint_0
%970 = OpLoad %int %959
OpStore %959 %int_0
OpStore %959 %970
%974 = OpLoad %float %968
%976 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %976
%979 = OpCompositeExtract %float %35 2
%980 = OpCompositeExtract %float %35 1
%981 = OpCompositeConstruct %v2float %979 %980
%982 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %982
%983 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %983
%985 = OpAccessChain %_ptr_Function_float %color %uint_0
%986 = OpCompositeExtract %float %956 0
%987 = OpCompositeExtract %float %949 0
%988 = OpCompositeExtract %float %949 1
%989 = OpCompositeConstruct %v3float %986 %987 %988
%991 = OpConvertSToF %float %965
%992 = OpFAdd %float %974 %991
OpStore %985 %992
%993 = OpLoad %v2float %uv
OpStore %uv %897
OpStore %uv %993
%995 = OpAccessChain %_ptr_Function_float %uv %uint_0
%996 = OpLoad %v2float %uv
OpStore %uv %897
OpStore %uv %996
%997 = OpCompositeExtract %float %921 1
%998 = OpCompositeExtract %float %921 1
%999 = OpCompositeConstruct %v2float %997 %998
%1001 = OpLoad %float %995
%1002 = OpCompositeExtract %float %945 1
%1003 = OpCompositeExtract %float %945 0
%1004 = OpCompositeConstruct %v2float %1002 %1003
%1006 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1006
%1009 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %1009
%1011 = OpFOrdGreaterThan %bool %1001 %float_0_25
OpSelectionMerge %1012 None
OpBranchConditional %1011 %1013 %1012
%1013 = OpLabel
%1014 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1014
%1016 = OpLoad %int %959
OpStore %959 %int_0
OpStore %959 %1016
%1019 = OpCompositeExtract %float %897 1
%1020 = OpCompositeExtract %float %933 1
%1021 = OpCompositeExtract %float %933 1
%1022 = OpCompositeConstruct %v3float %1019 %1020 %1021
%1024 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1024
%1027 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_1
%1028 = OpLoad %int %1027
%1029 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %1029
%1030 = OpCompositeExtract %float %999 0
%1031 = OpCompositeExtract %float %999 0
%1032 = OpCompositeConstruct %v2float %1030 %1031
%1033 = OpLoad %v2float %uv
OpStore %uv %897
OpStore %uv %1033
%1035 = OpAccessChain %_ptr_Function_float %color %int_0
%1036 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %1036
%1037 = OpCompositeExtract %float %35 2
%1038 = OpCompositeExtract %float %897 1
%1039 = OpCompositeConstruct %v2float %1037 %1038
%1040 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1040
%1042 = OpLoad %float %1035
%1044 = OpLoad %float %1035
OpStore %1035 %float_0
OpStore %1035 %1044
%1047 = OpLoad %v3float %color
OpStore %color %909
OpStore %color %1047
%1048 = OpLoad %v3float %color
OpStore %color %909
OpStore %color %1048
%1049 = OpCompositeExtract %float %999 1
%1050 = OpCompositeExtract %float %999 1
%1051 = OpCompositeExtract %float %925 1
%1052 = OpCompositeConstruct %v3float %1049 %1050 %1051
%1054 = OpLoad %float %1035
OpStore %1035 %float_0
OpStore %1035 %1054
%1057 = OpAccessChain %_ptr_Function_float %color %uint_0
%1058 = OpConvertSToF %float %1028
%1059 = OpFAdd %float %1058 %1042
OpStore %1057 %1059
%1061 = OpLoad %int %959
OpStore %959 %int_0
OpStore %959 %1061
OpBranch %1012
%1012 = OpLabel
%1065 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1065
%1069 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1071 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1071
%1075 = OpLoad %float %1069
%1077 = OpLoad %float %1069
OpStore %1069 %float_0
OpStore %1069 %1077
%1080 = OpCompositeExtract %float %989 2
%1081 = OpCompositeExtract %float %989 1
%1082 = OpCompositeExtract %float %989 1
%1083 = OpCompositeConstruct %v3float %1080 %1081 %1082
%1084 = OpLoad %v2float %uv
OpStore %uv %897
OpStore %uv %1084
%1086 = OpLoad %float %1069
OpStore %1069 %float_0
OpStore %1069 %1086
%1089 = OpCompositeExtract %float %897 1
%1090 = OpCompositeExtract %float %897 1
%1091 = OpCompositeConstruct %v2float %1089 %1090
%1093 = OpLoad %float %1069
OpStore %1069 %float_0
OpStore %1069 %1093
%1097 = OpFOrdGreaterThan %bool %1075 %float_0_5
OpSelectionMerge %1098 None
OpBranchConditional %1097 %1099 %1098
%1099 = OpLabel
%1101 = OpLoad %float %1069
OpStore %1069 %float_0
OpStore %1069 %1101
%1104 = OpCompositeExtract %float %917 0
%1105 = OpCompositeExtract %float %917 0
%1106 = OpCompositeConstruct %v2float %1104 %1105
%1108 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %1108
%1113 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
%1115 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %1115
%1118 = OpCompositeExtract %float %989 0
%1119 = OpCompositeExtract %float %989 2
%1120 = OpCompositeExtract %float %1091 1
%1121 = OpCompositeConstruct %v3float %1118 %1119 %1120
%1123 = OpLoad %float %985
OpStore %985 %float_0
OpStore %985 %1123
%1127 = OpLoad %int %1113
%1129 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1129
%1133 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %1133
%1137 = OpAccessChain %_ptr_Function_float %color %uint_1
%1139 = OpLoad %int %1113
OpStore %1113 %int_0
OpStore %1113 %1139
%1142 = OpCompositeExtract %float %949 1
%1143 = OpCompositeExtract %float %938 0
%1144 = OpCompositeConstruct %v2float %1142 %1143
%1146 = OpLoad %float %1137
OpStore %1137 %float_0
OpStore %1137 %1146
%1150 = OpLoad %float %1137
%1152 = OpLoad %int %1113
OpStore %1113 %int_0
OpStore %1113 %1152
%1155 = OpCompositeExtract %float %1121 0
%1156 = OpCompositeExtract %float %929 0
%1157 = OpCompositeConstruct %v2float %1155 %1156
%1159 = OpLoad %float %985
OpStore %985 %float_0
OpStore %985 %1159
%1162 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1162
%1163 = OpCompositeExtract %float %1004 1
%1164 = OpCompositeExtract %float %897 1
%1165 = OpCompositeConstruct %v2float %1163 %1164
%1166 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1166
%1167 = OpAccessChain %_ptr_Function_float %color %uint_1
%1168 = OpConvertSToF %float %1127
%1169 = OpFAdd %float %1168 %1150
OpStore %1167 %1169
%1171 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1171
OpBranch %1098
%1098 = OpLabel
%1175 = OpAccessChain %_ptr_Function_float %uv %int_0
%1176 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1176
%1177 = OpCompositeExtract %float %938 0
%1178 = OpCompositeExtract %float %938 0
%1179 = OpCompositeConstruct %v2float %1177 %1178
%1181 = OpLoad %float %1069
OpStore %1069 %float_0
OpStore %1069 %1181
%1185 = OpLoad %float %1175
%1186 = OpLoad %v3float %color
OpStore %color %909
OpStore %color %1186
%1188 = OpLoad %float %985
OpStore %985 %float_0
OpStore %985 %1188
%1192 = OpFOrdGreaterThan %bool %1185 %float_0_75
OpSelectionMerge %1193 None
OpBranchConditional %1192 %1194 %1193
%1194 = OpLabel
%1196 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %1196
%1200 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_3
%1201 = OpLoad %int %1200
%1203 = OpLoad %float %985
OpStore %985 %float_0
OpStore %985 %1203
%1206 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %1206
%1207 = OpCompositeExtract %float %1179 0
%1208 = OpCompositeExtract %float %1179 0
%1209 = OpCompositeExtract %float %1179 0
%1210 = OpCompositeConstruct %v3float %1207 %1208 %1209
%1212 = OpLoad %float %1175
OpStore %1175 %float_0
OpStore %1175 %1212
%1216 = OpAccessChain %_ptr_Function_float %color %uint_2
%1218 = OpLoad %float %1069
OpStore %1069 %float_0
OpStore %1069 %1218
%1222 = OpLoad %float %1216
%1223 = OpLoad %v3float %color
OpStore %color %909
OpStore %color %1223
%1224 = OpCompositeExtract %float %1179 0
%1225 = OpCompositeExtract %float %938 1
%1226 = OpCompositeExtract %float %1179 1
%1227 = OpCompositeConstruct %v3float %1224 %1225 %1226
%1229 = OpLoad %float %1216
OpStore %1216 %float_0
OpStore %1216 %1229
%1233 = OpLoad %int %959
OpStore %959 %int_0
OpStore %959 %1233
%1236 = OpCompositeExtract %float %897 0
%1237 = OpCompositeExtract %float %897 1
%1238 = OpCompositeConstruct %v2float %1236 %1237
%1240 = OpLoad %float %1216
OpStore %1216 %float_0
OpStore %1216 %1240
%1243 = OpAccessChain %_ptr_Function_float %color %uint_2
%1244 = OpConvertSToF %float %1201
%1245 = OpFAdd %float %1222 %1244
OpStore %1243 %1245
%1246 = OpLoad %v2float %uv
OpStore %uv %897
OpStore %uv %1246
%1247 = OpCompositeExtract %float %1238 1
%1248 = OpCompositeExtract %float %1238 1
%1249 = OpCompositeConstruct %v2float %1247 %1248
OpBranch %1193
%1193 = OpLabel
%1251 = OpLoad %float %1175
OpStore %1175 %float_0
OpStore %1175 %1251
%1254 = OpCompositeExtract %float %999 0
%1255 = OpCompositeExtract %float %999 1
%1256 = OpCompositeExtract %float %999 1
%1257 = OpCompositeConstruct %v3float %1254 %1255 %1256
%1260 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
%1262 = OpLoad %int %1260
%1264 = OpLoad %float %1175
OpStore %1175 %float_0
OpStore %1175 %1264
%1267 = OpLoad %v3float %color
OpStore %color %909
OpStore %color %1267
%1268 = OpCompositeExtract %float %917 1
%1269 = OpCompositeExtract %float %989 0
%1270 = OpCompositeExtract %float %989 0
%1271 = OpCompositeConstruct %v3float %1268 %1269 %1270
%1273 = OpLoad %int %1260
OpStore %1260 %int_0
OpStore %1260 %1273
%1277 = OpAccessChain %_ptr_Function_float %color %uint_1
%1278 = OpCompositeExtract %float %938 0
%1279 = OpCompositeExtract %float %921 2
%1280 = OpCompositeConstruct %v2float %1278 %1279
%1282 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1282
%1286 = OpLoad %float %1277
%1288 = OpLoad %float %1277
OpStore %1277 %float_0
OpStore %1277 %1288
%1291 = OpCompositeExtract %float %1179 0
%1292 = OpCompositeExtract %float %949 0
%1293 = OpCompositeConstruct %v2float %1291 %1292
%1295 = OpLoad %float %1069
OpStore %1069 %float_0
OpStore %1069 %1295
%1299 = OpAccessChain %_ptr_Function_float %color %uint_1
%1301 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %1301
%1304 = OpCompositeExtract %float %956 2
%1305 = OpCompositeExtract %float %1083 1
%1306 = OpCompositeConstruct %v2float %1304 %1305
%1308 = OpConvertSToF %float %1262
%1309 = OpFAdd %float %1286 %1308
OpStore %1299 %1309
%1310 = OpCompositeExtract %float %897 0
%1311 = OpCompositeExtract %float %1257 0
%1312 = OpCompositeExtract %float %897 1
%1313 = OpCompositeConstruct %v3float %1310 %1311 %1312
%1315 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1315
%1319 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1321 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %1321
%1324 = OpCompositeExtract %float %1257 0
%1325 = OpCompositeExtract %float %1257 1
%1326 = OpCompositeConstruct %v2float %1324 %1325
%1328 = OpLoad %float %1319
OpStore %1319 %float_0
OpStore %1319 %1328
%1332 = OpLoad %float %1319
%1333 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1333
%1334 = OpCompositeExtract %float %897 1
%1335 = OpCompositeExtract %float %999 1
%1336 = OpCompositeExtract %float %897 0
%1337 = OpCompositeConstruct %v3float %1334 %1335 %1336
%1339 = OpLoad %int %959
OpStore %959 %int_0
OpStore %959 %1339
%1343 = OpLoad %float %1299
OpStore %1299 %float_0
OpStore %1299 %1343
%1346 = OpCompositeExtract %float %917 0
%1347 = OpCompositeExtract %float %917 0
%1348 = OpCompositeExtract %float %897 1
%1349 = OpCompositeConstruct %v3float %1346 %1347 %1348
%1351 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1351
%1354 = OpFOrdGreaterThan %bool %1332 %float_0_25
OpSelectionMerge %1355 None
OpBranchConditional %1354 %1356 %1355
%1356 = OpLabel
%1357 = OpCompositeExtract %float %925 0
%1358 = OpCompositeExtract %float %1349 2
%1359 = OpCompositeConstruct %v2float %1357 %1358
%1360 = OpLoad %v3float %color
OpStore %color %909
OpStore %color %1360
%1362 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_5
%1363 = OpLoad %int %1362
%1365 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %1365
%1368 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1368
%1369 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1369
%1370 = OpAccessChain %_ptr_Function_float %color %uint_0
%1371 = OpLoad %float %1370
%1373 = OpLoad %float %1175
OpStore %1175 %float_0
OpStore %1175 %1373
%1376 = OpCompositeExtract %float %1004 0
%1377 = OpCompositeExtract %float %1293 1
%1378 = OpCompositeExtract %float %1004 1
%1379 = OpCompositeConstruct %v3float %1376 %1377 %1378
%1380 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %1380
%1382 = OpLoad %float %1319
OpStore %1319 %float_0
OpStore %1319 %1382
%1385 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1385
%1386 = OpCompositeExtract %float %921 3
%1387 = OpCompositeExtract %float %921 3
%1388 = OpCompositeExtract %float %945 0
%1389 = OpCompositeConstruct %v3float %1386 %1387 %1388
%1391 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1391
%1394 = OpAccessChain %_ptr_Function_float %color %uint_0
%1395 = OpConvertSToF %float %1363
%1396 = OpFAdd %float %1395 %1371
OpStore %1394 %1396
%1397 = OpCompositeExtract %float %999 1
%1398 = OpCompositeExtract %float %949 0
%1399 = OpCompositeExtract %float %999 1
%1400 = OpCompositeConstruct %v3float %1397 %1398 %1399
%1402 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1402
OpBranch %1355
%1355 = OpLabel
%1406 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %1406
%1409 = OpCompositeExtract %float %1179 0
%1410 = OpCompositeExtract %float %949 1
%1411 = OpCompositeExtract %float %949 0
%1412 = OpCompositeConstruct %v3float %1409 %1410 %1411
%1414 = OpLoad %float %1319
OpStore %1319 %float_0
OpStore %1319 %1414
%1418 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1420 = OpLoad %int %1260
OpStore %1260 %int_0
OpStore %1260 %1420
%1424 = OpLoad %float %1418
%1426 = OpLoad %int %959
OpStore %959 %int_0
OpStore %959 %1426
%1429 = OpFOrdGreaterThan %bool %1424 %float_0_5
OpSelectionMerge %1430 None
OpBranchConditional %1429 %1431 %1430
%1431 = OpLabel
%1433 = OpLoad %float %1069
OpStore %1069 %float_0
OpStore %1069 %1433
%1436 = OpCompositeExtract %float %1349 1
%1437 = OpCompositeExtract %float %1004 1
%1438 = OpCompositeConstruct %v2float %1436 %1437
%1441 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
%1443 = OpLoad %float %1277
OpStore %1277 %float_0
OpStore %1277 %1443
%1446 = OpCompositeExtract %float %943 2
%1447 = OpCompositeExtract %float %943 1
%1448 = OpCompositeConstruct %v2float %1446 %1447
%1450 = OpLoad %float %1418
OpStore %1418 %float_0
OpStore %1418 %1450
%1454 = OpLoad %int %1441
%1456 = OpLoad %float %1319
OpStore %1319 %float_0
OpStore %1319 %1456
%1459 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1459
%1461 = OpLoad %int %1260
OpStore %1260 %int_0
OpStore %1260 %1461
%1464 = OpCompositeExtract %float %1271 2
%1465 = OpCompositeExtract %float %1271 1
%1466 = OpCompositeConstruct %v2float %1464 %1465
%1467 = OpAccessChain %_ptr_Function_float %color %uint_1
%1468 = OpLoad %float %1467
%1469 = OpLoad %v2float %uv
OpStore %uv %897
OpStore %uv %1469
%1471 = OpLoad %float %985
OpStore %985 %float_0
OpStore %985 %1471
%1474 = OpCompositeExtract %float %1293 1
%1475 = OpCompositeExtract %float %1293 0
%1476 = OpCompositeConstruct %v2float %1474 %1475
%1478 = OpLoad %int %1441
OpStore %1441 %int_0
OpStore %1441 %1478
%1482 = OpLoad %int %1441
OpStore %1441 %int_0
OpStore %1441 %1482
%1485 = OpCompositeExtract %float %1349 2
%1486 = OpCompositeExtract %float %1349 2
%1487 = OpCompositeConstruct %v2float %1485 %1486
%1488 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %1488
%1489 = OpAccessChain %_ptr_Function_float %color %uint_1
%1490 = OpConvertSToF %float %1454
%1491 = OpFAdd %float %1490 %1468
OpStore %1489 %1491
%1493 = OpLoad %float %985
OpStore %985 %float_0
OpStore %985 %1493
%1496 = OpCompositeExtract %float %35 1
%1497 = OpCompositeExtract %float %999 0
%1498 = OpCompositeConstruct %v2float %1496 %1497
%1500 = OpLoad %float %1299
OpStore %1299 %float_0
OpStore %1299 %1500
OpBranch %1430
%1430 = OpLabel
%1503 = OpCompositeExtract %float %1004 1
%1504 = OpCompositeExtract %float %1004 1
%1505 = OpCompositeConstruct %v2float %1503 %1504
%1507 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %1507
%1511 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1513 = OpLoad %float %1511
%1514 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %1514
%1515 = OpCompositeExtract %float %1293 0
%1516 = OpCompositeExtract %float %1293 1
%1517 = OpCompositeConstruct %v2float %1515 %1516
%1519 = OpLoad %float %1175
OpStore %1175 %float_0
OpStore %1175 %1519
%1523 = OpLoad %float %1299
OpStore %1299 %float_0
OpStore %1299 %1523
%1526 = OpCompositeExtract %float %938 0
%1527 = OpCompositeExtract %float %938 1
%1528 = OpCompositeExtract %float %938 1
%1529 = OpCompositeConstruct %v3float %1526 %1527 %1528
%1531 = OpLoad %int %1260
OpStore %1260 %int_0
OpStore %1260 %1531
%1534 = OpFOrdGreaterThan %bool %1513 %float_0_75
OpSelectionMerge %1535 None
OpBranchConditional %1534 %1536 %1535
%1536 = OpLabel
%1537 = OpLoad %v3float %color
OpStore %color %909
OpStore %color %1537
%1539 = OpLoad %float %985
OpStore %985 %float_0
OpStore %985 %1539
%1542 = OpCompositeExtract %float %945 1
%1543 = OpCompositeExtract %float %945 0
%1544 = OpCompositeExtract %float %945 1
%1545 = OpCompositeConstruct %v3float %1542 %1543 %1544
%1546 = OpLoad %v3float %color
OpStore %color %909
OpStore %color %1546
%1548 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_7
%1549 = OpLoad %int %1548
%1551 = OpLoad %float %1069
OpStore %1069 %float_0
OpStore %1069 %1551
%1554 = OpCompositeExtract %float %1293 0
%1555 = OpCompositeExtract %float %1179 1
%1556 = OpCompositeExtract %float %1179 0
%1557 = OpCompositeConstruct %v3float %1554 %1555 %1556
%1559 = OpLoad %float %1299
OpStore %1299 %float_0
OpStore %1299 %1559
%1562 = OpCompositeExtract %float %1313 0
%1563 = OpCompositeExtract %float %1091 1
%1564 = OpCompositeConstruct %v2float %1562 %1563
%1566 = OpLoad %int %959
OpStore %959 %int_0
OpStore %959 %1566
%1570 = OpLoad %float %1299
OpStore %1299 %float_0
OpStore %1299 %1570
%1573 = OpCompositeExtract %float %1326 0
%1574 = OpCompositeExtract %float %1326 1
%1575 = OpCompositeExtract %float %1326 0
%1576 = OpCompositeConstruct %v3float %1573 %1574 %1575
%1578 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %1578
%1581 = OpAccessChain %_ptr_Function_float %color %uint_2
%1582 = OpLoad %float %1581
%1584 = OpLoad %float %1418
OpStore %1418 %float_0
OpStore %1418 %1584
%1587 = OpCompositeExtract %float %921 0
%1588 = OpCompositeExtract %float %921 1
%1589 = OpCompositeConstruct %v2float %1587 %1588
%1591 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1591
%1595 = OpLoad %float %1511
OpStore %1511 %float_0
OpStore %1511 %1595
%1599 = OpAccessChain %_ptr_Function_float %color %uint_2
%1601 = OpLoad %float %1418
OpStore %1418 %float_0
OpStore %1418 %1601
%1604 = OpCompositeExtract %float %1589 1
%1605 = OpCompositeExtract %float %1589 1
%1606 = OpCompositeExtract %float %1529 2
%1607 = OpCompositeConstruct %v3float %1604 %1605 %1606
%1609 = OpLoad %float %1599
OpStore %1599 %float_0
OpStore %1599 %1609
%1613 = OpConvertSToF %float %1549
%1614 = OpFAdd %float %1613 %1582
OpStore %1599 %1614
%1616 = OpLoad %float %1277
OpStore %1277 %float_0
OpStore %1277 %1616
%1619 = OpCompositeExtract %float %989 0
%1620 = OpCompositeExtract %float %989 2
%1621 = OpCompositeConstruct %v2float %1619 %1620
%1623 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %1623
OpBranch %1535
%1535 = OpLabel
%1626 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1626
%1627 = OpCompositeExtract %float %956 1
%1628 = OpCompositeExtract %float %945 1
%1629 = OpCompositeConstruct %v2float %1627 %1628
%1630 = OpLoad %v2float %uv
OpStore %uv %897
OpStore %uv %1630
%1633 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
%1635 = OpLoad %int %1633
%1636 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1636
%1637 = OpCompositeExtract %float %929 0
%1638 = OpCompositeExtract %float %956 2
%1639 = OpCompositeConstruct %v2float %1637 %1638
%1641 = OpLoad %int %1633
OpStore %1633 %int_0
OpStore %1633 %1641
%1645 = OpLoad %float %1277
OpStore %1277 %float_0
OpStore %1277 %1645
%1648 = OpCompositeExtract %float %989 1
%1649 = OpCompositeExtract %float %897 0
%1650 = OpCompositeConstruct %v2float %1648 %1649
%1652 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %1652
%1656 = OpAccessChain %_ptr_Function_float %color %uint_2
%1657 = OpCompositeExtract %float %1650 0
%1658 = OpCompositeExtract %float %1650 1
%1659 = OpCompositeExtract %float %1650 0
%1660 = OpCompositeConstruct %v3float %1657 %1658 %1659
%1662 = OpLoad %float %1656
OpStore %1656 %float_0
OpStore %1656 %1662
%1666 = OpLoad %float %1656
%1668 = OpLoad %float %985
OpStore %985 %float_0
OpStore %985 %1668
%1671 = OpCompositeExtract %float %1517 0
%1672 = OpCompositeExtract %float %1505 0
%1673 = OpCompositeConstruct %v2float %1671 %1672
%1675 = OpLoad %int %1260
OpStore %1260 %int_0
OpStore %1260 %1675
%1679 = OpLoad %float %1511
OpStore %1511 %float_0
OpStore %1511 %1679
%1682 = OpCompositeExtract %float %1091 0
%1683 = OpCompositeExtract %float %925 0
%1684 = OpCompositeConstruct %v2float %1682 %1683
%1686 = OpLoad %float %1299
OpStore %1299 %float_0
OpStore %1299 %1686
%1690 = OpAccessChain %_ptr_Function_float %color %uint_2
%1692 = OpConvertSToF %float %1635
%1693 = OpFAdd %float %1666 %1692
OpStore %1690 %1693
%1694 = OpLoad %v2float %uv
OpStore %uv %897
OpStore %uv %1694
%1696 = OpLoad %float %1069
OpStore %1069 %float_0
OpStore %1069 %1696
%1699 = OpCompositeExtract %float %1091 1
%1700 = OpCompositeExtract %float %1091 0
%1701 = OpCompositeExtract %float %1673 1
%1702 = OpCompositeConstruct %v3float %1699 %1700 %1701
%1704 = OpLoad %float %1069
OpStore %1069 %float_0
OpStore %1069 %1704
%1707 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1708 = OpLoad %float %1707
%1710 = OpLoad %float %1299
OpStore %1299 %float_0
OpStore %1299 %1710
%1714 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1715 = OpCompositeExtract %float %1639 1
%1716 = OpCompositeExtract %float %1639 0
%1717 = OpCompositeExtract %float %933 2
%1718 = OpCompositeConstruct %v3float %1715 %1716 %1717
%1720 = OpLoad %float %1319
OpStore %1319 %float_0
OpStore %1319 %1720
%1724 = OpLoad %float %1714
%1726 = OpLoad %float %1319
OpStore %1319 %float_0
OpStore %1319 %1726
%1730 = OpLoad %float %1690
OpStore %1690 %float_0
OpStore %1690 %1730
%1733 = OpCompositeExtract %float %35 1
%1734 = OpCompositeExtract %float %1412 1
%1735 = OpCompositeExtract %float %1412 2
%1736 = OpCompositeConstruct %v3float %1733 %1734 %1735
%1738 = OpLoad %float %1690
OpStore %1690 %float_0
OpStore %1690 %1738
%1741 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1741
%1742 = OpCompositeExtract %float %1412 2
%1743 = OpCompositeExtract %float %1412 1
%1744 = OpCompositeConstruct %v2float %1742 %1743
%1745 = OpLoad %v3float %color
OpStore %color %909
OpStore %color %1745
%1747 = OpLoad %float %1319
OpStore %1319 %float_0
OpStore %1319 %1747
%1750 = OpCompositeExtract %float %1004 1
%1751 = OpCompositeExtract %float %1004 1
%1752 = OpCompositeExtract %float %1004 1
%1753 = OpCompositeConstruct %v3float %1750 %1751 %1752
%1755 = OpLoad %int %1260
OpStore %1260 %int_0
OpStore %1260 %1755
%1760 = OpFSub %float %1708 %1724
%1758 = OpExtInst %float %1759 FAbs %1760
%1761 = OpFOrdLessThan %bool %1758 %float_0_25
OpSelectionMerge %1762 None
OpBranchConditional %1761 %1763 %1762
%1763 = OpLabel
%1765 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1765
%1768 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %1768
%1769 = OpCompositeExtract %float %1660 2
%1770 = OpCompositeExtract %float %1660 0
%1771 = OpCompositeExtract %float %933 0
%1772 = OpCompositeConstruct %v3float %1769 %1770 %1771
%1774 = OpLoad %int %1633
OpStore %1633 %int_0
OpStore %1633 %1774
%1778 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_9
%1779 = OpLoad %int %1778
%1780 = OpCompositeExtract %float %1280 1
%1781 = OpCompositeExtract %float %1280 1
%1782 = OpCompositeExtract %float %1280 1
%1783 = OpCompositeConstruct %v3float %1780 %1781 %1782
%1785 = OpLoad %float %1319
OpStore %1319 %float_0
OpStore %1319 %1785
%1788 = OpAccessChain %_ptr_Function_float %color %uint_0
%1789 = OpLoad %float %1788
%1791 = OpLoad %float %1511
OpStore %1511 %float_0
OpStore %1511 %1791
%1794 = OpCompositeExtract %float %1629 0
%1795 = OpCompositeExtract %float %1629 1
%1796 = OpCompositeConstruct %v2float %1794 %1795
%1798 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %1798
%1801 = OpLoad %v3float %color
OpStore %color %909
OpStore %color %1801
%1802 = OpCompositeExtract %float %981 0
%1803 = OpCompositeExtract %float %981 0
%1804 = OpCompositeConstruct %v2float %1802 %1803
%1805 = OpLoad %v2float %uv
OpStore %uv %897
OpStore %uv %1805
%1807 = OpAccessChain %_ptr_Function_float %color %uint_0
%1809 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1809
%1812 = OpCompositeExtract %float %897 0
%1813 = OpCompositeExtract %float %897 0
%1814 = OpCompositeExtract %float %897 1
%1815 = OpCompositeConstruct %v3float %1812 %1813 %1814
%1817 = OpConvertSToF %float %1779
%1818 = OpFAdd %float %1817 %1789
OpStore %1807 %1818
%1820 = OpLoad %float %1807
OpStore %1807 %float_0
OpStore %1807 %1820
%1823 = OpCompositeExtract %float %1349 1
%1824 = OpCompositeExtract %float %1702 0
%1825 = OpCompositeExtract %float %1349 0
%1826 = OpCompositeConstruct %v3float %1823 %1824 %1825
%1828 = OpLoad %float %968
OpStore %968 %float_0
OpStore %968 %1828
OpBranch %1762
%1762 = OpLabel
%1832 = OpLoad %float %1714
OpStore %1714 %float_0
OpStore %1714 %1832
%1835 = OpLoad %v3float %color
%1837 = OpLoad %float %1175
OpStore %1175 %float_0
OpStore %1175 %1837
%1840 = OpCompositeExtract %float %925 0
%1841 = OpCompositeExtract %float %917 0
%1842 = OpCompositeExtract %float %917 1
%1843 = OpCompositeConstruct %v3float %1840 %1841 %1842
%1844 = OpExtInst %v3float %1759 Normalize %1835
%1846 = OpLoad %float %995
OpStore %995 %float_0
OpStore %995 %1846
%1849 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %1849
%1850 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %1850
%1852 = OpLoad %float %1299
OpStore %1299 %float_0
OpStore %1299 %1852
%1855 = OpCompositeExtract %float %1673 1
%1856 = OpCompositeExtract %float %1843 1
%1857 = OpCompositeConstruct %v2float %1855 %1856
%1859 = OpLoad %float %1299
OpStore %1299 %float_0
OpStore %1299 %1859
%1862 = OpCompositeExtract %float %1844 0
%1863 = OpCompositeExtract %float %1844 1
%1864 = OpCompositeExtract %float %1844 2
%1865 = OpCompositeConstruct %v4float %1862 %1863 %1864 %float_1
%1867 = OpLoad %float %1714
OpStore %1714 %float_0
OpStore %1714 %1867
%1870 = OpCompositeExtract %float %35 1
%1871 = OpCompositeExtract %float %35 1
%1872 = OpCompositeExtract %float %1857 1
%1873 = OpCompositeConstruct %v3float %1870 %1871 %1872
%1875 = OpLoad %float %1069
OpStore %1069 %float_0
OpStore %1069 %1875
OpStore %x_GLF_color %1865
%1878 = OpLoad %QuicksortObject %obj
OpStore %obj %104
OpStore %obj %1878
%1879 = OpCompositeExtract %float %1865 3
%1880 = OpCompositeExtract %float %1865 1
%1881 = OpCompositeExtract %float %1517 0
%1882 = OpCompositeConstruct %v3float %1879 %1880 %1881
%1884 = OpLoad %float %985
OpStore %985 %float_0
OpStore %985 %1884
OpReturn
OpFunctionEnd