Merge from mainline.
[llvm-complete.git] / test / Assembler / 2007-02-07-UpgradeCSRETCC.ll
blobda6faa69700b5b73889c5ade8b8e5e93f2b51336
1 ; RUN: llvm-upgrade < %s > /dev/null
2 ; PR1187
4 %mystruct = type { int, double }
5 %glob = global %mystruct { int 3, double 42.0 }
6 %fptr = external global void (i32)*
8 implementation
10 csretcc void %nada(%mystruct * %ptr, int %val) {
11   ret void
14 int %main(int %argc, ubyte** %argv) {
15   %astr = alloca %mystruct
16   call void %nada(%mystruct* %astr, i32 7)
17   %fptr = alloca void (%mystruct*, i32)*
18   %f = load void (%mystruct*, i32)**%fptr
19   call csretcc void %f(%mystruct* %astr, i32 7)
20   store void (%mystruct* , i32)* %nada, void (%mystruct*, i32)** %fptr
22   ret int 0