blob: d044f62815bb1f57e1b8f9cfb535781a00337eaa [file] [log] [blame]
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 478
; Schema: 0
OpCapability Shader
%354 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %main "main" %x_GLF_pos_param_1 %frag_color_1_1 %gl_Position_1 %vertex_point_size
OpName %x_GLF_pos_param_1 "x_GLF_pos_param_1"
OpName %frag_color_1_1 "frag_color_1_1"
OpName %gl_Position_1 "gl_Position_1"
OpName %vertex_point_size "vertex_point_size"
OpName %QuicksortObject "QuicksortObject"
OpMemberName %QuicksortObject 0 "numbers"
OpName %obj "obj"
OpName %x_GLF_FragCoord "x_GLF_FragCoord"
OpName %x_GLF_pos "x_GLF_pos"
OpName %buf0 "buf0"
OpMemberName %buf0 0 "resolution"
OpName %x_34 "x_34"
OpName %frag_color "frag_color"
OpName %gl_Position "gl_Position"
OpName %performPartition_i1_i1_ "performPartition_i1_i1_"
OpName %l "l"
OpName %h "h"
OpName %x_314 "x_314"
OpName %x_315 "x_315"
OpName %pivot "pivot"
OpName %i_1 "i_1"
OpName %j_1 "j_1"
OpName %param "param"
OpName %param_1 "param_1"
OpName %param_2 "param_2"
OpName %param_3 "param_3"
OpName %main_1 "main_1"
OpName %x_91 "x_91"
OpName %x_92 "x_92"
OpName %x_93 "x_93"
OpName %x_94 "x_94"
OpName %x_95 "x_95"
OpName %x_96 "x_96"
OpName %x_97 "x_97"
OpName %i_2 "i_2"
OpName %uv "uv"
OpName %color "color"
OpName %main_out "main_out"
OpMemberName %main_out 0 "frag_color_1"
OpMemberName %main_out 1 "gl_Position"
OpName %main_inner "main_inner"
OpName %x_GLF_pos_param "x_GLF_pos_param"
OpName %main "main"
OpName %swap_i1_i1_ "swap_i1_i1_"
OpName %i "i"
OpName %j "j"
OpName %temp "temp"
OpName %quicksort_ "quicksort_"
OpName %l_1 "l_1"
OpName %h_1 "h_1"
OpName %top "top"
OpName %stack "stack"
OpName %p "p"
OpName %param_4 "param_4"
OpName %param_5 "param_5"
OpDecorate %x_GLF_pos_param_1 Location 0
OpDecorate %frag_color_1_1 Location 0
OpDecorate %gl_Position_1 BuiltIn Position
OpDecorate %vertex_point_size BuiltIn PointSize
OpMemberDecorate %QuicksortObject 0 Offset 0
OpDecorate %_arr_int_uint_10 ArrayStride 4
OpDecorate %buf0 Block
OpMemberDecorate %buf0 0 Offset 0
OpDecorate %x_34 NonWritable
OpDecorate %x_34 DescriptorSet 0
OpDecorate %x_34 Binding 0
OpMemberDecorate %main_out 0 Offset 0
OpMemberDecorate %main_out 1 Offset 16
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Input_v4float = OpTypePointer Input %v4float
%x_GLF_pos_param_1 = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%7 = OpConstantNull %v4float
%frag_color_1_1 = OpVariable %_ptr_Output_v4float Output %7
%gl_Position_1 = OpVariable %_ptr_Output_v4float Output %7
%_ptr_Output_float = OpTypePointer Output %float
%11 = OpConstantNull %float
%vertex_point_size = OpVariable %_ptr_Output_float Output %11
%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
%19 = OpConstantNull %QuicksortObject
%obj = OpVariable %_ptr_Private_QuicksortObject Private %19
%_ptr_Private_v4float = OpTypePointer Private %v4float
%x_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private %7
%x_GLF_pos = OpVariable %_ptr_Private_v4float Private %7
%v2float = OpTypeVector %float 2
%buf0 = OpTypeStruct %v2float
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%x_34 = OpVariable %_ptr_Uniform_buf0 Uniform
%frag_color = OpVariable %_ptr_Private_v4float Private %7
%gl_Position = OpVariable %_ptr_Private_v4float Private %7
%_ptr_Function_int = OpTypePointer Function %int
%29 = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_int
%36 = OpConstantNull %int
%uint_0 = OpConstant %uint 0
%_ptr_Private_int = OpTypePointer Private %int
%int_1 = OpConstant %int 1
%bool = OpTypeBool
%false = OpConstantFalse %bool
%int_0 = OpConstant %int 0
%void = OpTypeVoid
%116 = OpTypeFunction %void
%_ptr_Function__arr_int_uint_10 = OpTypePointer Function %_arr_int_uint_10
%125 = OpConstantNull %_arr_int_uint_10
%_ptr_Function_v2float = OpTypePointer Function %v2float
%132 = OpConstantNull %v2float
%v3float = OpTypeVector %float 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
%136 = OpConstantNull %v3float
%float_1 = OpConstant %float 1
%float_0 = OpConstant %float 0
%140 = OpConstantComposite %v4float %float_1 %float_1 %float_0 %float_0
%float_128 = OpConstant %float 128
%143 = OpConstantComposite %v4float %float_128 %float_128 %float_1 %float_1
%int_10 = OpConstant %int 10
%int_9 = OpConstant %int 9
%int_n1 = OpConstant %int -1
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%242 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%_ptr_Function_float = OpTypePointer Function %float
%float_0_25 = OpConstant %float 0.25
%float_0_5 = OpConstant %float 0.5
%int_2 = OpConstant %int 2
%uint_1 = OpConstant %uint 1
%float_0_75 = OpConstant %float 0.75
%int_3 = OpConstant %int 3
%uint_2 = OpConstant %uint 2
%int_4 = OpConstant %int 4
%int_5 = OpConstant %int 5
%int_6 = OpConstant %int 6
%int_7 = OpConstant %int 7
%int_8 = OpConstant %int 8
%main_out = OpTypeStruct %v4float %v4float
%373 = OpTypeFunction %main_out %v4float
%388 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int
%performPartition_i1_i1_ = OpFunction %int None %29
%l = OpFunctionParameter %_ptr_Function_int
%h = OpFunctionParameter %_ptr_Function_int
%34 = OpLabel
%x_314 = OpVariable %_ptr_Function_int Function %36
%x_315 = OpVariable %_ptr_Function_int Function %36
%pivot = OpVariable %_ptr_Function_int Function %36
%i_1 = OpVariable %_ptr_Function_int Function %36
%j_1 = OpVariable %_ptr_Function_int Function %36
%param = OpVariable %_ptr_Function_int Function %36
%param_1 = OpVariable %_ptr_Function_int Function %36
%param_2 = OpVariable %_ptr_Function_int Function %36
%param_3 = OpVariable %_ptr_Function_int Function %36
%46 = OpLoad %int %h
%49 = OpAccessChain %_ptr_Private_int %obj %uint_0 %46
%50 = OpLoad %int %49
OpStore %pivot %50
%52 = OpLoad %int %l
%54 = OpISub %int %52 %int_1
OpStore %i_1 %54
%56 = OpLoad %int %l
OpStore %j_1 %56
OpBranch %57
%57 = OpLabel
OpLoopMerge %58 %59 None
OpBranch %60
%60 = OpLabel
%61 = OpLoad %int %j_1
%63 = OpLoad %int %h
%64 = OpISub %int %63 %int_1
%65 = OpSLessThanEqual %bool %61 %64
OpSelectionMerge %67 None
OpBranchConditional %65 %68 %69
%68 = OpLabel
OpBranch %67
%69 = OpLabel
OpBranch %58
%67 = OpLabel
%70 = OpLoad %int %j_1
%71 = OpAccessChain %_ptr_Private_int %obj %uint_0 %70
%72 = OpLoad %int %71
%73 = OpLoad %int %pivot
%74 = OpSLessThanEqual %bool %72 %73
OpSelectionMerge %75 None
OpBranchConditional %74 %76 %75
%76 = OpLabel
%77 = OpLoad %int %i_1
%78 = OpIAdd %int %77 %int_1
OpStore %i_1 %78
%79 = OpLoad %int %i_1
OpStore %param %79
%80 = OpLoad %int %j_1
OpStore %param_1 %80
%81 = OpLoad %int %param
%82 = OpAccessChain %_ptr_Private_int %obj %uint_0 %81
%83 = OpLoad %int %82
OpStore %x_315 %83
%84 = OpLoad %int %param
%85 = OpLoad %int %param_1
%86 = OpAccessChain %_ptr_Private_int %obj %uint_0 %85
%87 = OpLoad %int %86
%88 = OpAccessChain %_ptr_Private_int %obj %uint_0 %84
OpStore %88 %87
%89 = OpLoad %int %param_1
%90 = OpLoad %int %x_315
%91 = OpAccessChain %_ptr_Private_int %obj %uint_0 %89
OpStore %91 %90
OpBranch %75
%75 = OpLabel
OpBranch %59
%59 = OpLabel
%92 = OpLoad %int %j_1
%93 = OpIAdd %int %92 %int_1
OpStore %j_1 %93
OpBranch %57
%58 = OpLabel
%94 = OpLoad %int %i_1
%95 = OpIAdd %int %94 %int_1
OpStore %param_2 %95
%97 = OpLoad %int %h
OpStore %param_3 %97
%98 = OpLoad %int %param_2
%99 = OpAccessChain %_ptr_Private_int %obj %uint_0 %98
%100 = OpLoad %int %99
OpStore %x_314 %100
%101 = OpLoad %int %param_2
%102 = OpLoad %int %param_3
%103 = OpAccessChain %_ptr_Private_int %obj %uint_0 %102
%104 = OpLoad %int %103
%105 = OpAccessChain %_ptr_Private_int %obj %uint_0 %101
OpStore %105 %104
%106 = OpLoad %int %param_3
%107 = OpLoad %int %x_314
%108 = OpAccessChain %_ptr_Private_int %obj %uint_0 %106
OpStore %108 %107
OpSelectionMerge %110 None
OpBranchConditional %false %111 %112
%111 = OpLabel
OpBranch %110
%112 = OpLabel
%113 = OpLoad %int %i_1
%114 = OpIAdd %int %113 %int_1
OpReturnValue %114
%110 = OpLabel
OpReturnValue %int_0
OpFunctionEnd
%main_1 = OpFunction %void None %116
%119 = OpLabel
%x_91 = OpVariable %_ptr_Function_int Function %36
%x_92 = OpVariable %_ptr_Function_int Function %36
%x_93 = OpVariable %_ptr_Function_int Function %36
%x_94 = OpVariable %_ptr_Function__arr_int_uint_10 Function %125
%x_95 = OpVariable %_ptr_Function_int Function %36
%x_96 = OpVariable %_ptr_Function_int Function %36
%x_97 = OpVariable %_ptr_Function_int Function %36
%i_2 = OpVariable %_ptr_Function_int Function %36
%uv = OpVariable %_ptr_Function_v2float Function %132
%color = OpVariable %_ptr_Function_v3float Function %136
%137 = OpLoad %v4float %x_GLF_pos
%141 = OpFAdd %v4float %137 %140
%144 = OpFMul %v4float %141 %143
OpStore %x_GLF_FragCoord %144
OpStore %i_2 %int_0
OpBranch %145
%145 = OpLabel
OpLoopMerge %146 %147 None
OpBranch %148
%148 = OpLabel
%149 = OpLoad %int %i_2
%151 = OpSLessThan %bool %149 %int_10
OpSelectionMerge %152 None
OpBranchConditional %151 %153 %154
%153 = OpLabel
OpBranch %152
%154 = OpLabel
OpBranch %146
%152 = OpLabel
%155 = OpLoad %int %i_2
%156 = OpLoad %int %i_2
%157 = OpAccessChain %_ptr_Private_int %obj %uint_0 %155
%158 = OpISub %int %int_10 %156
OpStore %157 %158
%159 = OpLoad %int %i_2
%160 = OpLoad %int %i_2
%161 = OpAccessChain %_ptr_Private_int %obj %uint_0 %160
%162 = OpLoad %int %161
%163 = OpLoad %int %i_2
%164 = OpAccessChain %_ptr_Private_int %obj %uint_0 %163
%165 = OpLoad %int %164
%166 = OpAccessChain %_ptr_Private_int %obj %uint_0 %159
%167 = OpIMul %int %162 %165
OpStore %166 %167
OpBranch %147
%147 = OpLabel
%168 = OpLoad %int %i_2
%169 = OpIAdd %int %168 %int_1
OpStore %i_2 %169
OpBranch %145
%146 = OpLabel
OpStore %x_91 %int_0
OpStore %x_92 %int_9
OpStore %x_93 %int_n1
%172 = OpLoad %int %x_93
%173 = OpIAdd %int %172 %int_1
OpStore %x_93 %173
%174 = OpLoad %int %x_91
%175 = OpAccessChain %_ptr_Function_int %x_94 %173
OpStore %175 %174
%176 = OpLoad %int %x_93
%177 = OpIAdd %int %176 %int_1
OpStore %x_93 %177
%178 = OpLoad %int %x_92
%179 = OpAccessChain %_ptr_Function_int %x_94 %177
OpStore %179 %178
OpBranch %180
%180 = OpLabel
OpLoopMerge %181 %182 None
OpBranch %183
%183 = OpLabel
%184 = OpLoad %int %x_93
%185 = OpSGreaterThanEqual %bool %184 %int_0
OpSelectionMerge %186 None
OpBranchConditional %185 %187 %188
%187 = OpLabel
OpBranch %186
%188 = OpLabel
OpBranch %181
%186 = OpLabel
%189 = OpLoad %int %x_93
%190 = OpISub %int %189 %int_1
OpStore %x_93 %190
%191 = OpAccessChain %_ptr_Function_int %x_94 %189
%192 = OpLoad %int %191
OpStore %x_92 %192
%193 = OpLoad %int %x_93
%194 = OpISub %int %193 %int_1
OpStore %x_93 %194
%195 = OpAccessChain %_ptr_Function_int %x_94 %193
%196 = OpLoad %int %195
OpStore %x_91 %196
%197 = OpLoad %int %x_91
OpStore %x_96 %197
%198 = OpLoad %int %x_92
OpStore %x_97 %198
%199 = OpFunctionCall %int %performPartition_i1_i1_ %x_96 %x_97
OpStore %x_95 %199
%202 = OpLoad %int %x_95
%203 = OpLoad %int %x_91
%204 = OpISub %int %202 %int_1
%205 = OpSGreaterThan %bool %204 %203
OpSelectionMerge %206 None
OpBranchConditional %205 %207 %206
%207 = OpLabel
%208 = OpLoad %int %x_93
%209 = OpIAdd %int %208 %int_1
OpStore %x_93 %209
%210 = OpLoad %int %x_91
%211 = OpAccessChain %_ptr_Function_int %x_94 %209
OpStore %211 %210
%212 = OpLoad %int %x_93
%213 = OpIAdd %int %212 %int_1
OpStore %x_93 %213
%214 = OpLoad %int %x_95
%215 = OpAccessChain %_ptr_Function_int %x_94 %213
%216 = OpISub %int %214 %int_1
OpStore %215 %216
OpBranch %206
%206 = OpLabel
%217 = OpLoad %int %x_95
%218 = OpLoad %int %x_92
%219 = OpIAdd %int %217 %int_1
%220 = OpSLessThan %bool %219 %218
OpSelectionMerge %221 None
OpBranchConditional %220 %222 %221
%222 = OpLabel
%223 = OpLoad %int %x_93
%224 = OpIAdd %int %223 %int_1
OpStore %x_93 %224
%225 = OpLoad %int %x_95
%226 = OpAccessChain %_ptr_Function_int %x_94 %224
%227 = OpIAdd %int %225 %int_1
OpStore %226 %227
%228 = OpLoad %int %x_93
%229 = OpIAdd %int %228 %int_1
OpStore %x_93 %229
%230 = OpLoad %int %x_92
%231 = OpAccessChain %_ptr_Function_int %x_94 %229
OpStore %231 %230
OpBranch %221
%221 = OpLabel
OpBranch %182
%182 = OpLabel
OpBranch %180
%181 = OpLabel
%232 = OpLoad %v4float %x_GLF_FragCoord
%234 = OpAccessChain %_ptr_Uniform_v2float %x_34 %uint_0
%235 = OpLoad %v2float %234
%236 = OpCompositeExtract %float %232 0
%237 = OpCompositeExtract %float %232 1
%238 = OpCompositeConstruct %v2float %236 %237
%239 = OpFDiv %v2float %238 %235
OpStore %uv %239
OpStore %color %242
%243 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_0
%244 = OpLoad %int %243
%246 = OpAccessChain %_ptr_Function_float %color %uint_0
%247 = OpLoad %float %246
%248 = OpAccessChain %_ptr_Function_float %color %uint_0
%249 = OpConvertSToF %float %244
%250 = OpFAdd %float %247 %249
OpStore %248 %250
%251 = OpAccessChain %_ptr_Function_float %uv %uint_0
%252 = OpLoad %float %251
%254 = OpFOrdGreaterThan %bool %252 %float_0_25
OpSelectionMerge %255 None
OpBranchConditional %254 %256 %255
%256 = OpLabel
%257 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_1
%258 = OpLoad %int %257
%259 = OpAccessChain %_ptr_Function_float %color %uint_0
%260 = OpLoad %float %259
%261 = OpAccessChain %_ptr_Function_float %color %uint_0
%262 = OpConvertSToF %float %258
%263 = OpFAdd %float %260 %262
OpStore %261 %263
OpBranch %255
%255 = OpLabel
%264 = OpAccessChain %_ptr_Function_float %uv %uint_0
%265 = OpLoad %float %264
%267 = OpFOrdGreaterThan %bool %265 %float_0_5
OpSelectionMerge %268 None
OpBranchConditional %267 %269 %268
%269 = OpLabel
%271 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_2
%272 = OpLoad %int %271
%274 = OpAccessChain %_ptr_Function_float %color %uint_1
%275 = OpLoad %float %274
%276 = OpAccessChain %_ptr_Function_float %color %uint_1
%277 = OpConvertSToF %float %272
%278 = OpFAdd %float %275 %277
OpStore %276 %278
OpBranch %268
%268 = OpLabel
%279 = OpAccessChain %_ptr_Function_float %uv %uint_0
%280 = OpLoad %float %279
%282 = OpFOrdGreaterThan %bool %280 %float_0_75
OpSelectionMerge %283 None
OpBranchConditional %282 %284 %283
%284 = OpLabel
%286 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_3
%287 = OpLoad %int %286
%289 = OpAccessChain %_ptr_Function_float %color %uint_2
%290 = OpLoad %float %289
%291 = OpAccessChain %_ptr_Function_float %color %uint_2
%292 = OpConvertSToF %float %287
%293 = OpFAdd %float %290 %292
OpStore %291 %293
OpBranch %283
%283 = OpLabel
%295 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4
%296 = OpLoad %int %295
%297 = OpAccessChain %_ptr_Function_float %color %uint_1
%298 = OpLoad %float %297
%299 = OpAccessChain %_ptr_Function_float %color %uint_1
%300 = OpConvertSToF %float %296
%301 = OpFAdd %float %298 %300
OpStore %299 %301
%302 = OpAccessChain %_ptr_Function_float %uv %uint_1
%303 = OpLoad %float %302
%304 = OpFOrdGreaterThan %bool %303 %float_0_25
OpSelectionMerge %305 None
OpBranchConditional %304 %306 %305
%306 = OpLabel
%308 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_5
%309 = OpLoad %int %308
%310 = OpAccessChain %_ptr_Function_float %color %uint_0
%311 = OpLoad %float %310
%312 = OpAccessChain %_ptr_Function_float %color %uint_0
%313 = OpConvertSToF %float %309
%314 = OpFAdd %float %311 %313
OpStore %312 %314
OpBranch %305
%305 = OpLabel
%315 = OpAccessChain %_ptr_Function_float %uv %uint_1
%316 = OpLoad %float %315
%317 = OpFOrdGreaterThan %bool %316 %float_0_5
OpSelectionMerge %318 None
OpBranchConditional %317 %319 %318
%319 = OpLabel
%321 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_6
%322 = OpLoad %int %321
%323 = OpAccessChain %_ptr_Function_float %color %uint_1
%324 = OpLoad %float %323
%325 = OpAccessChain %_ptr_Function_float %color %uint_1
%326 = OpConvertSToF %float %322
%327 = OpFAdd %float %324 %326
OpStore %325 %327
OpBranch %318
%318 = OpLabel
%328 = OpAccessChain %_ptr_Function_float %uv %uint_1
%329 = OpLoad %float %328
%330 = OpFOrdGreaterThan %bool %329 %float_0_75
OpSelectionMerge %331 None
OpBranchConditional %330 %332 %331
%332 = OpLabel
%334 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_7
%335 = OpLoad %int %334
%336 = OpAccessChain %_ptr_Function_float %color %uint_2
%337 = OpLoad %float %336
%338 = OpAccessChain %_ptr_Function_float %color %uint_2
%339 = OpConvertSToF %float %335
%340 = OpFAdd %float %337 %339
OpStore %338 %340
OpBranch %331
%331 = OpLabel
%342 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8
%343 = OpLoad %int %342
%344 = OpAccessChain %_ptr_Function_float %color %uint_2
%345 = OpLoad %float %344
%346 = OpAccessChain %_ptr_Function_float %color %uint_2
%347 = OpConvertSToF %float %343
%348 = OpFAdd %float %345 %347
OpStore %346 %348
%349 = OpAccessChain %_ptr_Function_float %uv %uint_0
%350 = OpLoad %float %349
%351 = OpAccessChain %_ptr_Function_float %uv %uint_1
%352 = OpLoad %float %351
%355 = OpFSub %float %350 %352
%353 = OpExtInst %float %354 FAbs %355
%356 = OpFOrdLessThan %bool %353 %float_0_25
OpSelectionMerge %357 None
OpBranchConditional %356 %358 %357
%358 = OpLabel
%359 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_9
%360 = OpLoad %int %359
%361 = OpAccessChain %_ptr_Function_float %color %uint_0
%362 = OpLoad %float %361
%363 = OpAccessChain %_ptr_Function_float %color %uint_0
%364 = OpConvertSToF %float %360
%365 = OpFAdd %float %362 %364
OpStore %363 %365
OpBranch %357
%357 = OpLabel
%366 = OpLoad %v3float %color
%367 = OpExtInst %v3float %354 Normalize %366
%368 = OpCompositeExtract %float %367 0
%369 = OpCompositeExtract %float %367 1
%370 = OpCompositeExtract %float %367 2
%371 = OpCompositeConstruct %v4float %368 %369 %370 %float_1
OpStore %frag_color %371
%372 = OpLoad %v4float %x_GLF_pos
OpStore %gl_Position %372
OpReturn
OpFunctionEnd
%main_inner = OpFunction %main_out None %373
%x_GLF_pos_param = OpFunctionParameter %v4float
%377 = OpLabel
OpStore %x_GLF_pos %x_GLF_pos_param
%378 = OpFunctionCall %void %main_1
%379 = OpLoad %v4float %frag_color
%380 = OpLoad %v4float %gl_Position
%381 = OpCompositeConstruct %main_out %379 %380
OpReturnValue %381
OpFunctionEnd
%main = OpFunction %void None %116
%383 = OpLabel
%385 = OpLoad %v4float %x_GLF_pos_param_1
%384 = OpFunctionCall %main_out %main_inner %385
%386 = OpCompositeExtract %v4float %384 0
OpStore %frag_color_1_1 %386
%387 = OpCompositeExtract %v4float %384 1
OpStore %gl_Position_1 %387
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
%swap_i1_i1_ = OpFunction %void None %388
%i = OpFunctionParameter %_ptr_Function_int
%j = OpFunctionParameter %_ptr_Function_int
%392 = OpLabel
%temp = OpVariable %_ptr_Function_int Function %36
%395 = OpLoad %int %i
%396 = OpAccessChain %_ptr_Private_int %obj %uint_0 %395
%397 = OpLoad %int %396
OpStore %temp %397
%399 = OpLoad %int %i
%401 = OpLoad %int %j
%402 = OpAccessChain %_ptr_Private_int %obj %uint_0 %401
%403 = OpLoad %int %402
%404 = OpAccessChain %_ptr_Private_int %obj %uint_0 %399
OpStore %404 %403
%406 = OpLoad %int %j
%407 = OpLoad %int %temp
%408 = OpAccessChain %_ptr_Private_int %obj %uint_0 %406
OpStore %408 %407
OpReturn
OpFunctionEnd
%quicksort_ = OpFunction %void None %116
%410 = OpLabel
%l_1 = OpVariable %_ptr_Function_int Function %36
%h_1 = OpVariable %_ptr_Function_int Function %36
%top = OpVariable %_ptr_Function_int Function %36
%stack = OpVariable %_ptr_Function__arr_int_uint_10 Function %125
%p = OpVariable %_ptr_Function_int Function %36
%param_4 = OpVariable %_ptr_Function_int Function %36
%param_5 = OpVariable %_ptr_Function_int Function %36
OpStore %l_1 %int_0
OpStore %h_1 %int_9
OpStore %top %int_n1
%418 = OpLoad %int %top
%419 = OpIAdd %int %418 %int_1
OpStore %top %419
%420 = OpLoad %int %l_1
%421 = OpAccessChain %_ptr_Function_int %stack %419
OpStore %421 %420
%422 = OpLoad %int %top
%423 = OpIAdd %int %422 %int_1
OpStore %top %423
%424 = OpLoad %int %h_1
%425 = OpAccessChain %_ptr_Function_int %stack %423
OpStore %425 %424
OpBranch %426
%426 = OpLabel
OpLoopMerge %427 %428 None
OpBranch %429
%429 = OpLabel
%430 = OpLoad %int %top
%431 = OpSGreaterThanEqual %bool %430 %int_0
OpSelectionMerge %432 None
OpBranchConditional %431 %433 %434
%433 = OpLabel
OpBranch %432
%434 = OpLabel
OpBranch %427
%432 = OpLabel
%435 = OpLoad %int %top
%436 = OpISub %int %435 %int_1
OpStore %top %436
%437 = OpAccessChain %_ptr_Function_int %stack %435
%438 = OpLoad %int %437
OpStore %h_1 %438
%439 = OpLoad %int %top
%440 = OpISub %int %439 %int_1
OpStore %top %440
%441 = OpAccessChain %_ptr_Function_int %stack %439
%442 = OpLoad %int %441
OpStore %l_1 %442
%443 = OpLoad %int %l_1
OpStore %param_4 %443
%444 = OpLoad %int %h_1
OpStore %param_5 %444
%445 = OpFunctionCall %int %performPartition_i1_i1_ %param_4 %param_5
OpStore %p %445
%448 = OpLoad %int %p
%449 = OpLoad %int %l_1
%450 = OpISub %int %448 %int_1
%451 = OpSGreaterThan %bool %450 %449
OpSelectionMerge %452 None
OpBranchConditional %451 %453 %452
%453 = OpLabel
%454 = OpLoad %int %top
%455 = OpIAdd %int %454 %int_1
OpStore %top %455
%456 = OpLoad %int %l_1
%457 = OpAccessChain %_ptr_Function_int %stack %455
OpStore %457 %456
%458 = OpLoad %int %top
%459 = OpIAdd %int %458 %int_1
OpStore %top %459
%460 = OpLoad %int %p
%461 = OpAccessChain %_ptr_Function_int %stack %459
%462 = OpISub %int %460 %int_1
OpStore %461 %462
OpBranch %452
%452 = OpLabel
%463 = OpLoad %int %p
%464 = OpLoad %int %h_1
%465 = OpIAdd %int %463 %int_1
%466 = OpSLessThan %bool %465 %464
OpSelectionMerge %467 None
OpBranchConditional %466 %468 %467
%468 = OpLabel
%469 = OpLoad %int %top
%470 = OpIAdd %int %469 %int_1
OpStore %top %470
%471 = OpLoad %int %p
%472 = OpAccessChain %_ptr_Function_int %stack %470
%473 = OpIAdd %int %471 %int_1
OpStore %472 %473
%474 = OpLoad %int %top
%475 = OpIAdd %int %474 %int_1
OpStore %top %475
%476 = OpLoad %int %h_1
%477 = OpAccessChain %_ptr_Function_int %stack %475
OpStore %477 %476
OpBranch %467
%467 = OpLabel
OpBranch %428
%428 = OpLabel
OpBranch %426
%427 = OpLabel
OpReturn
OpFunctionEnd