blob: 9ea3312a6e7a0274f66b3368a9c83f3d7637ec08 [file] [log] [blame]
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 619
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol_1
OpExecutionMode %main OriginUpperLeft
OpName %x_GLF_color "x_GLF_color"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %main_1 "main_1"
OpName %BST "BST"
OpMemberName %BST 0 "data"
OpMemberName %BST 1 "leftIndex"
OpMemberName %BST 2 "rightIndex"
OpName %tree "tree"
OpName %x_356 "x_356"
OpName %x_58_phi "x_58_phi"
OpName %x_86_phi "x_86_phi"
OpName %x_353_phi "x_353_phi"
OpName %x_356_phi "x_356_phi"
OpName %x_358_phi "x_358_phi"
OpName %x_84 "x_84"
OpName %x_76 "x_76"
OpName %x_59 "x_59"
OpName %x_59_phi "x_59_phi"
OpName %x_91_phi "x_91_phi"
OpName %x_119_phi "x_119_phi"
OpName %x_117 "x_117"
OpName %x_109 "x_109"
OpName %x_92 "x_92"
OpName %x_92_phi "x_92_phi"
OpName %x_124_phi "x_124_phi"
OpName %x_152_phi "x_152_phi"
OpName %x_150 "x_150"
OpName %x_142 "x_142"
OpName %x_125 "x_125"
OpName %x_125_phi "x_125_phi"
OpName %x_157_phi "x_157_phi"
OpName %x_185_phi "x_185_phi"
OpName %x_183 "x_183"
OpName %x_175 "x_175"
OpName %x_158 "x_158"
OpName %x_158_phi "x_158_phi"
OpName %x_190_phi "x_190_phi"
OpName %x_218_phi "x_218_phi"
OpName %x_216 "x_216"
OpName %x_208 "x_208"
OpName %x_191 "x_191"
OpName %x_191_phi "x_191_phi"
OpName %x_223_phi "x_223_phi"
OpName %x_251_phi "x_251_phi"
OpName %x_249 "x_249"
OpName %x_241 "x_241"
OpName %x_224 "x_224"
OpName %x_224_phi "x_224_phi"
OpName %x_256_phi "x_256_phi"
OpName %x_284_phi "x_284_phi"
OpName %x_282 "x_282"
OpName %x_274 "x_274"
OpName %x_257 "x_257"
OpName %x_257_phi "x_257_phi"
OpName %x_289_phi "x_289_phi"
OpName %x_317_phi "x_317_phi"
OpName %x_315 "x_315"
OpName %x_307 "x_307"
OpName %x_290 "x_290"
OpName %x_290_phi "x_290_phi"
OpName %x_322_phi "x_322_phi"
OpName %x_350_phi "x_350_phi"
OpName %x_348 "x_348"
OpName %x_340 "x_340"
OpName %x_323 "x_323"
OpName %x_323_phi "x_323_phi"
OpName %x_381 "x_381"
OpName %x_391 "x_391"
OpName %x_396 "x_396"
OpName %x_359 "x_359"
OpName %x_354_phi "x_354_phi"
OpName %x_357_phi "x_357_phi"
OpName %x_366_phi "x_366_phi"
OpName %x_381_phi "x_381_phi"
OpName %x_382_phi "x_382_phi"
OpName %x_354 "x_354"
OpName %x_390 "x_390"
OpName %x_395 "x_395"
OpName %x_391_phi "x_391_phi"
OpName %x_396_phi "x_396_phi"
OpName %main_out "main_out"
OpMemberName %main_out 0 "x_GLF_color_1"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %main "main"
OpDecorate %tint_symbol_1 Location 0
OpMemberDecorate %BST 0 Offset 0
OpMemberDecorate %BST 1 Offset 4
OpMemberDecorate %BST 2 Offset 8
OpDecorate %_arr_BST_uint_10 ArrayStride 12
OpMemberDecorate %main_out 0 Offset 0
%float = OpTypeFloat 32
%v4float = OpTypeVector %float 4
%_ptr_Private_v4float = OpTypePointer Private %v4float
%5 = OpConstantNull %v4float
%x_GLF_color = OpVariable %_ptr_Private_v4float Private %5
%_ptr_Output_v4float = OpTypePointer Output %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %5
%void = OpTypeVoid
%8 = OpTypeFunction %void
%int = OpTypeInt 32 1
%BST = OpTypeStruct %int %int %int
%uint = OpTypeInt 32 0
%uint_10 = OpConstant %uint 10
%_arr_BST_uint_10 = OpTypeArray %BST %uint_10
%_ptr_Function__arr_BST_uint_10 = OpTypePointer Function %_arr_BST_uint_10
%19 = OpConstantNull %_arr_BST_uint_10
%_ptr_Function_int = OpTypePointer Function %int
%22 = OpConstantNull %int
%bool = OpTypeBool
%_ptr_Function_bool = OpTypePointer Function %bool
%27 = OpConstantNull %bool
%int_0 = OpConstant %int 0
%_ptr_Function_BST = OpTypePointer Function %BST
%int_9 = OpConstant %int 9
%int_n1 = OpConstant %int -1
%36 = OpConstantComposite %BST %int_9 %int_n1 %int_n1
%uint_0 = OpConstant %uint 0
%false = OpConstantFalse %bool
%int_1 = OpConstant %int 1
%int_5 = OpConstant %int 5
%uint_1 = OpConstant %uint 1
%71 = OpConstantComposite %BST %int_5 %int_n1 %int_n1
%true = OpConstantTrue %bool
%uint_2 = OpConstant %uint 2
%int_2 = OpConstant %int 2
%int_12 = OpConstant %int 12
%126 = OpConstantComposite %BST %int_12 %int_n1 %int_n1
%int_3 = OpConstant %int 3
%int_15 = OpConstant %int 15
%179 = OpConstantComposite %BST %int_15 %int_n1 %int_n1
%int_4 = OpConstant %int 4
%int_7 = OpConstant %int 7
%232 = OpConstantComposite %BST %int_7 %int_n1 %int_n1
%int_8 = OpConstant %int 8
%284 = OpConstantComposite %BST %int_8 %int_n1 %int_n1
%int_6 = OpConstant %int 6
%336 = OpConstantComposite %BST %int_2 %int_n1 %int_n1
%387 = OpConstantComposite %BST %int_6 %int_n1 %int_n1
%int_17 = OpConstant %int 17
%439 = OpConstantComposite %BST %int_17 %int_n1 %int_n1
%int_13 = OpConstant %int 13
%491 = OpConstantComposite %BST %int_13 %int_n1 %int_n1
%int_20 = OpConstant %int 20
%float_1 = OpConstant %float 1
%float_0 = OpConstant %float 0
%605 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
%606 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
%main_out = OpTypeStruct %v4float
%607 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %8
%11 = OpLabel
%tree = OpVariable %_ptr_Function__arr_BST_uint_10 Function %19
%x_356 = OpVariable %_ptr_Function_int Function %22
%x_58_phi = OpVariable %_ptr_Function_int Function %22
%x_86_phi = OpVariable %_ptr_Function_bool Function %27
%x_353_phi = OpVariable %_ptr_Function_int Function %22
%x_356_phi = OpVariable %_ptr_Function_int Function %22
%x_358_phi = OpVariable %_ptr_Function_int Function %22
%x_84 = OpVariable %_ptr_Function_int Function %22
%x_76 = OpVariable %_ptr_Function_int Function %22
%x_59 = OpVariable %_ptr_Function_int Function %22
%x_59_phi = OpVariable %_ptr_Function_int Function %22
%x_91_phi = OpVariable %_ptr_Function_int Function %22
%x_119_phi = OpVariable %_ptr_Function_bool Function %27
%x_117 = OpVariable %_ptr_Function_int Function %22
%x_109 = OpVariable %_ptr_Function_int Function %22
%x_92 = OpVariable %_ptr_Function_int Function %22
%x_92_phi = OpVariable %_ptr_Function_int Function %22
%x_124_phi = OpVariable %_ptr_Function_int Function %22
%x_152_phi = OpVariable %_ptr_Function_bool Function %27
%x_150 = OpVariable %_ptr_Function_int Function %22
%x_142 = OpVariable %_ptr_Function_int Function %22
%x_125 = OpVariable %_ptr_Function_int Function %22
%x_125_phi = OpVariable %_ptr_Function_int Function %22
%x_157_phi = OpVariable %_ptr_Function_int Function %22
%x_185_phi = OpVariable %_ptr_Function_bool Function %27
%x_183 = OpVariable %_ptr_Function_int Function %22
%x_175 = OpVariable %_ptr_Function_int Function %22
%x_158 = OpVariable %_ptr_Function_int Function %22
%x_158_phi = OpVariable %_ptr_Function_int Function %22
%x_190_phi = OpVariable %_ptr_Function_int Function %22
%x_218_phi = OpVariable %_ptr_Function_bool Function %27
%x_216 = OpVariable %_ptr_Function_int Function %22
%x_208 = OpVariable %_ptr_Function_int Function %22
%x_191 = OpVariable %_ptr_Function_int Function %22
%x_191_phi = OpVariable %_ptr_Function_int Function %22
%x_223_phi = OpVariable %_ptr_Function_int Function %22
%x_251_phi = OpVariable %_ptr_Function_bool Function %27
%x_249 = OpVariable %_ptr_Function_int Function %22
%x_241 = OpVariable %_ptr_Function_int Function %22
%x_224 = OpVariable %_ptr_Function_int Function %22
%x_224_phi = OpVariable %_ptr_Function_int Function %22
%x_256_phi = OpVariable %_ptr_Function_int Function %22
%x_284_phi = OpVariable %_ptr_Function_bool Function %27
%x_282 = OpVariable %_ptr_Function_int Function %22
%x_274 = OpVariable %_ptr_Function_int Function %22
%x_257 = OpVariable %_ptr_Function_int Function %22
%x_257_phi = OpVariable %_ptr_Function_int Function %22
%x_289_phi = OpVariable %_ptr_Function_int Function %22
%x_317_phi = OpVariable %_ptr_Function_bool Function %27
%x_315 = OpVariable %_ptr_Function_int Function %22
%x_307 = OpVariable %_ptr_Function_int Function %22
%x_290 = OpVariable %_ptr_Function_int Function %22
%x_290_phi = OpVariable %_ptr_Function_int Function %22
%x_322_phi = OpVariable %_ptr_Function_int Function %22
%x_350_phi = OpVariable %_ptr_Function_bool Function %27
%x_348 = OpVariable %_ptr_Function_int Function %22
%x_340 = OpVariable %_ptr_Function_int Function %22
%x_323 = OpVariable %_ptr_Function_int Function %22
%x_323_phi = OpVariable %_ptr_Function_int Function %22
%x_381 = OpVariable %_ptr_Function_int Function %22
%x_391 = OpVariable %_ptr_Function_int Function %22
%x_396 = OpVariable %_ptr_Function_int Function %22
%x_359 = OpVariable %_ptr_Function_int Function %22
%x_354_phi = OpVariable %_ptr_Function_int Function %22
%x_357_phi = OpVariable %_ptr_Function_int Function %22
%x_366_phi = OpVariable %_ptr_Function_int Function %22
%x_381_phi = OpVariable %_ptr_Function_int Function %22
%x_382_phi = OpVariable %_ptr_Function_bool Function %27
%x_354 = OpVariable %_ptr_Function_int Function %22
%x_390 = OpVariable %_ptr_Function_int Function %22
%x_395 = OpVariable %_ptr_Function_int Function %22
%x_391_phi = OpVariable %_ptr_Function_int Function %22
%x_396_phi = OpVariable %_ptr_Function_int Function %22
%33 = OpAccessChain %_ptr_Function_BST %tree %int_0
OpStore %33 %36
OpSelectionMerge %37 None
OpSwitch %uint_0 %39
%39 = OpLabel
OpStore %x_58_phi %int_0
OpBranch %40
%40 = OpLabel
OpLoopMerge %41 %42 None
OpBranch %43
%43 = OpLabel
%48 = OpLoad %int %x_58_phi
OpStore %x_86_phi %false
%51 = OpSLessThanEqual %bool %48 %int_1
OpSelectionMerge %52 None
OpBranchConditional %51 %53 %54
%53 = OpLabel
OpBranch %52
%54 = OpLabel
OpBranch %41
%52 = OpLabel
%55 = OpAccessChain %_ptr_Function_int %tree %48 %uint_0
%56 = OpLoad %int %55
%58 = OpSLessThanEqual %bool %int_5 %56
OpSelectionMerge %59 None
OpBranchConditional %58 %60 %61
%60 = OpLabel
%63 = OpAccessChain %_ptr_Function_int %tree %48 %uint_1
%64 = OpLoad %int %63
%65 = OpIEqual %bool %64 %int_n1
OpSelectionMerge %66 None
OpBranchConditional %65 %67 %68
%67 = OpLabel
%69 = OpAccessChain %_ptr_Function_int %tree %48 %uint_1
OpStore %69 %int_1
%70 = OpAccessChain %_ptr_Function_BST %tree %int_1
OpStore %70 %71
OpStore %x_86_phi %true
OpBranch %41
%68 = OpLabel
%73 = OpAccessChain %_ptr_Function_int %tree %48 %uint_1
%74 = OpLoad %int %73
OpStore %x_84 %74
%75 = OpLoad %int %x_84
OpStore %x_59_phi %75
OpBranch %42
%66 = OpLabel
OpReturn
%61 = OpLabel
%77 = OpAccessChain %_ptr_Function_int %tree %48 %uint_2
%78 = OpLoad %int %77
%79 = OpIEqual %bool %78 %int_n1
OpSelectionMerge %80 None
OpBranchConditional %79 %81 %82
%81 = OpLabel
%83 = OpAccessChain %_ptr_Function_int %tree %48 %uint_2
OpStore %83 %int_1
%84 = OpAccessChain %_ptr_Function_BST %tree %int_1
OpStore %84 %71
OpStore %x_86_phi %true
OpBranch %41
%82 = OpLabel
%85 = OpAccessChain %_ptr_Function_int %tree %48 %uint_2
%86 = OpLoad %int %85
OpStore %x_76 %86
%87 = OpLoad %int %x_76
OpStore %x_59_phi %87
OpBranch %42
%80 = OpLabel
OpReturn
%59 = OpLabel
OpReturn
%42 = OpLabel
%88 = OpLoad %int %x_59_phi
OpStore %x_59 %88
%89 = OpLoad %int %x_59
OpStore %x_58_phi %89
OpBranch %40
%41 = OpLabel
%90 = OpLoad %bool %x_86_phi
OpSelectionMerge %91 None
OpBranchConditional %90 %92 %91
%92 = OpLabel
OpBranch %37
%91 = OpLabel
OpBranch %37
%37 = OpLabel
OpSelectionMerge %95 None
OpSwitch %uint_0 %96
%96 = OpLabel
OpStore %x_91_phi %int_0
OpBranch %97
%97 = OpLabel
OpLoopMerge %98 %99 None
OpBranch %100
%100 = OpLabel
%105 = OpLoad %int %x_91_phi
OpStore %x_119_phi %false
%107 = OpSLessThanEqual %bool %105 %int_2
OpSelectionMerge %108 None
OpBranchConditional %107 %109 %110
%109 = OpLabel
OpBranch %108
%110 = OpLabel
OpBranch %98
%108 = OpLabel
%111 = OpAccessChain %_ptr_Function_int %tree %105 %uint_0
%112 = OpLoad %int %111
%114 = OpSLessThanEqual %bool %int_12 %112
OpSelectionMerge %115 None
OpBranchConditional %114 %116 %117
%116 = OpLabel
%118 = OpAccessChain %_ptr_Function_int %tree %105 %uint_1
%119 = OpLoad %int %118
%120 = OpIEqual %bool %119 %int_n1
OpSelectionMerge %121 None
OpBranchConditional %120 %122 %123
%122 = OpLabel
%124 = OpAccessChain %_ptr_Function_int %tree %105 %uint_1
OpStore %124 %int_2
%125 = OpAccessChain %_ptr_Function_BST %tree %int_2
OpStore %125 %126
OpStore %x_119_phi %true
OpBranch %98
%123 = OpLabel
%127 = OpAccessChain %_ptr_Function_int %tree %105 %uint_1
%128 = OpLoad %int %127
OpStore %x_117 %128
%129 = OpLoad %int %x_117
OpStore %x_92_phi %129
OpBranch %99
%121 = OpLabel
OpReturn
%117 = OpLabel
%130 = OpAccessChain %_ptr_Function_int %tree %105 %uint_2
%131 = OpLoad %int %130
%132 = OpIEqual %bool %131 %int_n1
OpSelectionMerge %133 None
OpBranchConditional %132 %134 %135
%134 = OpLabel
%136 = OpAccessChain %_ptr_Function_int %tree %105 %uint_2
OpStore %136 %int_2
%137 = OpAccessChain %_ptr_Function_BST %tree %int_2
OpStore %137 %126
OpStore %x_119_phi %true
OpBranch %98
%135 = OpLabel
%138 = OpAccessChain %_ptr_Function_int %tree %105 %uint_2
%139 = OpLoad %int %138
OpStore %x_109 %139
%140 = OpLoad %int %x_109
OpStore %x_92_phi %140
OpBranch %99
%133 = OpLabel
OpReturn
%115 = OpLabel
OpReturn
%99 = OpLabel
%141 = OpLoad %int %x_92_phi
OpStore %x_92 %141
%142 = OpLoad %int %x_92
OpStore %x_91_phi %142
OpBranch %97
%98 = OpLabel
%143 = OpLoad %bool %x_119_phi
OpSelectionMerge %144 None
OpBranchConditional %143 %145 %144
%145 = OpLabel
OpBranch %95
%144 = OpLabel
OpBranch %95
%95 = OpLabel
OpSelectionMerge %148 None
OpSwitch %uint_0 %149
%149 = OpLabel
OpStore %x_124_phi %int_0
OpBranch %150
%150 = OpLabel
OpLoopMerge %151 %152 None
OpBranch %153
%153 = OpLabel
%158 = OpLoad %int %x_124_phi
OpStore %x_152_phi %false
%160 = OpSLessThanEqual %bool %158 %int_3
OpSelectionMerge %161 None
OpBranchConditional %160 %162 %163
%162 = OpLabel
OpBranch %161
%163 = OpLabel
OpBranch %151
%161 = OpLabel
%164 = OpAccessChain %_ptr_Function_int %tree %158 %uint_0
%165 = OpLoad %int %164
%167 = OpSLessThanEqual %bool %int_15 %165
OpSelectionMerge %168 None
OpBranchConditional %167 %169 %170
%169 = OpLabel
%171 = OpAccessChain %_ptr_Function_int %tree %158 %uint_1
%172 = OpLoad %int %171
%173 = OpIEqual %bool %172 %int_n1
OpSelectionMerge %174 None
OpBranchConditional %173 %175 %176
%175 = OpLabel
%177 = OpAccessChain %_ptr_Function_int %tree %158 %uint_1
OpStore %177 %int_3
%178 = OpAccessChain %_ptr_Function_BST %tree %int_3
OpStore %178 %179
OpStore %x_152_phi %true
OpBranch %151
%176 = OpLabel
%180 = OpAccessChain %_ptr_Function_int %tree %158 %uint_1
%181 = OpLoad %int %180
OpStore %x_150 %181
%182 = OpLoad %int %x_150
OpStore %x_125_phi %182
OpBranch %152
%174 = OpLabel
OpReturn
%170 = OpLabel
%183 = OpAccessChain %_ptr_Function_int %tree %158 %uint_2
%184 = OpLoad %int %183
%185 = OpIEqual %bool %184 %int_n1
OpSelectionMerge %186 None
OpBranchConditional %185 %187 %188
%187 = OpLabel
%189 = OpAccessChain %_ptr_Function_int %tree %158 %uint_2
OpStore %189 %int_3
%190 = OpAccessChain %_ptr_Function_BST %tree %int_3
OpStore %190 %179
OpStore %x_152_phi %true
OpBranch %151
%188 = OpLabel
%191 = OpAccessChain %_ptr_Function_int %tree %158 %uint_2
%192 = OpLoad %int %191
OpStore %x_142 %192
%193 = OpLoad %int %x_142
OpStore %x_125_phi %193
OpBranch %152
%186 = OpLabel
OpReturn
%168 = OpLabel
OpReturn
%152 = OpLabel
%194 = OpLoad %int %x_125_phi
OpStore %x_125 %194
%195 = OpLoad %int %x_125
OpStore %x_124_phi %195
OpBranch %150
%151 = OpLabel
%196 = OpLoad %bool %x_152_phi
OpSelectionMerge %197 None
OpBranchConditional %196 %198 %197
%198 = OpLabel
OpBranch %148
%197 = OpLabel
OpBranch %148
%148 = OpLabel
OpSelectionMerge %201 None
OpSwitch %uint_0 %202
%202 = OpLabel
OpStore %x_157_phi %int_0
OpBranch %203
%203 = OpLabel
OpLoopMerge %204 %205 None
OpBranch %206
%206 = OpLabel
%211 = OpLoad %int %x_157_phi
OpStore %x_185_phi %false
%213 = OpSLessThanEqual %bool %211 %int_4
OpSelectionMerge %214 None
OpBranchConditional %213 %215 %216
%215 = OpLabel
OpBranch %214
%216 = OpLabel
OpBranch %204
%214 = OpLabel
%217 = OpAccessChain %_ptr_Function_int %tree %211 %uint_0
%218 = OpLoad %int %217
%220 = OpSLessThanEqual %bool %int_7 %218
OpSelectionMerge %221 None
OpBranchConditional %220 %222 %223
%222 = OpLabel
%224 = OpAccessChain %_ptr_Function_int %tree %211 %uint_1
%225 = OpLoad %int %224
%226 = OpIEqual %bool %225 %int_n1
OpSelectionMerge %227 None
OpBranchConditional %226 %228 %229
%228 = OpLabel
%230 = OpAccessChain %_ptr_Function_int %tree %211 %uint_1
OpStore %230 %int_4
%231 = OpAccessChain %_ptr_Function_BST %tree %int_4
OpStore %231 %232
OpStore %x_185_phi %true
OpBranch %204
%229 = OpLabel
%233 = OpAccessChain %_ptr_Function_int %tree %211 %uint_1
%234 = OpLoad %int %233
OpStore %x_183 %234
%235 = OpLoad %int %x_183
OpStore %x_158_phi %235
OpBranch %205
%227 = OpLabel
OpReturn
%223 = OpLabel
%236 = OpAccessChain %_ptr_Function_int %tree %211 %uint_2
%237 = OpLoad %int %236
%238 = OpIEqual %bool %237 %int_n1
OpSelectionMerge %239 None
OpBranchConditional %238 %240 %241
%240 = OpLabel
%242 = OpAccessChain %_ptr_Function_int %tree %211 %uint_2
OpStore %242 %int_4
%243 = OpAccessChain %_ptr_Function_BST %tree %int_4
OpStore %243 %232
OpStore %x_185_phi %true
OpBranch %204
%241 = OpLabel
%244 = OpAccessChain %_ptr_Function_int %tree %211 %uint_2
%245 = OpLoad %int %244
OpStore %x_175 %245
%246 = OpLoad %int %x_175
OpStore %x_158_phi %246
OpBranch %205
%239 = OpLabel
OpReturn
%221 = OpLabel
OpReturn
%205 = OpLabel
%247 = OpLoad %int %x_158_phi
OpStore %x_158 %247
%248 = OpLoad %int %x_158
OpStore %x_157_phi %248
OpBranch %203
%204 = OpLabel
%249 = OpLoad %bool %x_185_phi
OpSelectionMerge %250 None
OpBranchConditional %249 %251 %250
%251 = OpLabel
OpBranch %201
%250 = OpLabel
OpBranch %201
%201 = OpLabel
OpSelectionMerge %254 None
OpSwitch %uint_0 %255
%255 = OpLabel
OpStore %x_190_phi %int_0
OpBranch %256
%256 = OpLabel
OpLoopMerge %257 %258 None
OpBranch %259
%259 = OpLabel
%264 = OpLoad %int %x_190_phi
OpStore %x_218_phi %false
%265 = OpSLessThanEqual %bool %264 %int_5
OpSelectionMerge %266 None
OpBranchConditional %265 %267 %268
%267 = OpLabel
OpBranch %266
%268 = OpLabel
OpBranch %257
%266 = OpLabel
%269 = OpAccessChain %_ptr_Function_int %tree %264 %uint_0
%270 = OpLoad %int %269
%272 = OpSLessThanEqual %bool %int_8 %270
OpSelectionMerge %273 None
OpBranchConditional %272 %274 %275
%274 = OpLabel
%276 = OpAccessChain %_ptr_Function_int %tree %264 %uint_1
%277 = OpLoad %int %276
%278 = OpIEqual %bool %277 %int_n1
OpSelectionMerge %279 None
OpBranchConditional %278 %280 %281
%280 = OpLabel
%282 = OpAccessChain %_ptr_Function_int %tree %264 %uint_1
OpStore %282 %int_5
%283 = OpAccessChain %_ptr_Function_BST %tree %int_5
OpStore %283 %284
OpStore %x_218_phi %true
OpBranch %257
%281 = OpLabel
%285 = OpAccessChain %_ptr_Function_int %tree %264 %uint_1
%286 = OpLoad %int %285
OpStore %x_216 %286
%287 = OpLoad %int %x_216
OpStore %x_191_phi %287
OpBranch %258
%279 = OpLabel
OpReturn
%275 = OpLabel
%288 = OpAccessChain %_ptr_Function_int %tree %264 %uint_2
%289 = OpLoad %int %288
%290 = OpIEqual %bool %289 %int_n1
OpSelectionMerge %291 None
OpBranchConditional %290 %292 %293
%292 = OpLabel
%294 = OpAccessChain %_ptr_Function_int %tree %264 %uint_2
OpStore %294 %int_5
%295 = OpAccessChain %_ptr_Function_BST %tree %int_5
OpStore %295 %284
OpStore %x_218_phi %true
OpBranch %257
%293 = OpLabel
%296 = OpAccessChain %_ptr_Function_int %tree %264 %uint_2
%297 = OpLoad %int %296
OpStore %x_208 %297
%298 = OpLoad %int %x_208
OpStore %x_191_phi %298
OpBranch %258
%291 = OpLabel
OpReturn
%273 = OpLabel
OpReturn
%258 = OpLabel
%299 = OpLoad %int %x_191_phi
OpStore %x_191 %299
%300 = OpLoad %int %x_191
OpStore %x_190_phi %300
OpBranch %256
%257 = OpLabel
%301 = OpLoad %bool %x_218_phi
OpSelectionMerge %302 None
OpBranchConditional %301 %303 %302
%303 = OpLabel
OpBranch %254
%302 = OpLabel
OpBranch %254
%254 = OpLabel
OpSelectionMerge %306 None
OpSwitch %uint_0 %307
%307 = OpLabel
OpStore %x_223_phi %int_0
OpBranch %308
%308 = OpLabel
OpLoopMerge %309 %310 None
OpBranch %311
%311 = OpLabel
%316 = OpLoad %int %x_223_phi
OpStore %x_251_phi %false
%318 = OpSLessThanEqual %bool %316 %int_6
OpSelectionMerge %319 None
OpBranchConditional %318 %320 %321
%320 = OpLabel
OpBranch %319
%321 = OpLabel
OpBranch %309
%319 = OpLabel
%322 = OpAccessChain %_ptr_Function_int %tree %316 %uint_0
%323 = OpLoad %int %322
%324 = OpSLessThanEqual %bool %int_2 %323
OpSelectionMerge %325 None
OpBranchConditional %324 %326 %327
%326 = OpLabel
%328 = OpAccessChain %_ptr_Function_int %tree %316 %uint_1
%329 = OpLoad %int %328
%330 = OpIEqual %bool %329 %int_n1
OpSelectionMerge %331 None
OpBranchConditional %330 %332 %333
%332 = OpLabel
%334 = OpAccessChain %_ptr_Function_int %tree %316 %uint_1
OpStore %334 %int_6
%335 = OpAccessChain %_ptr_Function_BST %tree %int_6
OpStore %335 %336
OpStore %x_251_phi %true
OpBranch %309
%333 = OpLabel
%337 = OpAccessChain %_ptr_Function_int %tree %316 %uint_1
%338 = OpLoad %int %337
OpStore %x_249 %338
%339 = OpLoad %int %x_249
OpStore %x_224_phi %339
OpBranch %310
%331 = OpLabel
OpReturn
%327 = OpLabel
%340 = OpAccessChain %_ptr_Function_int %tree %316 %uint_2
%341 = OpLoad %int %340
%342 = OpIEqual %bool %341 %int_n1
OpSelectionMerge %343 None
OpBranchConditional %342 %344 %345
%344 = OpLabel
%346 = OpAccessChain %_ptr_Function_int %tree %316 %uint_2
OpStore %346 %int_6
%347 = OpAccessChain %_ptr_Function_BST %tree %int_6
OpStore %347 %336
OpStore %x_251_phi %true
OpBranch %309
%345 = OpLabel
%348 = OpAccessChain %_ptr_Function_int %tree %316 %uint_2
%349 = OpLoad %int %348
OpStore %x_241 %349
%350 = OpLoad %int %x_241
OpStore %x_224_phi %350
OpBranch %310
%343 = OpLabel
OpReturn
%325 = OpLabel
OpReturn
%310 = OpLabel
%351 = OpLoad %int %x_224_phi
OpStore %x_224 %351
%352 = OpLoad %int %x_224
OpStore %x_223_phi %352
OpBranch %308
%309 = OpLabel
%353 = OpLoad %bool %x_251_phi
OpSelectionMerge %354 None
OpBranchConditional %353 %355 %354
%355 = OpLabel
OpBranch %306
%354 = OpLabel
OpBranch %306
%306 = OpLabel
OpSelectionMerge %358 None
OpSwitch %uint_0 %359
%359 = OpLabel
OpStore %x_256_phi %int_0
OpBranch %360
%360 = OpLabel
OpLoopMerge %361 %362 None
OpBranch %363
%363 = OpLabel
%368 = OpLoad %int %x_256_phi
OpStore %x_284_phi %false
%369 = OpSLessThanEqual %bool %368 %int_7
OpSelectionMerge %370 None
OpBranchConditional %369 %371 %372
%371 = OpLabel
OpBranch %370
%372 = OpLabel
OpBranch %361
%370 = OpLabel
%373 = OpAccessChain %_ptr_Function_int %tree %368 %uint_0
%374 = OpLoad %int %373
%375 = OpSLessThanEqual %bool %int_6 %374
OpSelectionMerge %376 None
OpBranchConditional %375 %377 %378
%377 = OpLabel
%379 = OpAccessChain %_ptr_Function_int %tree %368 %uint_1
%380 = OpLoad %int %379
%381 = OpIEqual %bool %380 %int_n1
OpSelectionMerge %382 None
OpBranchConditional %381 %383 %384
%383 = OpLabel
%385 = OpAccessChain %_ptr_Function_int %tree %368 %uint_1
OpStore %385 %int_7
%386 = OpAccessChain %_ptr_Function_BST %tree %int_7
OpStore %386 %387
OpStore %x_284_phi %true
OpBranch %361
%384 = OpLabel
%388 = OpAccessChain %_ptr_Function_int %tree %368 %uint_1
%389 = OpLoad %int %388
OpStore %x_282 %389
%390 = OpLoad %int %x_282
OpStore %x_257_phi %390
OpBranch %362
%382 = OpLabel
OpReturn
%378 = OpLabel
%391 = OpAccessChain %_ptr_Function_int %tree %368 %uint_2
%392 = OpLoad %int %391
%393 = OpIEqual %bool %392 %int_n1
OpSelectionMerge %394 None
OpBranchConditional %393 %395 %396
%395 = OpLabel
%397 = OpAccessChain %_ptr_Function_int %tree %368 %uint_2
OpStore %397 %int_7
%398 = OpAccessChain %_ptr_Function_BST %tree %int_7
OpStore %398 %387
OpStore %x_284_phi %true
OpBranch %361
%396 = OpLabel
%399 = OpAccessChain %_ptr_Function_int %tree %368 %uint_2
%400 = OpLoad %int %399
OpStore %x_274 %400
%401 = OpLoad %int %x_274
OpStore %x_257_phi %401
OpBranch %362
%394 = OpLabel
OpReturn
%376 = OpLabel
OpReturn
%362 = OpLabel
%402 = OpLoad %int %x_257_phi
OpStore %x_257 %402
%403 = OpLoad %int %x_257
OpStore %x_256_phi %403
OpBranch %360
%361 = OpLabel
%404 = OpLoad %bool %x_284_phi
OpSelectionMerge %405 None
OpBranchConditional %404 %406 %405
%406 = OpLabel
OpBranch %358
%405 = OpLabel
OpBranch %358
%358 = OpLabel
OpSelectionMerge %409 None
OpSwitch %uint_0 %410
%410 = OpLabel
OpStore %x_289_phi %int_0
OpBranch %411
%411 = OpLabel
OpLoopMerge %412 %413 None
OpBranch %414
%414 = OpLabel
%419 = OpLoad %int %x_289_phi
OpStore %x_317_phi %false
%420 = OpSLessThanEqual %bool %419 %int_8
OpSelectionMerge %421 None
OpBranchConditional %420 %422 %423
%422 = OpLabel
OpBranch %421
%423 = OpLabel
OpBranch %412
%421 = OpLabel
%424 = OpAccessChain %_ptr_Function_int %tree %419 %uint_0
%425 = OpLoad %int %424
%427 = OpSLessThanEqual %bool %int_17 %425
OpSelectionMerge %428 None
OpBranchConditional %427 %429 %430
%429 = OpLabel
%431 = OpAccessChain %_ptr_Function_int %tree %419 %uint_1
%432 = OpLoad %int %431
%433 = OpIEqual %bool %432 %int_n1
OpSelectionMerge %434 None
OpBranchConditional %433 %435 %436
%435 = OpLabel
%437 = OpAccessChain %_ptr_Function_int %tree %419 %uint_1
OpStore %437 %int_8
%438 = OpAccessChain %_ptr_Function_BST %tree %int_8
OpStore %438 %439
OpStore %x_317_phi %true
OpBranch %412
%436 = OpLabel
%440 = OpAccessChain %_ptr_Function_int %tree %419 %uint_1
%441 = OpLoad %int %440
OpStore %x_315 %441
%442 = OpLoad %int %x_315
OpStore %x_290_phi %442
OpBranch %413
%434 = OpLabel
OpReturn
%430 = OpLabel
%443 = OpAccessChain %_ptr_Function_int %tree %419 %uint_2
%444 = OpLoad %int %443
%445 = OpIEqual %bool %444 %int_n1
OpSelectionMerge %446 None
OpBranchConditional %445 %447 %448
%447 = OpLabel
%449 = OpAccessChain %_ptr_Function_int %tree %419 %uint_2
OpStore %449 %int_8
%450 = OpAccessChain %_ptr_Function_BST %tree %int_8
OpStore %450 %439
OpStore %x_317_phi %true
OpBranch %412
%448 = OpLabel
%451 = OpAccessChain %_ptr_Function_int %tree %419 %uint_2
%452 = OpLoad %int %451
OpStore %x_307 %452
%453 = OpLoad %int %x_307
OpStore %x_290_phi %453
OpBranch %413
%446 = OpLabel
OpReturn
%428 = OpLabel
OpReturn
%413 = OpLabel
%454 = OpLoad %int %x_290_phi
OpStore %x_290 %454
%455 = OpLoad %int %x_290
OpStore %x_289_phi %455
OpBranch %411
%412 = OpLabel
%456 = OpLoad %bool %x_317_phi
OpSelectionMerge %457 None
OpBranchConditional %456 %458 %457
%458 = OpLabel
OpBranch %409
%457 = OpLabel
OpBranch %409
%409 = OpLabel
OpSelectionMerge %461 None
OpSwitch %uint_0 %462
%462 = OpLabel
OpStore %x_322_phi %int_0
OpBranch %463
%463 = OpLabel
OpLoopMerge %464 %465 None
OpBranch %466
%466 = OpLabel
%471 = OpLoad %int %x_322_phi
OpStore %x_350_phi %false
%472 = OpSLessThanEqual %bool %471 %int_9
OpSelectionMerge %473 None
OpBranchConditional %472 %474 %475
%474 = OpLabel
OpBranch %473
%475 = OpLabel
OpBranch %464
%473 = OpLabel
%476 = OpAccessChain %_ptr_Function_int %tree %471 %uint_0
%477 = OpLoad %int %476
%479 = OpSLessThanEqual %bool %int_13 %477
OpSelectionMerge %480 None
OpBranchConditional %479 %481 %482
%481 = OpLabel
%483 = OpAccessChain %_ptr_Function_int %tree %471 %uint_1
%484 = OpLoad %int %483
%485 = OpIEqual %bool %484 %int_n1
OpSelectionMerge %486 None
OpBranchConditional %485 %487 %488
%487 = OpLabel
%489 = OpAccessChain %_ptr_Function_int %tree %471 %uint_1
OpStore %489 %int_9
%490 = OpAccessChain %_ptr_Function_BST %tree %int_9
OpStore %490 %491
OpStore %x_350_phi %true
OpBranch %464
%488 = OpLabel
%492 = OpAccessChain %_ptr_Function_int %tree %471 %uint_1
%493 = OpLoad %int %492
OpStore %x_348 %493
%494 = OpLoad %int %x_348
OpStore %x_323_phi %494
OpBranch %465
%486 = OpLabel
OpReturn
%482 = OpLabel
%495 = OpAccessChain %_ptr_Function_int %tree %471 %uint_2
%496 = OpLoad %int %495
%497 = OpIEqual %bool %496 %int_n1
OpSelectionMerge %498 None
OpBranchConditional %497 %499 %500
%499 = OpLabel
%501 = OpAccessChain %_ptr_Function_int %tree %471 %uint_2
OpStore %501 %int_9
%502 = OpAccessChain %_ptr_Function_BST %tree %int_9
OpStore %502 %491
OpStore %x_350_phi %true
OpBranch %464
%500 = OpLabel
%503 = OpAccessChain %_ptr_Function_int %tree %471 %uint_2
%504 = OpLoad %int %503
OpStore %x_340 %504
%505 = OpLoad %int %x_340
OpStore %x_323_phi %505
OpBranch %465
%498 = OpLabel
OpReturn
%480 = OpLabel
OpReturn
%465 = OpLabel
%506 = OpLoad %int %x_323_phi
OpStore %x_323 %506
%507 = OpLoad %int %x_323
OpStore %x_322_phi %507
OpBranch %463
%464 = OpLabel
%508 = OpLoad %bool %x_350_phi
OpSelectionMerge %509 None
OpBranchConditional %508 %510 %509
%510 = OpLabel
OpBranch %461
%509 = OpLabel
OpBranch %461
%461 = OpLabel
OpStore %x_353_phi %int_0
OpStore %x_356_phi %int_0
OpStore %x_358_phi %int_0
OpBranch %511
%511 = OpLabel
OpLoopMerge %512 %513 None
OpBranch %514
%514 = OpLabel
%521 = OpLoad %int %x_353_phi
%522 = OpLoad %int %x_356_phi
OpStore %x_356 %522
%523 = OpLoad %int %x_358_phi
%525 = OpSLessThan %bool %523 %int_20
OpSelectionMerge %526 None
OpBranchConditional %525 %527 %528
%527 = OpLabel
OpBranch %526
%528 = OpLabel
OpBranch %512
%526 = OpLabel
OpSelectionMerge %532 None
OpSwitch %uint_0 %533
%533 = OpLabel
OpStore %x_366_phi %int_0
OpBranch %534
%534 = OpLabel
OpLoopMerge %535 %536 None
OpBranch %537
%537 = OpLabel
%538 = OpLoad %int %x_366_phi
OpStore %x_381_phi %521
OpStore %x_382_phi %false
%539 = OpINotEqual %bool %538 %int_n1
OpSelectionMerge %540 None
OpBranchConditional %539 %541 %542
%541 = OpLabel
OpBranch %540
%542 = OpLabel
OpBranch %535
%540 = OpLabel
%543 = OpAccessChain %_ptr_Function_BST %tree %538
%544 = OpLoad %BST %543
%545 = OpCompositeExtract %int %544 0
%546 = OpCompositeExtract %int %544 1
%547 = OpCompositeExtract %int %544 2
%548 = OpIEqual %bool %545 %523
OpSelectionMerge %549 None
OpBranchConditional %548 %550 %549
%550 = OpLabel
OpStore %x_381_phi %523
OpStore %x_382_phi %true
OpBranch %535
%549 = OpLabel
OpBranch %536
%536 = OpLabel
%552 = OpSGreaterThan %bool %523 %545
%551 = OpSelect %int %552 %547 %546
OpStore %x_366_phi %551
OpBranch %534
%535 = OpLabel
%553 = OpLoad %int %x_381_phi
OpStore %x_381 %553
%554 = OpLoad %bool %x_382_phi
%555 = OpLoad %int %x_381
OpStore %x_354_phi %555
OpSelectionMerge %556 None
OpBranchConditional %554 %557 %556
%557 = OpLabel
OpBranch %532
%556 = OpLabel
OpStore %x_354_phi %int_n1
OpBranch %532
%532 = OpLabel
%563 = OpLoad %int %x_354_phi
OpStore %x_354 %563
OpSelectionMerge %564 None
OpSwitch %523 %565 2 %566 5 %566 6 %566 7 %566 8 %566 9 %566 12 %566 13 %566 15 %566 17 %566
%566 = OpLabel
%567 = OpLoad %int %x_356
OpStore %x_391_phi %567
%568 = OpLoad %int %x_354
%569 = OpCopyObject %int %523
%570 = OpIEqual %bool %568 %569
OpSelectionMerge %571 None
OpBranchConditional %570 %572 %571
%572 = OpLabel
%574 = OpLoad %int %x_356
%575 = OpCopyObject %int %int_1
%576 = OpIAdd %int %574 %575
%573 = OpCopyObject %int %576
OpStore %x_390 %573
%577 = OpLoad %int %x_390
OpStore %x_391_phi %577
OpBranch %571
%571 = OpLabel
%578 = OpLoad %int %x_391_phi
OpStore %x_391 %578
%579 = OpLoad %int %x_391
OpStore %x_357_phi %579
OpBranch %564
%565 = OpLabel
%580 = OpLoad %int %x_356
OpStore %x_396_phi %580
%581 = OpLoad %int %x_354
%582 = OpCopyObject %int %int_n1
%583 = OpIEqual %bool %581 %582
OpSelectionMerge %584 None
OpBranchConditional %583 %585 %584
%585 = OpLabel
%587 = OpLoad %int %x_356
%588 = OpCopyObject %int %int_1
%589 = OpIAdd %int %587 %588
%586 = OpCopyObject %int %589
OpStore %x_395 %586
%590 = OpLoad %int %x_395
OpStore %x_396_phi %590
OpBranch %584
%584 = OpLabel
%591 = OpLoad %int %x_396_phi
OpStore %x_396 %591
%592 = OpLoad %int %x_396
OpStore %x_357_phi %592
OpBranch %564
%564 = OpLabel
%593 = OpLoad %int %x_357_phi
OpBranch %513
%513 = OpLabel
%594 = OpIAdd %int %523 %int_1
OpStore %x_359 %594
%595 = OpLoad %int %x_354
OpStore %x_353_phi %595
OpStore %x_356_phi %593
%596 = OpLoad %int %x_359
OpStore %x_358_phi %596
OpBranch %511
%512 = OpLabel
%597 = OpLoad %int %x_356
%598 = OpCopyObject %int %int_20
%599 = OpIEqual %bool %597 %598
OpSelectionMerge %600 None
OpBranchConditional %599 %601 %602
%601 = OpLabel
OpStore %x_GLF_color %605
OpBranch %600
%602 = OpLabel
OpStore %x_GLF_color %606
OpBranch %600
%600 = OpLabel
OpReturn
OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %607
%tint_symbol = OpFunctionParameter %main_out
%611 = OpLabel
%612 = OpCompositeExtract %v4float %tint_symbol 0
OpStore %tint_symbol_1 %612
OpReturn
OpFunctionEnd
%main = OpFunction %void None %8
%614 = OpLabel
%615 = OpFunctionCall %void %main_1
%617 = OpLoad %v4float %x_GLF_color
%618 = OpCompositeConstruct %main_out %617
%616 = OpFunctionCall %void %tint_symbol_2 %618
OpReturn
OpFunctionEnd