aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/pr7882.ll
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2010-08-17 22:17:24 +0000
committerDale Johannesen <dalej@apple.com>2010-08-17 22:17:24 +0000
commit6cf64a631a1522c137a1fcf88858ea1336822abf (patch)
tree40ac27e47bb146753255b6fb2eaa10e47a8a33b1 /test/CodeGen/X86/pr7882.ll
parent5dad73cec84d24a237c2c0444768cc7c492497d4 (diff)
Make fast scheduler handle asm clobbers correctly.
PR 7882. Follows suggestion by Amaury Pouly, thanks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111306 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/pr7882.ll')
-rw-r--r--test/CodeGen/X86/pr7882.ll17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/CodeGen/X86/pr7882.ll b/test/CodeGen/X86/pr7882.ll
new file mode 100644
index 0000000000..88404dbe12
--- /dev/null
+++ b/test/CodeGen/X86/pr7882.ll
@@ -0,0 +1,17 @@
+; RUN: llc < %s -march=x86 -mtriple=i686-apple-darwin -pre-RA-sched=fast \
+; RUN: | FileCheck %s
+; make sure scheduler honors the flags clobber. PR 7882.
+
+define i32 @main(i32 %argc, i8** %argv) nounwind
+{
+entry:
+; CHECK: InlineAsm End
+; CHECK: cmpl
+ %res = icmp slt i32 1, %argc
+ %tmp = call i32 asm sideeffect alignstack
+ "push $$0
+ popf
+ mov $$13, $0", "=r,r,~{memory},~{flags}" (i1 %res)
+ %ret = select i1 %res, i32 %tmp, i32 42
+ ret i32 %ret
+}