<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Not vectorized trivial case since LAA (SCEV) fails to figure out exit counts"
   href="https://bugs.llvm.org/show_bug.cgi?id=38853">38853</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Not vectorized trivial case since LAA (SCEV) fails to figure out exit counts
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Loop Optimizer
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>balarishi.bhogadi@amd.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=20848" name="attach_20848" title="Testcase to reproduce the issue">attachment 20848</a> <a href="attachment.cgi?id=20848&action=edit" title="Testcase to reproduce the issue">[details]</a></span>
Testcase to reproduce the issue

BUG DETAILS:

LLVM is not able to vectorize below trivial case:

----------------
extern int len;
extern int *ptr_x, *ptr_y, *ptr_z;
void foo()
{
   for (int i = 0; i < len; i++)
      ptr_x[i] = ptr_y[i] * ptr_z[i];
}
----------------

The reason for this is LAA (SCEV) is not able to figure out the exit counts.

LV: Can't vectorize due to memory conflicts
LAA: SCEV could not compute the loop exit count.

This test looks trivial and LAA is not able to figure out the loop exit.

This issue is not seen when arrays are used instead of pointers.

==========================================
STEPS to REPRODUCE:

- Download the attached vect.c file
- Run the below command:
   clang -O3 -S -emit-llvm -o vect.ll  vect.c

==========================================</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>