1617a3babSopenharmony_ci#version 450
2617a3babSopenharmony_ci
3617a3babSopenharmony_ci#extension GL_ARB_gpu_shader_int64 : enable
4617a3babSopenharmony_ci#extension GL_EXT_buffer_reference : enable
5617a3babSopenharmony_ci
6617a3babSopenharmony_cilayout(buffer_reference, std430) buffer blockType {
7617a3babSopenharmony_ci    layout(offset = 0)  int a;
8617a3babSopenharmony_ci    layout(offset = 4)  int b;
9617a3babSopenharmony_ci    layout(offset = 8)  int c;
10617a3babSopenharmony_ci    layout(offset = 12) int d;
11617a3babSopenharmony_ci    layout(offset = 16) int e;
12617a3babSopenharmony_ci};
13617a3babSopenharmony_ci
14617a3babSopenharmony_cilayout(std430) buffer t2 {
15617a3babSopenharmony_ci    blockType f;
16617a3babSopenharmony_ci    blockType g;
17617a3babSopenharmony_ci} t;
18617a3babSopenharmony_ci
19617a3babSopenharmony_ciflat in uint64_t h, i;
20617a3babSopenharmony_ci
21617a3babSopenharmony_civoid main() {
22617a3babSopenharmony_ci
23617a3babSopenharmony_ci    blockType b1[2] = blockType[2](blockType(h), blockType(i));
24617a3babSopenharmony_ci    b1[0].a = b1[1].b;
25617a3babSopenharmony_ci    blockType b2 = blockType(h);
26617a3babSopenharmony_ci    blockType b3 = blockType(i);
27617a3babSopenharmony_ci    b2.a = b3.b;
28617a3babSopenharmony_ci    uint64_t j = uint64_t(b2);
29617a3babSopenharmony_ci    b2 = blockType(j+256);
30617a3babSopenharmony_ci}
31