blob: 6820b077a1a645bc142fa83e5d55cb26988a6eca [file] [log] [blame]
#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct dst_buff_t
{
int m0[1];
};
struct src_buff_t
{
int m0[1];
};
constant int base_val_tmp [[function_constant(0)]];
constant int base_val = is_function_constant_defined(base_val_tmp) ? base_val_tmp : 0;
constant long shift_val_tmp [[function_constant(1)]];
constant long shift_val = is_function_constant_defined(shift_val_tmp) ? shift_val_tmp : 0l;
constant int offset = (base_val >> int(shift_val));
constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u);
kernel void main0(device dst_buff_t& dst_buff [[buffer(0)]], device src_buff_t& src_buff [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]])
{
dst_buff.m0[gl_GlobalInvocationID.x] = src_buff.m0[gl_GlobalInvocationID.x] + offset;
}