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

2644 lines
116 KiB
Plaintext
Raw Normal View History

; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 1833
; Schema: 0
OpCapability Shader
%1694 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1
OpExecutionMode %main OriginUpperLeft
OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1"
OpName %x_GLF_color_1_1 "x_GLF_color_1_1"
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_1 "main_1"
OpName %color "color"
OpName %i_2 "i_2"
OpName %uv "uv"
OpName %main_out "main_out"
OpMemberName %main_out 0 "x_GLF_color_1"
OpName %main_inner "main_inner"
OpName %gl_FragCoord_param "gl_FragCoord_param"
OpName %main "main"
OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord
OpDecorate %x_GLF_color_1_1 Location 0
OpMemberDecorate %QuicksortObject 0 Offset 0
OpDecorate %_arr_int_uint_10 ArrayStride 4
OpDecorate %buf0 Block
OpMemberDecorate %buf0 0 Offset 0
OpDecorate %x_188 NonWritable
OpDecorate %x_188 DescriptorSet 0
OpDecorate %x_188 Binding 0
OpMemberDecorate %main_out 0 Offset 0
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%7 = OpConstantNull %v4float
%x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
%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
%15 = OpConstantNull %QuicksortObject
%obj = OpVariable %_ptr_Private_QuicksortObject Private %15
%_ptr_Private_v4float = OpTypePointer Private %v4float
%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7
%v2float = OpTypeVector %float 2
%buf0 = OpTypeStruct %v2float
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%x_188 = OpVariable %_ptr_Uniform_buf0 Uniform
%x_GLF_color = OpVariable %_ptr_Private_v4float Private %7
%void = OpTypeVoid
%_ptr_Function_int = OpTypePointer Function %int
%23 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
%31 = 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
%38 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%uint_0 = OpConstant %uint 0
%_ptr_Private_int = OpTypePointer Private %int
%102 = 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
%103 = OpConstantComposite %QuicksortObject %102
%154 = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_int
%_ptr_Function_v2float = OpTypePointer Function %v2float
%168 = OpConstantNull %v2float
%_ptr_Function_v3float = OpTypePointer Function %v3float
%171 = 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
%419 = OpTypeFunction %void
%_ptr_Function__arr_int_uint_10 = OpTypePointer Function %_arr_int_uint_10
%429 = OpConstantNull %_arr_int_uint_10
%int_9 = OpConstant %int 9
%int_n1 = OpConstant %int -1
%float_0 = OpConstant %float 0
%876 = OpConstantComposite %v2float %float_0 %float_0
%true = OpConstantTrue %bool
%888 = 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
%main_out = OpTypeStruct %v4float
%1820 = OpTypeFunction %main_out %v4float
%swap_i1_i1_ = OpFunction %void None %23
%i = OpFunctionParameter %_ptr_Function_int
%j = OpFunctionParameter %_ptr_Function_int
%29 = OpLabel
%temp = OpVariable %_ptr_Function_int Function %31
%32 = OpLoad %int %temp
OpStore %temp %int_0
OpStore %temp %32
%39 = OpCompositeExtract %float %38 2
%40 = OpCompositeExtract %float %38 1
%41 = OpCompositeExtract %float %38 2
%42 = OpCompositeConstruct %v3float %39 %40 %41
%44 = OpLoad %int %i
OpStore %i %int_0
OpStore %i %44
%48 = OpLoad %int %i
%50 = OpLoad %int %j
OpStore %j %int_0
OpStore %j %50
%53 = OpCompositeExtract %float %42 1
%54 = OpCompositeExtract %float %42 0
%55 = OpCompositeExtract %float %42 1
%56 = OpCompositeConstruct %v3float %53 %54 %55
%57 = OpLoad %int %temp
OpStore %temp %int_0
OpStore %temp %57
%60 = OpAccessChain %_ptr_Private_int %obj %uint_0 %48
%61 = OpLoad %int %60
%62 = OpAccessChain %_ptr_Private_int %obj %uint_0 %48
OpStore %62 %int_0
%63 = OpAccessChain %_ptr_Private_int %obj %uint_0 %48
OpStore %63 %61
%64 = OpAccessChain %_ptr_Private_int %obj %uint_0 %48
%65 = OpLoad %int %64
%66 = OpLoad %int %temp
OpStore %temp %int_0
OpStore %temp %66
OpStore %temp %65
%68 = OpLoad %int %j
OpStore %j %int_0
OpStore %j %68
%71 = OpCompositeExtract %float %42 2
%72 = OpCompositeExtract %float %38 0
%73 = OpCompositeExtract %float %42 1
%74 = OpCompositeConstruct %v3float %71 %72 %73
%76 = OpLoad %int %i
OpStore %i %int_0
OpStore %i %76
%80 = OpLoad %int %i
%81 = OpAccessChain %_ptr_Private_int %obj %uint_0 %48
%82 = OpLoad %int %81
%83 = OpAccessChain %_ptr_Private_int %obj %uint_0 %48
OpStore %83 %int_0
%84 = OpAccessChain %_ptr_Private_int %obj %uint_0 %48
OpStore %84 %82
%86 = OpLoad %int %j
%88 = OpLoad %int %i
OpStore %i %int_0
OpStore %i %88
%91 = OpCompositeExtract %float %74 0
%92 = OpCompositeExtract %float %74 2
%93 = OpCompositeExtract %float %74 2
%94 = OpCompositeConstruct %v3float %91 %92 %93
%95 = OpAccessChain %_ptr_Private_int %obj %uint_0 %48
%96 = OpLoad %int %95
%97 = OpAccessChain %_ptr_Private_int %obj %uint_0 %48
OpStore %97 %int_0
%98 = OpAccessChain %_ptr_Private_int %obj %uint_0 %48
OpStore %98 %96
%99 = OpAccessChain %_ptr_Private_int %obj %uint_0 %86
%100 = OpLoad %int %99
%101 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %101
%104 = OpCompositeExtract %float %94 0
%105 = OpCompositeExtract %float %94 0
%106 = OpCompositeConstruct %v2float %104 %105
%107 = OpCompositeExtract %float %56 0
%108 = OpCompositeExtract %float %56 2
%109 = OpCompositeExtract %float %56 0
%110 = OpCompositeConstruct %v3float %107 %108 %109
%111 = OpAccessChain %_ptr_Private_int %obj %uint_0 %80
OpStore %111 %100
%112 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %112
%113 = OpCompositeExtract %float %94 1
%114 = OpCompositeExtract %float %94 2
%115 = OpCompositeExtract %float %94 0
%116 = OpCompositeConstruct %v3float %113 %114 %115
%118 = OpLoad %int %i
OpStore %i %int_0
OpStore %i %118
%122 = OpLoad %int %j
%123 = OpLoad %int %temp
OpStore %temp %int_0
OpStore %temp %123
%124 = OpCompositeExtract %float %116 2
%125 = OpCompositeExtract %float %116 1
%126 = OpCompositeConstruct %v2float %124 %125
%127 = OpAccessChain %_ptr_Private_int %obj %uint_0 %86
%128 = OpLoad %int %127
%129 = OpAccessChain %_ptr_Private_int %obj %uint_0 %86
OpStore %129 %int_0
%130 = OpAccessChain %_ptr_Private_int %obj %uint_0 %86
OpStore %130 %128
%131 = OpLoad %int %temp
%133 = OpLoad %int %j
OpStore %j %int_0
OpStore %j %133
%136 = OpCompositeExtract %float %106 0
%137 = OpCompositeExtract %float %94 1
%138 = OpCompositeExtract %float %94 0
%139 = OpCompositeConstruct %v3float %136 %137 %138
%140 = OpAccessChain %_ptr_Private_int %obj %uint_0 %80
%141 = OpLoad %int %140
%142 = OpAccessChain %_ptr_Private_int %obj %uint_0 %80
OpStore %142 %int_0
%143 = OpAccessChain %_ptr_Private_int %obj %uint_0 %80
OpStore %143 %141
%144 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %144
%145 = OpCompositeExtract %float %110 0
%146 = OpCompositeExtract %float %110 1
%147 = OpCompositeExtract %float %110 0
%148 = OpCompositeConstruct %v3float %145 %146 %147
%149 = OpAccessChain %_ptr_Private_int %obj %uint_0 %86
%150 = OpLoad %int %149
%151 = OpAccessChain %_ptr_Private_int %obj %uint_0 %86
OpStore %151 %int_0
%152 = OpAccessChain %_ptr_Private_int %obj %uint_0 %86
OpStore %152 %150
%153 = OpAccessChain %_ptr_Private_int %obj %uint_0 %122
OpStore %153 %131
OpReturn
OpFunctionEnd
%performPartition_i1_i1_ = OpFunction %int None %154
%l = OpFunctionParameter %_ptr_Function_int
%h = OpFunctionParameter %_ptr_Function_int
%158 = OpLabel
%param_3 = OpVariable %_ptr_Function_int Function %31
%i_1 = OpVariable %_ptr_Function_int Function %31
%j_1 = OpVariable %_ptr_Function_int Function %31
%param_2 = OpVariable %_ptr_Function_int Function %31
%param_1 = OpVariable %_ptr_Function_int Function %31
%param = OpVariable %_ptr_Function_int Function %31
%pivot = OpVariable %_ptr_Function_int Function %31
%x_537 = OpVariable %_ptr_Function_v2float Function %168
%x_538 = OpVariable %_ptr_Function_v3float Function %171
%173 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %173
%177 = OpLoad %int %h
%179 = OpLoad %int %l
OpStore %l %int_0
OpStore %l %179
%182 = OpAccessChain %_ptr_Private_int %obj %uint_0 %177
%183 = OpLoad %int %182
%184 = OpAccessChain %_ptr_Private_int %obj %uint_0 %177
OpStore %184 %int_0
%185 = OpAccessChain %_ptr_Private_int %obj %uint_0 %177
OpStore %185 %183
%186 = OpAccessChain %_ptr_Private_int %obj %uint_0 %177
%187 = OpLoad %int %186
%188 = OpLoad %int %param_3
OpStore %param_3 %int_0
OpStore %param_3 %188
%189 = OpCompositeExtract %float %38 2
%190 = OpCompositeExtract %float %38 0
%191 = OpCompositeExtract %float %38 2
%192 = OpCompositeConstruct %v3float %189 %190 %191
%193 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %193
OpStore %pivot %187
%195 = OpLoad %int %l
%197 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %197
%200 = OpLoad %int %j_1
OpStore %j_1 %int_0
OpStore %j_1 %200
%201 = OpCompositeExtract %float %192 1
%202 = OpCompositeExtract %float %192 2
%203 = OpCompositeExtract %float %192 1
%204 = OpCompositeConstruct %v3float %201 %202 %203
%206 = OpLoad %int %l
OpStore %l %int_0
OpStore %l %206
%209 = OpBitcast %int %uint_1
%211 = OpISub %int %195 %209
OpStore %i_1 %211
%213 = OpLoad %int %l
%214 = OpCompositeExtract %float %192 0
%215 = OpCompositeExtract %float %192 2
%216 = OpCompositeExtract %float %204 0
%217 = OpCompositeConstruct %v3float %214 %215 %216
OpStore %j_1 %int_10
%219 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %219
OpBranch %220
%220 = OpLabel
OpLoopMerge %221 %222 None
OpBranch %223
%223 = OpLabel
%224 = OpLoad %int %pivot
OpStore %pivot %int_0
OpStore %pivot %224
%225 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %225
%226 = OpLoad %int %j_1
%227 = OpLoad %int %pivot
OpStore %pivot %int_0
OpStore %pivot %227
%228 = OpCompositeExtract %float %38 1
%229 = OpCompositeExtract %float %38 2
%230 = OpCompositeConstruct %v2float %228 %229
OpStore %x_537 %230
%231 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %231
%233 = OpLoad %int %h
%235 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %235
%238 = OpLoad %int %param
OpStore %param %int_0
OpStore %param %238
%239 = OpLoad %int %j_1
OpStore %j_1 %int_0
OpStore %j_1 %239
%240 = OpCompositeExtract %float %192 0
%242 = OpAccessChain %_ptr_Function_float %x_537 %uint_1
%243 = OpLoad %float %242
%244 = OpCompositeExtract %float %192 2
%245 = OpCompositeConstruct %v3float %240 %243 %244
OpStore %x_538 %245
%246 = OpLoad %int %param
OpStore %param %int_0
OpStore %param %246
%247 = OpBitcast %int %uint_1
%248 = OpISub %int %233 %247
%249 = OpSLessThanEqual %bool %226 %248
OpSelectionMerge %251 None
OpBranchConditional %249 %252 %253
%252 = OpLabel
OpBranch %251
%253 = OpLabel
OpBranch %221
%251 = OpLabel
%254 = OpLoad %int %j_1
%255 = OpAccessChain %_ptr_Private_int %obj %uint_0 %177
%256 = OpLoad %int %255
%257 = OpAccessChain %_ptr_Private_int %obj %uint_0 %177
OpStore %257 %int_0
%258 = OpAccessChain %_ptr_Private_int %obj %uint_0 %177
OpStore %258 %256
%260 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %260
%263 = OpAccessChain %_ptr_Function_float %x_537 %uint_0
%264 = OpLoad %float %263
%265 = OpCompositeExtract %float %204 2
%266 = OpAccessChain %_ptr_Function_float %x_537 %uint_0
%267 = OpLoad %float %266
%268 = OpCompositeConstruct %v3float %264 %265 %267
%269 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %269
%270 = OpAccessChain %_ptr_Private_int %obj %uint_0 %254
%271 = OpLoad %int %270
%272 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %272
%273 = OpLoad %int %pivot
%274 = OpCompositeExtract %float %38 1
%275 = OpCompositeExtract %float %192 2
%276 = OpCompositeConstruct %v2float %274 %275
%277 = OpLoad %int %i_1
OpStore %i_1 %int_0
OpStore %i_1 %277
%279 = OpLoad %int %l
OpStore %l %int_0
OpStore %l %279
%282 = OpCompositeExtract %float %192 1
%283 = OpCompositeExtract %float %192 0
%284 = OpCompositeExtract %float %192 1
%285 = OpCompositeConstruct %v3float %282 %283 %284
%286 = OpLoad %int %pivot
OpStore %pivot %int_0
OpStore %pivot %286
%287 = OpSLessThanEqual %bool %271 %273
OpSelectionMerge %288 None
OpBranchConditional %287 %289 %288
%289 = OpLabel
%290 = OpCompositeExtract %float %285 2
%291 = OpCompositeExtract %float %285 0
%292 = OpCompositeExtract %float %285 0
%293 = OpCompositeConstruct %v3float %290 %291 %292
%294 = OpLoad %int %param_3
OpStore %param_3 %int_0
OpStore %param_3 %294
%295 = OpLoad %int %i_1
%296 = OpLoad %int %pivot
OpStore %pivot %int_0
OpStore %pivot %296
%297 = OpCompositeExtract %float %268 0
%298 = OpCompositeExtract %float %285 1
%299 = OpCompositeConstruct %v2float %297 %298
%300 = OpLoad %int %i_1
OpStore %i_1 %int_0
OpStore %i_1 %300
%301 = OpLoad %int %param
OpStore %param %int_0
OpStore %param %301
%302 = OpBitcast %int %uint_1
%303 = OpIAdd %int %295 %302
OpStore %i_1 %303
%305 = OpLoad %int %l
OpStore %l %int_0
OpStore %l %305
%308 = OpCompositeExtract %float %38 2
%309 = OpCompositeExtract %float %38 1
%310 = OpCompositeExtract %float %276 0
%311 = OpCompositeConstruct %v3float %308 %309 %310
%312 = OpLoad %int %i_1
%313 = OpAccessChain %_ptr_Function_float %x_537 %uint_1
%314 = OpLoad %float %313
%315 = OpAccessChain %_ptr_Function_float %x_538 %uint_0
%316 = OpLoad %float %315
%317 = OpCompositeConstruct %v2float %314 %316
%318 = OpLoad %int %param
OpStore %param %int_0
OpStore %param %318
OpStore %param %312
%319 = OpLoad %int %param
OpStore %param %int_0
OpStore %param %319
%320 = OpCompositeExtract %float %317 0
%321 = OpCompositeExtract %float %317 0
%322 = OpCompositeConstruct %v2float %320 %321
%323 = OpLoad %int %i_1
OpStore %i_1 %int_0
OpStore %i_1 %323
%324 = OpLoad %int %j_1
OpStore %param_1 %324
%325 = OpLoad %int %param_3
OpStore %param_3 %int_0
OpStore %param_3 %325
%326 = OpFunctionCall %void %swap_i1_i1_ %param %param_1
%329 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %329
OpBranch %288
%288 = OpLabel
%330 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %330
OpBranch %222
%222 = OpLabel
%332 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %332
%335 = OpLoad %int %j_1
%337 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %337
%340 = OpCompositeExtract %float %268 0
%341 = OpCompositeExtract %float %285 2
%342 = OpCompositeExtract %float %285 2
%343 = OpCompositeConstruct %v3float %340 %341 %342
%344 = OpAccessChain %_ptr_Private_int %obj %uint_0 %254
%345 = OpLoad %int %344
%346 = OpAccessChain %_ptr_Private_int %obj %uint_0 %254
OpStore %346 %int_0
%347 = OpAccessChain %_ptr_Private_int %obj %uint_0 %254
OpStore %347 %345
%348 = OpLoad %int %param
OpStore %param %int_0
OpStore %param %348
%350 = OpIAdd %int %int_1 %335
OpStore %j_1 %350
%351 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %351
%352 = OpCompositeExtract %float %285 1
%353 = OpCompositeExtract %float %285 2
%354 = OpCompositeExtract %float %285 0
%355 = OpCompositeConstruct %v3float %352 %353 %354
%356 = OpAccessChain %_ptr_Private_int %obj %uint_0 %254
%357 = OpLoad %int %356
%358 = OpAccessChain %_ptr_Private_int %obj %uint_0 %254
OpStore %358 %int_0
%359 = OpAccessChain %_ptr_Private_int %obj %uint_0 %254
OpStore %359 %357
OpBranch %220
%221 = OpLabel
%360 = OpLoad %int %i_1
%361 = OpAccessChain %_ptr_Private_int %obj %uint_0 %177
%362 = OpLoad %int %361
%363 = OpAccessChain %_ptr_Private_int %obj %uint_0 %177
OpStore %363 %int_0
%364 = OpAccessChain %_ptr_Private_int %obj %uint_0 %177
OpStore %364 %362
%365 = OpCompositeExtract %float %192 0
%366 = OpCompositeExtract %float %192 1
%367 = OpCompositeConstruct %v2float %365 %366
%368 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %368
%370 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %370
%373 = OpIAdd %int %int_1 %360
OpStore %i_1 %373
%374 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %374
%375 = OpLoad %int %i_1
%376 = OpLoad %int %j_1
OpStore %j_1 %int_0
OpStore %j_1 %376
%377 = OpCompositeExtract %float %192 0
%378 = OpCompositeExtract %float %192 0
%379 = OpCompositeConstruct %v2float %377 %378
%380 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %380
OpStore %param_2 %375
%381 = OpCompositeExtract %float %192 1
%382 = OpCompositeExtract %float %217 0
%383 = OpCompositeConstruct %v2float %381 %382
%384 = OpLoad %int %pivot
OpStore %pivot %int_0
OpStore %pivot %384
%386 = OpLoad %int %h
%387 = OpCompositeExtract %float %379 0
%388 = OpCompositeExtract %float %367 1
%389 = OpCompositeConstruct %v2float %387 %388
%391 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %391
OpStore %param_3 %386
%394 = OpLoad %int %i_1
OpStore %i_1 %int_0
OpStore %i_1 %394
%395 = OpCompositeExtract %float %367 1
%396 = OpCompositeExtract %float %389 0
%397 = OpCompositeConstruct %v2float %395 %396
%399 = OpLoad %int %h
OpStore %h %int_0
OpStore %h %399
%402 = OpFunctionCall %void %swap_i1_i1_ %param_2 %param_3
%406 = OpLoad %int %l
OpStore %l %int_0
OpStore %l %406
%409 = OpCompositeExtract %float %217 2
%410 = OpCompositeExtract %float %38 1
%411 = OpCompositeConstruct %v2float %409 %410
%412 = OpLoad %int %param_1
OpStore %param_1 %int_0
OpStore %param_1 %412
%413 = OpLoad %int %i_1
%414 = OpLoad %int %param
OpStore %param %int_0
OpStore %param %414
%415 = OpCompositeExtract %float %192 1
%416 = OpCompositeExtract %float %192 0
%417 = OpCompositeConstruct %v2float %415 %416
%418 = OpLoad %int %j_1
OpStore %j_1 %int_0
OpStore %j_1 %418
OpReturnValue %413
OpFunctionEnd
%quicksort_ = OpFunction %void None %419
%421 = OpLabel
%param_4 = OpVariable %_ptr_Function_int Function %31
%h_1 = OpVariable %_ptr_Function_int Function %31
%p = OpVariable %_ptr_Function_int Function %31
%l_1 = OpVariable %_ptr_Function_int Function %31
%top = OpVariable %_ptr_Function_int Function %31
%stack = OpVariable %_ptr_Function__arr_int_uint_10 Function %429
%param_5 = OpVariable %_ptr_Function_int Function %31
OpStore %l_1 %int_0
%431 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %431
OpStore %h_1 %int_9
%433 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %102
OpStore %stack %433
%434 = OpCompositeExtract %float %38 1
%435 = OpCompositeExtract %float %38 1
%436 = OpCompositeConstruct %v2float %434 %435
%437 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %437
OpStore %top %int_n1
%439 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %439
%440 = OpLoad %int %top
%441 = OpCompositeExtract %float %38 0
%442 = OpCompositeExtract %float %38 0
%443 = OpCompositeConstruct %v2float %441 %442
%444 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %444
%445 = OpBitcast %int %uint_1
%446 = OpIAdd %int %440 %445
%447 = OpLoad %int %top
OpStore %top %int_0
OpStore %top %447
%448 = OpCompositeExtract %float %436 1
%449 = OpCompositeExtract %float %443 1
%450 = OpCompositeConstruct %v2float %448 %449
%451 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %451
OpStore %top %446
%452 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %452
%453 = OpCompositeExtract %float %443 1
%454 = OpCompositeExtract %float %443 0
%455 = OpCompositeExtract %float %443 0
%456 = OpCompositeConstruct %v3float %453 %454 %455
%457 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %457
%458 = OpLoad %int %l_1
%459 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %459
%460 = OpCompositeExtract %float %456 1
%461 = OpCompositeExtract %float %456 0
%462 = OpCompositeExtract %float %443 0
%463 = OpCompositeConstruct %v3float %460 %461 %462
%464 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %102
OpStore %stack %464
%465 = OpCompositeExtract %float %436 1
%466 = OpCompositeExtract %float %436 1
%467 = OpCompositeExtract %float %436 1
%468 = OpCompositeConstruct %v3float %465 %466 %467
%469 = OpLoad %int %l_1
OpStore %l_1 %int_0
OpStore %l_1 %int_0
%470 = OpAccessChain %_ptr_Function_int %stack %446
OpStore %470 %458
%471 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %471
%472 = OpLoad %int %top
%473 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %473
%474 = OpCompositeExtract %float %38 2
%475 = OpCompositeExtract %float %450 1
%476 = OpCompositeExtract %float %38 1
%477 = OpCompositeConstruct %v3float %474 %475 %476
%478 = OpAccessChain %_ptr_Function_int %stack %446
%479 = OpLoad %int %478
%480 = OpAccessChain %_ptr_Function_int %stack %446
OpStore %480 %int_0
%481 = OpAccessChain %_ptr_Function_int %stack %446
OpStore %481 %479
%482 = OpIAdd %int %472 %int_1
%483 = OpAccessChain %_ptr_Function_int %stack %446
%484 = OpLoad %int %483
%485 = OpAccessChain %_ptr_Function_int %stack %446
OpStore %485 %int_0
%486 = OpAccessChain %_ptr_Function_int %stack %446
OpStore %486 %484
%487 = OpCompositeExtract %float %456 0
%488 = OpCompositeExtract %float %456 2
%489 = OpCompositeExtract %float %436 1
%490 = OpCompositeConstruct %v3float %487 %488 %489
OpStore %top %482
%491 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %491
%492 = OpLoad %int %h_1
%493 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %493
%494 = OpCompositeExtract %float %450 0
%495 = OpCompositeExtract %float %468 0
%496 = OpCompositeExtract %float %450 1
%497 = OpCompositeConstruct %v3float %494 %495 %496
%498 = OpLoad %int %l_1
OpStore %l_1 %int_0
OpStore %l_1 %498
%499 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %499
%500 = OpCompositeExtract %float %497 2
%501 = OpCompositeExtract %float %497 2
%502 = OpCompositeConstruct %v2float %500 %501
%503 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %503
%504 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %504 %492
OpBranch %505
%505 = OpLabel
OpLoopMerge %506 %507 None
OpBranch %508
%508 = OpLabel
%509 = OpCompositeExtract %float %490 0
%510 = OpCompositeExtract %float %490 0
%511 = OpCompositeExtract %float %490 0
%512 = OpCompositeConstruct %v3float %509 %510 %511
%513 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %513
%514 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %102
OpStore %stack %514
%515 = OpLoad %int %top
%516 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %102
OpStore %stack %516
%517 = OpCompositeExtract %float %450 0
%518 = OpCompositeExtract %float %497 2
%519 = OpCompositeConstruct %v2float %517 %518
%520 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %520
%521 = OpBitcast %int %uint_0
%522 = OpSGreaterThanEqual %bool %515 %521
OpSelectionMerge %523 None
OpBranchConditional %522 %524 %525
%524 = OpLabel
OpBranch %523
%525 = OpLabel
OpBranch %506
%523 = OpLabel
%526 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %526
%527 = OpCompositeExtract %float %456 1
%528 = OpCompositeExtract %float %456 0
%529 = OpCompositeExtract %float %490 1
%530 = OpCompositeConstruct %v3float %527 %528 %529
%531 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %531
%532 = OpLoad %int %top
%533 = OpCompositeExtract %float %502 0
%534 = OpCompositeExtract %float %519 1
%535 = OpCompositeExtract %float %502 0
%536 = OpCompositeConstruct %v3float %533 %534 %535
%537 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %537
%538 = OpCompositeExtract %float %436 0
%539 = OpCompositeExtract %float %436 0
%540 = OpCompositeConstruct %v2float %538 %539
%541 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %541
%542 = OpBitcast %int %uint_1
%543 = OpISub %int %532 %542
OpStore %top %543
%544 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %544
%545 = OpAccessChain %_ptr_Function_int %stack %446
%546 = OpLoad %int %545
%547 = OpAccessChain %_ptr_Function_int %stack %446
OpStore %547 %int_0
%548 = OpAccessChain %_ptr_Function_int %stack %446
OpStore %548 %546
%549 = OpAccessChain %_ptr_Function_int %stack %532
%550 = OpLoad %int %549
%551 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %102
OpStore %stack %551
%552 = OpCompositeExtract %float %456 1
%553 = OpCompositeExtract %float %456 0
%554 = OpCompositeExtract %float %497 1
%555 = OpCompositeConstruct %v3float %552 %553 %554
%556 = OpLoad %int %l_1
OpStore %l_1 %int_0
OpStore %l_1 %556
OpStore %h_1 %550
%557 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %102
OpStore %stack %557
%558 = OpCompositeExtract %float %477 1
%559 = OpCompositeExtract %float %468 1
%560 = OpCompositeConstruct %v2float %558 %559
%561 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %561
%562 = OpLoad %int %top
%563 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %563
%564 = OpAccessChain %_ptr_Function_int %stack %482
%565 = OpLoad %int %564
%566 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %566 %int_0
%567 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %567 %565
%568 = OpCompositeExtract %float %38 1
%569 = OpCompositeExtract %float %38 2
%570 = OpCompositeConstruct %v2float %568 %569
%571 = OpISub %int %562 %int_1
OpStore %top %571
%572 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %572
%573 = OpCompositeExtract %float %540 1
%574 = OpCompositeExtract %float %502 0
%575 = OpCompositeExtract %float %540 1
%576 = OpCompositeConstruct %v3float %573 %574 %575
%577 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %577
%578 = OpCompositeExtract %float %497 1
%579 = OpCompositeExtract %float %497 2
%580 = OpCompositeConstruct %v2float %578 %579
%581 = OpAccessChain %_ptr_Function_int %stack %482
%582 = OpLoad %int %581
%583 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %583 %int_0
%584 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %584 %582
%585 = OpAccessChain %_ptr_Function_int %stack %562
%586 = OpLoad %int %585
%587 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %587
%588 = OpCompositeExtract %float %570 1
%589 = OpCompositeExtract %float %570 1
%590 = OpCompositeExtract %float %502 0
%591 = OpCompositeConstruct %v3float %588 %589 %590
%592 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %592
OpStore %l_1 %586
%593 = OpLoad %int %top
OpStore %top %int_0
OpStore %top %593
%594 = OpLoad %int %l_1
OpStore %param_4 %594
%595 = OpAccessChain %_ptr_Function_int %stack %532
%596 = OpLoad %int %595
%597 = OpAccessChain %_ptr_Function_int %stack %532
OpStore %597 %int_0
%598 = OpAccessChain %_ptr_Function_int %stack %532
OpStore %598 %596
%599 = OpCompositeExtract %float %536 1
%600 = OpCompositeExtract %float %536 2
%601 = OpCompositeConstruct %v2float %599 %600
%602 = OpLoad %int %h_1
%603 = OpCompositeExtract %float %450 0
%604 = OpCompositeExtract %float %38 1
%605 = OpCompositeConstruct %v2float %603 %604
OpStore %param_5 %602
%606 = OpAccessChain %_ptr_Function_int %stack %482
%607 = OpLoad %int %606
%608 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %608 %int_0
%609 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %609 %607
%610 = OpFunctionCall %int %performPartition_i1_i1_ %param_4 %param_5
%613 = OpCompositeExtract %float %519 0
%614 = OpCompositeExtract %float %530 0
%615 = OpCompositeConstruct %v2float %613 %614
%616 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %616
OpStore %p %610
%617 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %617
%618 = OpLoad %int %p
%619 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %619
%620 = OpCompositeExtract %float %530 1
%621 = OpCompositeExtract %float %530 1
%622 = OpCompositeConstruct %v2float %620 %621
%623 = OpLoad %int %l_1
OpStore %l_1 %int_0
OpStore %l_1 %623
%624 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %624
%625 = OpLoad %int %l_1
%626 = OpAccessChain %_ptr_Function_int %stack %532
%627 = OpLoad %int %626
%628 = OpAccessChain %_ptr_Function_int %stack %532
OpStore %628 %int_0
%629 = OpAccessChain %_ptr_Function_int %stack %532
OpStore %629 %627
%630 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %630
%631 = OpCompositeExtract %float %519 1
%632 = OpCompositeExtract %float %570 0
%633 = OpCompositeConstruct %v2float %631 %632
%634 = OpAccessChain %_ptr_Function_int %stack %482
%635 = OpLoad %int %634
%636 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %636 %int_0
%637 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %637 %635
%638 = OpBitcast %int %uint_1
%639 = OpISub %int %618 %638
%640 = OpSGreaterThan %bool %639 %625
OpSelectionMerge %641 None
OpBranchConditional %640 %642 %641
%642 = OpLabel
%643 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %643
%644 = OpLoad %int %top
%645 = OpCompositeExtract %float %555 1
%646 = OpCompositeExtract %float %436 1
%647 = OpCompositeConstruct %v2float %645 %646
%648 = OpAccessChain %_ptr_Function_int %stack %482
%649 = OpLoad %int %648
%650 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %650 %int_0
%651 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %651 %649
%652 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %102
OpStore %stack %652
%653 = OpCompositeExtract %float %536 2
%654 = OpCompositeExtract %float %536 1
%655 = OpCompositeConstruct %v2float %653 %654
%656 = OpCompositeExtract %float %622 1
%657 = OpCompositeExtract %float %601 0
%658 = OpCompositeExtract %float %601 0
%659 = OpCompositeConstruct %v3float %656 %657 %658
%660 = OpLoad %int %l_1
%661 = OpAccessChain %_ptr_Function_int %stack %562
%662 = OpLoad %int %661
%663 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %663 %int_0
%664 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %664 %662
%665 = OpCompositeExtract %float %497 0
%666 = OpCompositeExtract %float %659 0
%667 = OpCompositeConstruct %v2float %665 %666
%668 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %668
%669 = OpIAdd %int %int_1 %644
%670 = OpAccessChain %_ptr_Function_int %stack %532
%671 = OpLoad %int %670
%672 = OpAccessChain %_ptr_Function_int %stack %532
OpStore %672 %int_0
%673 = OpAccessChain %_ptr_Function_int %stack %532
OpStore %673 %671
%674 = OpCompositeExtract %float %512 1
%675 = OpCompositeExtract %float %512 1
%676 = OpCompositeExtract %float %490 0
%677 = OpCompositeConstruct %v3float %674 %675 %676
%678 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %678
%679 = OpAccessChain %_ptr_Function_int %stack %669
OpStore %679 %660
%680 = OpLoad %int %top
%681 = OpAccessChain %_ptr_Function_int %stack %482
%682 = OpLoad %int %681
%683 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %683 %int_0
%684 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %684 %682
%685 = OpCompositeExtract %float %580 1
%686 = OpCompositeExtract %float %580 0
%687 = OpCompositeConstruct %v2float %685 %686
%688 = OpAccessChain %_ptr_Function_int %stack %669
%689 = OpLoad %int %688
%690 = OpAccessChain %_ptr_Function_int %stack %669
OpStore %690 %int_0
%691 = OpAccessChain %_ptr_Function_int %stack %669
OpStore %691 %689
%693 = OpBitcast %uint %680
%694 = OpIAdd %uint %uint_1 %693
%692 = OpBitcast %int %694
%695 = OpAccessChain %_ptr_Function_int %stack %482
%696 = OpLoad %int %695
%697 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %697 %int_0
%698 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %698 %696
%699 = OpCompositeExtract %float %591 2
%700 = OpCompositeExtract %float %687 1
%701 = OpCompositeExtract %float %591 2
%702 = OpCompositeConstruct %v3float %699 %700 %701
%703 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %703
OpStore %top %692
%704 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %102
OpStore %stack %704
%705 = OpLoad %int %p
%706 = OpCompositeExtract %float %591 0
%707 = OpCompositeExtract %float %570 1
%708 = OpCompositeConstruct %v2float %706 %707
%709 = OpAccessChain %_ptr_Function_int %stack %562
%710 = OpLoad %int %709
%711 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %711 %int_0
%712 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %712 %710
%713 = OpAccessChain %_ptr_Function_int %stack %562
%714 = OpLoad %int %713
%715 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %715 %int_0
%716 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %716 %714
%717 = OpAccessChain %_ptr_Function_int %stack %692
%718 = OpBitcast %int %uint_1
%719 = OpISub %int %705 %718
OpStore %717 %719
%720 = OpAccessChain %_ptr_Function_int %stack %446
%721 = OpLoad %int %720
%722 = OpAccessChain %_ptr_Function_int %stack %446
OpStore %722 %int_0
%723 = OpAccessChain %_ptr_Function_int %stack %446
OpStore %723 %721
%724 = OpCompositeExtract %float %536 2
%725 = OpCompositeExtract %float %536 1
%726 = OpCompositeConstruct %v2float %724 %725
%727 = OpAccessChain %_ptr_Function_int %stack %692
%728 = OpLoad %int %727
%729 = OpAccessChain %_ptr_Function_int %stack %692
OpStore %729 %int_0
%730 = OpAccessChain %_ptr_Function_int %stack %692
OpStore %730 %728
OpBranch %641
%641 = OpLabel
%731 = OpAccessChain %_ptr_Function_int %stack %446
%732 = OpLoad %int %731
%733 = OpAccessChain %_ptr_Function_int %stack %446
OpStore %733 %int_0
%734 = OpAccessChain %_ptr_Function_int %stack %446
OpStore %734 %732
%735 = OpCompositeExtract %float %38 0
%736 = OpCompositeExtract %float %38 1
%737 = OpCompositeConstruct %v2float %735 %736
%738 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %738
%739 = OpLoad %int %p
%740 = OpAccessChain %_ptr_Function_int %stack %562
%741 = OpLoad %int %740
%742 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %742 %int_0
%743 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %743 %741
%744 = OpCompositeExtract %float %555 2
%745 = OpCompositeExtract %float %436 0
%746 = OpCompositeExtract %float %436 1
%747 = OpCompositeConstruct %v3float %744 %745 %746
%748 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %748
%749 = OpCompositeExtract %float %490 2
%750 = OpCompositeExtract %float %490 0
%751 = OpCompositeExtract %float %580 0
%752 = OpCompositeConstruct %v3float %749 %750 %751
%753 = OpAccessChain %_ptr_Function_int %stack %562
%754 = OpLoad %int %753
%755 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %755 %int_0
%756 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %756 %754
%757 = OpLoad %int %h_1
%758 = OpLoad %int %top
OpStore %top %int_0
OpStore %top %758
%759 = OpCompositeExtract %float %463 2
%760 = OpCompositeExtract %float %530 0
%761 = OpCompositeExtract %float %463 0
%762 = OpCompositeConstruct %v3float %759 %760 %761
%763 = OpAccessChain %_ptr_Function_int %stack %482
%764 = OpLoad %int %763
%765 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %765 %int_0
%766 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %766 %764
%767 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %767
%769 = OpBitcast %uint %739
%770 = OpIAdd %uint %uint_1 %769
%768 = OpBitcast %int %770
%771 = OpSLessThan %bool %768 %757
OpSelectionMerge %772 None
OpBranchConditional %771 %773 %772
%773 = OpLabel
%774 = OpAccessChain %_ptr_Function_int %stack %562
%775 = OpLoad %int %774
%776 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %776 %int_0
%777 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %777 %775
%778 = OpCompositeExtract %float %737 1
%779 = OpCompositeExtract %float %633 0
%780 = OpCompositeConstruct %v2float %778 %779
%781 = OpLoad %int %l_1
OpStore %l_1 %int_0
OpStore %l_1 %781
%782 = OpLoad %int %top
%783 = OpAccessChain %_ptr_Function_int %stack %562
%784 = OpLoad %int %783
%785 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %785 %int_0
%786 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %786 %784
%787 = OpCompositeExtract %float %477 1
%788 = OpCompositeExtract %float %463 1
%789 = OpCompositeExtract %float %463 1
%790 = OpCompositeConstruct %v3float %787 %788 %789
%791 = OpIAdd %int %782 %int_1
%792 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %792
OpStore %top %791
%793 = OpAccessChain %_ptr_Function_int %stack %562
%794 = OpLoad %int %793
%795 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %795 %int_0
%796 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %796 %794
%797 = OpLoad %int %p
%798 = OpLoad %int %param_5
OpStore %param_5 %int_0
OpStore %param_5 %798
%799 = OpCompositeExtract %float %463 2
%800 = OpCompositeExtract %float %463 0
%801 = OpCompositeExtract %float %530 0
%802 = OpCompositeConstruct %v3float %799 %800 %801
%803 = OpLoad %int %p
OpStore %p %int_0
OpStore %p %803
%804 = OpCompositeExtract %float %436 0
%805 = OpCompositeExtract %float %622 0
%806 = OpCompositeExtract %float %622 0
%807 = OpCompositeConstruct %v3float %804 %805 %806
%808 = OpAccessChain %_ptr_Function_int %stack %482
%809 = OpLoad %int %808
%810 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %810 %int_0
%811 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %811 %809
%812 = OpAccessChain %_ptr_Function_int %stack %532
%813 = OpLoad %int %812
%814 = OpAccessChain %_ptr_Function_int %stack %532
OpStore %814 %int_0
%815 = OpAccessChain %_ptr_Function_int %stack %532
OpStore %815 %813
%816 = OpCompositeExtract %float %490 0
%817 = OpCompositeExtract %float %490 1
%818 = OpCompositeConstruct %v2float %816 %817
%819 = OpAccessChain %_ptr_Function_int %stack %791
%821 = OpBitcast %uint %797
%822 = OpIAdd %uint %uint_1 %821
%820 = OpBitcast %int %822
OpStore %819 %820
%823 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %102
OpStore %stack %823
%824 = OpLoad %int %top
%825 = OpAccessChain %_ptr_Function_int %stack %562
%826 = OpLoad %int %825
%827 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %827 %int_0
%828 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %828 %826
%829 = OpCompositeExtract %float %502 1
%830 = OpCompositeExtract %float %802 1
%831 = OpCompositeConstruct %v2float %829 %830
%832 = OpLoad %_arr_int_uint_10 %stack
OpStore %stack %102
OpStore %stack %832
%833 = OpBitcast %int %uint_1
%834 = OpIAdd %int %824 %833
%835 = OpAccessChain %_ptr_Function_int %stack %791
%836 = OpLoad %int %835
%837 = OpAccessChain %_ptr_Function_int %stack %791
OpStore %837 %int_0
%838 = OpAccessChain %_ptr_Function_int %stack %791
OpStore %838 %836
OpStore %top %834
%839 = OpLoad %int %param_4
OpStore %param_4 %int_0
OpStore %param_4 %839
%840 = OpLoad %int %h_1
%841 = OpAccessChain %_ptr_Function_int %stack %482
%842 = OpLoad %int %841
%843 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %843 %int_0
%844 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %844 %842
%845 = OpAccessChain %_ptr_Function_int %stack %446
%846 = OpLoad %int %845
%847 = OpAccessChain %_ptr_Function_int %stack %446
OpStore %847 %int_0
%848 = OpAccessChain %_ptr_Function_int %stack %446
OpStore %848 %846
%849 = OpAccessChain %_ptr_Function_int %stack %834
OpStore %849 %840
%850 = OpAccessChain %_ptr_Function_int %stack %562
%851 = OpLoad %int %850
%852 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %852 %int_0
%853 = OpAccessChain %_ptr_Function_int %stack %562
OpStore %853 %851
%854 = OpCompositeExtract %float %530 1
%855 = OpCompositeExtract %float %497 0
%856 = OpCompositeExtract %float %497 0
%857 = OpCompositeConstruct %v3float %854 %855 %856
%858 = OpLoad %int %l_1
OpStore %l_1 %int_0
OpStore %l_1 %858
OpBranch %772
%772 = OpLabel
%859 = OpAccessChain %_ptr_Function_int %stack %482
%860 = OpLoad %int %859
%861 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %861 %int_0
%862 = OpAccessChain %_ptr_Function_int %stack %482
OpStore %862 %860
OpBranch %507
%507 = OpLabel
%863 = OpLoad %int %l_1
OpStore %l_1 %int_0
OpStore %l_1 %863
%864 = OpCompositeExtract %float %490 2
%865 = OpCompositeExtract %float %497 0
%866 = OpCompositeConstruct %v2float %864 %865
%867 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %867
OpBranch %505
%506 = OpLabel
%868 = OpLoad %int %h_1
OpStore %h_1 %int_0
OpStore %h_1 %868
OpReturn
OpFunctionEnd
%main_1 = OpFunction %void None %419
%870 = OpLabel
%color = OpVariable %_ptr_Function_v3float Function %171
%i_2 = OpVariable %_ptr_Function_int Function %31
%uv = OpVariable %_ptr_Function_v2float Function %168
%874 = OpLoad %v2float %uv
OpStore %uv %876
OpStore %uv %874
OpStore %i_2 %int_0
%877 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %877
OpSelectionMerge %879 None
OpBranchConditional %true %880 %879
%880 = OpLabel
%881 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %881
%882 = OpCompositeExtract %float %38 0
%883 = OpCompositeExtract %float %38 0
%884 = OpCompositeConstruct %v2float %882 %883
%885 = OpLoad %int %i_2
%886 = OpLoad %v2float %uv
OpStore %uv %876
OpStore %uv %886
%887 = OpLoad %v3float %color
OpStore %color %888
OpStore %color %887
%889 = OpCompositeExtract %float %884 1
%890 = OpCompositeExtract %float %884 1
%891 = OpCompositeConstruct %v2float %889 %890
%892 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %892
OpBranch %879
%879 = OpLabel
%893 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %893
%894 = OpCompositeExtract %float %168 0
%895 = OpCompositeExtract %float %168 0
%896 = OpCompositeConstruct %v2float %894 %895
%897 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %897
%898 = OpFunctionCall %void %quicksort_
%899 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %899
%900 = OpLoad %v4float %gl_FragCoord
%901 = OpLoad %v2float %uv
OpStore %uv %876
OpStore %uv %901
%902 = OpCompositeExtract %float %168 1
%903 = OpCompositeExtract %float %168 1
%904 = OpCompositeConstruct %v2float %902 %903
%905 = OpLoad %v2float %uv
OpStore %uv %876
OpStore %uv %905
%906 = OpCompositeExtract %float %900 0
%907 = OpCompositeExtract %float %900 1
%908 = OpCompositeConstruct %v2float %906 %907
%909 = OpCompositeExtract %float %908 1
%910 = OpCompositeExtract %float %896 1
%911 = OpCompositeExtract %float %896 1
%912 = OpCompositeConstruct %v3float %909 %910 %911
%913 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %913
%914 = OpLoad %v2float %uv
OpStore %uv %876
OpStore %uv %914
%916 = OpAccessChain %_ptr_Uniform_v2float %x_188 %uint_0
%917 = OpLoad %v2float %916
%918 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %918
%919 = OpCompositeExtract %float %900 1
%920 = OpCompositeExtract %float %38 2
%921 = OpCompositeExtract %float %900 3
%922 = OpCompositeConstruct %v3float %919 %920 %921
%923 = OpLoad %v3float %color
OpStore %color %888
OpStore %color %923
%924 = OpFDiv %v2float %908 %917
%925 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %925
%926 = OpCompositeExtract %float %904 0
%927 = OpCompositeExtract %float %908 1
%928 = OpCompositeConstruct %v2float %926 %927
%929 = OpLoad %v3float %color
OpStore %color %888
%930 = OpLoad %v3float %color
OpStore %color %888
OpStore %color %930
OpStore %color %929
OpStore %uv %924
OpStore %color %38
%931 = OpLoad %v3float %color
OpStore %color %888
OpStore %color %931
%932 = OpCompositeExtract %float %908 0
%933 = OpCompositeExtract %float %908 1
%934 = OpCompositeExtract %float %896 1
%935 = OpCompositeConstruct %v3float %932 %933 %934
%936 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %936
%937 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
%938 = OpLoad %int %937
%939 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %939 %int_0
%940 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %940 %938
%941 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
%942 = OpLoad %int %941
%943 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %943
%944 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
%945 = OpLoad %int %944
%946 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %946 %int_0
%947 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %947 %945
%948 = OpAccessChain %_ptr_Function_float %color %uint_0
%949 = OpLoad %float %948
%950 = OpAccessChain %_ptr_Function_float %color %uint_0
%951 = OpLoad %float %950
%952 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %952 %float_0
%953 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %953 %951
%954 = OpCompositeExtract %float %38 2
%955 = OpCompositeExtract %float %38 1
%956 = OpCompositeConstruct %v2float %954 %955
%957 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %957
%958 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %958
%959 = OpCompositeExtract %float %935 0
%960 = OpCompositeExtract %float %928 0
%961 = OpCompositeExtract %float %928 1
%962 = OpCompositeConstruct %v3float %959 %960 %961
%963 = OpAccessChain %_ptr_Function_float %color %uint_0
%964 = OpConvertSToF %float %942
%965 = OpFAdd %float %949 %964
OpStore %963 %965
%966 = OpLoad %v2float %uv
OpStore %uv %876
OpStore %uv %966
%967 = OpLoad %v2float %uv
OpStore %uv %876
OpStore %uv %967
%968 = OpCompositeExtract %float %900 1
%969 = OpCompositeExtract %float %900 1
%970 = OpCompositeConstruct %v2float %968 %969
%971 = OpAccessChain %_ptr_Function_float %uv %uint_0
%972 = OpLoad %float %971
%973 = OpCompositeExtract %float %924 1
%974 = OpCompositeExtract %float %924 0
%975 = OpCompositeConstruct %v2float %973 %974
%976 = OpAccessChain %_ptr_Function_float %uv %uint_0
%977 = OpLoad %float %976
%978 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %978 %float_0
%979 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %979 %977
%980 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %980
%982 = OpFOrdGreaterThan %bool %972 %float_0_25
OpSelectionMerge %983 None
OpBranchConditional %982 %984 %983
%984 = OpLabel
%985 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %985
%986 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
%987 = OpLoad %int %986
%988 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %988 %int_0
%989 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %989 %987
%990 = OpCompositeExtract %float %168 1
%991 = OpCompositeExtract %float %912 1
%992 = OpCompositeExtract %float %912 1
%993 = OpCompositeConstruct %v3float %990 %991 %992
%994 = OpAccessChain %_ptr_Function_float %uv %uint_0
%995 = OpLoad %float %994
%996 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %996 %float_0
%997 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %997 %995
%998 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_1
%999 = OpLoad %int %998
%1000 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %1000
%1001 = OpCompositeExtract %float %970 0
%1002 = OpCompositeExtract %float %970 0
%1003 = OpCompositeConstruct %v2float %1001 %1002
%1004 = OpLoad %v2float %uv
OpStore %uv %876
OpStore %uv %1004
%1005 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %1005
%1006 = OpCompositeExtract %float %38 2
%1007 = OpCompositeExtract %float %168 1
%1008 = OpCompositeConstruct %v2float %1006 %1007
%1009 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1009
%1010 = OpAccessChain %_ptr_Function_float %color %int_0
%1011 = OpLoad %float %1010
%1012 = OpAccessChain %_ptr_Function_float %color %int_0
%1013 = OpLoad %float %1012
%1014 = OpAccessChain %_ptr_Function_float %color %int_0
OpStore %1014 %float_0
%1015 = OpAccessChain %_ptr_Function_float %color %int_0
OpStore %1015 %1013
%1016 = OpLoad %v3float %color
OpStore %color %888
OpStore %color %1016
%1017 = OpLoad %v3float %color
OpStore %color %888
OpStore %color %1017
%1018 = OpCompositeExtract %float %970 1
%1019 = OpCompositeExtract %float %970 1
%1020 = OpCompositeExtract %float %904 1
%1021 = OpCompositeConstruct %v3float %1018 %1019 %1020
%1022 = OpAccessChain %_ptr_Function_float %color %int_0
%1023 = OpLoad %float %1022
%1024 = OpAccessChain %_ptr_Function_float %color %int_0
OpStore %1024 %float_0
%1025 = OpAccessChain %_ptr_Function_float %color %int_0
OpStore %1025 %1023
%1026 = OpAccessChain %_ptr_Function_float %color %uint_0
%1027 = OpConvertSToF %float %999
%1028 = OpFAdd %float %1027 %1011
OpStore %1026 %1028
%1029 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
%1030 = OpLoad %int %1029
%1031 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %1031 %int_0
%1032 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %1032 %1030
OpBranch %983
%983 = OpLabel
%1033 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1034 = OpLoad %float %1033
%1035 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1035 %float_0
%1036 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1036 %1034
%1037 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1038 = OpLoad %float %1037
%1039 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1039 %float_0
%1040 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1040 %1038
%1041 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1042 = OpLoad %float %1041
%1043 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1044 = OpLoad %float %1043
%1045 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1045 %float_0
%1046 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1046 %1044
%1047 = OpCompositeExtract %float %962 2
%1048 = OpCompositeExtract %float %962 1
%1049 = OpCompositeExtract %float %962 1
%1050 = OpCompositeConstruct %v3float %1047 %1048 %1049
%1051 = OpLoad %v2float %uv
OpStore %uv %876
OpStore %uv %1051
%1052 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1053 = OpLoad %float %1052
%1054 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1054 %float_0
%1055 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1055 %1053
%1056 = OpCompositeExtract %float %168 1
%1057 = OpCompositeExtract %float %168 1
%1058 = OpCompositeConstruct %v2float %1056 %1057
%1059 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1060 = OpLoad %float %1059
%1061 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1061 %float_0
%1062 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1062 %1060
%1064 = OpFOrdGreaterThan %bool %1042 %float_0_5
OpSelectionMerge %1065 None
OpBranchConditional %1064 %1066 %1065
%1066 = OpLabel
%1067 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1068 = OpLoad %float %1067
%1069 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1069 %float_0
%1070 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1070 %1068
%1071 = OpCompositeExtract %float %896 0
%1072 = OpCompositeExtract %float %896 0
%1073 = OpCompositeConstruct %v2float %1071 %1072
%1074 = OpAccessChain %_ptr_Function_float %color %uint_0
%1075 = OpLoad %float %1074
%1076 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1076 %float_0
%1077 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1077 %1075
%1078 = OpAccessChain %_ptr_Function_float %color %uint_0
%1079 = OpLoad %float %1078
%1080 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1080 %float_0
%1081 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1081 %1079
%1082 = OpCompositeExtract %float %962 0
%1083 = OpCompositeExtract %float %962 2
%1084 = OpCompositeExtract %float %1058 1
%1085 = OpCompositeConstruct %v3float %1082 %1083 %1084
%1086 = OpAccessChain %_ptr_Function_float %color %uint_0
%1087 = OpLoad %float %1086
%1088 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1088 %float_0
%1089 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1089 %1087
%1091 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
%1092 = OpLoad %int %1091
%1093 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1094 = OpLoad %float %1093
%1095 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1095 %float_0
%1096 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1096 %1094
%1097 = OpAccessChain %_ptr_Function_float %color %uint_0
%1098 = OpLoad %float %1097
%1099 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1099 %float_0
%1100 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1100 %1098
%1101 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
%1102 = OpLoad %int %1101
%1103 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
OpStore %1103 %int_0
%1104 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
OpStore %1104 %1102
%1105 = OpCompositeExtract %float %928 1
%1106 = OpCompositeExtract %float %917 0
%1107 = OpCompositeConstruct %v2float %1105 %1106
%1108 = OpAccessChain %_ptr_Function_float %color %uint_1
%1109 = OpLoad %float %1108
%1110 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1110 %float_0
%1111 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1111 %1109
%1112 = OpAccessChain %_ptr_Function_float %color %uint_1
%1113 = OpLoad %float %1112
%1114 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
%1115 = OpLoad %int %1114
%1116 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
OpStore %1116 %int_0
%1117 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2
OpStore %1117 %1115
%1118 = OpCompositeExtract %float %1085 0
%1119 = OpCompositeExtract %float %908 0
%1120 = OpCompositeConstruct %v2float %1118 %1119
%1121 = OpAccessChain %_ptr_Function_float %color %uint_0
%1122 = OpLoad %float %1121
%1123 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1123 %float_0
%1124 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1124 %1122
%1125 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1125
%1126 = OpCompositeExtract %float %975 1
%1127 = OpCompositeExtract %float %168 1
%1128 = OpCompositeConstruct %v2float %1126 %1127
%1129 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1129
%1130 = OpAccessChain %_ptr_Function_float %color %uint_1
%1131 = OpConvertSToF %float %1092
%1132 = OpFAdd %float %1131 %1113
OpStore %1130 %1132
%1133 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1134 = OpLoad %float %1133
%1135 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1135 %float_0
%1136 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1136 %1134
OpBranch %1065
%1065 = OpLabel
%1137 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1137
%1138 = OpCompositeExtract %float %917 0
%1139 = OpCompositeExtract %float %917 0
%1140 = OpCompositeConstruct %v2float %1138 %1139
%1141 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1142 = OpLoad %float %1141
%1143 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1143 %float_0
%1144 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1144 %1142
%1145 = OpAccessChain %_ptr_Function_float %uv %int_0
%1146 = OpLoad %float %1145
%1147 = OpLoad %v3float %color
OpStore %color %888
OpStore %color %1147
%1148 = OpAccessChain %_ptr_Function_float %color %uint_0
%1149 = OpLoad %float %1148
%1150 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1150 %float_0
%1151 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1151 %1149
%1153 = OpFOrdGreaterThan %bool %1146 %float_0_75
OpSelectionMerge %1154 None
OpBranchConditional %1153 %1155 %1154
%1155 = OpLabel
%1156 = OpAccessChain %_ptr_Function_float %color %uint_0
%1157 = OpLoad %float %1156
%1158 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1158 %float_0
%1159 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1159 %1157
%1161 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_3
%1162 = OpLoad %int %1161
%1163 = OpAccessChain %_ptr_Function_float %color %uint_0
%1164 = OpLoad %float %1163
%1165 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1165 %float_0
%1166 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1166 %1164
%1167 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %1167
%1168 = OpCompositeExtract %float %1140 0
%1169 = OpCompositeExtract %float %1140 0
%1170 = OpCompositeExtract %float %1140 0
%1171 = OpCompositeConstruct %v3float %1168 %1169 %1170
%1172 = OpAccessChain %_ptr_Function_float %uv %int_0
%1173 = OpLoad %float %1172
%1174 = OpAccessChain %_ptr_Function_float %uv %int_0
OpStore %1174 %float_0
%1175 = OpAccessChain %_ptr_Function_float %uv %int_0
OpStore %1175 %1173
%1176 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1177 = OpLoad %float %1176
%1178 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1178 %float_0
%1179 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1179 %1177
%1180 = OpAccessChain %_ptr_Function_float %color %uint_2
%1181 = OpLoad %float %1180
%1182 = OpLoad %v3float %color
OpStore %color %888
OpStore %color %1182
%1183 = OpCompositeExtract %float %1140 0
%1184 = OpCompositeExtract %float %917 1
%1185 = OpCompositeExtract %float %1140 1
%1186 = OpCompositeConstruct %v3float %1183 %1184 %1185
%1187 = OpAccessChain %_ptr_Function_float %color %uint_2
%1188 = OpLoad %float %1187
%1189 = OpAccessChain %_ptr_Function_float %color %uint_2
OpStore %1189 %float_0
%1190 = OpAccessChain %_ptr_Function_float %color %uint_2
OpStore %1190 %1188
%1191 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
%1192 = OpLoad %int %1191
%1193 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %1193 %int_0
%1194 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %1194 %1192
%1195 = OpCompositeExtract %float %168 0
%1196 = OpCompositeExtract %float %168 1
%1197 = OpCompositeConstruct %v2float %1195 %1196
%1198 = OpAccessChain %_ptr_Function_float %color %uint_2
%1199 = OpLoad %float %1198
%1200 = OpAccessChain %_ptr_Function_float %color %uint_2
OpStore %1200 %float_0
%1201 = OpAccessChain %_ptr_Function_float %color %uint_2
OpStore %1201 %1199
%1202 = OpAccessChain %_ptr_Function_float %color %uint_2
%1203 = OpConvertSToF %float %1162
%1204 = OpFAdd %float %1181 %1203
OpStore %1202 %1204
%1205 = OpLoad %v2float %uv
OpStore %uv %876
OpStore %uv %1205
%1206 = OpCompositeExtract %float %1197 1
%1207 = OpCompositeExtract %float %1197 1
%1208 = OpCompositeConstruct %v2float %1206 %1207
OpBranch %1154
%1154 = OpLabel
%1209 = OpAccessChain %_ptr_Function_float %uv %int_0
%1210 = OpLoad %float %1209
%1211 = OpAccessChain %_ptr_Function_float %uv %int_0
OpStore %1211 %float_0
%1212 = OpAccessChain %_ptr_Function_float %uv %int_0
OpStore %1212 %1210
%1213 = OpCompositeExtract %float %970 0
%1214 = OpCompositeExtract %float %970 1
%1215 = OpCompositeExtract %float %970 1
%1216 = OpCompositeConstruct %v3float %1213 %1214 %1215
%1218 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
%1219 = OpLoad %int %1218
%1220 = OpAccessChain %_ptr_Function_float %uv %int_0
%1221 = OpLoad %float %1220
%1222 = OpAccessChain %_ptr_Function_float %uv %int_0
OpStore %1222 %float_0
%1223 = OpAccessChain %_ptr_Function_float %uv %int_0
OpStore %1223 %1221
%1224 = OpLoad %v3float %color
OpStore %color %888
OpStore %color %1224
%1225 = OpCompositeExtract %float %896 1
%1226 = OpCompositeExtract %float %962 0
%1227 = OpCompositeExtract %float %962 0
%1228 = OpCompositeConstruct %v3float %1225 %1226 %1227
%1229 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
%1230 = OpLoad %int %1229
%1231 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
OpStore %1231 %int_0
%1232 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
OpStore %1232 %1230
%1233 = OpCompositeExtract %float %917 0
%1234 = OpCompositeExtract %float %900 2
%1235 = OpCompositeConstruct %v2float %1233 %1234
%1236 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1237 = OpLoad %float %1236
%1238 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1238 %float_0
%1239 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1239 %1237
%1240 = OpAccessChain %_ptr_Function_float %color %uint_1
%1241 = OpLoad %float %1240
%1242 = OpAccessChain %_ptr_Function_float %color %uint_1
%1243 = OpLoad %float %1242
%1244 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1244 %float_0
%1245 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1245 %1243
%1246 = OpCompositeExtract %float %1140 0
%1247 = OpCompositeExtract %float %928 0
%1248 = OpCompositeConstruct %v2float %1246 %1247
%1249 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1250 = OpLoad %float %1249
%1251 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1251 %float_0
%1252 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1252 %1250
%1253 = OpAccessChain %_ptr_Function_float %color %uint_0
%1254 = OpLoad %float %1253
%1255 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1255 %float_0
%1256 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1256 %1254
%1257 = OpCompositeExtract %float %935 2
%1258 = OpCompositeExtract %float %1050 1
%1259 = OpCompositeConstruct %v2float %1257 %1258
%1260 = OpAccessChain %_ptr_Function_float %color %uint_1
%1261 = OpConvertSToF %float %1219
%1262 = OpFAdd %float %1241 %1261
OpStore %1260 %1262
%1263 = OpCompositeExtract %float %168 0
%1264 = OpCompositeExtract %float %1216 0
%1265 = OpCompositeExtract %float %168 1
%1266 = OpCompositeConstruct %v3float %1263 %1264 %1265
%1267 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1268 = OpLoad %float %1267
%1269 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1269 %float_0
%1270 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1270 %1268
%1271 = OpAccessChain %_ptr_Function_float %color %uint_0
%1272 = OpLoad %float %1271
%1273 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1273 %float_0
%1274 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1274 %1272
%1275 = OpCompositeExtract %float %1216 0
%1276 = OpCompositeExtract %float %1216 1
%1277 = OpCompositeConstruct %v2float %1275 %1276
%1278 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1279 = OpLoad %float %1278
%1280 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1280 %float_0
%1281 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1281 %1279
%1282 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1283 = OpLoad %float %1282
%1284 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1284
%1285 = OpCompositeExtract %float %168 1
%1286 = OpCompositeExtract %float %970 1
%1287 = OpCompositeExtract %float %168 0
%1288 = OpCompositeConstruct %v3float %1285 %1286 %1287
%1289 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
%1290 = OpLoad %int %1289
%1291 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %1291 %int_0
%1292 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %1292 %1290
%1293 = OpAccessChain %_ptr_Function_float %color %uint_1
%1294 = OpLoad %float %1293
%1295 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1295 %float_0
%1296 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1296 %1294
%1297 = OpCompositeExtract %float %896 0
%1298 = OpCompositeExtract %float %896 0
%1299 = OpCompositeExtract %float %168 1
%1300 = OpCompositeConstruct %v3float %1297 %1298 %1299
%1301 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1302 = OpLoad %float %1301
%1303 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1303 %float_0
%1304 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1304 %1302
%1305 = OpFOrdGreaterThan %bool %1283 %float_0_25
OpSelectionMerge %1306 None
OpBranchConditional %1305 %1307 %1306
%1307 = OpLabel
%1308 = OpCompositeExtract %float %904 0
%1309 = OpCompositeExtract %float %1300 2
%1310 = OpCompositeConstruct %v2float %1308 %1309
%1311 = OpLoad %v3float %color
OpStore %color %888
OpStore %color %1311
%1313 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_5
%1314 = OpLoad %int %1313
%1315 = OpAccessChain %_ptr_Function_float %color %uint_0
%1316 = OpLoad %float %1315
%1317 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1317 %float_0
%1318 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1318 %1316
%1319 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1319
%1320 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1320
%1321 = OpAccessChain %_ptr_Function_float %color %uint_0
%1322 = OpLoad %float %1321
%1323 = OpAccessChain %_ptr_Function_float %uv %int_0
%1324 = OpLoad %float %1323
%1325 = OpAccessChain %_ptr_Function_float %uv %int_0
OpStore %1325 %float_0
%1326 = OpAccessChain %_ptr_Function_float %uv %int_0
OpStore %1326 %1324
%1327 = OpCompositeExtract %float %975 0
%1328 = OpCompositeExtract %float %1248 1
%1329 = OpCompositeExtract %float %975 1
%1330 = OpCompositeConstruct %v3float %1327 %1328 %1329
%1331 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %1331
%1332 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1333 = OpLoad %float %1332
%1334 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1334 %float_0
%1335 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1335 %1333
%1336 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1336
%1337 = OpCompositeExtract %float %900 3
%1338 = OpCompositeExtract %float %900 3
%1339 = OpCompositeExtract %float %924 0
%1340 = OpCompositeConstruct %v3float %1337 %1338 %1339
%1341 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1342 = OpLoad %float %1341
%1343 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1343 %float_0
%1344 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1344 %1342
%1345 = OpAccessChain %_ptr_Function_float %color %uint_0
%1346 = OpConvertSToF %float %1314
%1347 = OpFAdd %float %1346 %1322
OpStore %1345 %1347
%1348 = OpCompositeExtract %float %970 1
%1349 = OpCompositeExtract %float %928 0
%1350 = OpCompositeExtract %float %970 1
%1351 = OpCompositeConstruct %v3float %1348 %1349 %1350
%1352 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1353 = OpLoad %float %1352
%1354 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1354 %float_0
%1355 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1355 %1353
OpBranch %1306
%1306 = OpLabel
%1356 = OpAccessChain %_ptr_Function_float %color %uint_0
%1357 = OpLoad %float %1356
%1358 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1358 %float_0
%1359 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1359 %1357
%1360 = OpCompositeExtract %float %1140 0
%1361 = OpCompositeExtract %float %928 1
%1362 = OpCompositeExtract %float %928 0
%1363 = OpCompositeConstruct %v3float %1360 %1361 %1362
%1364 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1365 = OpLoad %float %1364
%1366 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1366 %float_0
%1367 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1367 %1365
%1368 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
%1369 = OpLoad %int %1368
%1370 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
OpStore %1370 %int_0
%1371 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
OpStore %1371 %1369
%1372 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1373 = OpLoad %float %1372
%1374 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
%1375 = OpLoad %int %1374
%1376 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %1376 %int_0
%1377 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %1377 %1375
%1378 = OpFOrdGreaterThan %bool %1373 %float_0_5
OpSelectionMerge %1379 None
OpBranchConditional %1378 %1380 %1379
%1380 = OpLabel
%1381 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1382 = OpLoad %float %1381
%1383 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1383 %float_0
%1384 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1384 %1382
%1385 = OpCompositeExtract %float %1300 1
%1386 = OpCompositeExtract %float %975 1
%1387 = OpCompositeConstruct %v2float %1385 %1386
%1388 = OpAccessChain %_ptr_Function_float %color %uint_1
%1389 = OpLoad %float %1388
%1390 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1390 %float_0
%1391 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1391 %1389
%1392 = OpCompositeExtract %float %922 2
%1393 = OpCompositeExtract %float %922 1
%1394 = OpCompositeConstruct %v2float %1392 %1393
%1395 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1396 = OpLoad %float %1395
%1397 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1397 %float_0
%1398 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1398 %1396
%1400 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
%1401 = OpLoad %int %1400
%1402 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1403 = OpLoad %float %1402
%1404 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1404 %float_0
%1405 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1405 %1403
%1406 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1406
%1407 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
%1408 = OpLoad %int %1407
%1409 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
OpStore %1409 %int_0
%1410 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
OpStore %1410 %1408
%1411 = OpCompositeExtract %float %1228 2
%1412 = OpCompositeExtract %float %1228 1
%1413 = OpCompositeConstruct %v2float %1411 %1412
%1414 = OpAccessChain %_ptr_Function_float %color %uint_1
%1415 = OpLoad %float %1414
%1416 = OpLoad %v2float %uv
OpStore %uv %876
OpStore %uv %1416
%1417 = OpAccessChain %_ptr_Function_float %color %uint_0
%1418 = OpLoad %float %1417
%1419 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1419 %float_0
%1420 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1420 %1418
%1421 = OpCompositeExtract %float %1248 1
%1422 = OpCompositeExtract %float %1248 0
%1423 = OpCompositeConstruct %v2float %1421 %1422
%1424 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
%1425 = OpLoad %int %1424
%1426 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
OpStore %1426 %int_0
%1427 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
OpStore %1427 %1425
%1428 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
%1429 = OpLoad %int %1428
%1430 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
OpStore %1430 %int_0
%1431 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6
OpStore %1431 %1429
%1432 = OpCompositeExtract %float %1300 2
%1433 = OpCompositeExtract %float %1300 2
%1434 = OpCompositeConstruct %v2float %1432 %1433
%1435 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %1435
%1436 = OpAccessChain %_ptr_Function_float %color %uint_1
%1437 = OpConvertSToF %float %1401
%1438 = OpFAdd %float %1437 %1415
OpStore %1436 %1438
%1439 = OpAccessChain %_ptr_Function_float %color %uint_0
%1440 = OpLoad %float %1439
%1441 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1441 %float_0
%1442 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1442 %1440
%1443 = OpCompositeExtract %float %38 1
%1444 = OpCompositeExtract %float %970 0
%1445 = OpCompositeConstruct %v2float %1443 %1444
%1446 = OpAccessChain %_ptr_Function_float %color %uint_1
%1447 = OpLoad %float %1446
%1448 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1448 %float_0
%1449 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1449 %1447
OpBranch %1379
%1379 = OpLabel
%1450 = OpCompositeExtract %float %975 1
%1451 = OpCompositeExtract %float %975 1
%1452 = OpCompositeConstruct %v2float %1450 %1451
%1453 = OpAccessChain %_ptr_Function_float %color %uint_0
%1454 = OpLoad %float %1453
%1455 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1455 %float_0
%1456 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1456 %1454
%1457 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1458 = OpLoad %float %1457
%1459 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %1459
%1460 = OpCompositeExtract %float %1248 0
%1461 = OpCompositeExtract %float %1248 1
%1462 = OpCompositeConstruct %v2float %1460 %1461
%1463 = OpAccessChain %_ptr_Function_float %uv %int_0
%1464 = OpLoad %float %1463
%1465 = OpAccessChain %_ptr_Function_float %uv %int_0
OpStore %1465 %float_0
%1466 = OpAccessChain %_ptr_Function_float %uv %int_0
OpStore %1466 %1464
%1467 = OpAccessChain %_ptr_Function_float %color %uint_1
%1468 = OpLoad %float %1467
%1469 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1469 %float_0
%1470 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1470 %1468
%1471 = OpCompositeExtract %float %917 0
%1472 = OpCompositeExtract %float %917 1
%1473 = OpCompositeExtract %float %917 1
%1474 = OpCompositeConstruct %v3float %1471 %1472 %1473
%1475 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
%1476 = OpLoad %int %1475
%1477 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
OpStore %1477 %int_0
%1478 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
OpStore %1478 %1476
%1479 = OpFOrdGreaterThan %bool %1458 %float_0_75
OpSelectionMerge %1480 None
OpBranchConditional %1479 %1481 %1480
%1481 = OpLabel
%1482 = OpLoad %v3float %color
OpStore %color %888
OpStore %color %1482
%1483 = OpAccessChain %_ptr_Function_float %color %uint_0
%1484 = OpLoad %float %1483
%1485 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1485 %float_0
%1486 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1486 %1484
%1487 = OpCompositeExtract %float %924 1
%1488 = OpCompositeExtract %float %924 0
%1489 = OpCompositeExtract %float %924 1
%1490 = OpCompositeConstruct %v3float %1487 %1488 %1489
%1491 = OpLoad %v3float %color
OpStore %color %888
OpStore %color %1491
%1493 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_7
%1494 = OpLoad %int %1493
%1495 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1496 = OpLoad %float %1495
%1497 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1497 %float_0
%1498 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1498 %1496
%1499 = OpCompositeExtract %float %1248 0
%1500 = OpCompositeExtract %float %1140 1
%1501 = OpCompositeExtract %float %1140 0
%1502 = OpCompositeConstruct %v3float %1499 %1500 %1501
%1503 = OpAccessChain %_ptr_Function_float %color %uint_1
%1504 = OpLoad %float %1503
%1505 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1505 %float_0
%1506 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1506 %1504
%1507 = OpCompositeExtract %float %1266 0
%1508 = OpCompositeExtract %float %1058 1
%1509 = OpCompositeConstruct %v2float %1507 %1508
%1510 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
%1511 = OpLoad %int %1510
%1512 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %1512 %int_0
%1513 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0
OpStore %1513 %1511
%1514 = OpAccessChain %_ptr_Function_float %color %uint_1
%1515 = OpLoad %float %1514
%1516 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1516 %float_0
%1517 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1517 %1515
%1518 = OpCompositeExtract %float %1277 0
%1519 = OpCompositeExtract %float %1277 1
%1520 = OpCompositeExtract %float %1277 0
%1521 = OpCompositeConstruct %v3float %1518 %1519 %1520
%1522 = OpAccessChain %_ptr_Function_float %color %uint_0
%1523 = OpLoad %float %1522
%1524 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1524 %float_0
%1525 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1525 %1523
%1526 = OpAccessChain %_ptr_Function_float %color %uint_2
%1527 = OpLoad %float %1526
%1528 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1529 = OpLoad %float %1528
%1530 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1530 %float_0
%1531 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1531 %1529
%1532 = OpCompositeExtract %float %900 0
%1533 = OpCompositeExtract %float %900 1
%1534 = OpCompositeConstruct %v2float %1532 %1533
%1535 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1536 = OpLoad %float %1535
%1537 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1537 %float_0
%1538 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1538 %1536
%1539 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1540 = OpLoad %float %1539
%1541 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1541 %float_0
%1542 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1542 %1540
%1543 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1544 = OpLoad %float %1543
%1545 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1545 %float_0
%1546 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1546 %1544
%1547 = OpCompositeExtract %float %1534 1
%1548 = OpCompositeExtract %float %1534 1
%1549 = OpCompositeExtract %float %1474 2
%1550 = OpCompositeConstruct %v3float %1547 %1548 %1549
%1551 = OpAccessChain %_ptr_Function_float %color %uint_2
%1552 = OpLoad %float %1551
%1553 = OpAccessChain %_ptr_Function_float %color %uint_2
OpStore %1553 %float_0
%1554 = OpAccessChain %_ptr_Function_float %color %uint_2
OpStore %1554 %1552
%1555 = OpAccessChain %_ptr_Function_float %color %uint_2
%1556 = OpConvertSToF %float %1494
%1557 = OpFAdd %float %1556 %1527
OpStore %1555 %1557
%1558 = OpAccessChain %_ptr_Function_float %color %uint_1
%1559 = OpLoad %float %1558
%1560 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1560 %float_0
%1561 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1561 %1559
%1562 = OpCompositeExtract %float %962 0
%1563 = OpCompositeExtract %float %962 2
%1564 = OpCompositeConstruct %v2float %1562 %1563
%1565 = OpAccessChain %_ptr_Function_float %color %uint_0
%1566 = OpLoad %float %1565
%1567 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1567 %float_0
%1568 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1568 %1566
OpBranch %1480
%1480 = OpLabel
%1569 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1569
%1570 = OpCompositeExtract %float %935 1
%1571 = OpCompositeExtract %float %924 1
%1572 = OpCompositeConstruct %v2float %1570 %1571
%1573 = OpLoad %v2float %uv
OpStore %uv %876
OpStore %uv %1573
%1575 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
%1576 = OpLoad %int %1575
%1577 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1577
%1578 = OpCompositeExtract %float %908 0
%1579 = OpCompositeExtract %float %935 2
%1580 = OpCompositeConstruct %v2float %1578 %1579
%1581 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
%1582 = OpLoad %int %1581
%1583 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
OpStore %1583 %int_0
%1584 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
OpStore %1584 %1582
%1585 = OpAccessChain %_ptr_Function_float %color %uint_1
%1586 = OpLoad %float %1585
%1587 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1587 %float_0
%1588 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1588 %1586
%1589 = OpCompositeExtract %float %962 1
%1590 = OpCompositeExtract %float %168 0
%1591 = OpCompositeConstruct %v2float %1589 %1590
%1592 = OpAccessChain %_ptr_Function_float %color %uint_0
%1593 = OpLoad %float %1592
%1594 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1594 %float_0
%1595 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1595 %1593
%1596 = OpCompositeExtract %float %1591 0
%1597 = OpCompositeExtract %float %1591 1
%1598 = OpCompositeExtract %float %1591 0
%1599 = OpCompositeConstruct %v3float %1596 %1597 %1598
%1600 = OpAccessChain %_ptr_Function_float %color %uint_2
%1601 = OpLoad %float %1600
%1602 = OpAccessChain %_ptr_Function_float %color %uint_2
OpStore %1602 %float_0
%1603 = OpAccessChain %_ptr_Function_float %color %uint_2
OpStore %1603 %1601
%1604 = OpAccessChain %_ptr_Function_float %color %uint_2
%1605 = OpLoad %float %1604
%1606 = OpAccessChain %_ptr_Function_float %color %uint_0
%1607 = OpLoad %float %1606
%1608 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1608 %float_0
%1609 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1609 %1607
%1610 = OpCompositeExtract %float %1462 0
%1611 = OpCompositeExtract %float %1452 0
%1612 = OpCompositeConstruct %v2float %1610 %1611
%1613 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
%1614 = OpLoad %int %1613
%1615 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
OpStore %1615 %int_0
%1616 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
OpStore %1616 %1614
%1617 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1618 = OpLoad %float %1617
%1619 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1619 %float_0
%1620 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1620 %1618
%1621 = OpCompositeExtract %float %1058 0
%1622 = OpCompositeExtract %float %904 0
%1623 = OpCompositeConstruct %v2float %1621 %1622
%1624 = OpAccessChain %_ptr_Function_float %color %uint_1
%1625 = OpLoad %float %1624
%1626 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1626 %float_0
%1627 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1627 %1625
%1628 = OpAccessChain %_ptr_Function_float %color %uint_2
%1629 = OpConvertSToF %float %1576
%1630 = OpFAdd %float %1605 %1629
OpStore %1628 %1630
%1631 = OpLoad %v2float %uv
OpStore %uv %876
OpStore %uv %1631
%1632 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1633 = OpLoad %float %1632
%1634 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1634 %float_0
%1635 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1635 %1633
%1636 = OpCompositeExtract %float %1058 1
%1637 = OpCompositeExtract %float %1058 0
%1638 = OpCompositeExtract %float %1612 1
%1639 = OpCompositeConstruct %v3float %1636 %1637 %1638
%1640 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1641 = OpLoad %float %1640
%1642 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1642 %float_0
%1643 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1643 %1641
%1644 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1645 = OpLoad %float %1644
%1646 = OpAccessChain %_ptr_Function_float %color %uint_1
%1647 = OpLoad %float %1646
%1648 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1648 %float_0
%1649 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1649 %1647
%1650 = OpCompositeExtract %float %1580 1
%1651 = OpCompositeExtract %float %1580 0
%1652 = OpCompositeExtract %float %912 2
%1653 = OpCompositeConstruct %v3float %1650 %1651 %1652
%1654 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1655 = OpLoad %float %1654
%1656 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1656 %float_0
%1657 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1657 %1655
%1658 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1659 = OpLoad %float %1658
%1660 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1661 = OpLoad %float %1660
%1662 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1662 %float_0
%1663 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1663 %1661
%1664 = OpAccessChain %_ptr_Function_float %color %uint_2
%1665 = OpLoad %float %1664
%1666 = OpAccessChain %_ptr_Function_float %color %uint_2
OpStore %1666 %float_0
%1667 = OpAccessChain %_ptr_Function_float %color %uint_2
OpStore %1667 %1665
%1668 = OpCompositeExtract %float %38 1
%1669 = OpCompositeExtract %float %1363 1
%1670 = OpCompositeExtract %float %1363 2
%1671 = OpCompositeConstruct %v3float %1668 %1669 %1670
%1672 = OpAccessChain %_ptr_Function_float %color %uint_2
%1673 = OpLoad %float %1672
%1674 = OpAccessChain %_ptr_Function_float %color %uint_2
OpStore %1674 %float_0
%1675 = OpAccessChain %_ptr_Function_float %color %uint_2
OpStore %1675 %1673
%1676 = OpLoad %int %i_2
OpStore %i_2 %int_0
OpStore %i_2 %1676
%1677 = OpCompositeExtract %float %1363 2
%1678 = OpCompositeExtract %float %1363 1
%1679 = OpCompositeConstruct %v2float %1677 %1678
%1680 = OpLoad %v3float %color
OpStore %color %888
OpStore %color %1680
%1681 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1682 = OpLoad %float %1681
%1683 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1683 %float_0
%1684 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1684 %1682
%1685 = OpCompositeExtract %float %975 1
%1686 = OpCompositeExtract %float %975 1
%1687 = OpCompositeExtract %float %975 1
%1688 = OpCompositeConstruct %v3float %1685 %1686 %1687
%1689 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
%1690 = OpLoad %int %1689
%1691 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
OpStore %1691 %int_0
%1692 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
OpStore %1692 %1690
%1695 = OpFSub %float %1645 %1659
%1693 = OpExtInst %float %1694 FAbs %1695
%1696 = OpFOrdLessThan %bool %1693 %float_0_25
OpSelectionMerge %1697 None
OpBranchConditional %1696 %1698 %1697
%1698 = OpLabel
%1699 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1700 = OpLoad %float %1699
%1701 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1701 %float_0
%1702 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1702 %1700
%1703 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %1703
%1704 = OpCompositeExtract %float %1599 2
%1705 = OpCompositeExtract %float %1599 0
%1706 = OpCompositeExtract %float %912 0
%1707 = OpCompositeConstruct %v3float %1704 %1705 %1706
%1708 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
%1709 = OpLoad %int %1708
%1710 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
OpStore %1710 %int_0
%1711 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
OpStore %1711 %1709
%1713 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_9
%1714 = OpLoad %int %1713
%1715 = OpCompositeExtract %float %1235 1
%1716 = OpCompositeExtract %float %1235 1
%1717 = OpCompositeExtract %float %1235 1
%1718 = OpCompositeConstruct %v3float %1715 %1716 %1717
%1719 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1720 = OpLoad %float %1719
%1721 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1721 %float_0
%1722 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1722 %1720
%1723 = OpAccessChain %_ptr_Function_float %color %uint_0
%1724 = OpLoad %float %1723
%1725 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1726 = OpLoad %float %1725
%1727 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1727 %float_0
%1728 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1728 %1726
%1729 = OpCompositeExtract %float %1572 0
%1730 = OpCompositeExtract %float %1572 1
%1731 = OpCompositeConstruct %v2float %1729 %1730
%1732 = OpAccessChain %_ptr_Function_float %color %uint_0
%1733 = OpLoad %float %1732
%1734 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1734 %float_0
%1735 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1735 %1733
%1736 = OpLoad %v3float %color
OpStore %color %888
OpStore %color %1736
%1737 = OpCompositeExtract %float %956 0
%1738 = OpCompositeExtract %float %956 0
%1739 = OpCompositeConstruct %v2float %1737 %1738
%1740 = OpLoad %v2float %uv
OpStore %uv %876
OpStore %uv %1740
%1741 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1742 = OpLoad %float %1741
%1743 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1743 %float_0
%1744 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1744 %1742
%1745 = OpCompositeExtract %float %168 0
%1746 = OpCompositeExtract %float %168 0
%1747 = OpCompositeExtract %float %168 1
%1748 = OpCompositeConstruct %v3float %1745 %1746 %1747
%1749 = OpAccessChain %_ptr_Function_float %color %uint_0
%1750 = OpConvertSToF %float %1714
%1751 = OpFAdd %float %1750 %1724
OpStore %1749 %1751
%1752 = OpAccessChain %_ptr_Function_float %color %uint_0
%1753 = OpLoad %float %1752
%1754 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1754 %float_0
%1755 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1755 %1753
%1756 = OpCompositeExtract %float %1300 1
%1757 = OpCompositeExtract %float %1639 0
%1758 = OpCompositeExtract %float %1300 0
%1759 = OpCompositeConstruct %v3float %1756 %1757 %1758
%1760 = OpAccessChain %_ptr_Function_float %color %uint_0
%1761 = OpLoad %float %1760
%1762 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1762 %float_0
%1763 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1763 %1761
OpBranch %1697
%1697 = OpLabel
%1764 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1765 = OpLoad %float %1764
%1766 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1766 %float_0
%1767 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1767 %1765
%1768 = OpLoad %v3float %color
%1769 = OpAccessChain %_ptr_Function_float %uv %int_0
%1770 = OpLoad %float %1769
%1771 = OpAccessChain %_ptr_Function_float %uv %int_0
OpStore %1771 %float_0
%1772 = OpAccessChain %_ptr_Function_float %uv %int_0
OpStore %1772 %1770
%1773 = OpCompositeExtract %float %904 0
%1774 = OpCompositeExtract %float %896 0
%1775 = OpCompositeExtract %float %896 1
%1776 = OpCompositeConstruct %v3float %1773 %1774 %1775
%1777 = OpExtInst %v3float %1694 Normalize %1768
%1778 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1779 = OpLoad %float %1778
%1780 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1780 %float_0
%1781 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1781 %1779
%1782 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %1782
%1783 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %1783
%1784 = OpAccessChain %_ptr_Function_float %color %uint_1
%1785 = OpLoad %float %1784
%1786 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1786 %float_0
%1787 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1787 %1785
%1788 = OpCompositeExtract %float %1612 1
%1789 = OpCompositeExtract %float %1776 1
%1790 = OpCompositeConstruct %v2float %1788 %1789
%1791 = OpAccessChain %_ptr_Function_float %color %uint_1
%1792 = OpLoad %float %1791
%1793 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1793 %float_0
%1794 = OpAccessChain %_ptr_Function_float %color %uint_1
OpStore %1794 %1792
%1795 = OpCompositeExtract %float %1777 0
%1796 = OpCompositeExtract %float %1777 1
%1797 = OpCompositeExtract %float %1777 2
%1798 = OpCompositeConstruct %v4float %1795 %1796 %1797 %float_1
%1799 = OpAccessChain %_ptr_Function_float %uv %uint_1
%1800 = OpLoad %float %1799
%1801 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1801 %float_0
%1802 = OpAccessChain %_ptr_Function_float %uv %uint_1
OpStore %1802 %1800
%1803 = OpCompositeExtract %float %38 1
%1804 = OpCompositeExtract %float %38 1
%1805 = OpCompositeExtract %float %1790 1
%1806 = OpCompositeConstruct %v3float %1803 %1804 %1805
%1807 = OpAccessChain %_ptr_Function_float %uv %uint_0
%1808 = OpLoad %float %1807
%1809 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1809 %float_0
%1810 = OpAccessChain %_ptr_Function_float %uv %uint_0
OpStore %1810 %1808
OpStore %x_GLF_color %1798
%1811 = OpLoad %QuicksortObject %obj
OpStore %obj %103
OpStore %obj %1811
%1812 = OpCompositeExtract %float %1798 3
%1813 = OpCompositeExtract %float %1798 1
%1814 = OpCompositeExtract %float %1462 0
%1815 = OpCompositeConstruct %v3float %1812 %1813 %1814
%1816 = OpAccessChain %_ptr_Function_float %color %uint_0
%1817 = OpLoad %float %1816
%1818 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1818 %float_0
%1819 = OpAccessChain %_ptr_Function_float %color %uint_0
OpStore %1819 %1817
OpReturn
OpFunctionEnd
%main_inner = OpFunction %main_out None %1820
%gl_FragCoord_param = OpFunctionParameter %v4float
%1824 = OpLabel
OpStore %gl_FragCoord %gl_FragCoord_param
%1825 = OpFunctionCall %void %main_1
%1826 = OpLoad %v4float %x_GLF_color
%1827 = OpCompositeConstruct %main_out %1826
OpReturnValue %1827
OpFunctionEnd
%main = OpFunction %void None %419
%1829 = OpLabel
%1831 = OpLoad %v4float %gl_FragCoord_param_1
%1830 = OpFunctionCall %main_out %main_inner %1831
%1832 = OpCompositeExtract %v4float %1830 0
OpStore %x_GLF_color_1_1 %1832
OpReturn
OpFunctionEnd