aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/X86
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2009-07-19 19:09:59 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2009-07-19 19:09:59 +0000
commit45d34fe35846eed7019bdc2f7814025302849e0c (patch)
treec27bb55abc183347421961adeeb7fddd63f1d4df /test/CodeGen/X86
parente687151e033b03efaa1155275a146fcf83152dd9 (diff)
downloadexternal_llvm-45d34fe35846eed7019bdc2f7814025302849e0c.zip
external_llvm-45d34fe35846eed7019bdc2f7814025302849e0c.tar.gz
external_llvm-45d34fe35846eed7019bdc2f7814025302849e0c.tar.bz2
Fix http://llvm.org/bugs/show_bug.cgi?id=4583
Inline asm instructions may have additional <imp-def,kill> register operands. These operands are not marked with a flag like the normal asm operands, so we must not assert that there is a flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76373 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86')
-rw-r--r--test/CodeGen/X86/2009-07-19-AsmExtraOperands.ll11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/CodeGen/X86/2009-07-19-AsmExtraOperands.ll b/test/CodeGen/X86/2009-07-19-AsmExtraOperands.ll
new file mode 100644
index 0000000..31322cf
--- /dev/null
+++ b/test/CodeGen/X86/2009-07-19-AsmExtraOperands.ll
@@ -0,0 +1,11 @@
+; RUN: llvm-as < %s | llc -march=x86-64
+; PR4583
+
+define i32 @atomic_cmpset_long(i64* %dst, i64 %exp, i64 %src) nounwind ssp noredzone noimplicitfloat {
+entry:
+ %0 = call i8 asm sideeffect "\09lock ; \09\09\09cmpxchgq $2,$1 ;\09 sete\09$0 ;\09\091:\09\09\09\09# atomic_cmpset_long", "={ax},=*m,r,{ax},*m,~{memory},~{dirflag},~{fpsr},~{flags}"(i64* undef, i64 undef, i64 undef, i64* undef) nounwind ; <i8> [#uses=0]
+ br label %1
+
+; <label>:1 ; preds = %entry
+ ret i32 undef
+}