RABasic fix. Regalloc is responsible for updating block live ins.
[oota-llvm.git] / test / CodeGen / Generic / 2010-11-11-ReturnBigBuffer.ll
1 ; RUN: llc < %s
2 ; PR8287: SelectionDag scheduling time. 
3 ; Yes, some front end really produces this code. But that is a
4 ; separate bug. This is more an example than a real test, because I
5 ; don't know how give llvm-lit a timeout.
6
7 define void @foo([4096 x i8]* %arg1, [4096 x i8]* %arg2) {
8   %buffer = alloca [4096 x i8]
9   %pbuf = alloca [4096 x i8]*
10   store [4096 x i8]* %buffer, [4096 x i8]** %pbuf
11
12   %parg1 = alloca [4096 x i8]*
13   store [4096 x i8]* %arg1, [4096 x i8]** %parg1
14
15   %parg2 = alloca [4096 x i8]*
16   store [4096 x i8]* %arg2, [4096 x i8]** %parg2
17
18   ; The original test case has intermediate blocks.
19   ; Presumably something fills in "buffer".
20
21   %bufferCopy1 = load [4096 x i8]** %pbuf
22   %dataCopy1 = load [4096 x i8]* %bufferCopy1
23   %arg1Copy = load [4096 x i8]** %parg1
24   store [4096 x i8] %dataCopy1, [4096 x i8]* %arg1Copy
25
26   %bufferCopy2 = load [4096 x i8]** %pbuf
27   %dataCopy2 = load [4096 x i8]* %bufferCopy2
28   %arg2Copy = load [4096 x i8]** %parg2
29   store [4096 x i8] %dataCopy2, [4096 x i8]* %arg2Copy
30
31   ret void
32 }