llvm-project/llvm/test/Transforms/SCCP/ipsccp-phi-one-pred-dead.ll
Nikita Popov 9b994593cc [SCCP] Only handle unknown lattice values in resolvedUndefsIn()
This is a minor refinement of resolvedUndefsIn(), mostly for clarity.
If the value of an instruction is undef, then that's already a legal
final result -- we can safely rauw such an instruction with undef.
We only need to mark unknown values as overdefined, as that's the
result we get for an instruction that has not been processed because
it has an undef operand.

Differential Revision: https://reviews.llvm.org/D128251
2022-07-01 09:14:37 +02:00

38 lines
784 B
LLVM

; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -S -passes=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: unreachable
; CHECK: Flow5.pre:
; CHECK-NEXT: br label [[FLOW5:%.*]]
; CHECK: Flow5:
; CHECK-NEXT: br label [[FLOW6:%.*]]
;
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
}