#version 460
#extension GL_ARM_tensors : require
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;

layout(set = 0, binding = 0) uniform tensorARM<int, 1u> rank1;
layout(set = 0, binding = 1) uniform tensorARM<float, 2u> rank2;
layout(set = 0, binding = 2) uniform tensorARM<double, 3u> rank3;
layout(set = 0, binding = 3) uniform tensorARM<uint, 4u> rank4;
layout(set = 0, binding = 4) uniform tensorARM<bool, 5u> rank5;
layout(set = 0, binding = 5) uniform tensorARM<int, 6u> rank6;

shared uint x;

void main()
{
    x = 0u;
    x += tensorSizeARM(rank1, 0u);
    x += tensorSizeARM(rank2, 0u);
    x += tensorSizeARM(rank2, 1u);
    x += tensorSizeARM(rank3, 2u);
    x += tensorSizeARM(rank4, 3u);
    x += tensorSizeARM(rank5, 4u);
    x += tensorSizeARM(rank6, 5u);
    x += tensorSizeARM(rank6, 4u);
    x += tensorSizeARM(rank6, 3u);
    x += tensorSizeARM(rank6, 2u);
    x += tensorSizeARM(rank6, 1u);
    x += tensorSizeARM(rank6, 0u);
}

