#version 460
layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;

layout(set = 1, binding = 2, std430) writeonly readonly buffer SSBO
{
    uint _m0[];
} _9;

layout(set = 7, binding = 0, std430) buffer AtomicCounterSSBO
{
    uint counter;
} _12;

layout(set = 2, binding = 2, std430) writeonly readonly buffer _14_16
{
    uint _m0[];
} _16;

layout(set = 7, binding = 1, std430) buffer _17_19
{
    uint counter;
} _19;

void main()
{
    uint _24 = atomicAdd(_12.counter, 1u);
    uint _26 = atomicAdd(_19.counter, 1u);
}


#if 0
// SPIR-V disassembly
; SPIR-V
; Version: 1.3
; Generator: Unknown(30017); 21022
; Bound: 29
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %3 "main"
OpExecutionMode %3 LocalSize 64 1 1
OpName %3 "main"
OpName %7 "SSBO"
OpName %10 "AtomicCounterSSBO"
OpMemberName %10 0 "counter"
OpName %14 "SSBO"
OpName %17 "AtomicCounterSSBO"
OpMemberName %17 0 "counter"
OpDecorate %6 ArrayStride 4
OpMemberDecorate %7 0 Offset 0
OpDecorate %7 Block
OpDecorate %9 DescriptorSet 1
OpDecorate %9 Binding 2
OpDecorate %9 NonReadable
OpDecorate %9 NonWritable
OpDecorate %10 Block
OpMemberDecorate %10 0 Offset 0
OpDecorate %12 DescriptorSet 7
OpDecorate %12 Binding 0
OpDecorate %13 ArrayStride 4
OpMemberDecorate %14 0 Offset 0
OpDecorate %14 Block
OpDecorate %16 DescriptorSet 2
OpDecorate %16 Binding 2
OpDecorate %16 NonReadable
OpDecorate %16 NonWritable
OpDecorate %17 Block
OpMemberDecorate %17 0 Offset 0
OpDecorate %19 DescriptorSet 7
OpDecorate %19 Binding 1
%1 = OpTypeVoid
%2 = OpTypeFunction %1
%5 = OpTypeInt 32 0
%6 = OpTypeRuntimeArray %5
%7 = OpTypeStruct %6
%8 = OpTypePointer StorageBuffer %7
%9 = OpVariable %8 StorageBuffer
%10 = OpTypeStruct %5
%11 = OpTypePointer StorageBuffer %10
%12 = OpVariable %11 StorageBuffer
%13 = OpTypeRuntimeArray %5
%14 = OpTypeStruct %13
%15 = OpTypePointer StorageBuffer %14
%16 = OpVariable %15 StorageBuffer
%17 = OpTypeStruct %5
%18 = OpTypePointer StorageBuffer %17
%19 = OpVariable %18 StorageBuffer
%20 = OpTypePointer StorageBuffer %5
%22 = OpConstant %5 0
%25 = OpConstant %5 1
%3 = OpFunction %1 None %2
%4 = OpLabel
OpBranch %27
%27 = OpLabel
%21 = OpAccessChain %20 %19 %22
%23 = OpAccessChain %20 %12 %22
%24 = OpAtomicIAdd %5 %23 %25 %22 %25
%26 = OpAtomicIAdd %5 %21 %25 %22 %25
OpReturn
OpFunctionEnd
#endif
