New testcases to test LICM of call instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12414 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2004-03-15 04:10:08 +00:00
parent 5b5f7c11d0
commit 65a88e83e3
2 changed files with 30 additions and 0 deletions

View File

@ -0,0 +1,16 @@
; RUN: llvm-as < %s | opt -basicaa -licm | llvm-dis | grep -C1 sin | grep Out:
declare double %sin(double)
declare void %foo()
double %test(double %X) {
br label %Loop
Loop:
call void %foo() ;; Unknown effects!
%A = call double %sin(double %X) ;; Can still hoist/sink call
br bool true, label %Loop, label %Out
Out:
ret double %A
}

View File

@ -0,0 +1,14 @@
; RUN: llvm-as < %s | opt -basicaa -licm | llvm-dis | grep -C1 strlen | grep Out:
declare int %strlen(sbyte*)
declare void %foo()
int %test(sbyte* %P) {
br label %Loop
Loop:
%A = call int %strlen(sbyte* %P) ;; Can hoist/sink call
br bool false, label %Loop, label %Out
Out:
ret int %A
}