summaryrefslogtreecommitdiff
path: root/test/Transforms/InstCombine/memmove_chk-2.ll
diff options
context:
space:
mode:
authorMeador Inge <meadori@codesourcery.com>2012-09-27 21:21:25 +0000
committerMeador Inge <meadori@codesourcery.com>2012-09-27 21:21:25 +0000
commitc8613c9089b064652a508041db9ce56fb275e94c (patch)
treebbc0fa0e5948a14544ebc4228f1d95ecf5465259 /test/Transforms/InstCombine/memmove_chk-2.ll
parent012ffd251b5e5a00d3be91044780b4b435e91dd5 (diff)
downloadllvm-c8613c9089b064652a508041db9ce56fb275e94c.tar.gz
llvm-c8613c9089b064652a508041db9ce56fb275e94c.tar.bz2
llvm-c8613c9089b064652a508041db9ce56fb275e94c.tar.xz
instcombine: Add more test cases for __memmove_chk simplification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164798 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/InstCombine/memmove_chk-2.ll')
-rw-r--r--test/Transforms/InstCombine/memmove_chk-2.ll24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/Transforms/InstCombine/memmove_chk-2.ll b/test/Transforms/InstCombine/memmove_chk-2.ll
new file mode 100644
index 0000000000..f0a915fde2
--- /dev/null
+++ b/test/Transforms/InstCombine/memmove_chk-2.ll
@@ -0,0 +1,24 @@
+; Test that lib call simplification doesn't simplify __memmove_chk calls
+; with the wrong prototype.
+;
+; 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"
+
+%struct.T1 = type { [100 x i32], [100 x i32], [1024 x i8] }
+%struct.T2 = type { [100 x i32], [100 x i32], [1024 x i8] }
+
+@t1 = common global %struct.T1 zeroinitializer
+@t2 = common global %struct.T2 zeroinitializer
+
+define void @test_no_simplify() {
+; CHECK: @test_no_simplify
+ %dst = bitcast %struct.T1* @t1 to i8*
+ %src = bitcast %struct.T2* @t2 to i8*
+
+; CHECK-NEXT: call i8* @__memmove_chk
+ call i8* @__memmove_chk(i8* %dst, i8* %src, i64 1824)
+ ret void
+}
+
+declare i8* @__memmove_chk(i8*, i8*, i64)