Skip to content

Commit

Permalink
Add 'libgomp.c-c++-common/pr100059-1.c'
Browse files Browse the repository at this point in the history
For nvptx offloading, it'll FAIL its execution test until nvptx-tools updated
to include commit 1b5946d78ef5dcfb640e9f545a7c791b7f623911
"Merge commit '26095fd01232061de9f79decb3e8222ef7b46191' into HEAD [gcc-mirror#29]",
<SourceryTools/nvptx-tools@1b5946d>.

	libgomp/
	* testsuite/libgomp.c-c++-common/pr100059-1.c: New.

Co-authored-by: Thomas Schwinge <thomas@codesourcery.com>
  • Loading branch information
tob2 and tschwinge committed Sep 4, 2023
1 parent b3ab28c commit fe0f9e0
Showing 1 changed file with 55 additions and 0 deletions.
55 changes: 55 additions & 0 deletions libgomp/testsuite/libgomp.c-c++-common/pr100059-1.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
/* Based on sollve_vv's tests/5.0/declare_target/test_nested_declare_target.c. */

#define N 1024
int a[N], b[N], c[N];
int i = 0;

void
update ()
{
for (i = 0; i < N; i++)
{
a[i] += 1;
b[i] += 2;
c[i] += 3;
}
}

#pragma omp declare target
#pragma omp declare target link(a,c,b,i)
#pragma omp declare target to(update)
#pragma omp end declare target

int
main ()
{
for (i = 0; i < N; i++)
{
a[i] = i;
b[i] = i + 1;
c[i] = i + 2;
}

//__builtin_printf("i=5: A=%d, B=%d, C=%d\n", a[5], b[5], c[5]);

#pragma omp target map(to: i) map(tofrom: a, b, c)
{
update(); /* Device. */
}

//__builtin_printf("i=5: A=%d, B=%d, C=%d\n", a[5], b[5], c[5]);

for (i = 0; i < N; i++)
if ( a[i] != i + 1 || b[i] != i + 3 || c[i] != i + 5)
__builtin_abort();

update(); /* Host. */

//__builtin_printf("i=5: A=%d, B=%d, C=%d\n", a[5], b[5], c[5]);

for (i = 0; i < N; i++)
if ( a[i] != i + 2 || b[i] != i + 5 || c[i] != i + 8)
__builtin_abort ();

return 0;
}

0 comments on commit fe0f9e0

Please sign in to comment.