New testcase for PR833


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29225 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/CodeGen/X86/2006-07-20-InlineAsm.ll b/test/CodeGen/X86/2006-07-20-InlineAsm.ll
new file mode 100644
index 0000000..6bf9cc9
--- /dev/null
+++ b/test/CodeGen/X86/2006-07-20-InlineAsm.ll
@@ -0,0 +1,24 @@
+; RUN: llvm-as < %s | llc -march=x86
+; PR833
+
+%G = weak global int 0		; <int*> [#uses=3]
+
+implementation   ; Functions:
+
+int %foo(int %X) {
+entry:
+	%X_addr = alloca int		; <int*> [#uses=3]
+	store int %X, int* %X_addr
+	call void asm sideeffect "xchg{l} {$0,$1|$1,$0}", "==m,==r,m,1,~{dirflag},~{fpsr},~{flags}"( int* %G, int* %X_addr, int* %G, int %X )
+	%tmp1 = load int* %X_addr		; <int> [#uses=1]
+	ret int %tmp1
+}
+
+int %foo2(int %X) {
+entry:
+	%X_addr = alloca int		; <int*> [#uses=3]
+	store int %X, int* %X_addr
+	call void asm sideeffect "xchg{l} {$0,$1|$1,$0}", "==m,==r,1,~{dirflag},~{fpsr},~{flags}"( int* %G, int* %X_addr, int %X )
+	%tmp1 = load int* %X_addr		; <int> [#uses=1]
+	ret int %tmp1
+}