<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">