aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul-Antoine Arras <parras@baylibre.com>2024-06-07 20:29:40 +0200
committerSandra Loosemore <sloosemore@baylibre.com>2025-05-15 20:25:50 +0000
commit2ab0f672c29b875f4c5cb73b3770598981d9dba5 (patch)
tree2f8ca6165c60a0739474fbb579f6d40d3b384bf5
parent67b186d7377b6a0b7ad6a469b3ae9feba192f149 (diff)
downloadgcc-2ab0f672c29b875f4c5cb73b3770598981d9dba5.zip
gcc-2ab0f672c29b875f4c5cb73b3770598981d9dba5.tar.gz
gcc-2ab0f672c29b875f4c5cb73b3770598981d9dba5.tar.bz2
Fix strided `target update`
OG14 fixup for mainline commit 25072a477a5 "OpenMP: Call cuMemcpy2D/cuMemcpy3D for nvptx for omp_target_memcpy_rect" libgomp/ChangeLog * target.c (omp_target_memcpy_rect_worker): Require unit strides and matching element size.
-rw-r--r--libgomp/target.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libgomp/target.c b/libgomp/target.c
index 66bc5c1..ae1a31d 100644
--- a/libgomp/target.c
+++ b/libgomp/target.c
@@ -5266,6 +5266,9 @@ omp_target_memcpy_rect_worker (void *dst, const void *src, size_t element_size,
/* host->device, device->host and intra device. */
if (num_dims == 2
+ && (!strides || (strides[0] == 1
+ && strides[1] == 1
+ && element_size == span))
&& ((src_devicep
&& src_devicep == dst_devicep
&& src_devicep->memcpy2d_func)
@@ -5292,6 +5295,10 @@ omp_target_memcpy_rect_worker (void *dst, const void *src, size_t element_size,
return ret ? 0 : EINVAL;
}
else if (num_dims == 3
+ && (!strides || (strides[0] == 1
+ && strides[1] == 1
+ && strides[2] == 1
+ && element_size == span))
&& ((src_devicep
&& src_devicep == dst_devicep
&& src_devicep->memcpy3d_func)