; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 ; Bound: 450 ; Schema: 0 OpCapability Shader OpCapability Float16 OpCapability UniformAndStorageBuffer16BitAccess OpCapability StorageBuffer16BitAccess OpCapability StorageInputOutput16 OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" %idx_1 OpExecutionMode %main LocalSize 1 1 1 OpName %idx_1 "idx_1" OpName %ub_block_std140 "ub_block_std140" OpMemberName %ub_block_std140 0 "inner" OpName %S_std140 "S_std140" OpMemberName %S_std140 0 "arr" OpName %Inner_std140 "Inner_std140" OpMemberName %Inner_std140 0 "scalar_f32" OpMemberName %Inner_std140 1 "scalar_i32" OpMemberName %Inner_std140 2 "scalar_u32" OpMemberName %Inner_std140 3 "scalar_f16" OpMemberName %Inner_std140 4 "vec2_f32" OpMemberName %Inner_std140 5 "vec2_i32" OpMemberName %Inner_std140 6 "vec2_u32" OpMemberName %Inner_std140 7 "vec2_f16" OpMemberName %Inner_std140 8 "vec3_f32" OpMemberName %Inner_std140 9 "vec3_i32" OpMemberName %Inner_std140 10 "vec3_u32" OpMemberName %Inner_std140 11 "vec3_f16" OpMemberName %Inner_std140 12 "vec4_f32" OpMemberName %Inner_std140 13 "vec4_i32" OpMemberName %Inner_std140 14 "vec4_u32" OpMemberName %Inner_std140 15 "vec4_f16" OpMemberName %Inner_std140 16 "mat2x2_f32_0" OpMemberName %Inner_std140 17 "mat2x2_f32_1" OpMemberName %Inner_std140 18 "mat2x3_f32" OpMemberName %Inner_std140 19 "mat2x4_f32" OpMemberName %Inner_std140 20 "mat3x2_f32_0" OpMemberName %Inner_std140 21 "mat3x2_f32_1" OpMemberName %Inner_std140 22 "mat3x2_f32_2" OpMemberName %Inner_std140 23 "mat3x3_f32" OpMemberName %Inner_std140 24 "mat3x4_f32" OpMemberName %Inner_std140 25 "mat4x2_f32_0" OpMemberName %Inner_std140 26 "mat4x2_f32_1" OpMemberName %Inner_std140 27 "mat4x2_f32_2" OpMemberName %Inner_std140 28 "mat4x2_f32_3" OpMemberName %Inner_std140 29 "mat4x3_f32" OpMemberName %Inner_std140 30 "mat4x4_f32" OpMemberName %Inner_std140 31 "mat2x2_f16_0" OpMemberName %Inner_std140 32 "mat2x2_f16_1" OpMemberName %Inner_std140 33 "mat2x3_f16_0" OpMemberName %Inner_std140 34 "mat2x3_f16_1" OpMemberName %Inner_std140 35 "mat2x4_f16_0" OpMemberName %Inner_std140 36 "mat2x4_f16_1" OpMemberName %Inner_std140 37 "mat3x2_f16_0" OpMemberName %Inner_std140 38 "mat3x2_f16_1" OpMemberName %Inner_std140 39 "mat3x2_f16_2" OpMemberName %Inner_std140 40 "mat3x3_f16_0" OpMemberName %Inner_std140 41 "mat3x3_f16_1" OpMemberName %Inner_std140 42 "mat3x3_f16_2" OpMemberName %Inner_std140 43 "mat3x4_f16_0" OpMemberName %Inner_std140 44 "mat3x4_f16_1" OpMemberName %Inner_std140 45 "mat3x4_f16_2" OpMemberName %Inner_std140 46 "mat4x2_f16_0" OpMemberName %Inner_std140 47 "mat4x2_f16_1" OpMemberName %Inner_std140 48 "mat4x2_f16_2" OpMemberName %Inner_std140 49 "mat4x2_f16_3" OpMemberName %Inner_std140 50 "mat4x3_f16_0" OpMemberName %Inner_std140 51 "mat4x3_f16_1" OpMemberName %Inner_std140 52 "mat4x3_f16_2" OpMemberName %Inner_std140 53 "mat4x3_f16_3" OpMemberName %Inner_std140 54 "mat4x4_f16_0" OpMemberName %Inner_std140 55 "mat4x4_f16_1" OpMemberName %Inner_std140 56 "mat4x4_f16_2" OpMemberName %Inner_std140 57 "mat4x4_f16_3" OpMemberName %Inner_std140 58 "arr2_vec3_f32" OpMemberName %Inner_std140 59 "arr2_mat4x2_f16" OpName %mat4x2_f16_4 "mat4x2_f16_4" OpMemberName %mat4x2_f16_4 0 "col0" OpMemberName %mat4x2_f16_4 1 "col1" OpMemberName %mat4x2_f16_4 2 "col2" OpMemberName %mat4x2_f16_4 3 "col3" OpName %ub "ub" OpName %load_ub_inner_arr_p0_mat2x2_f32 "load_ub_inner_arr_p0_mat2x2_f32" OpName %p0 "p0" OpName %load_ub_inner_arr_p0_mat3x2_f32 "load_ub_inner_arr_p0_mat3x2_f32" OpName %p0_0 "p0" OpName %load_ub_inner_arr_p0_mat4x2_f32 "load_ub_inner_arr_p0_mat4x2_f32" OpName %p0_1 "p0" OpName %load_ub_inner_arr_p0_mat2x2_f16 "load_ub_inner_arr_p0_mat2x2_f16" OpName %p0_2 "p0" OpName %load_ub_inner_arr_p0_mat2x3_f16 "load_ub_inner_arr_p0_mat2x3_f16" OpName %p0_3 "p0" OpName %load_ub_inner_arr_p0_mat2x4_f16 "load_ub_inner_arr_p0_mat2x4_f16" OpName %p0_4 "p0" OpName %load_ub_inner_arr_p0_mat3x2_f16 "load_ub_inner_arr_p0_mat3x2_f16" OpName %p0_5 "p0" OpName %load_ub_inner_arr_p0_mat3x3_f16 "load_ub_inner_arr_p0_mat3x3_f16" OpName %p0_6 "p0" OpName %load_ub_inner_arr_p0_mat3x4_f16 "load_ub_inner_arr_p0_mat3x4_f16" OpName %p0_7 "p0" OpName %load_ub_inner_arr_p0_mat4x2_f16 "load_ub_inner_arr_p0_mat4x2_f16" OpName %p0_8 "p0" OpName %load_ub_inner_arr_p0_mat4x3_f16 "load_ub_inner_arr_p0_mat4x3_f16" OpName %p0_9 "p0" OpName %load_ub_inner_arr_p0_mat4x4_f16 "load_ub_inner_arr_p0_mat4x4_f16" OpName %p0_10 "p0" OpName %conv_mat4x2_f16 "conv_mat4x2_f16" OpName %val "val" OpName %conv_arr2_mat4x2_f16 "conv_arr2_mat4x2_f16" OpName %val_0 "val" OpName %arr "arr" OpName %i "i" OpName %var_for_index "var_for_index" OpName %main_inner "main_inner" OpName %idx "idx" OpName %main "main" OpDecorate %idx_1 BuiltIn LocalInvocationIndex OpDecorate %ub_block_std140 Block OpMemberDecorate %ub_block_std140 0 Offset 0 OpMemberDecorate %S_std140 0 Offset 0 OpMemberDecorate %Inner_std140 0 Offset 0 OpMemberDecorate %Inner_std140 1 Offset 4 OpMemberDecorate %Inner_std140 2 Offset 8 OpMemberDecorate %Inner_std140 3 Offset 12 OpMemberDecorate %Inner_std140 4 Offset 16 OpMemberDecorate %Inner_std140 5 Offset 24 OpMemberDecorate %Inner_std140 6 Offset 32 OpMemberDecorate %Inner_std140 7 Offset 40 OpMemberDecorate %Inner_std140 8 Offset 48 OpMemberDecorate %Inner_std140 9 Offset 64 OpMemberDecorate %Inner_std140 10 Offset 80 OpMemberDecorate %Inner_std140 11 Offset 96 OpMemberDecorate %Inner_std140 12 Offset 112 OpMemberDecorate %Inner_std140 13 Offset 128 OpMemberDecorate %Inner_std140 14 Offset 144 OpMemberDecorate %Inner_std140 15 Offset 160 OpMemberDecorate %Inner_std140 16 Offset 168 OpMemberDecorate %Inner_std140 17 Offset 176 OpMemberDecorate %Inner_std140 18 Offset 192 OpMemberDecorate %Inner_std140 18 ColMajor OpMemberDecorate %Inner_std140 18 MatrixStride 16 OpMemberDecorate %Inner_std140 19 Offset 224 OpMemberDecorate %Inner_std140 19 ColMajor OpMemberDecorate %Inner_std140 19 MatrixStride 16 OpMemberDecorate %Inner_std140 20 Offset 256 OpMemberDecorate %Inner_std140 21 Offset 264 OpMemberDecorate %Inner_std140 22 Offset 272 OpMemberDecorate %Inner_std140 23 Offset 288 OpMemberDecorate %Inner_std140 23 ColMajor OpMemberDecorate %Inner_std140 23 MatrixStride 16 OpMemberDecorate %Inner_std140 24 Offset 336 OpMemberDecorate %Inner_std140 24 ColMajor OpMemberDecorate %Inner_std140 24 MatrixStride 16 OpMemberDecorate %Inner_std140 25 Offset 384 OpMemberDecorate %Inner_std140 26 Offset 392 OpMemberDecorate %Inner_std140 27 Offset 400 OpMemberDecorate %Inner_std140 28 Offset 408 OpMemberDecorate %Inner_std140 29 Offset 416 OpMemberDecorate %Inner_std140 29 ColMajor OpMemberDecorate %Inner_std140 29 MatrixStride 16 OpMemberDecorate %Inner_std140 30 Offset 480 OpMemberDecorate %Inner_std140 30 ColMajor OpMemberDecorate %Inner_std140 30 MatrixStride 16 OpMemberDecorate %Inner_std140 31 Offset 544 OpMemberDecorate %Inner_std140 32 Offset 548 OpMemberDecorate %Inner_std140 33 Offset 552 OpMemberDecorate %Inner_std140 34 Offset 560 OpMemberDecorate %Inner_std140 35 Offset 568 OpMemberDecorate %Inner_std140 36 Offset 576 OpMemberDecorate %Inner_std140 37 Offset 584 OpMemberDecorate %Inner_std140 38 Offset 588 OpMemberDecorate %Inner_std140 39 Offset 592 OpMemberDecorate %Inner_std140 40 Offset 600 OpMemberDecorate %Inner_std140 41 Offset 608 OpMemberDecorate %Inner_std140 42 Offset 616 OpMemberDecorate %Inner_std140 43 Offset 624 OpMemberDecorate %Inner_std140 44 Offset 632 OpMemberDecorate %Inner_std140 45 Offset 640 OpMemberDecorate %Inner_std140 46 Offset 648 OpMemberDecorate %Inner_std140 47 Offset 652 OpMemberDecorate %Inner_std140 48 Offset 656 OpMemberDecorate %Inner_std140 49 Offset 660 OpMemberDecorate %Inner_std140 50 Offset 664 OpMemberDecorate %Inner_std140 51 Offset 672 OpMemberDecorate %Inner_std140 52 Offset 680 OpMemberDecorate %Inner_std140 53 Offset 688 OpMemberDecorate %Inner_std140 54 Offset 696 OpMemberDecorate %Inner_std140 55 Offset 704 OpMemberDecorate %Inner_std140 56 Offset 712 OpMemberDecorate %Inner_std140 57 Offset 720 OpMemberDecorate %Inner_std140 58 Offset 736 OpDecorate %_arr_v3float_uint_2 ArrayStride 16 OpMemberDecorate %Inner_std140 59 Offset 768 OpMemberDecorate %mat4x2_f16_4 0 Offset 0 OpMemberDecorate %mat4x2_f16_4 1 Offset 4 OpMemberDecorate %mat4x2_f16_4 2 Offset 8 OpMemberDecorate %mat4x2_f16_4 3 Offset 12 OpDecorate %_arr_mat4x2_f16_4_uint_2 ArrayStride 16 OpDecorate %_arr_Inner_std140_uint_8 ArrayStride 800 OpDecorate %ub NonWritable OpDecorate %ub Binding 0 OpDecorate %ub DescriptorSet 0 OpDecorate %_arr_mat4v2half_uint_2 ArrayStride 16 %uint = OpTypeInt 32 0 %_ptr_Input_uint = OpTypePointer Input %uint %idx_1 = OpVariable %_ptr_Input_uint Input %float = OpTypeFloat 32 %int = OpTypeInt 32 1 %half = OpTypeFloat 16 %v2float = OpTypeVector %float 2 %v2int = OpTypeVector %int 2 %v2uint = OpTypeVector %uint 2 %v2half = OpTypeVector %half 2 %v3float = OpTypeVector %float 3 %v3int = OpTypeVector %int 3 %v3uint = OpTypeVector %uint 3 %v3half = OpTypeVector %half 3 %v4float = OpTypeVector %float 4 %v4int = OpTypeVector %int 4 %v4uint = OpTypeVector %uint 4 %v4half = OpTypeVector %half 4 %mat2v3float = OpTypeMatrix %v3float 2 %mat2v4float = OpTypeMatrix %v4float 2 %mat3v3float = OpTypeMatrix %v3float 3 %mat3v4float = OpTypeMatrix %v4float 3 %mat4v3float = OpTypeMatrix %v3float 4 %mat4v4float = OpTypeMatrix %v4float 4 %uint_2 = OpConstant %uint 2 %_arr_v3float_uint_2 = OpTypeArray %v3float %uint_2 %mat4x2_f16_4 = OpTypeStruct %v2half %v2half %v2half %v2half %_arr_mat4x2_f16_4_uint_2 = OpTypeArray %mat4x2_f16_4 %uint_2 %Inner_std140 = OpTypeStruct %float %int %uint %half %v2float %v2int %v2uint %v2half %v3float %v3int %v3uint %v3half %v4float %v4int %v4uint %v4half %v2float %v2float %mat2v3float %mat2v4float %v2float %v2float %v2float %mat3v3float %mat3v4float %v2float %v2float %v2float %v2float %mat4v3float %mat4v4float %v2half %v2half %v3half %v3half %v4half %v4half %v2half %v2half %v2half %v3half %v3half %v3half %v4half %v4half %v4half %v2half %v2half %v2half %v2half %v3half %v3half %v3half %v3half %v4half %v4half %v4half %v4half %_arr_v3float_uint_2 %_arr_mat4x2_f16_4_uint_2 %uint_8 = OpConstant %uint 8 %_arr_Inner_std140_uint_8 = OpTypeArray %Inner_std140 %uint_8 %S_std140 = OpTypeStruct %_arr_Inner_std140_uint_8 %ub_block_std140 = OpTypeStruct %S_std140 %_ptr_Uniform_ub_block_std140 = OpTypePointer Uniform %ub_block_std140 %ub = OpVariable %_ptr_Uniform_ub_block_std140 Uniform %mat2v2float = OpTypeMatrix %v2float 2 %36 = OpTypeFunction %mat2v2float %uint %uint_0 = OpConstant %uint 0 %_ptr_Uniform_Inner_std140 = OpTypePointer Uniform %Inner_std140 %uint_16 = OpConstant %uint 16 %_ptr_Uniform_v2float = OpTypePointer Uniform %v2float %uint_17 = OpConstant %uint 17 %mat3v2float = OpTypeMatrix %v2float 3 %55 = OpTypeFunction %mat3v2float %uint %uint_20 = OpConstant %uint 20 %uint_21 = OpConstant %uint 21 %uint_22 = OpConstant %uint 22 %mat4v2float = OpTypeMatrix %v2float 4 %75 = OpTypeFunction %mat4v2float %uint %uint_25 = OpConstant %uint 25 %uint_26 = OpConstant %uint 26 %uint_27 = OpConstant %uint 27 %uint_28 = OpConstant %uint 28 %mat2v2half = OpTypeMatrix %v2half 2 %99 = OpTypeFunction %mat2v2half %uint %uint_31 = OpConstant %uint 31 %_ptr_Uniform_v2half = OpTypePointer Uniform %v2half %uint_32 = OpConstant %uint 32 %mat2v3half = OpTypeMatrix %v3half 2 %116 = OpTypeFunction %mat2v3half %uint %uint_33 = OpConstant %uint 33 %_ptr_Uniform_v3half = OpTypePointer Uniform %v3half %uint_34 = OpConstant %uint 34 %mat2v4half = OpTypeMatrix %v4half 2 %133 = OpTypeFunction %mat2v4half %uint %uint_35 = OpConstant %uint 35 %_ptr_Uniform_v4half = OpTypePointer Uniform %v4half %uint_36 = OpConstant %uint 36 %mat3v2half = OpTypeMatrix %v2half 3 %150 = OpTypeFunction %mat3v2half %uint %uint_37 = OpConstant %uint 37 %uint_38 = OpConstant %uint 38 %uint_39 = OpConstant %uint 39 %mat3v3half = OpTypeMatrix %v3half 3 %170 = OpTypeFunction %mat3v3half %uint %uint_40 = OpConstant %uint 40 %uint_41 = OpConstant %uint 41 %uint_42 = OpConstant %uint 42 %mat3v4half = OpTypeMatrix %v4half 3 %190 = OpTypeFunction %mat3v4half %uint %uint_43 = OpConstant %uint 43 %uint_44 = OpConstant %uint 44 %uint_45 = OpConstant %uint 45 %mat4v2half = OpTypeMatrix %v2half 4 %210 = OpTypeFunction %mat4v2half %uint %uint_46 = OpConstant %uint 46 %uint_47 = OpConstant %uint 47 %uint_48 = OpConstant %uint 48 %uint_49 = OpConstant %uint 49 %mat4v3half = OpTypeMatrix %v3half 4 %234 = OpTypeFunction %mat4v3half %uint %uint_50 = OpConstant %uint 50 %uint_51 = OpConstant %uint 51 %uint_52 = OpConstant %uint 52 %uint_53 = OpConstant %uint 53 %mat4v4half = OpTypeMatrix %v4half 4 %258 = OpTypeFunction %mat4v4half %uint %uint_54 = OpConstant %uint 54 %uint_55 = OpConstant %uint 55 %uint_56 = OpConstant %uint 56 %uint_57 = OpConstant %uint 57 %282 = OpTypeFunction %mat4v2half %mat4x2_f16_4 %_arr_mat4v2half_uint_2 = OpTypeArray %mat4v2half %uint_2 %291 = OpTypeFunction %_arr_mat4v2half_uint_2 %_arr_mat4x2_f16_4_uint_2 %_ptr_Function__arr_mat4v2half_uint_2 = OpTypePointer Function %_arr_mat4v2half_uint_2 %298 = OpConstantNull %_arr_mat4v2half_uint_2 %_ptr_Function_uint = OpTypePointer Function %uint %301 = OpConstantNull %uint %bool = OpTypeBool %_ptr_Function__arr_mat4x2_f16_4_uint_2 = OpTypePointer Function %_arr_mat4x2_f16_4_uint_2 %314 = OpConstantNull %_arr_mat4x2_f16_4_uint_2 %_ptr_Function_mat4v2half = OpTypePointer Function %mat4v2half %_ptr_Function_mat4x2_f16_4 = OpTypePointer Function %mat4x2_f16_4 %uint_1 = OpConstant %uint 1 %void = OpTypeVoid %327 = OpTypeFunction %void %uint %_ptr_Uniform_float = OpTypePointer Uniform %float %_ptr_Uniform_int = OpTypePointer Uniform %int %_ptr_Uniform_uint = OpTypePointer Uniform %uint %uint_3 = OpConstant %uint 3 %_ptr_Uniform_half = OpTypePointer Uniform %half %uint_4 = OpConstant %uint 4 %uint_5 = OpConstant %uint 5 %_ptr_Uniform_v2int = OpTypePointer Uniform %v2int %uint_6 = OpConstant %uint 6 %_ptr_Uniform_v2uint = OpTypePointer Uniform %v2uint %uint_7 = OpConstant %uint 7 %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float %uint_9 = OpConstant %uint 9 %_ptr_Uniform_v3int = OpTypePointer Uniform %v3int %uint_10 = OpConstant %uint 10 %_ptr_Uniform_v3uint = OpTypePointer Uniform %v3uint %uint_11 = OpConstant %uint 11 %uint_12 = OpConstant %uint 12 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float %uint_13 = OpConstant %uint 13 %_ptr_Uniform_v4int = OpTypePointer Uniform %v4int %uint_14 = OpConstant %uint 14 %_ptr_Uniform_v4uint = OpTypePointer Uniform %v4uint %uint_15 = OpConstant %uint 15 %uint_18 = OpConstant %uint 18 %_ptr_Uniform_mat2v3float = OpTypePointer Uniform %mat2v3float %uint_19 = OpConstant %uint 19 %_ptr_Uniform_mat2v4float = OpTypePointer Uniform %mat2v4float %uint_23 = OpConstant %uint 23 %_ptr_Uniform_mat3v3float = OpTypePointer Uniform %mat3v3float %uint_24 = OpConstant %uint 24 %_ptr_Uniform_mat3v4float = OpTypePointer Uniform %mat3v4float %uint_29 = OpConstant %uint 29 %_ptr_Uniform_mat4v3float = OpTypePointer Uniform %mat4v3float %uint_30 = OpConstant %uint 30 %_ptr_Uniform_mat4v4float = OpTypePointer Uniform %mat4v4float %uint_58 = OpConstant %uint 58 %_ptr_Uniform__arr_v3float_uint_2 = OpTypePointer Uniform %_arr_v3float_uint_2 %uint_59 = OpConstant %uint 59 %_ptr_Uniform__arr_mat4x2_f16_4_uint_2 = OpTypePointer Uniform %_arr_mat4x2_f16_4_uint_2 %445 = OpTypeFunction %void %load_ub_inner_arr_p0_mat2x2_f32 = OpFunction %mat2v2float None %36 %p0 = OpFunctionParameter %uint %40 = OpLabel %44 = OpAccessChain %_ptr_Uniform_Inner_std140 %ub %uint_0 %uint_0 %p0 %48 = OpAccessChain %_ptr_Uniform_v2float %44 %uint_16 %49 = OpLoad %v2float %48 %52 = OpAccessChain %_ptr_Uniform_v2float %44 %uint_17 %53 = OpLoad %v2float %52 %54 = OpCompositeConstruct %mat2v2float %49 %53 OpReturnValue %54 OpFunctionEnd %load_ub_inner_arr_p0_mat3x2_f32 = OpFunction %mat3v2float None %55 %p0_0 = OpFunctionParameter %uint %59 = OpLabel %61 = OpAccessChain %_ptr_Uniform_Inner_std140 %ub %uint_0 %uint_0 %p0_0 %64 = OpAccessChain %_ptr_Uniform_v2float %61 %uint_20 %65 = OpLoad %v2float %64 %68 = OpAccessChain %_ptr_Uniform_v2float %61 %uint_21 %69 = OpLoad %v2float %68 %72 = OpAccessChain %_ptr_Uniform_v2float %61 %uint_22 %73 = OpLoad %v2float %72 %74 = OpCompositeConstruct %mat3v2float %65 %69 %73 OpReturnValue %74 OpFunctionEnd %load_ub_inner_arr_p0_mat4x2_f32 = OpFunction %mat4v2float None %75 %p0_1 = OpFunctionParameter %uint %79 = OpLabel %81 = OpAccessChain %_ptr_Uniform_Inner_std140 %ub %uint_0 %uint_0 %p0_1 %84 = OpAccessChain %_ptr_Uniform_v2float %81 %uint_25 %85 = OpLoad %v2float %84 %88 = OpAccessChain %_ptr_Uniform_v2float %81 %uint_26 %89 = OpLoad %v2float %88 %92 = OpAccessChain %_ptr_Uniform_v2float %81 %uint_27 %93 = OpLoad %v2float %92 %96 = OpAccessChain %_ptr_Uniform_v2float %81 %uint_28 %97 = OpLoad %v2float %96 %98 = OpCompositeConstruct %mat4v2float %85 %89 %93 %97 OpReturnValue %98 OpFunctionEnd %load_ub_inner_arr_p0_mat2x2_f16 = OpFunction %mat2v2half None %99 %p0_2 = OpFunctionParameter %uint %103 = OpLabel %105 = OpAccessChain %_ptr_Uniform_Inner_std140 %ub %uint_0 %uint_0 %p0_2 %109 = OpAccessChain %_ptr_Uniform_v2half %105 %uint_31 %110 = OpLoad %v2half %109 %113 = OpAccessChain %_ptr_Uniform_v2half %105 %uint_32 %114 = OpLoad %v2half %113 %115 = OpCompositeConstruct %mat2v2half %110 %114 OpReturnValue %115 OpFunctionEnd %load_ub_inner_arr_p0_mat2x3_f16 = OpFunction %mat2v3half None %116 %p0_3 = OpFunctionParameter %uint %120 = OpLabel %122 = OpAccessChain %_ptr_Uniform_Inner_std140 %ub %uint_0 %uint_0 %p0_3 %126 = OpAccessChain %_ptr_Uniform_v3half %122 %uint_33 %127 = OpLoad %v3half %126 %130 = OpAccessChain %_ptr_Uniform_v3half %122 %uint_34 %131 = OpLoad %v3half %130 %132 = OpCompositeConstruct %mat2v3half %127 %131 OpReturnValue %132 OpFunctionEnd %load_ub_inner_arr_p0_mat2x4_f16 = OpFunction %mat2v4half None %133 %p0_4 = OpFunctionParameter %uint %137 = OpLabel %139 = OpAccessChain %_ptr_Uniform_Inner_std140 %ub %uint_0 %uint_0 %p0_4 %143 = OpAccessChain %_ptr_Uniform_v4half %139 %uint_35 %144 = OpLoad %v4half %143 %147 = OpAccessChain %_ptr_Uniform_v4half %139 %uint_36 %148 = OpLoad %v4half %147 %149 = OpCompositeConstruct %mat2v4half %144 %148 OpReturnValue %149 OpFunctionEnd %load_ub_inner_arr_p0_mat3x2_f16 = OpFunction %mat3v2half None %150 %p0_5 = OpFunctionParameter %uint %154 = OpLabel %156 = OpAccessChain %_ptr_Uniform_Inner_std140 %ub %uint_0 %uint_0 %p0_5 %159 = OpAccessChain %_ptr_Uniform_v2half %156 %uint_37 %160 = OpLoad %v2half %159 %163 = OpAccessChain %_ptr_Uniform_v2half %156 %uint_38 %164 = OpLoad %v2half %163 %167 = OpAccessChain %_ptr_Uniform_v2half %156 %uint_39 %168 = OpLoad %v2half %167 %169 = OpCompositeConstruct %mat3v2half %160 %164 %168 OpReturnValue %169 OpFunctionEnd %load_ub_inner_arr_p0_mat3x3_f16 = OpFunction %mat3v3half None %170 %p0_6 = OpFunctionParameter %uint %174 = OpLabel %176 = OpAccessChain %_ptr_Uniform_Inner_std140 %ub %uint_0 %uint_0 %p0_6 %179 = OpAccessChain %_ptr_Uniform_v3half %176 %uint_40 %180 = OpLoad %v3half %179 %183 = OpAccessChain %_ptr_Uniform_v3half %176 %uint_41 %184 = OpLoad %v3half %183 %187 = OpAccessChain %_ptr_Uniform_v3half %176 %uint_42 %188 = OpLoad %v3half %187 %189 = OpCompositeConstruct %mat3v3half %180 %184 %188 OpReturnValue %189 OpFunctionEnd %load_ub_inner_arr_p0_mat3x4_f16 = OpFunction %mat3v4half None %190 %p0_7 = OpFunctionParameter %uint %194 = OpLabel %196 = OpAccessChain %_ptr_Uniform_Inner_std140 %ub %uint_0 %uint_0 %p0_7 %199 = OpAccessChain %_ptr_Uniform_v4half %196 %uint_43 %200 = OpLoad %v4half %199 %203 = OpAccessChain %_ptr_Uniform_v4half %196 %uint_44 %204 = OpLoad %v4half %203 %207 = OpAccessChain %_ptr_Uniform_v4half %196 %uint_45 %208 = OpLoad %v4half %207 %209 = OpCompositeConstruct %mat3v4half %200 %204 %208 OpReturnValue %209 OpFunctionEnd %load_ub_inner_arr_p0_mat4x2_f16 = OpFunction %mat4v2half None %210 %p0_8 = OpFunctionParameter %uint %214 = OpLabel %216 = OpAccessChain %_ptr_Uniform_Inner_std140 %ub %uint_0 %uint_0 %p0_8 %219 = OpAccessChain %_ptr_Uniform_v2half %216 %uint_46 %220 = OpLoad %v2half %219 %223 = OpAccessChain %_ptr_Uniform_v2half %216 %uint_47 %224 = OpLoad %v2half %223 %227 = OpAccessChain %_ptr_Uniform_v2half %216 %uint_48 %228 = OpLoad %v2half %227 %231 = OpAccessChain %_ptr_Uniform_v2half %216 %uint_49 %232 = OpLoad %v2half %231 %233 = OpCompositeConstruct %mat4v2half %220 %224 %228 %232 OpReturnValue %233 OpFunctionEnd %load_ub_inner_arr_p0_mat4x3_f16 = OpFunction %mat4v3half None %234 %p0_9 = OpFunctionParameter %uint %238 = OpLabel %240 = OpAccessChain %_ptr_Uniform_Inner_std140 %ub %uint_0 %uint_0 %p0_9 %243 = OpAccessChain %_ptr_Uniform_v3half %240 %uint_50 %244 = OpLoad %v3half %243 %247 = OpAccessChain %_ptr_Uniform_v3half %240 %uint_51 %248 = OpLoad %v3half %247 %251 = OpAccessChain %_ptr_Uniform_v3half %240 %uint_52 %252 = OpLoad %v3half %251 %255 = OpAccessChain %_ptr_Uniform_v3half %240 %uint_53 %256 = OpLoad %v3half %255 %257 = OpCompositeConstruct %mat4v3half %244 %248 %252 %256 OpReturnValue %257 OpFunctionEnd %load_ub_inner_arr_p0_mat4x4_f16 = OpFunction %mat4v4half None %258 %p0_10 = OpFunctionParameter %uint %262 = OpLabel %264 = OpAccessChain %_ptr_Uniform_Inner_std140 %ub %uint_0 %uint_0 %p0_10 %267 = OpAccessChain %_ptr_Uniform_v4half %264 %uint_54 %268 = OpLoad %v4half %267 %271 = OpAccessChain %_ptr_Uniform_v4half %264 %uint_55 %272 = OpLoad %v4half %271 %275 = OpAccessChain %_ptr_Uniform_v4half %264 %uint_56 %276 = OpLoad %v4half %275 %279 = OpAccessChain %_ptr_Uniform_v4half %264 %uint_57 %280 = OpLoad %v4half %279 %281 = OpCompositeConstruct %mat4v4half %268 %272 %276 %280 OpReturnValue %281 OpFunctionEnd %conv_mat4x2_f16 = OpFunction %mat4v2half None %282 %val = OpFunctionParameter %mat4x2_f16_4 %285 = OpLabel %286 = OpCompositeExtract %v2half %val 0 %287 = OpCompositeExtract %v2half %val 1 %288 = OpCompositeExtract %v2half %val 2 %289 = OpCompositeExtract %v2half %val 3 %290 = OpCompositeConstruct %mat4v2half %286 %287 %288 %289 OpReturnValue %290 OpFunctionEnd %conv_arr2_mat4x2_f16 = OpFunction %_arr_mat4v2half_uint_2 None %291 %val_0 = OpFunctionParameter %_arr_mat4x2_f16_4_uint_2 %295 = OpLabel %arr = OpVariable %_ptr_Function__arr_mat4v2half_uint_2 Function %298 %i = OpVariable %_ptr_Function_uint Function %301 %var_for_index = OpVariable %_ptr_Function__arr_mat4x2_f16_4_uint_2 Function %314 OpBranch %302 %302 = OpLabel OpLoopMerge %303 %304 None OpBranch %305 %305 = OpLabel %307 = OpLoad %uint %i %308 = OpULessThan %bool %307 %uint_2 %306 = OpLogicalNot %bool %308 OpSelectionMerge %310 None OpBranchConditional %306 %311 %310 %311 = OpLabel OpBranch %303 %310 = OpLabel OpStore %var_for_index %val_0 %315 = OpLoad %uint %i %317 = OpAccessChain %_ptr_Function_mat4v2half %arr %315 %319 = OpLoad %uint %i %321 = OpAccessChain %_ptr_Function_mat4x2_f16_4 %var_for_index %319 %322 = OpLoad %mat4x2_f16_4 %321 %318 = OpFunctionCall %mat4v2half %conv_mat4x2_f16 %322 OpStore %317 %318 OpBranch %304 %304 = OpLabel %323 = OpLoad %uint %i %325 = OpIAdd %uint %323 %uint_1 OpStore %i %325 OpBranch %302 %303 = OpLabel %326 = OpLoad %_arr_mat4v2half_uint_2 %arr OpReturnValue %326 OpFunctionEnd %main_inner = OpFunction %void None %327 %idx = OpFunctionParameter %uint %331 = OpLabel %333 = OpAccessChain %_ptr_Uniform_float %ub %uint_0 %uint_0 %idx %uint_0 %334 = OpLoad %float %333 %336 = OpAccessChain %_ptr_Uniform_int %ub %uint_0 %uint_0 %idx %uint_1 %337 = OpLoad %int %336 %339 = OpAccessChain %_ptr_Uniform_uint %ub %uint_0 %uint_0 %idx %uint_2 %340 = OpLoad %uint %339 %343 = OpAccessChain %_ptr_Uniform_half %ub %uint_0 %uint_0 %idx %uint_3 %344 = OpLoad %half %343 %346 = OpAccessChain %_ptr_Uniform_v2float %ub %uint_0 %uint_0 %idx %uint_4 %347 = OpLoad %v2float %346 %350 = OpAccessChain %_ptr_Uniform_v2int %ub %uint_0 %uint_0 %idx %uint_5 %351 = OpLoad %v2int %350 %354 = OpAccessChain %_ptr_Uniform_v2uint %ub %uint_0 %uint_0 %idx %uint_6 %355 = OpLoad %v2uint %354 %357 = OpAccessChain %_ptr_Uniform_v2half %ub %uint_0 %uint_0 %idx %uint_7 %358 = OpLoad %v2half %357 %360 = OpAccessChain %_ptr_Uniform_v3float %ub %uint_0 %uint_0 %idx %uint_8 %361 = OpLoad %v3float %360 %364 = OpAccessChain %_ptr_Uniform_v3int %ub %uint_0 %uint_0 %idx %uint_9 %365 = OpLoad %v3int %364 %368 = OpAccessChain %_ptr_Uniform_v3uint %ub %uint_0 %uint_0 %idx %uint_10 %369 = OpLoad %v3uint %368 %371 = OpAccessChain %_ptr_Uniform_v3half %ub %uint_0 %uint_0 %idx %uint_11 %372 = OpLoad %v3half %371 %375 = OpAccessChain %_ptr_Uniform_v4float %ub %uint_0 %uint_0 %idx %uint_12 %376 = OpLoad %v4float %375 %379 = OpAccessChain %_ptr_Uniform_v4int %ub %uint_0 %uint_0 %idx %uint_13 %380 = OpLoad %v4int %379 %383 = OpAccessChain %_ptr_Uniform_v4uint %ub %uint_0 %uint_0 %idx %uint_14 %384 = OpLoad %v4uint %383 %386 = OpAccessChain %_ptr_Uniform_v4half %ub %uint_0 %uint_0 %idx %uint_15 %387 = OpLoad %v4half %386 %388 = OpFunctionCall %mat2v2float %load_ub_inner_arr_p0_mat2x2_f32 %idx %392 = OpAccessChain %_ptr_Uniform_mat2v3float %ub %uint_0 %uint_0 %idx %uint_18 %393 = OpLoad %mat2v3float %392 %396 = OpAccessChain %_ptr_Uniform_mat2v4float %ub %uint_0 %uint_0 %idx %uint_19 %397 = OpLoad %mat2v4float %396 %398 = OpFunctionCall %mat3v2float %load_ub_inner_arr_p0_mat3x2_f32 %idx %402 = OpAccessChain %_ptr_Uniform_mat3v3float %ub %uint_0 %uint_0 %idx %uint_23 %403 = OpLoad %mat3v3float %402 %406 = OpAccessChain %_ptr_Uniform_mat3v4float %ub %uint_0 %uint_0 %idx %uint_24 %407 = OpLoad %mat3v4float %406 %408 = OpFunctionCall %mat4v2float %load_ub_inner_arr_p0_mat4x2_f32 %idx %412 = OpAccessChain %_ptr_Uniform_mat4v3float %ub %uint_0 %uint_0 %idx %uint_29 %413 = OpLoad %mat4v3float %412 %416 = OpAccessChain %_ptr_Uniform_mat4v4float %ub %uint_0 %uint_0 %idx %uint_30 %417 = OpLoad %mat4v4float %416 %418 = OpFunctionCall %mat2v2half %load_ub_inner_arr_p0_mat2x2_f16 %idx %420 = OpFunctionCall %mat2v3half %load_ub_inner_arr_p0_mat2x3_f16 %idx %422 = OpFunctionCall %mat2v4half %load_ub_inner_arr_p0_mat2x4_f16 %idx %424 = OpFunctionCall %mat3v2half %load_ub_inner_arr_p0_mat3x2_f16 %idx %426 = OpFunctionCall %mat3v3half %load_ub_inner_arr_p0_mat3x3_f16 %idx %428 = OpFunctionCall %mat3v4half %load_ub_inner_arr_p0_mat3x4_f16 %idx %430 = OpFunctionCall %mat4v2half %load_ub_inner_arr_p0_mat4x2_f16 %idx %432 = OpFunctionCall %mat4v3half %load_ub_inner_arr_p0_mat4x3_f16 %idx %434 = OpFunctionCall %mat4v4half %load_ub_inner_arr_p0_mat4x4_f16 %idx %438 = OpAccessChain %_ptr_Uniform__arr_v3float_uint_2 %ub %uint_0 %uint_0 %idx %uint_58 %439 = OpLoad %_arr_v3float_uint_2 %438 %443 = OpAccessChain %_ptr_Uniform__arr_mat4x2_f16_4_uint_2 %ub %uint_0 %uint_0 %idx %uint_59 %444 = OpLoad %_arr_mat4x2_f16_4_uint_2 %443 %440 = OpFunctionCall %_arr_mat4v2half_uint_2 %conv_arr2_mat4x2_f16 %444 OpReturn OpFunctionEnd %main = OpFunction %void None %445 %447 = OpLabel %449 = OpLoad %uint %idx_1 %448 = OpFunctionCall %void %main_inner %449 OpReturn OpFunctionEnd