; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 100
; Schema: 0
               OpCapability Shader
         %61 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %main "main" %tint_symbol_1
               OpExecutionMode %main OriginUpperLeft
               OpName %buf0 "buf0"
               OpMemberName %buf0 0 "x_GLF_uniform_int_values"
               OpName %x_6 "x_6"
               OpName %x_GLF_color "x_GLF_color"
               OpName %tint_symbol_1 "tint_symbol_1"
               OpName %main_1 "main_1"
               OpName %i "i"
               OpName %A "A"
               OpName %a "a"
               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 %buf0 Block
               OpMemberDecorate %buf0 0 Offset 0
               OpDecorate %_arr_int_uint_3 ArrayStride 16
               OpDecorate %x_6 NonWritable
               OpDecorate %x_6 DescriptorSet 0
               OpDecorate %x_6 Binding 0
               OpDecorate %tint_symbol_1 Location 0
               OpDecorate %_arr_int_uint_2 ArrayStride 4
               OpMemberDecorate %main_out 0 Offset 0
        %int = OpTypeInt 32 1
       %uint = OpTypeInt 32 0
     %uint_3 = OpConstant %uint 3
%_arr_int_uint_3 = OpTypeArray %int %uint_3
       %buf0 = OpTypeStruct %_arr_int_uint_3
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
      %float = OpTypeFloat 32
    %v4float = OpTypeVector %float 4
%_ptr_Private_v4float = OpTypePointer Private %v4float
         %12 = OpConstantNull %v4float
%x_GLF_color = OpVariable %_ptr_Private_v4float Private %12
%_ptr_Output_v4float = OpTypePointer Output %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %12
       %void = OpTypeVoid
         %15 = OpTypeFunction %void
%_ptr_Function_int = OpTypePointer Function %int
         %21 = OpConstantNull %int
     %uint_2 = OpConstant %uint 2
%_arr_int_uint_2 = OpTypeArray %int %uint_2
%_ptr_Function__arr_int_uint_2 = OpTypePointer Function %_arr_int_uint_2
         %26 = OpConstantNull %_arr_int_uint_2
     %uint_0 = OpConstant %uint 0
      %int_1 = OpConstant %int 1
%_ptr_Uniform_int = OpTypePointer Uniform %int
      %int_0 = OpConstant %int 0
       %bool = OpTypeBool
      %int_2 = OpConstant %int 2
   %main_out = OpTypeStruct %v4float
         %88 = OpTypeFunction %void %main_out
     %main_1 = OpFunction %void None %15
         %18 = OpLabel
          %i = OpVariable %_ptr_Function_int Function %21
          %A = OpVariable %_ptr_Function__arr_int_uint_2 Function %26
          %a = OpVariable %_ptr_Function_int Function %21
         %31 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
         %32 = OpLoad %int %31
               OpStore %i %32
               OpBranch %33
         %33 = OpLabel
               OpLoopMerge %34 %35 None
               OpBranch %36
         %36 = OpLabel
         %37 = OpLoad %int %i
         %39 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
         %40 = OpLoad %int %39
         %41 = OpSLessThan %bool %37 %40
               OpSelectionMerge %43 None
               OpBranchConditional %41 %44 %45
         %44 = OpLabel
               OpBranch %43
         %45 = OpLabel
               OpBranch %34
         %43 = OpLabel
         %46 = OpLoad %int %i
         %47 = OpLoad %int %i
         %48 = OpAccessChain %_ptr_Function_int %A %46
               OpStore %48 %47
               OpBranch %35
         %35 = OpLabel
         %49 = OpLoad %int %i
         %50 = OpIAdd %int %49 %int_1
               OpStore %i %50
               OpBranch %33
         %34 = OpLabel
         %51 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
         %52 = OpLoad %int %51
         %53 = OpAccessChain %_ptr_Function_int %A %52
         %54 = OpLoad %int %53
         %56 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
         %57 = OpLoad %int %56
         %58 = OpAccessChain %_ptr_Function_int %A %57
         %59 = OpLoad %int %58
         %62 = OpNot %int %54
         %63 = OpNot %int %59
         %60 = OpExtInst %int %61 SMin %62 %63
               OpStore %a %60
         %64 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
         %65 = OpLoad %int %64
         %66 = OpConvertSToF %float %65
         %67 = OpCompositeConstruct %v4float %66 %66 %66 %66
               OpStore %x_GLF_color %67
         %68 = OpLoad %int %a
         %69 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
         %70 = OpLoad %int %69
         %71 = OpSNegate %int %70
         %72 = OpIEqual %bool %68 %71
               OpSelectionMerge %73 None
               OpBranchConditional %72 %74 %73
         %74 = OpLabel
         %75 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
         %76 = OpLoad %int %75
         %77 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
         %78 = OpLoad %int %77
         %79 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
         %80 = OpLoad %int %79
         %81 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
         %82 = OpLoad %int %81
         %83 = OpConvertSToF %float %76
         %84 = OpConvertSToF %float %78
         %85 = OpConvertSToF %float %80
         %86 = OpConvertSToF %float %82
         %87 = OpCompositeConstruct %v4float %83 %84 %85 %86
               OpStore %x_GLF_color %87
               OpBranch %73
         %73 = OpLabel
               OpReturn
               OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %88
%tint_symbol = OpFunctionParameter %main_out
         %92 = OpLabel
         %93 = OpCompositeExtract %v4float %tint_symbol 0
               OpStore %tint_symbol_1 %93
               OpReturn
               OpFunctionEnd
       %main = OpFunction %void None %15
         %95 = OpLabel
         %96 = OpFunctionCall %void %main_1
         %98 = OpLoad %v4float %x_GLF_color
         %99 = OpCompositeConstruct %main_out %98
         %97 = OpFunctionCall %void %tint_symbol_2 %99
               OpReturn
               OpFunctionEnd
