#version 450
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;

struct ResType
{
    uint _m0;
    uint _m1;
};

struct ResType_1
{
    uvec2 _m0;
    uvec2 _m1;
};

struct ResType_2
{
    uvec3 _m0;
    uvec3 _m1;
};

struct ResType_3
{
    uvec4 _m0;
    uvec4 _m1;
};

struct ResType_4
{
    int _m0;
    int _m1;
};

struct ResType_5
{
    ivec2 _m0;
    ivec2 _m1;
};

struct ResType_6
{
    ivec3 _m0;
    ivec3 _m1;
};

struct ResType_7
{
    ivec4 _m0;
    ivec4 _m1;
};

layout(binding = 0, std430) buffer SSBOUint
{
    uint a;
    uint b;
    uint c;
    uint d;
    uvec2 a2;
    uvec2 b2;
    uvec2 c2;
    uvec2 d2;
    uvec3 a3;
    uvec3 b3;
    uvec3 c3;
    uvec3 d3;
    uvec4 a4;
    uvec4 b4;
    uvec4 c4;
    uvec4 d4;
} u;

layout(binding = 1, std430) buffer SSBOInt
{
    int a;
    int b;
    int c;
    int d;
    ivec2 a2;
    ivec2 b2;
    ivec2 c2;
    ivec2 d2;
    ivec3 a3;
    ivec3 b3;
    ivec3 c3;
    ivec3 d3;
    ivec4 a4;
    ivec4 b4;
    ivec4 c4;
    ivec4 d4;
} i;

void main()
{
    ResType _25;
    _25._m0 = uaddCarry(u.a, u.b, _25._m1);
    u.d = _25._m1;
    u.c = _25._m0;
    ResType_1 _40;
    _40._m0 = uaddCarry(u.a2, u.b2, _40._m1);
    u.d2 = _40._m1;
    u.c2 = _40._m0;
    ResType_2 _55;
    _55._m0 = uaddCarry(u.a3, u.b3, _55._m1);
    u.d3 = _55._m1;
    u.c3 = _55._m0;
    ResType_3 _70;
    _70._m0 = uaddCarry(u.a4, u.b4, _70._m1);
    u.d4 = _70._m1;
    u.c4 = _70._m0;
    ResType _79;
    _79._m0 = usubBorrow(u.a, u.b, _79._m1);
    u.d = _79._m1;
    u.c = _79._m0;
    ResType_1 _88;
    _88._m0 = usubBorrow(u.a2, u.b2, _88._m1);
    u.d2 = _88._m1;
    u.c2 = _88._m0;
    ResType_2 _97;
    _97._m0 = usubBorrow(u.a3, u.b3, _97._m1);
    u.d3 = _97._m1;
    u.c3 = _97._m0;
    ResType_3 _106;
    _106._m0 = usubBorrow(u.a4, u.b4, _106._m1);
    u.d4 = _106._m1;
    u.c4 = _106._m0;
    ResType _116;
    umulExtended(u.a, u.b, _116._m1, _116._m0);
    u.d = _116._m0;
    u.c = _116._m1;
    ResType_1 _125;
    umulExtended(u.a2, u.b2, _125._m1, _125._m0);
    u.d2 = _125._m0;
    u.c2 = _125._m1;
    ResType_2 _134;
    umulExtended(u.a3, u.b3, _134._m1, _134._m0);
    u.d3 = _134._m0;
    u.c3 = _134._m1;
    ResType_3 _143;
    umulExtended(u.a4, u.b4, _143._m1, _143._m0);
    u.d4 = _143._m0;
    u.c4 = _143._m1;
    ResType_4 _160;
    imulExtended(i.a, i.b, _160._m1, _160._m0);
    i.d = _160._m0;
    i.c = _160._m1;
    ResType_5 _171;
    imulExtended(i.a2, i.b2, _171._m1, _171._m0);
    i.d2 = _171._m0;
    i.c2 = _171._m1;
    ResType_6 _182;
    imulExtended(i.a3, i.b3, _182._m1, _182._m0);
    i.d3 = _182._m0;
    i.c3 = _182._m1;
    ResType_7 _193;
    imulExtended(i.a4, i.b4, _193._m1, _193._m0);
    i.d4 = _193._m0;
    i.c4 = _193._m1;
}

