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

shared uint _9[64];
shared uint _10[64];

void main()
{
    uint _20 = atomicAdd(_9[gl_GlobalInvocationID.x], 1u);
    uint _23 = atomicAnd(_9[gl_GlobalInvocationID.x], 2u);
    uint _24 = atomicExchange(_9[gl_GlobalInvocationID.x], 3u);
    uint _26 = atomicMax(_9[gl_GlobalInvocationID.x], 4u);
    uint _28 = atomicMin(_9[gl_GlobalInvocationID.x], 5u);
    uint _30 = atomicOr(_9[gl_GlobalInvocationID.x], 6u);
    uint _32 = atomicXor(_9[gl_GlobalInvocationID.x], 7u);
    uint _35 = atomicMin(_10[gl_GlobalInvocationID.x], 8u);
    uint _37 = atomicMax(_10[gl_GlobalInvocationID.x], 9u);
}


#if 0
// SPIR-V disassembly
; SPIR-V
; Version: 1.3
; Generator: Unknown(30017); 21022
; Bound: 41
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %3 "main" %13
OpExecutionMode %3 LocalSize 64 1 1
OpName %3 "main"
OpDecorate %13 BuiltIn GlobalInvocationId
%1 = OpTypeVoid
%2 = OpTypeFunction %1
%5 = OpTypeInt 32 0
%6 = OpConstant %5 64
%7 = OpTypeArray %5 %6
%8 = OpTypePointer Workgroup %7
%9 = OpVariable %8 Workgroup
%10 = OpVariable %8 Workgroup
%11 = OpTypeVector %5 3
%12 = OpTypePointer Input %11
%13 = OpVariable %12 Input
%14 = OpTypePointer Input %5
%16 = OpConstant %5 0
%18 = OpTypePointer Workgroup %5
%21 = OpConstant %5 2
%22 = OpConstant %5 1
%25 = OpConstant %5 3
%27 = OpConstant %5 4
%29 = OpConstant %5 5
%31 = OpConstant %5 6
%33 = OpConstant %5 7
%36 = OpConstant %5 8
%38 = OpConstant %5 9
%3 = OpFunction %1 None %2
%4 = OpLabel
OpBranch %39
%39 = OpLabel
%15 = OpAccessChain %14 %13 %16
%17 = OpLoad %5 %15
%19 = OpAccessChain %18 %9 %17
%20 = OpAtomicIAdd %5 %19 %21 %16 %22
%23 = OpAtomicAnd %5 %19 %21 %16 %21
%24 = OpAtomicExchange %5 %19 %21 %16 %25
%26 = OpAtomicUMax %5 %19 %21 %16 %27
%28 = OpAtomicUMin %5 %19 %21 %16 %29
%30 = OpAtomicOr %5 %19 %21 %16 %31
%32 = OpAtomicXor %5 %19 %21 %16 %33
%34 = OpAccessChain %18 %10 %17
%35 = OpAtomicSMin %5 %34 %21 %16 %36
%37 = OpAtomicSMax %5 %34 %21 %16 %38
OpReturn
OpFunctionEnd
#endif
