| ; 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 |