Testcase for llvm-gcc checkin 104042.
authorDale Johannesen <dalej@apple.com>
Tue, 18 May 2010 19:03:51 +0000 (19:03 +0000)
committerDale Johannesen <dalej@apple.com>
Tue, 18 May 2010 19:03:51 +0000 (19:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104043 91177308-0d34-0410-b5e6-96231b3b80d8

test/FrontendC/2010-05-18-asmsched.c [new file with mode: 0644]

diff --git a/test/FrontendC/2010-05-18-asmsched.c b/test/FrontendC/2010-05-18-asmsched.c
new file mode 100644 (file)
index 0000000..101f494
--- /dev/null
@@ -0,0 +1,19 @@
+// RUN: %llvmgcc %s -c -O3 -m64 -emit-llvm -o - | llc -march=x86-64 -mtriple=x86_64-apple-darwin | FileCheck %s
+// XFAIL: *
+// XTARGET: x86,i386,i686
+// r9 used to be clobbered before its value was moved to r10.  7993104.
+
+void foo(int x, int y) {
+// CHECK: bar
+// CHECK: movq  %r9, %r10
+// CHECK: movq  %rdi, %r9
+// CHECK: bar
+  register int lr9 asm("r9") = x;
+  register int lr10 asm("r10") = y;
+  int foo;
+  asm volatile("bar" : "=r"(lr9) : "r"(lr9), "r"(lr10));
+  foo = lr9;
+  lr9 = x;
+  lr10 = foo;
+  asm volatile("bar" : "=r"(lr9) : "r"(lr9), "r"(lr10));
+}
\ No newline at end of file