summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2010-06-15 21:34:25 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2010-06-15 21:34:25 +0000
commit1118860e3ab7d037608d9b9e70d9c30427d3acd1 (patch)
tree77e8027c73ab750df1d4564b3fa16e57ac48fb17 /llvm/test
parente166ecadad746eb7ef63e545ab2d796d1f3e0c00 (diff)
downloadbcm5719-llvm-1118860e3ab7d037608d9b9e70d9c30427d3acd1.tar.gz
bcm5719-llvm-1118860e3ab7d037608d9b9e70d9c30427d3acd1.zip
simplify-libcalls: fold strstr(a, b) == a -> strncmp(a, b, strlen(b)) == 0
llvm-svn: 106047
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Transforms/SimplifyLibCalls/StrStr.ll12
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/test/Transforms/SimplifyLibCalls/StrStr.ll b/llvm/test/Transforms/SimplifyLibCalls/StrStr.ll
index 2cac2d498ce..eefd2e8006a 100644
--- a/llvm/test/Transforms/SimplifyLibCalls/StrStr.ll
+++ b/llvm/test/Transforms/SimplifyLibCalls/StrStr.ll
@@ -46,3 +46,15 @@ entry:
; CHECK: @test4
; CHECK: ret i8* %P
}
+
+define i1 @test5(i8* %P, i8* %Q) nounwind readonly {
+entry:
+ %call = tail call i8* @strstr(i8* %P, i8* %Q) nounwind ; <i8*> [#uses=1]
+ %cmp = icmp eq i8* %call, %P
+ ret i1 %cmp
+; CHECK: @test5
+; CHECK: [[LEN:%[a-z]+]] = call {{i[0-9]+}} @strlen(i8* %Q)
+; CHECK: [[NCMP:%[a-z]+]] = call {{i[0-9]+}} @strncmp(i8* %P, i8* %Q, {{i[0-9]+}} [[LEN]])
+; CHECK: icmp eq {{i[0-9]+}} [[NCMP]], 0
+; CHECK: ret i1
+}
OpenPOWER on IntegriCloud