[llvm-bugs] [Bug 52515] New: Loop Vectorizer triggers an assert "IsOrdered requires IsInLoop"

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Nov 15 18:49:34 PST 2021


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

            Bug ID: 52515
           Summary: Loop Vectorizer triggers an assert "IsOrdered requires
                    IsInLoop"
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Loop Optimizer
          Assignee: unassignedbugs at nondot.org
          Reporter: serguei.katkov at azul.com
                CC: llvm-bugs at lists.llvm.org

For the following reduced test case
===============================================
; ModuleID = 'bad.ll'
source_filename = "bad.ll"
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
target triple = "aarch64-none-linux-gnu"

define float @wombat() {
bb:
  br label %bb1

bb1:                                              ; preds = %bb9, %bb
  %tmp = phi i64 [ 0, %bb ], [ %tmp10, %bb9 ]
  %tmp2 = phi float [ 0.000000e+00, %bb ], [ %tmp4, %bb9 ]
  %tmp3 = phi i64 [ 0, %bb ], [ %tmp5, %bb9 ]
  %tmp4 = fadd float %tmp2, 1.000000e+00
  %tmp5 = add nsw i64 %tmp3, 1
  %tmp6 = icmp ult i64 %tmp, 65536
  br i1 %tmp6, label %bb9, label %bb7

bb7:                                              ; preds = %bb1
  %tmp8 = phi float [ %tmp4, %bb1 ]
  ret float %tmp8

bb9:                                              ; preds = %bb1
  %tmp10 = add nuw nsw i64 %tmp, 1
  br i1 false, label %bb11, label %bb1

bb11:                                             ; preds = %bb9
  %tmp12 = phi float [ %tmp4, %bb9 ]
  ret float %tmp12
}

!0 = !{!"function_entry_count", i64 32768}
===============================================
the following assert is triggered.

===============================================
> opt  -passes=loop-vectorize -S bad.ll
opt:
/localhome/skatkov/work/llvm/src/llvm/lib/Transforms/Vectorize/VPlan.h:1186:
llvm::VPReductionPHIRecipe::VPReductionPHIRecipe(llvm::PHINode*,
llvm::RecurrenceDescriptor&, llvm::VPValue&, bool, bool): Assertion
`(!IsOrdered || IsInLoop) && "IsOrdered requires IsInLoop"' failed.
===============================================
The current processing phi node is

%tmp2 = phi float [ 0.000000e+00, %bb ], [ %tmp4, %bb9 ]

-- 
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/20211116/f72e49c0/attachment.html>


More information about the llvm-bugs mailing list