From: Reid Spencer Date: Tue, 26 Apr 2005 05:22:38 +0000 (+0000) Subject: * Add a test case for StrLenOptimization X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=8fe86dde1cab3c6fe0e0c8b9d3539d1054001368;p=oota-llvm.git * Add a test case for StrLenOptimization * Rename ExitInMain and StrCat tests so they don't have the date the regression was entered since they are feature tests, not regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21558 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Transforms/SimplifyLibCalls/2005-04-24-ExitInMain.ll b/test/Transforms/SimplifyLibCalls/2005-04-24-ExitInMain.ll deleted file mode 100644 index 29f69d198a3..00000000000 --- a/test/Transforms/SimplifyLibCalls/2005-04-24-ExitInMain.ll +++ /dev/null @@ -1,13 +0,0 @@ -; Test that the ExitInMainOptimization pass works correctly -; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep -c 'ret int 3' | grep 1 - -declare void %exit(int) -declare void %exitonly(int) - -implementation ; Functions: - -int %main () { - call void %exitonly ( int 3 ) - call void %exit ( int 3 ) - ret int 0 -} diff --git a/test/Transforms/SimplifyLibCalls/2005-04-24-strcat.ll b/test/Transforms/SimplifyLibCalls/2005-04-24-strcat.ll deleted file mode 100644 index 992837fc5cc..00000000000 --- a/test/Transforms/SimplifyLibCalls/2005-04-24-strcat.ll +++ /dev/null @@ -1,24 +0,0 @@ -; Test that the StrCatOptimizer works correctly -; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | not grep 'call.*strcat' - -declare sbyte* %strcat(sbyte*,sbyte*) -declare int %puts(sbyte*) -%hello = constant [6 x sbyte] c"hello\00" -%null = constant [1 x sbyte] c"\00" -%null_hello = constant [7 x sbyte] c"\00hello\00" - -implementation ; Functions: - -int %main () { - %target = alloca [1024 x sbyte] - %arg1 = getelementptr [1024 x sbyte]* %target, int 0, int 0 - store sbyte 0, sbyte* %arg1 - %arg2 = getelementptr [6 x sbyte]* %hello, int 0, int 0 - %rslt1 = call sbyte* %strcat(sbyte* %arg1, sbyte* %arg2) - %arg3 = getelementptr [1 x sbyte]* %null, int 0, int 0 - %rslt2 = call sbyte* %strcat(sbyte* %rslt1, sbyte* %arg3) - %arg4 = getelementptr [7 x sbyte]* %null_hello, int 0, int 0 - %rslt3 = call sbyte* %strcat(sbyte* %rslt2, sbyte* %arg4) - call int %puts(sbyte* %rslt3) - ret int 0 -} diff --git a/test/Transforms/SimplifyLibCalls/ExitInMain.ll b/test/Transforms/SimplifyLibCalls/ExitInMain.ll new file mode 100644 index 00000000000..29f69d198a3 --- /dev/null +++ b/test/Transforms/SimplifyLibCalls/ExitInMain.ll @@ -0,0 +1,13 @@ +; Test that the ExitInMainOptimization pass works correctly +; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | grep -c 'ret int 3' | grep 1 + +declare void %exit(int) +declare void %exitonly(int) + +implementation ; Functions: + +int %main () { + call void %exitonly ( int 3 ) + call void %exit ( int 3 ) + ret int 0 +} diff --git a/test/Transforms/SimplifyLibCalls/StrCat.ll b/test/Transforms/SimplifyLibCalls/StrCat.ll new file mode 100644 index 00000000000..992837fc5cc --- /dev/null +++ b/test/Transforms/SimplifyLibCalls/StrCat.ll @@ -0,0 +1,24 @@ +; Test that the StrCatOptimizer works correctly +; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | not grep 'call.*strcat' + +declare sbyte* %strcat(sbyte*,sbyte*) +declare int %puts(sbyte*) +%hello = constant [6 x sbyte] c"hello\00" +%null = constant [1 x sbyte] c"\00" +%null_hello = constant [7 x sbyte] c"\00hello\00" + +implementation ; Functions: + +int %main () { + %target = alloca [1024 x sbyte] + %arg1 = getelementptr [1024 x sbyte]* %target, int 0, int 0 + store sbyte 0, sbyte* %arg1 + %arg2 = getelementptr [6 x sbyte]* %hello, int 0, int 0 + %rslt1 = call sbyte* %strcat(sbyte* %arg1, sbyte* %arg2) + %arg3 = getelementptr [1 x sbyte]* %null, int 0, int 0 + %rslt2 = call sbyte* %strcat(sbyte* %rslt1, sbyte* %arg3) + %arg4 = getelementptr [7 x sbyte]* %null_hello, int 0, int 0 + %rslt3 = call sbyte* %strcat(sbyte* %rslt2, sbyte* %arg4) + call int %puts(sbyte* %rslt3) + ret int 0 +} diff --git a/test/Transforms/SimplifyLibCalls/StrLen.ll b/test/Transforms/SimplifyLibCalls/StrLen.ll new file mode 100644 index 00000000000..0e1750162f9 --- /dev/null +++ b/test/Transforms/SimplifyLibCalls/StrLen.ll @@ -0,0 +1,21 @@ +; Test that the StrCatOptimizer works correctly +; RUN: llvm-as < %s | opt -simplify-libcalls | llvm-dis | not grep 'call.*strlen' + +declare int %strlen(sbyte*) +%hello = constant [6 x sbyte] c"hello\00" +%null = constant [1 x sbyte] c"\00" +%null_hello = constant [7 x sbyte] c"\00hello\00" + +implementation ; Functions: + +int %main () { + %hello_p = getelementptr [6 x sbyte]* %hello, int 0, int 0 + %hello_l = call int %strlen(sbyte* %hello_p) + %null_p = getelementptr [1 x sbyte]* %null, int 0, int 0 + %null_l = call int %strlen(sbyte* %null_p) + %null_hello_p = getelementptr [7 x sbyte]* %null_hello, int 0, int 0 + %null_hello_l = call int %strlen(sbyte* %null_hello_p) + %sum1 = add int %hello_l, %null_l + %sum2 = add int %sum1, %null_hello_l + ret int %sum2 +}