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