<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </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 --- - setAlreadyVectorized does not delete obsolete metadata"
   href="http://llvm.org/bugs/show_bug.cgi?id=20655">20655</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>setAlreadyVectorized does not delete obsolete metadata
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>new-bugs
          </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>normal
          </td>
        </tr>

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

        <tr>
          <th>Component</th>
          <td>new bugs
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>arch.robison@hotmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=12893" name="attach_12893" title="Example input to opt that demonstrates bug">attachment 12893</a> <a href="attachment.cgi?id=12893&action=edit" title="Example input to opt that demonstrates bug">[details]</a></span>
Example input to opt that demonstrates bug

When pass loop-vectorize runs, it adds new loop metadata to indicate that the
vectorizer ran, but fails to remove the old conflicting metadata.  For example,
if you take the attached file for.ll and process it with:

    opt -S -loop-vectorize -debug-only=loop-vectorize for.ll

the output has:

    br i1 %exitcond, label %for.end, label %for.body, !llvm.loop !3
    ...
    !1 = metadata !{metadata !"llvm.loop.vectorize.width", i32 1}
    !2 = metadata !{metadata !"llvm.loop.interleave.count", i32 1}
    !3 = metadata !{metadata !3, metadata !4, metadata !1, metadata !2}
    !4 = metadata !{metadata !"llvm.loop.vectorize.width", i32 4}

Note that !3 contains two conflicting widths: a width of 1 inside !2 and a
width of 4 inside !4.  The pass should not have included !4 inside !3.

I'm using LLVM version 3.6.0svn.</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>