Dmitri Gribenko | b137c9e | 2012-12-30 01:28:40 +0000 | [diff] [blame] | 1 | ; RUN: opt -instcombine -S < %s | FileCheck %s |
Nick Lewycky | aee2632 | 2010-05-31 06:16:35 +0000 | [diff] [blame] | 2 | ; PR7265 |
| 3 | |
| 4 | 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" |
| 5 | target triple = "x86_64-unknown-linux-gnu" |
| 6 | |
| 7 | %union.anon = type { i32, [4 x i8] } |
| 8 | |
Meador Inge | 25c9b3b | 2012-11-27 05:57:54 +0000 | [diff] [blame] | 9 | @.str = private constant [3 x i8] c"%s\00" |
Nick Lewycky | aee2632 | 2010-05-31 06:16:35 +0000 | [diff] [blame] | 10 | |
| 11 | define void @CopyEventArg(%union.anon* %ev) nounwind { |
| 12 | entry: |
Meador Inge | 25c9b3b | 2012-11-27 05:57:54 +0000 | [diff] [blame] | 13 | %call = call i32 (i8*, i8*, ...)* @sprintf(i8* undef, i8* getelementptr inbounds ([3 x i8]* @.str, i64 0, i64 0), %union.anon* %ev) nounwind |
Nick Lewycky | aee2632 | 2010-05-31 06:16:35 +0000 | [diff] [blame] | 14 | ; CHECK: bitcast %union.anon* %ev to i8* |
| 15 | ; CHECK: call void @llvm.memcpy.p0i8.p0i8.i64 |
| 16 | ret void |
| 17 | } |
| 18 | |
| 19 | declare i32 @sprintf(i8*, i8*, ...) |
| 20 | |