[llvm-bugs] [Bug 50661] New: [LoopUnrollAndJam / LoopUnroll ] Instruction does not dominate all uses!

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Jun 10 09:36:43 PDT 2021


https://bugs.llvm.org/show_bug.cgi?id=50661

            Bug ID: 50661
           Summary: [LoopUnrollAndJam / LoopUnroll ]  Instruction does not
                    dominate all uses!
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Loop Optimizer
          Assignee: unassignedbugs at nondot.org
          Reporter: paulsson at linux.vnet.ibm.com
                CC: llvm-bugs at lists.llvm.org

Created attachment 24938
  --> https://bugs.llvm.org/attachment.cgi?id=24938&action=edit
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
...

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20210610/a2b61df9/attachment.html>


More information about the llvm-bugs mailing list