1#version 450
2
3#include "types.glsl"
4#include "generic_unary_head.glsl"
5
6layout(local_size_x = 512, local_size_y = 1, local_size_z = 1) in;
7
8void main() {
9 const uint idx = get_idx();
10
11 if (idx >= p.ne) {
12 return;
13 }
14
15#if defined(DATA_D_BF16)
16 float f = float(data_a[get_aoffset() + src0_idx(idx)]);
17 data_d[get_doffset() + dst_idx(idx)] = D_TYPE(fp32_to_bf16(f));
18#elif !defined(OPTIMIZATION_ERROR_WORKAROUND)
19 data_d[get_doffset() + dst_idx(idx)] = D_TYPE(data_a[get_aoffset() + src0_idx(idx)]);
20#else
21 data_d[get_doffset() + dst_idx(idx)] = data_a[get_aoffset() + src0_idx(idx)];
22#endif
23}