diff options
| author | Meador Inge <meadori@codesourcery.com> | 2012-11-11 03:51:48 +0000 |
|---|---|---|
| committer | Meador Inge <meadori@codesourcery.com> | 2012-11-11 03:51:48 +0000 |
| commit | 56edbc9323da26bba719f6b4060dd1c25e36d8e7 (patch) | |
| tree | e86cf0e6c912b05a95ddc2fce56fe4048cf68ea1 /llvm/test/Transforms/InstCombine/strstr-2.ll | |
| parent | 76fc1a479aff768573812d0fb2523d1c2aa4aa67 (diff) | |
| download | bcm5719-llvm-56edbc9323da26bba719f6b4060dd1c25e36d8e7.tar.gz bcm5719-llvm-56edbc9323da26bba719f6b4060dd1c25e36d8e7.zip | |
instcombine: Migrate strstr optimizations
This patch migrates the strstr optimizations from the simplify-libcalls
pass into the instcombine library call simplifier.
llvm-svn: 167682
Diffstat (limited to 'llvm/test/Transforms/InstCombine/strstr-2.ll')
| -rw-r--r-- | llvm/test/Transforms/InstCombine/strstr-2.ll | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/strstr-2.ll b/llvm/test/Transforms/InstCombine/strstr-2.ll new file mode 100644 index 00000000000..5092f9b4f80 --- /dev/null +++ b/llvm/test/Transforms/InstCombine/strstr-2.ll @@ -0,0 +1,18 @@ +; Test that the strstr library call simplifier works correctly. +; +; RUN: opt < %s -instcombine -S | FileCheck %s + +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" + +@null = private constant [1 x i8] zeroinitializer + +declare i8 @strstr(i8*, i8*) + +define i8 @test_no_simplify1(i8* %str) { +; CHECK: @test_no_simplify1 + %pat = getelementptr inbounds [1 x i8]* @null, i32 0, i32 0 + %ret = call i8 @strstr(i8* %str, i8* %pat) +; CHECK-NEXT: call i8 @strstr + ret i8 %ret +; CHECK-NEXT: ret i8 %ret +} |

