mirror of
https://github.com/intel/llvm.git
synced 2026-02-07 16:11:27 +08:00
[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:
27
llvm/test/Transforms/SCCP/switch-multiple-undef.ll
Normal file
27
llvm/test/Transforms/SCCP/switch-multiple-undef.ll
Normal 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: }
|
||||
Reference in New Issue
Block a user