From f2ff439c4b3e3667c7e8779e3162331498d057c3 Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Sat, 7 May 2005 20:21:04 +0000 Subject: [PATCH] * Break tests into individual cases so its easier to see what's going on. * Add four new cases to handle the new optimizations for strlen, dealing with: strlen(x) != 0 -> *x != 0 strlen(x) == 0 -> *x == 0 for each of two cases: strlen(x) != 0 and strlen(x) == 0 llvm-svn: 21767 --- .../Transforms/SimplifyLibCalls/StrLen.ll | 51 +++++++++++++++---- 1 file changed, 42 insertions(+), 9 deletions(-) diff --git a/llvm/test/Regression/Transforms/SimplifyLibCalls/StrLen.ll b/llvm/test/Regression/Transforms/SimplifyLibCalls/StrLen.ll index 48f8bfdcf3c8..8e5962a10a4f 100644 --- a/llvm/test/Regression/Transforms/SimplifyLibCalls/StrLen.ll +++ b/llvm/test/Regression/Transforms/SimplifyLibCalls/StrLen.ll @@ -8,15 +8,48 @@ declare uint %strlen(sbyte*) implementation ; Functions: -int %main () { +uint %test1() { %hello_p = getelementptr [6 x sbyte]* %hello, int 0, int 0 - %null_p = getelementptr [1 x sbyte]* %null, int 0, int 0 - %null_hello_p = getelementptr [7 x sbyte]* %null_hello, int 0, int 0 %hello_l = call uint %strlen(sbyte* %hello_p) - %null_l = call uint %strlen(sbyte* %null_p) - %null_hello_l = call uint %strlen(sbyte* %null_hello_p) - %sum1 = add uint %hello_l, %null_l - %sum2 = add uint %sum1, %null_hello_l - %result = cast uint %sum2 to int - ret int %result + ret uint %hello_l +} + +uint %test2() { + %null_p = getelementptr [1 x sbyte]* %null, int 0, int 0 + %null_l = call uint %strlen(sbyte* %null_p) + ret uint %null_l +} + +uint %test3() { + %null_hello_p = getelementptr [7 x sbyte]* %null_hello, int 0, int 0 + %null_hello_l = call uint %strlen(sbyte* %null_hello_p) + ret uint %null_hello_l +} + +bool %test4() { + %hello_p = getelementptr [6 x sbyte]* %hello, int 0, int 0 + %hello_l = call uint %strlen(sbyte* %hello_p) + %eq_hello = seteq uint %hello_l, 0 + ret bool %eq_hello +} + +bool %test5() { + %null_p = getelementptr [1 x sbyte]* %null, int 0, int 0 + %null_l = call uint %strlen(sbyte* %null_p) + %eq_null = seteq uint %null_l, 0 + ret bool %eq_null +} + +bool %test6() { + %hello_p = getelementptr [6 x sbyte]* %hello, int 0, int 0 + %hello_l = call uint %strlen(sbyte* %hello_p) + %ne_hello = setne uint %hello_l, 0 + ret bool %ne_hello +} + +bool %test7() { + %null_p = getelementptr [1 x sbyte]* %null, int 0, int 0 + %null_l = call uint %strlen(sbyte* %null_p) + %ne_null = setne uint %null_l, 0 + ret bool %ne_null }