1/* Copyright © 2023 Intel Corporation 2 * SPDX-License-Identifier: MIT 3 */ 4 5void 6genX(libanv_memcpy)(global void *dst_base, 7 global void *src_base, 8 uint num_dwords, 9 uint dword_offset) 10{ 11 global void *dst = dst_base + 4 * dword_offset; 12 global void *src = src_base + 4 * dword_offset; 13 14 if (dword_offset + 4 <= num_dwords) { 15 *(global uint4 *)(dst) = *(global uint4 *)(src); 16 } else if (dword_offset + 3 <= num_dwords) { 17 *(global uint3 *)(dst) = *(global uint3 *)(src); 18 } else if (dword_offset + 2 <= num_dwords) { 19 *(global uint2 *)(dst) = *(global uint2 *)(src); 20 } else if (dword_offset + 1 <= num_dwords) { 21 *(global uint *)(dst) = *(global uint *)(src); 22 } 23} 24