| ; SPIR-V | 
 | ; Version: 1.3 | 
 | ; Generator: Google Tint Compiler; 1 | 
 | ; Bound: 177 | 
 | ; Schema: 0 | 
 |                OpCapability Shader | 
 |                OpCapability VulkanMemoryModel | 
 |                OpCapability VulkanMemoryModelDeviceScope | 
 |                OpCapability CooperativeMatrixKHR | 
 |                OpExtension "SPV_KHR_vulkan_memory_model" | 
 |                OpExtension "SPV_KHR_cooperative_matrix" | 
 |                OpMemoryModel Logical Vulkan | 
 |                OpEntryPoint GLCompute %main "main" | 
 |                OpExecutionMode %main LocalSize 64 1 1 | 
 |                OpMemberName %buffer_block_tint_explicit_layout 0 "inner" | 
 |                OpName %buffer_block_tint_explicit_layout "buffer_block_tint_explicit_layout" | 
 |                OpName %main "main" | 
 |                OpMemberName %S 0 "l" | 
 |                OpMemberName %S 1 "r" | 
 |                OpName %S "S" | 
 |                OpMemberName %S_Nested 0 "s" | 
 |                OpName %S_Nested "S_Nested" | 
 |                OpDecorate %_runtimearr_float ArrayStride 4 | 
 |                OpMemberDecorate %buffer_block_tint_explicit_layout 0 Offset 0 | 
 |                OpDecorate %buffer_block_tint_explicit_layout Block | 
 |                OpDecorate %1 DescriptorSet 0 | 
 |                OpDecorate %1 Binding 0 | 
 |       %float = OpTypeFloat 32 | 
 | %_runtimearr_float = OpTypeRuntimeArray %float | 
 | %buffer_block_tint_explicit_layout = OpTypeStruct %_runtimearr_float | 
 | %_ptr_StorageBuffer_buffer_block_tint_explicit_layout = OpTypePointer StorageBuffer %buffer_block_tint_explicit_layout | 
 |           %1 = OpVariable %_ptr_StorageBuffer_buffer_block_tint_explicit_layout StorageBuffer | 
 |        %void = OpTypeVoid | 
 |           %8 = OpTypeFunction %void | 
 |        %uint = OpTypeInt 32 0 | 
 |      %uint_3 = OpConstant %uint 3 | 
 |      %uint_8 = OpConstant %uint 8 | 
 |      %uint_0 = OpConstant %uint 0 | 
 |          %11 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0 | 
 |     %float_0 = OpConstant %float 0 | 
 |          %10 = OpConstantComposite %11 %float_0 | 
 | %_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float | 
 |     %uint_64 = OpConstant %uint 64 | 
 |      %uint_7 = OpConstant %uint 7 | 
 |        %bool = OpTypeBool | 
 |      %uint_4 = OpConstant %uint 4 | 
 | %_arr_11_uint_4 = OpTypeArray %11 %uint_4 | 
 |          %29 = OpConstantComposite %_arr_11_uint_4 %10 %10 %10 %10 | 
 | %_arr__arr_11_uint_4_uint_4 = OpTypeArray %_arr_11_uint_4 %uint_4 | 
 |          %41 = OpConstantComposite %_arr__arr_11_uint_4_uint_4 %29 %29 %29 %29 | 
 |      %uint_1 = OpConstant %uint 1 | 
 |          %54 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1 | 
 |           %S = OpTypeStruct %11 %54 | 
 |          %56 = OpConstantComposite %54 %float_0 | 
 |          %52 = OpConstantComposite %S %10 %56 | 
 |    %S_Nested = OpTypeStruct %S | 
 |          %66 = OpConstantComposite %S_Nested %52 | 
 |    %float_42 = OpConstant %float 42 | 
 |   %float_100 = OpConstant %float 100 | 
 |      %uint_2 = OpConstant %uint 2 | 
 | %_arr_11_uint_2 = OpTypeArray %11 %uint_2 | 
 |    %float_n7 = OpConstant %float -7 | 
 |   %float_n42 = OpConstant %float -42 | 
 | %_arr__arr_11_uint_2_uint_2 = OpTypeArray %_arr_11_uint_2 %uint_2 | 
 | %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float | 
 |        %main = OpFunction %void None %8 | 
 |           %9 = OpLabel | 
 |          %17 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |          %19 = OpArrayLength %uint %1 0 | 
 |          %20 = OpIMul %uint %uint_64 %uint_7 | 
 |          %23 = OpIAdd %uint %uint_0 %20 | 
 |          %24 = OpIAdd %uint %23 %uint_8 | 
 |          %25 = OpULessThanEqual %bool %24 %19 | 
 |                OpSelectionMerge %27 None | 
 |                OpBranchConditional %25 %28 %27 | 
 |          %28 = OpLabel | 
 |         %146 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |         %147 = OpAccessChain %_ptr_StorageBuffer_float %146 %uint_0 | 
 |                OpCooperativeMatrixStoreKHR %147 %10 %uint_0 %uint_64 NonPrivatePointer | 
 |                OpBranch %27 | 
 |          %27 = OpLabel | 
 |          %32 = OpCompositeExtract %11 %29 1 | 
 |          %33 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |          %34 = OpArrayLength %uint %1 0 | 
 |          %35 = OpIMul %uint %uint_64 %uint_7 | 
 |          %36 = OpIAdd %uint %uint_0 %35 | 
 |          %37 = OpIAdd %uint %36 %uint_8 | 
 |          %38 = OpULessThanEqual %bool %37 %34 | 
 |                OpSelectionMerge %39 None | 
 |                OpBranchConditional %38 %40 %39 | 
 |          %40 = OpLabel | 
 |         %150 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |         %151 = OpAccessChain %_ptr_StorageBuffer_float %150 %uint_0 | 
 |                OpCooperativeMatrixStoreKHR %151 %32 %uint_0 %uint_64 NonPrivatePointer | 
 |                OpBranch %39 | 
 |          %39 = OpLabel | 
 |          %43 = OpCompositeExtract %11 %41 2 3 | 
 |          %44 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |          %45 = OpArrayLength %uint %1 0 | 
 |          %46 = OpIMul %uint %uint_64 %uint_7 | 
 |          %47 = OpIAdd %uint %uint_0 %46 | 
 |          %48 = OpIAdd %uint %47 %uint_8 | 
 |          %49 = OpULessThanEqual %bool %48 %45 | 
 |                OpSelectionMerge %50 None | 
 |                OpBranchConditional %49 %51 %50 | 
 |          %51 = OpLabel | 
 |         %153 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |         %154 = OpAccessChain %_ptr_StorageBuffer_float %153 %uint_0 | 
 |                OpCooperativeMatrixStoreKHR %154 %43 %uint_0 %uint_64 NonPrivatePointer | 
 |                OpBranch %50 | 
 |          %50 = OpLabel | 
 |          %57 = OpCompositeExtract %11 %52 0 | 
 |          %58 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |          %59 = OpArrayLength %uint %1 0 | 
 |          %60 = OpIMul %uint %uint_64 %uint_7 | 
 |          %61 = OpIAdd %uint %uint_0 %60 | 
 |          %62 = OpIAdd %uint %61 %uint_8 | 
 |          %63 = OpULessThanEqual %bool %62 %59 | 
 |                OpSelectionMerge %64 None | 
 |                OpBranchConditional %63 %65 %64 | 
 |          %65 = OpLabel | 
 |         %156 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |         %157 = OpAccessChain %_ptr_StorageBuffer_float %156 %uint_0 | 
 |                OpCooperativeMatrixStoreKHR %157 %57 %uint_0 %uint_64 NonPrivatePointer | 
 |                OpBranch %64 | 
 |          %64 = OpLabel | 
 |          %68 = OpCompositeExtract %54 %66 0 1 | 
 |          %69 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |          %70 = OpArrayLength %uint %1 0 | 
 |          %71 = OpIMul %uint %uint_64 %uint_7 | 
 |          %72 = OpIAdd %uint %uint_0 %71 | 
 |          %73 = OpIAdd %uint %72 %uint_8 | 
 |          %74 = OpULessThanEqual %bool %73 %70 | 
 |                OpSelectionMerge %75 None | 
 |                OpBranchConditional %74 %76 %75 | 
 |          %76 = OpLabel | 
 |         %159 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |         %160 = OpAccessChain %_ptr_StorageBuffer_float %159 %uint_0 | 
 |                OpCooperativeMatrixStoreKHR %160 %68 %uint_0 %uint_64 NonPrivatePointer | 
 |                OpBranch %75 | 
 |          %75 = OpLabel | 
 |          %77 = OpCompositeConstruct %11 %float_42 | 
 |          %79 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |          %80 = OpArrayLength %uint %1 0 | 
 |          %81 = OpIMul %uint %uint_64 %uint_7 | 
 |          %82 = OpIAdd %uint %uint_0 %81 | 
 |          %83 = OpIAdd %uint %82 %uint_8 | 
 |          %84 = OpULessThanEqual %bool %83 %80 | 
 |                OpSelectionMerge %85 None | 
 |                OpBranchConditional %84 %86 %85 | 
 |          %86 = OpLabel | 
 |         %162 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |         %163 = OpAccessChain %_ptr_StorageBuffer_float %162 %uint_0 | 
 |                OpCooperativeMatrixStoreKHR %163 %77 %uint_0 %uint_64 NonPrivatePointer | 
 |                OpBranch %85 | 
 |          %85 = OpLabel | 
 |          %87 = OpCompositeConstruct %11 %float_42 | 
 |          %88 = OpCompositeConstruct %11 %float_100 | 
 |          %92 = OpCompositeConstruct %_arr_11_uint_2 %87 %88 | 
 |          %93 = OpCompositeExtract %11 %92 1 | 
 |          %94 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |          %95 = OpArrayLength %uint %1 0 | 
 |          %96 = OpIMul %uint %uint_64 %uint_7 | 
 |          %97 = OpIAdd %uint %uint_0 %96 | 
 |          %98 = OpIAdd %uint %97 %uint_8 | 
 |          %99 = OpULessThanEqual %bool %98 %95 | 
 |                OpSelectionMerge %100 None | 
 |                OpBranchConditional %99 %101 %100 | 
 |         %101 = OpLabel | 
 |         %165 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |         %166 = OpAccessChain %_ptr_StorageBuffer_float %165 %uint_0 | 
 |                OpCooperativeMatrixStoreKHR %166 %93 %uint_0 %uint_64 NonPrivatePointer | 
 |                OpBranch %100 | 
 |         %100 = OpLabel | 
 |         %102 = OpCompositeConstruct %11 %float_42 | 
 |         %103 = OpCompositeConstruct %11 %float_100 | 
 |         %104 = OpCompositeConstruct %_arr_11_uint_2 %102 %103 | 
 |         %105 = OpCompositeConstruct %11 %float_n7 | 
 |         %107 = OpCompositeConstruct %11 %float_n42 | 
 |         %109 = OpCompositeConstruct %_arr_11_uint_2 %105 %107 | 
 |         %111 = OpCompositeConstruct %_arr__arr_11_uint_2_uint_2 %104 %109 | 
 |         %112 = OpCompositeExtract %11 %111 1 0 | 
 |         %113 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |         %114 = OpArrayLength %uint %1 0 | 
 |         %115 = OpIMul %uint %uint_64 %uint_7 | 
 |         %116 = OpIAdd %uint %uint_0 %115 | 
 |         %117 = OpIAdd %uint %116 %uint_8 | 
 |         %118 = OpULessThanEqual %bool %117 %114 | 
 |                OpSelectionMerge %119 None | 
 |                OpBranchConditional %118 %120 %119 | 
 |         %120 = OpLabel | 
 |         %168 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |         %169 = OpAccessChain %_ptr_StorageBuffer_float %168 %uint_0 | 
 |                OpCooperativeMatrixStoreKHR %169 %112 %uint_0 %uint_64 NonPrivatePointer | 
 |                OpBranch %119 | 
 |         %119 = OpLabel | 
 |         %121 = OpCompositeConstruct %11 %float_42 | 
 |         %122 = OpCompositeConstruct %54 %float_100 | 
 |         %123 = OpCompositeConstruct %S %121 %122 | 
 |         %124 = OpCompositeExtract %11 %123 0 | 
 |         %125 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |         %126 = OpArrayLength %uint %1 0 | 
 |         %127 = OpIMul %uint %uint_64 %uint_7 | 
 |         %128 = OpIAdd %uint %uint_0 %127 | 
 |         %129 = OpIAdd %uint %128 %uint_8 | 
 |         %130 = OpULessThanEqual %bool %129 %126 | 
 |                OpSelectionMerge %131 None | 
 |                OpBranchConditional %130 %132 %131 | 
 |         %132 = OpLabel | 
 |         %171 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |         %172 = OpAccessChain %_ptr_StorageBuffer_float %171 %uint_0 | 
 |                OpCooperativeMatrixStoreKHR %172 %124 %uint_0 %uint_64 NonPrivatePointer | 
 |                OpBranch %131 | 
 |         %131 = OpLabel | 
 |         %133 = OpCompositeConstruct %11 %float_42 | 
 |         %134 = OpCompositeConstruct %54 %float_100 | 
 |         %135 = OpCompositeConstruct %S %133 %134 | 
 |         %136 = OpCompositeConstruct %S_Nested %135 | 
 |         %137 = OpCompositeExtract %54 %136 0 1 | 
 |         %138 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |         %139 = OpArrayLength %uint %1 0 | 
 |         %140 = OpIMul %uint %uint_64 %uint_7 | 
 |         %141 = OpIAdd %uint %uint_0 %140 | 
 |         %142 = OpIAdd %uint %141 %uint_8 | 
 |         %143 = OpULessThanEqual %bool %142 %139 | 
 |                OpSelectionMerge %144 None | 
 |                OpBranchConditional %143 %145 %144 | 
 |         %145 = OpLabel | 
 |         %174 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
 |         %175 = OpAccessChain %_ptr_StorageBuffer_float %174 %uint_0 | 
 |                OpCooperativeMatrixStoreKHR %175 %137 %uint_0 %uint_64 NonPrivatePointer | 
 |                OpBranch %144 | 
 |         %144 = OpLabel | 
 |                OpReturn | 
 |                OpFunctionEnd |