1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00
llvm-mirror/test/Transforms/SCCP/ipsccp-phi-one-pred-dead.ll
Eli Friedman 9d51dd7fc8 [SCCP] Don't use markForcedConstant on branch conditions.
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
2018-07-19 23:02:07 +00:00

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
}