mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 20:51:52 +01:00
9d51dd7fc8
It's more aggressive than we need to be, and leads to strange workarounds in other places like call return value inference. Instead, just directly mark an edge viable. Tests by Florian Hahn. Differential Revision: https://reviews.llvm.org/D49408 llvm-svn: 337507
42 lines
882 B
LLVM
42 lines
882 B
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
|
; RUN: opt < %s -S -ipsccp | FileCheck %s
|
|
target triple = "x86_64-unknown-linux-gnu"
|
|
|
|
define void @test() {
|
|
; CHECK-LABEL: @test(
|
|
; CHECK-NEXT: entry:
|
|
; CHECK-NEXT: br label %Flow5.pre
|
|
; CHECK: Flow6:
|
|
; CHECK-NEXT: br i1 undef, label %end1, label %end2
|
|
; CHECK: Flow5.pre:
|
|
; CHECK-NEXT: br label %Flow5
|
|
; CHECK: Flow5:
|
|
; CHECK-NEXT: br label %Flow6
|
|
; CHECK: end1:
|
|
; CHECK-NEXT: unreachable
|
|
; CHECK: end2:
|
|
; CHECK-NEXT: unreachable
|
|
;
|
|
entry:
|
|
br i1 true, label %Flow5.pre, label %Flow5.pre.unreachable
|
|
|
|
Flow5.pre.unreachable:
|
|
br label %Flow5
|
|
|
|
Flow6:
|
|
br i1 %0, label %end1, label %end2
|
|
|
|
Flow5.pre:
|
|
br label %Flow5
|
|
|
|
Flow5:
|
|
%0 = phi i1 [ undef, %Flow5.pre ], [ false, %Flow5.pre.unreachable ]
|
|
br label %Flow6
|
|
|
|
end1:
|
|
unreachable
|
|
|
|
end2:
|
|
unreachable
|
|
}
|