Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 59 additions & 59 deletions reference/opt/shaders/comp/cooperative-matrix.vk.nocompat.comp.vk
Original file line number Diff line number Diff line change
Expand Up @@ -30,68 +30,68 @@ shared uint blah[512];

void main()
{
uint _514 = 256u * gl_WorkGroupID.x;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _519;
coopMatLoad(_519, ssbo32.data, _514, 16u, Layout);
uint _523 = 512u * gl_WorkGroupID.x;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _528;
coopMatLoad(_528, ssbo16.data, _523, 32u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> _537;
coopMatLoad(_537, ssbo32.data, _514, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> _546;
coopMatLoad(_546, ssbo16.data, _523, 32u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> _555;
coopMatLoad(_555, ssbo32.data, _514, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> _564;
coopMatLoad(_564, ssbo16.data, _523, 32u, Layout);
uint _578 = 128u * gl_WorkGroupID.x;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA> _583;
coopMatLoad(_583, ssbo32.data, _578, 8u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA> _592;
coopMatLoad(_592, ssbo16.data, _514, 16u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseB> _601;
coopMatLoad(_601, ssbo32.data, _578, 8u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseB> _610;
coopMatLoad(_610, ssbo16.data, _514, 16u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseAccumulator> _619;
coopMatLoad(_619, ssbo32.data, _578, 8u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseAccumulator> _628;
coopMatLoad(_628, ssbo16.data, _514, 16u, Layout);
coopMatStore(coopmat<float, Scope, Rows, Columns, gl_MatrixUseA>(100.0), ssbo32.data, _578, 0u, Layout);
coopMatStore(coopmat<uint, Scope, Rows, Columns, gl_MatrixUseA>(100u), ssbo32.data, _578, 0u, Layout);
coopMatStore(coopmat<int, Scope, Rows, Columns, gl_MatrixUseA>(-100), ssbo32.data, _578, 0u, Layout);
coopMatStore(coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA>(float16_t(100.0)), ssbo32.data, _578, 0u, Layout);
coopMatStore(coopmat<int16_t, Scope, Rows, Columns, gl_MatrixUseA>(-100s), ssbo32.data, _578, 0u, Layout);
coopMatStore(coopmat<uint16_t, Scope, Rows, Columns, gl_MatrixUseA>(100us), ssbo32.data, _578, 0u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _726 = coopmat<float, Scope, Rows, Columns, gl_MatrixUseA>(100.0);
for (int _884 = 0; _884 < int(uint(coopmat<float, Scope, Rows, Columns, gl_MatrixUseA>(0).length())); )
uint _549 = 256u * gl_WorkGroupID.x;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _554;
coopMatLoad(_554, ssbo32.data, _549, 16u, Layout);
uint _558 = 512u * gl_WorkGroupID.x;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _563;
coopMatLoad(_563, ssbo16.data, _558, 32u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> _572;
coopMatLoad(_572, ssbo32.data, _549, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> _581;
coopMatLoad(_581, ssbo16.data, _558, 32u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> _590;
coopMatLoad(_590, ssbo32.data, _549, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> _599;
coopMatLoad(_599, ssbo16.data, _558, 32u, Layout);
uint _613 = 128u * gl_WorkGroupID.x;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA> _618;
coopMatLoad(_618, ssbo32.data, _613, 8u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA> _627;
coopMatLoad(_627, ssbo16.data, _549, 16u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseB> _636;
coopMatLoad(_636, ssbo32.data, _613, 8u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseB> _645;
coopMatLoad(_645, ssbo16.data, _549, 16u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseAccumulator> _654;
coopMatLoad(_654, ssbo32.data, _613, 8u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseAccumulator> _663;
coopMatLoad(_663, ssbo16.data, _549, 16u, Layout);
coopMatStore(coopmat<float, Scope, Rows, Columns, gl_MatrixUseA>(100.0), ssbo32.data, _613, 0u, Layout);
coopMatStore(coopmat<uint, Scope, Rows, Columns, gl_MatrixUseA>(100u), ssbo32.data, _613, 0u, Layout);
coopMatStore(coopmat<int, Scope, Rows, Columns, gl_MatrixUseA>(-100), ssbo32.data, _613, 0u, Layout);
coopMatStore(coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA>(float16_t(100.0)), ssbo32.data, _613, 0u, Layout);
coopMatStore(coopmat<int16_t, Scope, Rows, Columns, gl_MatrixUseA>(-100s), ssbo32.data, _613, 0u, Layout);
coopMatStore(coopmat<uint16_t, Scope, Rows, Columns, gl_MatrixUseA>(100us), ssbo32.data, _613, 0u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _761 = coopmat<float, Scope, Rows, Columns, gl_MatrixUseA>(100.0);
for (int _944 = 0; _944 < int(uint(coopmat<float, Scope, Rows, Columns, gl_MatrixUseA>(0).length())); )
{
_726[_884] += 50.0;
_884++;
_761[_944] += 50.0;
_944++;
continue;
}
coopMatStore(_726, ssbo32.data, 0u, 16u, Layout);
coopMatStore(_761, ssbo32.data, 0u, 16u, Layout);
coopMatStore(coopmat<uint, Scope, Rows, Columns, gl_MatrixUseA>(gl_WorkGroupID.x), ssbo32.data, 0u, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _768;
coopMatLoad(_768, ssbo32.data, _514, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> _777;
coopMatLoad(_777, ssbo32.data, _514, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> _786;
coopMatLoad(_786, ssbo32.data, _514, 16u, Layout);
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseA> _814;
coopMatLoad(_814, ssbo32.data, _514, 16u, Layout);
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseB> _823;
coopMatLoad(_823, ssbo32.data, _514, 16u, Layout);
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseAccumulator> _832;
coopMatLoad(_832, ssbo32.data, _514, 16u, Layout);
coopmat<int, Scope, Rows, Columns, gl_MatrixUseA> _852;
coopMatLoad(_852, ssbo32.data, _514, 16u, Layout);
coopmat<int, Scope, Rows, Columns, gl_MatrixUseB> _861;
coopMatLoad(_861, ssbo32.data, _514, 16u, Layout);
coopmat<int, Scope, Rows, Columns, gl_MatrixUseAccumulator> _870;
coopMatLoad(_870, ssbo32.data, _514, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _880;
coopMatLoad(_880, blah, 0u, 16u, Layout);
coopMatStore(_880, blah, 0u, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _806;
coopMatLoad(_806, ssbo32.data, _549, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> _815;
coopMatLoad(_815, ssbo32.data, _549, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> _824;
coopMatLoad(_824, ssbo32.data, _549, 16u, Layout);
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseA> _857;
coopMatLoad(_857, ssbo32.data, _549, 16u, Layout);
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseB> _866;
coopMatLoad(_866, ssbo32.data, _549, 16u, Layout);
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseAccumulator> _875;
coopMatLoad(_875, ssbo32.data, _549, 16u, Layout);
coopmat<int, Scope, Rows, Columns, gl_MatrixUseA> _895;
coopMatLoad(_895, ssbo32.data, _549, 16u, Layout);
coopmat<int, Scope, Rows, Columns, gl_MatrixUseB> _904;
coopMatLoad(_904, ssbo32.data, _549, 16u, Layout);
coopmat<int, Scope, Rows, Columns, gl_MatrixUseAccumulator> _913;
coopMatLoad(_913, ssbo32.data, _549, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _923;
coopMatLoad(_923, blah, 0u, 16u, Layout);
coopMatStore(_923, blah, 0u, 16u, Layout);
}

152 changes: 85 additions & 67 deletions reference/shaders/comp/cooperative-matrix.vk.nocompat.comp.vk
Original file line number Diff line number Diff line change
Expand Up @@ -30,57 +30,57 @@ shared uint blah[512];

void loads_32()
{
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _60;
coopMatLoad(_60, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> tempArg = _60;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _71;
coopMatLoad(_71, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> tempArg = _71;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> A32 = tempArg;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _79;
coopMatLoad(_79, ssbo16.data, 512u * gl_WorkGroupID.x, 32u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> tempArg_1 = _79;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _90;
coopMatLoad(_90, ssbo16.data, 512u * gl_WorkGroupID.x, 32u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> tempArg_1 = _90;
A32 = tempArg_1;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> _92;
coopMatLoad(_92, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> tempArg_2 = _92;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> B32 = tempArg_2;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> _103;
coopMatLoad(_103, ssbo16.data, 512u * gl_WorkGroupID.x, 32u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> tempArg_3 = _103;
coopMatLoad(_103, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> tempArg_2 = _103;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> B32 = tempArg_2;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> _114;
coopMatLoad(_114, ssbo16.data, 512u * gl_WorkGroupID.x, 32u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> tempArg_3 = _114;
B32 = tempArg_3;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> _116;
coopMatLoad(_116, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> tempArg_4 = _116;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> C32 = tempArg_4;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> _127;
coopMatLoad(_127, ssbo16.data, 512u * gl_WorkGroupID.x, 32u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> tempArg_5 = _127;
coopMatLoad(_127, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> tempArg_4 = _127;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> C32 = tempArg_4;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> _138;
coopMatLoad(_138, ssbo16.data, 512u * gl_WorkGroupID.x, 32u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> tempArg_5 = _138;
C32 = tempArg_5;
}

void loads_16()
{
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA> _141;
coopMatLoad(_141, ssbo32.data, 128u * gl_WorkGroupID.x, 8u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA> tempArg = _141;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA> A16 = tempArg;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA> _152;
coopMatLoad(_152, ssbo16.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA> tempArg_1 = _152;
coopMatLoad(_152, ssbo32.data, 128u * gl_WorkGroupID.x, 8u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA> tempArg = _152;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA> A16 = tempArg;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA> _163;
coopMatLoad(_163, ssbo16.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseA> tempArg_1 = _163;
A16 = tempArg_1;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseB> _164;
coopMatLoad(_164, ssbo32.data, 128u * gl_WorkGroupID.x, 8u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseB> tempArg_2 = _164;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseB> B16 = tempArg_2;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseB> _175;
coopMatLoad(_175, ssbo16.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseB> tempArg_3 = _175;
coopMatLoad(_175, ssbo32.data, 128u * gl_WorkGroupID.x, 8u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseB> tempArg_2 = _175;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseB> B16 = tempArg_2;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseB> _186;
coopMatLoad(_186, ssbo16.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseB> tempArg_3 = _186;
B16 = tempArg_3;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseAccumulator> _187;
coopMatLoad(_187, ssbo32.data, 128u * gl_WorkGroupID.x, 8u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseAccumulator> tempArg_4 = _187;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseAccumulator> C16 = tempArg_4;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseAccumulator> _198;
coopMatLoad(_198, ssbo16.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseAccumulator> tempArg_5 = _198;
coopMatLoad(_198, ssbo32.data, 128u * gl_WorkGroupID.x, 8u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseAccumulator> tempArg_4 = _198;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseAccumulator> C16 = tempArg_4;
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseAccumulator> _209;
coopMatLoad(_209, ssbo16.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float16_t, Scope, Rows, Columns, gl_MatrixUseAccumulator> tempArg_5 = _209;
C16 = tempArg_5;
}

Expand Down Expand Up @@ -144,19 +144,27 @@ void scalar_construct()
coopMatStore(A, ssbo32.data, 0u, 16u, Layout);
}

coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> coopmat_square(coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> a)
{
return a * a;
}

void matmul()
{
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _268;
coopMatLoad(_268, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> tempArg = _268;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> A = tempArg;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> _279;
coopMatLoad(_279, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> tempArg_1 = _279;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> A;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> param = A;
A = coopmat_square(param);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _283;
coopMatLoad(_283, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> tempArg = _283;
A = tempArg;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> _293;
coopMatLoad(_293, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> tempArg_1 = _293;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseB> B = tempArg_1;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> _290;
coopMatLoad(_290, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> tempArg_2 = _290;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> _304;
coopMatLoad(_304, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> tempArg_2 = _304;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseAccumulator> C = tempArg_2;
C = coopMatMulAdd(A, B, C, 0);
C = coopMatMulAdd(A, B, C, 0);
Expand All @@ -165,47 +173,56 @@ void matmul()

void matmul_uint()
{
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseA> _315;
coopMatLoad(_315, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseA> tempArg = _315;
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseA> _329;
coopMatLoad(_329, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseA> tempArg = _329;
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseA> A = tempArg;
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseB> _328;
coopMatLoad(_328, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseB> tempArg_1 = _328;
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseB> _342;
coopMatLoad(_342, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseB> tempArg_1 = _342;
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseB> B = tempArg_1;
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseAccumulator> _341;
coopMatLoad(_341, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseAccumulator> tempArg_2 = _341;
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseAccumulator> _355;
coopMatLoad(_355, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseAccumulator> tempArg_2 = _355;
coopmat<uint, Scope, Rows, Columns, gl_MatrixUseAccumulator> C = tempArg_2;
C = coopMatMulAdd(A, B, C, 31);
}

void matmul_int()
{
coopmat<int, Scope, Rows, Columns, gl_MatrixUseA> _358;
coopMatLoad(_358, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<int, Scope, Rows, Columns, gl_MatrixUseA> tempArg = _358;
coopmat<int, Scope, Rows, Columns, gl_MatrixUseA> _372;
coopMatLoad(_372, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<int, Scope, Rows, Columns, gl_MatrixUseA> tempArg = _372;
coopmat<int, Scope, Rows, Columns, gl_MatrixUseA> A = tempArg;
coopmat<int, Scope, Rows, Columns, gl_MatrixUseB> _371;
coopMatLoad(_371, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<int, Scope, Rows, Columns, gl_MatrixUseB> tempArg_1 = _371;
coopmat<int, Scope, Rows, Columns, gl_MatrixUseB> _385;
coopMatLoad(_385, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<int, Scope, Rows, Columns, gl_MatrixUseB> tempArg_1 = _385;
coopmat<int, Scope, Rows, Columns, gl_MatrixUseB> B = tempArg_1;
coopmat<int, Scope, Rows, Columns, gl_MatrixUseAccumulator> _384;
coopMatLoad(_384, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<int, Scope, Rows, Columns, gl_MatrixUseAccumulator> tempArg_2 = _384;
coopmat<int, Scope, Rows, Columns, gl_MatrixUseAccumulator> _398;
coopMatLoad(_398, ssbo32.data, 256u * gl_WorkGroupID.x, 16u, Layout);
coopmat<int, Scope, Rows, Columns, gl_MatrixUseAccumulator> tempArg_2 = _398;
coopmat<int, Scope, Rows, Columns, gl_MatrixUseAccumulator> C = tempArg_2;
C = coopMatMulAdd(A, B, C, 31);
}

void lds()
{
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _482;
coopMatLoad(_482, blah, 0u, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> tempArg = _482;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> _496;
coopMatLoad(_496, blah, 0u, 16u, Layout);
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> tempArg = _496;
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> A = tempArg;
coopMatStore(A, blah, 0u, 16u, Layout);
}

void array_of_coopmat()
{
coopmat<float, Scope, Rows, Columns, gl_MatrixUseA> As[4];
for (int i = 0; i < 4; i++)
{
As[i] = coopmat<float, Scope, Rows, Columns, gl_MatrixUseA>(float(i));
}
}

void main()
{
loads_32();
Expand All @@ -220,5 +237,6 @@ void main()
matmul_uint();
matmul_int();
lds();
array_of_coopmat();
}

Loading