#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_reference2 : 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);
}

