; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
; Bound: 40
; Schema: 0
               OpCapability Shader
               OpMemoryModel Logical GLSL450
               OpEntryPoint Fragment %main "main"
               OpExecutionMode %main OriginUpperLeft
               OpName %data_block_std140 "data_block_std140"
               OpMemberName %data_block_std140 0 "inner"
               OpName %S_std140 "S_std140"
               OpMemberName %S_std140 0 "matrix_0"
               OpMemberName %S_std140 1 "matrix_1"
               OpMemberName %S_std140 2 "matrix_2"
               OpMemberName %S_std140 3 "vector"
               OpName %data "data"
               OpName %load_data_inner_matrix "load_data_inner_matrix"
               OpName %main "main"
               OpDecorate %data_block_std140 Block
               OpMemberDecorate %data_block_std140 0 Offset 0
               OpMemberDecorate %S_std140 0 Offset 0
               OpMemberDecorate %S_std140 1 Offset 8
               OpMemberDecorate %S_std140 2 Offset 16
               OpMemberDecorate %S_std140 3 Offset 32
               OpDecorate %data NonWritable
               OpDecorate %data DescriptorSet 0
               OpDecorate %data Binding 0
      %float = OpTypeFloat 32
    %v2float = OpTypeVector %float 2
    %v3float = OpTypeVector %float 3
   %S_std140 = OpTypeStruct %v2float %v2float %v2float %v3float
%data_block_std140 = OpTypeStruct %S_std140
%_ptr_Uniform_data_block_std140 = OpTypePointer Uniform %data_block_std140
       %data = OpVariable %_ptr_Uniform_data_block_std140 Uniform
%mat3v2float = OpTypeMatrix %v2float 3
          %8 = OpTypeFunction %mat3v2float
       %uint = OpTypeInt 32 0
     %uint_0 = OpConstant %uint 0
%_ptr_Uniform_S_std140 = OpTypePointer Uniform %S_std140
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
     %uint_1 = OpConstant %uint 1
     %uint_2 = OpConstant %uint 2
       %void = OpTypeVoid
         %30 = OpTypeFunction %void
     %uint_3 = OpConstant %uint 3
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
%load_data_inner_matrix = OpFunction %mat3v2float None %8
         %11 = OpLabel
         %16 = OpAccessChain %_ptr_Uniform_S_std140 %data %uint_0
         %19 = OpAccessChain %_ptr_Uniform_v2float %16 %uint_0
         %20 = OpLoad %v2float %19
         %23 = OpAccessChain %_ptr_Uniform_v2float %16 %uint_1
         %24 = OpLoad %v2float %23
         %27 = OpAccessChain %_ptr_Uniform_v2float %16 %uint_2
         %28 = OpLoad %v2float %27
         %29 = OpCompositeConstruct %mat3v2float %20 %24 %28
               OpReturnValue %29
               OpFunctionEnd
       %main = OpFunction %void None %30
         %33 = OpLabel
         %34 = OpFunctionCall %mat3v2float %load_data_inner_matrix
         %37 = OpAccessChain %_ptr_Uniform_v3float %data %uint_0 %uint_3
         %38 = OpLoad %v3float %37
         %39 = OpMatrixTimesVector %v2float %34 %38
               OpReturn
               OpFunctionEnd