; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 ; Bound: 292 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 OpEntryPoint Fragment %main "main" %gl_FragCoord_param_1 %x_GLF_color_1_1 OpExecutionMode %main OriginUpperLeft OpName %gl_FragCoord_param_1 "gl_FragCoord_param_1" OpName %x_GLF_color_1_1 "x_GLF_color_1_1" OpName %gl_FragCoord "gl_FragCoord" OpName %buf0 "buf0" OpMemberName %buf0 0 "injectionSwitch" OpName %x_6 "x_6" OpName %x_GLF_color "x_GLF_color" OpName %main_1 "main_1" OpName %x_45 "x_45" OpName %x_48 "x_48" OpName %x_49 "x_49" OpName %x_46 "x_46" OpName %x_115 "x_115" OpName %x_116 "x_116" OpName %x_45_phi "x_45_phi" OpName %x_48_phi "x_48_phi" OpName %x_50_phi "x_50_phi" OpName %x_52_phi "x_52_phi" OpName %x_111_phi "x_111_phi" OpName %x_112_phi "x_112_phi" OpName %x_115_phi "x_115_phi" OpName %x_118_phi "x_118_phi" OpName %x_120_phi "x_120_phi" OpName %x_161_phi "x_161_phi" OpName %x_62 "x_62" OpName %x_65 "x_65" OpName %x_66 "x_66" OpName %x_63 "x_63" OpName %x_53 "x_53" OpName %x_62_phi "x_62_phi" OpName %x_65_phi "x_65_phi" OpName %x_67_phi "x_67_phi" OpName %x_51_phi "x_51_phi" OpName %x_49_phi "x_49_phi" OpName %x_46_phi "x_46_phi" OpName %x_97 "x_97" OpName %x_68 "x_68" OpName %x_66_phi "x_66_phi" OpName %x_78 "x_78" OpName %x_86_phi "x_86_phi" OpName %x_97_phi "x_97_phi" OpName %x_98_phi "x_98_phi" OpName %x_87 "x_87" OpName %x_154 "x_154" OpName %x_121 "x_121" OpName %x_119_phi "x_119_phi" OpName %x_135 "x_135" OpName %x_143_phi "x_143_phi" OpName %x_154_phi "x_154_phi" OpName %x_155_phi "x_155_phi" OpName %x_144 "x_144" OpName %x_119 "x_119" OpName %main_out "main_out" OpMemberName %main_out 0 "x_GLF_color_1" OpName %main_inner "main_inner" OpName %gl_FragCoord_param "gl_FragCoord_param" OpName %main "main" OpDecorate %gl_FragCoord_param_1 BuiltIn FragCoord OpDecorate %x_GLF_color_1_1 Location 0 OpDecorate %buf0 Block OpMemberDecorate %buf0 0 Offset 0 OpDecorate %x_6 NonWritable OpDecorate %x_6 DescriptorSet 0 OpDecorate %x_6 Binding 0 OpMemberDecorate %main_out 0 Offset 0 %float = OpTypeFloat 32 %v4float = OpTypeVector %float 4 %_ptr_Input_v4float = OpTypePointer Input %v4float %gl_FragCoord_param_1 = OpVariable %_ptr_Input_v4float Input %_ptr_Output_v4float = OpTypePointer Output %v4float %7 = OpConstantNull %v4float %x_GLF_color_1_1 = OpVariable %_ptr_Output_v4float Output %7 %_ptr_Private_v4float = OpTypePointer Private %v4float %gl_FragCoord = OpVariable %_ptr_Private_v4float Private %7 %v2float = OpTypeVector %float 2 %buf0 = OpTypeStruct %v2float %_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0 %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform %x_GLF_color = OpVariable %_ptr_Private_v4float Private %7 %void = OpTypeVoid %15 = OpTypeFunction %void %bool = OpTypeBool %_ptr_Function_bool = OpTypePointer Function %bool %26 = OpConstantNull %bool %int = OpTypeInt 32 1 %_ptr_Function_int = OpTypePointer Function %int %30 = OpConstantNull %int %uint = OpTypeInt 32 0 %uint_0 = OpConstant %uint 0 %_ptr_Uniform_float = OpTypePointer Uniform %float %float_n1 = OpConstant %float -1 %false = OpConstantFalse %bool %int_0 = OpConstant %int 0 %uint_1 = OpConstant %uint 1 %_ptr_Private_float = OpTypePointer Private %float %int_10 = OpConstant %int 10 %int_100 = OpConstant %int 100 %int_2 = OpConstant %int 2 %float_0 = OpConstant %float 0 %int_1 = OpConstant %int 1 %int_3 = OpConstant %int 3 %true = OpConstantTrue %bool %float_1 = OpConstant %float 1 %int_4 = OpConstant %int 4 %277 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1 %278 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0 %main_out = OpTypeStruct %v4float %279 = OpTypeFunction %main_out %v4float %main_1 = OpFunction %void None %15 %18 = OpLabel %x_45 = OpVariable %_ptr_Function_bool Function %26 %x_48 = OpVariable %_ptr_Function_int Function %30 %x_49 = OpVariable %_ptr_Function_int Function %30 %x_46 = OpVariable %_ptr_Function_bool Function %26 %x_115 = OpVariable %_ptr_Function_int Function %30 %x_116 = OpVariable %_ptr_Function_int Function %30 %x_45_phi = OpVariable %_ptr_Function_bool Function %26 %x_48_phi = OpVariable %_ptr_Function_int Function %30 %x_50_phi = OpVariable %_ptr_Function_int Function %30 %x_52_phi = OpVariable %_ptr_Function_int Function %30 %x_111_phi = OpVariable %_ptr_Function_int Function %30 %x_112_phi = OpVariable %_ptr_Function_bool Function %26 %x_115_phi = OpVariable %_ptr_Function_int Function %30 %x_118_phi = OpVariable %_ptr_Function_int Function %30 %x_120_phi = OpVariable %_ptr_Function_int Function %30 %x_161_phi = OpVariable %_ptr_Function_int Function %30 %x_62 = OpVariable %_ptr_Function_int Function %30 %x_65 = OpVariable %_ptr_Function_int Function %30 %x_66 = OpVariable %_ptr_Function_int Function %30 %x_63 = OpVariable %_ptr_Function_int Function %30 %x_53 = OpVariable %_ptr_Function_int Function %30 %x_62_phi = OpVariable %_ptr_Function_int Function %30 %x_65_phi = OpVariable %_ptr_Function_int Function %30 %x_67_phi = OpVariable %_ptr_Function_int Function %30 %x_51_phi = OpVariable %_ptr_Function_int Function %30 %x_49_phi = OpVariable %_ptr_Function_int Function %30 %x_46_phi = OpVariable %_ptr_Function_bool Function %26 %x_97 = OpVariable %_ptr_Function_int Function %30 %x_68 = OpVariable %_ptr_Function_int Function %30 %x_66_phi = OpVariable %_ptr_Function_int Function %30 %x_78 = OpVariable %_ptr_Function_bool Function %26 %x_86_phi = OpVariable %_ptr_Function_int Function %30 %x_97_phi = OpVariable %_ptr_Function_int Function %30 %x_98_phi = OpVariable %_ptr_Function_bool Function %26 %x_87 = OpVariable %_ptr_Function_int Function %30 %x_154 = OpVariable %_ptr_Function_int Function %30 %x_121 = OpVariable %_ptr_Function_int Function %30 %x_119_phi = OpVariable %_ptr_Function_int Function %30 %x_135 = OpVariable %_ptr_Function_bool Function %26 %x_143_phi = OpVariable %_ptr_Function_int Function %30 %x_154_phi = OpVariable %_ptr_Function_int Function %30 %x_155_phi = OpVariable %_ptr_Function_bool Function %26 %x_144 = OpVariable %_ptr_Function_int Function %30 %x_119 = OpVariable %_ptr_Function_int Function %30 OpBranch %19 %19 = OpLabel OpLoopMerge %20 %21 None OpBranch %22 %22 = OpLabel %48 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_0 %49 = OpLoad %float %48 %51 = OpFOrdLessThan %bool %49 %float_n1 OpStore %x_45_phi %false OpStore %x_48_phi %int_0 OpStore %x_50_phi %int_0 OpStore %x_52_phi %int_0 OpBranch %54 %54 = OpLabel OpLoopMerge %55 %56 None OpBranch %57 %57 = OpLabel %69 = OpLoad %bool %x_45_phi OpStore %x_45 %69 %70 = OpLoad %int %x_48_phi OpStore %x_48 %70 %71 = OpLoad %int %x_50_phi %72 = OpLoad %int %x_52_phi %75 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_1 %76 = OpLoad %float %75 %77 = OpLoad %int %x_48 OpStore %x_111_phi %77 %78 = OpLoad %bool %x_45 OpStore %x_112_phi %78 %80 = OpFOrdGreaterThan %bool %76 %float_n1 %79 = OpSelect %int %80 %int_10 %int_100 %83 = OpSLessThan %bool %72 %79 OpSelectionMerge %84 None OpBranchConditional %83 %85 %86 %85 = OpLabel OpBranch %84 %86 = OpLabel OpBranch %55 %84 = OpLabel %87 = OpLoad %int %x_48 OpStore %x_62_phi %87 OpStore %x_65_phi %71 OpStore %x_67_phi %int_0 OpBranch %88 %88 = OpLabel OpLoopMerge %89 %90 None OpBranch %91 %91 = OpLabel %95 = OpLoad %int %x_62_phi OpStore %x_62 %95 %96 = OpLoad %int %x_65_phi OpStore %x_65 %96 %97 = OpLoad %int %x_67_phi %98 = OpLoad %int %x_65 OpStore %x_51_phi %98 %99 = OpLoad %int %x_62 OpStore %x_49_phi %99 %100 = OpLoad %bool %x_45 OpStore %x_46_phi %100 %102 = OpSLessThan %bool %97 %int_2 OpSelectionMerge %103 None OpBranchConditional %102 %104 %105 %104 = OpLabel OpBranch %103 %105 = OpLabel OpBranch %89 %103 = OpLabel OpBranch %106 %106 = OpLabel OpLoopMerge %107 %108 None OpBranch %109 %109 = OpLabel %114 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 %115 = OpLoad %float %114 %116 = OpFOrdLessThan %bool %115 %float_n1 OpStore %x_78 %116 %119 = OpFOrdLessThan %bool %49 %float_0 %117 = OpLogicalNot %bool %119 OpSelectionMerge %120 None OpBranchConditional %117 %121 %120 %121 = OpLabel %122 = OpLoad %bool %x_78 OpSelectionMerge %123 None OpBranchConditional %122 %124 %123 %124 = OpLabel OpStore %x_66_phi %int_0 OpBranch %107 %123 = OpLabel OpStore %x_86_phi %int_1 OpBranch %126 %126 = OpLabel OpLoopMerge %127 %128 None OpBranch %129 %129 = OpLabel %131 = OpLoad %int %x_86_phi %132 = OpLoad %int %x_65 OpStore %x_97_phi %132 OpStore %x_98_phi %false %134 = OpSLessThan %bool %131 %int_3 OpSelectionMerge %135 None OpBranchConditional %134 %136 %137 %136 = OpLabel OpBranch %135 %137 = OpLabel OpBranch %127 %135 = OpLabel %138 = OpLoad %bool %x_78 OpSelectionMerge %139 None OpBranchConditional %138 %140 %139 %140 = OpLabel OpBranch %128 %139 = OpLabel %141 = OpSGreaterThan %bool %131 %int_0 OpSelectionMerge %142 None OpBranchConditional %141 %143 %142 %143 = OpLabel OpStore %x_97_phi %int_1 OpStore %x_98_phi %true OpBranch %127 %142 = OpLabel OpBranch %128 %128 = OpLabel %145 = OpIAdd %int %131 %int_1 OpStore %x_87 %145 %146 = OpLoad %int %x_87 OpStore %x_86_phi %146 OpBranch %126 %127 = OpLabel %147 = OpLoad %int %x_97_phi OpStore %x_97 %147 %148 = OpLoad %bool %x_98_phi %149 = OpLoad %int %x_97 OpStore %x_66_phi %149 OpSelectionMerge %150 None OpBranchConditional %148 %151 %150 %151 = OpLabel OpBranch %107 %150 = OpLabel OpBranch %120 %120 = OpLabel OpStore %x_66_phi %int_0 OpBranch %107 %108 = OpLabel OpBranch %106 %107 = OpLabel %152 = OpLoad %int %x_66_phi OpStore %x_66 %152 %154 = OpLoad %int %x_62 %155 = OpLoad %int %x_66 %156 = OpIAdd %int %154 %155 %153 = OpCopyObject %int %156 OpStore %x_63 %153 OpSelectionMerge %157 None OpBranchConditional %51 %158 %157 %158 = OpLabel OpBranch %159 %159 = OpLabel OpLoopMerge %160 %161 None OpBranch %162 %162 = OpLabel OpSelectionMerge %163 None OpBranchConditional %51 %164 %165 %164 = OpLabel OpBranch %163 %165 = OpLabel OpBranch %160 %163 = OpLabel OpBranch %161 %161 = OpLabel %166 = OpConvertSToF %float %72 %167 = OpCompositeConstruct %v4float %166 %166 %166 %166 OpStore %x_GLF_color %167 OpBranch %159 %160 = OpLabel %168 = OpLoad %int %x_66 OpStore %x_51_phi %168 %169 = OpLoad %int %x_63 OpStore %x_49_phi %169 OpStore %x_46_phi %true OpBranch %89 %157 = OpLabel OpBranch %90 %90 = OpLabel %170 = OpIAdd %int %97 %int_1 OpStore %x_68 %170 %171 = OpLoad %int %x_63 OpStore %x_62_phi %171 %172 = OpLoad %int %x_66 OpStore %x_65_phi %172 %173 = OpLoad %int %x_68 OpStore %x_67_phi %173 OpBranch %88 %89 = OpLabel %174 = OpLoad %int %x_51_phi %175 = OpLoad %int %x_49_phi OpStore %x_49 %175 %176 = OpLoad %bool %x_46_phi OpStore %x_46 %176 %177 = OpLoad %int %x_49 OpStore %x_111_phi %177 %178 = OpLoad %bool %x_46 OpStore %x_112_phi %178 %179 = OpLoad %bool %x_46 OpSelectionMerge %180 None OpBranchConditional %179 %181 %180 %181 = OpLabel OpBranch %55 %180 = OpLabel %182 = OpLogicalNot %bool %51 OpSelectionMerge %183 None OpBranchConditional %182 %184 %183 %184 = OpLabel %185 = OpLoad %int %x_49 OpStore %x_111_phi %185 %186 = OpLoad %bool %x_46 OpStore %x_112_phi %186 OpBranch %55 %183 = OpLabel OpBranch %56 %56 = OpLabel %187 = OpIAdd %int %72 %int_1 OpStore %x_53 %187 %188 = OpLoad %bool %x_46 OpStore %x_45_phi %188 %189 = OpLoad %int %x_49 OpStore %x_48_phi %189 OpStore %x_50_phi %174 %190 = OpLoad %int %x_53 OpStore %x_52_phi %190 OpBranch %54 %55 = OpLabel %191 = OpLoad %int %x_111_phi %192 = OpLoad %bool %x_112_phi OpSelectionMerge %193 None OpBranchConditional %192 %194 %193 %194 = OpLabel OpBranch %20 %193 = OpLabel OpStore %x_115_phi %191 OpStore %x_118_phi %int_0 OpStore %x_120_phi %int_0 OpBranch %195 %195 = OpLabel OpLoopMerge %196 %197 None OpBranch %198 %198 = OpLabel %202 = OpLoad %int %x_115_phi OpStore %x_115 %202 %203 = OpLoad %int %x_118_phi %204 = OpLoad %int %x_120_phi %205 = OpAccessChain %_ptr_Uniform_float %x_6 %uint_0 %uint_1 %206 = OpLoad %float %205 %207 = OpLoad %int %x_115 OpStore %x_161_phi %207 %210 = OpFAdd %float %206 %float_1 %208 = OpConvertFToS %int %210 %211 = OpSLessThan %bool %204 %208 OpSelectionMerge %212 None OpBranchConditional %211 %213 %214 %213 = OpLabel OpBranch %212 %214 = OpLabel OpBranch %196 %212 = OpLabel OpBranch %215 %215 = OpLabel OpLoopMerge %216 %217 None OpBranch %218 %218 = OpLabel %223 = OpAccessChain %_ptr_Private_float %gl_FragCoord %uint_0 %224 = OpLoad %float %223 %225 = OpFOrdLessThan %bool %224 %float_n1 OpStore %x_135 %225 %227 = OpFOrdLessThan %bool %49 %float_0 %226 = OpLogicalNot %bool %227 OpSelectionMerge %228 None OpBranchConditional %226 %229 %228 %229 = OpLabel %230 = OpLoad %bool %x_135 OpSelectionMerge %231 None OpBranchConditional %230 %232 %231 %232 = OpLabel OpStore %x_119_phi %int_0 OpBranch %216 %231 = OpLabel OpStore %x_143_phi %int_1 OpBranch %233 %233 = OpLabel OpLoopMerge %234 %235 None OpBranch %236 %236 = OpLabel %238 = OpLoad %int %x_143_phi OpStore %x_154_phi %203 OpStore %x_155_phi %false %239 = OpSLessThan %bool %238 %int_3 OpSelectionMerge %240 None OpBranchConditional %239 %241 %242 %241 = OpLabel OpBranch %240 %242 = OpLabel OpBranch %234 %240 = OpLabel %243 = OpLoad %bool %x_135 OpSelectionMerge %244 None OpBranchConditional %243 %245 %244 %245 = OpLabel OpBranch %235 %244 = OpLabel %246 = OpSGreaterThan %bool %238 %int_0 OpSelectionMerge %247 None OpBranchConditional %246 %248 %247 %248 = OpLabel OpStore %x_154_phi %int_1 OpStore %x_155_phi %true OpBranch %234 %247 = OpLabel OpBranch %235 %235 = OpLabel %249 = OpIAdd %int %238 %int_1 OpStore %x_144 %249 %250 = OpLoad %int %x_144 OpStore %x_143_phi %250 OpBranch %233 %234 = OpLabel %251 = OpLoad %int %x_154_phi OpStore %x_154 %251 %252 = OpLoad %bool %x_155_phi %253 = OpLoad %int %x_154 OpStore %x_119_phi %253 OpSelectionMerge %254 None OpBranchConditional %252 %255 %254 %255 = OpLabel OpBranch %216 %254 = OpLabel OpBranch %228 %228 = OpLabel OpStore %x_119_phi %int_0 OpBranch %216 %217 = OpLabel OpBranch %215 %216 = OpLabel %257 = OpLoad %int %x_119_phi OpStore %x_119 %257 %259 = OpLoad %int %x_115 %260 = OpLoad %int %x_119 %261 = OpIAdd %int %259 %260 %258 = OpCopyObject %int %261 OpStore %x_116 %258 %263 = OpLogicalNot %bool %51 %262 = OpSelect %bool %263 %false %51 OpSelectionMerge %264 None OpBranchConditional %262 %265 %264 %265 = OpLabel %266 = OpLoad %int %x_116 OpStore %x_161_phi %266 OpBranch %196 %264 = OpLabel OpBranch %197 %197 = OpLabel %267 = OpIAdd %int %204 %int_1 OpStore %x_121 %267 %268 = OpLoad %int %x_116 OpStore %x_115_phi %268 %269 = OpLoad %int %x_119 OpStore %x_118_phi %269 %270 = OpLoad %int %x_121 OpStore %x_120_phi %270 OpBranch %195 %196 = OpLabel %271 = OpLoad %int %x_161_phi %273 = OpIEqual %bool %271 %int_4 OpSelectionMerge %274 None OpBranchConditional %273 %275 %276 %275 = OpLabel OpStore %x_GLF_color %277 OpBranch %274 %276 = OpLabel OpStore %x_GLF_color %278 OpBranch %274 %274 = OpLabel OpBranch %20 %21 = OpLabel OpBranch %19 %20 = OpLabel OpReturn OpFunctionEnd %main_inner = OpFunction %main_out None %279 %gl_FragCoord_param = OpFunctionParameter %v4float %283 = OpLabel OpStore %gl_FragCoord %gl_FragCoord_param %284 = OpFunctionCall %void %main_1 %285 = OpLoad %v4float %x_GLF_color %286 = OpCompositeConstruct %main_out %285 OpReturnValue %286 OpFunctionEnd %main = OpFunction %void None %15 %288 = OpLabel %290 = OpLoad %v4float %gl_FragCoord_param_1 %289 = OpFunctionCall %main_out %main_inner %290 %291 = OpCompositeExtract %v4float %289 0 OpStore %x_GLF_color_1_1 %291 OpReturn OpFunctionEnd