; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 ; Bound: 78 ; Schema: 0 OpCapability Shader OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %unused_entry_point "unused_entry_point" OpExecutionMode %unused_entry_point LocalSize 1 1 1 OpName %buffer_block "buffer_block" OpMemberName %buffer_block 0 "inner" OpName %S "S" OpMemberName %S 0 "a" OpName %buffer "buffer" OpName %v "v" OpName %unused_entry_point "unused_entry_point" OpName %idx1 "idx1" OpName %idx2 "idx2" OpName %idx3 "idx3" OpName %idx4 "idx4" OpName %idx5 "idx5" OpName %idx6 "idx6" OpName %main "main" OpDecorate %buffer_block Block OpMemberDecorate %buffer_block 0 Offset 0 OpMemberDecorate %S 0 Offset 0 OpDecorate %_arr_v4int_uint_4 ArrayStride 16 OpDecorate %_runtimearr_S ArrayStride 64 OpDecorate %buffer DescriptorSet 0 OpDecorate %buffer Binding 0 %int = OpTypeInt 32 1 %v4int = OpTypeVector %int 4 %uint = OpTypeInt 32 0 %uint_4 = OpConstant %uint 4 %_arr_v4int_uint_4 = OpTypeArray %v4int %uint_4 %S = OpTypeStruct %_arr_v4int_uint_4 %_runtimearr_S = OpTypeRuntimeArray %S %buffer_block = OpTypeStruct %_runtimearr_S %_ptr_StorageBuffer_buffer_block = OpTypePointer StorageBuffer %buffer_block %buffer = OpVariable %_ptr_StorageBuffer_buffer_block StorageBuffer %_ptr_Private_uint = OpTypePointer Private %uint %13 = OpConstantNull %uint %v = OpVariable %_ptr_Private_uint Private %13 %void = OpTypeVoid %14 = OpTypeFunction %void %18 = OpTypeFunction %int %uint_1 = OpConstant %uint 1 %int_1 = OpConstant %int 1 %int_2 = OpConstant %int 2 %int_3 = OpConstant %int 3 %int_4 = OpConstant %int 4 %44 = OpConstantNull %int %uint_0 = OpConstant %uint 0 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int %uint_10 = OpConstant %uint 10 %bool = OpTypeBool %unused_entry_point = OpFunction %void None %14 %17 = OpLabel OpReturn OpFunctionEnd %idx1 = OpFunction %int None %18 %20 = OpLabel %21 = OpLoad %uint %v %23 = OpISub %uint %21 %uint_1 OpStore %v %23 OpReturnValue %int_1 OpFunctionEnd %idx2 = OpFunction %int None %18 %26 = OpLabel %27 = OpLoad %uint %v %28 = OpISub %uint %27 %uint_1 OpStore %v %28 OpReturnValue %int_2 OpFunctionEnd %idx3 = OpFunction %int None %18 %31 = OpLabel %32 = OpLoad %uint %v %33 = OpISub %uint %32 %uint_1 OpStore %v %33 OpReturnValue %int_3 OpFunctionEnd %idx4 = OpFunction %int None %18 %36 = OpLabel %37 = OpLoad %uint %v %38 = OpISub %uint %37 %uint_1 OpStore %v %38 OpReturnValue %int_4 OpFunctionEnd %idx5 = OpFunction %int None %18 %41 = OpLabel %42 = OpLoad %uint %v %43 = OpISub %uint %42 %uint_1 OpStore %v %43 OpReturnValue %44 OpFunctionEnd %idx6 = OpFunction %int None %18 %46 = OpLabel %47 = OpLoad %uint %v %48 = OpISub %uint %47 %uint_1 OpStore %v %48 OpReturnValue %int_2 OpFunctionEnd %main = OpFunction %void None %14 %50 = OpLabel %51 = OpFunctionCall %int %idx1 %52 = OpFunctionCall %int %idx2 %53 = OpFunctionCall %int %idx3 %56 = OpAccessChain %_ptr_StorageBuffer_int %buffer %uint_0 %51 %uint_0 %52 %53 %57 = OpAccessChain %_ptr_StorageBuffer_int %buffer %uint_0 %51 %uint_0 %52 %53 %58 = OpLoad %int %57 %59 = OpISub %int %58 %int_1 OpStore %56 %59 OpBranch %60 %60 = OpLabel OpLoopMerge %61 %62 None OpBranch %63 %63 = OpLabel %65 = OpLoad %uint %v %67 = OpULessThan %bool %65 %uint_10 %64 = OpLogicalNot %bool %67 OpSelectionMerge %69 None OpBranchConditional %64 %70 %69 %70 = OpLabel OpBranch %61 %69 = OpLabel OpBranch %62 %62 = OpLabel %71 = OpFunctionCall %int %idx4 %72 = OpFunctionCall %int %idx5 %73 = OpFunctionCall %int %idx6 %74 = OpAccessChain %_ptr_StorageBuffer_int %buffer %uint_0 %71 %uint_0 %72 %73 %75 = OpAccessChain %_ptr_StorageBuffer_int %buffer %uint_0 %71 %uint_0 %72 %73 %76 = OpLoad %int %75 %77 = OpISub %int %76 %int_1 OpStore %74 %77 OpBranch %60 %61 = OpLabel OpReturn OpFunctionEnd