| OpCapability Shader |
| %1 = OpExtInstImport "GLSL.std.450" |
| OpMemoryModel Logical GLSL450 |
| OpEntryPoint Vertex %main "main" %_GLF_pos %frag_color %__0 |
| OpSource ESSL 310 |
| OpName %main "main" |
| OpName %swap_i1_i1_ "swap(i1;i1;" |
| OpName %i "i" |
| OpName %j "j" |
| OpName %performPartition_i1_i1_ "performPartition(i1;i1;" |
| OpName %l "l" |
| OpName %h "h" |
| OpName %quicksort_ "quicksort(" |
| OpName %temp "temp" |
| OpName %QuicksortObject "QuicksortObject" |
| OpMemberName %QuicksortObject 0 "numbers" |
| OpName %obj "obj" |
| OpName %pivot "pivot" |
| OpName %i_0 "i" |
| OpName %j_0 "j" |
| OpName %param "param" |
| OpName %param_0 "param" |
| OpName %param_1 "param" |
| OpName %param_2 "param" |
| OpName %l_0 "l" |
| OpName %h_0 "h" |
| OpName %top "top" |
| OpName %stack "stack" |
| OpName %p "p" |
| OpName %param_3 "param" |
| OpName %param_4 "param" |
| OpName %_GLF_FragCoord "_GLF_FragCoord" |
| OpName %_GLF_pos "_GLF_pos" |
| OpName %i_1 "i" |
| OpName %uv "uv" |
| OpName %buf0 "buf0" |
| OpMemberName %buf0 0 "resolution" |
| OpName %_ "" |
| OpName %color "color" |
| OpName %frag_color "frag_color" |
| OpName %gl_PerVertex "gl_PerVertex" |
| OpMemberName %gl_PerVertex 0 "gl_Position" |
| OpMemberName %gl_PerVertex 1 "gl_PointSize" |
| OpName %__0 "" |
| OpDecorate %_GLF_pos Location 0 |
| OpMemberDecorate %buf0 0 Offset 0 |
| OpDecorate %buf0 Block |
| OpDecorate %_ DescriptorSet 0 |
| OpDecorate %_ Binding 0 |
| OpDecorate %frag_color Location 0 |
| OpMemberDecorate %gl_PerVertex 0 BuiltIn Position |
| OpMemberDecorate %gl_PerVertex 1 BuiltIn PointSize |
| OpDecorate %gl_PerVertex Block |
| %void = OpTypeVoid |
| %38 = OpTypeFunction %void |
| %int = OpTypeInt 32 1 |
| %_ptr_Function_int = OpTypePointer Function %int |
| %41 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_int |
| %42 = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_int |
| %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 |
| %obj = OpVariable %_ptr_Private_QuicksortObject Private |
| %int_0 = OpConstant %int 0 |
| %_ptr_Private_int = OpTypePointer Private %int |
| %int_1 = OpConstant %int 1 |
| %bool = OpTypeBool |
| %int_9 = OpConstant %int 9 |
| %int_n1 = OpConstant %int -1 |
| %_ptr_Function__arr_int_uint_10 = OpTypePointer Function %_arr_int_uint_10 |
| %float = OpTypeFloat 32 |
| %v4float = OpTypeVector %float 4 |
| %_ptr_Private_v4float = OpTypePointer Private %v4float |
| %_GLF_FragCoord = OpVariable %_ptr_Private_v4float Private |
| %_ptr_Input_v4float = OpTypePointer Input %v4float |
| %_GLF_pos = OpVariable %_ptr_Input_v4float Input |
| %float_1 = OpConstant %float 1 |
| %float_0 = OpConstant %float 0 |
| %60 = OpConstantComposite %v4float %float_1 %float_1 %float_0 %float_0 |
| %float_128 = OpConstant %float 128 |
| %62 = OpConstantComposite %v4float %float_128 %float_128 %float_1 %float_1 |
| %int_10 = OpConstant %int 10 |
| %v2float = OpTypeVector %float 2 |
| %_ptr_Function_v2float = OpTypePointer Function %v2float |
| %buf0 = OpTypeStruct %v2float |
| %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 |
| %_ = OpVariable %_ptr_Uniform_buf0 Uniform |
| %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float |
| %v3float = OpTypeVector %float 3 |
| %_ptr_Function_v3float = OpTypePointer Function %v3float |
| %float_2 = OpConstant %float 2 |
| %float_3 = OpConstant %float 3 |
| %72 = OpConstantComposite %v3float %float_1 %float_2 %float_3 |
| %uint_0 = OpConstant %uint 0 |
| %_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 |
| %_ptr_Output_v4float = OpTypePointer Output %v4float |
| %frag_color = OpVariable %_ptr_Output_v4float Output |
| %gl_PerVertex = OpTypeStruct %v4float %float |
| %_ptr_Output_gl_PerVertex = OpTypePointer Output %gl_PerVertex |
| %__0 = OpVariable %_ptr_Output_gl_PerVertex Output |
| %main = OpFunction %void None %38 |
| %89 = OpLabel |
| %90 = OpVariable %_ptr_Function_int Function |
| %91 = OpVariable %_ptr_Function_int Function |
| %92 = OpVariable %_ptr_Function_int Function |
| %93 = OpVariable %_ptr_Function_int Function |
| %94 = OpVariable %_ptr_Function_int Function |
| %95 = OpVariable %_ptr_Function_int Function |
| %96 = OpVariable %_ptr_Function_int Function |
| %97 = OpVariable %_ptr_Function_int Function |
| %98 = OpVariable %_ptr_Function_int Function |
| %99 = OpVariable %_ptr_Function_int Function |
| %100 = OpVariable %_ptr_Function_int Function |
| %101 = OpVariable %_ptr_Function_int Function |
| %102 = OpVariable %_ptr_Function_int Function |
| %103 = OpVariable %_ptr_Function__arr_int_uint_10 Function |
| %104 = OpVariable %_ptr_Function_int Function |
| %105 = OpVariable %_ptr_Function_int Function |
| %106 = OpVariable %_ptr_Function_int Function |
| %i_1 = OpVariable %_ptr_Function_int Function |
| %uv = OpVariable %_ptr_Function_v2float Function |
| %color = OpVariable %_ptr_Function_v3float Function |
| %107 = OpLoad %v4float %_GLF_pos |
| %108 = OpFAdd %v4float %107 %60 |
| %109 = OpFMul %v4float %108 %62 |
| OpStore %_GLF_FragCoord %109 |
| OpStore %i_1 %int_0 |
| OpBranch %110 |
| %110 = OpLabel |
| OpLoopMerge %111 %112 None |
| OpBranch %113 |
| %113 = OpLabel |
| %114 = OpLoad %int %i_1 |
| %115 = OpSLessThan %bool %114 %int_10 |
| OpBranchConditional %115 %116 %111 |
| %116 = OpLabel |
| %117 = OpLoad %int %i_1 |
| %118 = OpLoad %int %i_1 |
| %119 = OpISub %int %int_10 %118 |
| %120 = OpAccessChain %_ptr_Private_int %obj %int_0 %117 |
| OpStore %120 %119 |
| %121 = OpLoad %int %i_1 |
| %122 = OpLoad %int %i_1 |
| %123 = OpAccessChain %_ptr_Private_int %obj %int_0 %122 |
| %124 = OpLoad %int %123 |
| %125 = OpLoad %int %i_1 |
| %126 = OpAccessChain %_ptr_Private_int %obj %int_0 %125 |
| %127 = OpLoad %int %126 |
| %128 = OpIMul %int %124 %127 |
| %129 = OpAccessChain %_ptr_Private_int %obj %int_0 %121 |
| OpStore %129 %128 |
| OpBranch %112 |
| %112 = OpLabel |
| %130 = OpLoad %int %i_1 |
| %131 = OpIAdd %int %130 %int_1 |
| OpStore %i_1 %131 |
| OpBranch %110 |
| %111 = OpLabel |
| OpStore %100 %int_0 |
| OpStore %101 %int_9 |
| OpStore %102 %int_n1 |
| %132 = OpLoad %int %102 |
| %133 = OpIAdd %int %132 %int_1 |
| OpStore %102 %133 |
| %134 = OpLoad %int %100 |
| %135 = OpAccessChain %_ptr_Function_int %103 %133 |
| OpStore %135 %134 |
| %136 = OpLoad %int %102 |
| %137 = OpIAdd %int %136 %int_1 |
| OpStore %102 %137 |
| %138 = OpLoad %int %101 |
| %139 = OpAccessChain %_ptr_Function_int %103 %137 |
| OpStore %139 %138 |
| OpBranch %140 |
| %140 = OpLabel |
| OpLoopMerge %141 %142 None |
| OpBranch %143 |
| %143 = OpLabel |
| %144 = OpLoad %int %102 |
| %145 = OpSGreaterThanEqual %bool %144 %int_0 |
| OpBranchConditional %145 %146 %141 |
| %146 = OpLabel |
| %147 = OpLoad %int %102 |
| %148 = OpISub %int %147 %int_1 |
| OpStore %102 %148 |
| %149 = OpAccessChain %_ptr_Function_int %103 %147 |
| %150 = OpLoad %int %149 |
| OpStore %101 %150 |
| %151 = OpLoad %int %102 |
| %152 = OpISub %int %151 %int_1 |
| OpStore %102 %152 |
| %153 = OpAccessChain %_ptr_Function_int %103 %151 |
| %154 = OpLoad %int %153 |
| OpStore %100 %154 |
| %155 = OpLoad %int %100 |
| OpStore %105 %155 |
| %156 = OpLoad %int %101 |
| OpStore %106 %156 |
| %157 = OpLoad %int %106 |
| %158 = OpAccessChain %_ptr_Private_int %obj %int_0 %157 |
| %159 = OpLoad %int %158 |
| OpStore %92 %159 |
| %160 = OpLoad %int %105 |
| %161 = OpISub %int %160 %int_1 |
| OpStore %93 %161 |
| %162 = OpLoad %int %105 |
| OpStore %94 %162 |
| OpBranch %163 |
| %163 = OpLabel |
| OpLoopMerge %164 %165 None |
| OpBranch %166 |
| %166 = OpLabel |
| %167 = OpLoad %int %94 |
| %168 = OpLoad %int %106 |
| %169 = OpISub %int %168 %int_1 |
| %170 = OpSLessThanEqual %bool %167 %169 |
| OpBranchConditional %170 %171 %164 |
| %171 = OpLabel |
| %172 = OpLoad %int %94 |
| %173 = OpAccessChain %_ptr_Private_int %obj %int_0 %172 |
| %174 = OpLoad %int %173 |
| %175 = OpLoad %int %92 |
| %176 = OpSLessThanEqual %bool %174 %175 |
| OpSelectionMerge %177 None |
| OpBranchConditional %176 %178 %177 |
| %178 = OpLabel |
| %179 = OpLoad %int %93 |
| %180 = OpIAdd %int %179 %int_1 |
| OpStore %93 %180 |
| %181 = OpLoad %int %93 |
| OpStore %95 %181 |
| %182 = OpLoad %int %94 |
| OpStore %96 %182 |
| %183 = OpLoad %int %95 |
| %184 = OpAccessChain %_ptr_Private_int %obj %int_0 %183 |
| %185 = OpLoad %int %184 |
| OpStore %91 %185 |
| %186 = OpLoad %int %95 |
| %187 = OpLoad %int %96 |
| %188 = OpAccessChain %_ptr_Private_int %obj %int_0 %187 |
| %189 = OpLoad %int %188 |
| %190 = OpAccessChain %_ptr_Private_int %obj %int_0 %186 |
| OpStore %190 %189 |
| %191 = OpLoad %int %96 |
| %192 = OpLoad %int %91 |
| %193 = OpAccessChain %_ptr_Private_int %obj %int_0 %191 |
| OpStore %193 %192 |
| OpBranch %177 |
| %177 = OpLabel |
| OpBranch %165 |
| %165 = OpLabel |
| %194 = OpLoad %int %94 |
| %195 = OpIAdd %int %194 %int_1 |
| OpStore %94 %195 |
| OpBranch %163 |
| %164 = OpLabel |
| %196 = OpLoad %int %93 |
| %197 = OpIAdd %int %196 %int_1 |
| OpStore %97 %197 |
| %198 = OpLoad %int %106 |
| OpStore %98 %198 |
| %199 = OpLoad %int %97 |
| %200 = OpAccessChain %_ptr_Private_int %obj %int_0 %199 |
| %201 = OpLoad %int %200 |
| OpStore %90 %201 |
| %202 = OpLoad %int %97 |
| %203 = OpLoad %int %98 |
| %204 = OpAccessChain %_ptr_Private_int %obj %int_0 %203 |
| %205 = OpLoad %int %204 |
| %206 = OpAccessChain %_ptr_Private_int %obj %int_0 %202 |
| OpStore %206 %205 |
| %207 = OpLoad %int %98 |
| %208 = OpLoad %int %90 |
| %209 = OpAccessChain %_ptr_Private_int %obj %int_0 %207 |
| OpStore %209 %208 |
| %210 = OpLoad %int %93 |
| %211 = OpIAdd %int %210 %int_1 |
| OpStore %99 %211 |
| %212 = OpLoad %int %99 |
| OpStore %104 %212 |
| %213 = OpLoad %int %104 |
| %214 = OpISub %int %213 %int_1 |
| %215 = OpLoad %int %100 |
| %216 = OpSGreaterThan %bool %214 %215 |
| OpSelectionMerge %217 None |
| OpBranchConditional %216 %218 %217 |
| %218 = OpLabel |
| %219 = OpLoad %int %102 |
| %220 = OpIAdd %int %219 %int_1 |
| OpStore %102 %220 |
| %221 = OpLoad %int %100 |
| %222 = OpAccessChain %_ptr_Function_int %103 %220 |
| OpStore %222 %221 |
| %223 = OpLoad %int %102 |
| %224 = OpIAdd %int %223 %int_1 |
| OpStore %102 %224 |
| %225 = OpLoad %int %104 |
| %226 = OpISub %int %225 %int_1 |
| %227 = OpAccessChain %_ptr_Function_int %103 %224 |
| OpStore %227 %226 |
| OpBranch %217 |
| %217 = OpLabel |
| %228 = OpLoad %int %104 |
| %229 = OpIAdd %int %228 %int_1 |
| %230 = OpLoad %int %101 |
| %231 = OpSLessThan %bool %229 %230 |
| OpSelectionMerge %232 None |
| OpBranchConditional %231 %233 %232 |
| %233 = OpLabel |
| %234 = OpLoad %int %102 |
| %235 = OpIAdd %int %234 %int_1 |
| OpStore %102 %235 |
| %236 = OpLoad %int %104 |
| %237 = OpIAdd %int %236 %int_1 |
| %238 = OpAccessChain %_ptr_Function_int %103 %235 |
| OpStore %238 %237 |
| %239 = OpLoad %int %102 |
| %240 = OpIAdd %int %239 %int_1 |
| OpStore %102 %240 |
| %241 = OpLoad %int %101 |
| %242 = OpAccessChain %_ptr_Function_int %103 %240 |
| OpStore %242 %241 |
| OpBranch %232 |
| %232 = OpLabel |
| OpBranch %142 |
| %142 = OpLabel |
| OpBranch %140 |
| %141 = OpLabel |
| %243 = OpLoad %v4float %_GLF_FragCoord |
| %244 = OpVectorShuffle %v2float %243 %243 0 1 |
| %245 = OpAccessChain %_ptr_Uniform_v2float %_ %int_0 |
| %246 = OpLoad %v2float %245 |
| %247 = OpFDiv %v2float %244 %246 |
| OpStore %uv %247 |
| OpStore %color %72 |
| %248 = OpAccessChain %_ptr_Private_int %obj %int_0 %int_0 |
| %249 = OpLoad %int %248 |
| %250 = OpConvertSToF %float %249 |
| %251 = OpAccessChain %_ptr_Function_float %color %uint_0 |
| %252 = OpLoad %float %251 |
| %253 = OpFAdd %float %252 %250 |
| %254 = OpAccessChain %_ptr_Function_float %color %uint_0 |
| OpStore %254 %253 |
| %255 = OpAccessChain %_ptr_Function_float %uv %uint_0 |
| %256 = OpLoad %float %255 |
| %257 = OpFOrdGreaterThan %bool %256 %float_0_25 |
| OpSelectionMerge %258 None |
| OpBranchConditional %257 %259 %258 |
| %259 = OpLabel |
| %260 = OpAccessChain %_ptr_Private_int %obj %int_0 %int_1 |
| %261 = OpLoad %int %260 |
| %262 = OpConvertSToF %float %261 |
| %263 = OpAccessChain %_ptr_Function_float %color %uint_0 |
| %264 = OpLoad %float %263 |
| %265 = OpFAdd %float %264 %262 |
| %266 = OpAccessChain %_ptr_Function_float %color %uint_0 |
| OpStore %266 %265 |
| OpBranch %258 |
| %258 = OpLabel |
| %267 = OpAccessChain %_ptr_Function_float %uv %uint_0 |
| %268 = OpLoad %float %267 |
| %269 = OpFOrdGreaterThan %bool %268 %float_0_5 |
| OpSelectionMerge %270 None |
| OpBranchConditional %269 %271 %270 |
| %271 = OpLabel |
| %272 = OpAccessChain %_ptr_Private_int %obj %int_0 %int_2 |
| %273 = OpLoad %int %272 |
| %274 = OpConvertSToF %float %273 |
| %275 = OpAccessChain %_ptr_Function_float %color %uint_1 |
| %276 = OpLoad %float %275 |
| %277 = OpFAdd %float %276 %274 |
| %278 = OpAccessChain %_ptr_Function_float %color %uint_1 |
| OpStore %278 %277 |
| OpBranch %270 |
| %270 = OpLabel |
| %279 = OpAccessChain %_ptr_Function_float %uv %uint_0 |
| %280 = OpLoad %float %279 |
| %281 = OpFOrdGreaterThan %bool %280 %float_0_75 |
| OpSelectionMerge %282 None |
| OpBranchConditional %281 %283 %282 |
| %283 = OpLabel |
| %284 = OpAccessChain %_ptr_Private_int %obj %int_0 %int_3 |
| %285 = OpLoad %int %284 |
| %286 = OpConvertSToF %float %285 |
| %287 = OpAccessChain %_ptr_Function_float %color %uint_2 |
| %288 = OpLoad %float %287 |
| %289 = OpFAdd %float %288 %286 |
| %290 = OpAccessChain %_ptr_Function_float %color %uint_2 |
| OpStore %290 %289 |
| OpBranch %282 |
| %282 = OpLabel |
| %291 = OpAccessChain %_ptr_Private_int %obj %int_0 %int_4 |
| %292 = OpLoad %int %291 |
| %293 = OpConvertSToF %float %292 |
| %294 = OpAccessChain %_ptr_Function_float %color %uint_1 |
| %295 = OpLoad %float %294 |
| %296 = OpFAdd %float %295 %293 |
| %297 = OpAccessChain %_ptr_Function_float %color %uint_1 |
| OpStore %297 %296 |
| %298 = OpAccessChain %_ptr_Function_float %uv %uint_1 |
| %299 = OpLoad %float %298 |
| %300 = OpFOrdGreaterThan %bool %299 %float_0_25 |
| OpSelectionMerge %301 None |
| OpBranchConditional %300 %302 %301 |
| %302 = OpLabel |
| %303 = OpAccessChain %_ptr_Private_int %obj %int_0 %int_5 |
| %304 = OpLoad %int %303 |
| %305 = OpConvertSToF %float %304 |
| %306 = OpAccessChain %_ptr_Function_float %color %uint_0 |
| %307 = OpLoad %float %306 |
| %308 = OpFAdd %float %307 %305 |
| %309 = OpAccessChain %_ptr_Function_float %color %uint_0 |
| OpStore %309 %308 |
| OpBranch %301 |
| %301 = OpLabel |
| %310 = OpAccessChain %_ptr_Function_float %uv %uint_1 |
| %311 = OpLoad %float %310 |
| %312 = OpFOrdGreaterThan %bool %311 %float_0_5 |
| OpSelectionMerge %313 None |
| OpBranchConditional %312 %314 %313 |
| %314 = OpLabel |
| %315 = OpAccessChain %_ptr_Private_int %obj %int_0 %int_6 |
| %316 = OpLoad %int %315 |
| %317 = OpConvertSToF %float %316 |
| %318 = OpAccessChain %_ptr_Function_float %color %uint_1 |
| %319 = OpLoad %float %318 |
| %320 = OpFAdd %float %319 %317 |
| %321 = OpAccessChain %_ptr_Function_float %color %uint_1 |
| OpStore %321 %320 |
| OpBranch %313 |
| %313 = OpLabel |
| %322 = OpAccessChain %_ptr_Function_float %uv %uint_1 |
| %323 = OpLoad %float %322 |
| %324 = OpFOrdGreaterThan %bool %323 %float_0_75 |
| OpSelectionMerge %325 None |
| OpBranchConditional %324 %326 %325 |
| %326 = OpLabel |
| %327 = OpAccessChain %_ptr_Private_int %obj %int_0 %int_7 |
| %328 = OpLoad %int %327 |
| %329 = OpConvertSToF %float %328 |
| %330 = OpAccessChain %_ptr_Function_float %color %uint_2 |
| %331 = OpLoad %float %330 |
| %332 = OpFAdd %float %331 %329 |
| %333 = OpAccessChain %_ptr_Function_float %color %uint_2 |
| OpStore %333 %332 |
| OpBranch %325 |
| %325 = OpLabel |
| %334 = OpAccessChain %_ptr_Private_int %obj %int_0 %int_8 |
| %335 = OpLoad %int %334 |
| %336 = OpConvertSToF %float %335 |
| %337 = OpAccessChain %_ptr_Function_float %color %uint_2 |
| %338 = OpLoad %float %337 |
| %339 = OpFAdd %float %338 %336 |
| %340 = OpAccessChain %_ptr_Function_float %color %uint_2 |
| OpStore %340 %339 |
| %341 = OpAccessChain %_ptr_Function_float %uv %uint_0 |
| %342 = OpLoad %float %341 |
| %343 = OpAccessChain %_ptr_Function_float %uv %uint_1 |
| %344 = OpLoad %float %343 |
| %345 = OpFSub %float %342 %344 |
| %346 = OpExtInst %float %1 FAbs %345 |
| %347 = OpFOrdLessThan %bool %346 %float_0_25 |
| OpSelectionMerge %348 None |
| OpBranchConditional %347 %349 %348 |
| %349 = OpLabel |
| %350 = OpAccessChain %_ptr_Private_int %obj %int_0 %int_9 |
| %351 = OpLoad %int %350 |
| %352 = OpConvertSToF %float %351 |
| %353 = OpAccessChain %_ptr_Function_float %color %uint_0 |
| %354 = OpLoad %float %353 |
| %355 = OpFAdd %float %354 %352 |
| %356 = OpAccessChain %_ptr_Function_float %color %uint_0 |
| OpStore %356 %355 |
| OpBranch %348 |
| %348 = OpLabel |
| %357 = OpLoad %v3float %color |
| %358 = OpExtInst %v3float %1 Normalize %357 |
| %359 = OpCompositeExtract %float %358 0 |
| %360 = OpCompositeExtract %float %358 1 |
| %361 = OpCompositeExtract %float %358 2 |
| %362 = OpCompositeConstruct %v4float %359 %360 %361 %float_1 |
| OpStore %frag_color %362 |
| %363 = OpLoad %v4float %_GLF_pos |
| %364 = OpAccessChain %_ptr_Output_v4float %__0 %int_0 |
| OpStore %364 %363 |
| OpReturn |
| OpFunctionEnd |
| %swap_i1_i1_ = OpFunction %void None %41 |
| %i = OpFunctionParameter %_ptr_Function_int |
| %j = OpFunctionParameter %_ptr_Function_int |
| %365 = OpLabel |
| %temp = OpVariable %_ptr_Function_int Function |
| %366 = OpLoad %int %i |
| %367 = OpAccessChain %_ptr_Private_int %obj %int_0 %366 |
| %368 = OpLoad %int %367 |
| OpStore %temp %368 |
| %369 = OpLoad %int %i |
| %370 = OpLoad %int %j |
| %371 = OpAccessChain %_ptr_Private_int %obj %int_0 %370 |
| %372 = OpLoad %int %371 |
| %373 = OpAccessChain %_ptr_Private_int %obj %int_0 %369 |
| OpStore %373 %372 |
| %374 = OpLoad %int %j |
| %375 = OpLoad %int %temp |
| %376 = OpAccessChain %_ptr_Private_int %obj %int_0 %374 |
| OpStore %376 %375 |
| OpReturn |
| OpFunctionEnd |
| %performPartition_i1_i1_ = OpFunction %int None %42 |
| %l = OpFunctionParameter %_ptr_Function_int |
| %h = OpFunctionParameter %_ptr_Function_int |
| %377 = OpLabel |
| %pivot = OpVariable %_ptr_Function_int Function |
| %i_0 = OpVariable %_ptr_Function_int Function |
| %j_0 = OpVariable %_ptr_Function_int Function |
| %param = OpVariable %_ptr_Function_int Function |
| %param_0 = OpVariable %_ptr_Function_int Function |
| %param_1 = OpVariable %_ptr_Function_int Function |
| %param_2 = OpVariable %_ptr_Function_int Function |
| %378 = OpLoad %int %h |
| %379 = OpAccessChain %_ptr_Private_int %obj %int_0 %378 |
| %380 = OpLoad %int %379 |
| OpStore %pivot %380 |
| %381 = OpLoad %int %l |
| %382 = OpISub %int %381 %int_1 |
| OpStore %i_0 %382 |
| %383 = OpLoad %int %l |
| OpStore %j_0 %383 |
| OpBranch %384 |
| %384 = OpLabel |
| OpLoopMerge %385 %386 None |
| OpBranch %387 |
| %387 = OpLabel |
| %388 = OpLoad %int %j_0 |
| %389 = OpLoad %int %h |
| %390 = OpISub %int %389 %int_1 |
| %391 = OpSLessThanEqual %bool %388 %390 |
| OpBranchConditional %391 %392 %385 |
| %392 = OpLabel |
| %393 = OpLoad %int %j_0 |
| %394 = OpAccessChain %_ptr_Private_int %obj %int_0 %393 |
| %395 = OpLoad %int %394 |
| %396 = OpLoad %int %pivot |
| %397 = OpSLessThanEqual %bool %395 %396 |
| OpSelectionMerge %398 None |
| OpBranchConditional %397 %399 %398 |
| %399 = OpLabel |
| %400 = OpLoad %int %i_0 |
| %401 = OpIAdd %int %400 %int_1 |
| OpStore %i_0 %401 |
| %402 = OpLoad %int %i_0 |
| OpStore %param %402 |
| %403 = OpLoad %int %j_0 |
| OpStore %param_0 %403 |
| %404 = OpFunctionCall %void %swap_i1_i1_ %param %param_0 |
| OpBranch %398 |
| %398 = OpLabel |
| OpBranch %386 |
| %386 = OpLabel |
| %405 = OpLoad %int %j_0 |
| %406 = OpIAdd %int %405 %int_1 |
| OpStore %j_0 %406 |
| OpBranch %384 |
| %385 = OpLabel |
| %407 = OpLoad %int %i_0 |
| %408 = OpIAdd %int %407 %int_1 |
| OpStore %param_1 %408 |
| %409 = OpLoad %int %h |
| OpStore %param_2 %409 |
| %410 = OpFunctionCall %void %swap_i1_i1_ %param_1 %param_2 |
| %411 = OpLoad %int %i_0 |
| %412 = OpIAdd %int %411 %int_1 |
| OpReturnValue %412 |
| OpFunctionEnd |
| %quicksort_ = OpFunction %void None %38 |
| %413 = OpLabel |
| %l_0 = OpVariable %_ptr_Function_int Function |
| %h_0 = OpVariable %_ptr_Function_int Function |
| %top = OpVariable %_ptr_Function_int Function |
| %stack = OpVariable %_ptr_Function__arr_int_uint_10 Function |
| %p = OpVariable %_ptr_Function_int Function |
| %param_3 = OpVariable %_ptr_Function_int Function |
| %param_4 = OpVariable %_ptr_Function_int Function |
| OpStore %l_0 %int_0 |
| OpStore %h_0 %int_9 |
| OpStore %top %int_n1 |
| %414 = OpLoad %int %top |
| %415 = OpIAdd %int %414 %int_1 |
| OpStore %top %415 |
| %416 = OpLoad %int %l_0 |
| %417 = OpAccessChain %_ptr_Function_int %stack %415 |
| OpStore %417 %416 |
| %418 = OpLoad %int %top |
| %419 = OpIAdd %int %418 %int_1 |
| OpStore %top %419 |
| %420 = OpLoad %int %h_0 |
| %421 = OpAccessChain %_ptr_Function_int %stack %419 |
| OpStore %421 %420 |
| OpBranch %422 |
| %422 = OpLabel |
| OpLoopMerge %423 %424 None |
| OpBranch %425 |
| %425 = OpLabel |
| %426 = OpLoad %int %top |
| %427 = OpSGreaterThanEqual %bool %426 %int_0 |
| OpBranchConditional %427 %428 %423 |
| %428 = OpLabel |
| %429 = OpLoad %int %top |
| %430 = OpISub %int %429 %int_1 |
| OpStore %top %430 |
| %431 = OpAccessChain %_ptr_Function_int %stack %429 |
| %432 = OpLoad %int %431 |
| OpStore %h_0 %432 |
| %433 = OpLoad %int %top |
| %434 = OpISub %int %433 %int_1 |
| OpStore %top %434 |
| %435 = OpAccessChain %_ptr_Function_int %stack %433 |
| %436 = OpLoad %int %435 |
| OpStore %l_0 %436 |
| %437 = OpLoad %int %l_0 |
| OpStore %param_3 %437 |
| %438 = OpLoad %int %h_0 |
| OpStore %param_4 %438 |
| %439 = OpFunctionCall %int %performPartition_i1_i1_ %param_3 %param_4 |
| OpStore %p %439 |
| %440 = OpLoad %int %p |
| %441 = OpISub %int %440 %int_1 |
| %442 = OpLoad %int %l_0 |
| %443 = OpSGreaterThan %bool %441 %442 |
| OpSelectionMerge %444 None |
| OpBranchConditional %443 %445 %444 |
| %445 = OpLabel |
| %446 = OpLoad %int %top |
| %447 = OpIAdd %int %446 %int_1 |
| OpStore %top %447 |
| %448 = OpLoad %int %l_0 |
| %449 = OpAccessChain %_ptr_Function_int %stack %447 |
| OpStore %449 %448 |
| %450 = OpLoad %int %top |
| %451 = OpIAdd %int %450 %int_1 |
| OpStore %top %451 |
| %452 = OpLoad %int %p |
| %453 = OpISub %int %452 %int_1 |
| %454 = OpAccessChain %_ptr_Function_int %stack %451 |
| OpStore %454 %453 |
| OpBranch %444 |
| %444 = OpLabel |
| %455 = OpLoad %int %p |
| %456 = OpIAdd %int %455 %int_1 |
| %457 = OpLoad %int %h_0 |
| %458 = OpSLessThan %bool %456 %457 |
| OpSelectionMerge %459 None |
| OpBranchConditional %458 %460 %459 |
| %460 = OpLabel |
| %461 = OpLoad %int %top |
| %462 = OpIAdd %int %461 %int_1 |
| OpStore %top %462 |
| %463 = OpLoad %int %p |
| %464 = OpIAdd %int %463 %int_1 |
| %465 = OpAccessChain %_ptr_Function_int %stack %462 |
| OpStore %465 %464 |
| %466 = OpLoad %int %top |
| %467 = OpIAdd %int %466 %int_1 |
| OpStore %top %467 |
| %468 = OpLoad %int %h_0 |
| %469 = OpAccessChain %_ptr_Function_int %stack %467 |
| OpStore %469 %468 |
| OpBranch %459 |
| %459 = OpLabel |
| OpBranch %424 |
| %424 = OpLabel |
| OpBranch %422 |
| %423 = OpLabel |
| OpReturn |
| OpFunctionEnd |