6 main(int argc
, char **argv
)
8 int iexp
, igot
, imax
, imin
;
20 for (i
= 0; i
< N
; i
++)
23 #pragma acc data copy (igot, idata[0:N])
25 #pragma acc parallel loop
26 for (i
= 0; i
< N
; i
++)
27 #pragma acc atomic capture
28 { idata
[i
] = igot
; igot
= i
; }
34 for (i
= 0; i
< N
; i
++)
36 imax
= idata
[i
] > imax
? idata
[i
] : imax
;
37 imin
= idata
[i
] < imin
? idata
[i
] : imin
;
40 if (imax
!= 1234 || imin
!= 0)
48 #pragma acc data copy (igot, idata[0:N])
50 #pragma acc parallel loop
51 for (i
= 0; i
< N
; i
++)
52 #pragma acc atomic capture
53 { idata
[i
] = igot
; igot
++; }
62 #pragma acc data copy (igot, idata[0:N])
64 #pragma acc parallel loop
65 for (i
= 0; i
< N
; i
++)
66 #pragma acc atomic capture
67 { idata
[i
] = igot
; ++igot
; }
76 #pragma acc data copy (igot, idata[0:N])
78 #pragma acc parallel loop
79 for (i
= 0; i
< N
; i
++)
80 #pragma acc atomic capture
81 { ++igot
; idata
[i
] = igot
; }
90 #pragma acc data copy (igot, idata[0:N])
92 #pragma acc parallel loop
93 for (i
= 0; i
< N
; i
++)
94 #pragma acc atomic capture
95 { igot
++; idata
[i
] = igot
; }
104 #pragma acc data copy (igot, idata[0:N])
106 #pragma acc parallel loop
107 for (i
= 0; i
< N
; i
++)
108 #pragma acc atomic capture
109 { idata
[i
] = igot
; igot
--; }
118 #pragma acc data copy (igot, idata[0:N])
120 #pragma acc parallel loop
121 for (i
= 0; i
< N
; i
++)
122 #pragma acc atomic capture
123 { idata
[i
] = igot
; --igot
; }
132 #pragma acc data copy (igot, idata[0:N])
134 #pragma acc parallel loop
135 for (i
= 0; i
< N
; i
++)
136 #pragma acc atomic capture
137 { --igot
; idata
[i
] = igot
; }
146 #pragma acc data copy (igot, idata[0:N])
148 #pragma acc parallel loop
149 for (i
= 0; i
< N
; i
++)
150 #pragma acc atomic capture
151 { igot
--; idata
[i
] = igot
; }
161 #pragma acc data copy (igot, idata[0:N])
163 #pragma acc parallel loop
164 for (i
= 0; i
< N
; i
++)
168 #pragma acc atomic capture
169 { idata
[i
] = igot
; igot
+= expr
; }
179 #pragma acc data copy (igot, idata[0:N])
181 #pragma acc parallel loop
182 for (i
= 0; i
< N
; i
++)
186 #pragma acc atomic capture
187 { igot
+= expr
; idata
[i
] = igot
; }
197 #pragma acc data copy (igot, idata[0:N])
199 #pragma acc parallel loop
200 for (i
= 0; i
< N
; i
++)
204 #pragma acc atomic capture
205 { idata
[i
] = igot
; igot
= igot
+ expr
; }
215 #pragma acc data copy (igot, idata[0:N])
217 #pragma acc parallel loop
218 for (i
= 0; i
< N
; i
++)
222 #pragma acc atomic capture
223 { idata
[i
] = igot
; igot
= expr
+ igot
; }
233 #pragma acc data copy (igot, idata[0:N])
235 #pragma acc parallel loop
236 for (i
= 0; i
< N
; i
++)
240 #pragma acc atomic capture
241 { igot
= igot
+ expr
; idata
[i
] = igot
; }
252 #pragma acc data copy (igot, idata[0:N])
254 #pragma acc parallel loop
255 for (i
= 0; i
< N
; i
++)
259 #pragma acc atomic capture
260 { igot
= expr
+ igot
; idata
[i
] = igot
; }
271 #pragma acc data copy (lgot, ldata[0:N])
273 #pragma acc parallel loop
274 for (i
= 0; i
< N
; i
++)
276 long long expr
= 2LL;
278 #pragma acc atomic capture
279 { ldata
[i
] = lgot
; lgot
*= expr
; }
289 #pragma acc data copy (lgot, ldata[0:N])
291 #pragma acc parallel loop
292 for (i
= 0; i
< N
; i
++)
294 long long expr
= 2LL;
296 #pragma acc atomic capture
297 { lgot
*= expr
; ldata
[i
] = lgot
; }
307 #pragma acc data copy (lgot, ldata[0:N])
309 #pragma acc parallel loop
310 for (i
= 0; i
< N
; i
++)
312 long long expr
= 2LL;
314 #pragma acc atomic capture
315 { ldata
[i
] = lgot
; lgot
= lgot
* expr
; }
325 #pragma acc data copy (lgot, ldata[0:N])
327 #pragma acc parallel loop
328 for (i
= 0; i
< N
; i
++)
330 long long expr
= 2LL;
332 #pragma acc atomic capture
333 { ldata
[i
] = lgot
; lgot
= expr
* lgot
; }
343 #pragma acc data copy (lgot, ldata[0:N])
345 #pragma acc parallel loop
346 for (i
= 0; i
< N
; i
++)
348 long long expr
= 2LL;
350 #pragma acc atomic capture
351 { lgot
= lgot
* expr
; ldata
[i
] = lgot
; }
361 #pragma acc data copy (lgot, ldata[0:N])
363 #pragma acc parallel loop
364 for (i
= 0; i
< N
; i
++)
368 #pragma acc atomic capture
369 { lgot
= expr
* lgot
; ldata
[i
] = lgot
; }
380 #pragma acc data copy (igot, idata[0:N])
382 #pragma acc parallel loop
383 for (i
= 0; i
< N
; i
++)
387 #pragma acc atomic capture
388 { idata
[i
] = igot
; igot
-= expr
; }
398 #pragma acc data copy (igot, idata[0:N])
400 #pragma acc parallel loop
401 for (i
= 0; i
< N
; i
++)
405 #pragma acc atomic capture
406 { igot
-= expr
; idata
[i
] = igot
; }
416 #pragma acc data copy (igot, idata[0:N])
418 #pragma acc parallel loop
419 for (i
= 0; i
< N
; i
++)
423 #pragma acc atomic capture
424 { idata
[i
] = igot
; igot
= igot
- expr
; }
434 #pragma acc data copy (igot, idata[0:N])
436 #pragma acc parallel loop
437 for (i
= 0; i
< N
; i
++)
441 #pragma acc atomic capture
442 { idata
[i
] = igot
; igot
= expr
- igot
; }
446 for (i
= 0; i
< N
; i
++)
464 #pragma acc data copy (igot, idata[0:N])
466 #pragma acc parallel loop
467 for (i
= 0; i
< N
; i
++)
471 #pragma acc atomic capture
472 { igot
= igot
- expr
; idata
[i
] = igot
; }
482 #pragma acc data copy (igot, idata[0:N])
484 #pragma acc parallel loop
485 for (i
= 0; i
< N
; i
++)
489 #pragma acc atomic capture
490 { igot
= expr
- igot
; idata
[i
] = igot
; }
494 for (i
= 0; i
< N
; i
++)
513 #pragma acc data copy (lgot, ldata[0:N])
515 #pragma acc parallel loop
516 for (i
= 0; i
< N
; i
++)
518 long long expr
= 2LL;
520 #pragma acc atomic capture
521 { ldata
[i
] = lgot
; lgot
/= expr
; }
531 #pragma acc data copy (lgot, ldata[0:N])
533 #pragma acc parallel loop
534 for (i
= 0; i
< N
; i
++)
536 long long expr
= 2LL;
538 #pragma acc atomic capture
539 { lgot
/= expr
; ldata
[i
] = lgot
; }
549 #pragma acc data copy (lgot, ldata[0:N])
551 #pragma acc parallel loop
552 for (i
= 0; i
< N
; i
++)
554 long long expr
= 2LL;
556 #pragma acc atomic capture
557 { ldata
[i
] = lgot
; lgot
= lgot
/ expr
; }
567 #pragma acc data copy (lgot, ldata[0:N])
569 #pragma acc parallel loop
570 for (i
= 0; i
< N
; i
++)
572 long long expr
= 1LL << N
;
574 #pragma acc atomic capture
575 { ldata
[i
] = lgot
; lgot
= expr
/ lgot
; }
585 #pragma acc data copy (lgot, ldata[0:N])
587 #pragma acc parallel loop
588 for (i
= 0; i
< N
; i
++)
590 long long expr
= 1LL << N
;
592 #pragma acc atomic capture
593 { lgot
= lgot
/ expr
; ldata
[i
] = lgot
; }
603 #pragma acc data copy (lgot, ldata[0:N])
605 #pragma acc parallel loop
606 for (i
= 0; i
< N
; i
++)
608 long long expr
= 1LL << N
;
610 #pragma acc atomic capture
611 { lgot
= expr
/ lgot
; ldata
[i
] = lgot
; }
622 #pragma acc data copy (lgot, ldata[0:N])
624 #pragma acc parallel loop
625 for (i
= 0; i
< N
; i
++)
627 long long expr
= ~(1 << i
);
629 #pragma acc atomic capture
630 { ldata
[i
] = lgot
; lgot
&= expr
; }
640 #pragma acc data copy (lgot, ldata[0:N])
642 #pragma acc parallel loop
643 for (i
= 0; i
< N
; i
++)
645 long long expr
= ~(1 << i
);
647 #pragma acc atomic capture
648 { lgot
&= expr
; ldata
[i
] = lgot
; }
658 #pragma acc data copy (lgot, ldata[0:N])
660 #pragma acc parallel loop
661 for (i
= 0; i
< N
; i
++)
663 long long expr
= ~(1 << i
);
665 #pragma acc atomic capture
666 { ldata
[i
] = lgot
; lgot
= lgot
& expr
; }
676 #pragma acc data copy (lgot, ldata[0:N])
678 #pragma acc parallel loop
679 for (i
= 0; i
< N
; i
++)
681 long long expr
= ~(1 << i
);
683 #pragma acc atomic capture
684 { ldata
[i
] = lgot
; lgot
= expr
& lgot
; }
694 #pragma acc data copy (lgot, ldata[0:N])
696 #pragma acc parallel loop
697 for (i
= 0; i
< N
; i
++)
699 long long expr
= ~(1 << i
);
701 #pragma acc atomic capture
702 { lgot
= lgot
& expr
; ldata
[i
] = lgot
; }
712 #pragma acc data copy (lgot, ldata[0:N])
714 #pragma acc parallel loop
715 for (i
= 0; i
< N
; i
++)
717 long long expr
= ~(1 << i
);
719 #pragma acc atomic capture
720 { lgot
= expr
& lgot
; ldata
[i
] = lgot
; }
731 #pragma acc data copy (lgot, ldata[0:N])
733 #pragma acc parallel loop
734 for (i
= 0; i
< N
; i
++)
736 long long expr
= 1 << i
;
738 #pragma acc atomic capture
739 { ldata
[i
] = lgot
; lgot
^= expr
; }
749 #pragma acc data copy (lgot, ldata[0:N])
751 #pragma acc parallel loop
752 for (i
= 0; i
< N
; i
++)
754 long long expr
= ~(1 << i
);
756 #pragma acc atomic capture
757 { lgot
^= expr
; ldata
[i
] = lgot
; }
767 #pragma acc data copy (lgot, ldata[0:N])
769 #pragma acc parallel loop
770 for (i
= 0; i
< N
; i
++)
772 long long expr
= ~(1 << i
);
774 #pragma acc atomic capture
775 { ldata
[i
] = lgot
; lgot
= lgot
^ expr
; }
785 #pragma acc data copy (lgot, ldata[0:N])
787 #pragma acc parallel loop
788 for (i
= 0; i
< N
; i
++)
790 long long expr
= ~(1 << i
);
792 #pragma acc atomic capture
793 { ldata
[i
] = lgot
; lgot
= expr
^ lgot
; }
803 #pragma acc data copy (lgot, ldata[0:N])
805 #pragma acc parallel loop
806 for (i
= 0; i
< N
; i
++)
808 long long expr
= ~(1 << i
);
810 #pragma acc atomic capture
811 { lgot
= lgot
^ expr
; ldata
[i
] = lgot
; }
821 #pragma acc data copy (lgot, ldata[0:N])
823 #pragma acc parallel loop
824 for (i
= 0; i
< N
; i
++)
826 long long expr
= ~(1 << i
);
828 #pragma acc atomic capture
829 { lgot
= expr
^ lgot
; ldata
[i
] = lgot
; }
840 #pragma acc data copy (lgot, ldata[0:N])
842 #pragma acc parallel loop
843 for (i
= 0; i
< N
; i
++)
845 long long expr
= 1 << i
;
847 #pragma acc atomic capture
848 { ldata
[i
] = lgot
; lgot
|= expr
; }
858 #pragma acc data copy (lgot, ldata[0:N])
860 #pragma acc parallel loop
861 for (i
= 0; i
< N
; i
++)
863 long long expr
= ~(1 << i
);
865 #pragma acc atomic capture
866 { lgot
|= expr
; ldata
[i
] = lgot
; }
876 #pragma acc data copy (lgot, ldata[0:N])
878 #pragma acc parallel loop
879 for (i
= 0; i
< N
; i
++)
881 long long expr
= ~(1 << i
);
883 #pragma acc atomic capture
884 { ldata
[i
] = lgot
; lgot
= lgot
| expr
; }
894 #pragma acc data copy (lgot, ldata[0:N])
896 #pragma acc parallel loop
897 for (i
= 0; i
< N
; i
++)
899 long long expr
= ~(1 << i
);
901 #pragma acc atomic capture
902 { ldata
[i
] = lgot
; lgot
= expr
| lgot
; }
912 #pragma acc data copy (lgot, ldata[0:N])
914 #pragma acc parallel loop
915 for (i
= 0; i
< N
; i
++)
917 long long expr
= ~(1 << i
);
919 #pragma acc atomic capture
920 { lgot
= lgot
| expr
; ldata
[i
] = lgot
; }
930 #pragma acc data copy (lgot, ldata[0:N])
932 #pragma acc parallel loop
933 for (i
= 0; i
< N
; i
++)
935 long long expr
= ~(1 << i
);
937 #pragma acc atomic capture
938 { lgot
= expr
| lgot
; ldata
[i
] = lgot
; }
949 #pragma acc data copy (lgot, ldata[0:N])
951 #pragma acc parallel loop
952 for (i
= 0; i
< N
; i
++)
954 long long expr
= 1LL;
956 #pragma acc atomic capture
957 { ldata
[i
] = lgot
; lgot
<<= expr
; }
967 #pragma acc data copy (lgot, ldata[0:N])
969 #pragma acc parallel loop
970 for (i
= 0; i
< N
; i
++)
972 long long expr
= 1LL;
974 #pragma acc atomic capture
975 { lgot
<<= expr
; ldata
[i
] = lgot
; }
985 #pragma acc data copy (lgot, ldata[0:N])
987 #pragma acc parallel loop
988 for (i
= 0; i
< N
; i
++)
990 long long expr
= 1LL;
992 #pragma acc atomic capture
993 { ldata
[i
] = lgot
; lgot
= lgot
<< expr
; }
1003 #pragma acc data copy (lgot, ldata[0:N])
1005 #pragma acc parallel loop
1006 for (i
= 0; i
< 1; i
++)
1008 long long expr
= 1LL;
1010 #pragma acc atomic capture
1011 { ldata
[i
] = lgot
; lgot
= expr
<< lgot
; }
1021 #pragma acc data copy (lgot, ldata[0:N])
1023 #pragma acc parallel loop
1024 for (i
= 0; i
< 1; i
++)
1026 long long expr
= 1LL;
1028 #pragma acc atomic capture
1029 { lgot
= lgot
<< expr
; ldata
[i
] = lgot
; }
1039 #pragma acc data copy (lgot, ldata[0:N])
1041 #pragma acc parallel loop
1042 for (i
= 0; i
< 1; i
++)
1044 long long expr
= 1LL;
1046 #pragma acc atomic capture
1047 { lgot
= expr
<< lgot
; ldata
[i
] = lgot
; }
1058 #pragma acc data copy (lgot, ldata[0:N])
1060 #pragma acc parallel loop
1061 for (i
= 0; i
< N
; i
++)
1063 long long expr
= 1LL;
1065 #pragma acc atomic capture
1066 { ldata
[i
] = lgot
; lgot
>>= expr
; }
1076 #pragma acc data copy (lgot, ldata[0:N])
1078 #pragma acc parallel loop
1079 for (i
= 0; i
< N
; i
++)
1081 long long expr
= 1LL;
1083 #pragma acc atomic capture
1084 { lgot
>>= expr
; ldata
[i
] = lgot
; }
1094 #pragma acc data copy (lgot, ldata[0:N])
1096 #pragma acc parallel loop
1097 for (i
= 0; i
< N
; i
++)
1099 long long expr
= 1LL;
1101 #pragma acc atomic capture
1102 { ldata
[i
] = lgot
; lgot
= lgot
>> expr
; }
1110 lexp
= 1LL << (N
- 1);
1112 #pragma acc data copy (lgot, ldata[0:N])
1114 #pragma acc parallel loop
1115 for (i
= 0; i
< 1; i
++)
1117 long long expr
= 1LL << N
;
1119 #pragma acc atomic capture
1120 { ldata
[i
] = lgot
; lgot
= expr
>> lgot
; }
1130 #pragma acc data copy (lgot, ldata[0:N])
1132 #pragma acc parallel loop
1133 for (i
= 0; i
< N
; i
++)
1135 long long expr
= 1LL;
1137 #pragma acc atomic capture
1138 { lgot
= lgot
>> expr
; ldata
[i
] = lgot
; }
1146 lexp
= 1LL << (N
- 1);
1148 #pragma acc data copy (lgot, ldata[0:N])
1150 #pragma acc parallel loop
1151 for (i
= 0; i
< 1; i
++)
1153 long long expr
= 1LL << N
;
1155 #pragma acc atomic capture
1156 { lgot
= expr
>> lgot
; ldata
[i
] = lgot
; }
1163 // FLOAT FLOAT FLOAT
1169 #pragma acc data copy (fgot, fdata[0:N])
1171 #pragma acc parallel loop
1172 for (i
= 0; i
< N
; i
++)
1176 #pragma acc atomic capture
1177 { fdata
[i
] = fgot
; fgot
+= expr
; }
1187 #pragma acc data copy (fgot, fdata[0:N])
1189 #pragma acc parallel loop
1190 for (i
= 0; i
< N
; i
++)
1194 #pragma acc atomic capture
1195 { fgot
+= expr
; fdata
[i
] = fgot
; }
1205 #pragma acc data copy (fgot, fdata[0:N])
1207 #pragma acc parallel loop
1208 for (i
= 0; i
< N
; i
++)
1212 #pragma acc atomic capture
1213 { idata
[i
] = fgot
; fgot
= fgot
+ expr
; }
1223 #pragma acc data copy (fgot, fdata[0:N])
1225 #pragma acc parallel loop
1226 for (i
= 0; i
< N
; i
++)
1230 #pragma acc atomic capture
1231 { fdata
[i
] = fgot
; fgot
= expr
+ fgot
; }
1241 #pragma acc data copy (fgot, fdata[0:N])
1243 #pragma acc parallel loop
1244 for (i
= 0; i
< N
; i
++)
1248 #pragma acc atomic capture
1249 { fgot
= fgot
+ expr
; fdata
[i
] = fgot
; }
1259 #pragma acc data copy (fgot, fdata[0:N])
1261 #pragma acc parallel loop
1262 for (i
= 0; i
< N
; i
++)
1266 #pragma acc atomic capture
1267 { fgot
= expr
+ fgot
; fdata
[i
] = fgot
; }
1276 fexp
= 8192.0*8192.0*64.0;
1278 #pragma acc data copy (fgot, fdata[0:N])
1280 #pragma acc parallel loop
1281 for (i
= 0; i
< N
; i
++)
1285 #pragma acc atomic capture
1286 { fdata
[i
] = fgot
; fgot
*= expr
; }
1294 fexp
= 8192.0*8192.0*64.0;
1296 #pragma acc data copy (fgot, fdata[0:N])
1298 #pragma acc parallel loop
1299 for (i
= 0; i
< N
; i
++)
1303 #pragma acc atomic capture
1304 { fgot
*= expr
; fdata
[i
] = fgot
; }
1312 fexp
= 8192.0*8192.0*64.0;
1314 #pragma acc data copy (fgot, fdata[0:N])
1316 #pragma acc parallel loop
1317 for (i
= 0; i
< N
; i
++)
1321 #pragma acc atomic capture
1322 { fdata
[i
] = fgot
; fgot
= fgot
* expr
; }
1330 fexp
= 8192.0*8192.0*64.0;
1332 #pragma acc data copy (fgot, fdata[0:N])
1334 #pragma acc parallel loop
1335 for (i
= 0; i
< N
; i
++)
1339 #pragma acc atomic capture
1340 { fdata
[i
] = fgot
; fgot
= expr
* fgot
; }
1350 #pragma acc data copy (lgot, ldata[0:N])
1352 #pragma acc parallel loop
1353 for (i
= 0; i
< N
; i
++)
1355 long long expr
= 2LL;
1357 #pragma acc atomic capture
1358 { lgot
= lgot
* expr
; ldata
[i
] = lgot
; }
1366 fexp
= 8192.0*8192.0*64.0;
1368 #pragma acc data copy (fgot, fdata[0:N])
1370 #pragma acc parallel loop
1371 for (i
= 0; i
< N
; i
++)
1375 #pragma acc atomic capture
1376 { fgot
= expr
* fgot
; fdata
[i
] = fgot
; }
1387 #pragma acc data copy (fgot, fdata[0:N])
1389 #pragma acc parallel loop
1390 for (i
= 0; i
< N
; i
++)
1394 #pragma acc atomic capture
1395 { fdata
[i
] = fgot
; fgot
-= expr
; }
1405 #pragma acc data copy (fgot, fdata[0:N])
1407 #pragma acc parallel loop
1408 for (i
= 0; i
< N
; i
++)
1412 #pragma acc atomic capture
1413 { fgot
-= expr
; fdata
[i
] = fgot
; }
1423 #pragma acc data copy (fgot, fdata[0:N])
1425 #pragma acc parallel loop
1426 for (i
= 0; i
< N
; i
++)
1430 #pragma acc atomic capture
1431 { fdata
[i
] = fgot
; fgot
= fgot
- expr
; }
1441 #pragma acc data copy (fgot, fdata[0:N])
1443 #pragma acc parallel loop
1444 for (i
= 0; i
< N
; i
++)
1448 #pragma acc atomic capture
1449 { fdata
[i
] = fgot
; fgot
= expr
- fgot
; }
1453 for (i
= 0; i
< N
; i
++)
1456 if (fdata
[i
] != 1.0)
1461 if (fdata
[i
] != 0.0)
1471 #pragma acc data copy (fgot, fdata[0:N])
1473 #pragma acc parallel loop
1474 for (i
= 0; i
< N
; i
++)
1478 #pragma acc atomic capture
1479 { fgot
= fgot
- expr
; fdata
[i
] = fgot
; }
1489 #pragma acc data copy (fgot, fdata[0:N])
1491 #pragma acc parallel loop
1492 for (i
= 0; i
< N
; i
++)
1496 #pragma acc atomic capture
1497 { fgot
= expr
- fgot
; fdata
[i
] = fgot
; }
1501 for (i
= 0; i
< N
; i
++)
1504 if (fdata
[i
] != 0.0)
1509 if (fdata
[i
] != 1.0)
1517 fgot
= 8192.0*8192.0*64.0;
1520 #pragma acc data copy (fgot, fdata[0:N])
1522 #pragma acc parallel loop
1523 for (i
= 0; i
< N
; i
++)
1527 #pragma acc atomic capture
1528 { fdata
[i
] = fgot
; fgot
/= expr
; }
1535 fgot
= 8192.0*8192.0*64.0;
1538 #pragma acc data copy (fgot, fdata[0:N])
1540 #pragma acc parallel loop
1541 for (i
= 0; i
< N
; i
++)
1545 #pragma acc atomic capture
1546 { fgot
/= expr
; fdata
[i
] = fgot
; }
1553 fgot
= 8192.0*8192.0*64.0;
1556 #pragma acc data copy (fgot, fdata[0:N])
1558 #pragma acc parallel loop
1559 for (i
= 0; i
< N
; i
++)
1563 #pragma acc atomic capture
1564 { fdata
[i
] = fgot
; fgot
= fgot
/ expr
; }
1571 fgot
= 8192.0*8192.0*64.0;
1574 #pragma acc data copy (fgot, fdata[0:N])
1576 #pragma acc parallel loop
1577 for (i
= 0; i
< N
; i
++)
1581 #pragma acc atomic capture
1582 { fdata
[i
] = fgot
; fgot
= expr
/ fgot
; }
1592 #pragma acc data copy (fgot, fdata[0:N])
1594 #pragma acc parallel loop
1595 for (i
= 0; i
< N
; i
++)
1597 long long expr
= 1LL << N
;
1599 #pragma acc atomic capture
1600 { fgot
= fgot
/ expr
; fdata
[i
] = fgot
; }
1610 #pragma acc data copy (fgot, fdata[0:N])
1612 #pragma acc parallel loop
1613 for (i
= 0; i
< N
; i
++)
1617 #pragma acc atomic capture
1618 { fgot
= expr
/ fgot
; fdata
[i
] = fgot
; }