blob: 41d75a5c09518ea9eadd1b4c26056e4fbfd38cfc [file] [log] [blame]
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 1006
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
OpExecutionMode %main OriginUpperLeft
OpName %buf0 "buf0"
OpMemberName %buf0 0 "injectionSwitch"
OpName %x_8 "x_8"
OpName %gl_FragCoord "gl_FragCoord"
OpName %x_GLF_color "x_GLF_color"
OpName %tint_symbol "tint_symbol"
OpName %tint_symbol_2 "tint_symbol_2"
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_67 "x_67"
OpName %x_114 "x_114"
OpName %x_572 "x_572"
OpName %x_67_phi "x_67_phi"
OpName %x_70_phi "x_70_phi"
OpName %x_116_phi "x_116_phi"
OpName %x_119_phi "x_119_phi"
OpName %x_569_phi "x_569_phi"
OpName %x_572_phi "x_572_phi"
OpName %x_574_phi "x_574_phi"
OpName %x_95 "x_95"
OpName %x_87 "x_87"
OpName %x_68 "x_68"
OpName %x_71 "x_71"
OpName %x_68_phi "x_68_phi"
OpName %x_71_phi "x_71_phi"
OpName %x_114_phi "x_114_phi"
OpName %x_133 "x_133"
OpName %x_120 "x_120"
OpName %x_134_phi "x_134_phi"
OpName %x_139 "x_139"
OpName %x_186 "x_186"
OpName %x_139_phi "x_139_phi"
OpName %x_142_phi "x_142_phi"
OpName %x_188_phi "x_188_phi"
OpName %x_167 "x_167"
OpName %x_159 "x_159"
OpName %x_140 "x_140"
OpName %x_143 "x_143"
OpName %x_140_phi "x_140_phi"
OpName %x_143_phi "x_143_phi"
OpName %x_186_phi "x_186_phi"
OpName %x_193 "x_193"
OpName %x_240 "x_240"
OpName %x_193_phi "x_193_phi"
OpName %x_196_phi "x_196_phi"
OpName %x_242_phi "x_242_phi"
OpName %x_221 "x_221"
OpName %x_213 "x_213"
OpName %x_194 "x_194"
OpName %x_197 "x_197"
OpName %x_194_phi "x_194_phi"
OpName %x_197_phi "x_197_phi"
OpName %x_240_phi "x_240_phi"
OpName %x_247 "x_247"
OpName %x_294 "x_294"
OpName %x_247_phi "x_247_phi"
OpName %x_250_phi "x_250_phi"
OpName %x_296_phi "x_296_phi"
OpName %x_275 "x_275"
OpName %x_267 "x_267"
OpName %x_248 "x_248"
OpName %x_251 "x_251"
OpName %x_248_phi "x_248_phi"
OpName %x_251_phi "x_251_phi"
OpName %x_294_phi "x_294_phi"
OpName %x_301 "x_301"
OpName %x_348 "x_348"
OpName %x_301_phi "x_301_phi"
OpName %x_304_phi "x_304_phi"
OpName %x_350_phi "x_350_phi"
OpName %x_329 "x_329"
OpName %x_321 "x_321"
OpName %x_302 "x_302"
OpName %x_305 "x_305"
OpName %x_302_phi "x_302_phi"
OpName %x_305_phi "x_305_phi"
OpName %x_348_phi "x_348_phi"
OpName %x_355 "x_355"
OpName %x_402 "x_402"
OpName %x_355_phi "x_355_phi"
OpName %x_358_phi "x_358_phi"
OpName %x_404_phi "x_404_phi"
OpName %x_383 "x_383"
OpName %x_375 "x_375"
OpName %x_356 "x_356"
OpName %x_359 "x_359"
OpName %x_356_phi "x_356_phi"
OpName %x_359_phi "x_359_phi"
OpName %x_402_phi "x_402_phi"
OpName %x_409 "x_409"
OpName %x_456 "x_456"
OpName %x_409_phi "x_409_phi"
OpName %x_412_phi "x_412_phi"
OpName %x_458_phi "x_458_phi"
OpName %x_437 "x_437"
OpName %x_429 "x_429"
OpName %x_410 "x_410"
OpName %x_413 "x_413"
OpName %x_410_phi "x_410_phi"
OpName %x_413_phi "x_413_phi"
OpName %x_456_phi "x_456_phi"
OpName %x_463 "x_463"
OpName %x_510 "x_510"
OpName %x_463_phi "x_463_phi"
OpName %x_466_phi "x_466_phi"
OpName %x_512_phi "x_512_phi"
OpName %x_491 "x_491"
OpName %x_483 "x_483"
OpName %x_464 "x_464"
OpName %x_467 "x_467"
OpName %x_464_phi "x_464_phi"
OpName %x_467_phi "x_467_phi"
OpName %x_510_phi "x_510_phi"
OpName %x_517 "x_517"
OpName %x_564 "x_564"
OpName %x_517_phi "x_517_phi"
OpName %x_520_phi "x_520_phi"
OpName %x_566_phi "x_566_phi"
OpName %x_545 "x_545"
OpName %x_537 "x_537"
OpName %x_518 "x_518"
OpName %x_521 "x_521"
OpName %x_518_phi "x_518_phi"
OpName %x_521_phi "x_521_phi"
OpName %x_564_phi "x_564_phi"
OpName %x_597 "x_597"
OpName %x_607 "x_607"
OpName %x_612 "x_612"
OpName %x_575 "x_575"
OpName %x_570_phi "x_570_phi"
OpName %x_573_phi "x_573_phi"
OpName %x_582_phi "x_582_phi"
OpName %x_597_phi "x_597_phi"
OpName %x_598_phi "x_598_phi"
OpName %x_570 "x_570"
OpName %x_606 "x_606"
OpName %x_611 "x_611"
OpName %x_607_phi "x_607_phi"
OpName %x_612_phi "x_612_phi"
OpName %main_out "main_out"
OpMemberName %main_out 0 "x_GLF_color_1"
OpName %tint_symbol_3 "tint_symbol_3"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %main "main"
OpDecorate %buf0 Block
OpMemberDecorate %buf0 0 Offset 0
OpDecorate %x_8 NonWritable
OpDecorate %x_8 DescriptorSet 0
OpDecorate %x_8 Binding 0
OpDecorate %tint_symbol BuiltIn FragCoord
OpDecorate %tint_symbol_2 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
%v2float = OpTypeVector %float 2
%buf0 = OpTypeStruct %v2float
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
%x_8 = OpVariable %_ptr_Uniform_buf0 Uniform
%v4float = OpTypeVector %float 4
%_ptr_Private_v4float = OpTypePointer Private %v4float
%9 = OpConstantNull %v4float
%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %9
%x_GLF_color = OpVariable %_ptr_Private_v4float Private %9
%_ptr_Input_v4float = OpTypePointer Input %v4float
%tint_symbol = OpVariable %_ptr_Input_v4float Input
%_ptr_Output_v4float = OpTypePointer Output %v4float
%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %9
%void = OpTypeVoid
%15 = 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
%26 = OpConstantNull %_arr_BST_uint_10
%bool = OpTypeBool
%_ptr_Function_bool = OpTypePointer Function %bool
%30 = OpConstantNull %bool
%_ptr_Function_int = OpTypePointer Function %int
%34 = OpConstantNull %int
%int_0 = OpConstant %int 0
%_ptr_Function_BST = OpTypePointer Function %BST
%int_9 = OpConstant %int 9
%int_n1 = OpConstant %int -1
%47 = 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
%_ptr_Uniform_float = OpTypePointer Uniform %float
%99 = OpConstantComposite %BST %int_5 %int_n1 %int_n1
%true = OpConstantTrue %bool
%uint_2 = OpConstant %uint 2
%_ptr_Private_float = OpTypePointer Private %float
%float_0 = OpConstant %float 0
%int_2 = OpConstant %int 2
%int_12 = OpConstant %int 12
%218 = OpConstantComposite %BST %int_12 %int_n1 %int_n1
%int_3 = OpConstant %int 3
%int_15 = OpConstant %int 15
%312 = OpConstantComposite %BST %int_15 %int_n1 %int_n1
%int_4 = OpConstant %int 4
%int_7 = OpConstant %int 7
%404 = OpConstantComposite %BST %int_7 %int_n1 %int_n1
%int_8 = OpConstant %int 8
%495 = OpConstantComposite %BST %int_8 %int_n1 %int_n1
%int_6 = OpConstant %int 6
%586 = OpConstantComposite %BST %int_2 %int_n1 %int_n1
%676 = OpConstantComposite %BST %int_6 %int_n1 %int_n1
%int_17 = OpConstant %int 17
%767 = OpConstantComposite %BST %int_17 %int_n1 %int_n1
%int_13 = OpConstant %int 13
%858 = OpConstantComposite %BST %int_13 %int_n1 %int_n1
%int_20 = OpConstant %int 20
%float_1 = OpConstant %float 1
%991 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
%992 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
%main_out = OpTypeStruct %v4float
%993 = OpTypeFunction %void %main_out
%main_1 = OpFunction %void None %15
%18 = OpLabel
%tree = OpVariable %_ptr_Function__arr_BST_uint_10 Function %26
%x_67 = OpVariable %_ptr_Function_bool Function %30
%x_114 = OpVariable %_ptr_Function_bool Function %30
%x_572 = OpVariable %_ptr_Function_int Function %34
%x_67_phi = OpVariable %_ptr_Function_bool Function %30
%x_70_phi = OpVariable %_ptr_Function_int Function %34
%x_116_phi = OpVariable %_ptr_Function_bool Function %30
%x_119_phi = OpVariable %_ptr_Function_int Function %34
%x_569_phi = OpVariable %_ptr_Function_int Function %34
%x_572_phi = OpVariable %_ptr_Function_int Function %34
%x_574_phi = OpVariable %_ptr_Function_int Function %34
%x_95 = OpVariable %_ptr_Function_int Function %34
%x_87 = OpVariable %_ptr_Function_int Function %34
%x_68 = OpVariable %_ptr_Function_bool Function %30
%x_71 = OpVariable %_ptr_Function_int Function %34
%x_68_phi = OpVariable %_ptr_Function_bool Function %30
%x_71_phi = OpVariable %_ptr_Function_int Function %34
%x_114_phi = OpVariable %_ptr_Function_bool Function %30
%x_133 = OpVariable %_ptr_Function_bool Function %30
%x_120 = OpVariable %_ptr_Function_int Function %34
%x_134_phi = OpVariable %_ptr_Function_bool Function %30
%x_139 = OpVariable %_ptr_Function_bool Function %30
%x_186 = OpVariable %_ptr_Function_bool Function %30
%x_139_phi = OpVariable %_ptr_Function_bool Function %30
%x_142_phi = OpVariable %_ptr_Function_int Function %34
%x_188_phi = OpVariable %_ptr_Function_bool Function %30
%x_167 = OpVariable %_ptr_Function_int Function %34
%x_159 = OpVariable %_ptr_Function_int Function %34
%x_140 = OpVariable %_ptr_Function_bool Function %30
%x_143 = OpVariable %_ptr_Function_int Function %34
%x_140_phi = OpVariable %_ptr_Function_bool Function %30
%x_143_phi = OpVariable %_ptr_Function_int Function %34
%x_186_phi = OpVariable %_ptr_Function_bool Function %30
%x_193 = OpVariable %_ptr_Function_bool Function %30
%x_240 = OpVariable %_ptr_Function_bool Function %30
%x_193_phi = OpVariable %_ptr_Function_bool Function %30
%x_196_phi = OpVariable %_ptr_Function_int Function %34
%x_242_phi = OpVariable %_ptr_Function_bool Function %30
%x_221 = OpVariable %_ptr_Function_int Function %34
%x_213 = OpVariable %_ptr_Function_int Function %34
%x_194 = OpVariable %_ptr_Function_bool Function %30
%x_197 = OpVariable %_ptr_Function_int Function %34
%x_194_phi = OpVariable %_ptr_Function_bool Function %30
%x_197_phi = OpVariable %_ptr_Function_int Function %34
%x_240_phi = OpVariable %_ptr_Function_bool Function %30
%x_247 = OpVariable %_ptr_Function_bool Function %30
%x_294 = OpVariable %_ptr_Function_bool Function %30
%x_247_phi = OpVariable %_ptr_Function_bool Function %30
%x_250_phi = OpVariable %_ptr_Function_int Function %34
%x_296_phi = OpVariable %_ptr_Function_bool Function %30
%x_275 = OpVariable %_ptr_Function_int Function %34
%x_267 = OpVariable %_ptr_Function_int Function %34
%x_248 = OpVariable %_ptr_Function_bool Function %30
%x_251 = OpVariable %_ptr_Function_int Function %34
%x_248_phi = OpVariable %_ptr_Function_bool Function %30
%x_251_phi = OpVariable %_ptr_Function_int Function %34
%x_294_phi = OpVariable %_ptr_Function_bool Function %30
%x_301 = OpVariable %_ptr_Function_bool Function %30
%x_348 = OpVariable %_ptr_Function_bool Function %30
%x_301_phi = OpVariable %_ptr_Function_bool Function %30
%x_304_phi = OpVariable %_ptr_Function_int Function %34
%x_350_phi = OpVariable %_ptr_Function_bool Function %30
%x_329 = OpVariable %_ptr_Function_int Function %34
%x_321 = OpVariable %_ptr_Function_int Function %34
%x_302 = OpVariable %_ptr_Function_bool Function %30
%x_305 = OpVariable %_ptr_Function_int Function %34
%x_302_phi = OpVariable %_ptr_Function_bool Function %30
%x_305_phi = OpVariable %_ptr_Function_int Function %34
%x_348_phi = OpVariable %_ptr_Function_bool Function %30
%x_355 = OpVariable %_ptr_Function_bool Function %30
%x_402 = OpVariable %_ptr_Function_bool Function %30
%x_355_phi = OpVariable %_ptr_Function_bool Function %30
%x_358_phi = OpVariable %_ptr_Function_int Function %34
%x_404_phi = OpVariable %_ptr_Function_bool Function %30
%x_383 = OpVariable %_ptr_Function_int Function %34
%x_375 = OpVariable %_ptr_Function_int Function %34
%x_356 = OpVariable %_ptr_Function_bool Function %30
%x_359 = OpVariable %_ptr_Function_int Function %34
%x_356_phi = OpVariable %_ptr_Function_bool Function %30
%x_359_phi = OpVariable %_ptr_Function_int Function %34
%x_402_phi = OpVariable %_ptr_Function_bool Function %30
%x_409 = OpVariable %_ptr_Function_bool Function %30
%x_456 = OpVariable %_ptr_Function_bool Function %30
%x_409_phi = OpVariable %_ptr_Function_bool Function %30
%x_412_phi = OpVariable %_ptr_Function_int Function %34
%x_458_phi = OpVariable %_ptr_Function_bool Function %30
%x_437 = OpVariable %_ptr_Function_int Function %34
%x_429 = OpVariable %_ptr_Function_int Function %34
%x_410 = OpVariable %_ptr_Function_bool Function %30
%x_413 = OpVariable %_ptr_Function_int Function %34
%x_410_phi = OpVariable %_ptr_Function_bool Function %30
%x_413_phi = OpVariable %_ptr_Function_int Function %34
%x_456_phi = OpVariable %_ptr_Function_bool Function %30
%x_463 = OpVariable %_ptr_Function_bool Function %30
%x_510 = OpVariable %_ptr_Function_bool Function %30
%x_463_phi = OpVariable %_ptr_Function_bool Function %30
%x_466_phi = OpVariable %_ptr_Function_int Function %34
%x_512_phi = OpVariable %_ptr_Function_bool Function %30
%x_491 = OpVariable %_ptr_Function_int Function %34
%x_483 = OpVariable %_ptr_Function_int Function %34
%x_464 = OpVariable %_ptr_Function_bool Function %30
%x_467 = OpVariable %_ptr_Function_int Function %34
%x_464_phi = OpVariable %_ptr_Function_bool Function %30
%x_467_phi = OpVariable %_ptr_Function_int Function %34
%x_510_phi = OpVariable %_ptr_Function_bool Function %30
%x_517 = OpVariable %_ptr_Function_bool Function %30
%x_564 = OpVariable %_ptr_Function_bool Function %30
%x_517_phi = OpVariable %_ptr_Function_bool Function %30
%x_520_phi = OpVariable %_ptr_Function_int Function %34
%x_566_phi = OpVariable %_ptr_Function_bool Function %30
%x_545 = OpVariable %_ptr_Function_int Function %34
%x_537 = OpVariable %_ptr_Function_int Function %34
%x_518 = OpVariable %_ptr_Function_bool Function %30
%x_521 = OpVariable %_ptr_Function_int Function %34
%x_518_phi = OpVariable %_ptr_Function_bool Function %30
%x_521_phi = OpVariable %_ptr_Function_int Function %34
%x_564_phi = OpVariable %_ptr_Function_bool Function %30
%x_597 = OpVariable %_ptr_Function_int Function %34
%x_607 = OpVariable %_ptr_Function_int Function %34
%x_612 = OpVariable %_ptr_Function_int Function %34
%x_575 = OpVariable %_ptr_Function_int Function %34
%x_570_phi = OpVariable %_ptr_Function_int Function %34
%x_573_phi = OpVariable %_ptr_Function_int Function %34
%x_582_phi = OpVariable %_ptr_Function_int Function %34
%x_597_phi = OpVariable %_ptr_Function_int Function %34
%x_598_phi = OpVariable %_ptr_Function_bool Function %30
%x_570 = OpVariable %_ptr_Function_int Function %34
%x_606 = OpVariable %_ptr_Function_int Function %34
%x_611 = OpVariable %_ptr_Function_int Function %34
%x_607_phi = OpVariable %_ptr_Function_int Function %34
%x_612_phi = OpVariable %_ptr_Function_int Function %34
%44 = OpAccessChain %_ptr_Function_BST %tree %int_0
OpStore %44 %47
OpSelectionMerge %48 None
OpSwitch %uint_0 %50
%50 = OpLabel
OpStore %x_67_phi %false
OpStore %x_70_phi %int_0
OpBranch %52
%52 = OpLabel
OpLoopMerge %53 %54 None
OpBranch %55
%55 = OpLabel
%62 = OpLoad %bool %x_67_phi
OpStore %x_67 %62
%63 = OpLoad %int %x_70_phi
%64 = OpLoad %bool %x_67
OpStore %x_116_phi %64
%66 = OpSLessThanEqual %bool %63 %int_1
OpSelectionMerge %67 None
OpBranchConditional %66 %68 %69
%68 = OpLabel
OpBranch %67
%69 = OpLabel
OpBranch %53
%67 = OpLabel
%70 = OpAccessChain %_ptr_Function_int %tree %63 %uint_0
%71 = OpLoad %int %70
%73 = OpSLessThanEqual %bool %int_5 %71
OpSelectionMerge %74 None
OpBranchConditional %73 %75 %76
%75 = OpLabel
%79 = OpAccessChain %_ptr_Function_int %tree %63 %uint_1
%80 = OpLoad %int %79
%81 = OpIEqual %bool %80 %int_n1
OpSelectionMerge %82 None
OpBranchConditional %81 %83 %84
%83 = OpLabel
%86 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1
%87 = OpLoad %float %86
%88 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_0
%89 = OpLoad %float %88
%90 = OpFOrdLessThan %bool %87 %89
OpSelectionMerge %91 None
OpBranchConditional %90 %92 %91
%92 = OpLabel
OpBranch %93
%93 = OpLabel
OpLoopMerge %94 %95 None
OpBranch %96
%96 = OpLabel
OpKill
%95 = OpLabel
OpBranch %93
%94 = OpLabel
OpReturn
%91 = OpLabel
%97 = OpAccessChain %_ptr_Function_int %tree %63 %uint_1
OpStore %97 %int_1
%98 = OpAccessChain %_ptr_Function_BST %tree %int_1
OpStore %98 %99
OpBranch %100
%100 = OpLabel
OpLoopMerge %101 %102 None
OpBranch %103
%103 = OpLabel
%104 = OpLoad %bool %x_67
OpStore %x_114_phi %104
%105 = OpConvertFToS %int %87
%106 = OpSLessThan %bool %int_0 %105
OpSelectionMerge %107 None
OpBranchConditional %106 %108 %109
%108 = OpLabel
OpBranch %107
%109 = OpLabel
OpBranch %101
%107 = OpLabel
OpStore %x_114_phi %true
OpBranch %101
%102 = OpLabel
OpBranch %100
%101 = OpLabel
%111 = OpLoad %bool %x_114_phi
OpStore %x_114 %111
%112 = OpLoad %bool %x_114
OpStore %x_116_phi %112
%113 = OpLoad %bool %x_114
OpSelectionMerge %114 None
OpBranchConditional %113 %115 %114
%115 = OpLabel
OpBranch %53
%114 = OpLabel
OpBranch %82
%84 = OpLabel
%116 = OpAccessChain %_ptr_Function_int %tree %63 %uint_1
%117 = OpLoad %int %116
OpStore %x_95 %117
%118 = OpLoad %bool %x_67
OpStore %x_68_phi %118
%119 = OpLoad %int %x_95
OpStore %x_71_phi %119
OpBranch %54
%82 = OpLabel
OpBranch %74
%76 = OpLabel
%121 = OpAccessChain %_ptr_Function_int %tree %63 %uint_2
%122 = OpLoad %int %121
%123 = OpIEqual %bool %122 %int_n1
OpSelectionMerge %124 None
OpBranchConditional %123 %125 %126
%125 = OpLabel
%127 = OpAccessChain %_ptr_Function_int %tree %63 %uint_2
OpStore %127 %int_1
%128 = OpAccessChain %_ptr_Function_BST %tree %int_1
OpStore %128 %99
OpStore %x_116_phi %true
OpBranch %53
%126 = OpLabel
%129 = OpAccessChain %_ptr_Function_int %tree %63 %uint_2
%130 = OpLoad %int %129
OpStore %x_87 %130
%131 = OpLoad %bool %x_67
OpStore %x_68_phi %131
%132 = OpLoad %int %x_87
OpStore %x_71_phi %132
OpBranch %54
%124 = OpLabel
OpReturn
%74 = OpLabel
%133 = OpLoad %bool %x_114
OpStore %x_68_phi %133
OpStore %x_71_phi %63
OpBranch %54
%54 = OpLabel
%134 = OpLoad %bool %x_68_phi
OpStore %x_68 %134
%135 = OpLoad %int %x_71_phi
OpStore %x_71 %135
%136 = OpLoad %bool %x_68
OpStore %x_67_phi %136
%137 = OpLoad %int %x_71
OpStore %x_70_phi %137
OpBranch %52
%53 = OpLabel
%138 = OpLoad %bool %x_116_phi
OpSelectionMerge %139 None
OpBranchConditional %138 %140 %139
%140 = OpLabel
OpBranch %48
%139 = OpLabel
OpBranch %48
%48 = OpLabel
OpStore %x_119_phi %int_0
OpBranch %141
%141 = OpLabel
OpLoopMerge %142 %143 None
OpBranch %144
%144 = OpLabel
%148 = OpLoad %int %x_119_phi
%150 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1
%151 = OpLoad %float %150
%153 = OpFOrdLessThan %bool %151 %float_0
OpStore %x_134_phi %153
%154 = OpLogicalNot %bool %153
OpSelectionMerge %155 None
OpBranchConditional %154 %156 %155
%156 = OpLabel
%157 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1
%158 = OpLoad %float %157
%159 = OpConvertFToS %int %158
%160 = OpINotEqual %bool %148 %159
OpStore %x_133 %160
%161 = OpLoad %bool %x_133
OpStore %x_134_phi %161
OpBranch %155
%155 = OpLabel
%162 = OpLoad %bool %x_134_phi
OpSelectionMerge %163 None
OpBranchConditional %162 %164 %165
%164 = OpLabel
OpBranch %163
%165 = OpLabel
OpBranch %142
%163 = OpLabel
OpSelectionMerge %171 None
OpSwitch %uint_0 %172
%172 = OpLabel
OpStore %x_139_phi %false
OpStore %x_142_phi %int_0
OpBranch %173
%173 = OpLabel
OpLoopMerge %174 %175 None
OpBranch %176
%176 = OpLabel
%183 = OpLoad %bool %x_139_phi
OpStore %x_139 %183
%184 = OpLoad %int %x_142_phi
%185 = OpLoad %bool %x_139
OpStore %x_188_phi %185
%187 = OpSLessThanEqual %bool %184 %int_2
OpSelectionMerge %188 None
OpBranchConditional %187 %189 %190
%189 = OpLabel
OpBranch %188
%190 = OpLabel
OpBranch %174
%188 = OpLabel
%191 = OpAccessChain %_ptr_Function_int %tree %184 %uint_0
%192 = OpLoad %int %191
%194 = OpSLessThanEqual %bool %int_12 %192
OpSelectionMerge %195 None
OpBranchConditional %194 %196 %197
%196 = OpLabel
%199 = OpAccessChain %_ptr_Function_int %tree %184 %uint_1
%200 = OpLoad %int %199
%201 = OpIEqual %bool %200 %int_n1
OpSelectionMerge %202 None
OpBranchConditional %201 %203 %204
%203 = OpLabel
%205 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1
%206 = OpLoad %float %205
%207 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_0
%208 = OpLoad %float %207
%209 = OpFOrdLessThan %bool %206 %208
OpSelectionMerge %210 None
OpBranchConditional %209 %211 %210
%211 = OpLabel
OpBranch %212
%212 = OpLabel
OpLoopMerge %213 %214 None
OpBranch %215
%215 = OpLabel
OpKill
%214 = OpLabel
OpBranch %212
%213 = OpLabel
OpReturn
%210 = OpLabel
%216 = OpAccessChain %_ptr_Function_int %tree %184 %uint_1
OpStore %216 %int_2
%217 = OpAccessChain %_ptr_Function_BST %tree %int_2
OpStore %217 %218
OpBranch %219
%219 = OpLabel
OpLoopMerge %220 %221 None
OpBranch %222
%222 = OpLabel
%223 = OpLoad %bool %x_139
OpStore %x_186_phi %223
%224 = OpConvertFToS %int %206
%225 = OpSLessThan %bool %int_0 %224
OpSelectionMerge %226 None
OpBranchConditional %225 %227 %228
%227 = OpLabel
OpBranch %226
%228 = OpLabel
OpBranch %220
%226 = OpLabel
OpStore %x_186_phi %true
OpBranch %220
%221 = OpLabel
OpBranch %219
%220 = OpLabel
%229 = OpLoad %bool %x_186_phi
OpStore %x_186 %229
%230 = OpLoad %bool %x_186
OpStore %x_188_phi %230
%231 = OpLoad %bool %x_186
OpSelectionMerge %232 None
OpBranchConditional %231 %233 %232
%233 = OpLabel
OpBranch %174
%232 = OpLabel
OpBranch %202
%204 = OpLabel
%234 = OpAccessChain %_ptr_Function_int %tree %184 %uint_1
%235 = OpLoad %int %234
OpStore %x_167 %235
%236 = OpLoad %bool %x_139
OpStore %x_140_phi %236
%237 = OpLoad %int %x_167
OpStore %x_143_phi %237
OpBranch %175
%202 = OpLabel
OpBranch %195
%197 = OpLabel
%238 = OpAccessChain %_ptr_Function_int %tree %184 %uint_2
%239 = OpLoad %int %238
%240 = OpIEqual %bool %239 %int_n1
OpSelectionMerge %241 None
OpBranchConditional %240 %242 %243
%242 = OpLabel
%244 = OpAccessChain %_ptr_Function_int %tree %184 %uint_2
OpStore %244 %int_2
%245 = OpAccessChain %_ptr_Function_BST %tree %int_2
OpStore %245 %218
OpStore %x_188_phi %true
OpBranch %174
%243 = OpLabel
%246 = OpAccessChain %_ptr_Function_int %tree %184 %uint_2
%247 = OpLoad %int %246
OpStore %x_159 %247
%248 = OpLoad %bool %x_139
OpStore %x_140_phi %248
%249 = OpLoad %int %x_159
OpStore %x_143_phi %249
OpBranch %175
%241 = OpLabel
OpReturn
%195 = OpLabel
%250 = OpLoad %bool %x_186
OpStore %x_140_phi %250
OpStore %x_143_phi %184
OpBranch %175
%175 = OpLabel
%251 = OpLoad %bool %x_140_phi
OpStore %x_140 %251
%252 = OpLoad %int %x_143_phi
OpStore %x_143 %252
%253 = OpLoad %bool %x_140
OpStore %x_139_phi %253
%254 = OpLoad %int %x_143
OpStore %x_142_phi %254
OpBranch %173
%174 = OpLabel
%255 = OpLoad %bool %x_188_phi
OpSelectionMerge %256 None
OpBranchConditional %255 %257 %256
%257 = OpLabel
OpBranch %171
%256 = OpLabel
OpBranch %171
%171 = OpLabel
OpBranch %143
%143 = OpLabel
%258 = OpIAdd %int %148 %int_1
OpStore %x_120 %258
%259 = OpLoad %int %x_120
OpStore %x_119_phi %259
OpBranch %141
%142 = OpLabel
OpSelectionMerge %265 None
OpSwitch %uint_0 %266
%266 = OpLabel
OpStore %x_193_phi %false
OpStore %x_196_phi %int_0
OpBranch %267
%267 = OpLabel
OpLoopMerge %268 %269 None
OpBranch %270
%270 = OpLabel
%277 = OpLoad %bool %x_193_phi
OpStore %x_193 %277
%278 = OpLoad %int %x_196_phi
%279 = OpLoad %bool %x_193
OpStore %x_242_phi %279
%281 = OpSLessThanEqual %bool %278 %int_3
OpSelectionMerge %282 None
OpBranchConditional %281 %283 %284
%283 = OpLabel
OpBranch %282
%284 = OpLabel
OpBranch %268
%282 = OpLabel
%285 = OpAccessChain %_ptr_Function_int %tree %278 %uint_0
%286 = OpLoad %int %285
%288 = OpSLessThanEqual %bool %int_15 %286
OpSelectionMerge %289 None
OpBranchConditional %288 %290 %291
%290 = OpLabel
%293 = OpAccessChain %_ptr_Function_int %tree %278 %uint_1
%294 = OpLoad %int %293
%295 = OpIEqual %bool %294 %int_n1
OpSelectionMerge %296 None
OpBranchConditional %295 %297 %298
%297 = OpLabel
%299 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1
%300 = OpLoad %float %299
%301 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_0
%302 = OpLoad %float %301
%303 = OpFOrdLessThan %bool %300 %302
OpSelectionMerge %304 None
OpBranchConditional %303 %305 %304
%305 = OpLabel
OpBranch %306
%306 = OpLabel
OpLoopMerge %307 %308 None
OpBranch %309
%309 = OpLabel
OpKill
%308 = OpLabel
OpBranch %306
%307 = OpLabel
OpReturn
%304 = OpLabel
%310 = OpAccessChain %_ptr_Function_int %tree %278 %uint_1
OpStore %310 %int_3
%311 = OpAccessChain %_ptr_Function_BST %tree %int_3
OpStore %311 %312
OpBranch %313
%313 = OpLabel
OpLoopMerge %314 %315 None
OpBranch %316
%316 = OpLabel
%317 = OpLoad %bool %x_193
OpStore %x_240_phi %317
%318 = OpConvertFToS %int %300
%319 = OpSLessThan %bool %int_0 %318
OpSelectionMerge %320 None
OpBranchConditional %319 %321 %322
%321 = OpLabel
OpBranch %320
%322 = OpLabel
OpBranch %314
%320 = OpLabel
OpStore %x_240_phi %true
OpBranch %314
%315 = OpLabel
OpBranch %313
%314 = OpLabel
%323 = OpLoad %bool %x_240_phi
OpStore %x_240 %323
%324 = OpLoad %bool %x_240
OpStore %x_242_phi %324
%325 = OpLoad %bool %x_240
OpSelectionMerge %326 None
OpBranchConditional %325 %327 %326
%327 = OpLabel
OpBranch %268
%326 = OpLabel
OpBranch %296
%298 = OpLabel
%328 = OpAccessChain %_ptr_Function_int %tree %278 %uint_1
%329 = OpLoad %int %328
OpStore %x_221 %329
%330 = OpLoad %bool %x_193
OpStore %x_194_phi %330
%331 = OpLoad %int %x_221
OpStore %x_197_phi %331
OpBranch %269
%296 = OpLabel
OpBranch %289
%291 = OpLabel
%332 = OpAccessChain %_ptr_Function_int %tree %278 %uint_2
%333 = OpLoad %int %332
%334 = OpIEqual %bool %333 %int_n1
OpSelectionMerge %335 None
OpBranchConditional %334 %336 %337
%336 = OpLabel
%338 = OpAccessChain %_ptr_Function_int %tree %278 %uint_2
OpStore %338 %int_3
%339 = OpAccessChain %_ptr_Function_BST %tree %int_3
OpStore %339 %312
OpStore %x_242_phi %true
OpBranch %268
%337 = OpLabel
%340 = OpAccessChain %_ptr_Function_int %tree %278 %uint_2
%341 = OpLoad %int %340
OpStore %x_213 %341
%342 = OpLoad %bool %x_193
OpStore %x_194_phi %342
%343 = OpLoad %int %x_213
OpStore %x_197_phi %343
OpBranch %269
%335 = OpLabel
OpReturn
%289 = OpLabel
%344 = OpLoad %bool %x_240
OpStore %x_194_phi %344
OpStore %x_197_phi %278
OpBranch %269
%269 = OpLabel
%345 = OpLoad %bool %x_194_phi
OpStore %x_194 %345
%346 = OpLoad %int %x_197_phi
OpStore %x_197 %346
%347 = OpLoad %bool %x_194
OpStore %x_193_phi %347
%348 = OpLoad %int %x_197
OpStore %x_196_phi %348
OpBranch %267
%268 = OpLabel
%349 = OpLoad %bool %x_242_phi
OpSelectionMerge %350 None
OpBranchConditional %349 %351 %350
%351 = OpLabel
OpBranch %265
%350 = OpLabel
OpBranch %265
%265 = OpLabel
OpSelectionMerge %357 None
OpSwitch %uint_0 %358
%358 = OpLabel
OpStore %x_247_phi %false
OpStore %x_250_phi %int_0
OpBranch %359
%359 = OpLabel
OpLoopMerge %360 %361 None
OpBranch %362
%362 = OpLabel
%369 = OpLoad %bool %x_247_phi
OpStore %x_247 %369
%370 = OpLoad %int %x_250_phi
%371 = OpLoad %bool %x_247
OpStore %x_296_phi %371
%373 = OpSLessThanEqual %bool %370 %int_4
OpSelectionMerge %374 None
OpBranchConditional %373 %375 %376
%375 = OpLabel
OpBranch %374
%376 = OpLabel
OpBranch %360
%374 = OpLabel
%377 = OpAccessChain %_ptr_Function_int %tree %370 %uint_0
%378 = OpLoad %int %377
%380 = OpSLessThanEqual %bool %int_7 %378
OpSelectionMerge %381 None
OpBranchConditional %380 %382 %383
%382 = OpLabel
%385 = OpAccessChain %_ptr_Function_int %tree %370 %uint_1
%386 = OpLoad %int %385
%387 = OpIEqual %bool %386 %int_n1
OpSelectionMerge %388 None
OpBranchConditional %387 %389 %390
%389 = OpLabel
%391 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1
%392 = OpLoad %float %391
%393 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_0
%394 = OpLoad %float %393
%395 = OpFOrdLessThan %bool %392 %394
OpSelectionMerge %396 None
OpBranchConditional %395 %397 %396
%397 = OpLabel
OpBranch %398
%398 = OpLabel
OpLoopMerge %399 %400 None
OpBranch %401
%401 = OpLabel
OpKill
%400 = OpLabel
OpBranch %398
%399 = OpLabel
OpReturn
%396 = OpLabel
%402 = OpAccessChain %_ptr_Function_int %tree %370 %uint_1
OpStore %402 %int_4
%403 = OpAccessChain %_ptr_Function_BST %tree %int_4
OpStore %403 %404
OpBranch %405
%405 = OpLabel
OpLoopMerge %406 %407 None
OpBranch %408
%408 = OpLabel
%409 = OpLoad %bool %x_247
OpStore %x_294_phi %409
%410 = OpConvertFToS %int %392
%411 = OpSLessThan %bool %int_0 %410
OpSelectionMerge %412 None
OpBranchConditional %411 %413 %414
%413 = OpLabel
OpBranch %412
%414 = OpLabel
OpBranch %406
%412 = OpLabel
OpStore %x_294_phi %true
OpBranch %406
%407 = OpLabel
OpBranch %405
%406 = OpLabel
%415 = OpLoad %bool %x_294_phi
OpStore %x_294 %415
%416 = OpLoad %bool %x_294
OpStore %x_296_phi %416
%417 = OpLoad %bool %x_294
OpSelectionMerge %418 None
OpBranchConditional %417 %419 %418
%419 = OpLabel
OpBranch %360
%418 = OpLabel
OpBranch %388
%390 = OpLabel
%420 = OpAccessChain %_ptr_Function_int %tree %370 %uint_1
%421 = OpLoad %int %420
OpStore %x_275 %421
%422 = OpLoad %bool %x_247
OpStore %x_248_phi %422
%423 = OpLoad %int %x_275
OpStore %x_251_phi %423
OpBranch %361
%388 = OpLabel
OpBranch %381
%383 = OpLabel
%424 = OpAccessChain %_ptr_Function_int %tree %370 %uint_2
%425 = OpLoad %int %424
%426 = OpIEqual %bool %425 %int_n1
OpSelectionMerge %427 None
OpBranchConditional %426 %428 %429
%428 = OpLabel
%430 = OpAccessChain %_ptr_Function_int %tree %370 %uint_2
OpStore %430 %int_4
%431 = OpAccessChain %_ptr_Function_BST %tree %int_4
OpStore %431 %404
OpStore %x_296_phi %true
OpBranch %360
%429 = OpLabel
%432 = OpAccessChain %_ptr_Function_int %tree %370 %uint_2
%433 = OpLoad %int %432
OpStore %x_267 %433
%434 = OpLoad %bool %x_247
OpStore %x_248_phi %434
%435 = OpLoad %int %x_267
OpStore %x_251_phi %435
OpBranch %361
%427 = OpLabel
OpReturn
%381 = OpLabel
%436 = OpLoad %bool %x_294
OpStore %x_248_phi %436
OpStore %x_251_phi %370
OpBranch %361
%361 = OpLabel
%437 = OpLoad %bool %x_248_phi
OpStore %x_248 %437
%438 = OpLoad %int %x_251_phi
OpStore %x_251 %438
%439 = OpLoad %bool %x_248
OpStore %x_247_phi %439
%440 = OpLoad %int %x_251
OpStore %x_250_phi %440
OpBranch %359
%360 = OpLabel
%441 = OpLoad %bool %x_296_phi
OpSelectionMerge %442 None
OpBranchConditional %441 %443 %442
%443 = OpLabel
OpBranch %357
%442 = OpLabel
OpBranch %357
%357 = OpLabel
OpSelectionMerge %449 None
OpSwitch %uint_0 %450
%450 = OpLabel
OpStore %x_301_phi %false
OpStore %x_304_phi %int_0
OpBranch %451
%451 = OpLabel
OpLoopMerge %452 %453 None
OpBranch %454
%454 = OpLabel
%461 = OpLoad %bool %x_301_phi
OpStore %x_301 %461
%462 = OpLoad %int %x_304_phi
%463 = OpLoad %bool %x_301
OpStore %x_350_phi %463
%464 = OpSLessThanEqual %bool %462 %int_5
OpSelectionMerge %465 None
OpBranchConditional %464 %466 %467
%466 = OpLabel
OpBranch %465
%467 = OpLabel
OpBranch %452
%465 = OpLabel
%468 = OpAccessChain %_ptr_Function_int %tree %462 %uint_0
%469 = OpLoad %int %468
%471 = OpSLessThanEqual %bool %int_8 %469
OpSelectionMerge %472 None
OpBranchConditional %471 %473 %474
%473 = OpLabel
%476 = OpAccessChain %_ptr_Function_int %tree %462 %uint_1
%477 = OpLoad %int %476
%478 = OpIEqual %bool %477 %int_n1
OpSelectionMerge %479 None
OpBranchConditional %478 %480 %481
%480 = OpLabel
%482 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1
%483 = OpLoad %float %482
%484 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_0
%485 = OpLoad %float %484
%486 = OpFOrdLessThan %bool %483 %485
OpSelectionMerge %487 None
OpBranchConditional %486 %488 %487
%488 = OpLabel
OpBranch %489
%489 = OpLabel
OpLoopMerge %490 %491 None
OpBranch %492
%492 = OpLabel
OpKill
%491 = OpLabel
OpBranch %489
%490 = OpLabel
OpReturn
%487 = OpLabel
%493 = OpAccessChain %_ptr_Function_int %tree %462 %uint_1
OpStore %493 %int_5
%494 = OpAccessChain %_ptr_Function_BST %tree %int_5
OpStore %494 %495
OpBranch %496
%496 = OpLabel
OpLoopMerge %497 %498 None
OpBranch %499
%499 = OpLabel
%500 = OpLoad %bool %x_301
OpStore %x_348_phi %500
%501 = OpConvertFToS %int %483
%502 = OpSLessThan %bool %int_0 %501
OpSelectionMerge %503 None
OpBranchConditional %502 %504 %505
%504 = OpLabel
OpBranch %503
%505 = OpLabel
OpBranch %497
%503 = OpLabel
OpStore %x_348_phi %true
OpBranch %497
%498 = OpLabel
OpBranch %496
%497 = OpLabel
%506 = OpLoad %bool %x_348_phi
OpStore %x_348 %506
%507 = OpLoad %bool %x_348
OpStore %x_350_phi %507
%508 = OpLoad %bool %x_348
OpSelectionMerge %509 None
OpBranchConditional %508 %510 %509
%510 = OpLabel
OpBranch %452
%509 = OpLabel
OpBranch %479
%481 = OpLabel
%511 = OpAccessChain %_ptr_Function_int %tree %462 %uint_1
%512 = OpLoad %int %511
OpStore %x_329 %512
%513 = OpLoad %bool %x_301
OpStore %x_302_phi %513
%514 = OpLoad %int %x_329
OpStore %x_305_phi %514
OpBranch %453
%479 = OpLabel
OpBranch %472
%474 = OpLabel
%515 = OpAccessChain %_ptr_Function_int %tree %462 %uint_2
%516 = OpLoad %int %515
%517 = OpIEqual %bool %516 %int_n1
OpSelectionMerge %518 None
OpBranchConditional %517 %519 %520
%519 = OpLabel
%521 = OpAccessChain %_ptr_Function_int %tree %462 %uint_2
OpStore %521 %int_5
%522 = OpAccessChain %_ptr_Function_BST %tree %int_5
OpStore %522 %495
OpStore %x_350_phi %true
OpBranch %452
%520 = OpLabel
%523 = OpAccessChain %_ptr_Function_int %tree %462 %uint_2
%524 = OpLoad %int %523
OpStore %x_321 %524
%525 = OpLoad %bool %x_301
OpStore %x_302_phi %525
%526 = OpLoad %int %x_321
OpStore %x_305_phi %526
OpBranch %453
%518 = OpLabel
OpReturn
%472 = OpLabel
%527 = OpLoad %bool %x_348
OpStore %x_302_phi %527
OpStore %x_305_phi %462
OpBranch %453
%453 = OpLabel
%528 = OpLoad %bool %x_302_phi
OpStore %x_302 %528
%529 = OpLoad %int %x_305_phi
OpStore %x_305 %529
%530 = OpLoad %bool %x_302
OpStore %x_301_phi %530
%531 = OpLoad %int %x_305
OpStore %x_304_phi %531
OpBranch %451
%452 = OpLabel
%532 = OpLoad %bool %x_350_phi
OpSelectionMerge %533 None
OpBranchConditional %532 %534 %533
%534 = OpLabel
OpBranch %449
%533 = OpLabel
OpBranch %449
%449 = OpLabel
OpSelectionMerge %540 None
OpSwitch %uint_0 %541
%541 = OpLabel
OpStore %x_355_phi %false
OpStore %x_358_phi %int_0
OpBranch %542
%542 = OpLabel
OpLoopMerge %543 %544 None
OpBranch %545
%545 = OpLabel
%552 = OpLoad %bool %x_355_phi
OpStore %x_355 %552
%553 = OpLoad %int %x_358_phi
%554 = OpLoad %bool %x_355
OpStore %x_404_phi %554
%556 = OpSLessThanEqual %bool %553 %int_6
OpSelectionMerge %557 None
OpBranchConditional %556 %558 %559
%558 = OpLabel
OpBranch %557
%559 = OpLabel
OpBranch %543
%557 = OpLabel
%560 = OpAccessChain %_ptr_Function_int %tree %553 %uint_0
%561 = OpLoad %int %560
%562 = OpSLessThanEqual %bool %int_2 %561
OpSelectionMerge %563 None
OpBranchConditional %562 %564 %565
%564 = OpLabel
%567 = OpAccessChain %_ptr_Function_int %tree %553 %uint_1
%568 = OpLoad %int %567
%569 = OpIEqual %bool %568 %int_n1
OpSelectionMerge %570 None
OpBranchConditional %569 %571 %572
%571 = OpLabel
%573 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1
%574 = OpLoad %float %573
%575 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_0
%576 = OpLoad %float %575
%577 = OpFOrdLessThan %bool %574 %576
OpSelectionMerge %578 None
OpBranchConditional %577 %579 %578
%579 = OpLabel
OpBranch %580
%580 = OpLabel
OpLoopMerge %581 %582 None
OpBranch %583
%583 = OpLabel
OpKill
%582 = OpLabel
OpBranch %580
%581 = OpLabel
OpReturn
%578 = OpLabel
%584 = OpAccessChain %_ptr_Function_int %tree %553 %uint_1
OpStore %584 %int_6
%585 = OpAccessChain %_ptr_Function_BST %tree %int_6
OpStore %585 %586
OpBranch %587
%587 = OpLabel
OpLoopMerge %588 %589 None
OpBranch %590
%590 = OpLabel
%591 = OpLoad %bool %x_355
OpStore %x_402_phi %591
%592 = OpConvertFToS %int %574
%593 = OpSLessThan %bool %int_0 %592
OpSelectionMerge %594 None
OpBranchConditional %593 %595 %596
%595 = OpLabel
OpBranch %594
%596 = OpLabel
OpBranch %588
%594 = OpLabel
OpStore %x_402_phi %true
OpBranch %588
%589 = OpLabel
OpBranch %587
%588 = OpLabel
%597 = OpLoad %bool %x_402_phi
OpStore %x_402 %597
%598 = OpLoad %bool %x_402
OpStore %x_404_phi %598
%599 = OpLoad %bool %x_402
OpSelectionMerge %600 None
OpBranchConditional %599 %601 %600
%601 = OpLabel
OpBranch %543
%600 = OpLabel
OpBranch %570
%572 = OpLabel
%602 = OpAccessChain %_ptr_Function_int %tree %553 %uint_1
%603 = OpLoad %int %602
OpStore %x_383 %603
%604 = OpLoad %bool %x_355
OpStore %x_356_phi %604
%605 = OpLoad %int %x_383
OpStore %x_359_phi %605
OpBranch %544
%570 = OpLabel
OpBranch %563
%565 = OpLabel
%606 = OpAccessChain %_ptr_Function_int %tree %553 %uint_2
%607 = OpLoad %int %606
%608 = OpIEqual %bool %607 %int_n1
OpSelectionMerge %609 None
OpBranchConditional %608 %610 %611
%610 = OpLabel
%612 = OpAccessChain %_ptr_Function_int %tree %553 %uint_2
OpStore %612 %int_6
%613 = OpAccessChain %_ptr_Function_BST %tree %int_6
OpStore %613 %586
OpStore %x_404_phi %true
OpBranch %543
%611 = OpLabel
%614 = OpAccessChain %_ptr_Function_int %tree %553 %uint_2
%615 = OpLoad %int %614
OpStore %x_375 %615
%616 = OpLoad %bool %x_355
OpStore %x_356_phi %616
%617 = OpLoad %int %x_375
OpStore %x_359_phi %617
OpBranch %544
%609 = OpLabel
OpReturn
%563 = OpLabel
%618 = OpLoad %bool %x_402
OpStore %x_356_phi %618
OpStore %x_359_phi %553
OpBranch %544
%544 = OpLabel
%619 = OpLoad %bool %x_356_phi
OpStore %x_356 %619
%620 = OpLoad %int %x_359_phi
OpStore %x_359 %620
%621 = OpLoad %bool %x_356
OpStore %x_355_phi %621
%622 = OpLoad %int %x_359
OpStore %x_358_phi %622
OpBranch %542
%543 = OpLabel
%623 = OpLoad %bool %x_404_phi
OpSelectionMerge %624 None
OpBranchConditional %623 %625 %624
%625 = OpLabel
OpBranch %540
%624 = OpLabel
OpBranch %540
%540 = OpLabel
OpSelectionMerge %631 None
OpSwitch %uint_0 %632
%632 = OpLabel
OpStore %x_409_phi %false
OpStore %x_412_phi %int_0
OpBranch %633
%633 = OpLabel
OpLoopMerge %634 %635 None
OpBranch %636
%636 = OpLabel
%643 = OpLoad %bool %x_409_phi
OpStore %x_409 %643
%644 = OpLoad %int %x_412_phi
%645 = OpLoad %bool %x_409
OpStore %x_458_phi %645
%646 = OpSLessThanEqual %bool %644 %int_7
OpSelectionMerge %647 None
OpBranchConditional %646 %648 %649
%648 = OpLabel
OpBranch %647
%649 = OpLabel
OpBranch %634
%647 = OpLabel
%650 = OpAccessChain %_ptr_Function_int %tree %644 %uint_0
%651 = OpLoad %int %650
%652 = OpSLessThanEqual %bool %int_6 %651
OpSelectionMerge %653 None
OpBranchConditional %652 %654 %655
%654 = OpLabel
%657 = OpAccessChain %_ptr_Function_int %tree %644 %uint_1
%658 = OpLoad %int %657
%659 = OpIEqual %bool %658 %int_n1
OpSelectionMerge %660 None
OpBranchConditional %659 %661 %662
%661 = OpLabel
%663 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1
%664 = OpLoad %float %663
%665 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_0
%666 = OpLoad %float %665
%667 = OpFOrdLessThan %bool %664 %666
OpSelectionMerge %668 None
OpBranchConditional %667 %669 %668
%669 = OpLabel
OpBranch %670
%670 = OpLabel
OpLoopMerge %671 %672 None
OpBranch %673
%673 = OpLabel
OpKill
%672 = OpLabel
OpBranch %670
%671 = OpLabel
OpReturn
%668 = OpLabel
%674 = OpAccessChain %_ptr_Function_int %tree %644 %uint_1
OpStore %674 %int_7
%675 = OpAccessChain %_ptr_Function_BST %tree %int_7
OpStore %675 %676
OpBranch %677
%677 = OpLabel
OpLoopMerge %678 %679 None
OpBranch %680
%680 = OpLabel
%681 = OpLoad %bool %x_409
OpStore %x_456_phi %681
%682 = OpConvertFToS %int %664
%683 = OpSLessThan %bool %int_0 %682
OpSelectionMerge %684 None
OpBranchConditional %683 %685 %686
%685 = OpLabel
OpBranch %684
%686 = OpLabel
OpBranch %678
%684 = OpLabel
OpStore %x_456_phi %true
OpBranch %678
%679 = OpLabel
OpBranch %677
%678 = OpLabel
%687 = OpLoad %bool %x_456_phi
OpStore %x_456 %687
%688 = OpLoad %bool %x_456
OpStore %x_458_phi %688
%689 = OpLoad %bool %x_456
OpSelectionMerge %690 None
OpBranchConditional %689 %691 %690
%691 = OpLabel
OpBranch %634
%690 = OpLabel
OpBranch %660
%662 = OpLabel
%692 = OpAccessChain %_ptr_Function_int %tree %644 %uint_1
%693 = OpLoad %int %692
OpStore %x_437 %693
%694 = OpLoad %bool %x_409
OpStore %x_410_phi %694
%695 = OpLoad %int %x_437
OpStore %x_413_phi %695
OpBranch %635
%660 = OpLabel
OpBranch %653
%655 = OpLabel
%696 = OpAccessChain %_ptr_Function_int %tree %644 %uint_2
%697 = OpLoad %int %696
%698 = OpIEqual %bool %697 %int_n1
OpSelectionMerge %699 None
OpBranchConditional %698 %700 %701
%700 = OpLabel
%702 = OpAccessChain %_ptr_Function_int %tree %644 %uint_2
OpStore %702 %int_7
%703 = OpAccessChain %_ptr_Function_BST %tree %int_7
OpStore %703 %676
OpStore %x_458_phi %true
OpBranch %634
%701 = OpLabel
%704 = OpAccessChain %_ptr_Function_int %tree %644 %uint_2
%705 = OpLoad %int %704
OpStore %x_429 %705
%706 = OpLoad %bool %x_409
OpStore %x_410_phi %706
%707 = OpLoad %int %x_429
OpStore %x_413_phi %707
OpBranch %635
%699 = OpLabel
OpReturn
%653 = OpLabel
%708 = OpLoad %bool %x_456
OpStore %x_410_phi %708
OpStore %x_413_phi %644
OpBranch %635
%635 = OpLabel
%709 = OpLoad %bool %x_410_phi
OpStore %x_410 %709
%710 = OpLoad %int %x_413_phi
OpStore %x_413 %710
%711 = OpLoad %bool %x_410
OpStore %x_409_phi %711
%712 = OpLoad %int %x_413
OpStore %x_412_phi %712
OpBranch %633
%634 = OpLabel
%713 = OpLoad %bool %x_458_phi
OpSelectionMerge %714 None
OpBranchConditional %713 %715 %714
%715 = OpLabel
OpBranch %631
%714 = OpLabel
OpBranch %631
%631 = OpLabel
OpSelectionMerge %721 None
OpSwitch %uint_0 %722
%722 = OpLabel
OpStore %x_463_phi %false
OpStore %x_466_phi %int_0
OpBranch %723
%723 = OpLabel
OpLoopMerge %724 %725 None
OpBranch %726
%726 = OpLabel
%733 = OpLoad %bool %x_463_phi
OpStore %x_463 %733
%734 = OpLoad %int %x_466_phi
%735 = OpLoad %bool %x_463
OpStore %x_512_phi %735
%736 = OpSLessThanEqual %bool %734 %int_8
OpSelectionMerge %737 None
OpBranchConditional %736 %738 %739
%738 = OpLabel
OpBranch %737
%739 = OpLabel
OpBranch %724
%737 = OpLabel
%740 = OpAccessChain %_ptr_Function_int %tree %734 %uint_0
%741 = OpLoad %int %740
%743 = OpSLessThanEqual %bool %int_17 %741
OpSelectionMerge %744 None
OpBranchConditional %743 %745 %746
%745 = OpLabel
%748 = OpAccessChain %_ptr_Function_int %tree %734 %uint_1
%749 = OpLoad %int %748
%750 = OpIEqual %bool %749 %int_n1
OpSelectionMerge %751 None
OpBranchConditional %750 %752 %753
%752 = OpLabel
%754 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1
%755 = OpLoad %float %754
%756 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_0
%757 = OpLoad %float %756
%758 = OpFOrdLessThan %bool %755 %757
OpSelectionMerge %759 None
OpBranchConditional %758 %760 %759
%760 = OpLabel
OpBranch %761
%761 = OpLabel
OpLoopMerge %762 %763 None
OpBranch %764
%764 = OpLabel
OpKill
%763 = OpLabel
OpBranch %761
%762 = OpLabel
OpReturn
%759 = OpLabel
%765 = OpAccessChain %_ptr_Function_int %tree %734 %uint_1
OpStore %765 %int_8
%766 = OpAccessChain %_ptr_Function_BST %tree %int_8
OpStore %766 %767
OpBranch %768
%768 = OpLabel
OpLoopMerge %769 %770 None
OpBranch %771
%771 = OpLabel
%772 = OpLoad %bool %x_463
OpStore %x_510_phi %772
%773 = OpConvertFToS %int %755
%774 = OpSLessThan %bool %int_0 %773
OpSelectionMerge %775 None
OpBranchConditional %774 %776 %777
%776 = OpLabel
OpBranch %775
%777 = OpLabel
OpBranch %769
%775 = OpLabel
OpStore %x_510_phi %true
OpBranch %769
%770 = OpLabel
OpBranch %768
%769 = OpLabel
%778 = OpLoad %bool %x_510_phi
OpStore %x_510 %778
%779 = OpLoad %bool %x_510
OpStore %x_512_phi %779
%780 = OpLoad %bool %x_510
OpSelectionMerge %781 None
OpBranchConditional %780 %782 %781
%782 = OpLabel
OpBranch %724
%781 = OpLabel
OpBranch %751
%753 = OpLabel
%783 = OpAccessChain %_ptr_Function_int %tree %734 %uint_1
%784 = OpLoad %int %783
OpStore %x_491 %784
%785 = OpLoad %bool %x_463
OpStore %x_464_phi %785
%786 = OpLoad %int %x_491
OpStore %x_467_phi %786
OpBranch %725
%751 = OpLabel
OpBranch %744
%746 = OpLabel
%787 = OpAccessChain %_ptr_Function_int %tree %734 %uint_2
%788 = OpLoad %int %787
%789 = OpIEqual %bool %788 %int_n1
OpSelectionMerge %790 None
OpBranchConditional %789 %791 %792
%791 = OpLabel
%793 = OpAccessChain %_ptr_Function_int %tree %734 %uint_2
OpStore %793 %int_8
%794 = OpAccessChain %_ptr_Function_BST %tree %int_8
OpStore %794 %767
OpStore %x_512_phi %true
OpBranch %724
%792 = OpLabel
%795 = OpAccessChain %_ptr_Function_int %tree %734 %uint_2
%796 = OpLoad %int %795
OpStore %x_483 %796
%797 = OpLoad %bool %x_463
OpStore %x_464_phi %797
%798 = OpLoad %int %x_483
OpStore %x_467_phi %798
OpBranch %725
%790 = OpLabel
OpReturn
%744 = OpLabel
%799 = OpLoad %bool %x_510
OpStore %x_464_phi %799
OpStore %x_467_phi %734
OpBranch %725
%725 = OpLabel
%800 = OpLoad %bool %x_464_phi
OpStore %x_464 %800
%801 = OpLoad %int %x_467_phi
OpStore %x_467 %801
%802 = OpLoad %bool %x_464
OpStore %x_463_phi %802
%803 = OpLoad %int %x_467
OpStore %x_466_phi %803
OpBranch %723
%724 = OpLabel
%804 = OpLoad %bool %x_512_phi
OpSelectionMerge %805 None
OpBranchConditional %804 %806 %805
%806 = OpLabel
OpBranch %721
%805 = OpLabel
OpBranch %721
%721 = OpLabel
OpSelectionMerge %812 None
OpSwitch %uint_0 %813
%813 = OpLabel
OpStore %x_517_phi %false
OpStore %x_520_phi %int_0
OpBranch %814
%814 = OpLabel
OpLoopMerge %815 %816 None
OpBranch %817
%817 = OpLabel
%824 = OpLoad %bool %x_517_phi
OpStore %x_517 %824
%825 = OpLoad %int %x_520_phi
%826 = OpLoad %bool %x_517
OpStore %x_566_phi %826
%827 = OpSLessThanEqual %bool %825 %int_9
OpSelectionMerge %828 None
OpBranchConditional %827 %829 %830
%829 = OpLabel
OpBranch %828
%830 = OpLabel
OpBranch %815
%828 = OpLabel
%831 = OpAccessChain %_ptr_Function_int %tree %825 %uint_0
%832 = OpLoad %int %831
%834 = OpSLessThanEqual %bool %int_13 %832
OpSelectionMerge %835 None
OpBranchConditional %834 %836 %837
%836 = OpLabel
%839 = OpAccessChain %_ptr_Function_int %tree %825 %uint_1
%840 = OpLoad %int %839
%841 = OpIEqual %bool %840 %int_n1
OpSelectionMerge %842 None
OpBranchConditional %841 %843 %844
%843 = OpLabel
%845 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_1
%846 = OpLoad %float %845
%847 = OpAccessChain %_ptr_Uniform_float %x_8 %uint_0 %uint_0
%848 = OpLoad %float %847
%849 = OpFOrdLessThan %bool %846 %848
OpSelectionMerge %850 None
OpBranchConditional %849 %851 %850
%851 = OpLabel
OpBranch %852
%852 = OpLabel
OpLoopMerge %853 %854 None
OpBranch %855
%855 = OpLabel
OpKill
%854 = OpLabel
OpBranch %852
%853 = OpLabel
OpReturn
%850 = OpLabel
%856 = OpAccessChain %_ptr_Function_int %tree %825 %uint_1
OpStore %856 %int_9
%857 = OpAccessChain %_ptr_Function_BST %tree %int_9
OpStore %857 %858
OpBranch %859
%859 = OpLabel
OpLoopMerge %860 %861 None
OpBranch %862
%862 = OpLabel
%863 = OpLoad %bool %x_517
OpStore %x_564_phi %863
%864 = OpConvertFToS %int %846
%865 = OpSLessThan %bool %int_0 %864
OpSelectionMerge %866 None
OpBranchConditional %865 %867 %868
%867 = OpLabel
OpBranch %866
%868 = OpLabel
OpBranch %860
%866 = OpLabel
OpStore %x_564_phi %true
OpBranch %860
%861 = OpLabel
OpBranch %859
%860 = OpLabel
%869 = OpLoad %bool %x_564_phi
OpStore %x_564 %869
%870 = OpLoad %bool %x_564
OpStore %x_566_phi %870
%871 = OpLoad %bool %x_564
OpSelectionMerge %872 None
OpBranchConditional %871 %873 %872
%873 = OpLabel
OpBranch %815
%872 = OpLabel
OpBranch %842
%844 = OpLabel
%874 = OpAccessChain %_ptr_Function_int %tree %825 %uint_1
%875 = OpLoad %int %874
OpStore %x_545 %875
%876 = OpLoad %bool %x_517
OpStore %x_518_phi %876
%877 = OpLoad %int %x_545
OpStore %x_521_phi %877
OpBranch %816
%842 = OpLabel
OpBranch %835
%837 = OpLabel
%878 = OpAccessChain %_ptr_Function_int %tree %825 %uint_2
%879 = OpLoad %int %878
%880 = OpIEqual %bool %879 %int_n1
OpSelectionMerge %881 None
OpBranchConditional %880 %882 %883
%882 = OpLabel
%884 = OpAccessChain %_ptr_Function_int %tree %825 %uint_2
OpStore %884 %int_9
%885 = OpAccessChain %_ptr_Function_BST %tree %int_9
OpStore %885 %858
OpStore %x_566_phi %true
OpBranch %815
%883 = OpLabel
%886 = OpAccessChain %_ptr_Function_int %tree %825 %uint_2
%887 = OpLoad %int %886
OpStore %x_537 %887
%888 = OpLoad %bool %x_517
OpStore %x_518_phi %888
%889 = OpLoad %int %x_537
OpStore %x_521_phi %889
OpBranch %816
%881 = OpLabel
OpReturn
%835 = OpLabel
%890 = OpLoad %bool %x_564
OpStore %x_518_phi %890
OpStore %x_521_phi %825
OpBranch %816
%816 = OpLabel
%891 = OpLoad %bool %x_518_phi
OpStore %x_518 %891
%892 = OpLoad %int %x_521_phi
OpStore %x_521 %892
%893 = OpLoad %bool %x_518
OpStore %x_517_phi %893
%894 = OpLoad %int %x_521
OpStore %x_520_phi %894
OpBranch %814
%815 = OpLabel
%895 = OpLoad %bool %x_566_phi
OpSelectionMerge %896 None
OpBranchConditional %895 %897 %896
%897 = OpLabel
OpBranch %812
%896 = OpLabel
OpBranch %812
%812 = OpLabel
OpStore %x_569_phi %int_0
OpStore %x_572_phi %int_0
OpStore %x_574_phi %int_0
OpBranch %898
%898 = OpLabel
OpLoopMerge %899 %900 None
OpBranch %901
%901 = OpLabel
%908 = OpLoad %int %x_569_phi
%909 = OpLoad %int %x_572_phi
OpStore %x_572 %909
%910 = OpLoad %int %x_574_phi
%912 = OpSLessThan %bool %910 %int_20
OpSelectionMerge %913 None
OpBranchConditional %912 %914 %915
%914 = OpLabel
OpBranch %913
%915 = OpLabel
OpBranch %899
%913 = OpLabel
OpSelectionMerge %919 None
OpSwitch %uint_0 %920
%920 = OpLabel
OpStore %x_582_phi %int_0
OpBranch %921
%921 = OpLabel
OpLoopMerge %922 %923 None
OpBranch %924
%924 = OpLabel
%925 = OpLoad %int %x_582_phi
OpStore %x_597_phi %908
OpStore %x_598_phi %false
%926 = OpINotEqual %bool %925 %int_n1
OpSelectionMerge %927 None
OpBranchConditional %926 %928 %929
%928 = OpLabel
OpBranch %927
%929 = OpLabel
OpBranch %922
%927 = OpLabel
%930 = OpAccessChain %_ptr_Function_BST %tree %925
%931 = OpLoad %BST %930
%932 = OpCompositeExtract %int %931 0
%933 = OpCompositeExtract %int %931 1
%934 = OpCompositeExtract %int %931 2
%935 = OpIEqual %bool %932 %910
OpSelectionMerge %936 None
OpBranchConditional %935 %937 %936
%937 = OpLabel
OpStore %x_597_phi %910
OpStore %x_598_phi %true
OpBranch %922
%936 = OpLabel
OpBranch %923
%923 = OpLabel
%939 = OpSGreaterThan %bool %910 %932
%938 = OpSelect %int %939 %934 %933
OpStore %x_582_phi %938
OpBranch %921
%922 = OpLabel
%940 = OpLoad %int %x_597_phi
OpStore %x_597 %940
%941 = OpLoad %bool %x_598_phi
%942 = OpLoad %int %x_597
OpStore %x_570_phi %942
OpSelectionMerge %943 None
OpBranchConditional %941 %944 %943
%944 = OpLabel
OpBranch %919
%943 = OpLabel
OpStore %x_570_phi %int_n1
OpBranch %919
%919 = OpLabel
%950 = OpLoad %int %x_570_phi
OpStore %x_570 %950
OpSelectionMerge %951 None
OpSwitch %910 %952 2 %953 5 %953 6 %953 7 %953 8 %953 9 %953 12 %953 13 %953 15 %953 17 %953
%953 = OpLabel
%954 = OpLoad %int %x_572
OpStore %x_607_phi %954
%955 = OpLoad %int %x_570
%956 = OpCopyObject %int %910
%957 = OpIEqual %bool %955 %956
OpSelectionMerge %958 None
OpBranchConditional %957 %959 %958
%959 = OpLabel
%961 = OpLoad %int %x_572
%962 = OpCopyObject %int %int_1
%963 = OpIAdd %int %961 %962
%960 = OpCopyObject %int %963
OpStore %x_606 %960
%964 = OpLoad %int %x_606
OpStore %x_607_phi %964
OpBranch %958
%958 = OpLabel
%965 = OpLoad %int %x_607_phi
OpStore %x_607 %965
%966 = OpLoad %int %x_607
OpStore %x_573_phi %966
OpBranch %951
%952 = OpLabel
%967 = OpLoad %int %x_572
OpStore %x_612_phi %967
%968 = OpLoad %int %x_570
%969 = OpCopyObject %int %int_n1
%970 = OpIEqual %bool %968 %969
OpSelectionMerge %971 None
OpBranchConditional %970 %972 %971
%972 = OpLabel
%974 = OpLoad %int %x_572
%975 = OpCopyObject %int %int_1
%976 = OpIAdd %int %974 %975
%973 = OpCopyObject %int %976
OpStore %x_611 %973
%977 = OpLoad %int %x_611
OpStore %x_612_phi %977
OpBranch %971
%971 = OpLabel
%978 = OpLoad %int %x_612_phi
OpStore %x_612 %978
%979 = OpLoad %int %x_612
OpStore %x_573_phi %979
OpBranch %951
%951 = OpLabel
%980 = OpLoad %int %x_573_phi
OpBranch %900
%900 = OpLabel
%981 = OpIAdd %int %910 %int_1
OpStore %x_575 %981
%982 = OpLoad %int %x_570
OpStore %x_569_phi %982
OpStore %x_572_phi %980
%983 = OpLoad %int %x_575
OpStore %x_574_phi %983
OpBranch %898
%899 = OpLabel
%984 = OpLoad %int %x_572
%985 = OpCopyObject %int %int_20
%986 = OpIEqual %bool %984 %985
OpSelectionMerge %987 None
OpBranchConditional %986 %988 %989
%988 = OpLabel
OpStore %x_GLF_color %991
OpBranch %987
%989 = OpLabel
OpStore %x_GLF_color %992
OpBranch %987
%987 = OpLabel
OpReturn
OpFunctionEnd
%tint_symbol_3 = OpFunction %void None %993
%tint_symbol_1 = OpFunctionParameter %main_out
%997 = OpLabel
%998 = OpCompositeExtract %v4float %tint_symbol_1 0
OpStore %tint_symbol_2 %998
OpReturn
OpFunctionEnd
%main = OpFunction %void None %15
%1000 = OpLabel
%1001 = OpLoad %v4float %tint_symbol
OpStore %gl_FragCoord %1001
%1002 = OpFunctionCall %void %main_1
%1004 = OpLoad %v4float %x_GLF_color
%1005 = OpCompositeConstruct %main_out %1004
%1003 = OpFunctionCall %void %tint_symbol_3 %1005
OpReturn
OpFunctionEnd