[llvm-commits] CVS: llvm/test/Transforms/SimplifyLibCalls/2007-04-06-strchr-miscompile.ll

Chris Lattner sabre at nondot.org
Fri Apr 6 16:37:16 PDT 2007



Changes in directory llvm/test/Transforms/SimplifyLibCalls:

2007-04-06-strchr-miscompile.ll added (r1.1)
---
Log message:

testcase for PR1307: http://llvm.org/PR1307 


---
Diffs of the changes:  (+28 -0)

 2007-04-06-strchr-miscompile.ll |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+)


Index: llvm/test/Transforms/SimplifyLibCalls/2007-04-06-strchr-miscompile.ll
diff -c /dev/null llvm/test/Transforms/SimplifyLibCalls/2007-04-06-strchr-miscompile.ll:1.1
*** /dev/null	Fri Apr  6 18:37:09 2007
--- llvm/test/Transforms/SimplifyLibCalls/2007-04-06-strchr-miscompile.ll	Fri Apr  6 18:36:59 2007
***************
*** 0 ****
--- 1,28 ----
+ ; RUN: llvm-as < %s | opt -simplify-libcalls -instcombine | llvm-dis > %t &&
+ ; RUN: grep '@str,.*i64 3' %t && 
+ ; RUN: grep '@str1,.*i64 7' %t &&
+ ; RUN: grep 'ret i8.*null' %t
+ ; PR1307
+ 
+ @str = internal constant [5 x i8] c"foog\00"
+ @str1 = internal constant [8 x i8] c"blahhh!\00"
+ @str2 = internal constant [5 x i8] c"Ponk\00"
+ 
+ define i8* @test1() {
+         %tmp3 = tail call i8* @strchr( i8* getelementptr ([5 x i8]* @str, i32 0, i32 2), i32 103 )              ; <i8*> [#uses=1]
+         ret i8* %tmp3
+ }
+ 
+ declare i8* @strchr(i8*, i32)
+ 
+ define i8* @test2() {
+         %tmp3 = tail call i8* @strchr( i8* getelementptr ([8 x i8]* @str1, i32 0, i32 2), i32 0 )               ; <i8*> [#uses=1]
+         ret i8* %tmp3
+ }
+ 
+ define i8* @test3() {
+ entry:
+         %tmp3 = tail call i8* @strchr( i8* getelementptr ([5 x i8]* @str2, i32 0, i32 1), i32 80 )              ; <i8*> [#uses=1]
+         ret i8* %tmp3
+ }
+ 






More information about the llvm-commits mailing list