summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2010-11-12 17:57:22 +0000
committerAndrew Trick <atrick@apple.com>2010-11-12 17:57:22 +0000
commitff5f8680d8a83dba7d4d3aa2ac3418de4d2f935c (patch)
treea5b2830c4c670ca1370faa6a686a33b4d355b602 /llvm/test
parent0deb9c20c0c63bfff54f89cd75798df81599a7cb (diff)
downloadbcm5719-llvm-ff5f8680d8a83dba7d4d3aa2ac3418de4d2f935c.tar.gz
bcm5719-llvm-ff5f8680d8a83dba7d4d3aa2ac3418de4d2f935c.zip
Test case for PR8287: SD scheduling time. Fixed in r118904.
llvm-svn: 118906
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/Generic/2010-11-11-ReturnBigBuffer.ll31
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/Generic/2010-11-11-ReturnBigBuffer.ll b/llvm/test/CodeGen/Generic/2010-11-11-ReturnBigBuffer.ll
new file mode 100644
index 00000000000..73e26e7929f
--- /dev/null
+++ b/llvm/test/CodeGen/Generic/2010-11-11-ReturnBigBuffer.ll
@@ -0,0 +1,31 @@
+; RUN: llc < %s PR8287: SelectionDag scheduling time.
+; Yes, some front end really produces this code. But that is a
+; separate bug. This is more an example than a real test, because I
+; don't know how give llvm-lit a timeout.
+
+define void @foo([4096 x i8]* %arg1, [4096 x i8]* %arg2) {
+ %buffer = alloca [4096 x i8]
+ %pbuf = alloca [4096 x i8]*
+ store [4096 x i8]* %buffer, [4096 x i8]** %pbuf
+
+ %parg1 = alloca [4096 x i8]*
+ store [4096 x i8]* %arg1, [4096 x i8]** %parg1
+
+ %parg2 = alloca [4096 x i8]*
+ store [4096 x i8]* %arg2, [4096 x i8]** %parg2
+
+ ; The original test case has intermediate blocks.
+ ; Presumably something fills in "buffer".
+
+ %bufferCopy1 = load [4096 x i8]** %pbuf
+ %dataCopy1 = load [4096 x i8]* %bufferCopy1
+ %arg1Copy = load [4096 x i8]** %parg1
+ store [4096 x i8] %dataCopy1, [4096 x i8]* %arg1Copy
+
+ %bufferCopy2 = load [4096 x i8]** %pbuf
+ %dataCopy2 = load [4096 x i8]* %bufferCopy2
+ %arg2Copy = load [4096 x i8]** %parg2
+ store [4096 x i8] %dataCopy2, [4096 x i8]* %arg2Copy
+
+ ret void
+}
OpenPOWER on IntegriCloud