; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 122
; Schema: 0
               OpCapability Shader
               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 %buf1 "buf1"
               OpMemberName %buf1 0 "x_GLF_uniform_float_values"
               OpName %x_9 "x_9"
               OpName %x_GLF_color "x_GLF_color"
               OpName %tint_symbol_1 "tint_symbol_1"
               OpName %main_1 "main_1"
               OpName %m "m"
               OpName %a "a"
               OpName %arr "arr"
               OpName %v "v"
               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_4 ArrayStride 16
               OpDecorate %x_6 NonWritable
               OpDecorate %x_6 DescriptorSet 0
               OpDecorate %x_6 Binding 0
               OpDecorate %buf1 Block
               OpMemberDecorate %buf1 0 Offset 0
               OpDecorate %_arr_float_uint_2 ArrayStride 16
               OpDecorate %x_9 NonWritable
               OpDecorate %x_9 DescriptorSet 0
               OpDecorate %x_9 Binding 1
               OpDecorate %tint_symbol_1 Location 0
               OpDecorate %_arr_v3float_uint_2 ArrayStride 16
               OpMemberDecorate %main_out 0 Offset 0
        %int = OpTypeInt 32 1
       %uint = OpTypeInt 32 0
     %uint_4 = OpConstant %uint 4
%_arr_int_uint_4 = OpTypeArray %int %uint_4
       %buf0 = OpTypeStruct %_arr_int_uint_4
%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
        %x_6 = OpVariable %_ptr_Uniform_buf0 Uniform
      %float = OpTypeFloat 32
     %uint_2 = OpConstant %uint 2
%_arr_float_uint_2 = OpTypeArray %float %uint_2
       %buf1 = OpTypeStruct %_arr_float_uint_2
%_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
        %x_9 = OpVariable %_ptr_Uniform_buf1 Uniform
    %v4float = OpTypeVector %float 4
%_ptr_Private_v4float = OpTypePointer Private %v4float
         %17 = OpConstantNull %v4float
%x_GLF_color = OpVariable %_ptr_Private_v4float Private %17
%_ptr_Output_v4float = OpTypePointer Output %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %17
       %void = OpTypeVoid
         %20 = OpTypeFunction %void
    %v3float = OpTypeVector %float 3
%mat3v3float = OpTypeMatrix %v3float 3
%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
         %28 = OpConstantNull %mat3v3float
%_ptr_Function_int = OpTypePointer Function %int
         %31 = OpConstantNull %int
%_arr_v3float_uint_2 = OpTypeArray %v3float %uint_2
%_ptr_Function__arr_v3float_uint_2 = OpTypePointer Function %_arr_v3float_uint_2
         %35 = OpConstantNull %_arr_v3float_uint_2
%_ptr_Function_v3float = OpTypePointer Function %v3float
         %38 = OpConstantNull %v3float
     %uint_0 = OpConstant %uint 0
      %int_0 = OpConstant %int 0
%_ptr_Uniform_int = OpTypePointer Uniform %int
    %float_0 = OpConstant %float 0
%_ptr_Uniform_float = OpTypePointer Uniform %float
%_ptr_Function_float = OpTypePointer Function %float
      %int_1 = OpConstant %int 1
      %int_2 = OpConstant %int 2
       %bool = OpTypeBool
     %v3bool = OpTypeVector %bool 3
      %int_3 = OpConstant %int 3
   %main_out = OpTypeStruct %v4float
        %110 = OpTypeFunction %void %main_out
     %main_1 = OpFunction %void None %20
         %23 = OpLabel
          %m = OpVariable %_ptr_Function_mat3v3float Function %28
          %a = OpVariable %_ptr_Function_int Function %31
        %arr = OpVariable %_ptr_Function__arr_v3float_uint_2 Function %35
          %v = OpVariable %_ptr_Function_v3float Function %38
         %42 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
         %43 = OpLoad %int %42
         %44 = OpConvertSToF %float %43
         %46 = OpCompositeConstruct %v3float %44 %float_0 %float_0
         %47 = OpCompositeConstruct %v3float %float_0 %44 %float_0
         %48 = OpCompositeConstruct %v3float %float_0 %float_0 %44
         %49 = OpCompositeConstruct %mat3v3float %46 %47 %48
               OpStore %m %49
         %50 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
         %51 = OpLoad %int %50
               OpStore %a %51
         %52 = OpLoad %int %a
         %53 = OpLoad %int %a
         %55 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %int_0
         %56 = OpLoad %float %55
         %58 = OpAccessChain %_ptr_Function_float %m %52 %53
               OpStore %58 %56
         %60 = OpAccessChain %_ptr_Function_v3float %m %int_1
         %61 = OpLoad %v3float %60
         %62 = OpAccessChain %_ptr_Function_v3float %m %int_1
         %63 = OpLoad %v3float %62
         %64 = OpCompositeConstruct %_arr_v3float_uint_2 %61 %63
               OpStore %arr %64
         %65 = OpAccessChain %_ptr_Uniform_float %x_9 %uint_0 %int_1
         %66 = OpLoad %float %65
         %67 = OpCompositeConstruct %v3float %66 %66 %66
               OpStore %v %67
         %68 = OpLoad %int %a
         %69 = OpAccessChain %_ptr_Function_v3float %arr %68
         %70 = OpLoad %v3float %69
         %71 = OpLoad %v3float %v
         %72 = OpFAdd %v3float %71 %70
               OpStore %v %72
         %73 = OpLoad %v3float %v
         %74 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
         %75 = OpLoad %int %74
         %77 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_2
         %78 = OpLoad %int %77
         %79 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_1
         %80 = OpLoad %int %79
         %83 = OpConvertSToF %float %75
         %84 = OpConvertSToF %float %78
         %85 = OpConvertSToF %float %80
         %86 = OpCompositeConstruct %v3float %83 %84 %85
         %87 = OpFOrdEqual %v3bool %73 %86
         %81 = OpAll %bool %87
               OpSelectionMerge %89 None
               OpBranchConditional %81 %90 %91
         %90 = OpLabel
         %92 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
         %93 = OpLoad %int %92
         %95 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
         %96 = OpLoad %int %95
         %97 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
         %98 = OpLoad %int %97
         %99 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_0
        %100 = OpLoad %int %99
        %101 = OpConvertSToF %float %93
        %102 = OpConvertSToF %float %96
        %103 = OpConvertSToF %float %98
        %104 = OpConvertSToF %float %100
        %105 = OpCompositeConstruct %v4float %101 %102 %103 %104
               OpStore %x_GLF_color %105
               OpBranch %89
         %91 = OpLabel
        %106 = OpAccessChain %_ptr_Uniform_int %x_6 %uint_0 %int_3
        %107 = OpLoad %int %106
        %108 = OpConvertSToF %float %107
        %109 = OpCompositeConstruct %v4float %108 %108 %108 %108
               OpStore %x_GLF_color %109
               OpBranch %89
         %89 = OpLabel
               OpReturn
               OpFunctionEnd
%tint_symbol_2 = OpFunction %void None %110
%tint_symbol = OpFunctionParameter %main_out
        %114 = OpLabel
        %115 = OpCompositeExtract %v4float %tint_symbol 0
               OpStore %tint_symbol_1 %115
               OpReturn
               OpFunctionEnd
       %main = OpFunction %void None %20
        %117 = OpLabel
        %118 = OpFunctionCall %void %main_1
        %120 = OpLoad %v4float %x_GLF_color
        %121 = OpCompositeConstruct %main_out %120
        %119 = OpFunctionCall %void %tint_symbol_2 %121
               OpReturn
               OpFunctionEnd
