Meador Inge | 058e29c | 2012-09-27 21:21:25 +0000 | [diff] [blame] | 1 | ; Test that lib call simplification doesn't simplify __memmove_chk calls |
| 2 | ; with the wrong prototype. |
| 3 | ; |
| 4 | ; RUN: opt < %s -instcombine -S | FileCheck %s |
| 5 | |
| 6 | 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" |
| 7 | |
| 8 | %struct.T1 = type { [100 x i32], [100 x i32], [1024 x i8] } |
| 9 | %struct.T2 = type { [100 x i32], [100 x i32], [1024 x i8] } |
| 10 | |
| 11 | @t1 = common global %struct.T1 zeroinitializer |
| 12 | @t2 = common global %struct.T2 zeroinitializer |
| 13 | |
| 14 | define void @test_no_simplify() { |
Stephen Lin | c1c7a13 | 2013-07-14 01:42:54 +0000 | [diff] [blame] | 15 | ; CHECK-LABEL: @test_no_simplify( |
Meador Inge | 058e29c | 2012-09-27 21:21:25 +0000 | [diff] [blame] | 16 | %dst = bitcast %struct.T1* @t1 to i8* |
| 17 | %src = bitcast %struct.T2* @t2 to i8* |
| 18 | |
| 19 | ; CHECK-NEXT: call i8* @__memmove_chk |
| 20 | call i8* @__memmove_chk(i8* %dst, i8* %src, i64 1824) |
| 21 | ret void |
| 22 | } |
| 23 | |
| 24 | declare i8* @__memmove_chk(i8*, i8*, i64) |