<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/73101>73101</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [flang][OpenMP] reduction(min) gives an inexact negative value close to zero
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            flang,
            flang:openmp
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
            NimishMishra
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          NimishMishra
      </td>
    </tr>
</table>

<pre>
    For the following program, logically, the variable `x` should give 0. However, LLVM flang gives an inexact negative value **-1.E-45**. In contrast, gfortran gives an exact 0.

```
program sample
   real :: x, y(100)
 x = 0
   do i = 1, 100
      y(i) = i
   end do

   !$omp parallel do reduction(min:x)
      do i = 1, 100
          x = min(y(i), x)
      end do
   !$omp end parallel do
end program sample
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEU02PmzAQ_TXDZRRkbEjgwCG7adRKu21PvRuYgCtjI9tks_31lQmbTT_UWgg0nvee3phn6b3qDVENxQNw_lmNyg_Pyg9OAudQHBI5h8G6-r6TNLZ7rY_WYRgIT1Zr-6JMj5OzvZMj8EfUtlet1Po1FhF1lk7JRhPCll1gy9APdtYd9upMyFL8aF_oTC7Cn56-PeNJS9MvXY_SoDJ0kW1AQ70MkXKWeiYEvge-32Tph01eXIsUPxlsrQlO-hDl-pN1wUnzLnaVYimwA7D9-t6y9VnKdRT0cpw0XfcQ0ZHUCGIPYo-XKP4KvMwYA16tmAuCOCC7MTqLatnKIjxC3zqIC1sBrxaAunXIdNjZe3eICDwDnttxwkk6qTXpqO2om9ugrAFejsqA2F_evSzrnwbiujqOZF6-GYrQ34XuXf3iJzbuPF0Ry-ZfDvF2zklXi64SlUyoznaMbfNSiDwZar5j1Y5Rua1y0Z2qsqCiK4XcNk1BUnSnRNWccZFlnGcsK4s8PXFR7Mqioy6rRMYIckajVDrV-jym1vWJ8n6meicyliVaNqT9GvglZjHp_PFWib2dyIzTegFcHWU2zdx7yJlWPvh34aCCXi7PlVocoHj4MpF5_grF4Y-_w6v_JrrV1hMGiz_I2WR2uh5CmHzMHD8CP_YqDHOTtnYEfow21s9mcvY7tQH4cRnWAz8u8_4MAAD__yipJKY">