aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2008-05-29 21:50:34 +0000
committerDan Gohman <gohman@apple.com>2008-05-29 21:50:34 +0000
commitb4106170dde7db16af602e87bdd15ddc47e34321 (patch)
tree01ecdf44ad82e141923f016c9905ca551917b743 /test
parenteecfa369eb91838fbd833183717b2579a0127acb (diff)
downloadexternal_llvm-b4106170dde7db16af602e87bdd15ddc47e34321.zip
external_llvm-b4106170dde7db16af602e87bdd15ddc47e34321.tar.gz
external_llvm-b4106170dde7db16af602e87bdd15ddc47e34321.tar.bz2
Add patterns for CALL32m and CALL64m. They aren't matched in most
cases due to an isel deficiency already noted in lib/Target/X86/README.txt, but they can be matched in this fold-call.ll testcase, for example. This is interesting mainly because it exposes a tricky tblgen bug; tblgen was incorrectly computing the starting index for variable_ops in the case of a complex pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51706 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r--test/CodeGen/X86/fold-call.ll10
1 files changed, 10 insertions, 0 deletions
diff --git a/test/CodeGen/X86/fold-call.ll b/test/CodeGen/X86/fold-call.ll
new file mode 100644
index 0000000..5399171
--- /dev/null
+++ b/test/CodeGen/X86/fold-call.ll
@@ -0,0 +1,10 @@
+; RUN: llvm-as < %s | llc -march=x86 | not grep mov
+; RUN: llvm-as < %s | llc -march=x86-64 | not grep mov
+
+declare void @bar()
+
+define void @foo(i32 %i0, i32 %i1, i32 %i2, i32 %i3, i32 %i4, i32 %i5, void()* %arg) nounwind {
+ call void @bar()
+ call void %arg()
+ ret void
+}