|  | ; SPIR-V | 
|  | ; Version: 1.3 | 
|  | ; Generator: Google Tint Compiler; 1 | 
|  | ; Bound: 119 | 
|  | ; 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 %foo "foo" | 
|  | OpName %m_root "m_root" | 
|  | OpName %m_array_root "m_array_root" | 
|  | OpName %m_nested_array_root "m_nested_array_root" | 
|  | OpMemberName %S 0 "l" | 
|  | OpMemberName %S 1 "r" | 
|  | OpName %S "S" | 
|  | OpName %m_struct_root "m_struct_root" | 
|  | OpMemberName %S_Nested 0 "s" | 
|  | OpName %S_Nested "S_Nested" | 
|  | OpName %m_nested_struct_root "m_nested_struct_root" | 
|  | OpName %main "main" | 
|  | OpName %m "m" | 
|  | OpName %m_array "m_array" | 
|  | OpName %m_nested_array "m_nested_array" | 
|  | OpName %m_struct "m_struct" | 
|  | OpName %m_nested_struct "m_nested_struct" | 
|  | 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 | 
|  | %uint = OpTypeInt 32 0 | 
|  | %uint_3 = OpConstant %uint 3 | 
|  | %uint_8 = OpConstant %uint 8 | 
|  | %uint_0 = OpConstant %uint 0 | 
|  | %9 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0 | 
|  | %_ptr_Function_9 = OpTypePointer Function %9 | 
|  | %uint_4 = OpConstant %uint 4 | 
|  | %_arr_9_uint_4 = OpTypeArray %9 %uint_4 | 
|  | %_ptr_Function__arr_9_uint_4 = OpTypePointer Function %_arr_9_uint_4 | 
|  | %_arr__arr_9_uint_4_uint_4 = OpTypeArray %_arr_9_uint_4 %uint_4 | 
|  | %_ptr_Function__arr__arr_9_uint_4_uint_4 = OpTypePointer Function %_arr__arr_9_uint_4_uint_4 | 
|  | %uint_1 = OpConstant %uint 1 | 
|  | %24 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1 | 
|  | %S = OpTypeStruct %9 %24 | 
|  | %_ptr_Function_S = OpTypePointer Function %S | 
|  | %S_Nested = OpTypeStruct %S | 
|  | %_ptr_Function_S_Nested = OpTypePointer Function %S_Nested | 
|  | %30 = OpTypeFunction %void %_ptr_Function_9 %_ptr_Function__arr_9_uint_4 %_ptr_Function__arr__arr_9_uint_4_uint_4 %_ptr_Function_S %_ptr_Function_S_Nested | 
|  | %_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float | 
|  | %uint_64 = OpConstant %uint 64 | 
|  | %uint_7 = OpConstant %uint 7 | 
|  | %bool = OpTypeBool | 
|  | %uint_2 = OpConstant %uint 2 | 
|  | %_ptr_Function_24 = OpTypePointer Function %24 | 
|  | %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float | 
|  | %104 = OpTypeFunction %void | 
|  | %float_0 = OpConstant %float 0 | 
|  | %107 = OpConstantComposite %9 %float_0 | 
|  | %110 = OpConstantComposite %_arr_9_uint_4 %107 %107 %107 %107 | 
|  | %112 = OpConstantComposite %_arr__arr_9_uint_4_uint_4 %110 %110 %110 %110 | 
|  | %115 = OpConstantComposite %24 %float_0 | 
|  | %114 = OpConstantComposite %S %107 %115 | 
|  | %117 = OpConstantComposite %S_Nested %114 | 
|  | %foo = OpFunction %void None %30 | 
|  | %m_root = OpFunctionParameter %_ptr_Function_9 | 
|  | %m_array_root = OpFunctionParameter %_ptr_Function__arr_9_uint_4 | 
|  | %m_nested_array_root = OpFunctionParameter %_ptr_Function__arr__arr_9_uint_4_uint_4 | 
|  | %m_struct_root = OpFunctionParameter %_ptr_Function_S | 
|  | %m_nested_struct_root = OpFunctionParameter %_ptr_Function_S_Nested | 
|  | %31 = OpLabel | 
|  | %32 = OpLoad %9 %m_root None | 
|  | %33 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
|  | %35 = OpArrayLength %uint %1 0 | 
|  | %36 = OpIMul %uint %uint_64 %uint_7 | 
|  | %39 = OpIAdd %uint %uint_0 %36 | 
|  | %40 = OpIAdd %uint %39 %uint_8 | 
|  | %41 = OpULessThanEqual %bool %40 %35 | 
|  | OpSelectionMerge %43 None | 
|  | OpBranchConditional %41 %44 %43 | 
|  | %44 = OpLabel | 
|  | %87 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
|  | %88 = OpAccessChain %_ptr_StorageBuffer_float %87 %uint_0 | 
|  | OpCooperativeMatrixStoreKHR %88 %32 %uint_0 %uint_64 NonPrivatePointer | 
|  | OpBranch %43 | 
|  | %43 = OpLabel | 
|  | %45 = OpAccessChain %_ptr_Function_9 %m_array_root %uint_0 | 
|  | %46 = OpLoad %9 %45 None | 
|  | %47 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
|  | %48 = OpArrayLength %uint %1 0 | 
|  | %49 = OpIMul %uint %uint_64 %uint_7 | 
|  | %50 = OpIAdd %uint %uint_0 %49 | 
|  | %51 = OpIAdd %uint %50 %uint_8 | 
|  | %52 = OpULessThanEqual %bool %51 %48 | 
|  | OpSelectionMerge %53 None | 
|  | OpBranchConditional %52 %54 %53 | 
|  | %54 = OpLabel | 
|  | %91 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
|  | %92 = OpAccessChain %_ptr_StorageBuffer_float %91 %uint_0 | 
|  | OpCooperativeMatrixStoreKHR %92 %46 %uint_0 %uint_64 NonPrivatePointer | 
|  | OpBranch %53 | 
|  | %53 = OpLabel | 
|  | %55 = OpAccessChain %_ptr_Function_9 %m_nested_array_root %uint_1 %uint_2 | 
|  | %57 = OpLoad %9 %55 None | 
|  | %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 | 
|  | %94 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
|  | %95 = OpAccessChain %_ptr_StorageBuffer_float %94 %uint_0 | 
|  | OpCooperativeMatrixStoreKHR %95 %57 %uint_0 %uint_64 NonPrivatePointer | 
|  | OpBranch %64 | 
|  | %64 = OpLabel | 
|  | %66 = OpAccessChain %_ptr_Function_9 %m_struct_root %uint_0 | 
|  | %67 = OpLoad %9 %66 None | 
|  | %68 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
|  | %69 = OpArrayLength %uint %1 0 | 
|  | %70 = OpIMul %uint %uint_64 %uint_7 | 
|  | %71 = OpIAdd %uint %uint_0 %70 | 
|  | %72 = OpIAdd %uint %71 %uint_8 | 
|  | %73 = OpULessThanEqual %bool %72 %69 | 
|  | OpSelectionMerge %74 None | 
|  | OpBranchConditional %73 %75 %74 | 
|  | %75 = OpLabel | 
|  | %97 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
|  | %98 = OpAccessChain %_ptr_StorageBuffer_float %97 %uint_0 | 
|  | OpCooperativeMatrixStoreKHR %98 %67 %uint_0 %uint_64 NonPrivatePointer | 
|  | OpBranch %74 | 
|  | %74 = OpLabel | 
|  | %76 = OpAccessChain %_ptr_Function_24 %m_nested_struct_root %uint_0 %uint_1 | 
|  | %78 = OpLoad %24 %76 None | 
|  | %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 | 
|  | %100 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %1 %uint_0 | 
|  | %101 = OpAccessChain %_ptr_StorageBuffer_float %100 %uint_0 | 
|  | OpCooperativeMatrixStoreKHR %101 %78 %uint_0 %uint_64 NonPrivatePointer | 
|  | OpBranch %85 | 
|  | %85 = OpLabel | 
|  | OpReturn | 
|  | OpFunctionEnd | 
|  | %main = OpFunction %void None %104 | 
|  | %105 = OpLabel | 
|  | %m = OpVariable %_ptr_Function_9 Function %107 | 
|  | %m_array = OpVariable %_ptr_Function__arr_9_uint_4 Function %110 | 
|  | %m_nested_array = OpVariable %_ptr_Function__arr__arr_9_uint_4_uint_4 Function %112 | 
|  | %m_struct = OpVariable %_ptr_Function_S Function %114 | 
|  | %m_nested_struct = OpVariable %_ptr_Function_S_Nested Function %117 | 
|  | %118 = OpFunctionCall %void %foo %m %m_array %m_nested_array %m_struct %m_nested_struct | 
|  | OpReturn | 
|  | OpFunctionEnd |