Merge branch 'master' into msp430
[llvm/msp430.git] / test / CodeGen / X86 / fastcc-byval.ll
blob94da50584c7b6bde5c22beebfeec0f5673d0983c
1 ; RUN: llvm-as < %s | llc -tailcallopt=false | grep {movl\[\[:space:\]\]*8(%esp), %eax} | count 2
2 ; PR3122
3 ; rdar://6400815
5 ; byval requires a copy, even with fastcc.
7 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
8 target triple = "i386-apple-darwin9.5"
9         %struct.MVT = type { i32 }
11 define fastcc i32 @bar() nounwind {
12         %V = alloca %struct.MVT
13         %a = getelementptr %struct.MVT* %V, i32 0, i32 0
14         store i32 1, i32* %a
15         call fastcc void @foo(%struct.MVT* byval %V) nounwind
16         %t = load i32* %a
17         ret i32 %t
20 declare fastcc void @foo(%struct.MVT* byval)