From 41da687c9add317db49a2d69625d33536392cd2f Mon Sep 17 00:00:00 2001 From: Abhinav Gaba Date: Tue, 21 Oct 2025 09:26:36 -0700 Subject: [PATCH 1/7] [NFC][OpenMP] Update a test that was failing on aarch64. The failure was reported here: https://github.com/llvm/llvm-project/pull/164039#issuecomment-3425429556 The test is checking for the "bad" behavior so as to keep track of it. It could just be updated to check the "good" behavior and marked as XFAIL, but then it would not be as informative. The update for now is to fix the pointer arithmetic. If that isn't sufficient, we can fall back to doing the above. --- ...data_use_device_addr_class_member_ref_with_map.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp index 5e8769eb3079d..204e1c3407724 100644 --- a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp +++ b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp @@ -16,7 +16,7 @@ struct ST { int m = 0; void f6() { - uintptr_t offset = (uintptr_t)&d - n; + intptr_t offset = (uintptr_t)&d - n; #pragma omp target data map(to : m, d) { void *mapped_ptr = omp_get_mapped_ptr(&d, omp_get_default_device()); @@ -34,10 +34,11 @@ struct ST { // ref/attach modifiers: // &ref_ptee(this[0].[d])), &ref_ptee(this[0].d), TO | FROM // &ref_ptr(this[0].d), &ref_ptee(this[0].d), 4, ATTACH - // EXPECTED: 1 0 - // CHECK: 0 1 - printf("%d %d\n", &d == mapped_ptr, - (uintptr_t)&d == (uintptr_t)mapped_ptr - offset); + // EXPECTED: 1 0 + // CHECK-NEXT: 0 1 + intptr_t offset_device = (intptr_t)mapped_ptr - (intptr_t)&d; + printf("%d %d\n", &d == mapped_ptr, offset == offset_device); + printf("%lu %ld\n", offset, offset_device); } } } From 462f719ad28ebf6d73c760e7de67711c66e710ee Mon Sep 17 00:00:00 2001 From: Abhinav Gaba Date: Tue, 21 Oct 2025 10:33:10 -0700 Subject: [PATCH 2/7] Change lu to ld in printf. --- .../target_data_use_device_addr_class_member_ref_with_map.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp index 204e1c3407724..46a7036f6984e 100644 --- a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp +++ b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp @@ -38,7 +38,7 @@ struct ST { // CHECK-NEXT: 0 1 intptr_t offset_device = (intptr_t)mapped_ptr - (intptr_t)&d; printf("%d %d\n", &d == mapped_ptr, offset == offset_device); - printf("%lu %ld\n", offset, offset_device); + printf("%ld %ld\n", offset, offset_device); } } } From 6dda3eb314b3186f41bedfc53086d190ce6b648b Mon Sep 17 00:00:00 2001 From: Abhinav Gaba Date: Tue, 21 Oct 2025 11:08:56 -0700 Subject: [PATCH 3/7] Use PRIdPTR instead of ld in printf. --- .../target_data_use_device_addr_class_member_ref_with_map.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp index 46a7036f6984e..79f094c00eb7e 100644 --- a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp +++ b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp @@ -2,6 +2,7 @@ #include #include +#include int x = 0; int *y = &x; @@ -38,7 +39,7 @@ struct ST { // CHECK-NEXT: 0 1 intptr_t offset_device = (intptr_t)mapped_ptr - (intptr_t)&d; printf("%d %d\n", &d == mapped_ptr, offset == offset_device); - printf("%ld %ld\n", offset, offset_device); + printf("%" PRIdPTR " %" PRIdPTR "\n", offset, offset_device); } } } From ce2ce939843265fbe20a85ec48427a53d10ea13a Mon Sep 17 00:00:00 2001 From: Abhinav Gaba Date: Tue, 21 Oct 2025 11:09:37 -0700 Subject: [PATCH 4/7] Clang-format --- .../target_data_use_device_addr_class_member_ref_with_map.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp index 79f094c00eb7e..948829e8245dd 100644 --- a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp +++ b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp @@ -1,8 +1,8 @@ // RUN: %libomptarget-compilexx-run-and-check-generic +#include #include #include -#include int x = 0; int *y = &x; From 914ebacbe82f075bd2293556f69acde0d609c055 Mon Sep 17 00:00:00 2001 From: Abhinav Gaba Date: Tue, 21 Oct 2025 12:25:35 -0700 Subject: [PATCH 5/7] Use ptrdiff --- ...get_data_use_device_addr_class_member_ref_with_map.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp index 948829e8245dd..3d9b639321df4 100644 --- a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp +++ b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp @@ -1,6 +1,5 @@ // RUN: %libomptarget-compilexx-run-and-check-generic -#include #include #include @@ -17,7 +16,7 @@ struct ST { int m = 0; void f6() { - intptr_t offset = (uintptr_t)&d - n; + ptrdiff_t offset = (char *)&d - ((char *)(uintptr_t)n); #pragma omp target data map(to : m, d) { void *mapped_ptr = omp_get_mapped_ptr(&d, omp_get_default_device()); @@ -37,9 +36,10 @@ struct ST { // &ref_ptr(this[0].d), &ref_ptee(this[0].d), 4, ATTACH // EXPECTED: 1 0 // CHECK-NEXT: 0 1 - intptr_t offset_device = (intptr_t)mapped_ptr - (intptr_t)&d; + ptrdiff_t offset_device = (char *)mapped_ptr - (char *)&d; printf("%d %d\n", &d == mapped_ptr, offset == offset_device); - printf("%" PRIdPTR " %" PRIdPTR "\n", offset, offset_device); + printf("%td (%p) %td (%p)\n", offset, (void *)offset, offset_device, + (void *)offset_device); } } } From d1648bfce1d1a79b32ff3b8cf69c3bf1e135b74e Mon Sep 17 00:00:00 2001 From: Abhinav Gaba Date: Tue, 21 Oct 2025 20:38:27 -0700 Subject: [PATCH 6/7] Remove the CHECK for offset comparison. --- ...a_use_device_addr_class_member_ref_with_map.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp index 3d9b639321df4..718256c7d5c21 100644 --- a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp +++ b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp @@ -1,5 +1,7 @@ // RUN: %libomptarget-compilexx-run-and-check-generic +// XFAIL: * + #include #include @@ -34,13 +36,15 @@ struct ST { // ref/attach modifiers: // &ref_ptee(this[0].[d])), &ref_ptee(this[0].d), TO | FROM // &ref_ptr(this[0].d), &ref_ptee(this[0].d), 4, ATTACH - // EXPECTED: 1 0 - // CHECK-NEXT: 0 1 + // EXPECTED: 1 + // CHECK-NEXT: 0 + printf("%d\n", &d == mapped_ptr); ptrdiff_t offset_device = (char *)mapped_ptr - (char *)&d; - printf("%d %d\n", &d == mapped_ptr, offset == offset_device); - printf("%td (%p) %td (%p)\n", offset, (void *)offset, offset_device, - (void *)offset_device); + printf("offset = %td (%p), offset_device = %td (%p)\n", offset, + (void *)offset, offset_device, (void *)offset_device); + printf("mapped_ptr = %p, device_addr = %p, ", mapped_ptr, &d); } + printf("host_addr = %p\n", &d); } } }; From 73fa6bbf08fda7f62a99d09b33471d0b52c9eef7 Mon Sep 17 00:00:00 2001 From: Abhinav Gaba Date: Tue, 21 Oct 2025 20:50:46 -0700 Subject: [PATCH 7/7] Remove unintentionally added XFAIL, while also having updated the CHECK. --- .../target_data_use_device_addr_class_member_ref_with_map.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp index 718256c7d5c21..50a28e0d9514b 100644 --- a/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp +++ b/offload/test/mapping/use_device_addr/target_data_use_device_addr_class_member_ref_with_map.cpp @@ -1,7 +1,5 @@ // RUN: %libomptarget-compilexx-run-and-check-generic -// XFAIL: * - #include #include