* builtins.def (BUILT_IN_SETJMP): Revert latest change.
[official-gcc.git] / libgomp / testsuite / libgomp.hsa.c / rotate-1.c
blob494388bd10c27763f08ee3b88957cf25bcc42c45
1 #include <assert.h>
2 #include <limits.h>
4 #define T unsigned int
5 #define BITSIZE CHAR_BIT * sizeof (T)
7 #define C1 123u
9 #pragma omp declare target
11 rotate (T value, T shift)
13 T r = (value << shift) | (value >> (BITSIZE - shift));
14 return (r >> shift) | (r << (BITSIZE - shift));
16 #pragma omp end declare target
18 int
19 main (int argc)
21 T v1, v2, v3, v4, v5;
23 #pragma omp target map(to: v1, v2, v3, v4, v5)
25 v1 = rotate (C1, 10);
26 v2 = rotate (C1, 2);
27 v3 = rotate (C1, 5);
28 v4 = rotate (C1, 16);
29 v5 = rotate (C1, 32);
32 assert (v1 == C1);
33 assert (v2 == C1);
34 assert (v3 == C1);
35 assert (v4 == C1);
36 assert (v5 == C1);
38 return 0;