diff options
author | Meador Inge <meadori@codesourcery.com> | 2012-10-31 03:33:00 +0000 |
---|---|---|
committer | Meador Inge <meadori@codesourcery.com> | 2012-10-31 03:33:00 +0000 |
commit | a0885fb8825ed362041b5cf291a007a9f9301ff8 (patch) | |
tree | 43c9bc8a05a51d1c756183727de3de7a5f0d1a65 /test/Transforms/InstCombine/strncpy_chk-1.ll | |
parent | 5b2c4dc5f8f70352f029d595797089821eb39b3c (diff) | |
download | llvm-a0885fb8825ed362041b5cf291a007a9f9301ff8.tar.gz llvm-a0885fb8825ed362041b5cf291a007a9f9301ff8.tar.bz2 llvm-a0885fb8825ed362041b5cf291a007a9f9301ff8.tar.xz |
instcombine: Migrate strncpy optimizations
This patch migrates the strncpy optimizations from the simplify-libcalls
pass into the instcombine library call simplifier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167102 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/InstCombine/strncpy_chk-1.ll')
-rw-r--r-- | test/Transforms/InstCombine/strncpy_chk-1.ll | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/test/Transforms/InstCombine/strncpy_chk-1.ll b/test/Transforms/InstCombine/strncpy_chk-1.ll index ae7e2fb5f1..aadff4268e 100644 --- a/test/Transforms/InstCombine/strncpy_chk-1.ll +++ b/test/Transforms/InstCombine/strncpy_chk-1.ll @@ -7,27 +7,27 @@ target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f3 @a = common global [60 x i8] zeroinitializer, align 1 @b = common global [60 x i8] zeroinitializer, align 1 -@.str = private constant [8 x i8] c"abcdefg\00" +@.str = private constant [12 x i8] c"abcdefghijk\00" ; Check cases where dstlen >= len define void @test_simplify1() { ; CHECK: @test_simplify1 %dst = getelementptr inbounds [60 x i8]* @a, i32 0, i32 0 - %src = getelementptr inbounds [8 x i8]* @.str, i32 0, i32 0 + %src = getelementptr inbounds [12 x i8]* @.str, i32 0, i32 0 -; CHECK-NEXT: call i8* @strncpy - call i8* @__strncpy_chk(i8* %dst, i8* %src, i32 8, i32 60) +; CHECK-NEXT: call void @llvm.memcpy.p0i8.p0i8.i32 + call i8* @__strncpy_chk(i8* %dst, i8* %src, i32 12, i32 60) ret void } define void @test_simplify2() { ; CHECK: @test_simplify2 %dst = getelementptr inbounds [60 x i8]* @a, i32 0, i32 0 - %src = getelementptr inbounds [8 x i8]* @.str, i32 0, i32 0 + %src = getelementptr inbounds [12 x i8]* @.str, i32 0, i32 0 -; CHECK-NEXT: call i8* @strncpy - call i8* @__strncpy_chk(i8* %dst, i8* %src, i32 8, i32 8) +; CHECK-NEXT: call void @llvm.memcpy.p0i8.p0i8.i32 + call i8* @__strncpy_chk(i8* %dst, i8* %src, i32 12, i32 12) ret void } @@ -37,7 +37,7 @@ define void @test_simplify3() { %src = getelementptr inbounds [60 x i8]* @b, i32 0, i32 0 ; CHECK-NEXT: call i8* @strncpy - call i8* @__strncpy_chk(i8* %dst, i8* %src, i32 8, i32 60) + call i8* @__strncpy_chk(i8* %dst, i8* %src, i32 12, i32 60) ret void } @@ -46,7 +46,7 @@ define void @test_simplify3() { define void @test_no_simplify1() { ; CHECK: @test_no_simplify1 %dst = getelementptr inbounds [60 x i8]* @a, i32 0, i32 0 - %src = getelementptr inbounds [8 x i8]* @.str, i32 0, i32 0 + %src = getelementptr inbounds [12 x i8]* @.str, i32 0, i32 0 ; CHECK-NEXT: call i8* @__strncpy_chk call i8* @__strncpy_chk(i8* %dst, i8* %src, i32 8, i32 4) |