Make opt default to not adding a target data string and update tests that depend...
[oota-llvm.git] / test / Transforms / MemCpyOpt / 2008-03-13-ReturnSlotBitcast.ll
1 ; RUN: opt < %s -memcpyopt -S | not grep {call.*memcpy.}
2 target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
3         %a = type { i32 }
4         %b = type { float }
5
6 declare void @llvm.memcpy.i32(i8*, i8*, i32, i32) nounwind 
7 declare void @g(%a*)
8
9 define float @f() {
10 entry:
11         %a_var = alloca %a
12         %b_var = alloca %b
13         call void @g(%a *%a_var)
14         %a_i8 = bitcast %a* %a_var to i8*
15         %b_i8 = bitcast %b* %b_var to i8*
16         call void @llvm.memcpy.i32(i8* %b_i8, i8* %a_i8, i32 4, i32 4)
17         %tmp1 = getelementptr %b* %b_var, i32 0, i32 0
18         %tmp2 = load float* %tmp1
19         ret float %tmp2
20 }