As mentioned in http://lists.llvm.org/pipermail/llvm-dev/2020-July/143395.html, loop-unswitch has not been ported to the NPM. Instead people are using simple-loop-unswitch. Pin all tests in Transforms/LoopUnswitch to legacy PM and replace all other uses of loop-unswitch with simple-loop-unswitch. One test that didn't fit into the above was 2014-06-21-congruent-constant.ll which seems to only pass with loop-unswitch. That is also pinned to legacy PM. Now all tests containing "-loop-unswitch" anywhere in the test succeed with NPM turned on by default. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D85360
43 lines
1.5 KiB
LLVM
43 lines
1.5 KiB
LLVM
; RUN: opt < %s -S -loop-unswitch -enable-new-pm=0 -verify-loop-info -verify-dom-info | FileCheck %s
|
|
; RUN: opt < %s -S -loop-unswitch -enable-new-pm=0 -verify-loop-info -verify-dom-info -enable-mssa-loop-dependency=true -verify-memoryssa | FileCheck %s
|
|
; PR12343: -loop-unswitch -enable-new-pm=0 crash on indirect branch
|
|
|
|
; CHECK: %0 = icmp eq i64 undef, 0
|
|
; CHECK-NEXT: br i1 %0, label %"5", label %"4"
|
|
|
|
; CHECK: "5": ; preds = %entry
|
|
; CHECK-NEXT: br label %"16"
|
|
|
|
; CHECK: "16": ; preds = %"22", %"5"
|
|
; CHECK-NEXT: indirectbr i8* undef, [label %"22", label %"33"]
|
|
|
|
; CHECK: "22": ; preds = %"16"
|
|
; CHECK-NEXT: br i1 %0, label %"16", label %"26"
|
|
|
|
; CHECK: "26": ; preds = %"22"
|
|
; CHECK-NEXT: unreachable
|
|
|
|
define void @foo() {
|
|
entry:
|
|
%0 = icmp eq i64 undef, 0
|
|
br i1 %0, label %"5", label %"4"
|
|
|
|
"4": ; preds = %entry
|
|
unreachable
|
|
|
|
"5": ; preds = %entry
|
|
br label %"16"
|
|
|
|
"16": ; preds = %"22", %"5"
|
|
indirectbr i8* undef, [label %"22", label %"33"]
|
|
|
|
"22": ; preds = %"16"
|
|
br i1 %0, label %"16", label %"26"
|
|
|
|
"26": ; preds = %"22"
|
|
unreachable
|
|
|
|
"33": ; preds = %"16"
|
|
unreachable
|
|
}
|