
Stop using tests with grep, or no output checks at all. Just use FileCheck and generate checks. Also remove unnecessary requires asserts.
39 lines
1.1 KiB
LLVM
39 lines
1.1 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
|
; RUN: opt -S -passes=jump-threading < %s | FileCheck %s
|
|
; PR9112
|
|
|
|
; This is actually a test for value tracking. Jump threading produces
|
|
; "%phi = phi i16" when it removes all edges leading to %unreachable.
|
|
; The .ll parser won't let us write that directly since it's invalid code.
|
|
|
|
define void @func() nounwind {
|
|
; CHECK-LABEL: @func(
|
|
; CHECK-NEXT: entry:
|
|
; CHECK-NEXT: br label [[BB:%.*]]
|
|
; CHECK: bb:
|
|
; CHECK-NEXT: br label [[BB]]
|
|
; CHECK: unreachable:
|
|
; CHECK-NEXT: [[PHI:%.*]] = phi i16 [ [[ADD:%.*]], [[UNREACHABLE:%.*]] ], [ 0, [[NEXT:%.*]] ]
|
|
; CHECK-NEXT: [[ADD]] = add i16 0, [[PHI]]
|
|
; CHECK-NEXT: [[CMP:%.*]] = icmp slt i16 [[PHI]], 0
|
|
; CHECK-NEXT: br i1 [[CMP]], label [[UNREACHABLE]], label [[NEXT]]
|
|
; CHECK: next:
|
|
; CHECK-NEXT: br label [[UNREACHABLE]]
|
|
;
|
|
entry:
|
|
br label %bb
|
|
|
|
bb:
|
|
br label %bb
|
|
|
|
unreachable:
|
|
%phi = phi i16 [ %add, %unreachable ], [ 0, %next ]
|
|
%add = add i16 0, %phi
|
|
%cmp = icmp slt i16 %phi, 0
|
|
br i1 %cmp, label %unreachable, label %next
|
|
|
|
next:
|
|
br label %unreachable
|
|
}
|
|
|