<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/76778>76778</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Issue in OMP min reduction with nested Parallel Do and Private Variables.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
harishch4
</td>
</tr>
</table>
<pre>
Are OMP min reductions supported currently in llvm-flang?
The below program works fine with gfortran but fails with llvm-flang.
```
program min_reduction
implicit none
integer, parameter :: n = 1024
integer :: a(n, n), v, i, j, x, y
do i = 1, n
do j = 1, n
a(i, j) = i + j ! min = 2; max = 2048
end do
end do
v = a(1, 1)
y = -2
!$omp parallel do private(x) reduction(min: v)
do i = 1, n
do j = 1, n
x = (i + j)*y ! min = 2048*-2 = -4096
v = min(v, a(i, j), x)
end do
end do
!$omp end parallel do
! print *, "min(a) = ", v
if (v == 2*n*y) then
print *, "PASS"
else
print *, "FAIL"
end if
end program
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVE2L8zYQ_jXyZdggj-XYOfjgbQi80NKFLb0WOZZtbWXJSHJ28--LpHxsUlpKwYzRfDwz84w03Dk5aiEaUr6Scp_x1U_GNhO30k3HiWWd6c9NawX8-ssbzFKDFf169NJoB25dFmO96OG4Wiu0V2eQGpQ6zS-D4nokxQEI3RPaJvnbJKATynzCYs1o-Qyfxv7pYJBawKf0E4yDsd5yDd3qYeBSuaS_Y24ugFt6-eLxijdL_cetwmQCADkvSh6lB220uGil9mIUluBPsHDLZ-GFBVK0pGhBAyn2kFNkd4jkfvXgBGsdYjXBXfifgpBBfATxFcT5Et0bkAkxRVwxAYLp4x9MADHLFXMX3SQQfA0hmMdpBB2S4hVm_pUOlNXfUYTuoTc3zdPxFGNCmpg_D81cbedoe8GbgmBOkJl5iYQpJVQof7HyxL0gWH-FIu_kYz1LHbg6fUf931yk9gIhiYLIe3t-ZCI0j-0LptIZ3W2fUFLDoTCs48geKL5MbvffCbxzEgzfeLncUswDQdoDwTagE8SUnF8nShDT_bndtCF0GQtN08VWh05DgJ_EAy_P2G_t-3sAvFWrnPg3_0P74-cHf92DHNIxNpSe1dOTy_qm6HfFjmeiySvKsKxwy7Kp2RW8KwvBGaUi7_Kyr3lJj6zk26rsK1ZnskGKjOa0oIxVjG1o3fNi6GsxdFhXfUkYFTOXahMe_MbYMZPOraKptlVVZ4p3Qrm4qxC1-IRoDA2U-8w2cUl06-gIo0o67-4oXnolmh_BPayovy2ztGW0cGGbvV3HuDfAdQ9v6YrD79xK3inhNtlqVTN5v7iwD_BA8DBKP63d5mhmgoeQ9_J7Waz5EEdP8BCrdQQPsZu_AgAA__8byoVg">