From 0aa7edbbd5038fb57a4b2dcf4ea58cf937397919 Mon Sep 17 00:00:00 2001 From: Ben Clayton Date: Thu, 10 Jun 2021 17:34:44 +0000 Subject: [PATCH] transform/spirv: Use InlinePointerLets & Simplify arrayLength() will take a pointer to a storage buffer array. This pointer may pass through function scoped let statements. To make this intrinsic easier to generate, inline the pointer lets and remove chains of &*&*. Bug: tint:806 Change-Id: Ib2c79a9c38cba7391cbb4313986af9a72b0f0435 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/54060 Kokoro: Kokoro Reviewed-by: David Neto Commit-Queue: Ben Clayton --- src/transform/spirv.cc | 4 + .../assign_to_subexpr.wgsl.expected.spvasm | 14 +- test/bug/tint/221.wgsl.expected.spvasm | 38 +- test/bug/tint/492.wgsl.expected.spvasm | 6 +- test/bug/tint/749.spvasm.expected.spvasm | 4173 +++++++++-------- .../access/matrix.wgsl.expected.spvasm | 8 +- .../access/vector.wgsl.expected.spvasm | 6 +- .../copy/ptr_copy.spvasm.expected.spvasm | 2 +- .../local/ptr_function.wgsl.expected.spvasm | 6 +- .../local/ptr_private.wgsl.expected.spvasm | 6 +- .../local/ptr_storage.wgsl.expected.spvasm | 8 +- .../local/ptr_uniform.wgsl.expected.spvasm | 8 +- .../local/ptr_workgroup.wgsl.expected.spvasm | 6 +- .../store/local/i32.wgsl.expected.spvasm | 8 +- ...on_scope_declarations.wgsl.expected.spvasm | 2 +- 15 files changed, 2392 insertions(+), 1903 deletions(-) diff --git a/src/transform/spirv.cc b/src/transform/spirv.cc index 616eec6c34..47ad94fe05 100644 --- a/src/transform/spirv.cc +++ b/src/transform/spirv.cc @@ -27,7 +27,9 @@ #include "src/sem/struct.h" #include "src/sem/variable.h" #include "src/transform/external_texture_transform.h" +#include "src/transform/inline_pointer_lets.h" #include "src/transform/manager.h" +#include "src/transform/simplify.h" #include "src/transform/var_for_dynamic_index.h" TINT_INSTANTIATE_TYPEINFO(tint::transform::Spirv::Config); @@ -40,6 +42,8 @@ Spirv::~Spirv() = default; Output Spirv::Run(const Program* in, const DataMap& data) { Manager manager; + manager.Add(); // Required for arrayLength() + manager.Add(); // Required for arrayLength() manager.Add(); manager.Add(); auto transformedInput = manager.Run(in, data); diff --git a/test/array/assign_to_subexpr.wgsl.expected.spvasm b/test/array/assign_to_subexpr.wgsl.expected.spvasm index 7c4cd74966..d234c75650 100644 --- a/test/array/assign_to_subexpr.wgsl.expected.spvasm +++ b/test/array/assign_to_subexpr.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 36 +; Bound: 30 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -44,14 +44,14 @@ %dst = OpVariable %_ptr_Function__arr_int_uint_4 Function %11 %dst_struct = OpVariable %_ptr_Function_S Function %17 %dst_array = OpVariable %_ptr_Function__arr__arr_int_uint_4_uint_2 Function %22 + %24 = OpAccessChain %_ptr_Function__arr_int_uint_4 %dst_struct %uint_0 + OpStore %24 %11 + %26 = OpAccessChain %_ptr_Function__arr_int_uint_4 %dst_array %int_1 + OpStore %26 %11 + OpStore %dst %11 %27 = OpAccessChain %_ptr_Function__arr_int_uint_4 %dst_struct %uint_0 OpStore %27 %11 - %29 = OpAccessChain %_ptr_Function__arr_int_uint_4 %dst_array %int_1 + %29 = OpAccessChain %_ptr_Function__arr_int_uint_4 %dst_array %int_0 OpStore %29 %11 - OpStore %dst %11 - %32 = OpAccessChain %_ptr_Function__arr_int_uint_4 %dst_struct %uint_0 - OpStore %32 %11 - %35 = OpAccessChain %_ptr_Function__arr_int_uint_4 %dst_array %int_0 - OpStore %35 %11 OpReturn OpFunctionEnd diff --git a/test/bug/tint/221.wgsl.expected.spvasm b/test/bug/tint/221.wgsl.expected.spvasm index 993823be78..955f7d0d27 100644 --- a/test/bug/tint/221.wgsl.expected.spvasm +++ b/test/bug/tint/221.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 44 +; Bound: 42 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -32,8 +32,8 @@ %14 = OpConstantNull %uint %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 %uint_2 = OpConstant %uint 2 + %uint_1 = OpConstant %uint 1 %main = OpFunction %void None %7 %10 = OpLabel %i = OpVariable %_ptr_Function_uint Function %14 @@ -52,25 +52,27 @@ %26 = OpLabel OpBranch %16 %25 = OpLabel - %29 = OpLoad %uint %i - %30 = OpAccessChain %_ptr_StorageBuffer_uint %b %uint_1 %29 - %31 = OpLoad %uint %i - %33 = OpUMod %uint %31 %uint_2 - %34 = OpIEqual %bool %33 %uint_0 - OpSelectionMerge %35 None - OpBranchConditional %34 %36 %35 - %36 = OpLabel + %27 = OpLoad %uint %i + %28 = OpLoad %uint %i + %30 = OpUMod %uint %28 %uint_2 + %31 = OpIEqual %bool %30 %uint_0 + OpSelectionMerge %32 None + OpBranchConditional %31 %33 %32 + %33 = OpLabel OpBranch %17 - %35 = OpLabel - OpStore %30 %uint_0 + %32 = OpLabel + %35 = OpAccessChain %_ptr_StorageBuffer_uint %b %uint_1 %27 + OpStore %35 %uint_0 OpBranch %17 %17 = OpLabel - %40 = OpLoad %uint %30 - %41 = OpIMul %uint %40 %uint_2 - OpStore %30 %41 - %42 = OpLoad %uint %i - %43 = OpIAdd %uint %42 %uint_1 - OpStore %i %43 + %36 = OpAccessChain %_ptr_StorageBuffer_uint %b %uint_1 %27 + %37 = OpAccessChain %_ptr_StorageBuffer_uint %b %uint_1 %27 + %38 = OpLoad %uint %37 + %39 = OpIMul %uint %38 %uint_2 + OpStore %36 %39 + %40 = OpLoad %uint %i + %41 = OpIAdd %uint %40 %uint_1 + OpStore %i %41 OpBranch %15 %16 = OpLabel OpReturn diff --git a/test/bug/tint/492.wgsl.expected.spvasm b/test/bug/tint/492.wgsl.expected.spvasm index 4d971acdb5..0c5be191ff 100644 --- a/test/bug/tint/492.wgsl.expected.spvasm +++ b/test/bug/tint/492.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 16 +; Bound: 14 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -27,7 +27,7 @@ %int_12 = OpConstant %int 12 %main = OpFunction %void None %5 %8 = OpLabel - %13 = OpAccessChain %_ptr_StorageBuffer_int %buf %uint_0 - OpStore %13 %int_12 + %12 = OpAccessChain %_ptr_StorageBuffer_int %buf %uint_0 + OpStore %12 %int_12 OpReturn OpFunctionEnd diff --git a/test/bug/tint/749.spvasm.expected.spvasm b/test/bug/tint/749.spvasm.expected.spvasm index 73fb94d957..60219a5e95 100644 --- a/test/bug/tint/749.spvasm.expected.spvasm +++ b/test/bug/tint/749.spvasm.expected.spvasm @@ -1,10 +1,10 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 1887 +; Bound: 1817 ; Schema: 0 OpCapability Shader - %1759 = OpExtInstImport "GLSL.std.450" + %1691 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %gl_FragCoord %x_GLF_color OpExecutionMode %main OriginUpperLeft @@ -84,27 +84,27 @@ %35 = OpConstantComposite %v3float %float_1 %float_2 %float_3 %uint_0 = OpConstant %uint 0 %_ptr_Private_int = OpTypePointer Private %int - %103 = OpConstantComposite %_arr_int_uint_10 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 %int_0 - %104 = OpConstantComposite %QuicksortObject %103 - %157 = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_int + %99 = 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 + %100 = OpConstantComposite %QuicksortObject %99 + %151 = OpTypeFunction %int %_ptr_Function_int %_ptr_Function_int %_ptr_Function_v2float = OpTypePointer Function %v2float - %171 = OpConstantNull %v2float + %165 = OpConstantNull %v2float %_ptr_Function_v3float = OpTypePointer Function %v3float - %174 = OpConstantNull %v3float + %168 = OpConstantNull %v3float %uint_1 = OpConstant %uint 1 %int_10 = OpConstant %int 10 %_ptr_Function_float = OpTypePointer Function %float %bool = OpTypeBool %int_1 = OpConstant %int 1 - %426 = OpTypeFunction %void + %416 = OpTypeFunction %void %_ptr_Function__arr_int_uint_10 = OpTypePointer Function %_arr_int_uint_10 - %436 = OpConstantNull %_arr_int_uint_10 + %426 = OpConstantNull %_arr_int_uint_10 %int_9 = OpConstant %int 9 %int_n1 = OpConstant %int -1 %float_0 = OpConstant %float 0 - %897 = OpConstantComposite %v2float %float_0 %float_0 + %873 = OpConstantComposite %v2float %float_0 %float_0 %true = OpConstantTrue %bool - %909 = OpConstantComposite %v3float %float_0 %float_0 %float_0 + %885 = 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 @@ -143,103 +143,121 @@ %54 = OpLoad %int %temp OpStore %temp %int_0 OpStore %temp %54 - %58 = OpAccessChain %_ptr_Private_int %obj %uint_0 %45 - %60 = OpLoad %int %58 - OpStore %58 %int_0 - OpStore %58 %60 - %64 = OpLoad %int %58 - %65 = OpLoad %int %temp + %57 = OpAccessChain %_ptr_Private_int %obj %uint_0 %45 + %58 = OpLoad %int %57 + %59 = OpAccessChain %_ptr_Private_int %obj %uint_0 %45 + OpStore %59 %int_0 + %60 = OpAccessChain %_ptr_Private_int %obj %uint_0 %45 + OpStore %60 %58 + %61 = OpAccessChain %_ptr_Private_int %obj %uint_0 %45 + %62 = OpLoad %int %61 + %63 = OpLoad %int %temp OpStore %temp %int_0 - OpStore %temp %65 - OpStore %temp %64 - %67 = OpLoad %int %j + OpStore %temp %63 + OpStore %temp %62 + %65 = OpLoad %int %j OpStore %j %int_0 - OpStore %j %67 - %70 = OpCompositeExtract %float %39 2 - %71 = OpCompositeExtract %float %35 0 - %72 = OpCompositeExtract %float %39 1 - %73 = OpCompositeConstruct %v3float %70 %71 %72 - %75 = OpLoad %int %i + OpStore %j %65 + %68 = OpCompositeExtract %float %39 2 + %69 = OpCompositeExtract %float %35 0 + %70 = OpCompositeExtract %float %39 1 + %71 = OpCompositeConstruct %v3float %68 %69 %70 + %73 = OpLoad %int %i OpStore %i %int_0 - OpStore %i %75 - %79 = OpLoad %int %i - %81 = OpLoad %int %58 - OpStore %58 %int_0 - OpStore %58 %81 - %85 = OpLoad %int %j - %87 = OpLoad %int %i + OpStore %i %73 + %77 = OpLoad %int %i + %78 = OpAccessChain %_ptr_Private_int %obj %uint_0 %45 + %79 = OpLoad %int %78 + %80 = OpAccessChain %_ptr_Private_int %obj %uint_0 %45 + OpStore %80 %int_0 + %81 = OpAccessChain %_ptr_Private_int %obj %uint_0 %45 + OpStore %81 %79 + %83 = OpLoad %int %j + %85 = OpLoad %int %i OpStore %i %int_0 - OpStore %i %87 - %90 = OpCompositeExtract %float %73 0 - %91 = OpCompositeExtract %float %73 2 - %92 = OpCompositeExtract %float %73 2 - %93 = OpCompositeConstruct %v3float %90 %91 %92 - %95 = OpLoad %int %58 - OpStore %58 %int_0 - OpStore %58 %95 - %99 = OpAccessChain %_ptr_Private_int %obj %uint_0 %85 - %101 = OpLoad %int %99 - %102 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %102 - %105 = OpCompositeExtract %float %93 0 - %106 = OpCompositeExtract %float %93 0 - %107 = OpCompositeConstruct %v2float %105 %106 - %109 = OpAccessChain %_ptr_Private_int %obj %uint_0 %79 - %110 = OpCompositeExtract %float %53 0 - %111 = OpCompositeExtract %float %53 2 - %112 = OpCompositeExtract %float %53 0 + OpStore %i %85 + %88 = OpCompositeExtract %float %71 0 + %89 = OpCompositeExtract %float %71 2 + %90 = OpCompositeExtract %float %71 2 + %91 = OpCompositeConstruct %v3float %88 %89 %90 + %92 = OpAccessChain %_ptr_Private_int %obj %uint_0 %45 + %93 = OpLoad %int %92 + %94 = OpAccessChain %_ptr_Private_int %obj %uint_0 %45 + OpStore %94 %int_0 + %95 = OpAccessChain %_ptr_Private_int %obj %uint_0 %45 + OpStore %95 %93 + %96 = OpAccessChain %_ptr_Private_int %obj %uint_0 %83 + %97 = OpLoad %int %96 + %98 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %98 + %101 = OpCompositeExtract %float %91 0 + %102 = OpCompositeExtract %float %91 0 + %103 = OpCompositeConstruct %v2float %101 %102 + %104 = OpCompositeExtract %float %53 0 + %105 = OpCompositeExtract %float %53 2 + %106 = OpCompositeExtract %float %53 0 + %107 = OpCompositeConstruct %v3float %104 %105 %106 + %108 = OpAccessChain %_ptr_Private_int %obj %uint_0 %77 + OpStore %108 %97 + %109 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %109 + %110 = OpCompositeExtract %float %91 1 + %111 = OpCompositeExtract %float %91 2 + %112 = OpCompositeExtract %float %91 0 %113 = OpCompositeConstruct %v3float %110 %111 %112 - OpStore %109 %101 - %115 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %115 - %116 = OpCompositeExtract %float %93 1 - %117 = OpCompositeExtract %float %93 2 - %118 = OpCompositeExtract %float %93 0 - %119 = OpCompositeConstruct %v3float %116 %117 %118 - %121 = OpLoad %int %i + %115 = OpLoad %int %i OpStore %i %int_0 - OpStore %i %121 - %125 = OpLoad %int %j - %126 = OpLoad %int %temp + OpStore %i %115 + %119 = OpLoad %int %j + %120 = OpLoad %int %temp OpStore %temp %int_0 - OpStore %temp %126 - %127 = OpCompositeExtract %float %119 2 - %128 = OpCompositeExtract %float %119 1 - %129 = OpCompositeConstruct %v2float %127 %128 - %131 = OpLoad %int %99 - OpStore %99 %int_0 - OpStore %99 %131 - %134 = OpLoad %int %temp - %136 = OpLoad %int %j + OpStore %temp %120 + %121 = OpCompositeExtract %float %113 2 + %122 = OpCompositeExtract %float %113 1 + %123 = OpCompositeConstruct %v2float %121 %122 + %124 = OpAccessChain %_ptr_Private_int %obj %uint_0 %83 + %125 = OpLoad %int %124 + %126 = OpAccessChain %_ptr_Private_int %obj %uint_0 %83 + OpStore %126 %int_0 + %127 = OpAccessChain %_ptr_Private_int %obj %uint_0 %83 + OpStore %127 %125 + %128 = OpLoad %int %temp + %130 = OpLoad %int %j OpStore %j %int_0 - OpStore %j %136 - %139 = OpCompositeExtract %float %107 0 - %140 = OpCompositeExtract %float %93 1 - %141 = OpCompositeExtract %float %93 0 - %142 = OpCompositeConstruct %v3float %139 %140 %141 - %144 = OpLoad %int %109 - OpStore %109 %int_0 - OpStore %109 %144 - %147 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %147 - %148 = OpCompositeExtract %float %113 0 - %149 = OpCompositeExtract %float %113 1 - %150 = OpCompositeExtract %float %113 0 - %151 = OpCompositeConstruct %v3float %148 %149 %150 - %153 = OpLoad %int %99 - OpStore %99 %int_0 - OpStore %99 %153 - %156 = OpAccessChain %_ptr_Private_int %obj %uint_0 %125 - OpStore %156 %134 + OpStore %j %130 + %133 = OpCompositeExtract %float %103 0 + %134 = OpCompositeExtract %float %91 1 + %135 = OpCompositeExtract %float %91 0 + %136 = OpCompositeConstruct %v3float %133 %134 %135 + %137 = OpAccessChain %_ptr_Private_int %obj %uint_0 %77 + %138 = OpLoad %int %137 + %139 = OpAccessChain %_ptr_Private_int %obj %uint_0 %77 + OpStore %139 %int_0 + %140 = OpAccessChain %_ptr_Private_int %obj %uint_0 %77 + OpStore %140 %138 + %141 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %141 + %142 = OpCompositeExtract %float %107 0 + %143 = OpCompositeExtract %float %107 1 + %144 = OpCompositeExtract %float %107 0 + %145 = OpCompositeConstruct %v3float %142 %143 %144 + %146 = OpAccessChain %_ptr_Private_int %obj %uint_0 %83 + %147 = OpLoad %int %146 + %148 = OpAccessChain %_ptr_Private_int %obj %uint_0 %83 + OpStore %148 %int_0 + %149 = OpAccessChain %_ptr_Private_int %obj %uint_0 %83 + OpStore %149 %147 + %150 = OpAccessChain %_ptr_Private_int %obj %uint_0 %119 + OpStore %150 %128 OpReturn OpFunctionEnd -%performPartition_i1_i1_ = OpFunction %int None %157 +%performPartition_i1_i1_ = OpFunction %int None %151 %l = OpFunctionParameter %_ptr_Function_int %h = OpFunctionParameter %_ptr_Function_int - %161 = OpLabel + %155 = OpLabel %param_3 = OpVariable %_ptr_Function_int Function %28 %i_1 = OpVariable %_ptr_Function_int Function %28 %j_1 = OpVariable %_ptr_Function_int Function %28 @@ -247,1884 +265,2349 @@ %param_1 = OpVariable %_ptr_Function_int Function %28 %param = OpVariable %_ptr_Function_int Function %28 %pivot = OpVariable %_ptr_Function_int Function %28 - %x_537 = OpVariable %_ptr_Function_v2float Function %171 - %x_538 = OpVariable %_ptr_Function_v3float Function %174 - %176 = OpLoad %int %h + %x_537 = OpVariable %_ptr_Function_v2float Function %165 + %x_538 = OpVariable %_ptr_Function_v3float Function %168 + %170 = OpLoad %int %h OpStore %h %int_0 - OpStore %h %176 - %180 = OpLoad %int %h - %182 = OpLoad %int %l + OpStore %h %170 + %174 = OpLoad %int %h + %176 = OpLoad %int %l OpStore %l %int_0 - OpStore %l %182 - %186 = OpAccessChain %_ptr_Private_int %obj %uint_0 %180 - %188 = OpLoad %int %186 - OpStore %186 %int_0 - OpStore %186 %188 - %192 = OpLoad %int %186 - %193 = OpLoad %int %param_3 + OpStore %l %176 + %179 = OpAccessChain %_ptr_Private_int %obj %uint_0 %174 + %180 = OpLoad %int %179 + %181 = OpAccessChain %_ptr_Private_int %obj %uint_0 %174 + OpStore %181 %int_0 + %182 = OpAccessChain %_ptr_Private_int %obj %uint_0 %174 + OpStore %182 %180 + %183 = OpAccessChain %_ptr_Private_int %obj %uint_0 %174 + %184 = OpLoad %int %183 + %185 = OpLoad %int %param_3 OpStore %param_3 %int_0 - OpStore %param_3 %193 - %194 = OpCompositeExtract %float %35 2 - %195 = OpCompositeExtract %float %35 0 - %196 = OpCompositeExtract %float %35 2 - %197 = OpCompositeConstruct %v3float %194 %195 %196 - %198 = OpLoad %int %param_1 + OpStore %param_3 %185 + %186 = OpCompositeExtract %float %35 2 + %187 = OpCompositeExtract %float %35 0 + %188 = OpCompositeExtract %float %35 2 + %189 = OpCompositeConstruct %v3float %186 %187 %188 + %190 = OpLoad %int %param_1 OpStore %param_1 %int_0 - OpStore %param_1 %198 - OpStore %pivot %192 - %200 = OpLoad %int %l - %202 = OpLoad %int %h + OpStore %param_1 %190 + OpStore %pivot %184 + %192 = OpLoad %int %l + %194 = OpLoad %int %h OpStore %h %int_0 - OpStore %h %202 - %205 = OpLoad %int %j_1 + OpStore %h %194 + %197 = OpLoad %int %j_1 OpStore %j_1 %int_0 - OpStore %j_1 %205 - %206 = OpCompositeExtract %float %197 1 - %207 = OpCompositeExtract %float %197 2 - %208 = OpCompositeExtract %float %197 1 - %209 = OpCompositeConstruct %v3float %206 %207 %208 - %211 = OpLoad %int %l + OpStore %j_1 %197 + %198 = OpCompositeExtract %float %189 1 + %199 = OpCompositeExtract %float %189 2 + %200 = OpCompositeExtract %float %189 1 + %201 = OpCompositeConstruct %v3float %198 %199 %200 + %203 = OpLoad %int %l OpStore %l %int_0 - OpStore %l %211 - %214 = OpBitcast %int %uint_1 - %216 = OpISub %int %200 %214 - OpStore %i_1 %216 - %218 = OpLoad %int %l - %219 = OpCompositeExtract %float %197 0 - %220 = OpCompositeExtract %float %197 2 - %221 = OpCompositeExtract %float %209 0 - %222 = OpCompositeConstruct %v3float %219 %220 %221 + OpStore %l %203 + %206 = OpBitcast %int %uint_1 + %208 = OpISub %int %192 %206 + OpStore %i_1 %208 + %210 = OpLoad %int %l + %211 = OpCompositeExtract %float %189 0 + %212 = OpCompositeExtract %float %189 2 + %213 = OpCompositeExtract %float %201 0 + %214 = OpCompositeConstruct %v3float %211 %212 %213 OpStore %j_1 %int_10 - %224 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %224 - OpBranch %225 - %225 = OpLabel - OpLoopMerge %226 %227 None - OpBranch %228 - %228 = OpLabel - %229 = OpLoad %int %pivot + %216 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %216 + OpBranch %217 + %217 = OpLabel + OpLoopMerge %218 %219 None + OpBranch %220 + %220 = OpLabel + %221 = OpLoad %int %pivot OpStore %pivot %int_0 - OpStore %pivot %229 - %230 = OpLoad %int %param_1 + OpStore %pivot %221 + %222 = OpLoad %int %param_1 OpStore %param_1 %int_0 - OpStore %param_1 %230 - %231 = OpLoad %int %j_1 - %232 = OpLoad %int %pivot + OpStore %param_1 %222 + %223 = OpLoad %int %j_1 + %224 = OpLoad %int %pivot OpStore %pivot %int_0 - OpStore %pivot %232 - %233 = OpCompositeExtract %float %35 1 - %234 = OpCompositeExtract %float %35 2 - %235 = OpCompositeConstruct %v2float %233 %234 - OpStore %x_537 %235 - %236 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %236 - %238 = OpLoad %int %h - %240 = OpLoad %int %h + OpStore %pivot %224 + %225 = OpCompositeExtract %float %35 1 + %226 = OpCompositeExtract %float %35 2 + %227 = OpCompositeConstruct %v2float %225 %226 + OpStore %x_537 %227 + %228 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %228 + %230 = OpLoad %int %h + %232 = OpLoad %int %h OpStore %h %int_0 - OpStore %h %240 + OpStore %h %232 + %235 = OpLoad %int %param + OpStore %param %int_0 + OpStore %param %235 + %236 = OpLoad %int %j_1 + OpStore %j_1 %int_0 + OpStore %j_1 %236 + %237 = OpCompositeExtract %float %189 0 + %239 = OpAccessChain %_ptr_Function_float %x_537 %uint_1 + %240 = OpLoad %float %239 + %241 = OpCompositeExtract %float %189 2 + %242 = OpCompositeConstruct %v3float %237 %240 %241 + OpStore %x_538 %242 %243 = OpLoad %int %param OpStore %param %int_0 OpStore %param %243 - %244 = OpLoad %int %j_1 - OpStore %j_1 %int_0 - OpStore %j_1 %244 - %245 = OpCompositeExtract %float %197 0 - %247 = OpAccessChain %_ptr_Function_float %x_537 %uint_1 - %248 = OpLoad %float %247 - %249 = OpCompositeExtract %float %197 2 - %250 = OpCompositeConstruct %v3float %245 %248 %249 - OpStore %x_538 %250 - %251 = OpLoad %int %param - OpStore %param %int_0 - OpStore %param %251 - %252 = OpBitcast %int %uint_1 - %253 = OpISub %int %238 %252 - %254 = OpSLessThanEqual %bool %231 %253 - OpSelectionMerge %256 None - OpBranchConditional %254 %257 %258 - %257 = OpLabel - OpBranch %256 - %258 = OpLabel - OpBranch %226 - %256 = OpLabel - %259 = OpLoad %int %j_1 - %261 = OpLoad %int %186 - OpStore %186 %int_0 - OpStore %186 %261 - %265 = OpAccessChain %_ptr_Private_int %obj %uint_0 %259 - %267 = OpLoad %int %h + %244 = OpBitcast %int %uint_1 + %245 = OpISub %int %230 %244 + %246 = OpSLessThanEqual %bool %223 %245 + OpSelectionMerge %248 None + OpBranchConditional %246 %249 %250 + %249 = OpLabel + OpBranch %248 + %250 = OpLabel + OpBranch %218 + %248 = OpLabel + %251 = OpLoad %int %j_1 + %252 = OpAccessChain %_ptr_Private_int %obj %uint_0 %174 + %253 = OpLoad %int %252 + %254 = OpAccessChain %_ptr_Private_int %obj %uint_0 %174 + OpStore %254 %int_0 + %255 = OpAccessChain %_ptr_Private_int %obj %uint_0 %174 + OpStore %255 %253 + %257 = OpLoad %int %h OpStore %h %int_0 - OpStore %h %267 - %270 = OpAccessChain %_ptr_Function_float %x_537 %uint_0 - %271 = OpLoad %float %270 - %272 = OpCompositeExtract %float %209 2 - %273 = OpAccessChain %_ptr_Function_float %x_537 %uint_0 - %274 = OpLoad %float %273 - %275 = OpCompositeConstruct %v3float %271 %272 %274 - %276 = OpLoad %int %param_1 + OpStore %h %257 + %260 = OpAccessChain %_ptr_Function_float %x_537 %uint_0 + %261 = OpLoad %float %260 + %262 = OpCompositeExtract %float %201 2 + %263 = OpAccessChain %_ptr_Function_float %x_537 %uint_0 + %264 = OpLoad %float %263 + %265 = OpCompositeConstruct %v3float %261 %262 %264 + %266 = OpLoad %int %param_1 OpStore %param_1 %int_0 - OpStore %param_1 %276 - %278 = OpLoad %int %265 - %279 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %279 - %280 = OpLoad %int %pivot - %281 = OpCompositeExtract %float %35 1 - %282 = OpCompositeExtract %float %197 2 - %283 = OpCompositeConstruct %v2float %281 %282 - %284 = OpLoad %int %i_1 + OpStore %param_1 %266 + %267 = OpAccessChain %_ptr_Private_int %obj %uint_0 %251 + %268 = OpLoad %int %267 + %269 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %269 + %270 = OpLoad %int %pivot + %271 = OpCompositeExtract %float %35 1 + %272 = OpCompositeExtract %float %189 2 + %273 = OpCompositeConstruct %v2float %271 %272 + %274 = OpLoad %int %i_1 OpStore %i_1 %int_0 - OpStore %i_1 %284 - %286 = OpLoad %int %l + OpStore %i_1 %274 + %276 = OpLoad %int %l OpStore %l %int_0 - OpStore %l %286 - %289 = OpCompositeExtract %float %197 1 - %290 = OpCompositeExtract %float %197 0 - %291 = OpCompositeExtract %float %197 1 - %292 = OpCompositeConstruct %v3float %289 %290 %291 + OpStore %l %276 + %279 = OpCompositeExtract %float %189 1 + %280 = OpCompositeExtract %float %189 0 + %281 = OpCompositeExtract %float %189 1 + %282 = OpCompositeConstruct %v3float %279 %280 %281 + %283 = OpLoad %int %pivot + OpStore %pivot %int_0 + OpStore %pivot %283 + %284 = OpSLessThanEqual %bool %268 %270 + OpSelectionMerge %285 None + OpBranchConditional %284 %286 %285 + %286 = OpLabel + %287 = OpCompositeExtract %float %282 2 + %288 = OpCompositeExtract %float %282 0 + %289 = OpCompositeExtract %float %282 0 + %290 = OpCompositeConstruct %v3float %287 %288 %289 + %291 = OpLoad %int %param_3 + OpStore %param_3 %int_0 + OpStore %param_3 %291 + %292 = OpLoad %int %i_1 %293 = OpLoad %int %pivot OpStore %pivot %int_0 OpStore %pivot %293 - %294 = OpSLessThanEqual %bool %278 %280 - OpSelectionMerge %295 None - OpBranchConditional %294 %296 %295 - %296 = OpLabel - %297 = OpCompositeExtract %float %292 2 - %298 = OpCompositeExtract %float %292 0 - %299 = OpCompositeExtract %float %292 0 - %300 = OpCompositeConstruct %v3float %297 %298 %299 - %301 = OpLoad %int %param_3 - OpStore %param_3 %int_0 - OpStore %param_3 %301 - %302 = OpLoad %int %i_1 - %303 = OpLoad %int %pivot - OpStore %pivot %int_0 - OpStore %pivot %303 - %304 = OpCompositeExtract %float %275 0 - %305 = OpCompositeExtract %float %292 1 - %306 = OpCompositeConstruct %v2float %304 %305 - %307 = OpLoad %int %i_1 + %294 = OpCompositeExtract %float %265 0 + %295 = OpCompositeExtract %float %282 1 + %296 = OpCompositeConstruct %v2float %294 %295 + %297 = OpLoad %int %i_1 OpStore %i_1 %int_0 - OpStore %i_1 %307 - %308 = OpLoad %int %param + OpStore %i_1 %297 + %298 = OpLoad %int %param OpStore %param %int_0 - OpStore %param %308 - %309 = OpBitcast %int %uint_1 - %310 = OpIAdd %int %302 %309 - OpStore %i_1 %310 - %312 = OpLoad %int %l + OpStore %param %298 + %299 = OpBitcast %int %uint_1 + %300 = OpIAdd %int %292 %299 + OpStore %i_1 %300 + %302 = OpLoad %int %l OpStore %l %int_0 - OpStore %l %312 - %315 = OpCompositeExtract %float %35 2 - %316 = OpCompositeExtract %float %35 1 - %317 = OpCompositeExtract %float %283 0 - %318 = OpCompositeConstruct %v3float %315 %316 %317 - %319 = OpLoad %int %i_1 - %320 = OpAccessChain %_ptr_Function_float %x_537 %uint_1 - %321 = OpLoad %float %320 - %322 = OpAccessChain %_ptr_Function_float %x_538 %uint_0 - %323 = OpLoad %float %322 - %324 = OpCompositeConstruct %v2float %321 %323 - %325 = OpLoad %int %param + OpStore %l %302 + %305 = OpCompositeExtract %float %35 2 + %306 = OpCompositeExtract %float %35 1 + %307 = OpCompositeExtract %float %273 0 + %308 = OpCompositeConstruct %v3float %305 %306 %307 + %309 = OpLoad %int %i_1 + %310 = OpAccessChain %_ptr_Function_float %x_537 %uint_1 + %311 = OpLoad %float %310 + %312 = OpAccessChain %_ptr_Function_float %x_538 %uint_0 + %313 = OpLoad %float %312 + %314 = OpCompositeConstruct %v2float %311 %313 + %315 = OpLoad %int %param OpStore %param %int_0 - OpStore %param %325 - OpStore %param %319 - %326 = OpLoad %int %param + OpStore %param %315 + OpStore %param %309 + %316 = OpLoad %int %param OpStore %param %int_0 - OpStore %param %326 - %327 = OpCompositeExtract %float %324 0 - %328 = OpCompositeExtract %float %324 0 - %329 = OpCompositeConstruct %v2float %327 %328 - %330 = OpLoad %int %i_1 + OpStore %param %316 + %317 = OpCompositeExtract %float %314 0 + %318 = OpCompositeExtract %float %314 0 + %319 = OpCompositeConstruct %v2float %317 %318 + %320 = OpLoad %int %i_1 OpStore %i_1 %int_0 - OpStore %i_1 %330 - %331 = OpLoad %int %j_1 - OpStore %param_1 %331 - %332 = OpLoad %int %param_3 + OpStore %i_1 %320 + %321 = OpLoad %int %j_1 + OpStore %param_1 %321 + %322 = OpLoad %int %param_3 OpStore %param_3 %int_0 - OpStore %param_3 %332 - %333 = OpFunctionCall %void %swap_i1_i1_ %param %param_1 - %336 = OpLoad %int %param_1 + OpStore %param_3 %322 + %323 = OpFunctionCall %void %swap_i1_i1_ %param %param_1 + %326 = OpLoad %int %param_1 OpStore %param_1 %int_0 - OpStore %param_1 %336 - OpBranch %295 - %295 = OpLabel - %337 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %337 - OpBranch %227 - %227 = OpLabel - %339 = OpLoad %int %h + OpStore %param_1 %326 + OpBranch %285 + %285 = OpLabel + %327 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %327 + OpBranch %219 + %219 = OpLabel + %329 = OpLoad %int %h OpStore %h %int_0 - OpStore %h %339 - %342 = OpLoad %int %j_1 - %344 = OpLoad %int %h + OpStore %h %329 + %332 = OpLoad %int %j_1 + %334 = OpLoad %int %h OpStore %h %int_0 - OpStore %h %344 - %347 = OpCompositeExtract %float %275 0 - %348 = OpCompositeExtract %float %292 2 - %349 = OpCompositeExtract %float %292 2 - %350 = OpCompositeConstruct %v3float %347 %348 %349 - %352 = OpLoad %int %265 - OpStore %265 %int_0 - OpStore %265 %352 - %355 = OpLoad %int %param + OpStore %h %334 + %337 = OpCompositeExtract %float %265 0 + %338 = OpCompositeExtract %float %282 2 + %339 = OpCompositeExtract %float %282 2 + %340 = OpCompositeConstruct %v3float %337 %338 %339 + %341 = OpAccessChain %_ptr_Private_int %obj %uint_0 %251 + %342 = OpLoad %int %341 + %343 = OpAccessChain %_ptr_Private_int %obj %uint_0 %251 + OpStore %343 %int_0 + %344 = OpAccessChain %_ptr_Private_int %obj %uint_0 %251 + OpStore %344 %342 + %345 = OpLoad %int %param OpStore %param %int_0 - OpStore %param %355 - %357 = OpIAdd %int %int_1 %342 - OpStore %j_1 %357 - %358 = OpLoad %int %param_1 + OpStore %param %345 + %347 = OpIAdd %int %int_1 %332 + OpStore %j_1 %347 + %348 = OpLoad %int %param_1 OpStore %param_1 %int_0 - OpStore %param_1 %358 - %359 = OpCompositeExtract %float %292 1 - %360 = OpCompositeExtract %float %292 2 - %361 = OpCompositeExtract %float %292 0 - %362 = OpCompositeConstruct %v3float %359 %360 %361 - %364 = OpLoad %int %265 - OpStore %265 %int_0 - OpStore %265 %364 - OpBranch %225 - %226 = OpLabel - %367 = OpLoad %int %i_1 - %369 = OpLoad %int %186 - OpStore %186 %int_0 - OpStore %186 %369 - %372 = OpCompositeExtract %float %197 0 - %373 = OpCompositeExtract %float %197 1 - %374 = OpCompositeConstruct %v2float %372 %373 - %375 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %375 - %377 = OpLoad %int %h + OpStore %param_1 %348 + %349 = OpCompositeExtract %float %282 1 + %350 = OpCompositeExtract %float %282 2 + %351 = OpCompositeExtract %float %282 0 + %352 = OpCompositeConstruct %v3float %349 %350 %351 + %353 = OpAccessChain %_ptr_Private_int %obj %uint_0 %251 + %354 = OpLoad %int %353 + %355 = OpAccessChain %_ptr_Private_int %obj %uint_0 %251 + OpStore %355 %int_0 + %356 = OpAccessChain %_ptr_Private_int %obj %uint_0 %251 + OpStore %356 %354 + OpBranch %217 + %218 = OpLabel + %357 = OpLoad %int %i_1 + %358 = OpAccessChain %_ptr_Private_int %obj %uint_0 %174 + %359 = OpLoad %int %358 + %360 = OpAccessChain %_ptr_Private_int %obj %uint_0 %174 + OpStore %360 %int_0 + %361 = OpAccessChain %_ptr_Private_int %obj %uint_0 %174 + OpStore %361 %359 + %362 = OpCompositeExtract %float %189 0 + %363 = OpCompositeExtract %float %189 1 + %364 = OpCompositeConstruct %v2float %362 %363 + %365 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %365 + %367 = OpLoad %int %h OpStore %h %int_0 - OpStore %h %377 - %380 = OpIAdd %int %int_1 %367 - OpStore %i_1 %380 - %381 = OpLoad %int %param_1 + OpStore %h %367 + %370 = OpIAdd %int %int_1 %357 + OpStore %i_1 %370 + %371 = OpLoad %int %param_1 OpStore %param_1 %int_0 - OpStore %param_1 %381 - %382 = OpLoad %int %i_1 - %383 = OpLoad %int %j_1 + OpStore %param_1 %371 + %372 = OpLoad %int %i_1 + %373 = OpLoad %int %j_1 OpStore %j_1 %int_0 - OpStore %j_1 %383 - %384 = OpCompositeExtract %float %197 0 - %385 = OpCompositeExtract %float %197 0 + OpStore %j_1 %373 + %374 = OpCompositeExtract %float %189 0 + %375 = OpCompositeExtract %float %189 0 + %376 = OpCompositeConstruct %v2float %374 %375 + %377 = OpLoad %int %param_1 + OpStore %param_1 %int_0 + OpStore %param_1 %377 + OpStore %param_2 %372 + %378 = OpCompositeExtract %float %189 1 + %379 = OpCompositeExtract %float %214 0 + %380 = OpCompositeConstruct %v2float %378 %379 + %381 = OpLoad %int %pivot + OpStore %pivot %int_0 + OpStore %pivot %381 + %383 = OpLoad %int %h + %384 = OpCompositeExtract %float %376 0 + %385 = OpCompositeExtract %float %364 1 %386 = OpCompositeConstruct %v2float %384 %385 - %387 = OpLoad %int %param_1 - OpStore %param_1 %int_0 - OpStore %param_1 %387 - OpStore %param_2 %382 - %388 = OpCompositeExtract %float %197 1 - %389 = OpCompositeExtract %float %222 0 - %390 = OpCompositeConstruct %v2float %388 %389 - %391 = OpLoad %int %pivot - OpStore %pivot %int_0 - OpStore %pivot %391 - %393 = OpLoad %int %h - %394 = OpCompositeExtract %float %386 0 - %395 = OpCompositeExtract %float %374 1 - %396 = OpCompositeConstruct %v2float %394 %395 - %398 = OpLoad %int %h + %388 = OpLoad %int %h OpStore %h %int_0 - OpStore %h %398 - OpStore %param_3 %393 - %401 = OpLoad %int %i_1 + OpStore %h %388 + OpStore %param_3 %383 + %391 = OpLoad %int %i_1 OpStore %i_1 %int_0 - OpStore %i_1 %401 - %402 = OpCompositeExtract %float %374 1 - %403 = OpCompositeExtract %float %396 0 - %404 = OpCompositeConstruct %v2float %402 %403 - %406 = OpLoad %int %h + OpStore %i_1 %391 + %392 = OpCompositeExtract %float %364 1 + %393 = OpCompositeExtract %float %386 0 + %394 = OpCompositeConstruct %v2float %392 %393 + %396 = OpLoad %int %h OpStore %h %int_0 - OpStore %h %406 - %409 = OpFunctionCall %void %swap_i1_i1_ %param_2 %param_3 - %413 = OpLoad %int %l + OpStore %h %396 + %399 = OpFunctionCall %void %swap_i1_i1_ %param_2 %param_3 + %403 = OpLoad %int %l OpStore %l %int_0 - OpStore %l %413 - %416 = OpCompositeExtract %float %222 2 - %417 = OpCompositeExtract %float %35 1 - %418 = OpCompositeConstruct %v2float %416 %417 - %419 = OpLoad %int %param_1 + OpStore %l %403 + %406 = OpCompositeExtract %float %214 2 + %407 = OpCompositeExtract %float %35 1 + %408 = OpCompositeConstruct %v2float %406 %407 + %409 = OpLoad %int %param_1 OpStore %param_1 %int_0 - OpStore %param_1 %419 - %420 = OpLoad %int %i_1 - %421 = OpLoad %int %param + OpStore %param_1 %409 + %410 = OpLoad %int %i_1 + %411 = OpLoad %int %param OpStore %param %int_0 - OpStore %param %421 - %422 = OpCompositeExtract %float %197 1 - %423 = OpCompositeExtract %float %197 0 - %424 = OpCompositeConstruct %v2float %422 %423 - %425 = OpLoad %int %j_1 + OpStore %param %411 + %412 = OpCompositeExtract %float %189 1 + %413 = OpCompositeExtract %float %189 0 + %414 = OpCompositeConstruct %v2float %412 %413 + %415 = OpLoad %int %j_1 OpStore %j_1 %int_0 - OpStore %j_1 %425 - OpReturnValue %420 + OpStore %j_1 %415 + OpReturnValue %410 OpFunctionEnd - %quicksort_ = OpFunction %void None %426 - %428 = OpLabel + %quicksort_ = OpFunction %void None %416 + %418 = OpLabel %param_4 = OpVariable %_ptr_Function_int Function %28 %h_1 = OpVariable %_ptr_Function_int Function %28 %p = OpVariable %_ptr_Function_int Function %28 %l_1 = OpVariable %_ptr_Function_int Function %28 %top = OpVariable %_ptr_Function_int Function %28 - %stack = OpVariable %_ptr_Function__arr_int_uint_10 Function %436 + %stack = OpVariable %_ptr_Function__arr_int_uint_10 Function %426 %param_5 = OpVariable %_ptr_Function_int Function %28 OpStore %l_1 %int_0 - %438 = OpLoad %int %param_5 + %428 = OpLoad %int %param_5 OpStore %param_5 %int_0 - OpStore %param_5 %438 + OpStore %param_5 %428 OpStore %h_1 %int_9 - %440 = OpLoad %_arr_int_uint_10 %stack - OpStore %stack %103 - OpStore %stack %440 - %441 = OpCompositeExtract %float %35 1 - %442 = OpCompositeExtract %float %35 1 - %443 = OpCompositeConstruct %v2float %441 %442 - %444 = OpLoad %int %param_5 + %430 = OpLoad %_arr_int_uint_10 %stack + OpStore %stack %99 + OpStore %stack %430 + %431 = OpCompositeExtract %float %35 1 + %432 = OpCompositeExtract %float %35 1 + %433 = OpCompositeConstruct %v2float %431 %432 + %434 = OpLoad %int %param_5 OpStore %param_5 %int_0 - OpStore %param_5 %444 + OpStore %param_5 %434 OpStore %top %int_n1 - %446 = OpLoad %int %p + %436 = OpLoad %int %p OpStore %p %int_0 - OpStore %p %446 - %447 = OpLoad %int %top - %448 = OpCompositeExtract %float %35 0 - %449 = OpCompositeExtract %float %35 0 - %450 = OpCompositeConstruct %v2float %448 %449 - %451 = OpLoad %int %p + OpStore %p %436 + %437 = OpLoad %int %top + %438 = OpCompositeExtract %float %35 0 + %439 = OpCompositeExtract %float %35 0 + %440 = OpCompositeConstruct %v2float %438 %439 + %441 = OpLoad %int %p OpStore %p %int_0 - OpStore %p %451 - %452 = OpBitcast %int %uint_1 - %453 = OpIAdd %int %447 %452 - %454 = OpLoad %int %top + OpStore %p %441 + %442 = OpBitcast %int %uint_1 + %443 = OpIAdd %int %437 %442 + %444 = OpLoad %int %top OpStore %top %int_0 - OpStore %top %454 - %455 = OpCompositeExtract %float %443 1 - %456 = OpCompositeExtract %float %450 1 - %457 = OpCompositeConstruct %v2float %455 %456 - %458 = OpLoad %int %param_4 + OpStore %top %444 + %445 = OpCompositeExtract %float %433 1 + %446 = OpCompositeExtract %float %440 1 + %447 = OpCompositeConstruct %v2float %445 %446 + %448 = OpLoad %int %param_4 OpStore %param_4 %int_0 - OpStore %param_4 %458 - OpStore %top %453 - %459 = OpLoad %int %h_1 + OpStore %param_4 %448 + OpStore %top %443 + %449 = OpLoad %int %h_1 OpStore %h_1 %int_0 - OpStore %h_1 %459 - %460 = OpCompositeExtract %float %450 1 - %461 = OpCompositeExtract %float %450 0 - %462 = OpCompositeExtract %float %450 0 - %463 = OpCompositeConstruct %v3float %460 %461 %462 - %464 = OpLoad %int %param_4 + OpStore %h_1 %449 + %450 = OpCompositeExtract %float %440 1 + %451 = OpCompositeExtract %float %440 0 + %452 = OpCompositeExtract %float %440 0 + %453 = OpCompositeConstruct %v3float %450 %451 %452 + %454 = OpLoad %int %param_4 OpStore %param_4 %int_0 - OpStore %param_4 %464 - %465 = OpLoad %int %l_1 - %466 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %466 - %467 = OpCompositeExtract %float %463 1 - %468 = OpCompositeExtract %float %463 0 - %469 = OpCompositeExtract %float %450 0 - %470 = OpCompositeConstruct %v3float %467 %468 %469 - %472 = OpAccessChain %_ptr_Function_int %stack %453 - %473 = OpLoad %_arr_int_uint_10 %stack - OpStore %stack %103 - OpStore %stack %473 - %474 = OpCompositeExtract %float %443 1 - %475 = OpCompositeExtract %float %443 1 - %476 = OpCompositeExtract %float %443 1 - %477 = OpCompositeConstruct %v3float %474 %475 %476 - %478 = OpLoad %int %l_1 + OpStore %param_4 %454 + %455 = OpLoad %int %l_1 + %456 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %456 + %457 = OpCompositeExtract %float %453 1 + %458 = OpCompositeExtract %float %453 0 + %459 = OpCompositeExtract %float %440 0 + %460 = OpCompositeConstruct %v3float %457 %458 %459 + %461 = OpLoad %_arr_int_uint_10 %stack + OpStore %stack %99 + OpStore %stack %461 + %462 = OpCompositeExtract %float %433 1 + %463 = OpCompositeExtract %float %433 1 + %464 = OpCompositeExtract %float %433 1 + %465 = OpCompositeConstruct %v3float %462 %463 %464 + %466 = OpLoad %int %l_1 OpStore %l_1 %int_0 OpStore %l_1 %int_0 - OpStore %472 %465 - %480 = OpLoad %int %param_5 + %467 = OpAccessChain %_ptr_Function_int %stack %443 + OpStore %467 %455 + %468 = OpLoad %int %param_5 OpStore %param_5 %int_0 - OpStore %param_5 %480 - %481 = OpLoad %int %top - %482 = OpLoad %int %param_4 + OpStore %param_5 %468 + %469 = OpLoad %int %top + %470 = OpLoad %int %param_4 OpStore %param_4 %int_0 - OpStore %param_4 %482 - %483 = OpCompositeExtract %float %35 2 - %484 = OpCompositeExtract %float %457 1 - %485 = OpCompositeExtract %float %35 1 - %486 = OpCompositeConstruct %v3float %483 %484 %485 - %488 = OpLoad %int %472 - OpStore %472 %int_0 - OpStore %472 %488 - %491 = OpIAdd %int %481 %int_1 - %493 = OpLoad %int %472 - OpStore %472 %int_0 - OpStore %472 %493 - %496 = OpCompositeExtract %float %463 0 - %497 = OpCompositeExtract %float %463 2 - %498 = OpCompositeExtract %float %443 1 - %499 = OpCompositeConstruct %v3float %496 %497 %498 - OpStore %top %491 - %500 = OpLoad %int %param_4 + OpStore %param_4 %470 + %471 = OpCompositeExtract %float %35 2 + %472 = OpCompositeExtract %float %447 1 + %473 = OpCompositeExtract %float %35 1 + %474 = OpCompositeConstruct %v3float %471 %472 %473 + %475 = OpAccessChain %_ptr_Function_int %stack %443 + %476 = OpLoad %int %475 + %477 = OpAccessChain %_ptr_Function_int %stack %443 + OpStore %477 %int_0 + %478 = OpAccessChain %_ptr_Function_int %stack %443 + OpStore %478 %476 + %479 = OpIAdd %int %469 %int_1 + %480 = OpAccessChain %_ptr_Function_int %stack %443 + %481 = OpLoad %int %480 + %482 = OpAccessChain %_ptr_Function_int %stack %443 + OpStore %482 %int_0 + %483 = OpAccessChain %_ptr_Function_int %stack %443 + OpStore %483 %481 + %484 = OpCompositeExtract %float %453 0 + %485 = OpCompositeExtract %float %453 2 + %486 = OpCompositeExtract %float %433 1 + %487 = OpCompositeConstruct %v3float %484 %485 %486 + OpStore %top %479 + %488 = OpLoad %int %param_4 OpStore %param_4 %int_0 - OpStore %param_4 %500 - %501 = OpLoad %int %h_1 - %502 = OpLoad %int %param_4 + OpStore %param_4 %488 + %489 = OpLoad %int %h_1 + %490 = OpLoad %int %param_4 OpStore %param_4 %int_0 - OpStore %param_4 %502 - %503 = OpCompositeExtract %float %457 0 - %504 = OpCompositeExtract %float %477 0 - %505 = OpCompositeExtract %float %457 1 - %506 = OpCompositeConstruct %v3float %503 %504 %505 - %507 = OpLoad %int %l_1 + OpStore %param_4 %490 + %491 = OpCompositeExtract %float %447 0 + %492 = OpCompositeExtract %float %465 0 + %493 = OpCompositeExtract %float %447 1 + %494 = OpCompositeConstruct %v3float %491 %492 %493 + %495 = OpLoad %int %l_1 OpStore %l_1 %int_0 - OpStore %l_1 %507 - %509 = OpAccessChain %_ptr_Function_int %stack %491 - %510 = OpLoad %int %param_5 + OpStore %l_1 %495 + %496 = OpLoad %int %param_5 OpStore %param_5 %int_0 - OpStore %param_5 %510 - %511 = OpCompositeExtract %float %506 2 - %512 = OpCompositeExtract %float %506 2 - %513 = OpCompositeConstruct %v2float %511 %512 - %514 = OpLoad %int %p + OpStore %param_5 %496 + %497 = OpCompositeExtract %float %494 2 + %498 = OpCompositeExtract %float %494 2 + %499 = OpCompositeConstruct %v2float %497 %498 + %500 = OpLoad %int %p OpStore %p %int_0 - OpStore %p %514 - OpStore %509 %501 - OpBranch %516 - %516 = OpLabel - OpLoopMerge %517 %518 None - OpBranch %519 - %519 = OpLabel - %520 = OpCompositeExtract %float %499 0 - %521 = OpCompositeExtract %float %499 0 - %522 = OpCompositeExtract %float %499 0 - %523 = OpCompositeConstruct %v3float %520 %521 %522 - %524 = OpLoad %int %h_1 + OpStore %p %500 + %501 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %501 %489 + OpBranch %502 + %502 = OpLabel + OpLoopMerge %503 %504 None + OpBranch %505 + %505 = OpLabel + %506 = OpCompositeExtract %float %487 0 + %507 = OpCompositeExtract %float %487 0 + %508 = OpCompositeExtract %float %487 0 + %509 = OpCompositeConstruct %v3float %506 %507 %508 + %510 = OpLoad %int %h_1 OpStore %h_1 %int_0 - OpStore %h_1 %524 - %525 = OpLoad %_arr_int_uint_10 %stack - OpStore %stack %103 - OpStore %stack %525 - %526 = OpLoad %int %top - %527 = OpLoad %_arr_int_uint_10 %stack - OpStore %stack %103 - OpStore %stack %527 - %528 = OpCompositeExtract %float %457 0 - %529 = OpCompositeExtract %float %506 2 - %530 = OpCompositeConstruct %v2float %528 %529 - %531 = OpLoad %int %param_4 + OpStore %h_1 %510 + %511 = OpLoad %_arr_int_uint_10 %stack + OpStore %stack %99 + OpStore %stack %511 + %512 = OpLoad %int %top + %513 = OpLoad %_arr_int_uint_10 %stack + OpStore %stack %99 + OpStore %stack %513 + %514 = OpCompositeExtract %float %447 0 + %515 = OpCompositeExtract %float %494 2 + %516 = OpCompositeConstruct %v2float %514 %515 + %517 = OpLoad %int %param_4 OpStore %param_4 %int_0 - OpStore %param_4 %531 - %532 = OpBitcast %int %uint_0 - %533 = OpSGreaterThanEqual %bool %526 %532 - OpSelectionMerge %534 None - OpBranchConditional %533 %535 %536 - %535 = OpLabel - OpBranch %534 - %536 = OpLabel - OpBranch %517 - %534 = OpLabel - %537 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %537 - %538 = OpCompositeExtract %float %463 1 - %539 = OpCompositeExtract %float %463 0 - %540 = OpCompositeExtract %float %499 1 - %541 = OpCompositeConstruct %v3float %538 %539 %540 - %542 = OpLoad %int %param_4 + OpStore %param_4 %517 + %518 = OpBitcast %int %uint_0 + %519 = OpSGreaterThanEqual %bool %512 %518 + OpSelectionMerge %520 None + OpBranchConditional %519 %521 %522 + %521 = OpLabel + OpBranch %520 + %522 = OpLabel + OpBranch %503 + %520 = OpLabel + %523 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %523 + %524 = OpCompositeExtract %float %453 1 + %525 = OpCompositeExtract %float %453 0 + %526 = OpCompositeExtract %float %487 1 + %527 = OpCompositeConstruct %v3float %524 %525 %526 + %528 = OpLoad %int %param_4 OpStore %param_4 %int_0 - OpStore %param_4 %542 - %543 = OpLoad %int %top - %544 = OpCompositeExtract %float %513 0 - %545 = OpCompositeExtract %float %530 1 - %546 = OpCompositeExtract %float %513 0 - %547 = OpCompositeConstruct %v3float %544 %545 %546 - %548 = OpLoad %int %h_1 + OpStore %param_4 %528 + %529 = OpLoad %int %top + %530 = OpCompositeExtract %float %499 0 + %531 = OpCompositeExtract %float %516 1 + %532 = OpCompositeExtract %float %499 0 + %533 = OpCompositeConstruct %v3float %530 %531 %532 + %534 = OpLoad %int %h_1 OpStore %h_1 %int_0 - OpStore %h_1 %548 - %549 = OpCompositeExtract %float %443 0 - %550 = OpCompositeExtract %float %443 0 - %551 = OpCompositeConstruct %v2float %549 %550 - %552 = OpLoad %int %p + OpStore %h_1 %534 + %535 = OpCompositeExtract %float %433 0 + %536 = OpCompositeExtract %float %433 0 + %537 = OpCompositeConstruct %v2float %535 %536 + %538 = OpLoad %int %p OpStore %p %int_0 - OpStore %p %552 - %553 = OpBitcast %int %uint_1 - %554 = OpISub %int %543 %553 - OpStore %top %554 - %555 = OpLoad %int %p + OpStore %p %538 + %539 = OpBitcast %int %uint_1 + %540 = OpISub %int %529 %539 + OpStore %top %540 + %541 = OpLoad %int %p OpStore %p %int_0 - OpStore %p %555 - %557 = OpAccessChain %_ptr_Function_int %stack %543 - %559 = OpLoad %int %472 - OpStore %472 %int_0 - OpStore %472 %559 - %563 = OpLoad %int %557 - %564 = OpLoad %_arr_int_uint_10 %stack - OpStore %stack %103 - OpStore %stack %564 - %565 = OpCompositeExtract %float %463 1 - %566 = OpCompositeExtract %float %463 0 - %567 = OpCompositeExtract %float %506 1 - %568 = OpCompositeConstruct %v3float %565 %566 %567 - %569 = OpLoad %int %l_1 + OpStore %p %541 + %542 = OpAccessChain %_ptr_Function_int %stack %443 + %543 = OpLoad %int %542 + %544 = OpAccessChain %_ptr_Function_int %stack %443 + OpStore %544 %int_0 + %545 = OpAccessChain %_ptr_Function_int %stack %443 + OpStore %545 %543 + %546 = OpAccessChain %_ptr_Function_int %stack %529 + %547 = OpLoad %int %546 + %548 = OpLoad %_arr_int_uint_10 %stack + OpStore %stack %99 + OpStore %stack %548 + %549 = OpCompositeExtract %float %453 1 + %550 = OpCompositeExtract %float %453 0 + %551 = OpCompositeExtract %float %494 1 + %552 = OpCompositeConstruct %v3float %549 %550 %551 + %553 = OpLoad %int %l_1 OpStore %l_1 %int_0 - OpStore %l_1 %569 - OpStore %h_1 %563 - %570 = OpLoad %_arr_int_uint_10 %stack - OpStore %stack %103 - OpStore %stack %570 - %571 = OpCompositeExtract %float %486 1 - %572 = OpCompositeExtract %float %477 1 - %573 = OpCompositeConstruct %v2float %571 %572 - %574 = OpLoad %int %p + OpStore %l_1 %553 + OpStore %h_1 %547 + %554 = OpLoad %_arr_int_uint_10 %stack + OpStore %stack %99 + OpStore %stack %554 + %555 = OpCompositeExtract %float %474 1 + %556 = OpCompositeExtract %float %465 1 + %557 = OpCompositeConstruct %v2float %555 %556 + %558 = OpLoad %int %p OpStore %p %int_0 - OpStore %p %574 - %575 = OpLoad %int %top - %576 = OpLoad %int %param_4 + OpStore %p %558 + %559 = OpLoad %int %top + %560 = OpLoad %int %param_4 OpStore %param_4 %int_0 - OpStore %param_4 %576 - %578 = OpLoad %int %509 - OpStore %509 %int_0 - OpStore %509 %578 - %581 = OpCompositeExtract %float %35 1 - %582 = OpCompositeExtract %float %35 2 - %583 = OpCompositeConstruct %v2float %581 %582 - %584 = OpISub %int %575 %int_1 - OpStore %top %584 - %585 = OpLoad %int %param_5 + OpStore %param_4 %560 + %561 = OpAccessChain %_ptr_Function_int %stack %479 + %562 = OpLoad %int %561 + %563 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %563 %int_0 + %564 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %564 %562 + %565 = OpCompositeExtract %float %35 1 + %566 = OpCompositeExtract %float %35 2 + %567 = OpCompositeConstruct %v2float %565 %566 + %568 = OpISub %int %559 %int_1 + OpStore %top %568 + %569 = OpLoad %int %param_5 OpStore %param_5 %int_0 - OpStore %param_5 %585 - %586 = OpCompositeExtract %float %551 1 - %587 = OpCompositeExtract %float %513 0 - %588 = OpCompositeExtract %float %551 1 - %589 = OpCompositeConstruct %v3float %586 %587 %588 - %590 = OpLoad %int %h_1 + OpStore %param_5 %569 + %570 = OpCompositeExtract %float %537 1 + %571 = OpCompositeExtract %float %499 0 + %572 = OpCompositeExtract %float %537 1 + %573 = OpCompositeConstruct %v3float %570 %571 %572 + %574 = OpLoad %int %h_1 OpStore %h_1 %int_0 - OpStore %h_1 %590 - %592 = OpAccessChain %_ptr_Function_int %stack %575 - %593 = OpCompositeExtract %float %506 1 - %594 = OpCompositeExtract %float %506 2 - %595 = OpCompositeConstruct %v2float %593 %594 - %597 = OpLoad %int %509 - OpStore %509 %int_0 - OpStore %509 %597 - %601 = OpLoad %int %592 - %602 = OpLoad %int %p + OpStore %h_1 %574 + %575 = OpCompositeExtract %float %494 1 + %576 = OpCompositeExtract %float %494 2 + %577 = OpCompositeConstruct %v2float %575 %576 + %578 = OpAccessChain %_ptr_Function_int %stack %479 + %579 = OpLoad %int %578 + %580 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %580 %int_0 + %581 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %581 %579 + %582 = OpAccessChain %_ptr_Function_int %stack %559 + %583 = OpLoad %int %582 + %584 = OpLoad %int %p OpStore %p %int_0 - OpStore %p %602 - %603 = OpCompositeExtract %float %583 1 - %604 = OpCompositeExtract %float %583 1 - %605 = OpCompositeExtract %float %513 0 - %606 = OpCompositeConstruct %v3float %603 %604 %605 - %607 = OpLoad %int %param_5 + OpStore %p %584 + %585 = OpCompositeExtract %float %567 1 + %586 = OpCompositeExtract %float %567 1 + %587 = OpCompositeExtract %float %499 0 + %588 = OpCompositeConstruct %v3float %585 %586 %587 + %589 = OpLoad %int %param_5 OpStore %param_5 %int_0 - OpStore %param_5 %607 - OpStore %l_1 %601 - %608 = OpLoad %int %top + OpStore %param_5 %589 + OpStore %l_1 %583 + %590 = OpLoad %int %top OpStore %top %int_0 - OpStore %top %608 - %609 = OpLoad %int %l_1 - OpStore %param_4 %609 - %611 = OpLoad %int %557 - OpStore %557 %int_0 - OpStore %557 %611 - %614 = OpCompositeExtract %float %547 1 - %615 = OpCompositeExtract %float %547 2 - %616 = OpCompositeConstruct %v2float %614 %615 - %617 = OpLoad %int %h_1 - %618 = OpCompositeExtract %float %457 0 - %619 = OpCompositeExtract %float %35 1 - %620 = OpCompositeConstruct %v2float %618 %619 - OpStore %param_5 %617 - %622 = OpLoad %int %509 - OpStore %509 %int_0 - OpStore %509 %622 - %625 = OpFunctionCall %int %performPartition_i1_i1_ %param_4 %param_5 - %628 = OpCompositeExtract %float %530 0 - %629 = OpCompositeExtract %float %541 0 + OpStore %top %590 + %591 = OpLoad %int %l_1 + OpStore %param_4 %591 + %592 = OpAccessChain %_ptr_Function_int %stack %529 + %593 = OpLoad %int %592 + %594 = OpAccessChain %_ptr_Function_int %stack %529 + OpStore %594 %int_0 + %595 = OpAccessChain %_ptr_Function_int %stack %529 + OpStore %595 %593 + %596 = OpCompositeExtract %float %533 1 + %597 = OpCompositeExtract %float %533 2 + %598 = OpCompositeConstruct %v2float %596 %597 + %599 = OpLoad %int %h_1 + %600 = OpCompositeExtract %float %447 0 + %601 = OpCompositeExtract %float %35 1 + %602 = OpCompositeConstruct %v2float %600 %601 + OpStore %param_5 %599 + %603 = OpAccessChain %_ptr_Function_int %stack %479 + %604 = OpLoad %int %603 + %605 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %605 %int_0 + %606 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %606 %604 + %607 = OpFunctionCall %int %performPartition_i1_i1_ %param_4 %param_5 + %610 = OpCompositeExtract %float %516 0 + %611 = OpCompositeExtract %float %527 0 + %612 = OpCompositeConstruct %v2float %610 %611 + %613 = OpLoad %int %param_5 + OpStore %param_5 %int_0 + OpStore %param_5 %613 + OpStore %p %607 + %614 = OpLoad %int %param_4 + OpStore %param_4 %int_0 + OpStore %param_4 %614 + %615 = OpLoad %int %p + %616 = OpLoad %int %h_1 + OpStore %h_1 %int_0 + OpStore %h_1 %616 + %617 = OpCompositeExtract %float %527 1 + %618 = OpCompositeExtract %float %527 1 + %619 = OpCompositeConstruct %v2float %617 %618 + %620 = OpLoad %int %l_1 + OpStore %l_1 %int_0 + OpStore %l_1 %620 + %621 = OpLoad %int %h_1 + OpStore %h_1 %int_0 + OpStore %h_1 %621 + %622 = OpLoad %int %l_1 + %623 = OpAccessChain %_ptr_Function_int %stack %529 + %624 = OpLoad %int %623 + %625 = OpAccessChain %_ptr_Function_int %stack %529 + OpStore %625 %int_0 + %626 = OpAccessChain %_ptr_Function_int %stack %529 + OpStore %626 %624 + %627 = OpLoad %int %h_1 + OpStore %h_1 %int_0 + OpStore %h_1 %627 + %628 = OpCompositeExtract %float %516 1 + %629 = OpCompositeExtract %float %567 0 %630 = OpCompositeConstruct %v2float %628 %629 - %631 = OpLoad %int %param_5 + %631 = OpAccessChain %_ptr_Function_int %stack %479 + %632 = OpLoad %int %631 + %633 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %633 %int_0 + %634 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %634 %632 + %635 = OpBitcast %int %uint_1 + %636 = OpISub %int %615 %635 + %637 = OpSGreaterThan %bool %636 %622 + OpSelectionMerge %638 None + OpBranchConditional %637 %639 %638 + %639 = OpLabel + %640 = OpLoad %int %param_4 + OpStore %param_4 %int_0 + OpStore %param_4 %640 + %641 = OpLoad %int %top + %642 = OpCompositeExtract %float %552 1 + %643 = OpCompositeExtract %float %433 1 + %644 = OpCompositeConstruct %v2float %642 %643 + %645 = OpAccessChain %_ptr_Function_int %stack %479 + %646 = OpLoad %int %645 + %647 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %647 %int_0 + %648 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %648 %646 + %649 = OpLoad %_arr_int_uint_10 %stack + OpStore %stack %99 + OpStore %stack %649 + %650 = OpCompositeExtract %float %533 2 + %651 = OpCompositeExtract %float %533 1 + %652 = OpCompositeConstruct %v2float %650 %651 + %653 = OpCompositeExtract %float %619 1 + %654 = OpCompositeExtract %float %598 0 + %655 = OpCompositeExtract %float %598 0 + %656 = OpCompositeConstruct %v3float %653 %654 %655 + %657 = OpLoad %int %l_1 + %658 = OpAccessChain %_ptr_Function_int %stack %559 + %659 = OpLoad %int %658 + %660 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %660 %int_0 + %661 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %661 %659 + %662 = OpCompositeExtract %float %494 0 + %663 = OpCompositeExtract %float %656 0 + %664 = OpCompositeConstruct %v2float %662 %663 + %665 = OpLoad %int %param_5 OpStore %param_5 %int_0 - OpStore %param_5 %631 - OpStore %p %625 - %632 = OpLoad %int %param_4 - OpStore %param_4 %int_0 - OpStore %param_4 %632 - %633 = OpLoad %int %p - %634 = OpLoad %int %h_1 - OpStore %h_1 %int_0 - OpStore %h_1 %634 - %635 = OpCompositeExtract %float %541 1 - %636 = OpCompositeExtract %float %541 1 - %637 = OpCompositeConstruct %v2float %635 %636 - %638 = OpLoad %int %l_1 - OpStore %l_1 %int_0 - OpStore %l_1 %638 - %639 = OpLoad %int %h_1 - OpStore %h_1 %int_0 - OpStore %h_1 %639 - %640 = OpLoad %int %l_1 - %642 = OpLoad %int %557 - OpStore %557 %int_0 - OpStore %557 %642 - %645 = OpLoad %int %h_1 - OpStore %h_1 %int_0 - OpStore %h_1 %645 - %646 = OpCompositeExtract %float %530 1 - %647 = OpCompositeExtract %float %583 0 - %648 = OpCompositeConstruct %v2float %646 %647 - %650 = OpLoad %int %509 - OpStore %509 %int_0 - OpStore %509 %650 - %653 = OpBitcast %int %uint_1 - %654 = OpISub %int %633 %653 - %655 = OpSGreaterThan %bool %654 %640 - OpSelectionMerge %656 None - OpBranchConditional %655 %657 %656 - %657 = OpLabel - %658 = OpLoad %int %param_4 - OpStore %param_4 %int_0 - OpStore %param_4 %658 - %659 = OpLoad %int %top - %660 = OpCompositeExtract %float %568 1 - %661 = OpCompositeExtract %float %443 1 - %662 = OpCompositeConstruct %v2float %660 %661 - %664 = OpLoad %int %509 - OpStore %509 %int_0 - OpStore %509 %664 - %667 = OpLoad %_arr_int_uint_10 %stack - OpStore %stack %103 - OpStore %stack %667 - %668 = OpCompositeExtract %float %547 2 - %669 = OpCompositeExtract %float %547 1 - %670 = OpCompositeConstruct %v2float %668 %669 - %671 = OpCompositeExtract %float %637 1 - %672 = OpCompositeExtract %float %616 0 - %673 = OpCompositeExtract %float %616 0 + OpStore %param_5 %665 + %666 = OpIAdd %int %int_1 %641 + %667 = OpAccessChain %_ptr_Function_int %stack %529 + %668 = OpLoad %int %667 + %669 = OpAccessChain %_ptr_Function_int %stack %529 + OpStore %669 %int_0 + %670 = OpAccessChain %_ptr_Function_int %stack %529 + OpStore %670 %668 + %671 = OpCompositeExtract %float %509 1 + %672 = OpCompositeExtract %float %509 1 + %673 = OpCompositeExtract %float %487 0 %674 = OpCompositeConstruct %v3float %671 %672 %673 - %675 = OpLoad %int %l_1 - %677 = OpLoad %int %592 - OpStore %592 %int_0 - OpStore %592 %677 - %680 = OpCompositeExtract %float %506 0 - %681 = OpCompositeExtract %float %674 0 - %682 = OpCompositeConstruct %v2float %680 %681 - %683 = OpLoad %int %param_5 + %675 = OpLoad %int %param_5 OpStore %param_5 %int_0 - OpStore %param_5 %683 - %685 = OpIAdd %int %int_1 %659 - %686 = OpAccessChain %_ptr_Function_int %stack %685 - %688 = OpLoad %int %557 - OpStore %557 %int_0 - OpStore %557 %688 - %691 = OpCompositeExtract %float %523 1 - %692 = OpCompositeExtract %float %523 1 - %693 = OpCompositeExtract %float %499 0 - %694 = OpCompositeConstruct %v3float %691 %692 %693 - %695 = OpLoad %int %param_5 - OpStore %param_5 %int_0 - OpStore %param_5 %695 - OpStore %686 %675 - %697 = OpLoad %int %top - %699 = OpLoad %int %509 - OpStore %509 %int_0 - OpStore %509 %699 - %702 = OpCompositeExtract %float %595 1 - %703 = OpCompositeExtract %float %595 0 - %704 = OpCompositeConstruct %v2float %702 %703 - %706 = OpLoad %int %686 - OpStore %686 %int_0 - OpStore %686 %706 - %710 = OpBitcast %uint %697 - %711 = OpIAdd %uint %uint_1 %710 - %709 = OpBitcast %int %711 - %713 = OpLoad %int %509 - OpStore %509 %int_0 - OpStore %509 %713 - %716 = OpCompositeExtract %float %606 2 - %717 = OpCompositeExtract %float %704 1 - %718 = OpCompositeExtract %float %606 2 - %719 = OpCompositeConstruct %v3float %716 %717 %718 - %720 = OpLoad %int %h_1 + OpStore %param_5 %675 + %676 = OpAccessChain %_ptr_Function_int %stack %666 + OpStore %676 %657 + %677 = OpLoad %int %top + %678 = OpAccessChain %_ptr_Function_int %stack %479 + %679 = OpLoad %int %678 + %680 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %680 %int_0 + %681 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %681 %679 + %682 = OpCompositeExtract %float %577 1 + %683 = OpCompositeExtract %float %577 0 + %684 = OpCompositeConstruct %v2float %682 %683 + %685 = OpAccessChain %_ptr_Function_int %stack %666 + %686 = OpLoad %int %685 + %687 = OpAccessChain %_ptr_Function_int %stack %666 + OpStore %687 %int_0 + %688 = OpAccessChain %_ptr_Function_int %stack %666 + OpStore %688 %686 + %690 = OpBitcast %uint %677 + %691 = OpIAdd %uint %uint_1 %690 + %689 = OpBitcast %int %691 + %692 = OpAccessChain %_ptr_Function_int %stack %479 + %693 = OpLoad %int %692 + %694 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %694 %int_0 + %695 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %695 %693 + %696 = OpCompositeExtract %float %588 2 + %697 = OpCompositeExtract %float %684 1 + %698 = OpCompositeExtract %float %588 2 + %699 = OpCompositeConstruct %v3float %696 %697 %698 + %700 = OpLoad %int %h_1 OpStore %h_1 %int_0 - OpStore %h_1 %720 - OpStore %top %709 - %721 = OpLoad %_arr_int_uint_10 %stack - OpStore %stack %103 - OpStore %stack %721 - %722 = OpLoad %int %p - %723 = OpCompositeExtract %float %606 0 - %724 = OpCompositeExtract %float %583 1 - %725 = OpCompositeConstruct %v2float %723 %724 - %727 = OpLoad %int %592 - OpStore %592 %int_0 - OpStore %592 %727 - %731 = OpAccessChain %_ptr_Function_int %stack %709 - %733 = OpLoad %int %592 - OpStore %592 %int_0 - OpStore %592 %733 - %737 = OpBitcast %int %uint_1 - %738 = OpISub %int %722 %737 - OpStore %731 %738 - %740 = OpLoad %int %472 - OpStore %472 %int_0 - OpStore %472 %740 - %743 = OpCompositeExtract %float %547 2 - %744 = OpCompositeExtract %float %547 1 - %745 = OpCompositeConstruct %v2float %743 %744 - %747 = OpLoad %int %731 - OpStore %731 %int_0 - OpStore %731 %747 - OpBranch %656 - %656 = OpLabel - %751 = OpLoad %int %472 - OpStore %472 %int_0 - OpStore %472 %751 - %754 = OpCompositeExtract %float %35 0 - %755 = OpCompositeExtract %float %35 1 - %756 = OpCompositeConstruct %v2float %754 %755 - %757 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %757 - %758 = OpLoad %int %p - %760 = OpLoad %int %592 - OpStore %592 %int_0 - OpStore %592 %760 - %763 = OpCompositeExtract %float %568 2 - %764 = OpCompositeExtract %float %443 0 - %765 = OpCompositeExtract %float %443 1 - %766 = OpCompositeConstruct %v3float %763 %764 %765 - %767 = OpLoad %int %p + OpStore %h_1 %700 + OpStore %top %689 + %701 = OpLoad %_arr_int_uint_10 %stack + OpStore %stack %99 + OpStore %stack %701 + %702 = OpLoad %int %p + %703 = OpCompositeExtract %float %588 0 + %704 = OpCompositeExtract %float %567 1 + %705 = OpCompositeConstruct %v2float %703 %704 + %706 = OpAccessChain %_ptr_Function_int %stack %559 + %707 = OpLoad %int %706 + %708 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %708 %int_0 + %709 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %709 %707 + %710 = OpAccessChain %_ptr_Function_int %stack %559 + %711 = OpLoad %int %710 + %712 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %712 %int_0 + %713 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %713 %711 + %714 = OpAccessChain %_ptr_Function_int %stack %689 + %715 = OpBitcast %int %uint_1 + %716 = OpISub %int %702 %715 + OpStore %714 %716 + %717 = OpAccessChain %_ptr_Function_int %stack %443 + %718 = OpLoad %int %717 + %719 = OpAccessChain %_ptr_Function_int %stack %443 + OpStore %719 %int_0 + %720 = OpAccessChain %_ptr_Function_int %stack %443 + OpStore %720 %718 + %721 = OpCompositeExtract %float %533 2 + %722 = OpCompositeExtract %float %533 1 + %723 = OpCompositeConstruct %v2float %721 %722 + %724 = OpAccessChain %_ptr_Function_int %stack %689 + %725 = OpLoad %int %724 + %726 = OpAccessChain %_ptr_Function_int %stack %689 + OpStore %726 %int_0 + %727 = OpAccessChain %_ptr_Function_int %stack %689 + OpStore %727 %725 + OpBranch %638 + %638 = OpLabel + %728 = OpAccessChain %_ptr_Function_int %stack %443 + %729 = OpLoad %int %728 + %730 = OpAccessChain %_ptr_Function_int %stack %443 + OpStore %730 %int_0 + %731 = OpAccessChain %_ptr_Function_int %stack %443 + OpStore %731 %729 + %732 = OpCompositeExtract %float %35 0 + %733 = OpCompositeExtract %float %35 1 + %734 = OpCompositeConstruct %v2float %732 %733 + %735 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %735 + %736 = OpLoad %int %p + %737 = OpAccessChain %_ptr_Function_int %stack %559 + %738 = OpLoad %int %737 + %739 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %739 %int_0 + %740 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %740 %738 + %741 = OpCompositeExtract %float %552 2 + %742 = OpCompositeExtract %float %433 0 + %743 = OpCompositeExtract %float %433 1 + %744 = OpCompositeConstruct %v3float %741 %742 %743 + %745 = OpLoad %int %p OpStore %p %int_0 - OpStore %p %767 - %768 = OpCompositeExtract %float %499 2 - %769 = OpCompositeExtract %float %499 0 - %770 = OpCompositeExtract %float %595 0 - %771 = OpCompositeConstruct %v3float %768 %769 %770 - %773 = OpLoad %int %592 - OpStore %592 %int_0 - OpStore %592 %773 - %776 = OpLoad %int %h_1 - %777 = OpLoad %int %top + OpStore %p %745 + %746 = OpCompositeExtract %float %487 2 + %747 = OpCompositeExtract %float %487 0 + %748 = OpCompositeExtract %float %577 0 + %749 = OpCompositeConstruct %v3float %746 %747 %748 + %750 = OpAccessChain %_ptr_Function_int %stack %559 + %751 = OpLoad %int %750 + %752 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %752 %int_0 + %753 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %753 %751 + %754 = OpLoad %int %h_1 + %755 = OpLoad %int %top OpStore %top %int_0 - OpStore %top %777 - %778 = OpCompositeExtract %float %470 2 - %779 = OpCompositeExtract %float %541 0 - %780 = OpCompositeExtract %float %470 0 - %781 = OpCompositeConstruct %v3float %778 %779 %780 - %783 = OpLoad %int %509 - OpStore %509 %int_0 - OpStore %509 %783 - %786 = OpLoad %int %p + OpStore %top %755 + %756 = OpCompositeExtract %float %460 2 + %757 = OpCompositeExtract %float %527 0 + %758 = OpCompositeExtract %float %460 0 + %759 = OpCompositeConstruct %v3float %756 %757 %758 + %760 = OpAccessChain %_ptr_Function_int %stack %479 + %761 = OpLoad %int %760 + %762 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %762 %int_0 + %763 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %763 %761 + %764 = OpLoad %int %p OpStore %p %int_0 - OpStore %p %786 - %788 = OpBitcast %uint %758 - %789 = OpIAdd %uint %uint_1 %788 - %787 = OpBitcast %int %789 - %790 = OpSLessThan %bool %787 %776 - OpSelectionMerge %791 None - OpBranchConditional %790 %792 %791 - %792 = OpLabel - %794 = OpLoad %int %592 - OpStore %592 %int_0 - OpStore %592 %794 - %797 = OpCompositeExtract %float %756 1 - %798 = OpCompositeExtract %float %648 0 - %799 = OpCompositeConstruct %v2float %797 %798 - %800 = OpLoad %int %l_1 + OpStore %p %764 + %766 = OpBitcast %uint %736 + %767 = OpIAdd %uint %uint_1 %766 + %765 = OpBitcast %int %767 + %768 = OpSLessThan %bool %765 %754 + OpSelectionMerge %769 None + OpBranchConditional %768 %770 %769 + %770 = OpLabel + %771 = OpAccessChain %_ptr_Function_int %stack %559 + %772 = OpLoad %int %771 + %773 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %773 %int_0 + %774 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %774 %772 + %775 = OpCompositeExtract %float %734 1 + %776 = OpCompositeExtract %float %630 0 + %777 = OpCompositeConstruct %v2float %775 %776 + %778 = OpLoad %int %l_1 OpStore %l_1 %int_0 - OpStore %l_1 %800 - %801 = OpLoad %int %top - %803 = OpLoad %int %592 - OpStore %592 %int_0 - OpStore %592 %803 - %806 = OpCompositeExtract %float %486 1 - %807 = OpCompositeExtract %float %470 1 - %808 = OpCompositeExtract %float %470 1 - %809 = OpCompositeConstruct %v3float %806 %807 %808 - %810 = OpIAdd %int %801 %int_1 - %811 = OpLoad %int %param_5 + OpStore %l_1 %778 + %779 = OpLoad %int %top + %780 = OpAccessChain %_ptr_Function_int %stack %559 + %781 = OpLoad %int %780 + %782 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %782 %int_0 + %783 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %783 %781 + %784 = OpCompositeExtract %float %474 1 + %785 = OpCompositeExtract %float %460 1 + %786 = OpCompositeExtract %float %460 1 + %787 = OpCompositeConstruct %v3float %784 %785 %786 + %788 = OpIAdd %int %779 %int_1 + %789 = OpLoad %int %param_5 OpStore %param_5 %int_0 - OpStore %param_5 %811 - OpStore %top %810 - %813 = OpLoad %int %592 - OpStore %592 %int_0 - OpStore %592 %813 - %816 = OpLoad %int %p - %817 = OpLoad %int %param_5 + OpStore %param_5 %789 + OpStore %top %788 + %790 = OpAccessChain %_ptr_Function_int %stack %559 + %791 = OpLoad %int %790 + %792 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %792 %int_0 + %793 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %793 %791 + %794 = OpLoad %int %p + %795 = OpLoad %int %param_5 OpStore %param_5 %int_0 - OpStore %param_5 %817 - %818 = OpCompositeExtract %float %470 2 - %819 = OpCompositeExtract %float %470 0 - %820 = OpCompositeExtract %float %541 0 - %821 = OpCompositeConstruct %v3float %818 %819 %820 - %822 = OpLoad %int %p + OpStore %param_5 %795 + %796 = OpCompositeExtract %float %460 2 + %797 = OpCompositeExtract %float %460 0 + %798 = OpCompositeExtract %float %527 0 + %799 = OpCompositeConstruct %v3float %796 %797 %798 + %800 = OpLoad %int %p OpStore %p %int_0 - OpStore %p %822 - %823 = OpCompositeExtract %float %443 0 - %824 = OpCompositeExtract %float %637 0 - %825 = OpCompositeExtract %float %637 0 - %826 = OpCompositeConstruct %v3float %823 %824 %825 - %828 = OpLoad %int %509 - OpStore %509 %int_0 - OpStore %509 %828 - %832 = OpAccessChain %_ptr_Function_int %stack %810 - %834 = OpLoad %int %557 - OpStore %557 %int_0 - OpStore %557 %834 - %837 = OpCompositeExtract %float %499 0 - %838 = OpCompositeExtract %float %499 1 - %839 = OpCompositeConstruct %v2float %837 %838 - %842 = OpBitcast %uint %816 - %843 = OpIAdd %uint %uint_1 %842 - %841 = OpBitcast %int %843 - OpStore %832 %841 - %844 = OpLoad %_arr_int_uint_10 %stack - OpStore %stack %103 - OpStore %stack %844 - %845 = OpLoad %int %top - %847 = OpLoad %int %592 - OpStore %592 %int_0 - OpStore %592 %847 - %850 = OpCompositeExtract %float %513 1 - %851 = OpCompositeExtract %float %821 1 - %852 = OpCompositeConstruct %v2float %850 %851 - %853 = OpLoad %_arr_int_uint_10 %stack - OpStore %stack %103 - OpStore %stack %853 - %854 = OpBitcast %int %uint_1 - %855 = OpIAdd %int %845 %854 - %857 = OpLoad %int %832 - OpStore %832 %int_0 - OpStore %832 %857 - OpStore %top %855 - %860 = OpLoad %int %param_4 + OpStore %p %800 + %801 = OpCompositeExtract %float %433 0 + %802 = OpCompositeExtract %float %619 0 + %803 = OpCompositeExtract %float %619 0 + %804 = OpCompositeConstruct %v3float %801 %802 %803 + %805 = OpAccessChain %_ptr_Function_int %stack %479 + %806 = OpLoad %int %805 + %807 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %807 %int_0 + %808 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %808 %806 + %809 = OpAccessChain %_ptr_Function_int %stack %529 + %810 = OpLoad %int %809 + %811 = OpAccessChain %_ptr_Function_int %stack %529 + OpStore %811 %int_0 + %812 = OpAccessChain %_ptr_Function_int %stack %529 + OpStore %812 %810 + %813 = OpCompositeExtract %float %487 0 + %814 = OpCompositeExtract %float %487 1 + %815 = OpCompositeConstruct %v2float %813 %814 + %816 = OpAccessChain %_ptr_Function_int %stack %788 + %818 = OpBitcast %uint %794 + %819 = OpIAdd %uint %uint_1 %818 + %817 = OpBitcast %int %819 + OpStore %816 %817 + %820 = OpLoad %_arr_int_uint_10 %stack + OpStore %stack %99 + OpStore %stack %820 + %821 = OpLoad %int %top + %822 = OpAccessChain %_ptr_Function_int %stack %559 + %823 = OpLoad %int %822 + %824 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %824 %int_0 + %825 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %825 %823 + %826 = OpCompositeExtract %float %499 1 + %827 = OpCompositeExtract %float %799 1 + %828 = OpCompositeConstruct %v2float %826 %827 + %829 = OpLoad %_arr_int_uint_10 %stack + OpStore %stack %99 + OpStore %stack %829 + %830 = OpBitcast %int %uint_1 + %831 = OpIAdd %int %821 %830 + %832 = OpAccessChain %_ptr_Function_int %stack %788 + %833 = OpLoad %int %832 + %834 = OpAccessChain %_ptr_Function_int %stack %788 + OpStore %834 %int_0 + %835 = OpAccessChain %_ptr_Function_int %stack %788 + OpStore %835 %833 + OpStore %top %831 + %836 = OpLoad %int %param_4 OpStore %param_4 %int_0 - OpStore %param_4 %860 - %861 = OpLoad %int %h_1 - %863 = OpLoad %int %509 - OpStore %509 %int_0 - OpStore %509 %863 - %867 = OpLoad %int %472 - OpStore %472 %int_0 - OpStore %472 %867 - %870 = OpAccessChain %_ptr_Function_int %stack %855 - OpStore %870 %861 - %872 = OpLoad %int %592 - OpStore %592 %int_0 - OpStore %592 %872 - %875 = OpCompositeExtract %float %541 1 - %876 = OpCompositeExtract %float %506 0 - %877 = OpCompositeExtract %float %506 0 - %878 = OpCompositeConstruct %v3float %875 %876 %877 - %879 = OpLoad %int %l_1 + OpStore %param_4 %836 + %837 = OpLoad %int %h_1 + %838 = OpAccessChain %_ptr_Function_int %stack %479 + %839 = OpLoad %int %838 + %840 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %840 %int_0 + %841 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %841 %839 + %842 = OpAccessChain %_ptr_Function_int %stack %443 + %843 = OpLoad %int %842 + %844 = OpAccessChain %_ptr_Function_int %stack %443 + OpStore %844 %int_0 + %845 = OpAccessChain %_ptr_Function_int %stack %443 + OpStore %845 %843 + %846 = OpAccessChain %_ptr_Function_int %stack %831 + OpStore %846 %837 + %847 = OpAccessChain %_ptr_Function_int %stack %559 + %848 = OpLoad %int %847 + %849 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %849 %int_0 + %850 = OpAccessChain %_ptr_Function_int %stack %559 + OpStore %850 %848 + %851 = OpCompositeExtract %float %527 1 + %852 = OpCompositeExtract %float %494 0 + %853 = OpCompositeExtract %float %494 0 + %854 = OpCompositeConstruct %v3float %851 %852 %853 + %855 = OpLoad %int %l_1 OpStore %l_1 %int_0 - OpStore %l_1 %879 - OpBranch %791 - %791 = OpLabel - %881 = OpLoad %int %509 - OpStore %509 %int_0 - OpStore %509 %881 - OpBranch %518 - %518 = OpLabel - %884 = OpLoad %int %l_1 + OpStore %l_1 %855 + OpBranch %769 + %769 = OpLabel + %856 = OpAccessChain %_ptr_Function_int %stack %479 + %857 = OpLoad %int %856 + %858 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %858 %int_0 + %859 = OpAccessChain %_ptr_Function_int %stack %479 + OpStore %859 %857 + OpBranch %504 + %504 = OpLabel + %860 = OpLoad %int %l_1 OpStore %l_1 %int_0 - OpStore %l_1 %884 - %885 = OpCompositeExtract %float %499 2 - %886 = OpCompositeExtract %float %506 0 - %887 = OpCompositeConstruct %v2float %885 %886 - %888 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %888 - OpBranch %516 - %517 = OpLabel - %889 = OpLoad %int %h_1 + OpStore %l_1 %860 + %861 = OpCompositeExtract %float %487 2 + %862 = OpCompositeExtract %float %494 0 + %863 = OpCompositeConstruct %v2float %861 %862 + %864 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %864 + OpBranch %502 + %503 = OpLabel + %865 = OpLoad %int %h_1 OpStore %h_1 %int_0 - OpStore %h_1 %889 + OpStore %h_1 %865 OpReturn OpFunctionEnd - %main = OpFunction %void None %426 - %891 = OpLabel - %color = OpVariable %_ptr_Function_v3float Function %174 + %main = OpFunction %void None %416 + %867 = OpLabel + %color = OpVariable %_ptr_Function_v3float Function %168 %i_2 = OpVariable %_ptr_Function_int Function %28 - %uv = OpVariable %_ptr_Function_v2float Function %171 - %895 = OpLoad %v2float %uv - OpStore %uv %897 - OpStore %uv %895 + %uv = OpVariable %_ptr_Function_v2float Function %165 + %871 = OpLoad %v2float %uv + OpStore %uv %873 + OpStore %uv %871 OpStore %i_2 %int_0 - %898 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %898 - OpSelectionMerge %900 None - OpBranchConditional %true %901 %900 - %901 = OpLabel - %902 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %902 - %903 = OpCompositeExtract %float %35 0 - %904 = OpCompositeExtract %float %35 0 + %874 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %874 + OpSelectionMerge %876 None + OpBranchConditional %true %877 %876 + %877 = OpLabel + %878 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %878 + %879 = OpCompositeExtract %float %35 0 + %880 = OpCompositeExtract %float %35 0 + %881 = OpCompositeConstruct %v2float %879 %880 + %882 = OpLoad %int %i_2 + %883 = OpLoad %v2float %uv + OpStore %uv %873 + OpStore %uv %883 + %884 = OpLoad %v3float %color + OpStore %color %885 + OpStore %color %884 + %886 = OpCompositeExtract %float %881 1 + %887 = OpCompositeExtract %float %881 1 + %888 = OpCompositeConstruct %v2float %886 %887 + %889 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %889 + OpBranch %876 + %876 = OpLabel + %890 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %890 + %891 = OpCompositeExtract %float %873 0 + %892 = OpCompositeExtract %float %873 0 + %893 = OpCompositeConstruct %v2float %891 %892 + %894 = OpLoad %int %i_2 + OpStore %i_2 %int_0 + OpStore %i_2 %894 + %895 = OpFunctionCall %void %quicksort_ + %896 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %896 + %897 = OpLoad %v4float %gl_FragCoord + %898 = OpLoad %v2float %uv + OpStore %uv %873 + OpStore %uv %898 + %899 = OpCompositeExtract %float %873 1 + %900 = OpCompositeExtract %float %873 1 + %901 = OpCompositeConstruct %v2float %899 %900 + %902 = OpLoad %v2float %uv + OpStore %uv %873 + OpStore %uv %902 + %903 = OpCompositeExtract %float %897 0 + %904 = OpCompositeExtract %float %897 1 %905 = OpCompositeConstruct %v2float %903 %904 - %906 = OpLoad %int %i_2 - %907 = OpLoad %v2float %uv - OpStore %uv %897 - OpStore %uv %907 - %908 = OpLoad %v3float %color - OpStore %color %909 - OpStore %color %908 - %910 = OpCompositeExtract %float %905 1 - %911 = OpCompositeExtract %float %905 1 - %912 = OpCompositeConstruct %v2float %910 %911 - %913 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %913 - OpBranch %900 - %900 = OpLabel - %914 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %914 - %915 = OpCompositeExtract %float %897 0 - %916 = OpCompositeExtract %float %897 0 - %917 = OpCompositeConstruct %v2float %915 %916 - %918 = OpLoad %int %i_2 - OpStore %i_2 %int_0 - OpStore %i_2 %918 - %919 = OpFunctionCall %void %quicksort_ - %920 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %920 - %921 = OpLoad %v4float %gl_FragCoord - %922 = OpLoad %v2float %uv - OpStore %uv %897 - OpStore %uv %922 - %923 = OpCompositeExtract %float %897 1 - %924 = OpCompositeExtract %float %897 1 + %906 = OpCompositeExtract %float %905 1 + %907 = OpCompositeExtract %float %893 1 + %908 = OpCompositeExtract %float %893 1 + %909 = OpCompositeConstruct %v3float %906 %907 %908 + %910 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %910 + %911 = OpLoad %v2float %uv + OpStore %uv %873 + OpStore %uv %911 + %913 = OpAccessChain %_ptr_Uniform_v2float %x_188 %uint_0 + %914 = OpLoad %v2float %913 + %915 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %915 + %916 = OpCompositeExtract %float %897 1 + %917 = OpCompositeExtract %float %35 2 + %918 = OpCompositeExtract %float %897 3 + %919 = OpCompositeConstruct %v3float %916 %917 %918 + %920 = OpLoad %v3float %color + OpStore %color %885 + OpStore %color %920 + %921 = OpFDiv %v2float %905 %914 + %922 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %922 + %923 = OpCompositeExtract %float %901 0 + %924 = OpCompositeExtract %float %905 1 %925 = OpCompositeConstruct %v2float %923 %924 - %926 = OpLoad %v2float %uv - OpStore %uv %897 - OpStore %uv %926 - %927 = OpCompositeExtract %float %921 0 - %928 = OpCompositeExtract %float %921 1 - %929 = OpCompositeConstruct %v2float %927 %928 - %930 = OpCompositeExtract %float %929 1 - %931 = OpCompositeExtract %float %917 1 - %932 = OpCompositeExtract %float %917 1 - %933 = OpCompositeConstruct %v3float %930 %931 %932 - %934 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %934 - %935 = OpLoad %v2float %uv - OpStore %uv %897 - OpStore %uv %935 - %937 = OpAccessChain %_ptr_Uniform_v2float %x_188 %uint_0 - %938 = OpLoad %v2float %937 - %939 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %939 - %940 = OpCompositeExtract %float %921 1 - %941 = OpCompositeExtract %float %35 2 - %942 = OpCompositeExtract %float %921 3 - %943 = OpCompositeConstruct %v3float %940 %941 %942 - %944 = OpLoad %v3float %color - OpStore %color %909 - OpStore %color %944 - %945 = OpFDiv %v2float %929 %938 - %946 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %946 - %947 = OpCompositeExtract %float %925 0 - %948 = OpCompositeExtract %float %929 1 - %949 = OpCompositeConstruct %v2float %947 %948 - %950 = OpLoad %v3float %color - OpStore %color %909 - %951 = OpLoad %v3float %color - OpStore %color %909 - OpStore %color %951 - OpStore %color %950 - OpStore %uv %945 + %926 = OpLoad %v3float %color + OpStore %color %885 + %927 = OpLoad %v3float %color + OpStore %color %885 + OpStore %color %927 + OpStore %color %926 + OpStore %uv %921 OpStore %color %35 - %952 = OpLoad %v3float %color - OpStore %color %909 - OpStore %color %952 - %953 = OpCompositeExtract %float %929 0 - %954 = OpCompositeExtract %float %929 1 - %955 = OpCompositeExtract %float %917 1 - %956 = OpCompositeConstruct %v3float %953 %954 %955 - %957 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %957 - %959 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 - %961 = OpLoad %int %959 - OpStore %959 %int_0 - OpStore %959 %961 - %965 = OpLoad %int %959 - %966 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %966 - %968 = OpAccessChain %_ptr_Function_float %color %uint_0 - %970 = OpLoad %int %959 - OpStore %959 %int_0 - OpStore %959 %970 - %974 = OpLoad %float %968 - %976 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %976 - %979 = OpCompositeExtract %float %35 2 - %980 = OpCompositeExtract %float %35 1 - %981 = OpCompositeConstruct %v2float %979 %980 + %928 = OpLoad %v3float %color + OpStore %color %885 + OpStore %color %928 + %929 = OpCompositeExtract %float %905 0 + %930 = OpCompositeExtract %float %905 1 + %931 = OpCompositeExtract %float %893 1 + %932 = OpCompositeConstruct %v3float %929 %930 %931 + %933 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %933 + %934 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + %935 = OpLoad %int %934 + %936 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %936 %int_0 + %937 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %937 %935 + %938 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + %939 = OpLoad %int %938 + %940 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %940 + %941 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + %942 = OpLoad %int %941 + %943 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %943 %int_0 + %944 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %944 %942 + %945 = OpAccessChain %_ptr_Function_float %color %uint_0 + %946 = OpLoad %float %945 + %947 = OpAccessChain %_ptr_Function_float %color %uint_0 + %948 = OpLoad %float %947 + %949 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %949 %float_0 + %950 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %950 %948 + %951 = OpCompositeExtract %float %35 2 + %952 = OpCompositeExtract %float %35 1 + %953 = OpCompositeConstruct %v2float %951 %952 + %954 = OpLoad %int %i_2 + OpStore %i_2 %int_0 + OpStore %i_2 %954 + %955 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %955 + %956 = OpCompositeExtract %float %932 0 + %957 = OpCompositeExtract %float %925 0 + %958 = OpCompositeExtract %float %925 1 + %959 = OpCompositeConstruct %v3float %956 %957 %958 + %960 = OpAccessChain %_ptr_Function_float %color %uint_0 + %961 = OpConvertSToF %float %939 + %962 = OpFAdd %float %946 %961 + OpStore %960 %962 + %963 = OpLoad %v2float %uv + OpStore %uv %873 + OpStore %uv %963 + %964 = OpLoad %v2float %uv + OpStore %uv %873 + OpStore %uv %964 + %965 = OpCompositeExtract %float %897 1 + %966 = OpCompositeExtract %float %897 1 + %967 = OpCompositeConstruct %v2float %965 %966 + %968 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %969 = OpLoad %float %968 + %970 = OpCompositeExtract %float %921 1 + %971 = OpCompositeExtract %float %921 0 + %972 = OpCompositeConstruct %v2float %970 %971 + %973 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %974 = OpLoad %float %973 + %975 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %975 %float_0 + %976 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %976 %974 + %977 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %977 + %979 = OpFOrdGreaterThan %bool %969 %float_0_25 + OpSelectionMerge %980 None + OpBranchConditional %979 %981 %980 + %981 = OpLabel %982 = OpLoad %int %i_2 OpStore %i_2 %int_0 OpStore %i_2 %982 - %983 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %983 - %985 = OpAccessChain %_ptr_Function_float %color %uint_0 - %986 = OpCompositeExtract %float %956 0 - %987 = OpCompositeExtract %float %949 0 - %988 = OpCompositeExtract %float %949 1 - %989 = OpCompositeConstruct %v3float %986 %987 %988 - %991 = OpConvertSToF %float %965 - %992 = OpFAdd %float %974 %991 - OpStore %985 %992 - %993 = OpLoad %v2float %uv - OpStore %uv %897 - OpStore %uv %993 - %995 = OpAccessChain %_ptr_Function_float %uv %uint_0 - %996 = OpLoad %v2float %uv - OpStore %uv %897 - OpStore %uv %996 - %997 = OpCompositeExtract %float %921 1 - %998 = OpCompositeExtract %float %921 1 - %999 = OpCompositeConstruct %v2float %997 %998 - %1001 = OpLoad %float %995 - %1002 = OpCompositeExtract %float %945 1 - %1003 = OpCompositeExtract %float %945 0 - %1004 = OpCompositeConstruct %v2float %1002 %1003 - %1006 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1006 - %1009 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %1009 - %1011 = OpFOrdGreaterThan %bool %1001 %float_0_25 - OpSelectionMerge %1012 None - OpBranchConditional %1011 %1013 %1012 - %1013 = OpLabel - %1014 = OpLoad %int %i_2 + %983 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + %984 = OpLoad %int %983 + %985 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %985 %int_0 + %986 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %986 %984 + %987 = OpCompositeExtract %float %873 1 + %988 = OpCompositeExtract %float %909 1 + %989 = OpCompositeExtract %float %909 1 + %990 = OpCompositeConstruct %v3float %987 %988 %989 + %991 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %992 = OpLoad %float %991 + %993 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %993 %float_0 + %994 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %994 %992 + %995 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_1 + %996 = OpLoad %int %995 + %997 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %997 + %998 = OpCompositeExtract %float %967 0 + %999 = OpCompositeExtract %float %967 0 + %1000 = OpCompositeConstruct %v2float %998 %999 + %1001 = OpLoad %v2float %uv + OpStore %uv %873 + OpStore %uv %1001 + %1002 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %1002 + %1003 = OpCompositeExtract %float %35 2 + %1004 = OpCompositeExtract %float %873 1 + %1005 = OpCompositeConstruct %v2float %1003 %1004 + %1006 = OpLoad %int %i_2 OpStore %i_2 %int_0 - OpStore %i_2 %1014 - %1016 = OpLoad %int %959 - OpStore %959 %int_0 - OpStore %959 %1016 - %1019 = OpCompositeExtract %float %897 1 - %1020 = OpCompositeExtract %float %933 1 - %1021 = OpCompositeExtract %float %933 1 - %1022 = OpCompositeConstruct %v3float %1019 %1020 %1021 - %1024 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1024 - %1027 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_1 - %1028 = OpLoad %int %1027 - %1029 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %1029 - %1030 = OpCompositeExtract %float %999 0 - %1031 = OpCompositeExtract %float %999 0 - %1032 = OpCompositeConstruct %v2float %1030 %1031 - %1033 = OpLoad %v2float %uv - OpStore %uv %897 - OpStore %uv %1033 - %1035 = OpAccessChain %_ptr_Function_float %color %int_0 - %1036 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %1036 - %1037 = OpCompositeExtract %float %35 2 - %1038 = OpCompositeExtract %float %897 1 - %1039 = OpCompositeConstruct %v2float %1037 %1038 - %1040 = OpLoad %int %i_2 - OpStore %i_2 %int_0 - OpStore %i_2 %1040 - %1042 = OpLoad %float %1035 - %1044 = OpLoad %float %1035 - OpStore %1035 %float_0 - OpStore %1035 %1044 - %1047 = OpLoad %v3float %color - OpStore %color %909 - OpStore %color %1047 - %1048 = OpLoad %v3float %color - OpStore %color %909 - OpStore %color %1048 - %1049 = OpCompositeExtract %float %999 1 - %1050 = OpCompositeExtract %float %999 1 - %1051 = OpCompositeExtract %float %925 1 - %1052 = OpCompositeConstruct %v3float %1049 %1050 %1051 - %1054 = OpLoad %float %1035 - OpStore %1035 %float_0 - OpStore %1035 %1054 - %1057 = OpAccessChain %_ptr_Function_float %color %uint_0 - %1058 = OpConvertSToF %float %1028 - %1059 = OpFAdd %float %1058 %1042 - OpStore %1057 %1059 - %1061 = OpLoad %int %959 - OpStore %959 %int_0 - OpStore %959 %1061 - OpBranch %1012 - %1012 = OpLabel - %1065 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1065 - %1069 = OpAccessChain %_ptr_Function_float %uv %uint_0 - %1071 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1071 - %1075 = OpLoad %float %1069 - %1077 = OpLoad %float %1069 - OpStore %1069 %float_0 - OpStore %1069 %1077 - %1080 = OpCompositeExtract %float %989 2 - %1081 = OpCompositeExtract %float %989 1 - %1082 = OpCompositeExtract %float %989 1 - %1083 = OpCompositeConstruct %v3float %1080 %1081 %1082 - %1084 = OpLoad %v2float %uv - OpStore %uv %897 - OpStore %uv %1084 - %1086 = OpLoad %float %1069 - OpStore %1069 %float_0 - OpStore %1069 %1086 - %1089 = OpCompositeExtract %float %897 1 - %1090 = OpCompositeExtract %float %897 1 - %1091 = OpCompositeConstruct %v2float %1089 %1090 - %1093 = OpLoad %float %1069 - OpStore %1069 %float_0 - OpStore %1069 %1093 - %1097 = OpFOrdGreaterThan %bool %1075 %float_0_5 - OpSelectionMerge %1098 None - OpBranchConditional %1097 %1099 %1098 - %1099 = OpLabel - %1101 = OpLoad %float %1069 - OpStore %1069 %float_0 - OpStore %1069 %1101 - %1104 = OpCompositeExtract %float %917 0 - %1105 = OpCompositeExtract %float %917 0 - %1106 = OpCompositeConstruct %v2float %1104 %1105 - %1108 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %1108 + OpStore %i_2 %1006 + %1007 = OpAccessChain %_ptr_Function_float %color %int_0 + %1008 = OpLoad %float %1007 + %1009 = OpAccessChain %_ptr_Function_float %color %int_0 + %1010 = OpLoad %float %1009 + %1011 = OpAccessChain %_ptr_Function_float %color %int_0 + OpStore %1011 %float_0 + %1012 = OpAccessChain %_ptr_Function_float %color %int_0 + OpStore %1012 %1010 + %1013 = OpLoad %v3float %color + OpStore %color %885 + OpStore %color %1013 + %1014 = OpLoad %v3float %color + OpStore %color %885 + OpStore %color %1014 + %1015 = OpCompositeExtract %float %967 1 + %1016 = OpCompositeExtract %float %967 1 + %1017 = OpCompositeExtract %float %901 1 + %1018 = OpCompositeConstruct %v3float %1015 %1016 %1017 + %1019 = OpAccessChain %_ptr_Function_float %color %int_0 + %1020 = OpLoad %float %1019 + %1021 = OpAccessChain %_ptr_Function_float %color %int_0 + OpStore %1021 %float_0 + %1022 = OpAccessChain %_ptr_Function_float %color %int_0 + OpStore %1022 %1020 + %1023 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1024 = OpConvertSToF %float %996 + %1025 = OpFAdd %float %1024 %1008 + OpStore %1023 %1025 + %1026 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + %1027 = OpLoad %int %1026 + %1028 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %1028 %int_0 + %1029 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %1029 %1027 + OpBranch %980 + %980 = OpLabel + %1030 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1031 = OpLoad %float %1030 + %1032 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1032 %float_0 + %1033 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1033 %1031 + %1034 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1035 = OpLoad %float %1034 + %1036 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1036 %float_0 + %1037 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1037 %1035 + %1038 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1039 = OpLoad %float %1038 + %1040 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1041 = OpLoad %float %1040 + %1042 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1042 %float_0 + %1043 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1043 %1041 + %1044 = OpCompositeExtract %float %959 2 + %1045 = OpCompositeExtract %float %959 1 + %1046 = OpCompositeExtract %float %959 1 + %1047 = OpCompositeConstruct %v3float %1044 %1045 %1046 + %1048 = OpLoad %v2float %uv + OpStore %uv %873 + OpStore %uv %1048 + %1049 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1050 = OpLoad %float %1049 + %1051 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1051 %float_0 + %1052 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1052 %1050 + %1053 = OpCompositeExtract %float %873 1 + %1054 = OpCompositeExtract %float %873 1 + %1055 = OpCompositeConstruct %v2float %1053 %1054 + %1056 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1057 = OpLoad %float %1056 + %1058 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1058 %float_0 + %1059 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1059 %1057 + %1061 = OpFOrdGreaterThan %bool %1039 %float_0_5 + OpSelectionMerge %1062 None + OpBranchConditional %1061 %1063 %1062 + %1063 = OpLabel + %1064 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1065 = OpLoad %float %1064 + %1066 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1066 %float_0 + %1067 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1067 %1065 + %1068 = OpCompositeExtract %float %893 0 + %1069 = OpCompositeExtract %float %893 0 + %1070 = OpCompositeConstruct %v2float %1068 %1069 + %1071 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1072 = OpLoad %float %1071 + %1073 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1073 %float_0 + %1074 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1074 %1072 + %1075 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1076 = OpLoad %float %1075 + %1077 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1077 %float_0 + %1078 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1078 %1076 + %1079 = OpCompositeExtract %float %959 0 + %1080 = OpCompositeExtract %float %959 2 + %1081 = OpCompositeExtract %float %1055 1 + %1082 = OpCompositeConstruct %v3float %1079 %1080 %1081 + %1083 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1084 = OpLoad %float %1083 + %1085 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1085 %float_0 + %1086 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1086 %1084 + %1088 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2 + %1089 = OpLoad %int %1088 + %1090 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1091 = OpLoad %float %1090 + %1092 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1092 %float_0 + %1093 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1093 %1091 + %1094 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1095 = OpLoad %float %1094 + %1096 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1096 %float_0 + %1097 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1097 %1095 + %1098 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2 + %1099 = OpLoad %int %1098 + %1100 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2 + OpStore %1100 %int_0 + %1101 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2 + OpStore %1101 %1099 + %1102 = OpCompositeExtract %float %925 1 + %1103 = OpCompositeExtract %float %914 0 + %1104 = OpCompositeConstruct %v2float %1102 %1103 + %1105 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1106 = OpLoad %float %1105 + %1107 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1107 %float_0 + %1108 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1108 %1106 + %1109 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1110 = OpLoad %float %1109 + %1111 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2 + %1112 = OpLoad %int %1111 %1113 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2 - %1115 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %1115 - %1118 = OpCompositeExtract %float %989 0 - %1119 = OpCompositeExtract %float %989 2 - %1120 = OpCompositeExtract %float %1091 1 - %1121 = OpCompositeConstruct %v3float %1118 %1119 %1120 - %1123 = OpLoad %float %985 - OpStore %985 %float_0 - OpStore %985 %1123 - %1127 = OpLoad %int %1113 - %1129 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1129 - %1133 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %1133 - %1137 = OpAccessChain %_ptr_Function_float %color %uint_1 - %1139 = OpLoad %int %1113 OpStore %1113 %int_0 - OpStore %1113 %1139 - %1142 = OpCompositeExtract %float %949 1 - %1143 = OpCompositeExtract %float %938 0 - %1144 = OpCompositeConstruct %v2float %1142 %1143 - %1146 = OpLoad %float %1137 - OpStore %1137 %float_0 - OpStore %1137 %1146 - %1150 = OpLoad %float %1137 - %1152 = OpLoad %int %1113 - OpStore %1113 %int_0 - OpStore %1113 %1152 - %1155 = OpCompositeExtract %float %1121 0 - %1156 = OpCompositeExtract %float %929 0 - %1157 = OpCompositeConstruct %v2float %1155 %1156 - %1159 = OpLoad %float %985 - OpStore %985 %float_0 - OpStore %985 %1159 - %1162 = OpLoad %int %i_2 + %1114 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_2 + OpStore %1114 %1112 + %1115 = OpCompositeExtract %float %1082 0 + %1116 = OpCompositeExtract %float %905 0 + %1117 = OpCompositeConstruct %v2float %1115 %1116 + %1118 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1119 = OpLoad %float %1118 + %1120 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1120 %float_0 + %1121 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1121 %1119 + %1122 = OpLoad %int %i_2 OpStore %i_2 %int_0 - OpStore %i_2 %1162 - %1163 = OpCompositeExtract %float %1004 1 - %1164 = OpCompositeExtract %float %897 1 - %1165 = OpCompositeConstruct %v2float %1163 %1164 - %1166 = OpLoad %int %i_2 + OpStore %i_2 %1122 + %1123 = OpCompositeExtract %float %972 1 + %1124 = OpCompositeExtract %float %873 1 + %1125 = OpCompositeConstruct %v2float %1123 %1124 + %1126 = OpLoad %int %i_2 OpStore %i_2 %int_0 - OpStore %i_2 %1166 - %1167 = OpAccessChain %_ptr_Function_float %color %uint_1 - %1168 = OpConvertSToF %float %1127 - %1169 = OpFAdd %float %1168 %1150 - OpStore %1167 %1169 - %1171 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1171 - OpBranch %1098 - %1098 = OpLabel - %1175 = OpAccessChain %_ptr_Function_float %uv %int_0 - %1176 = OpLoad %int %i_2 + OpStore %i_2 %1126 + %1127 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1128 = OpConvertSToF %float %1089 + %1129 = OpFAdd %float %1128 %1110 + OpStore %1127 %1129 + %1130 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1131 = OpLoad %float %1130 + %1132 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1132 %float_0 + %1133 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1133 %1131 + OpBranch %1062 + %1062 = OpLabel + %1134 = OpLoad %int %i_2 OpStore %i_2 %int_0 - OpStore %i_2 %1176 - %1177 = OpCompositeExtract %float %938 0 - %1178 = OpCompositeExtract %float %938 0 - %1179 = OpCompositeConstruct %v2float %1177 %1178 - %1181 = OpLoad %float %1069 - OpStore %1069 %float_0 - OpStore %1069 %1181 - %1185 = OpLoad %float %1175 - %1186 = OpLoad %v3float %color - OpStore %color %909 - OpStore %color %1186 - %1188 = OpLoad %float %985 - OpStore %985 %float_0 - OpStore %985 %1188 - %1192 = OpFOrdGreaterThan %bool %1185 %float_0_75 - OpSelectionMerge %1193 None - OpBranchConditional %1192 %1194 %1193 - %1194 = OpLabel - %1196 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %1196 - %1200 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_3 - %1201 = OpLoad %int %1200 - %1203 = OpLoad %float %985 - OpStore %985 %float_0 - OpStore %985 %1203 - %1206 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %1206 - %1207 = OpCompositeExtract %float %1179 0 - %1208 = OpCompositeExtract %float %1179 0 - %1209 = OpCompositeExtract %float %1179 0 - %1210 = OpCompositeConstruct %v3float %1207 %1208 %1209 - %1212 = OpLoad %float %1175 + OpStore %i_2 %1134 + %1135 = OpCompositeExtract %float %914 0 + %1136 = OpCompositeExtract %float %914 0 + %1137 = OpCompositeConstruct %v2float %1135 %1136 + %1138 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1139 = OpLoad %float %1138 + %1140 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1140 %float_0 + %1141 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1141 %1139 + %1142 = OpAccessChain %_ptr_Function_float %uv %int_0 + %1143 = OpLoad %float %1142 + %1144 = OpLoad %v3float %color + OpStore %color %885 + OpStore %color %1144 + %1145 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1146 = OpLoad %float %1145 + %1147 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1147 %float_0 + %1148 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1148 %1146 + %1150 = OpFOrdGreaterThan %bool %1143 %float_0_75 + OpSelectionMerge %1151 None + OpBranchConditional %1150 %1152 %1151 + %1152 = OpLabel + %1153 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1154 = OpLoad %float %1153 + %1155 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1155 %float_0 + %1156 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1156 %1154 + %1158 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_3 + %1159 = OpLoad %int %1158 + %1160 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1161 = OpLoad %float %1160 + %1162 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1162 %float_0 + %1163 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1163 %1161 + %1164 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %1164 + %1165 = OpCompositeExtract %float %1137 0 + %1166 = OpCompositeExtract %float %1137 0 + %1167 = OpCompositeExtract %float %1137 0 + %1168 = OpCompositeConstruct %v3float %1165 %1166 %1167 + %1169 = OpAccessChain %_ptr_Function_float %uv %int_0 + %1170 = OpLoad %float %1169 + %1171 = OpAccessChain %_ptr_Function_float %uv %int_0 + OpStore %1171 %float_0 + %1172 = OpAccessChain %_ptr_Function_float %uv %int_0 + OpStore %1172 %1170 + %1173 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1174 = OpLoad %float %1173 + %1175 = OpAccessChain %_ptr_Function_float %uv %uint_0 OpStore %1175 %float_0 - OpStore %1175 %1212 - %1216 = OpAccessChain %_ptr_Function_float %color %uint_2 - %1218 = OpLoad %float %1069 - OpStore %1069 %float_0 - OpStore %1069 %1218 - %1222 = OpLoad %float %1216 - %1223 = OpLoad %v3float %color - OpStore %color %909 - OpStore %color %1223 - %1224 = OpCompositeExtract %float %1179 0 - %1225 = OpCompositeExtract %float %938 1 - %1226 = OpCompositeExtract %float %1179 1 - %1227 = OpCompositeConstruct %v3float %1224 %1225 %1226 - %1229 = OpLoad %float %1216 - OpStore %1216 %float_0 - OpStore %1216 %1229 - %1233 = OpLoad %int %959 - OpStore %959 %int_0 - OpStore %959 %1233 - %1236 = OpCompositeExtract %float %897 0 - %1237 = OpCompositeExtract %float %897 1 - %1238 = OpCompositeConstruct %v2float %1236 %1237 - %1240 = OpLoad %float %1216 - OpStore %1216 %float_0 - OpStore %1216 %1240 - %1243 = OpAccessChain %_ptr_Function_float %color %uint_2 - %1244 = OpConvertSToF %float %1201 - %1245 = OpFAdd %float %1222 %1244 - OpStore %1243 %1245 - %1246 = OpLoad %v2float %uv - OpStore %uv %897 - OpStore %uv %1246 - %1247 = OpCompositeExtract %float %1238 1 - %1248 = OpCompositeExtract %float %1238 1 - %1249 = OpCompositeConstruct %v2float %1247 %1248 - OpBranch %1193 - %1193 = OpLabel - %1251 = OpLoad %float %1175 - OpStore %1175 %float_0 - OpStore %1175 %1251 - %1254 = OpCompositeExtract %float %999 0 - %1255 = OpCompositeExtract %float %999 1 - %1256 = OpCompositeExtract %float %999 1 - %1257 = OpCompositeConstruct %v3float %1254 %1255 %1256 - %1260 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 - %1262 = OpLoad %int %1260 - %1264 = OpLoad %float %1175 - OpStore %1175 %float_0 - OpStore %1175 %1264 - %1267 = OpLoad %v3float %color - OpStore %color %909 - OpStore %color %1267 - %1268 = OpCompositeExtract %float %917 1 - %1269 = OpCompositeExtract %float %989 0 - %1270 = OpCompositeExtract %float %989 0 - %1271 = OpCompositeConstruct %v3float %1268 %1269 %1270 - %1273 = OpLoad %int %1260 - OpStore %1260 %int_0 - OpStore %1260 %1273 - %1277 = OpAccessChain %_ptr_Function_float %color %uint_1 - %1278 = OpCompositeExtract %float %938 0 - %1279 = OpCompositeExtract %float %921 2 - %1280 = OpCompositeConstruct %v2float %1278 %1279 - %1282 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1282 - %1286 = OpLoad %float %1277 - %1288 = OpLoad %float %1277 + %1176 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1176 %1174 + %1177 = OpAccessChain %_ptr_Function_float %color %uint_2 + %1178 = OpLoad %float %1177 + %1179 = OpLoad %v3float %color + OpStore %color %885 + OpStore %color %1179 + %1180 = OpCompositeExtract %float %1137 0 + %1181 = OpCompositeExtract %float %914 1 + %1182 = OpCompositeExtract %float %1137 1 + %1183 = OpCompositeConstruct %v3float %1180 %1181 %1182 + %1184 = OpAccessChain %_ptr_Function_float %color %uint_2 + %1185 = OpLoad %float %1184 + %1186 = OpAccessChain %_ptr_Function_float %color %uint_2 + OpStore %1186 %float_0 + %1187 = OpAccessChain %_ptr_Function_float %color %uint_2 + OpStore %1187 %1185 + %1188 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + %1189 = OpLoad %int %1188 + %1190 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %1190 %int_0 + %1191 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %1191 %1189 + %1192 = OpCompositeExtract %float %873 0 + %1193 = OpCompositeExtract %float %873 1 + %1194 = OpCompositeConstruct %v2float %1192 %1193 + %1195 = OpAccessChain %_ptr_Function_float %color %uint_2 + %1196 = OpLoad %float %1195 + %1197 = OpAccessChain %_ptr_Function_float %color %uint_2 + OpStore %1197 %float_0 + %1198 = OpAccessChain %_ptr_Function_float %color %uint_2 + OpStore %1198 %1196 + %1199 = OpAccessChain %_ptr_Function_float %color %uint_2 + %1200 = OpConvertSToF %float %1159 + %1201 = OpFAdd %float %1178 %1200 + OpStore %1199 %1201 + %1202 = OpLoad %v2float %uv + OpStore %uv %873 + OpStore %uv %1202 + %1203 = OpCompositeExtract %float %1194 1 + %1204 = OpCompositeExtract %float %1194 1 + %1205 = OpCompositeConstruct %v2float %1203 %1204 + OpBranch %1151 + %1151 = OpLabel + %1206 = OpAccessChain %_ptr_Function_float %uv %int_0 + %1207 = OpLoad %float %1206 + %1208 = OpAccessChain %_ptr_Function_float %uv %int_0 + OpStore %1208 %float_0 + %1209 = OpAccessChain %_ptr_Function_float %uv %int_0 + OpStore %1209 %1207 + %1210 = OpCompositeExtract %float %967 0 + %1211 = OpCompositeExtract %float %967 1 + %1212 = OpCompositeExtract %float %967 1 + %1213 = OpCompositeConstruct %v3float %1210 %1211 %1212 + %1215 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + %1216 = OpLoad %int %1215 + %1217 = OpAccessChain %_ptr_Function_float %uv %int_0 + %1218 = OpLoad %float %1217 + %1219 = OpAccessChain %_ptr_Function_float %uv %int_0 + OpStore %1219 %float_0 + %1220 = OpAccessChain %_ptr_Function_float %uv %int_0 + OpStore %1220 %1218 + %1221 = OpLoad %v3float %color + OpStore %color %885 + OpStore %color %1221 + %1222 = OpCompositeExtract %float %893 1 + %1223 = OpCompositeExtract %float %959 0 + %1224 = OpCompositeExtract %float %959 0 + %1225 = OpCompositeConstruct %v3float %1222 %1223 %1224 + %1226 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + %1227 = OpLoad %int %1226 + %1228 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + OpStore %1228 %int_0 + %1229 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + OpStore %1229 %1227 + %1230 = OpCompositeExtract %float %914 0 + %1231 = OpCompositeExtract %float %897 2 + %1232 = OpCompositeConstruct %v2float %1230 %1231 + %1233 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1234 = OpLoad %float %1233 + %1235 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1235 %float_0 + %1236 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1236 %1234 + %1237 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1238 = OpLoad %float %1237 + %1239 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1240 = OpLoad %float %1239 + %1241 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1241 %float_0 + %1242 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1242 %1240 + %1243 = OpCompositeExtract %float %1137 0 + %1244 = OpCompositeExtract %float %925 0 + %1245 = OpCompositeConstruct %v2float %1243 %1244 + %1246 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1247 = OpLoad %float %1246 + %1248 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1248 %float_0 + %1249 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1249 %1247 + %1250 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1251 = OpLoad %float %1250 + %1252 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1252 %float_0 + %1253 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1253 %1251 + %1254 = OpCompositeExtract %float %932 2 + %1255 = OpCompositeExtract %float %1047 1 + %1256 = OpCompositeConstruct %v2float %1254 %1255 + %1257 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1258 = OpConvertSToF %float %1216 + %1259 = OpFAdd %float %1238 %1258 + OpStore %1257 %1259 + %1260 = OpCompositeExtract %float %873 0 + %1261 = OpCompositeExtract %float %1213 0 + %1262 = OpCompositeExtract %float %873 1 + %1263 = OpCompositeConstruct %v3float %1260 %1261 %1262 + %1264 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1265 = OpLoad %float %1264 + %1266 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1266 %float_0 + %1267 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1267 %1265 + %1268 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1269 = OpLoad %float %1268 + %1270 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1270 %float_0 + %1271 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1271 %1269 + %1272 = OpCompositeExtract %float %1213 0 + %1273 = OpCompositeExtract %float %1213 1 + %1274 = OpCompositeConstruct %v2float %1272 %1273 + %1275 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1276 = OpLoad %float %1275 + %1277 = OpAccessChain %_ptr_Function_float %uv %uint_1 OpStore %1277 %float_0 - OpStore %1277 %1288 - %1291 = OpCompositeExtract %float %1179 0 - %1292 = OpCompositeExtract %float %949 0 - %1293 = OpCompositeConstruct %v2float %1291 %1292 - %1295 = OpLoad %float %1069 - OpStore %1069 %float_0 - OpStore %1069 %1295 - %1299 = OpAccessChain %_ptr_Function_float %color %uint_1 - %1301 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %1301 - %1304 = OpCompositeExtract %float %956 2 - %1305 = OpCompositeExtract %float %1083 1 - %1306 = OpCompositeConstruct %v2float %1304 %1305 - %1308 = OpConvertSToF %float %1262 - %1309 = OpFAdd %float %1286 %1308 - OpStore %1299 %1309 - %1310 = OpCompositeExtract %float %897 0 - %1311 = OpCompositeExtract %float %1257 0 - %1312 = OpCompositeExtract %float %897 1 - %1313 = OpCompositeConstruct %v3float %1310 %1311 %1312 - %1315 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1315 - %1319 = OpAccessChain %_ptr_Function_float %uv %uint_1 - %1321 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %1321 - %1324 = OpCompositeExtract %float %1257 0 - %1325 = OpCompositeExtract %float %1257 1 - %1326 = OpCompositeConstruct %v2float %1324 %1325 - %1328 = OpLoad %float %1319 - OpStore %1319 %float_0 - OpStore %1319 %1328 - %1332 = OpLoad %float %1319 + %1278 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1278 %1276 + %1279 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1280 = OpLoad %float %1279 + %1281 = OpLoad %int %i_2 + OpStore %i_2 %int_0 + OpStore %i_2 %1281 + %1282 = OpCompositeExtract %float %873 1 + %1283 = OpCompositeExtract %float %967 1 + %1284 = OpCompositeExtract %float %873 0 + %1285 = OpCompositeConstruct %v3float %1282 %1283 %1284 + %1286 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + %1287 = OpLoad %int %1286 + %1288 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %1288 %int_0 + %1289 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %1289 %1287 + %1290 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1291 = OpLoad %float %1290 + %1292 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1292 %float_0 + %1293 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1293 %1291 + %1294 = OpCompositeExtract %float %893 0 + %1295 = OpCompositeExtract %float %893 0 + %1296 = OpCompositeExtract %float %873 1 + %1297 = OpCompositeConstruct %v3float %1294 %1295 %1296 + %1298 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1299 = OpLoad %float %1298 + %1300 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1300 %float_0 + %1301 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1301 %1299 + %1302 = OpFOrdGreaterThan %bool %1280 %float_0_25 + OpSelectionMerge %1303 None + OpBranchConditional %1302 %1304 %1303 + %1304 = OpLabel + %1305 = OpCompositeExtract %float %901 0 + %1306 = OpCompositeExtract %float %1297 2 + %1307 = OpCompositeConstruct %v2float %1305 %1306 + %1308 = OpLoad %v3float %color + OpStore %color %885 + OpStore %color %1308 + %1310 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_5 + %1311 = OpLoad %int %1310 + %1312 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1313 = OpLoad %float %1312 + %1314 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1314 %float_0 + %1315 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1315 %1313 + %1316 = OpLoad %int %i_2 + OpStore %i_2 %int_0 + OpStore %i_2 %1316 + %1317 = OpLoad %int %i_2 + OpStore %i_2 %int_0 + OpStore %i_2 %1317 + %1318 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1319 = OpLoad %float %1318 + %1320 = OpAccessChain %_ptr_Function_float %uv %int_0 + %1321 = OpLoad %float %1320 + %1322 = OpAccessChain %_ptr_Function_float %uv %int_0 + OpStore %1322 %float_0 + %1323 = OpAccessChain %_ptr_Function_float %uv %int_0 + OpStore %1323 %1321 + %1324 = OpCompositeExtract %float %972 0 + %1325 = OpCompositeExtract %float %1245 1 + %1326 = OpCompositeExtract %float %972 1 + %1327 = OpCompositeConstruct %v3float %1324 %1325 %1326 + %1328 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %1328 + %1329 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1330 = OpLoad %float %1329 + %1331 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1331 %float_0 + %1332 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1332 %1330 %1333 = OpLoad %int %i_2 OpStore %i_2 %int_0 OpStore %i_2 %1333 - %1334 = OpCompositeExtract %float %897 1 - %1335 = OpCompositeExtract %float %999 1 - %1336 = OpCompositeExtract %float %897 0 + %1334 = OpCompositeExtract %float %897 3 + %1335 = OpCompositeExtract %float %897 3 + %1336 = OpCompositeExtract %float %921 0 %1337 = OpCompositeConstruct %v3float %1334 %1335 %1336 - %1339 = OpLoad %int %959 - OpStore %959 %int_0 - OpStore %959 %1339 - %1343 = OpLoad %float %1299 - OpStore %1299 %float_0 - OpStore %1299 %1343 - %1346 = OpCompositeExtract %float %917 0 - %1347 = OpCompositeExtract %float %917 0 - %1348 = OpCompositeExtract %float %897 1 - %1349 = OpCompositeConstruct %v3float %1346 %1347 %1348 - %1351 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1351 - %1354 = OpFOrdGreaterThan %bool %1332 %float_0_25 - OpSelectionMerge %1355 None - OpBranchConditional %1354 %1356 %1355 - %1356 = OpLabel - %1357 = OpCompositeExtract %float %925 0 - %1358 = OpCompositeExtract %float %1349 2 - %1359 = OpCompositeConstruct %v2float %1357 %1358 - %1360 = OpLoad %v3float %color - OpStore %color %909 - OpStore %color %1360 - %1362 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_5 - %1363 = OpLoad %int %1362 - %1365 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %1365 - %1368 = OpLoad %int %i_2 + %1338 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1339 = OpLoad %float %1338 + %1340 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1340 %float_0 + %1341 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1341 %1339 + %1342 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1343 = OpConvertSToF %float %1311 + %1344 = OpFAdd %float %1343 %1319 + OpStore %1342 %1344 + %1345 = OpCompositeExtract %float %967 1 + %1346 = OpCompositeExtract %float %925 0 + %1347 = OpCompositeExtract %float %967 1 + %1348 = OpCompositeConstruct %v3float %1345 %1346 %1347 + %1349 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1350 = OpLoad %float %1349 + %1351 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1351 %float_0 + %1352 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1352 %1350 + OpBranch %1303 + %1303 = OpLabel + %1353 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1354 = OpLoad %float %1353 + %1355 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1355 %float_0 + %1356 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1356 %1354 + %1357 = OpCompositeExtract %float %1137 0 + %1358 = OpCompositeExtract %float %925 1 + %1359 = OpCompositeExtract %float %925 0 + %1360 = OpCompositeConstruct %v3float %1357 %1358 %1359 + %1361 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1362 = OpLoad %float %1361 + %1363 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1363 %float_0 + %1364 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1364 %1362 + %1365 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + %1366 = OpLoad %int %1365 + %1367 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + OpStore %1367 %int_0 + %1368 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + OpStore %1368 %1366 + %1369 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1370 = OpLoad %float %1369 + %1371 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + %1372 = OpLoad %int %1371 + %1373 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %1373 %int_0 + %1374 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %1374 %1372 + %1375 = OpFOrdGreaterThan %bool %1370 %float_0_5 + OpSelectionMerge %1376 None + OpBranchConditional %1375 %1377 %1376 + %1377 = OpLabel + %1378 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1379 = OpLoad %float %1378 + %1380 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1380 %float_0 + %1381 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1381 %1379 + %1382 = OpCompositeExtract %float %1297 1 + %1383 = OpCompositeExtract %float %972 1 + %1384 = OpCompositeConstruct %v2float %1382 %1383 + %1385 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1386 = OpLoad %float %1385 + %1387 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1387 %float_0 + %1388 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1388 %1386 + %1389 = OpCompositeExtract %float %919 2 + %1390 = OpCompositeExtract %float %919 1 + %1391 = OpCompositeConstruct %v2float %1389 %1390 + %1392 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1393 = OpLoad %float %1392 + %1394 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1394 %float_0 + %1395 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1395 %1393 + %1397 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6 + %1398 = OpLoad %int %1397 + %1399 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1400 = OpLoad %float %1399 + %1401 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1401 %float_0 + %1402 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1402 %1400 + %1403 = OpLoad %int %i_2 OpStore %i_2 %int_0 - OpStore %i_2 %1368 - %1369 = OpLoad %int %i_2 - OpStore %i_2 %int_0 - OpStore %i_2 %1369 - %1370 = OpAccessChain %_ptr_Function_float %color %uint_0 - %1371 = OpLoad %float %1370 - %1373 = OpLoad %float %1175 - OpStore %1175 %float_0 - OpStore %1175 %1373 - %1376 = OpCompositeExtract %float %1004 0 - %1377 = OpCompositeExtract %float %1293 1 - %1378 = OpCompositeExtract %float %1004 1 - %1379 = OpCompositeConstruct %v3float %1376 %1377 %1378 - %1380 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %1380 - %1382 = OpLoad %float %1319 - OpStore %1319 %float_0 - OpStore %1319 %1382 - %1385 = OpLoad %int %i_2 - OpStore %i_2 %int_0 - OpStore %i_2 %1385 - %1386 = OpCompositeExtract %float %921 3 - %1387 = OpCompositeExtract %float %921 3 - %1388 = OpCompositeExtract %float %945 0 - %1389 = OpCompositeConstruct %v3float %1386 %1387 %1388 - %1391 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1391 - %1394 = OpAccessChain %_ptr_Function_float %color %uint_0 - %1395 = OpConvertSToF %float %1363 - %1396 = OpFAdd %float %1395 %1371 - OpStore %1394 %1396 - %1397 = OpCompositeExtract %float %999 1 - %1398 = OpCompositeExtract %float %949 0 - %1399 = OpCompositeExtract %float %999 1 - %1400 = OpCompositeConstruct %v3float %1397 %1398 %1399 - %1402 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1402 - OpBranch %1355 - %1355 = OpLabel - %1406 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %1406 - %1409 = OpCompositeExtract %float %1179 0 - %1410 = OpCompositeExtract %float %949 1 - %1411 = OpCompositeExtract %float %949 0 - %1412 = OpCompositeConstruct %v3float %1409 %1410 %1411 - %1414 = OpLoad %float %1319 - OpStore %1319 %float_0 - OpStore %1319 %1414 - %1418 = OpAccessChain %_ptr_Function_float %uv %uint_1 - %1420 = OpLoad %int %1260 - OpStore %1260 %int_0 - OpStore %1260 %1420 - %1424 = OpLoad %float %1418 - %1426 = OpLoad %int %959 - OpStore %959 %int_0 - OpStore %959 %1426 - %1429 = OpFOrdGreaterThan %bool %1424 %float_0_5 - OpSelectionMerge %1430 None - OpBranchConditional %1429 %1431 %1430 - %1431 = OpLabel - %1433 = OpLoad %float %1069 - OpStore %1069 %float_0 - OpStore %1069 %1433 - %1436 = OpCompositeExtract %float %1349 1 - %1437 = OpCompositeExtract %float %1004 1 - %1438 = OpCompositeConstruct %v2float %1436 %1437 - %1441 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6 - %1443 = OpLoad %float %1277 - OpStore %1277 %float_0 - OpStore %1277 %1443 - %1446 = OpCompositeExtract %float %943 2 - %1447 = OpCompositeExtract %float %943 1 - %1448 = OpCompositeConstruct %v2float %1446 %1447 - %1450 = OpLoad %float %1418 - OpStore %1418 %float_0 - OpStore %1418 %1450 - %1454 = OpLoad %int %1441 - %1456 = OpLoad %float %1319 - OpStore %1319 %float_0 - OpStore %1319 %1456 - %1459 = OpLoad %int %i_2 - OpStore %i_2 %int_0 - OpStore %i_2 %1459 - %1461 = OpLoad %int %1260 - OpStore %1260 %int_0 - OpStore %1260 %1461 - %1464 = OpCompositeExtract %float %1271 2 - %1465 = OpCompositeExtract %float %1271 1 - %1466 = OpCompositeConstruct %v2float %1464 %1465 + OpStore %i_2 %1403 + %1404 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + %1405 = OpLoad %int %1404 + %1406 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + OpStore %1406 %int_0 + %1407 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + OpStore %1407 %1405 + %1408 = OpCompositeExtract %float %1225 2 + %1409 = OpCompositeExtract %float %1225 1 + %1410 = OpCompositeConstruct %v2float %1408 %1409 + %1411 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1412 = OpLoad %float %1411 + %1413 = OpLoad %v2float %uv + OpStore %uv %873 + OpStore %uv %1413 + %1414 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1415 = OpLoad %float %1414 + %1416 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1416 %float_0 + %1417 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1417 %1415 + %1418 = OpCompositeExtract %float %1245 1 + %1419 = OpCompositeExtract %float %1245 0 + %1420 = OpCompositeConstruct %v2float %1418 %1419 + %1421 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6 + %1422 = OpLoad %int %1421 + %1423 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6 + OpStore %1423 %int_0 + %1424 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6 + OpStore %1424 %1422 + %1425 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6 + %1426 = OpLoad %int %1425 + %1427 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6 + OpStore %1427 %int_0 + %1428 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_6 + OpStore %1428 %1426 + %1429 = OpCompositeExtract %float %1297 2 + %1430 = OpCompositeExtract %float %1297 2 + %1431 = OpCompositeConstruct %v2float %1429 %1430 + %1432 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %1432 + %1433 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1434 = OpConvertSToF %float %1398 + %1435 = OpFAdd %float %1434 %1412 + OpStore %1433 %1435 + %1436 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1437 = OpLoad %float %1436 + %1438 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1438 %float_0 + %1439 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1439 %1437 + %1440 = OpCompositeExtract %float %35 1 + %1441 = OpCompositeExtract %float %967 0 + %1442 = OpCompositeConstruct %v2float %1440 %1441 + %1443 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1444 = OpLoad %float %1443 + %1445 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1445 %float_0 + %1446 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1446 %1444 + OpBranch %1376 + %1376 = OpLabel + %1447 = OpCompositeExtract %float %972 1 + %1448 = OpCompositeExtract %float %972 1 + %1449 = OpCompositeConstruct %v2float %1447 %1448 + %1450 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1451 = OpLoad %float %1450 + %1452 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1452 %float_0 + %1453 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1453 %1451 + %1454 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1455 = OpLoad %float %1454 + %1456 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %1456 + %1457 = OpCompositeExtract %float %1245 0 + %1458 = OpCompositeExtract %float %1245 1 + %1459 = OpCompositeConstruct %v2float %1457 %1458 + %1460 = OpAccessChain %_ptr_Function_float %uv %int_0 + %1461 = OpLoad %float %1460 + %1462 = OpAccessChain %_ptr_Function_float %uv %int_0 + OpStore %1462 %float_0 + %1463 = OpAccessChain %_ptr_Function_float %uv %int_0 + OpStore %1463 %1461 + %1464 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1465 = OpLoad %float %1464 + %1466 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1466 %float_0 %1467 = OpAccessChain %_ptr_Function_float %color %uint_1 - %1468 = OpLoad %float %1467 - %1469 = OpLoad %v2float %uv - OpStore %uv %897 - OpStore %uv %1469 - %1471 = OpLoad %float %985 - OpStore %985 %float_0 - OpStore %985 %1471 - %1474 = OpCompositeExtract %float %1293 1 - %1475 = OpCompositeExtract %float %1293 0 - %1476 = OpCompositeConstruct %v2float %1474 %1475 - %1478 = OpLoad %int %1441 - OpStore %1441 %int_0 - OpStore %1441 %1478 - %1482 = OpLoad %int %1441 - OpStore %1441 %int_0 - OpStore %1441 %1482 - %1485 = OpCompositeExtract %float %1349 2 - %1486 = OpCompositeExtract %float %1349 2 - %1487 = OpCompositeConstruct %v2float %1485 %1486 - %1488 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %1488 - %1489 = OpAccessChain %_ptr_Function_float %color %uint_1 - %1490 = OpConvertSToF %float %1454 - %1491 = OpFAdd %float %1490 %1468 - OpStore %1489 %1491 - %1493 = OpLoad %float %985 - OpStore %985 %float_0 - OpStore %985 %1493 - %1496 = OpCompositeExtract %float %35 1 - %1497 = OpCompositeExtract %float %999 0 - %1498 = OpCompositeConstruct %v2float %1496 %1497 - %1500 = OpLoad %float %1299 - OpStore %1299 %float_0 - OpStore %1299 %1500 - OpBranch %1430 - %1430 = OpLabel - %1503 = OpCompositeExtract %float %1004 1 - %1504 = OpCompositeExtract %float %1004 1 - %1505 = OpCompositeConstruct %v2float %1503 %1504 - %1507 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %1507 - %1511 = OpAccessChain %_ptr_Function_float %uv %uint_1 - %1513 = OpLoad %float %1511 - %1514 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %1514 - %1515 = OpCompositeExtract %float %1293 0 - %1516 = OpCompositeExtract %float %1293 1 - %1517 = OpCompositeConstruct %v2float %1515 %1516 - %1519 = OpLoad %float %1175 - OpStore %1175 %float_0 - OpStore %1175 %1519 - %1523 = OpLoad %float %1299 - OpStore %1299 %float_0 - OpStore %1299 %1523 - %1526 = OpCompositeExtract %float %938 0 - %1527 = OpCompositeExtract %float %938 1 - %1528 = OpCompositeExtract %float %938 1 - %1529 = OpCompositeConstruct %v3float %1526 %1527 %1528 - %1531 = OpLoad %int %1260 - OpStore %1260 %int_0 - OpStore %1260 %1531 - %1534 = OpFOrdGreaterThan %bool %1513 %float_0_75 - OpSelectionMerge %1535 None - OpBranchConditional %1534 %1536 %1535 - %1536 = OpLabel - %1537 = OpLoad %v3float %color - OpStore %color %909 - OpStore %color %1537 - %1539 = OpLoad %float %985 - OpStore %985 %float_0 - OpStore %985 %1539 - %1542 = OpCompositeExtract %float %945 1 - %1543 = OpCompositeExtract %float %945 0 - %1544 = OpCompositeExtract %float %945 1 - %1545 = OpCompositeConstruct %v3float %1542 %1543 %1544 - %1546 = OpLoad %v3float %color - OpStore %color %909 - OpStore %color %1546 - %1548 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_7 - %1549 = OpLoad %int %1548 - %1551 = OpLoad %float %1069 - OpStore %1069 %float_0 - OpStore %1069 %1551 - %1554 = OpCompositeExtract %float %1293 0 - %1555 = OpCompositeExtract %float %1179 1 - %1556 = OpCompositeExtract %float %1179 0 - %1557 = OpCompositeConstruct %v3float %1554 %1555 %1556 - %1559 = OpLoad %float %1299 - OpStore %1299 %float_0 - OpStore %1299 %1559 - %1562 = OpCompositeExtract %float %1313 0 - %1563 = OpCompositeExtract %float %1091 1 - %1564 = OpCompositeConstruct %v2float %1562 %1563 - %1566 = OpLoad %int %959 - OpStore %959 %int_0 - OpStore %959 %1566 - %1570 = OpLoad %float %1299 - OpStore %1299 %float_0 - OpStore %1299 %1570 - %1573 = OpCompositeExtract %float %1326 0 - %1574 = OpCompositeExtract %float %1326 1 - %1575 = OpCompositeExtract %float %1326 0 - %1576 = OpCompositeConstruct %v3float %1573 %1574 %1575 - %1578 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %1578 - %1581 = OpAccessChain %_ptr_Function_float %color %uint_2 - %1582 = OpLoad %float %1581 - %1584 = OpLoad %float %1418 - OpStore %1418 %float_0 - OpStore %1418 %1584 - %1587 = OpCompositeExtract %float %921 0 - %1588 = OpCompositeExtract %float %921 1 - %1589 = OpCompositeConstruct %v2float %1587 %1588 - %1591 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1591 - %1595 = OpLoad %float %1511 - OpStore %1511 %float_0 - OpStore %1511 %1595 + OpStore %1467 %1465 + %1468 = OpCompositeExtract %float %914 0 + %1469 = OpCompositeExtract %float %914 1 + %1470 = OpCompositeExtract %float %914 1 + %1471 = OpCompositeConstruct %v3float %1468 %1469 %1470 + %1472 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + %1473 = OpLoad %int %1472 + %1474 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + OpStore %1474 %int_0 + %1475 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + OpStore %1475 %1473 + %1476 = OpFOrdGreaterThan %bool %1455 %float_0_75 + OpSelectionMerge %1477 None + OpBranchConditional %1476 %1478 %1477 + %1478 = OpLabel + %1479 = OpLoad %v3float %color + OpStore %color %885 + OpStore %color %1479 + %1480 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1481 = OpLoad %float %1480 + %1482 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1482 %float_0 + %1483 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1483 %1481 + %1484 = OpCompositeExtract %float %921 1 + %1485 = OpCompositeExtract %float %921 0 + %1486 = OpCompositeExtract %float %921 1 + %1487 = OpCompositeConstruct %v3float %1484 %1485 %1486 + %1488 = OpLoad %v3float %color + OpStore %color %885 + OpStore %color %1488 + %1490 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_7 + %1491 = OpLoad %int %1490 + %1492 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1493 = OpLoad %float %1492 + %1494 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1494 %float_0 + %1495 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1495 %1493 + %1496 = OpCompositeExtract %float %1245 0 + %1497 = OpCompositeExtract %float %1137 1 + %1498 = OpCompositeExtract %float %1137 0 + %1499 = OpCompositeConstruct %v3float %1496 %1497 %1498 + %1500 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1501 = OpLoad %float %1500 + %1502 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1502 %float_0 + %1503 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1503 %1501 + %1504 = OpCompositeExtract %float %1263 0 + %1505 = OpCompositeExtract %float %1055 1 + %1506 = OpCompositeConstruct %v2float %1504 %1505 + %1507 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + %1508 = OpLoad %int %1507 + %1509 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %1509 %int_0 + %1510 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_0 + OpStore %1510 %1508 + %1511 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1512 = OpLoad %float %1511 + %1513 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1513 %float_0 + %1514 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1514 %1512 + %1515 = OpCompositeExtract %float %1274 0 + %1516 = OpCompositeExtract %float %1274 1 + %1517 = OpCompositeExtract %float %1274 0 + %1518 = OpCompositeConstruct %v3float %1515 %1516 %1517 + %1519 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1520 = OpLoad %float %1519 + %1521 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1521 %float_0 + %1522 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1522 %1520 + %1523 = OpAccessChain %_ptr_Function_float %color %uint_2 + %1524 = OpLoad %float %1523 + %1525 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1526 = OpLoad %float %1525 + %1527 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1527 %float_0 + %1528 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1528 %1526 + %1529 = OpCompositeExtract %float %897 0 + %1530 = OpCompositeExtract %float %897 1 + %1531 = OpCompositeConstruct %v2float %1529 %1530 + %1532 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1533 = OpLoad %float %1532 + %1534 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1534 %float_0 + %1535 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1535 %1533 + %1536 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1537 = OpLoad %float %1536 + %1538 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1538 %float_0 + %1539 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1539 %1537 + %1540 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1541 = OpLoad %float %1540 + %1542 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1542 %float_0 + %1543 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1543 %1541 + %1544 = OpCompositeExtract %float %1531 1 + %1545 = OpCompositeExtract %float %1531 1 + %1546 = OpCompositeExtract %float %1471 2 + %1547 = OpCompositeConstruct %v3float %1544 %1545 %1546 + %1548 = OpAccessChain %_ptr_Function_float %color %uint_2 + %1549 = OpLoad %float %1548 + %1550 = OpAccessChain %_ptr_Function_float %color %uint_2 + OpStore %1550 %float_0 + %1551 = OpAccessChain %_ptr_Function_float %color %uint_2 + OpStore %1551 %1549 + %1552 = OpAccessChain %_ptr_Function_float %color %uint_2 + %1553 = OpConvertSToF %float %1491 + %1554 = OpFAdd %float %1553 %1524 + OpStore %1552 %1554 + %1555 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1556 = OpLoad %float %1555 + %1557 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1557 %float_0 + %1558 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1558 %1556 + %1559 = OpCompositeExtract %float %959 0 + %1560 = OpCompositeExtract %float %959 2 + %1561 = OpCompositeConstruct %v2float %1559 %1560 + %1562 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1563 = OpLoad %float %1562 + %1564 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1564 %float_0 + %1565 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1565 %1563 + OpBranch %1477 + %1477 = OpLabel + %1566 = OpLoad %int %i_2 + OpStore %i_2 %int_0 + OpStore %i_2 %1566 + %1567 = OpCompositeExtract %float %932 1 + %1568 = OpCompositeExtract %float %921 1 + %1569 = OpCompositeConstruct %v2float %1567 %1568 + %1570 = OpLoad %v2float %uv + OpStore %uv %873 + OpStore %uv %1570 + %1572 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8 + %1573 = OpLoad %int %1572 + %1574 = OpLoad %int %i_2 + OpStore %i_2 %int_0 + OpStore %i_2 %1574 + %1575 = OpCompositeExtract %float %905 0 + %1576 = OpCompositeExtract %float %932 2 + %1577 = OpCompositeConstruct %v2float %1575 %1576 + %1578 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8 + %1579 = OpLoad %int %1578 + %1580 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8 + OpStore %1580 %int_0 + %1581 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8 + OpStore %1581 %1579 + %1582 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1583 = OpLoad %float %1582 + %1584 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1584 %float_0 + %1585 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1585 %1583 + %1586 = OpCompositeExtract %float %959 1 + %1587 = OpCompositeExtract %float %873 0 + %1588 = OpCompositeConstruct %v2float %1586 %1587 + %1589 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1590 = OpLoad %float %1589 + %1591 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1591 %float_0 + %1592 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1592 %1590 + %1593 = OpCompositeExtract %float %1588 0 + %1594 = OpCompositeExtract %float %1588 1 + %1595 = OpCompositeExtract %float %1588 0 + %1596 = OpCompositeConstruct %v3float %1593 %1594 %1595 + %1597 = OpAccessChain %_ptr_Function_float %color %uint_2 + %1598 = OpLoad %float %1597 %1599 = OpAccessChain %_ptr_Function_float %color %uint_2 - %1601 = OpLoad %float %1418 - OpStore %1418 %float_0 - OpStore %1418 %1601 - %1604 = OpCompositeExtract %float %1589 1 - %1605 = OpCompositeExtract %float %1589 1 - %1606 = OpCompositeExtract %float %1529 2 - %1607 = OpCompositeConstruct %v3float %1604 %1605 %1606 - %1609 = OpLoad %float %1599 OpStore %1599 %float_0 - OpStore %1599 %1609 - %1613 = OpConvertSToF %float %1549 - %1614 = OpFAdd %float %1613 %1582 - OpStore %1599 %1614 - %1616 = OpLoad %float %1277 - OpStore %1277 %float_0 - OpStore %1277 %1616 - %1619 = OpCompositeExtract %float %989 0 - %1620 = OpCompositeExtract %float %989 2 - %1621 = OpCompositeConstruct %v2float %1619 %1620 - %1623 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %1623 - OpBranch %1535 - %1535 = OpLabel - %1626 = OpLoad %int %i_2 + %1600 = OpAccessChain %_ptr_Function_float %color %uint_2 + OpStore %1600 %1598 + %1601 = OpAccessChain %_ptr_Function_float %color %uint_2 + %1602 = OpLoad %float %1601 + %1603 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1604 = OpLoad %float %1603 + %1605 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1605 %float_0 + %1606 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1606 %1604 + %1607 = OpCompositeExtract %float %1459 0 + %1608 = OpCompositeExtract %float %1449 0 + %1609 = OpCompositeConstruct %v2float %1607 %1608 + %1610 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + %1611 = OpLoad %int %1610 + %1612 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + OpStore %1612 %int_0 + %1613 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + OpStore %1613 %1611 + %1614 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1615 = OpLoad %float %1614 + %1616 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1616 %float_0 + %1617 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1617 %1615 + %1618 = OpCompositeExtract %float %1055 0 + %1619 = OpCompositeExtract %float %901 0 + %1620 = OpCompositeConstruct %v2float %1618 %1619 + %1621 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1622 = OpLoad %float %1621 + %1623 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1623 %float_0 + %1624 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1624 %1622 + %1625 = OpAccessChain %_ptr_Function_float %color %uint_2 + %1626 = OpConvertSToF %float %1573 + %1627 = OpFAdd %float %1602 %1626 + OpStore %1625 %1627 + %1628 = OpLoad %v2float %uv + OpStore %uv %873 + OpStore %uv %1628 + %1629 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1630 = OpLoad %float %1629 + %1631 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1631 %float_0 + %1632 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1632 %1630 + %1633 = OpCompositeExtract %float %1055 1 + %1634 = OpCompositeExtract %float %1055 0 + %1635 = OpCompositeExtract %float %1609 1 + %1636 = OpCompositeConstruct %v3float %1633 %1634 %1635 + %1637 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1638 = OpLoad %float %1637 + %1639 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1639 %float_0 + %1640 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1640 %1638 + %1641 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1642 = OpLoad %float %1641 + %1643 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1644 = OpLoad %float %1643 + %1645 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1645 %float_0 + %1646 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1646 %1644 + %1647 = OpCompositeExtract %float %1577 1 + %1648 = OpCompositeExtract %float %1577 0 + %1649 = OpCompositeExtract %float %909 2 + %1650 = OpCompositeConstruct %v3float %1647 %1648 %1649 + %1651 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1652 = OpLoad %float %1651 + %1653 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1653 %float_0 + %1654 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1654 %1652 + %1655 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1656 = OpLoad %float %1655 + %1657 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1658 = OpLoad %float %1657 + %1659 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1659 %float_0 + %1660 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1660 %1658 + %1661 = OpAccessChain %_ptr_Function_float %color %uint_2 + %1662 = OpLoad %float %1661 + %1663 = OpAccessChain %_ptr_Function_float %color %uint_2 + OpStore %1663 %float_0 + %1664 = OpAccessChain %_ptr_Function_float %color %uint_2 + OpStore %1664 %1662 + %1665 = OpCompositeExtract %float %35 1 + %1666 = OpCompositeExtract %float %1360 1 + %1667 = OpCompositeExtract %float %1360 2 + %1668 = OpCompositeConstruct %v3float %1665 %1666 %1667 + %1669 = OpAccessChain %_ptr_Function_float %color %uint_2 + %1670 = OpLoad %float %1669 + %1671 = OpAccessChain %_ptr_Function_float %color %uint_2 + OpStore %1671 %float_0 + %1672 = OpAccessChain %_ptr_Function_float %color %uint_2 + OpStore %1672 %1670 + %1673 = OpLoad %int %i_2 OpStore %i_2 %int_0 - OpStore %i_2 %1626 - %1627 = OpCompositeExtract %float %956 1 - %1628 = OpCompositeExtract %float %945 1 - %1629 = OpCompositeConstruct %v2float %1627 %1628 - %1630 = OpLoad %v2float %uv - OpStore %uv %897 - OpStore %uv %1630 - %1633 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8 - %1635 = OpLoad %int %1633 - %1636 = OpLoad %int %i_2 - OpStore %i_2 %int_0 - OpStore %i_2 %1636 - %1637 = OpCompositeExtract %float %929 0 - %1638 = OpCompositeExtract %float %956 2 - %1639 = OpCompositeConstruct %v2float %1637 %1638 - %1641 = OpLoad %int %1633 - OpStore %1633 %int_0 - OpStore %1633 %1641 - %1645 = OpLoad %float %1277 - OpStore %1277 %float_0 - OpStore %1277 %1645 - %1648 = OpCompositeExtract %float %989 1 - %1649 = OpCompositeExtract %float %897 0 - %1650 = OpCompositeConstruct %v2float %1648 %1649 - %1652 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %1652 - %1656 = OpAccessChain %_ptr_Function_float %color %uint_2 - %1657 = OpCompositeExtract %float %1650 0 - %1658 = OpCompositeExtract %float %1650 1 - %1659 = OpCompositeExtract %float %1650 0 - %1660 = OpCompositeConstruct %v3float %1657 %1658 %1659 - %1662 = OpLoad %float %1656 - OpStore %1656 %float_0 - OpStore %1656 %1662 - %1666 = OpLoad %float %1656 - %1668 = OpLoad %float %985 - OpStore %985 %float_0 - OpStore %985 %1668 - %1671 = OpCompositeExtract %float %1517 0 - %1672 = OpCompositeExtract %float %1505 0 - %1673 = OpCompositeConstruct %v2float %1671 %1672 - %1675 = OpLoad %int %1260 - OpStore %1260 %int_0 - OpStore %1260 %1675 - %1679 = OpLoad %float %1511 - OpStore %1511 %float_0 - OpStore %1511 %1679 - %1682 = OpCompositeExtract %float %1091 0 - %1683 = OpCompositeExtract %float %925 0 - %1684 = OpCompositeConstruct %v2float %1682 %1683 - %1686 = OpLoad %float %1299 - OpStore %1299 %float_0 - OpStore %1299 %1686 - %1690 = OpAccessChain %_ptr_Function_float %color %uint_2 - %1692 = OpConvertSToF %float %1635 - %1693 = OpFAdd %float %1666 %1692 - OpStore %1690 %1693 - %1694 = OpLoad %v2float %uv - OpStore %uv %897 - OpStore %uv %1694 - %1696 = OpLoad %float %1069 - OpStore %1069 %float_0 - OpStore %1069 %1696 - %1699 = OpCompositeExtract %float %1091 1 - %1700 = OpCompositeExtract %float %1091 0 - %1701 = OpCompositeExtract %float %1673 1 - %1702 = OpCompositeConstruct %v3float %1699 %1700 %1701 - %1704 = OpLoad %float %1069 - OpStore %1069 %float_0 - OpStore %1069 %1704 - %1707 = OpAccessChain %_ptr_Function_float %uv %uint_0 - %1708 = OpLoad %float %1707 - %1710 = OpLoad %float %1299 - OpStore %1299 %float_0 - OpStore %1299 %1710 - %1714 = OpAccessChain %_ptr_Function_float %uv %uint_1 - %1715 = OpCompositeExtract %float %1639 1 - %1716 = OpCompositeExtract %float %1639 0 - %1717 = OpCompositeExtract %float %933 2 - %1718 = OpCompositeConstruct %v3float %1715 %1716 %1717 - %1720 = OpLoad %float %1319 - OpStore %1319 %float_0 - OpStore %1319 %1720 - %1724 = OpLoad %float %1714 - %1726 = OpLoad %float %1319 - OpStore %1319 %float_0 - OpStore %1319 %1726 - %1730 = OpLoad %float %1690 - OpStore %1690 %float_0 - OpStore %1690 %1730 - %1733 = OpCompositeExtract %float %35 1 - %1734 = OpCompositeExtract %float %1412 1 - %1735 = OpCompositeExtract %float %1412 2 - %1736 = OpCompositeConstruct %v3float %1733 %1734 %1735 - %1738 = OpLoad %float %1690 - OpStore %1690 %float_0 - OpStore %1690 %1738 - %1741 = OpLoad %int %i_2 - OpStore %i_2 %int_0 - OpStore %i_2 %1741 - %1742 = OpCompositeExtract %float %1412 2 - %1743 = OpCompositeExtract %float %1412 1 - %1744 = OpCompositeConstruct %v2float %1742 %1743 - %1745 = OpLoad %v3float %color - OpStore %color %909 - OpStore %color %1745 - %1747 = OpLoad %float %1319 - OpStore %1319 %float_0 - OpStore %1319 %1747 - %1750 = OpCompositeExtract %float %1004 1 - %1751 = OpCompositeExtract %float %1004 1 - %1752 = OpCompositeExtract %float %1004 1 - %1753 = OpCompositeConstruct %v3float %1750 %1751 %1752 - %1755 = OpLoad %int %1260 - OpStore %1260 %int_0 - OpStore %1260 %1755 - %1760 = OpFSub %float %1708 %1724 - %1758 = OpExtInst %float %1759 FAbs %1760 - %1761 = OpFOrdLessThan %bool %1758 %float_0_25 - OpSelectionMerge %1762 None - OpBranchConditional %1761 %1763 %1762 - %1763 = OpLabel - %1765 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1765 - %1768 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %1768 - %1769 = OpCompositeExtract %float %1660 2 - %1770 = OpCompositeExtract %float %1660 0 - %1771 = OpCompositeExtract %float %933 0 - %1772 = OpCompositeConstruct %v3float %1769 %1770 %1771 - %1774 = OpLoad %int %1633 - OpStore %1633 %int_0 - OpStore %1633 %1774 - %1778 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_9 - %1779 = OpLoad %int %1778 - %1780 = OpCompositeExtract %float %1280 1 - %1781 = OpCompositeExtract %float %1280 1 - %1782 = OpCompositeExtract %float %1280 1 - %1783 = OpCompositeConstruct %v3float %1780 %1781 %1782 - %1785 = OpLoad %float %1319 - OpStore %1319 %float_0 - OpStore %1319 %1785 - %1788 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %i_2 %1673 + %1674 = OpCompositeExtract %float %1360 2 + %1675 = OpCompositeExtract %float %1360 1 + %1676 = OpCompositeConstruct %v2float %1674 %1675 + %1677 = OpLoad %v3float %color + OpStore %color %885 + OpStore %color %1677 + %1678 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1679 = OpLoad %float %1678 + %1680 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1680 %float_0 + %1681 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1681 %1679 + %1682 = OpCompositeExtract %float %972 1 + %1683 = OpCompositeExtract %float %972 1 + %1684 = OpCompositeExtract %float %972 1 + %1685 = OpCompositeConstruct %v3float %1682 %1683 %1684 + %1686 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + %1687 = OpLoad %int %1686 + %1688 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + OpStore %1688 %int_0 + %1689 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_4 + OpStore %1689 %1687 + %1692 = OpFSub %float %1642 %1656 + %1690 = OpExtInst %float %1691 FAbs %1692 + %1693 = OpFOrdLessThan %bool %1690 %float_0_25 + OpSelectionMerge %1694 None + OpBranchConditional %1693 %1695 %1694 + %1695 = OpLabel + %1696 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1697 = OpLoad %float %1696 + %1698 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1698 %float_0 + %1699 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1699 %1697 + %1700 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %1700 + %1701 = OpCompositeExtract %float %1596 2 + %1702 = OpCompositeExtract %float %1596 0 + %1703 = OpCompositeExtract %float %909 0 + %1704 = OpCompositeConstruct %v3float %1701 %1702 %1703 + %1705 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8 + %1706 = OpLoad %int %1705 + %1707 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8 + OpStore %1707 %int_0 + %1708 = OpAccessChain %_ptr_Private_int %obj %uint_0 %int_8 + OpStore %1708 %1706 + %1710 = OpAccessChain %_ptr_Private_int %obj %uint_0 %uint_9 + %1711 = OpLoad %int %1710 + %1712 = OpCompositeExtract %float %1232 1 + %1713 = OpCompositeExtract %float %1232 1 + %1714 = OpCompositeExtract %float %1232 1 + %1715 = OpCompositeConstruct %v3float %1712 %1713 %1714 + %1716 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1717 = OpLoad %float %1716 + %1718 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1718 %float_0 + %1719 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1719 %1717 + %1720 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1721 = OpLoad %float %1720 + %1722 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1723 = OpLoad %float %1722 + %1724 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1724 %float_0 + %1725 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1725 %1723 + %1726 = OpCompositeExtract %float %1569 0 + %1727 = OpCompositeExtract %float %1569 1 + %1728 = OpCompositeConstruct %v2float %1726 %1727 + %1729 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1730 = OpLoad %float %1729 + %1731 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1731 %float_0 + %1732 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1732 %1730 + %1733 = OpLoad %v3float %color + OpStore %color %885 + OpStore %color %1733 + %1734 = OpCompositeExtract %float %953 0 + %1735 = OpCompositeExtract %float %953 0 + %1736 = OpCompositeConstruct %v2float %1734 %1735 + %1737 = OpLoad %v2float %uv + OpStore %uv %873 + OpStore %uv %1737 + %1738 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1739 = OpLoad %float %1738 + %1740 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1740 %float_0 + %1741 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1741 %1739 + %1742 = OpCompositeExtract %float %873 0 + %1743 = OpCompositeExtract %float %873 0 + %1744 = OpCompositeExtract %float %873 1 + %1745 = OpCompositeConstruct %v3float %1742 %1743 %1744 + %1746 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1747 = OpConvertSToF %float %1711 + %1748 = OpFAdd %float %1747 %1721 + OpStore %1746 %1748 + %1749 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1750 = OpLoad %float %1749 + %1751 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1751 %float_0 + %1752 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1752 %1750 + %1753 = OpCompositeExtract %float %1297 1 + %1754 = OpCompositeExtract %float %1636 0 + %1755 = OpCompositeExtract %float %1297 0 + %1756 = OpCompositeConstruct %v3float %1753 %1754 %1755 + %1757 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1758 = OpLoad %float %1757 + %1759 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1759 %float_0 + %1760 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1760 %1758 + OpBranch %1694 + %1694 = OpLabel + %1761 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1762 = OpLoad %float %1761 + %1763 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1763 %float_0 + %1764 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1764 %1762 + %1765 = OpLoad %v3float %color + %1766 = OpAccessChain %_ptr_Function_float %uv %int_0 + %1767 = OpLoad %float %1766 + %1768 = OpAccessChain %_ptr_Function_float %uv %int_0 + OpStore %1768 %float_0 + %1769 = OpAccessChain %_ptr_Function_float %uv %int_0 + OpStore %1769 %1767 + %1770 = OpCompositeExtract %float %901 0 + %1771 = OpCompositeExtract %float %893 0 + %1772 = OpCompositeExtract %float %893 1 + %1773 = OpCompositeConstruct %v3float %1770 %1771 %1772 + %1774 = OpExtInst %v3float %1691 Normalize %1765 + %1775 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1776 = OpLoad %float %1775 + %1777 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1777 %float_0 + %1778 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1778 %1776 + %1779 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %1779 + %1780 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %1780 + %1781 = OpAccessChain %_ptr_Function_float %color %uint_1 + %1782 = OpLoad %float %1781 + %1783 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1783 %float_0 + %1784 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1784 %1782 + %1785 = OpCompositeExtract %float %1609 1 + %1786 = OpCompositeExtract %float %1773 1 + %1787 = OpCompositeConstruct %v2float %1785 %1786 + %1788 = OpAccessChain %_ptr_Function_float %color %uint_1 %1789 = OpLoad %float %1788 - %1791 = OpLoad %float %1511 - OpStore %1511 %float_0 - OpStore %1511 %1791 - %1794 = OpCompositeExtract %float %1629 0 - %1795 = OpCompositeExtract %float %1629 1 - %1796 = OpCompositeConstruct %v2float %1794 %1795 - %1798 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %1798 - %1801 = OpLoad %v3float %color - OpStore %color %909 - OpStore %color %1801 - %1802 = OpCompositeExtract %float %981 0 - %1803 = OpCompositeExtract %float %981 0 - %1804 = OpCompositeConstruct %v2float %1802 %1803 - %1805 = OpLoad %v2float %uv - OpStore %uv %897 - OpStore %uv %1805 - %1807 = OpAccessChain %_ptr_Function_float %color %uint_0 - %1809 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1809 - %1812 = OpCompositeExtract %float %897 0 - %1813 = OpCompositeExtract %float %897 0 - %1814 = OpCompositeExtract %float %897 1 - %1815 = OpCompositeConstruct %v3float %1812 %1813 %1814 - %1817 = OpConvertSToF %float %1779 - %1818 = OpFAdd %float %1817 %1789 - OpStore %1807 %1818 - %1820 = OpLoad %float %1807 - OpStore %1807 %float_0 - OpStore %1807 %1820 - %1823 = OpCompositeExtract %float %1349 1 - %1824 = OpCompositeExtract %float %1702 0 - %1825 = OpCompositeExtract %float %1349 0 - %1826 = OpCompositeConstruct %v3float %1823 %1824 %1825 - %1828 = OpLoad %float %968 - OpStore %968 %float_0 - OpStore %968 %1828 - OpBranch %1762 - %1762 = OpLabel - %1832 = OpLoad %float %1714 - OpStore %1714 %float_0 - OpStore %1714 %1832 - %1835 = OpLoad %v3float %color - %1837 = OpLoad %float %1175 - OpStore %1175 %float_0 - OpStore %1175 %1837 - %1840 = OpCompositeExtract %float %925 0 - %1841 = OpCompositeExtract %float %917 0 - %1842 = OpCompositeExtract %float %917 1 - %1843 = OpCompositeConstruct %v3float %1840 %1841 %1842 - %1844 = OpExtInst %v3float %1759 Normalize %1835 - %1846 = OpLoad %float %995 - OpStore %995 %float_0 - OpStore %995 %1846 - %1849 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %1849 - %1850 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %1850 - %1852 = OpLoad %float %1299 - OpStore %1299 %float_0 - OpStore %1299 %1852 - %1855 = OpCompositeExtract %float %1673 1 - %1856 = OpCompositeExtract %float %1843 1 - %1857 = OpCompositeConstruct %v2float %1855 %1856 - %1859 = OpLoad %float %1299 - OpStore %1299 %float_0 - OpStore %1299 %1859 - %1862 = OpCompositeExtract %float %1844 0 - %1863 = OpCompositeExtract %float %1844 1 - %1864 = OpCompositeExtract %float %1844 2 - %1865 = OpCompositeConstruct %v4float %1862 %1863 %1864 %float_1 - %1867 = OpLoad %float %1714 - OpStore %1714 %float_0 - OpStore %1714 %1867 - %1870 = OpCompositeExtract %float %35 1 - %1871 = OpCompositeExtract %float %35 1 - %1872 = OpCompositeExtract %float %1857 1 - %1873 = OpCompositeConstruct %v3float %1870 %1871 %1872 - %1875 = OpLoad %float %1069 - OpStore %1069 %float_0 - OpStore %1069 %1875 - OpStore %x_GLF_color %1865 - %1878 = OpLoad %QuicksortObject %obj - OpStore %obj %104 - OpStore %obj %1878 - %1879 = OpCompositeExtract %float %1865 3 - %1880 = OpCompositeExtract %float %1865 1 - %1881 = OpCompositeExtract %float %1517 0 - %1882 = OpCompositeConstruct %v3float %1879 %1880 %1881 - %1884 = OpLoad %float %985 - OpStore %985 %float_0 - OpStore %985 %1884 + %1790 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1790 %float_0 + %1791 = OpAccessChain %_ptr_Function_float %color %uint_1 + OpStore %1791 %1789 + %1792 = OpCompositeExtract %float %1774 0 + %1793 = OpCompositeExtract %float %1774 1 + %1794 = OpCompositeExtract %float %1774 2 + %1795 = OpCompositeConstruct %v4float %1792 %1793 %1794 %float_1 + %1796 = OpAccessChain %_ptr_Function_float %uv %uint_1 + %1797 = OpLoad %float %1796 + %1798 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1798 %float_0 + %1799 = OpAccessChain %_ptr_Function_float %uv %uint_1 + OpStore %1799 %1797 + %1800 = OpCompositeExtract %float %35 1 + %1801 = OpCompositeExtract %float %35 1 + %1802 = OpCompositeExtract %float %1787 1 + %1803 = OpCompositeConstruct %v3float %1800 %1801 %1802 + %1804 = OpAccessChain %_ptr_Function_float %uv %uint_0 + %1805 = OpLoad %float %1804 + %1806 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1806 %float_0 + %1807 = OpAccessChain %_ptr_Function_float %uv %uint_0 + OpStore %1807 %1805 + OpStore %x_GLF_color %1795 + %1808 = OpLoad %QuicksortObject %obj + OpStore %obj %100 + OpStore %obj %1808 + %1809 = OpCompositeExtract %float %1795 3 + %1810 = OpCompositeExtract %float %1795 1 + %1811 = OpCompositeExtract %float %1459 0 + %1812 = OpCompositeConstruct %v3float %1809 %1810 %1811 + %1813 = OpAccessChain %_ptr_Function_float %color %uint_0 + %1814 = OpLoad %float %1813 + %1815 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1815 %float_0 + %1816 = OpAccessChain %_ptr_Function_float %color %uint_0 + OpStore %1816 %1814 OpReturn OpFunctionEnd diff --git a/test/ptr_ref/access/matrix.wgsl.expected.spvasm b/test/ptr_ref/access/matrix.wgsl.expected.spvasm index f29e412caf..1912a9112d 100644 --- a/test/ptr_ref/access/matrix.wgsl.expected.spvasm +++ b/test/ptr_ref/access/matrix.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 31 +; Bound: 29 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -32,12 +32,12 @@ %int = OpTypeInt 32 1 %int_1 = OpConstant %int 1 %_ptr_Function_v3float = OpTypePointer Function %v3float - %30 = OpConstantComposite %v3float %float_5 %float_5 %float_5 + %28 = OpConstantComposite %v3float %float_5 %float_5 %float_5 %main = OpFunction %void None %1 %4 = OpLabel %m = OpVariable %_ptr_Function_mat3v3float Function %23 OpStore %m %20 - %28 = OpAccessChain %_ptr_Function_v3float %m %int_1 - OpStore %28 %30 + %27 = OpAccessChain %_ptr_Function_v3float %m %int_1 + OpStore %27 %28 OpReturn OpFunctionEnd diff --git a/test/ptr_ref/access/vector.wgsl.expected.spvasm b/test/ptr_ref/access/vector.wgsl.expected.spvasm index deada33645..453396b47e 100644 --- a/test/ptr_ref/access/vector.wgsl.expected.spvasm +++ b/test/ptr_ref/access/vector.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 21 +; Bound: 19 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -27,7 +27,7 @@ %4 = OpLabel %v = OpVariable %_ptr_Function_v3float Function %13 OpStore %v %10 - %18 = OpAccessChain %_ptr_Function_float %v %uint_1 - OpStore %18 %float_5 + %17 = OpAccessChain %_ptr_Function_float %v %uint_1 + OpStore %17 %float_5 OpReturn OpFunctionEnd diff --git a/test/ptr_ref/copy/ptr_copy.spvasm.expected.spvasm b/test/ptr_ref/copy/ptr_copy.spvasm.expected.spvasm index eeebd89b47..2ced51cd26 100644 --- a/test/ptr_ref/copy/ptr_copy.spvasm.expected.spvasm +++ b/test/ptr_ref/copy/ptr_copy.spvasm.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 10 +; Bound: 9 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 diff --git a/test/ptr_ref/load/local/ptr_function.wgsl.expected.spvasm b/test/ptr_ref/load/local/ptr_function.wgsl.expected.spvasm index 3cb667bcab..c44fdd05c6 100644 --- a/test/ptr_ref/load/local/ptr_function.wgsl.expected.spvasm +++ b/test/ptr_ref/load/local/ptr_function.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 15 +; Bound: 13 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -20,7 +20,7 @@ %4 = OpLabel %i = OpVariable %_ptr_Function_int Function %9 OpStore %i %int_123 - %12 = OpLoad %int %i - %14 = OpIAdd %int %12 %int_1 + %10 = OpLoad %int %i + %12 = OpIAdd %int %10 %int_1 OpReturn OpFunctionEnd diff --git a/test/ptr_ref/load/local/ptr_private.wgsl.expected.spvasm b/test/ptr_ref/load/local/ptr_private.wgsl.expected.spvasm index 7bf6bf91d5..a1fec42763 100644 --- a/test/ptr_ref/load/local/ptr_private.wgsl.expected.spvasm +++ b/test/ptr_ref/load/local/ptr_private.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 14 +; Bound: 12 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -18,7 +18,7 @@ %int_1 = OpConstant %int 1 %main = OpFunction %void None %5 %8 = OpLabel - %11 = OpLoad %int %i - %13 = OpIAdd %int %11 %int_1 + %9 = OpLoad %int %i + %11 = OpIAdd %int %9 %int_1 OpReturn OpFunctionEnd diff --git a/test/ptr_ref/load/local/ptr_storage.wgsl.expected.spvasm b/test/ptr_ref/load/local/ptr_storage.wgsl.expected.spvasm index e0e29bce0b..33ce2fbf78 100644 --- a/test/ptr_ref/load/local/ptr_storage.wgsl.expected.spvasm +++ b/test/ptr_ref/load/local/ptr_storage.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 18 +; Bound: 16 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -27,8 +27,8 @@ %int_1 = OpConstant %int 1 %main = OpFunction %void None %5 %8 = OpLabel - %13 = OpAccessChain %_ptr_StorageBuffer_int %v %uint_0 - %15 = OpLoad %int %13 - %17 = OpIAdd %int %15 %int_1 + %12 = OpAccessChain %_ptr_StorageBuffer_int %v %uint_0 + %13 = OpLoad %int %12 + %15 = OpIAdd %int %13 %int_1 OpReturn OpFunctionEnd diff --git a/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.spvasm b/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.spvasm index fdcdbaf156..9b67704fc6 100644 --- a/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.spvasm +++ b/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 18 +; Bound: 16 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -28,8 +28,8 @@ %int_1 = OpConstant %int 1 %main = OpFunction %void None %5 %8 = OpLabel - %13 = OpAccessChain %_ptr_Uniform_int %v %uint_0 - %15 = OpLoad %int %13 - %17 = OpIAdd %int %15 %int_1 + %12 = OpAccessChain %_ptr_Uniform_int %v %uint_0 + %13 = OpLoad %int %12 + %15 = OpIAdd %int %13 %int_1 OpReturn OpFunctionEnd diff --git a/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.spvasm b/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.spvasm index 1cda0154fd..6cfbdd43fb 100644 --- a/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.spvasm +++ b/test/ptr_ref/load/local/ptr_workgroup.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 14 +; Bound: 12 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -19,7 +19,7 @@ %main = OpFunction %void None %4 %7 = OpLabel OpStore %i %int_123 - %11 = OpLoad %int %i - %13 = OpIAdd %int %11 %int_1 + %9 = OpLoad %int %i + %11 = OpIAdd %int %9 %int_1 OpReturn OpFunctionEnd diff --git a/test/ptr_ref/store/local/i32.wgsl.expected.spvasm b/test/ptr_ref/store/local/i32.wgsl.expected.spvasm index 30df9e1039..d4738a2447 100644 --- a/test/ptr_ref/store/local/i32.wgsl.expected.spvasm +++ b/test/ptr_ref/store/local/i32.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 18 +; Bound: 15 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 @@ -23,8 +23,8 @@ %i = OpVariable %_ptr_Function_int Function %9 OpStore %i %int_123 OpStore %i %int_123 - %15 = OpIAdd %int %int_100 %int_20 - %17 = OpIAdd %int %15 %int_3 - OpStore %i %17 + %12 = OpIAdd %int %int_100 %int_20 + %14 = OpIAdd %int %12 %int_3 + OpStore %i %14 OpReturn OpFunctionEnd diff --git a/test/types/function_scope_declarations.wgsl.expected.spvasm b/test/types/function_scope_declarations.wgsl.expected.spvasm index d5fa434afc..d9556cb78e 100644 --- a/test/types/function_scope_declarations.wgsl.expected.spvasm +++ b/test/types/function_scope_declarations.wgsl.expected.spvasm @@ -1,7 +1,7 @@ ; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 -; Bound: 52 +; Bound: 49 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450