[SCCP] Add a test for switches on undef.

Without this test, you can just remove the code fixing the
switch to the first constant in ResolvedUndefs in and everything
pass. This test, instead, fails with an assertion if the code
is removed. Found while refactoring SCCP to integrate undef in
the solver.

llvm-svn: 287731
This commit is contained in:
Davide Italiano 2016-11-23 01:42:39 +00:00
parent fd265a1f30
commit f6fbe21bef
1 changed files with 27 additions and 0 deletions

View File

@ -0,0 +1,27 @@
; RUN: opt -S -ipsccp < %s | FileCheck %s
declare void @foo()
declare void @goo()
declare void @patatino()
define void @test1(i32 %t) {
%choice = icmp eq i32 undef, -1
switch i1 %choice, label %first [i1 0, label %second
i1 1, label %third]
first:
call void @foo()
ret void
second:
call void @goo()
ret void
third:
call void @patatino()
ret void
}
; CHECK: define void @test1(i32 %t) {
; CHECK-NEXT: br label %second
; CHECK: second:
; CHECK-NEXT: call void @goo()
; CHECK-NEXT: ret void
; CHECK-NEXT: }