diff options
author | Meador Inge <meadori@codesourcery.com> | 2012-11-11 05:11:20 +0000 |
---|---|---|
committer | Meador Inge <meadori@codesourcery.com> | 2012-11-11 05:11:20 +0000 |
commit | 4d2827c10d55cca27a254e9c744047873f3ee539 (patch) | |
tree | daf2b11f5f8996e178ff7b72fd0b4b034f9ea52e /llvm/test/Transforms/InstCombine/memcmp-2.ll | |
parent | 56edbc9323da26bba719f6b4060dd1c25e36d8e7 (diff) | |
download | bcm5719-llvm-4d2827c10d55cca27a254e9c744047873f3ee539.tar.gz bcm5719-llvm-4d2827c10d55cca27a254e9c744047873f3ee539.zip |
instcombine: Migrate memcmp optimizations
This patch migrates the memcmp optimizations from the simplify-libcalls
pass into the instcombine library call simplifier.
llvm-svn: 167683
Diffstat (limited to 'llvm/test/Transforms/InstCombine/memcmp-2.ll')
-rw-r--r-- | llvm/test/Transforms/InstCombine/memcmp-2.ll | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/memcmp-2.ll b/llvm/test/Transforms/InstCombine/memcmp-2.ll new file mode 100644 index 00000000000..3796117bc24 --- /dev/null +++ b/llvm/test/Transforms/InstCombine/memcmp-2.ll @@ -0,0 +1,17 @@ +; Test that the memcmp library call simplifier works correctly. +; +; RUN: opt < %s -instcombine -S | FileCheck %s + +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" + +declare i32* @memcmp(i8*, i8*, i32) + +; Check that memcmp functions with the wrong prototype aren't simplified. + +define i32* @test_no_simplify1(i8* %mem, i32 %size) { +; CHECK: @test_no_simplify1 + %ret = call i32* @memcmp(i8* %mem, i8* %mem, i32 %size) +; CHECK-NEXT: call i32* @memcmp + ret i32* %ret +; CHECK-NEXT: ret i32* %ret +} |