1#version 450
2#extension GL_ARB_gpu_shader_int64 : require
3#extension GL_EXT_buffer_reference : require
4layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
5
6layout(buffer_reference) buffer Node;
7layout(buffer_reference, std430) buffer Node
8{
9    layout(offset = 0) int value;
10    layout(offset = 16) Node next;
11    layout(offset = 32) Node prev;
12};
13
14layout(set = 0, binding = 0, std430) restrict buffer LinkedList
15{
16    Node head1;
17    Node head2;
18} _50;
19
20void main()
21{
22    Node _114;
23    if (gl_WorkGroupID.x < 4u)
24    {
25        _114 = _50.head1;
26    }
27    else
28    {
29        _114 = _50.head2;
30    }
31    _114.next.value = _50.head1.value + _50.head2.value;
32    _50.head1.value = 20;
33    _50.head1.value = _50.head2.value * 10;
34}
35
36