From 386e918438b72620e7c00ee1197bf6940bfe6cf8 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Tue, 15 Jun 2010 21:34:25 +0000 Subject: simplify-libcalls: fold strstr(a, b) == a -> strncmp(a, b, strlen(b)) == 0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106047 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/SimplifyLibCalls/StrStr.ll | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'test') diff --git a/test/Transforms/SimplifyLibCalls/StrStr.ll b/test/Transforms/SimplifyLibCalls/StrStr.ll index 2cac2d4..eefd2e8 100644 --- a/test/Transforms/SimplifyLibCalls/StrStr.ll +++ b/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 ; [#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 +} -- cgit v1.1