<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/94047>94047</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
OpenMP offload Program with atomic does not finished when build with -O3 of AMD GPUs
</td>
</tr>
<tr>
<th>Labels</th>
<td>
bug,
openmp,
clang:openmp,
offload
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
fel-cab
</td>
</tr>
</table>
<pre>
On a MI250x
The following program doesn't finish when compiled as:
`clang -fopenmp -O3 --offload-arch=gfx90a `
But it does finish when compiled as:
`clang -fopenmp --offload-arch=gfx90a
`
```#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
#pragma omp requires atomic_default_mem_order(acq_rel)
int main() {
int x = 0, y = 0;
int errors = 0;
#pragma omp target parallel num_threads(2) map(tofrom: x, y, errors)
{
int thrd = omp_get_thread_num();
if (thrd == 0) {
x = 10;
#pragma omp atomic write
y = 1;
}
if (thrd == 1){
int tmp = 0;
while (tmp == 0) {
#pragma omp atomic read
tmp = y;
}
if(x != 10) errors++;
}
}
if(errors)
printf("Test Failed\n");
else
printf("Test Passed\n");
return errors;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVEtvq0gT_TXFpmQLGmNgwSKOP3-aRZQs7qytBgroUT-43c218-9HPOw4tueONAhhoB7nnCpzuHOi1UQFJDtI9gEffGds0ZBcVbwMSlN_FhDuIXx518jx7Q-WhOf5xXz90RE2RkpzErrF3prWcoW1IaeBpR4boYXr8NSRxsqoXkiqkTuIl3rYhpXkusVVY3rSqsfVe4yrlWkaaXi94rbqIN63zTkPOcI2vAXfDR6Fn9D-C9A_gVzyv27mk8VCV3KoCSF-NapfdxD_b0n6FnO-FuZ3USnK2_Alqbe8VRyN6tHSz0FYcsi9UaI61tTwQfqjInU0tiYLLOPVz6MlCSy_7SO0R8WFBpYByxHS3W0UcYyfEeI9hsBe8XO5jXe3CWStse4hNB7P2HpuW_LYc8ulJIl6UEffWeK1A5axkYfiPbDMm8YaBfELnifw8TJjXVWMEOk3xImR72w98TGqP7bkl_5HPahZ6R1NFA2OgEvZojd_6I24TCO6Efpd3bwCPFnhCe-L5_lF9-iQ7v-FTTRyfiQzaVX909GPx6kTkqZec9ITYU_Zj8N6II9XqM8nUF8aRAMsOyOwaJkUy69r243nb9Tf3k997vfdW6F9My2R_SDn8cDHjxeSVw2M3W2WpKMbqIfaD-7c09prkSU_WH2hfw1fWF4_96Au4jqPcx5QEaVRGmVZnmRBV1CW8CzicZhv8yyPt1FIZchSoiSsWJZngShYyDZhEkcsTJIkW5dlWm6pynNK8yhjBJuQFBdyLeUvtTa2DYRzAxX5JtykgeQlSTc5MmPl0E5CXoGx2beuj5OdQfxy93oxtfE52Qe2GDFW5dA62IRSOO--UL3wkor3nvTbBy51-LF4-En47vLnmRxWm4udUz37bDkIWc-Jo2ubBl_e9vj_jz9dMFhZdN73kwGzA7BDK3w3lOvKKGCHkcLys-qt-YsqD-wwTcEBO8yD-FWwvwMAAP__18PcZQ">