1617a3babSopenharmony_ci#version 450 core 2617a3babSopenharmony_ci#extension GL_KHR_memory_scope_semantics : enable 3617a3babSopenharmony_ci#extension GL_NV_cooperative_matrix : enable 4617a3babSopenharmony_ci#extension GL_EXT_shader_explicit_arithmetic_types_float16 : enable 5617a3babSopenharmony_ci 6617a3babSopenharmony_ci#pragma use_variable_pointers 7617a3babSopenharmony_ci 8617a3babSopenharmony_cilayout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in; 9617a3babSopenharmony_ci 10617a3babSopenharmony_cilayout(set = 0, binding = 0) coherent buffer Block { 11617a3babSopenharmony_ci float y[1024*1024]; 12617a3babSopenharmony_ci float x[]; 13617a3babSopenharmony_ci} block; 14617a3babSopenharmony_ci 15617a3babSopenharmony_ci 16617a3babSopenharmony_civoid main() 17617a3babSopenharmony_ci{ 18617a3babSopenharmony_ci fcoopmatNV<32, gl_ScopeSubgroup, 16, 8> m = fcoopmatNV<32, gl_ScopeSubgroup, 16, 8>(0.0); 19617a3babSopenharmony_ci 20617a3babSopenharmony_ci m = m + m; 21617a3babSopenharmony_ci m = m - m; 22617a3babSopenharmony_ci m = -m; 23617a3babSopenharmony_ci m = 2.0*m; 24617a3babSopenharmony_ci m = m*2.0; 25617a3babSopenharmony_ci 26617a3babSopenharmony_ci coopMatLoadNV(m, block.x, 16, 128, false); 27617a3babSopenharmony_ci coopMatStoreNV(m, block.x, 16, 128, false); 28617a3babSopenharmony_ci} 29