1#version 450
2layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
3
4struct ResType
5{
6    uint _m0;
7    uint _m1;
8};
9
10struct ResType_1
11{
12    uvec2 _m0;
13    uvec2 _m1;
14};
15
16struct ResType_2
17{
18    uvec3 _m0;
19    uvec3 _m1;
20};
21
22struct ResType_3
23{
24    uvec4 _m0;
25    uvec4 _m1;
26};
27
28struct ResType_4
29{
30    int _m0;
31    int _m1;
32};
33
34struct ResType_5
35{
36    ivec2 _m0;
37    ivec2 _m1;
38};
39
40struct ResType_6
41{
42    ivec3 _m0;
43    ivec3 _m1;
44};
45
46struct ResType_7
47{
48    ivec4 _m0;
49    ivec4 _m1;
50};
51
52layout(binding = 0, std430) buffer SSBOUint
53{
54    uint a;
55    uint b;
56    uint c;
57    uint d;
58    uvec2 a2;
59    uvec2 b2;
60    uvec2 c2;
61    uvec2 d2;
62    uvec3 a3;
63    uvec3 b3;
64    uvec3 c3;
65    uvec3 d3;
66    uvec4 a4;
67    uvec4 b4;
68    uvec4 c4;
69    uvec4 d4;
70} u;
71
72layout(binding = 1, std430) buffer SSBOInt
73{
74    int a;
75    int b;
76    int c;
77    int d;
78    ivec2 a2;
79    ivec2 b2;
80    ivec2 c2;
81    ivec2 d2;
82    ivec3 a3;
83    ivec3 b3;
84    ivec3 c3;
85    ivec3 d3;
86    ivec4 a4;
87    ivec4 b4;
88    ivec4 c4;
89    ivec4 d4;
90} i;
91
92void main()
93{
94    ResType _25;
95    _25._m0 = uaddCarry(u.a, u.b, _25._m1);
96    u.d = _25._m1;
97    u.c = _25._m0;
98    ResType_1 _40;
99    _40._m0 = uaddCarry(u.a2, u.b2, _40._m1);
100    u.d2 = _40._m1;
101    u.c2 = _40._m0;
102    ResType_2 _55;
103    _55._m0 = uaddCarry(u.a3, u.b3, _55._m1);
104    u.d3 = _55._m1;
105    u.c3 = _55._m0;
106    ResType_3 _70;
107    _70._m0 = uaddCarry(u.a4, u.b4, _70._m1);
108    u.d4 = _70._m1;
109    u.c4 = _70._m0;
110    ResType _79;
111    _79._m0 = usubBorrow(u.a, u.b, _79._m1);
112    u.d = _79._m1;
113    u.c = _79._m0;
114    ResType_1 _88;
115    _88._m0 = usubBorrow(u.a2, u.b2, _88._m1);
116    u.d2 = _88._m1;
117    u.c2 = _88._m0;
118    ResType_2 _97;
119    _97._m0 = usubBorrow(u.a3, u.b3, _97._m1);
120    u.d3 = _97._m1;
121    u.c3 = _97._m0;
122    ResType_3 _106;
123    _106._m0 = usubBorrow(u.a4, u.b4, _106._m1);
124    u.d4 = _106._m1;
125    u.c4 = _106._m0;
126    ResType _116;
127    umulExtended(u.a, u.b, _116._m1, _116._m0);
128    u.d = _116._m0;
129    u.c = _116._m1;
130    ResType_1 _125;
131    umulExtended(u.a2, u.b2, _125._m1, _125._m0);
132    u.d2 = _125._m0;
133    u.c2 = _125._m1;
134    ResType_2 _134;
135    umulExtended(u.a3, u.b3, _134._m1, _134._m0);
136    u.d3 = _134._m0;
137    u.c3 = _134._m1;
138    ResType_3 _143;
139    umulExtended(u.a4, u.b4, _143._m1, _143._m0);
140    u.d4 = _143._m0;
141    u.c4 = _143._m1;
142    ResType_4 _160;
143    imulExtended(i.a, i.b, _160._m1, _160._m0);
144    i.d = _160._m0;
145    i.c = _160._m1;
146    ResType_5 _171;
147    imulExtended(i.a2, i.b2, _171._m1, _171._m0);
148    i.d2 = _171._m0;
149    i.c2 = _171._m1;
150    ResType_6 _182;
151    imulExtended(i.a3, i.b3, _182._m1, _182._m0);
152    i.d3 = _182._m0;
153    i.c3 = _182._m1;
154    ResType_7 _193;
155    imulExtended(i.a4, i.b4, _193._m1, _193._m0);
156    i.d4 = _193._m0;
157    i.c4 = _193._m1;
158}
159
160