summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/2003-08-03-CallArgLiveRanges.llx
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86/2003-08-03-CallArgLiveRanges.llx')
-rw-r--r--llvm/test/CodeGen/X86/2003-08-03-CallArgLiveRanges.llx15
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/2003-08-03-CallArgLiveRanges.llx b/llvm/test/CodeGen/X86/2003-08-03-CallArgLiveRanges.llx
new file mode 100644
index 00000000000..77ac17bc30e
--- /dev/null
+++ b/llvm/test/CodeGen/X86/2003-08-03-CallArgLiveRanges.llx
@@ -0,0 +1,15 @@
+; The old instruction selector used to load all arguments to a call up in
+; registers, then start pushing them all onto the stack. This is bad news as
+; it makes a ton of annoying overlapping live ranges. This code should not
+; cause spills!
+;
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 -stats 2>&1 | not grep spilled
+
+target endian = little
+target pointersize = 32
+
+int %test(int, int, int, int, int, int, int, int, int, int) { ret int 0 }
+int %main() {
+ %X = call int %test(int 1, int 2, int 3, int 4, int 5, int 6, int 7, int 8, int 9, int 10)
+ ret int %X
+}
OpenPOWER on IntegriCloud