static const uint3 gl_WorkGroupSize = uint3(1u, 1u, 1u);

RWByteAddressBuffer ssbo : register(u2);
RWTexture2D<uint> uImage : register(u0);
RWTexture2D<int> iImage : register(u1);

groupshared int int_atomic;
groupshared uint uint_atomic;
groupshared int int_atomic_array[1];
groupshared uint uint_atomic_array[1];

void comp_main()
{
    uint _19;
    InterlockedAdd(uImage[int2(1, 5)], 1u, _19);
    uint _27;
    InterlockedAdd(uImage[int2(1, 5)], 1u, _27);
    iImage[int2(1, 6)] = int(_27).x;
    uint _32;
    InterlockedOr(uImage[int2(1, 5)], 1u, _32);
    uint _34;
    InterlockedXor(uImage[int2(1, 5)], 1u, _34);
    uint _36;
    InterlockedAnd(uImage[int2(1, 5)], 1u, _36);
    uint _38;
    InterlockedMin(uImage[int2(1, 5)], 1u, _38);
    uint _40;
    InterlockedMax(uImage[int2(1, 5)], 1u, _40);
    uint _44;
    InterlockedCompareExchange(uImage[int2(1, 5)], 10u, 2u, _44);
    int _47;
    InterlockedAdd(iImage[int2(1, 6)], 1, _47);
    int _49;
    InterlockedOr(iImage[int2(1, 6)], 1, _49);
    int _51;
    InterlockedXor(iImage[int2(1, 6)], 1, _51);
    int _53;
    InterlockedAnd(iImage[int2(1, 6)], 1, _53);
    int _55;
    InterlockedMin(iImage[int2(1, 6)], 1, _55);
    int _57;
    InterlockedMax(iImage[int2(1, 6)], 1, _57);
    int _61;
    InterlockedCompareExchange(iImage[int2(1, 5)], 10, 2, _61);
    uint _68;
    ssbo.InterlockedAdd(0, 1u, _68);
    uint _70;
    ssbo.InterlockedOr(0, 1u, _70);
    uint _72;
    ssbo.InterlockedXor(0, 1u, _72);
    uint _74;
    ssbo.InterlockedAnd(0, 1u, _74);
    uint _76;
    ssbo.InterlockedMin(0, 1u, _76);
    uint _78;
    ssbo.InterlockedMax(0, 1u, _78);
    uint _80;
    ssbo.InterlockedExchange(0, 1u, _80);
    uint _82;
    ssbo.InterlockedCompareExchange(0, 10u, 2u, _82);
    int _85;
    ssbo.InterlockedAdd(4, 1, _85);
    int _87;
    ssbo.InterlockedOr(4, 1, _87);
    int _89;
    ssbo.InterlockedXor(4, 1, _89);
    int _91;
    ssbo.InterlockedAnd(4, 1, _91);
    int _93;
    ssbo.InterlockedMin(4, 1, _93);
    int _95;
    ssbo.InterlockedMax(4, 1, _95);
    int _97;
    ssbo.InterlockedExchange(4, 1, _97);
    int _99;
    ssbo.InterlockedCompareExchange(4, 10, 2, _99);
    int _102;
    InterlockedAdd(int_atomic, 10, _102);
    uint _105;
    InterlockedAdd(uint_atomic, 10u, _105);
    int _110;
    InterlockedAdd(int_atomic_array[0], 10, _110);
    uint _115;
    InterlockedAdd(uint_atomic_array[0], 10u, _115);
}

[numthreads(1, 1, 1)]
void main()
{
    comp_main();
}
