diff options
| author | Benjamin Kramer <benny.kra@googlemail.com> | 2010-06-15 21:34:25 +0000 |
|---|---|---|
| committer | Benjamin Kramer <benny.kra@googlemail.com> | 2010-06-15 21:34:25 +0000 |
| commit | 1118860e3ab7d037608d9b9e70d9c30427d3acd1 (patch) | |
| tree | 77e8027c73ab750df1d4564b3fa16e57ac48fb17 /llvm/test | |
| parent | e166ecadad746eb7ef63e545ab2d796d1f3e0c00 (diff) | |
| download | bcm5719-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.ll | 12 |
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 +} |

