1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/Transforms/LICM/2007-09-24-PromoteNullValue.ll
Dan Gohman 205b641954 Change tests from "opt %s" to "opt < %s" so that opt doesn't see the
input filename so that opt doesn't print the input filename in the
output so that grep lines in the tests don't unintentionally match
strings in the input filename.

llvm-svn: 81537
2009-09-11 18:01:28 +00:00

47 lines
1.0 KiB
LLVM

; Do not promote null value because it may be unsafe to do so.
; RUN: opt < %s -licm -S | not grep promoted
define i32 @f(i32 %foo, i32 %bar, i32 %com) {
entry:
%tmp2 = icmp eq i32 %foo, 0 ; <i1> [#uses=1]
br i1 %tmp2, label %cond_next, label %cond_true
cond_true: ; preds = %entry
br label %return
cond_next: ; preds = %entry
br label %bb
bb: ; preds = %bb15, %cond_next
switch i32 %bar, label %bb15 [
i32 1, label %bb6
]
bb6: ; preds = %bb
%tmp8 = icmp eq i32 %com, 0 ; <i1> [#uses=1]
br i1 %tmp8, label %cond_next14, label %cond_true11
cond_true11: ; preds = %bb6
br label %return
cond_next14: ; preds = %bb6
store i8 0, i8* null
br label %bb15
bb15: ; preds = %cond_next14, %bb
br label %bb
return: ; preds = %cond_true11, %cond_true
%storemerge = phi i32 [ 0, %cond_true ], [ undef, %cond_true11 ] ; <i32> [#uses=1]
ret i32 %storemerge
}
define i32 @kdMain() {
entry:
%tmp1 = call i32 @f( i32 0, i32 1, i32 1 ) ; <i32> [#uses=0]
call void @exit( i32 0 )
unreachable
}
declare void @exit(i32)