#version 450
#if defined(GL_ARB_gpu_shader_int64)
#extension GL_ARB_gpu_shader_int64 : require
#else
#error No extension available for 64-bit integers.
#endif
#extension GL_EXT_buffer_reference : require
#extension GL_EXT_buffer_reference_uvec2 : require
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;

layout(buffer_reference) buffer SomeBuffer;
layout(buffer_reference, buffer_reference_align = 16, std430) buffer SomeBuffer
{
    vec4 v;
    uint64_t a;
    uvec2 b;
};

layout(push_constant, std430) uniform Registers
{
    uint64_t address;
    uvec2 address2;
} registers;

void main()
{
    SomeBuffer _44 = SomeBuffer(registers.address);
    SomeBuffer _45 = SomeBuffer(registers.address);
    SomeBuffer _46 = SomeBuffer(registers.address2);
    _44.v = vec4(1.0, 2.0, 3.0, 4.0);
    _45.v = vec4(1.0, 2.0, 3.0, 4.0);
    _46.v = vec4(1.0, 2.0, 3.0, 4.0);
    _44.a = uint64_t(_44);
    _45.a = uint64_t(_45);
    _46.b = uvec2(_46);
}

