#version 450

#extension GL_KHR_shader_subgroup_arithmetic: enable

layout (local_size_x = 8) in;

layout(binding = 0) buffer Buffers
{
    vec4  f4;
    ivec4 i4;
    uvec4 u4;
    dvec4 d4;
} data[4];

void main()
{
    uint invocation = (gl_SubgroupInvocationID + gl_SubgroupSize) % 4;

    data[invocation].f4.x   = subgroupAdd(data[0].f4.x);
    data[invocation].f4.xy  = subgroupAdd(data[1].f4.xy);
    data[invocation].f4.xyz = subgroupAdd(data[2].f4.xyz);
    data[invocation].f4     = subgroupAdd(data[3].f4);

    data[invocation].i4.x   = subgroupAdd(data[0].i4.x);
    data[invocation].i4.xy  = subgroupAdd(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupAdd(data[2].i4.xyz);
    data[invocation].i4     = subgroupAdd(data[3].i4);

    data[invocation].u4.x   = subgroupAdd(data[0].u4.x);
    data[invocation].u4.xy  = subgroupAdd(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupAdd(data[2].u4.xyz);
    data[invocation].u4     = subgroupAdd(data[3].u4);

    data[invocation].d4.x   = subgroupAdd(data[0].d4.x);
    data[invocation].d4.xy  = subgroupAdd(data[1].d4.xy);
    data[invocation].d4.xyz = subgroupAdd(data[2].d4.xyz);
    data[invocation].d4     = subgroupAdd(data[3].d4);

    data[invocation].f4.x   = subgroupMul(data[0].f4.x);
    data[invocation].f4.xy  = subgroupMul(data[1].f4.xy);
    data[invocation].f4.xyz = subgroupMul(data[2].f4.xyz);
    data[invocation].f4     = subgroupMul(data[3].f4);

    data[invocation].i4.x   = subgroupMul(data[0].i4.x);
    data[invocation].i4.xy  = subgroupMul(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupMul(data[2].i4.xyz);
    data[invocation].i4     = subgroupMul(data[3].i4);

    data[invocation].u4.x   = subgroupMul(data[0].u4.x);
    data[invocation].u4.xy  = subgroupMul(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupMul(data[2].u4.xyz);
    data[invocation].u4     = subgroupMul(data[3].u4);

    data[invocation].d4.x   = subgroupMul(data[0].d4.x);
    data[invocation].d4.xy  = subgroupMul(data[1].d4.xy);
    data[invocation].d4.xyz = subgroupMul(data[2].d4.xyz);
    data[invocation].d4     = subgroupMul(data[3].d4);

    data[invocation].f4.x   = subgroupMin(data[0].f4.x);
    data[invocation].f4.xy  = subgroupMin(data[1].f4.xy);
    data[invocation].f4.xyz = subgroupMin(data[2].f4.xyz);
    data[invocation].f4     = subgroupMin(data[3].f4);

    data[invocation].i4.x   = subgroupMin(data[0].i4.x);
    data[invocation].i4.xy  = subgroupMin(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupMin(data[2].i4.xyz);
    data[invocation].i4     = subgroupMin(data[3].i4);

    data[invocation].u4.x   = subgroupMin(data[0].u4.x);
    data[invocation].u4.xy  = subgroupMin(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupMin(data[2].u4.xyz);
    data[invocation].u4     = subgroupMin(data[3].u4);

    data[invocation].d4.x   = subgroupMin(data[0].d4.x);
    data[invocation].d4.xy  = subgroupMin(data[1].d4.xy);
    data[invocation].d4.xyz = subgroupMin(data[2].d4.xyz);
    data[invocation].d4     = subgroupMin(data[3].d4);

    data[invocation].f4.x   = subgroupMax(data[0].f4.x);
    data[invocation].f4.xy  = subgroupMax(data[1].f4.xy);
    data[invocation].f4.xyz = subgroupMax(data[2].f4.xyz);
    data[invocation].f4     = subgroupMax(data[3].f4);

    data[invocation].i4.x   = subgroupMax(data[0].i4.x);
    data[invocation].i4.xy  = subgroupMax(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupMax(data[2].i4.xyz);
    data[invocation].i4     = subgroupMax(data[3].i4);

    data[invocation].u4.x   = subgroupMax(data[0].u4.x);
    data[invocation].u4.xy  = subgroupMax(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupMax(data[2].u4.xyz);
    data[invocation].u4     = subgroupMax(data[3].u4);

    data[invocation].d4.x   = subgroupMax(data[0].d4.x);
    data[invocation].d4.xy  = subgroupMax(data[1].d4.xy);
    data[invocation].d4.xyz = subgroupMax(data[2].d4.xyz);
    data[invocation].d4     = subgroupMax(data[3].d4);

    data[invocation].i4.x   = subgroupAnd(data[0].i4.x);
    data[invocation].i4.xy  = subgroupAnd(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupAnd(data[2].i4.xyz);
    data[invocation].i4     = subgroupAnd(data[3].i4);

    data[invocation].u4.x   = subgroupAnd(data[0].u4.x);
    data[invocation].u4.xy  = subgroupAnd(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupAnd(data[2].u4.xyz);
    data[invocation].u4     = subgroupAnd(data[3].u4);

    data[invocation].i4.x   =   int(subgroupAnd(data[0].i4.x < 0));
    data[invocation].i4.xy  = ivec2(subgroupAnd(lessThan(data[1].i4.xy, ivec2(0))));
    data[invocation].i4.xyz = ivec3(subgroupAnd(lessThan(data[1].i4.xyz, ivec3(0))));
    data[invocation].i4     = ivec4(subgroupAnd(lessThan(data[1].i4, ivec4(0))));

    data[invocation].i4.x   = subgroupOr(data[0].i4.x);
    data[invocation].i4.xy  = subgroupOr(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupOr(data[2].i4.xyz);
    data[invocation].i4     = subgroupOr(data[3].i4);

    data[invocation].u4.x   = subgroupOr(data[0].u4.x);
    data[invocation].u4.xy  = subgroupOr(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupOr(data[2].u4.xyz);
    data[invocation].u4     = subgroupOr(data[3].u4);

    data[invocation].i4.x   =   int(subgroupOr(data[0].i4.x < 0));
    data[invocation].i4.xy  = ivec2(subgroupOr(lessThan(data[1].i4.xy, ivec2(0))));
    data[invocation].i4.xyz = ivec3(subgroupOr(lessThan(data[1].i4.xyz, ivec3(0))));
    data[invocation].i4     = ivec4(subgroupOr(lessThan(data[1].i4, ivec4(0))));

    data[invocation].i4.x   = subgroupXor(data[0].i4.x);
    data[invocation].i4.xy  = subgroupXor(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupXor(data[2].i4.xyz);
    data[invocation].i4     = subgroupXor(data[3].i4);

    data[invocation].u4.x   = subgroupXor(data[0].u4.x);
    data[invocation].u4.xy  = subgroupXor(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupXor(data[2].u4.xyz);
    data[invocation].u4     = subgroupXor(data[3].u4);

    data[invocation].i4.x   =   int(subgroupXor(data[0].i4.x < 0));
    data[invocation].i4.xy  = ivec2(subgroupXor(lessThan(data[1].i4.xy, ivec2(0))));
    data[invocation].i4.xyz = ivec3(subgroupXor(lessThan(data[1].i4.xyz, ivec3(0))));
    data[invocation].i4     = ivec4(subgroupXor(lessThan(data[1].i4, ivec4(0))));

    data[invocation].f4.x   = subgroupInclusiveAdd(data[0].f4.x);
    data[invocation].f4.xy  = subgroupInclusiveAdd(data[1].f4.xy);
    data[invocation].f4.xyz = subgroupInclusiveAdd(data[2].f4.xyz);
    data[invocation].f4     = subgroupInclusiveAdd(data[3].f4);

    data[invocation].i4.x   = subgroupInclusiveAdd(data[0].i4.x);
    data[invocation].i4.xy  = subgroupInclusiveAdd(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupInclusiveAdd(data[2].i4.xyz);
    data[invocation].i4     = subgroupInclusiveAdd(data[3].i4);

    data[invocation].u4.x   = subgroupInclusiveAdd(data[0].u4.x);
    data[invocation].u4.xy  = subgroupInclusiveAdd(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupInclusiveAdd(data[2].u4.xyz);
    data[invocation].u4     = subgroupInclusiveAdd(data[3].u4);

    data[invocation].d4.x   = subgroupInclusiveAdd(data[0].d4.x);
    data[invocation].d4.xy  = subgroupInclusiveAdd(data[1].d4.xy);
    data[invocation].d4.xyz = subgroupInclusiveAdd(data[2].d4.xyz);
    data[invocation].d4     = subgroupInclusiveAdd(data[3].d4);

    data[invocation].f4.x   = subgroupInclusiveMul(data[0].f4.x);
    data[invocation].f4.xy  = subgroupInclusiveMul(data[1].f4.xy);
    data[invocation].f4.xyz = subgroupInclusiveMul(data[2].f4.xyz);
    data[invocation].f4     = subgroupInclusiveMul(data[3].f4);

    data[invocation].i4.x   = subgroupInclusiveMul(data[0].i4.x);
    data[invocation].i4.xy  = subgroupInclusiveMul(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupInclusiveMul(data[2].i4.xyz);
    data[invocation].i4     = subgroupInclusiveMul(data[3].i4);

    data[invocation].u4.x   = subgroupInclusiveMul(data[0].u4.x);
    data[invocation].u4.xy  = subgroupInclusiveMul(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupInclusiveMul(data[2].u4.xyz);
    data[invocation].u4     = subgroupInclusiveMul(data[3].u4);

    data[invocation].d4.x   = subgroupInclusiveMul(data[0].d4.x);
    data[invocation].d4.xy  = subgroupInclusiveMul(data[1].d4.xy);
    data[invocation].d4.xyz = subgroupInclusiveMul(data[2].d4.xyz);
    data[invocation].d4     = subgroupInclusiveMul(data[3].d4);

    data[invocation].f4.x   = subgroupInclusiveMin(data[0].f4.x);
    data[invocation].f4.xy  = subgroupInclusiveMin(data[1].f4.xy);
    data[invocation].f4.xyz = subgroupInclusiveMin(data[2].f4.xyz);
    data[invocation].f4     = subgroupInclusiveMin(data[3].f4);

    data[invocation].i4.x   = subgroupInclusiveMin(data[0].i4.x);
    data[invocation].i4.xy  = subgroupInclusiveMin(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupInclusiveMin(data[2].i4.xyz);
    data[invocation].i4     = subgroupInclusiveMin(data[3].i4);

    data[invocation].u4.x   = subgroupInclusiveMin(data[0].u4.x);
    data[invocation].u4.xy  = subgroupInclusiveMin(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupInclusiveMin(data[2].u4.xyz);
    data[invocation].u4     = subgroupInclusiveMin(data[3].u4);

    data[invocation].d4.x   = subgroupInclusiveMin(data[0].d4.x);
    data[invocation].d4.xy  = subgroupInclusiveMin(data[1].d4.xy);
    data[invocation].d4.xyz = subgroupInclusiveMin(data[2].d4.xyz);
    data[invocation].d4     = subgroupInclusiveMin(data[3].d4);

    data[invocation].f4.x   = subgroupInclusiveMax(data[0].f4.x);
    data[invocation].f4.xy  = subgroupInclusiveMax(data[1].f4.xy);
    data[invocation].f4.xyz = subgroupInclusiveMax(data[2].f4.xyz);
    data[invocation].f4     = subgroupInclusiveMax(data[3].f4);

    data[invocation].i4.x   = subgroupInclusiveMax(data[0].i4.x);
    data[invocation].i4.xy  = subgroupInclusiveMax(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupInclusiveMax(data[2].i4.xyz);
    data[invocation].i4     = subgroupInclusiveMax(data[3].i4);

    data[invocation].u4.x   = subgroupInclusiveMax(data[0].u4.x);
    data[invocation].u4.xy  = subgroupInclusiveMax(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupInclusiveMax(data[2].u4.xyz);
    data[invocation].u4     = subgroupInclusiveMax(data[3].u4);

    data[invocation].d4.x   = subgroupInclusiveMax(data[0].d4.x);
    data[invocation].d4.xy  = subgroupInclusiveMax(data[1].d4.xy);
    data[invocation].d4.xyz = subgroupInclusiveMax(data[2].d4.xyz);
    data[invocation].d4     = subgroupInclusiveMax(data[3].d4);

    data[invocation].i4.x   = subgroupInclusiveAnd(data[0].i4.x);
    data[invocation].i4.xy  = subgroupInclusiveAnd(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupInclusiveAnd(data[2].i4.xyz);
    data[invocation].i4     = subgroupInclusiveAnd(data[3].i4);

    data[invocation].u4.x   = subgroupInclusiveAnd(data[0].u4.x);
    data[invocation].u4.xy  = subgroupInclusiveAnd(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupInclusiveAnd(data[2].u4.xyz);
    data[invocation].u4     = subgroupInclusiveAnd(data[3].u4);

    data[invocation].i4.x   =   int(subgroupInclusiveAnd(data[0].i4.x < 0));
    data[invocation].i4.xy  = ivec2(subgroupInclusiveAnd(lessThan(data[1].i4.xy, ivec2(0))));
    data[invocation].i4.xyz = ivec3(subgroupInclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0))));
    data[invocation].i4     = ivec4(subgroupInclusiveAnd(lessThan(data[1].i4, ivec4(0))));

    data[invocation].i4.x   = subgroupInclusiveOr(data[0].i4.x);
    data[invocation].i4.xy  = subgroupInclusiveOr(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupInclusiveOr(data[2].i4.xyz);
    data[invocation].i4     = subgroupInclusiveOr(data[3].i4);

    data[invocation].u4.x   = subgroupInclusiveOr(data[0].u4.x);
    data[invocation].u4.xy  = subgroupInclusiveOr(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupInclusiveOr(data[2].u4.xyz);
    data[invocation].u4     = subgroupInclusiveOr(data[3].u4);

    data[invocation].i4.x   =   int(subgroupInclusiveOr(data[0].i4.x < 0));
    data[invocation].i4.xy  = ivec2(subgroupInclusiveOr(lessThan(data[1].i4.xy, ivec2(0))));
    data[invocation].i4.xyz = ivec3(subgroupInclusiveOr(lessThan(data[1].i4.xyz, ivec3(0))));
    data[invocation].i4     = ivec4(subgroupInclusiveOr(lessThan(data[1].i4, ivec4(0))));

    data[invocation].i4.x   = subgroupInclusiveXor(data[0].i4.x);
    data[invocation].i4.xy  = subgroupInclusiveXor(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupInclusiveXor(data[2].i4.xyz);
    data[invocation].i4     = subgroupInclusiveXor(data[3].i4);

    data[invocation].u4.x   = subgroupInclusiveXor(data[0].u4.x);
    data[invocation].u4.xy  = subgroupInclusiveXor(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupInclusiveXor(data[2].u4.xyz);
    data[invocation].u4     = subgroupInclusiveXor(data[3].u4);

    data[invocation].i4.x   =   int(subgroupInclusiveXor(data[0].i4.x < 0));
    data[invocation].i4.xy  = ivec2(subgroupInclusiveXor(lessThan(data[1].i4.xy, ivec2(0))));
    data[invocation].i4.xyz = ivec3(subgroupInclusiveXor(lessThan(data[1].i4.xyz, ivec3(0))));
    data[invocation].i4     = ivec4(subgroupInclusiveXor(lessThan(data[1].i4, ivec4(0))));

    data[invocation].f4.x   = subgroupExclusiveAdd(data[0].f4.x);
    data[invocation].f4.xy  = subgroupExclusiveAdd(data[1].f4.xy);
    data[invocation].f4.xyz = subgroupExclusiveAdd(data[2].f4.xyz);
    data[invocation].f4     = subgroupExclusiveAdd(data[3].f4);

    data[invocation].i4.x   = subgroupExclusiveAdd(data[0].i4.x);
    data[invocation].i4.xy  = subgroupExclusiveAdd(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupExclusiveAdd(data[2].i4.xyz);
    data[invocation].i4     = subgroupExclusiveAdd(data[3].i4);

    data[invocation].u4.x   = subgroupExclusiveAdd(data[0].u4.x);
    data[invocation].u4.xy  = subgroupExclusiveAdd(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupExclusiveAdd(data[2].u4.xyz);
    data[invocation].u4     = subgroupExclusiveAdd(data[3].u4);

    data[invocation].d4.x   = subgroupExclusiveAdd(data[0].d4.x);
    data[invocation].d4.xy  = subgroupExclusiveAdd(data[1].d4.xy);
    data[invocation].d4.xyz = subgroupExclusiveAdd(data[2].d4.xyz);
    data[invocation].d4     = subgroupExclusiveAdd(data[3].d4);

    data[invocation].f4.x   = subgroupExclusiveMul(data[0].f4.x);
    data[invocation].f4.xy  = subgroupExclusiveMul(data[1].f4.xy);
    data[invocation].f4.xyz = subgroupExclusiveMul(data[2].f4.xyz);
    data[invocation].f4     = subgroupExclusiveMul(data[3].f4);

    data[invocation].i4.x   = subgroupExclusiveMul(data[0].i4.x);
    data[invocation].i4.xy  = subgroupExclusiveMul(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupExclusiveMul(data[2].i4.xyz);
    data[invocation].i4     = subgroupExclusiveMul(data[3].i4);

    data[invocation].u4.x   = subgroupExclusiveMul(data[0].u4.x);
    data[invocation].u4.xy  = subgroupExclusiveMul(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupExclusiveMul(data[2].u4.xyz);
    data[invocation].u4     = subgroupExclusiveMul(data[3].u4);

    data[invocation].d4.x   = subgroupExclusiveMul(data[0].d4.x);
    data[invocation].d4.xy  = subgroupExclusiveMul(data[1].d4.xy);
    data[invocation].d4.xyz = subgroupExclusiveMul(data[2].d4.xyz);
    data[invocation].d4     = subgroupExclusiveMul(data[3].d4);

    data[invocation].f4.x   = subgroupExclusiveMin(data[0].f4.x);
    data[invocation].f4.xy  = subgroupExclusiveMin(data[1].f4.xy);
    data[invocation].f4.xyz = subgroupExclusiveMin(data[2].f4.xyz);
    data[invocation].f4     = subgroupExclusiveMin(data[3].f4);

    data[invocation].i4.x   = subgroupExclusiveMin(data[0].i4.x);
    data[invocation].i4.xy  = subgroupExclusiveMin(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupExclusiveMin(data[2].i4.xyz);
    data[invocation].i4     = subgroupExclusiveMin(data[3].i4);

    data[invocation].u4.x   = subgroupExclusiveMin(data[0].u4.x);
    data[invocation].u4.xy  = subgroupExclusiveMin(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupExclusiveMin(data[2].u4.xyz);
    data[invocation].u4     = subgroupExclusiveMin(data[3].u4);

    data[invocation].d4.x   = subgroupExclusiveMin(data[0].d4.x);
    data[invocation].d4.xy  = subgroupExclusiveMin(data[1].d4.xy);
    data[invocation].d4.xyz = subgroupExclusiveMin(data[2].d4.xyz);
    data[invocation].d4     = subgroupExclusiveMin(data[3].d4);

    data[invocation].f4.x   = subgroupExclusiveMax(data[0].f4.x);
    data[invocation].f4.xy  = subgroupExclusiveMax(data[1].f4.xy);
    data[invocation].f4.xyz = subgroupExclusiveMax(data[2].f4.xyz);
    data[invocation].f4     = subgroupExclusiveMax(data[3].f4);

    data[invocation].i4.x   = subgroupExclusiveMax(data[0].i4.x);
    data[invocation].i4.xy  = subgroupExclusiveMax(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupExclusiveMax(data[2].i4.xyz);
    data[invocation].i4     = subgroupExclusiveMax(data[3].i4);

    data[invocation].u4.x   = subgroupExclusiveMax(data[0].u4.x);
    data[invocation].u4.xy  = subgroupExclusiveMax(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupExclusiveMax(data[2].u4.xyz);
    data[invocation].u4     = subgroupExclusiveMax(data[3].u4);

    data[invocation].d4.x   = subgroupExclusiveMax(data[0].d4.x);
    data[invocation].d4.xy  = subgroupExclusiveMax(data[1].d4.xy);
    data[invocation].d4.xyz = subgroupExclusiveMax(data[2].d4.xyz);
    data[invocation].d4     = subgroupExclusiveMax(data[3].d4);

    data[invocation].i4.x   = subgroupExclusiveAnd(data[0].i4.x);
    data[invocation].i4.xy  = subgroupExclusiveAnd(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupExclusiveAnd(data[2].i4.xyz);
    data[invocation].i4     = subgroupExclusiveAnd(data[3].i4);

    data[invocation].u4.x   = subgroupExclusiveAnd(data[0].u4.x);
    data[invocation].u4.xy  = subgroupExclusiveAnd(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupExclusiveAnd(data[2].u4.xyz);
    data[invocation].u4     = subgroupExclusiveAnd(data[3].u4);

    data[invocation].i4.x   =   int(subgroupExclusiveAnd(data[0].i4.x < 0));
    data[invocation].i4.xy  = ivec2(subgroupExclusiveAnd(lessThan(data[1].i4.xy, ivec2(0))));
    data[invocation].i4.xyz = ivec3(subgroupExclusiveAnd(lessThan(data[1].i4.xyz, ivec3(0))));
    data[invocation].i4     = ivec4(subgroupExclusiveAnd(lessThan(data[1].i4, ivec4(0))));

    data[invocation].i4.x   = subgroupExclusiveOr(data[0].i4.x);
    data[invocation].i4.xy  = subgroupExclusiveOr(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupExclusiveOr(data[2].i4.xyz);
    data[invocation].i4     = subgroupExclusiveOr(data[3].i4);

    data[invocation].u4.x   = subgroupExclusiveOr(data[0].u4.x);
    data[invocation].u4.xy  = subgroupExclusiveOr(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupExclusiveOr(data[2].u4.xyz);
    data[invocation].u4     = subgroupExclusiveOr(data[3].u4);

    data[invocation].i4.x   =   int(subgroupExclusiveOr(data[0].i4.x < 0));
    data[invocation].i4.xy  = ivec2(subgroupExclusiveOr(lessThan(data[1].i4.xy, ivec2(0))));
    data[invocation].i4.xyz = ivec3(subgroupExclusiveOr(lessThan(data[1].i4.xyz, ivec3(0))));
    data[invocation].i4     = ivec4(subgroupExclusiveOr(lessThan(data[1].i4, ivec4(0))));

    data[invocation].i4.x   = subgroupExclusiveXor(data[0].i4.x);
    data[invocation].i4.xy  = subgroupExclusiveXor(data[1].i4.xy);
    data[invocation].i4.xyz = subgroupExclusiveXor(data[2].i4.xyz);
    data[invocation].i4     = subgroupExclusiveXor(data[3].i4);

    data[invocation].u4.x   = subgroupExclusiveXor(data[0].u4.x);
    data[invocation].u4.xy  = subgroupExclusiveXor(data[1].u4.xy);
    data[invocation].u4.xyz = subgroupExclusiveXor(data[2].u4.xyz);
    data[invocation].u4     = subgroupExclusiveXor(data[3].u4);

    data[invocation].i4.x   =   int(subgroupExclusiveXor(data[0].i4.x < 0));
    data[invocation].i4.xy  = ivec2(subgroupExclusiveXor(lessThan(data[1].i4.xy, ivec2(0))));
    data[invocation].i4.xyz = ivec3(subgroupExclusiveXor(lessThan(data[1].i4.xyz, ivec3(0))));
    data[invocation].i4     = ivec4(subgroupExclusiveXor(lessThan(data[1].i4, ivec4(0))));
}
