; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 292
; Schema: 0
               OpCapability Shader
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %main "main" %tint_symbol %tint_symbol_2
               OpExecutionMode %main OriginUpperLeft
               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 %tint_symbol "tint_symbol"
               OpName %tint_symbol_2 "tint_symbol_2"
               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 %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_6 NonWritable
               OpDecorate %x_6 DescriptorSet 0
               OpDecorate %x_6 Binding 0
               OpDecorate %tint_symbol BuiltIn FragCoord
               OpDecorate %tint_symbol_2 Location 0
               OpMemberDecorate %main_out 0 Offset 0
      %float = OpTypeFloat 32
    %v4float = OpTypeVector %float 4
%_ptr_Private_v4float = OpTypePointer Private %v4float
          %5 = OpConstantNull %v4float
%gl_FragCoord = OpVariable %_ptr_Private_v4float Private %5
    %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 %5
%_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 %5
       %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 %void %main_out
     %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
%tint_symbol_3 = OpFunction %void None %279
%tint_symbol_1 = OpFunctionParameter %main_out
        %283 = OpLabel
        %284 = OpCompositeExtract %v4float %tint_symbol_1 0
               OpStore %tint_symbol_2 %284
               OpReturn
               OpFunctionEnd
       %main = OpFunction %void None %15
        %286 = OpLabel
        %287 = OpLoad %v4float %tint_symbol
               OpStore %gl_FragCoord %287
        %288 = OpFunctionCall %void %main_1
        %290 = OpLoad %v4float %x_GLF_color
        %291 = OpCompositeConstruct %main_out %290
        %289 = OpFunctionCall %void %tint_symbol_3 %291
               OpReturn
               OpFunctionEnd