#version 310 es
layout(local_size_x = 4, local_size_y = 1, local_size_z = 1) in;

layout(binding = 0, std430) readonly buffer SSBO
{
    float in_data[];
} _22;

layout(binding = 1, std430) writeonly buffer SSBO2
{
    float out_data[];
} _44;

shared float sShared[4];

void main()
{
    uint ident = gl_GlobalInvocationID.x;
    float idata = _22.in_data[ident];
    sShared[gl_LocalInvocationIndex] = idata;
    memoryBarrierShared();
    barrier();
    _44.out_data[ident] = sShared[(4u - gl_LocalInvocationIndex) - 1u];
}

