<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 - [LoopUnrollAndJam / LoopUnroll ] Instruction does not dominate all uses!"
   href="https://bugs.llvm.org/show_bug.cgi?id=50661">50661</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[LoopUnrollAndJam / LoopUnroll ]  Instruction does not dominate all uses!
          </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>normal
          </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>paulsson@linux.vnet.ibm.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=24938" name="attach_24938" title="reduced testcase">attachment 24938</a> <a href="attachment.cgi?id=24938&action=edit" title="reduced testcase">[details]</a></span>
reduced testcase

opt -O3 ./tc_crash0_aftercreduce.ll -march=arch13 -S -o -
-extra-vectorizer-passes -enable-unroll-and-jam -allow-unroll-and-jam
-instcombine-code-sinking=false -unroll-and-jam-count=8 -keep-loops=false

Instruction does not dominate all uses!
  %i18 = and i32 %c.promoted, 4
  %i21 = and i32 %b.promoted, %i18

*** IR Dump After LCSSAPass on f ***
; Function Attrs: nofree norecurse nosync nounwind
define dso_local void @f() local_unnamed_addr #0 {
bb:
  store i32 9, i32* @a, align 4
  %c.promoted = load i32, i32* @c, align 4
  %b.promoted = load i32, i32* @b, align 4
  br label %bb8.outer

bb8.outer:                                        ; preds = %bb14, %bb
  %i258.ph = phi i32 [ %i25, %bb14 ], [ 9, %bb ]
  %i216.ph = phi i32 [ %i21, %bb14 ], [ %b.promoted, %bb ]
  %i174.ph = phi i32 [ %i18, %bb14 ], [ %c.promoted, %bb ]
  br label %bb8

bb8:                                              ; preds = %bb8.outer, %bb8
  %i1.0 = phi i32 [ %i13, %bb8 ], [ 0, %bb8.outer ]
  %i10 = icmp ult i32 %i1.0, 2
  %i13 = add nuw nsw i32 %i1.0, 1
  br i1 %i10, label %bb8, label %bb14

bb14:                                             ; preds = %bb8
  %i18 = and i32 %i174.ph, 4
  %i21 = and i32 %i216.ph, %i18
  %i25 = add nsw i32 %i258.ph, -4
  %i6.not = icmp eq i32 %i25, 0
  br i1 %i6.not, label %bb26, label %bb8.outer

bb26:                                             ; preds = %bb14
  %i18.lcssa = phi i32 [ %i18, %bb14 ]
  %i21.lcssa = phi i32 [ %i21, %bb14 ]
  %i25.lcssa = phi i32 [ %i25, %bb14 ]
  store i32 %i18.lcssa, i32* @c, align 4
  store i32 %i21.lcssa, i32* @b, align 4
  store i32 %i25.lcssa, i32* @a, align 4
  ret void
}


*** IR Dump After LoopUnrollPass on f ***
...
bb8.outer:                                        ; preds = %bb
  %i21 = and i32 %b.promoted, %i18
  %i18 = and i32 %c.promoted, 4
...</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>