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

    <tr>
        <th>Summary</th>
        <td>
            [Flang] Intrinsic SUM on REAL(4) type array produce incorrect result.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            bug,
            flang:ir,
            flang:runtime
      </td>
    </tr>

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

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

<pre>
    It seems intrinsic SUM produce a different (incorrect) result.

```
 integer, parameter :: u = 5794, k = 4
  real(k) :: a(u)
  real(k) :: s

  do i = 1, u
    a(i) = real(i)
  end do

  s = sum(a)
  write (6,'(F16.7)') s

  s = 0.
  do i = 1, u
    s = s + a(i)
  end do
  write (6,'(F16.7)') s
end


> a.out
16788116.0000000
16788114.0000000
```

The output is supposed to be the same.

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUU9tunEAM_RrzYgUNBpbhgYfNbpAitS-9fMAAXpgGGDSXVvn7Cpak2bRqVYSMbOzj4_Ec5ZzuZ-YK8nvIz5EKfjC2OqtZ83g6DTxHjemeq0ePjnlyqGdv9ex0i5-_fsTFmi60jAo7fbmw5dkjkNRza6zl1gOVaNmF0ccgziCOuz2I_d3cFZR7tkAnXJRVE3u2COkR0iMGhPSMeVFm6--nzcv2OrSsRiD5tPbZ8xWQDEDlX1LcWy6InUG9wSZrh_ASxg1KX-vOLzj6DTTPHXbmFsxtyS5MQFK9yf1htef1bA5AJ6ACSNbJIS7WlNUr37O6Aon4nyz3jgh0_8r4Twz_gwPP3c26rjZ9QBWb4K9uciikTJJDLK7PTTS7jb7b99V-GRhN8EvwqB26sCzGcYfeYMPoB0anJt7Hj7oq7cq0VBFXSZFQUeRJIqOhKi5d1spDeWmULFXDpWzzTqQ5K3WRTdtGuiJBmcgSkcg8yWUsc84L0TZcsMwktZAJnpQe43H8PsXG9pF2LnAlZSrKaFQNj25TB1ETeiDazo4uo5p7SI_a_hayYfZ64jWenyNbrcB3TegdZGLUzrtfrbz246a9eqvNz_h4oy8z46eH4wcgma3r8c8Lo7JWPb8q71VqLzqLgh2rwfvFrbedaqC6134ITdyaCahee--fu8Wab5tK621mB1RvY_8MAAD__xhLH4c">