[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