| OpCapability Shader |
| %1 = OpExtInstImport "GLSL.std.450" |
| OpMemoryModel Logical GLSL450 |
| OpEntryPoint Fragment %main "main" %gl_FragCoord %_GLF_color |
| OpExecutionMode %main OriginUpperLeft |
| OpSource ESSL 320 |
| OpName %main "main" |
| OpName %BST "BST" |
| OpMemberName %BST 0 "data" |
| OpMemberName %BST 1 "leftIndex" |
| OpMemberName %BST 2 "rightIndex" |
| OpName %tree "tree" |
| OpName %buf0 "buf0" |
| OpMemberName %buf0 0 "injectionSwitch" |
| OpName %_ "" |
| OpName %gl_FragCoord "gl_FragCoord" |
| OpName %_GLF_color "_GLF_color" |
| OpMemberDecorate %buf0 0 Offset 0 |
| OpDecorate %buf0 Block |
| OpDecorate %_ DescriptorSet 0 |
| OpDecorate %_ Binding 0 |
| OpDecorate %gl_FragCoord BuiltIn FragCoord |
| OpDecorate %_GLF_color Location 0 |
| %void = OpTypeVoid |
| %10 = OpTypeFunction %void |
| %int = OpTypeInt 32 1 |
| %BST = OpTypeStruct %int %int %int |
| %_ptr_Function_BST = OpTypePointer Function %BST |
| %_ptr_Function_int = OpTypePointer Function %int |
| %int_0 = OpConstant %int 0 |
| %int_1 = OpConstant %int 1 |
| %int_n1 = OpConstant %int -1 |
| %int_2 = OpConstant %int 2 |
| %bool = OpTypeBool |
| %uint = OpTypeInt 32 0 |
| %uint_10 = OpConstant %uint 10 |
| %_arr_BST_uint_10 = OpTypeArray %BST %uint_10 |
| %float = OpTypeFloat 32 |
| %v2float = OpTypeVector %float 2 |
| %buf0 = OpTypeStruct %v2float |
| %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 |
| %_ = OpVariable %_ptr_Uniform_buf0 Uniform |
| %uint_1 = OpConstant %uint 1 |
| %_ptr_Uniform_float = OpTypePointer Uniform %float |
| %uint_0 = OpConstant %uint 0 |
| %int_9 = OpConstant %int 9 |
| %int_5 = OpConstant %int 5 |
| %v4float = OpTypeVector %float 4 |
| %_ptr_Input_v4float = OpTypePointer Input %v4float |
| %gl_FragCoord = OpVariable %_ptr_Input_v4float Input |
| %_ptr_Input_float = OpTypePointer Input %float |
| %float_0 = OpConstant %float 0 |
| %int_12 = OpConstant %int 12 |
| %int_15 = OpConstant %int 15 |
| %int_7 = OpConstant %int 7 |
| %int_8 = OpConstant %int 8 |
| %int_6 = OpConstant %int 6 |
| %int_17 = OpConstant %int 17 |
| %int_13 = OpConstant %int 13 |
| %int_20 = OpConstant %int 20 |
| %_ptr_Output_v4float = OpTypePointer Output %v4float |
| %_GLF_color = OpVariable %_ptr_Output_v4float Output |
| %float_1 = OpConstant %float 1 |
| %44 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 |
| %45 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1 |
| %false = OpConstantFalse %bool |
| %true = OpConstantTrue %bool |
| %_ptr_Function__arr_BST_uint_10 = OpTypePointer Function %_arr_BST_uint_10 |
| %49 = OpUndef %int |
| %50 = OpConstantComposite %BST %int_9 %int_n1 %int_n1 |
| %51 = OpConstantComposite %BST %int_5 %int_n1 %int_n1 |
| %int_3 = OpConstant %int 3 |
| %53 = OpConstantComposite %BST %int_12 %int_n1 %int_n1 |
| %54 = OpConstantComposite %BST %int_15 %int_n1 %int_n1 |
| %int_4 = OpConstant %int 4 |
| %56 = OpConstantComposite %BST %int_7 %int_n1 %int_n1 |
| %57 = OpConstantComposite %BST %int_8 %int_n1 %int_n1 |
| %58 = OpConstantComposite %BST %int_2 %int_n1 %int_n1 |
| %59 = OpConstantComposite %BST %int_6 %int_n1 %int_n1 |
| %60 = OpConstantComposite %BST %int_17 %int_n1 %int_n1 |
| %61 = OpConstantComposite %BST %int_13 %int_n1 %int_n1 |
| %main = OpFunction %void None %10 |
| %62 = OpLabel |
| %tree = OpVariable %_ptr_Function__arr_BST_uint_10 Function |
| %63 = OpAccessChain %_ptr_Function_BST %tree %int_0 |
| OpStore %63 %50 |
| OpSelectionMerge %64 None |
| OpSwitch %uint_0 %65 |
| %65 = OpLabel |
| OpBranch %66 |
| %66 = OpLabel |
| %67 = OpPhi %bool %false %65 %68 %69 |
| %70 = OpPhi %int %int_0 %65 %71 %69 |
| %72 = OpSLessThanEqual %bool %70 %int_1 |
| OpLoopMerge %73 %69 None |
| OpBranchConditional %72 %74 %73 |
| %74 = OpLabel |
| %75 = OpAccessChain %_ptr_Function_int %tree %70 %int_0 |
| %76 = OpLoad %int %75 |
| %77 = OpSLessThanEqual %bool %int_5 %76 |
| OpSelectionMerge %78 None |
| OpBranchConditional %77 %79 %80 |
| %80 = OpLabel |
| %81 = OpAccessChain %_ptr_Function_int %tree %70 %int_2 |
| %82 = OpLoad %int %81 |
| %83 = OpIEqual %bool %82 %int_n1 |
| OpSelectionMerge %84 None |
| OpBranchConditional %83 %85 %86 |
| %86 = OpLabel |
| %87 = OpLoad %int %81 |
| OpBranch %69 |
| %85 = OpLabel |
| OpStore %81 %int_1 |
| %88 = OpAccessChain %_ptr_Function_BST %tree %int_1 |
| OpStore %88 %51 |
| OpBranch %73 |
| %84 = OpLabel |
| OpUnreachable |
| %79 = OpLabel |
| %89 = OpAccessChain %_ptr_Function_int %tree %70 %int_1 |
| %90 = OpLoad %int %89 |
| %91 = OpIEqual %bool %90 %int_n1 |
| OpSelectionMerge %92 None |
| OpBranchConditional %91 %93 %94 |
| %94 = OpLabel |
| %95 = OpLoad %int %89 |
| OpBranch %69 |
| %93 = OpLabel |
| %96 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_1 |
| %97 = OpLoad %float %96 |
| %98 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_0 |
| %99 = OpLoad %float %98 |
| %100 = OpFOrdLessThan %bool %97 %99 |
| OpSelectionMerge %101 None |
| OpBranchConditional %100 %102 %101 |
| %102 = OpLabel |
| OpBranch %103 |
| %103 = OpLabel |
| OpLoopMerge %104 %105 None |
| OpBranch %106 |
| %106 = OpLabel |
| OpKill |
| %105 = OpLabel |
| OpBranch %103 |
| %104 = OpLabel |
| OpUnreachable |
| %101 = OpLabel |
| OpStore %89 %int_1 |
| %107 = OpAccessChain %_ptr_Function_BST %tree %int_1 |
| OpStore %107 %51 |
| OpBranch %108 |
| %108 = OpLabel |
| %109 = OpConvertFToS %int %97 |
| %110 = OpSLessThan %bool %int_0 %109 |
| OpLoopMerge %111 %112 None |
| OpBranchConditional %110 %113 %111 |
| %113 = OpLabel |
| OpBranch %111 |
| %112 = OpLabel |
| OpBranch %108 |
| %111 = OpLabel |
| %114 = OpPhi %bool %67 %108 %true %113 |
| OpSelectionMerge %115 None |
| OpBranchConditional %114 %73 %115 |
| %115 = OpLabel |
| OpBranch %92 |
| %92 = OpLabel |
| OpBranch %78 |
| %78 = OpLabel |
| OpBranch %69 |
| %69 = OpLabel |
| %68 = OpPhi %bool %67 %94 %67 %86 %114 %78 |
| %71 = OpPhi %int %95 %94 %87 %86 %70 %78 |
| OpBranch %66 |
| %73 = OpLabel |
| %116 = OpPhi %bool %67 %66 %114 %111 %true %85 |
| OpSelectionMerge %117 None |
| OpBranchConditional %116 %64 %117 |
| %117 = OpLabel |
| OpBranch %64 |
| %64 = OpLabel |
| OpBranch %118 |
| %118 = OpLabel |
| %119 = OpPhi %int %int_0 %64 %120 %121 |
| OpLoopMerge %122 %121 None |
| OpBranch %123 |
| %123 = OpLabel |
| %124 = OpAccessChain %_ptr_Input_float %gl_FragCoord %uint_1 |
| %125 = OpLoad %float %124 |
| %126 = OpFOrdLessThan %bool %125 %float_0 |
| %127 = OpLogicalNot %bool %126 |
| OpSelectionMerge %128 None |
| OpBranchConditional %127 %129 %128 |
| %129 = OpLabel |
| %130 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_1 |
| %131 = OpLoad %float %130 |
| %132 = OpConvertFToS %int %131 |
| %133 = OpINotEqual %bool %119 %132 |
| OpBranch %128 |
| %128 = OpLabel |
| %134 = OpPhi %bool %126 %123 %133 %129 |
| OpBranchConditional %134 %135 %122 |
| %135 = OpLabel |
| OpSelectionMerge %136 None |
| OpSwitch %uint_0 %137 |
| %137 = OpLabel |
| OpBranch %138 |
| %138 = OpLabel |
| %139 = OpPhi %bool %false %137 %140 %141 |
| %142 = OpPhi %int %int_0 %137 %143 %141 |
| %144 = OpSLessThanEqual %bool %142 %int_2 |
| OpLoopMerge %145 %141 None |
| OpBranchConditional %144 %146 %145 |
| %146 = OpLabel |
| %147 = OpAccessChain %_ptr_Function_int %tree %142 %int_0 |
| %148 = OpLoad %int %147 |
| %149 = OpSLessThanEqual %bool %int_12 %148 |
| OpSelectionMerge %150 None |
| OpBranchConditional %149 %151 %152 |
| %152 = OpLabel |
| %153 = OpAccessChain %_ptr_Function_int %tree %142 %int_2 |
| %154 = OpLoad %int %153 |
| %155 = OpIEqual %bool %154 %int_n1 |
| OpSelectionMerge %156 None |
| OpBranchConditional %155 %157 %158 |
| %158 = OpLabel |
| %159 = OpLoad %int %153 |
| OpBranch %141 |
| %157 = OpLabel |
| OpStore %153 %int_2 |
| %160 = OpAccessChain %_ptr_Function_BST %tree %int_2 |
| OpStore %160 %53 |
| OpBranch %145 |
| %156 = OpLabel |
| OpUnreachable |
| %151 = OpLabel |
| %161 = OpAccessChain %_ptr_Function_int %tree %142 %int_1 |
| %162 = OpLoad %int %161 |
| %163 = OpIEqual %bool %162 %int_n1 |
| OpSelectionMerge %164 None |
| OpBranchConditional %163 %165 %166 |
| %166 = OpLabel |
| %167 = OpLoad %int %161 |
| OpBranch %141 |
| %165 = OpLabel |
| %168 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_1 |
| %169 = OpLoad %float %168 |
| %170 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_0 |
| %171 = OpLoad %float %170 |
| %172 = OpFOrdLessThan %bool %169 %171 |
| OpSelectionMerge %173 None |
| OpBranchConditional %172 %174 %173 |
| %174 = OpLabel |
| OpBranch %175 |
| %175 = OpLabel |
| OpLoopMerge %176 %177 None |
| OpBranch %178 |
| %178 = OpLabel |
| OpKill |
| %177 = OpLabel |
| OpBranch %175 |
| %176 = OpLabel |
| OpUnreachable |
| %173 = OpLabel |
| OpStore %161 %int_2 |
| %179 = OpAccessChain %_ptr_Function_BST %tree %int_2 |
| OpStore %179 %53 |
| OpBranch %180 |
| %180 = OpLabel |
| %181 = OpConvertFToS %int %169 |
| %182 = OpSLessThan %bool %int_0 %181 |
| OpLoopMerge %183 %184 None |
| OpBranchConditional %182 %185 %183 |
| %185 = OpLabel |
| OpBranch %183 |
| %184 = OpLabel |
| OpBranch %180 |
| %183 = OpLabel |
| %186 = OpPhi %bool %139 %180 %true %185 |
| OpSelectionMerge %187 None |
| OpBranchConditional %186 %145 %187 |
| %187 = OpLabel |
| OpBranch %164 |
| %164 = OpLabel |
| OpBranch %150 |
| %150 = OpLabel |
| OpBranch %141 |
| %141 = OpLabel |
| %140 = OpPhi %bool %139 %166 %139 %158 %186 %150 |
| %143 = OpPhi %int %167 %166 %159 %158 %142 %150 |
| OpBranch %138 |
| %145 = OpLabel |
| %188 = OpPhi %bool %139 %138 %186 %183 %true %157 |
| OpSelectionMerge %189 None |
| OpBranchConditional %188 %136 %189 |
| %189 = OpLabel |
| OpBranch %136 |
| %136 = OpLabel |
| OpBranch %121 |
| %121 = OpLabel |
| %120 = OpIAdd %int %119 %int_1 |
| OpBranch %118 |
| %122 = OpLabel |
| OpSelectionMerge %190 None |
| OpSwitch %uint_0 %191 |
| %191 = OpLabel |
| OpBranch %192 |
| %192 = OpLabel |
| %193 = OpPhi %bool %false %191 %194 %195 |
| %196 = OpPhi %int %int_0 %191 %197 %195 |
| %198 = OpSLessThanEqual %bool %196 %int_3 |
| OpLoopMerge %199 %195 None |
| OpBranchConditional %198 %200 %199 |
| %200 = OpLabel |
| %201 = OpAccessChain %_ptr_Function_int %tree %196 %int_0 |
| %202 = OpLoad %int %201 |
| %203 = OpSLessThanEqual %bool %int_15 %202 |
| OpSelectionMerge %204 None |
| OpBranchConditional %203 %205 %206 |
| %206 = OpLabel |
| %207 = OpAccessChain %_ptr_Function_int %tree %196 %int_2 |
| %208 = OpLoad %int %207 |
| %209 = OpIEqual %bool %208 %int_n1 |
| OpSelectionMerge %210 None |
| OpBranchConditional %209 %211 %212 |
| %212 = OpLabel |
| %213 = OpLoad %int %207 |
| OpBranch %195 |
| %211 = OpLabel |
| OpStore %207 %int_3 |
| %214 = OpAccessChain %_ptr_Function_BST %tree %int_3 |
| OpStore %214 %54 |
| OpBranch %199 |
| %210 = OpLabel |
| OpUnreachable |
| %205 = OpLabel |
| %215 = OpAccessChain %_ptr_Function_int %tree %196 %int_1 |
| %216 = OpLoad %int %215 |
| %217 = OpIEqual %bool %216 %int_n1 |
| OpSelectionMerge %218 None |
| OpBranchConditional %217 %219 %220 |
| %220 = OpLabel |
| %221 = OpLoad %int %215 |
| OpBranch %195 |
| %219 = OpLabel |
| %222 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_1 |
| %223 = OpLoad %float %222 |
| %224 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_0 |
| %225 = OpLoad %float %224 |
| %226 = OpFOrdLessThan %bool %223 %225 |
| OpSelectionMerge %227 None |
| OpBranchConditional %226 %228 %227 |
| %228 = OpLabel |
| OpBranch %229 |
| %229 = OpLabel |
| OpLoopMerge %230 %231 None |
| OpBranch %232 |
| %232 = OpLabel |
| OpKill |
| %231 = OpLabel |
| OpBranch %229 |
| %230 = OpLabel |
| OpUnreachable |
| %227 = OpLabel |
| OpStore %215 %int_3 |
| %233 = OpAccessChain %_ptr_Function_BST %tree %int_3 |
| OpStore %233 %54 |
| OpBranch %234 |
| %234 = OpLabel |
| %235 = OpConvertFToS %int %223 |
| %236 = OpSLessThan %bool %int_0 %235 |
| OpLoopMerge %237 %238 None |
| OpBranchConditional %236 %239 %237 |
| %239 = OpLabel |
| OpBranch %237 |
| %238 = OpLabel |
| OpBranch %234 |
| %237 = OpLabel |
| %240 = OpPhi %bool %193 %234 %true %239 |
| OpSelectionMerge %241 None |
| OpBranchConditional %240 %199 %241 |
| %241 = OpLabel |
| OpBranch %218 |
| %218 = OpLabel |
| OpBranch %204 |
| %204 = OpLabel |
| OpBranch %195 |
| %195 = OpLabel |
| %194 = OpPhi %bool %193 %220 %193 %212 %240 %204 |
| %197 = OpPhi %int %221 %220 %213 %212 %196 %204 |
| OpBranch %192 |
| %199 = OpLabel |
| %242 = OpPhi %bool %193 %192 %240 %237 %true %211 |
| OpSelectionMerge %243 None |
| OpBranchConditional %242 %190 %243 |
| %243 = OpLabel |
| OpBranch %190 |
| %190 = OpLabel |
| OpSelectionMerge %244 None |
| OpSwitch %uint_0 %245 |
| %245 = OpLabel |
| OpBranch %246 |
| %246 = OpLabel |
| %247 = OpPhi %bool %false %245 %248 %249 |
| %250 = OpPhi %int %int_0 %245 %251 %249 |
| %252 = OpSLessThanEqual %bool %250 %int_4 |
| OpLoopMerge %253 %249 None |
| OpBranchConditional %252 %254 %253 |
| %254 = OpLabel |
| %255 = OpAccessChain %_ptr_Function_int %tree %250 %int_0 |
| %256 = OpLoad %int %255 |
| %257 = OpSLessThanEqual %bool %int_7 %256 |
| OpSelectionMerge %258 None |
| OpBranchConditional %257 %259 %260 |
| %260 = OpLabel |
| %261 = OpAccessChain %_ptr_Function_int %tree %250 %int_2 |
| %262 = OpLoad %int %261 |
| %263 = OpIEqual %bool %262 %int_n1 |
| OpSelectionMerge %264 None |
| OpBranchConditional %263 %265 %266 |
| %266 = OpLabel |
| %267 = OpLoad %int %261 |
| OpBranch %249 |
| %265 = OpLabel |
| OpStore %261 %int_4 |
| %268 = OpAccessChain %_ptr_Function_BST %tree %int_4 |
| OpStore %268 %56 |
| OpBranch %253 |
| %264 = OpLabel |
| OpUnreachable |
| %259 = OpLabel |
| %269 = OpAccessChain %_ptr_Function_int %tree %250 %int_1 |
| %270 = OpLoad %int %269 |
| %271 = OpIEqual %bool %270 %int_n1 |
| OpSelectionMerge %272 None |
| OpBranchConditional %271 %273 %274 |
| %274 = OpLabel |
| %275 = OpLoad %int %269 |
| OpBranch %249 |
| %273 = OpLabel |
| %276 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_1 |
| %277 = OpLoad %float %276 |
| %278 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_0 |
| %279 = OpLoad %float %278 |
| %280 = OpFOrdLessThan %bool %277 %279 |
| OpSelectionMerge %281 None |
| OpBranchConditional %280 %282 %281 |
| %282 = OpLabel |
| OpBranch %283 |
| %283 = OpLabel |
| OpLoopMerge %284 %285 None |
| OpBranch %286 |
| %286 = OpLabel |
| OpKill |
| %285 = OpLabel |
| OpBranch %283 |
| %284 = OpLabel |
| OpUnreachable |
| %281 = OpLabel |
| OpStore %269 %int_4 |
| %287 = OpAccessChain %_ptr_Function_BST %tree %int_4 |
| OpStore %287 %56 |
| OpBranch %288 |
| %288 = OpLabel |
| %289 = OpConvertFToS %int %277 |
| %290 = OpSLessThan %bool %int_0 %289 |
| OpLoopMerge %291 %292 None |
| OpBranchConditional %290 %293 %291 |
| %293 = OpLabel |
| OpBranch %291 |
| %292 = OpLabel |
| OpBranch %288 |
| %291 = OpLabel |
| %294 = OpPhi %bool %247 %288 %true %293 |
| OpSelectionMerge %295 None |
| OpBranchConditional %294 %253 %295 |
| %295 = OpLabel |
| OpBranch %272 |
| %272 = OpLabel |
| OpBranch %258 |
| %258 = OpLabel |
| OpBranch %249 |
| %249 = OpLabel |
| %248 = OpPhi %bool %247 %274 %247 %266 %294 %258 |
| %251 = OpPhi %int %275 %274 %267 %266 %250 %258 |
| OpBranch %246 |
| %253 = OpLabel |
| %296 = OpPhi %bool %247 %246 %294 %291 %true %265 |
| OpSelectionMerge %297 None |
| OpBranchConditional %296 %244 %297 |
| %297 = OpLabel |
| OpBranch %244 |
| %244 = OpLabel |
| OpSelectionMerge %298 None |
| OpSwitch %uint_0 %299 |
| %299 = OpLabel |
| OpBranch %300 |
| %300 = OpLabel |
| %301 = OpPhi %bool %false %299 %302 %303 |
| %304 = OpPhi %int %int_0 %299 %305 %303 |
| %306 = OpSLessThanEqual %bool %304 %int_5 |
| OpLoopMerge %307 %303 None |
| OpBranchConditional %306 %308 %307 |
| %308 = OpLabel |
| %309 = OpAccessChain %_ptr_Function_int %tree %304 %int_0 |
| %310 = OpLoad %int %309 |
| %311 = OpSLessThanEqual %bool %int_8 %310 |
| OpSelectionMerge %312 None |
| OpBranchConditional %311 %313 %314 |
| %314 = OpLabel |
| %315 = OpAccessChain %_ptr_Function_int %tree %304 %int_2 |
| %316 = OpLoad %int %315 |
| %317 = OpIEqual %bool %316 %int_n1 |
| OpSelectionMerge %318 None |
| OpBranchConditional %317 %319 %320 |
| %320 = OpLabel |
| %321 = OpLoad %int %315 |
| OpBranch %303 |
| %319 = OpLabel |
| OpStore %315 %int_5 |
| %322 = OpAccessChain %_ptr_Function_BST %tree %int_5 |
| OpStore %322 %57 |
| OpBranch %307 |
| %318 = OpLabel |
| OpUnreachable |
| %313 = OpLabel |
| %323 = OpAccessChain %_ptr_Function_int %tree %304 %int_1 |
| %324 = OpLoad %int %323 |
| %325 = OpIEqual %bool %324 %int_n1 |
| OpSelectionMerge %326 None |
| OpBranchConditional %325 %327 %328 |
| %328 = OpLabel |
| %329 = OpLoad %int %323 |
| OpBranch %303 |
| %327 = OpLabel |
| %330 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_1 |
| %331 = OpLoad %float %330 |
| %332 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_0 |
| %333 = OpLoad %float %332 |
| %334 = OpFOrdLessThan %bool %331 %333 |
| OpSelectionMerge %335 None |
| OpBranchConditional %334 %336 %335 |
| %336 = OpLabel |
| OpBranch %337 |
| %337 = OpLabel |
| OpLoopMerge %338 %339 None |
| OpBranch %340 |
| %340 = OpLabel |
| OpKill |
| %339 = OpLabel |
| OpBranch %337 |
| %338 = OpLabel |
| OpUnreachable |
| %335 = OpLabel |
| OpStore %323 %int_5 |
| %341 = OpAccessChain %_ptr_Function_BST %tree %int_5 |
| OpStore %341 %57 |
| OpBranch %342 |
| %342 = OpLabel |
| %343 = OpConvertFToS %int %331 |
| %344 = OpSLessThan %bool %int_0 %343 |
| OpLoopMerge %345 %346 None |
| OpBranchConditional %344 %347 %345 |
| %347 = OpLabel |
| OpBranch %345 |
| %346 = OpLabel |
| OpBranch %342 |
| %345 = OpLabel |
| %348 = OpPhi %bool %301 %342 %true %347 |
| OpSelectionMerge %349 None |
| OpBranchConditional %348 %307 %349 |
| %349 = OpLabel |
| OpBranch %326 |
| %326 = OpLabel |
| OpBranch %312 |
| %312 = OpLabel |
| OpBranch %303 |
| %303 = OpLabel |
| %302 = OpPhi %bool %301 %328 %301 %320 %348 %312 |
| %305 = OpPhi %int %329 %328 %321 %320 %304 %312 |
| OpBranch %300 |
| %307 = OpLabel |
| %350 = OpPhi %bool %301 %300 %348 %345 %true %319 |
| OpSelectionMerge %351 None |
| OpBranchConditional %350 %298 %351 |
| %351 = OpLabel |
| OpBranch %298 |
| %298 = OpLabel |
| OpSelectionMerge %352 None |
| OpSwitch %uint_0 %353 |
| %353 = OpLabel |
| OpBranch %354 |
| %354 = OpLabel |
| %355 = OpPhi %bool %false %353 %356 %357 |
| %358 = OpPhi %int %int_0 %353 %359 %357 |
| %360 = OpSLessThanEqual %bool %358 %int_6 |
| OpLoopMerge %361 %357 None |
| OpBranchConditional %360 %362 %361 |
| %362 = OpLabel |
| %363 = OpAccessChain %_ptr_Function_int %tree %358 %int_0 |
| %364 = OpLoad %int %363 |
| %365 = OpSLessThanEqual %bool %int_2 %364 |
| OpSelectionMerge %366 None |
| OpBranchConditional %365 %367 %368 |
| %368 = OpLabel |
| %369 = OpAccessChain %_ptr_Function_int %tree %358 %int_2 |
| %370 = OpLoad %int %369 |
| %371 = OpIEqual %bool %370 %int_n1 |
| OpSelectionMerge %372 None |
| OpBranchConditional %371 %373 %374 |
| %374 = OpLabel |
| %375 = OpLoad %int %369 |
| OpBranch %357 |
| %373 = OpLabel |
| OpStore %369 %int_6 |
| %376 = OpAccessChain %_ptr_Function_BST %tree %int_6 |
| OpStore %376 %58 |
| OpBranch %361 |
| %372 = OpLabel |
| OpUnreachable |
| %367 = OpLabel |
| %377 = OpAccessChain %_ptr_Function_int %tree %358 %int_1 |
| %378 = OpLoad %int %377 |
| %379 = OpIEqual %bool %378 %int_n1 |
| OpSelectionMerge %380 None |
| OpBranchConditional %379 %381 %382 |
| %382 = OpLabel |
| %383 = OpLoad %int %377 |
| OpBranch %357 |
| %381 = OpLabel |
| %384 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_1 |
| %385 = OpLoad %float %384 |
| %386 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_0 |
| %387 = OpLoad %float %386 |
| %388 = OpFOrdLessThan %bool %385 %387 |
| OpSelectionMerge %389 None |
| OpBranchConditional %388 %390 %389 |
| %390 = OpLabel |
| OpBranch %391 |
| %391 = OpLabel |
| OpLoopMerge %392 %393 None |
| OpBranch %394 |
| %394 = OpLabel |
| OpKill |
| %393 = OpLabel |
| OpBranch %391 |
| %392 = OpLabel |
| OpUnreachable |
| %389 = OpLabel |
| OpStore %377 %int_6 |
| %395 = OpAccessChain %_ptr_Function_BST %tree %int_6 |
| OpStore %395 %58 |
| OpBranch %396 |
| %396 = OpLabel |
| %397 = OpConvertFToS %int %385 |
| %398 = OpSLessThan %bool %int_0 %397 |
| OpLoopMerge %399 %400 None |
| OpBranchConditional %398 %401 %399 |
| %401 = OpLabel |
| OpBranch %399 |
| %400 = OpLabel |
| OpBranch %396 |
| %399 = OpLabel |
| %402 = OpPhi %bool %355 %396 %true %401 |
| OpSelectionMerge %403 None |
| OpBranchConditional %402 %361 %403 |
| %403 = OpLabel |
| OpBranch %380 |
| %380 = OpLabel |
| OpBranch %366 |
| %366 = OpLabel |
| OpBranch %357 |
| %357 = OpLabel |
| %356 = OpPhi %bool %355 %382 %355 %374 %402 %366 |
| %359 = OpPhi %int %383 %382 %375 %374 %358 %366 |
| OpBranch %354 |
| %361 = OpLabel |
| %404 = OpPhi %bool %355 %354 %402 %399 %true %373 |
| OpSelectionMerge %405 None |
| OpBranchConditional %404 %352 %405 |
| %405 = OpLabel |
| OpBranch %352 |
| %352 = OpLabel |
| OpSelectionMerge %406 None |
| OpSwitch %uint_0 %407 |
| %407 = OpLabel |
| OpBranch %408 |
| %408 = OpLabel |
| %409 = OpPhi %bool %false %407 %410 %411 |
| %412 = OpPhi %int %int_0 %407 %413 %411 |
| %414 = OpSLessThanEqual %bool %412 %int_7 |
| OpLoopMerge %415 %411 None |
| OpBranchConditional %414 %416 %415 |
| %416 = OpLabel |
| %417 = OpAccessChain %_ptr_Function_int %tree %412 %int_0 |
| %418 = OpLoad %int %417 |
| %419 = OpSLessThanEqual %bool %int_6 %418 |
| OpSelectionMerge %420 None |
| OpBranchConditional %419 %421 %422 |
| %422 = OpLabel |
| %423 = OpAccessChain %_ptr_Function_int %tree %412 %int_2 |
| %424 = OpLoad %int %423 |
| %425 = OpIEqual %bool %424 %int_n1 |
| OpSelectionMerge %426 None |
| OpBranchConditional %425 %427 %428 |
| %428 = OpLabel |
| %429 = OpLoad %int %423 |
| OpBranch %411 |
| %427 = OpLabel |
| OpStore %423 %int_7 |
| %430 = OpAccessChain %_ptr_Function_BST %tree %int_7 |
| OpStore %430 %59 |
| OpBranch %415 |
| %426 = OpLabel |
| OpUnreachable |
| %421 = OpLabel |
| %431 = OpAccessChain %_ptr_Function_int %tree %412 %int_1 |
| %432 = OpLoad %int %431 |
| %433 = OpIEqual %bool %432 %int_n1 |
| OpSelectionMerge %434 None |
| OpBranchConditional %433 %435 %436 |
| %436 = OpLabel |
| %437 = OpLoad %int %431 |
| OpBranch %411 |
| %435 = OpLabel |
| %438 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_1 |
| %439 = OpLoad %float %438 |
| %440 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_0 |
| %441 = OpLoad %float %440 |
| %442 = OpFOrdLessThan %bool %439 %441 |
| OpSelectionMerge %443 None |
| OpBranchConditional %442 %444 %443 |
| %444 = OpLabel |
| OpBranch %445 |
| %445 = OpLabel |
| OpLoopMerge %446 %447 None |
| OpBranch %448 |
| %448 = OpLabel |
| OpKill |
| %447 = OpLabel |
| OpBranch %445 |
| %446 = OpLabel |
| OpUnreachable |
| %443 = OpLabel |
| OpStore %431 %int_7 |
| %449 = OpAccessChain %_ptr_Function_BST %tree %int_7 |
| OpStore %449 %59 |
| OpBranch %450 |
| %450 = OpLabel |
| %451 = OpConvertFToS %int %439 |
| %452 = OpSLessThan %bool %int_0 %451 |
| OpLoopMerge %453 %454 None |
| OpBranchConditional %452 %455 %453 |
| %455 = OpLabel |
| OpBranch %453 |
| %454 = OpLabel |
| OpBranch %450 |
| %453 = OpLabel |
| %456 = OpPhi %bool %409 %450 %true %455 |
| OpSelectionMerge %457 None |
| OpBranchConditional %456 %415 %457 |
| %457 = OpLabel |
| OpBranch %434 |
| %434 = OpLabel |
| OpBranch %420 |
| %420 = OpLabel |
| OpBranch %411 |
| %411 = OpLabel |
| %410 = OpPhi %bool %409 %436 %409 %428 %456 %420 |
| %413 = OpPhi %int %437 %436 %429 %428 %412 %420 |
| OpBranch %408 |
| %415 = OpLabel |
| %458 = OpPhi %bool %409 %408 %456 %453 %true %427 |
| OpSelectionMerge %459 None |
| OpBranchConditional %458 %406 %459 |
| %459 = OpLabel |
| OpBranch %406 |
| %406 = OpLabel |
| OpSelectionMerge %460 None |
| OpSwitch %uint_0 %461 |
| %461 = OpLabel |
| OpBranch %462 |
| %462 = OpLabel |
| %463 = OpPhi %bool %false %461 %464 %465 |
| %466 = OpPhi %int %int_0 %461 %467 %465 |
| %468 = OpSLessThanEqual %bool %466 %int_8 |
| OpLoopMerge %469 %465 None |
| OpBranchConditional %468 %470 %469 |
| %470 = OpLabel |
| %471 = OpAccessChain %_ptr_Function_int %tree %466 %int_0 |
| %472 = OpLoad %int %471 |
| %473 = OpSLessThanEqual %bool %int_17 %472 |
| OpSelectionMerge %474 None |
| OpBranchConditional %473 %475 %476 |
| %476 = OpLabel |
| %477 = OpAccessChain %_ptr_Function_int %tree %466 %int_2 |
| %478 = OpLoad %int %477 |
| %479 = OpIEqual %bool %478 %int_n1 |
| OpSelectionMerge %480 None |
| OpBranchConditional %479 %481 %482 |
| %482 = OpLabel |
| %483 = OpLoad %int %477 |
| OpBranch %465 |
| %481 = OpLabel |
| OpStore %477 %int_8 |
| %484 = OpAccessChain %_ptr_Function_BST %tree %int_8 |
| OpStore %484 %60 |
| OpBranch %469 |
| %480 = OpLabel |
| OpUnreachable |
| %475 = OpLabel |
| %485 = OpAccessChain %_ptr_Function_int %tree %466 %int_1 |
| %486 = OpLoad %int %485 |
| %487 = OpIEqual %bool %486 %int_n1 |
| OpSelectionMerge %488 None |
| OpBranchConditional %487 %489 %490 |
| %490 = OpLabel |
| %491 = OpLoad %int %485 |
| OpBranch %465 |
| %489 = OpLabel |
| %492 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_1 |
| %493 = OpLoad %float %492 |
| %494 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_0 |
| %495 = OpLoad %float %494 |
| %496 = OpFOrdLessThan %bool %493 %495 |
| OpSelectionMerge %497 None |
| OpBranchConditional %496 %498 %497 |
| %498 = OpLabel |
| OpBranch %499 |
| %499 = OpLabel |
| OpLoopMerge %500 %501 None |
| OpBranch %502 |
| %502 = OpLabel |
| OpKill |
| %501 = OpLabel |
| OpBranch %499 |
| %500 = OpLabel |
| OpUnreachable |
| %497 = OpLabel |
| OpStore %485 %int_8 |
| %503 = OpAccessChain %_ptr_Function_BST %tree %int_8 |
| OpStore %503 %60 |
| OpBranch %504 |
| %504 = OpLabel |
| %505 = OpConvertFToS %int %493 |
| %506 = OpSLessThan %bool %int_0 %505 |
| OpLoopMerge %507 %508 None |
| OpBranchConditional %506 %509 %507 |
| %509 = OpLabel |
| OpBranch %507 |
| %508 = OpLabel |
| OpBranch %504 |
| %507 = OpLabel |
| %510 = OpPhi %bool %463 %504 %true %509 |
| OpSelectionMerge %511 None |
| OpBranchConditional %510 %469 %511 |
| %511 = OpLabel |
| OpBranch %488 |
| %488 = OpLabel |
| OpBranch %474 |
| %474 = OpLabel |
| OpBranch %465 |
| %465 = OpLabel |
| %464 = OpPhi %bool %463 %490 %463 %482 %510 %474 |
| %467 = OpPhi %int %491 %490 %483 %482 %466 %474 |
| OpBranch %462 |
| %469 = OpLabel |
| %512 = OpPhi %bool %463 %462 %510 %507 %true %481 |
| OpSelectionMerge %513 None |
| OpBranchConditional %512 %460 %513 |
| %513 = OpLabel |
| OpBranch %460 |
| %460 = OpLabel |
| OpSelectionMerge %514 None |
| OpSwitch %uint_0 %515 |
| %515 = OpLabel |
| OpBranch %516 |
| %516 = OpLabel |
| %517 = OpPhi %bool %false %515 %518 %519 |
| %520 = OpPhi %int %int_0 %515 %521 %519 |
| %522 = OpSLessThanEqual %bool %520 %int_9 |
| OpLoopMerge %523 %519 None |
| OpBranchConditional %522 %524 %523 |
| %524 = OpLabel |
| %525 = OpAccessChain %_ptr_Function_int %tree %520 %int_0 |
| %526 = OpLoad %int %525 |
| %527 = OpSLessThanEqual %bool %int_13 %526 |
| OpSelectionMerge %528 None |
| OpBranchConditional %527 %529 %530 |
| %530 = OpLabel |
| %531 = OpAccessChain %_ptr_Function_int %tree %520 %int_2 |
| %532 = OpLoad %int %531 |
| %533 = OpIEqual %bool %532 %int_n1 |
| OpSelectionMerge %534 None |
| OpBranchConditional %533 %535 %536 |
| %536 = OpLabel |
| %537 = OpLoad %int %531 |
| OpBranch %519 |
| %535 = OpLabel |
| OpStore %531 %int_9 |
| %538 = OpAccessChain %_ptr_Function_BST %tree %int_9 |
| OpStore %538 %61 |
| OpBranch %523 |
| %534 = OpLabel |
| OpUnreachable |
| %529 = OpLabel |
| %539 = OpAccessChain %_ptr_Function_int %tree %520 %int_1 |
| %540 = OpLoad %int %539 |
| %541 = OpIEqual %bool %540 %int_n1 |
| OpSelectionMerge %542 None |
| OpBranchConditional %541 %543 %544 |
| %544 = OpLabel |
| %545 = OpLoad %int %539 |
| OpBranch %519 |
| %543 = OpLabel |
| %546 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_1 |
| %547 = OpLoad %float %546 |
| %548 = OpAccessChain %_ptr_Uniform_float %_ %int_0 %uint_0 |
| %549 = OpLoad %float %548 |
| %550 = OpFOrdLessThan %bool %547 %549 |
| OpSelectionMerge %551 None |
| OpBranchConditional %550 %552 %551 |
| %552 = OpLabel |
| OpBranch %553 |
| %553 = OpLabel |
| OpLoopMerge %554 %555 None |
| OpBranch %556 |
| %556 = OpLabel |
| OpKill |
| %555 = OpLabel |
| OpBranch %553 |
| %554 = OpLabel |
| OpUnreachable |
| %551 = OpLabel |
| OpStore %539 %int_9 |
| %557 = OpAccessChain %_ptr_Function_BST %tree %int_9 |
| OpStore %557 %61 |
| OpBranch %558 |
| %558 = OpLabel |
| %559 = OpConvertFToS %int %547 |
| %560 = OpSLessThan %bool %int_0 %559 |
| OpLoopMerge %561 %562 None |
| OpBranchConditional %560 %563 %561 |
| %563 = OpLabel |
| OpBranch %561 |
| %562 = OpLabel |
| OpBranch %558 |
| %561 = OpLabel |
| %564 = OpPhi %bool %517 %558 %true %563 |
| OpSelectionMerge %565 None |
| OpBranchConditional %564 %523 %565 |
| %565 = OpLabel |
| OpBranch %542 |
| %542 = OpLabel |
| OpBranch %528 |
| %528 = OpLabel |
| OpBranch %519 |
| %519 = OpLabel |
| %518 = OpPhi %bool %517 %544 %517 %536 %564 %528 |
| %521 = OpPhi %int %545 %544 %537 %536 %520 %528 |
| OpBranch %516 |
| %523 = OpLabel |
| %566 = OpPhi %bool %517 %516 %564 %561 %true %535 |
| OpSelectionMerge %567 None |
| OpBranchConditional %566 %514 %567 |
| %567 = OpLabel |
| OpBranch %514 |
| %514 = OpLabel |
| OpBranch %568 |
| %568 = OpLabel |
| %569 = OpPhi %int %49 %514 %570 %571 |
| %572 = OpPhi %int %int_0 %514 %573 %571 |
| %574 = OpPhi %int %int_0 %514 %575 %571 |
| %576 = OpSLessThan %bool %574 %int_20 |
| OpLoopMerge %577 %571 None |
| OpBranchConditional %576 %578 %577 |
| %578 = OpLabel |
| OpSelectionMerge %579 None |
| OpSwitch %uint_0 %580 |
| %580 = OpLabel |
| OpBranch %581 |
| %581 = OpLabel |
| %582 = OpPhi %int %int_0 %580 %583 %584 |
| %585 = OpINotEqual %bool %582 %int_n1 |
| OpLoopMerge %586 %584 None |
| OpBranchConditional %585 %587 %586 |
| %587 = OpLabel |
| %588 = OpAccessChain %_ptr_Function_BST %tree %582 |
| %589 = OpLoad %BST %588 |
| %590 = OpCompositeExtract %int %589 0 |
| %591 = OpCompositeExtract %int %589 1 |
| %592 = OpCompositeExtract %int %589 2 |
| %593 = OpIEqual %bool %590 %574 |
| OpSelectionMerge %594 None |
| OpBranchConditional %593 %595 %594 |
| %595 = OpLabel |
| OpBranch %586 |
| %594 = OpLabel |
| %596 = OpSGreaterThan %bool %574 %590 |
| %583 = OpSelect %int %596 %592 %591 |
| OpBranch %584 |
| %584 = OpLabel |
| OpBranch %581 |
| %586 = OpLabel |
| %597 = OpPhi %int %569 %581 %574 %595 |
| %598 = OpPhi %bool %false %581 %true %595 |
| OpSelectionMerge %599 None |
| OpBranchConditional %598 %579 %599 |
| %599 = OpLabel |
| OpBranch %579 |
| %579 = OpLabel |
| %570 = OpPhi %int %597 %586 %int_n1 %599 |
| OpSelectionMerge %600 None |
| OpSwitch %574 %601 9 %602 5 %602 12 %602 15 %602 7 %602 8 %602 2 %602 6 %602 17 %602 13 %602 |
| %602 = OpLabel |
| %603 = OpIEqual %bool %570 %574 |
| OpSelectionMerge %604 None |
| OpBranchConditional %603 %605 %604 |
| %605 = OpLabel |
| %606 = OpIAdd %int %572 %int_1 |
| OpBranch %604 |
| %604 = OpLabel |
| %607 = OpPhi %int %572 %602 %606 %605 |
| OpBranch %600 |
| %601 = OpLabel |
| %608 = OpIEqual %bool %570 %int_n1 |
| OpSelectionMerge %609 None |
| OpBranchConditional %608 %610 %609 |
| %610 = OpLabel |
| %611 = OpIAdd %int %572 %int_1 |
| OpBranch %609 |
| %609 = OpLabel |
| %612 = OpPhi %int %572 %601 %611 %610 |
| OpBranch %600 |
| %600 = OpLabel |
| %573 = OpPhi %int %612 %609 %607 %604 |
| OpBranch %571 |
| %571 = OpLabel |
| %575 = OpIAdd %int %574 %int_1 |
| OpBranch %568 |
| %577 = OpLabel |
| %613 = OpIEqual %bool %572 %int_20 |
| OpSelectionMerge %614 None |
| OpBranchConditional %613 %615 %616 |
| %616 = OpLabel |
| OpStore %_GLF_color %45 |
| OpBranch %614 |
| %615 = OpLabel |
| OpStore %_GLF_color %44 |
| OpBranch %614 |
| %614 = OpLabel |
| OpReturn |
| OpFunctionEnd |