#version 450
#extension GL_EXT_buffer_reference2 : require
layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;

layout(buffer_reference) buffer Alias;
layout(buffer_reference) buffer _8;
layout(buffer_reference) buffer _9;
layout(buffer_reference, buffer_reference_align = 16, std430) readonly buffer Alias
{
    vec4 v[];
};

layout(buffer_reference, buffer_reference_align = 16, std430) restrict buffer _8
{
    vec4 v[];
};

layout(buffer_reference, buffer_reference_align = 16, std430) coherent writeonly buffer _9
{
    vec4 v[];
};

layout(push_constant, std430) uniform Registers
{
    Alias ro;
    _8 rw;
    _9 wo;
} registers;

void main()
{
    registers.rw.v[gl_GlobalInvocationID.x] = registers.ro.v[gl_GlobalInvocationID.x];
    registers.wo.v[gl_GlobalInvocationID.x] = registers.ro.v[gl_GlobalInvocationID.x];
}

