summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/2006-07-20-InlineAsm.ll
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-07-20 19:04:36 +0000
committerChris Lattner <sabre@nondot.org>2006-07-20 19:04:36 +0000
commitdc21e16bb4721949f82d7a23e23a39c40db14cdf (patch)
treea2d8a766ad890d5d77751c59cc6c9b92286e299a /test/CodeGen/X86/2006-07-20-InlineAsm.ll
parenta15cf7045efc688b813f4bc7cbc9f17c27114c04 (diff)
downloadllvm-dc21e16bb4721949f82d7a23e23a39c40db14cdf.tar.gz
llvm-dc21e16bb4721949f82d7a23e23a39c40db14cdf.tar.bz2
llvm-dc21e16bb4721949f82d7a23e23a39c40db14cdf.tar.xz
New testcase for PR833
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29225 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/2006-07-20-InlineAsm.ll')
-rw-r--r--test/CodeGen/X86/2006-07-20-InlineAsm.ll24
1 files changed, 24 insertions, 0 deletions
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 0000000000..6bf9cc94a4
--- /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
+}