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