#version 450 core
#extension GL_KHR_memory_scope_semantics : enable
#extension GL_KHR_cooperative_matrix : enable
#extension GL_EXT_shader_explicit_arithmetic_types : enable

layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;


void main()
{
    coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> f;
    coopmat<float, gl_ScopeSubgroup, 8, 8, gl_MatrixUseB> f2;
    coopmat<float, gl_ScopeSubgroup, 16, 8, gl_MatrixUseA> f3;

    coopmat<float16_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> f16;

    coopmat<uint8_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> u8;
    coopmat<int8_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> i8;
    coopmat<uint32_t, gl_ScopeSubgroup, 8, 8, gl_MatrixUseA> u32;

    f+f;
    f-f;
    f*f;
    f/f;
    f+=f;
    f-=f;
    f*=f;
    f/=f;
    f*2.0;
    2.0*f;
    f*=2.0;

    f16+f16;
    f16-f16;
    f16*f16;
    f16/f16;
    f16+=f16;
    f16-=f16;
    f16*=f16;
    f16/=f16;
    f16*float16_t(2.0);
    float16_t(2.0)*f16;
    f16*=float16_t(2.0);

    u32+u32;
    u32-u32;
    u32*u32;
    u32/u32;
    u32+=u32;
    u32-=u32;
    u32*=u32;
    u32/=u32;
    u32*uint32_t(2);
    uint32_t(2)*u32;
    u32*=uint32_t(2);

    u8+u8;
    u8-u8;
    u8*u8;
    u8/u8;
    u8+=u8;
    u8-=u8;
    u8*=u8;
    u8/=u8;
    u8*uint8_t(2);
    uint8_t(2)*u8;
    u8*=uint8_t(2);

    i8+i8;
    i8-i8;
    i8*i8;
    i8/i8;
    i8+=i8;
    i8-=i8;
    i8*=i8;
    i8/=i8;
    i8*int8_t(2);
    int8_t(2)*i8;
    i8*=int8_t(2);

    -f;
    -f16;
    -i8;
    -u8;
}
