summaryrefslogtreecommitdiffstats
path: root/test/CodeGen
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2009-02-12 20:58:09 +0000
committerDale Johannesen <dalej@apple.com>2009-02-12 20:58:09 +0000
commit78e3e521cd90e5f6382c14b6e4d809fb59610ed6 (patch)
treeab8207e9c0143230e527faae7e0ddb06b0c613fc /test/CodeGen
parenta971b294253cb848c0a640185f26459978c9ba41 (diff)
downloadexternal_llvm-78e3e521cd90e5f6382c14b6e4d809fb59610ed6.zip
external_llvm-78e3e521cd90e5f6382c14b6e4d809fb59610ed6.tar.gz
external_llvm-78e3e521cd90e5f6382c14b6e4d809fb59610ed6.tar.bz2
Arrange to print constants that match "n" and "i" constraints
in inline asm as signed (what gcc does). Add partial support for x86-specific "e" and "Z" constraints, with appropriate signedness for printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64400 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen')
-rw-r--r--test/CodeGen/X86/2009-02-12-InlineAsm-nieZ-constraints.ll18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/CodeGen/X86/2009-02-12-InlineAsm-nieZ-constraints.ll b/test/CodeGen/X86/2009-02-12-InlineAsm-nieZ-constraints.ll
new file mode 100644
index 0000000..ddd15f7
--- /dev/null
+++ b/test/CodeGen/X86/2009-02-12-InlineAsm-nieZ-constraints.ll
@@ -0,0 +1,18 @@
+; RUN: llvm-as < %s | llc -march=x86 | grep {\$-81920} | count 3
+; RUN: llvm-as < %s | llc -march=x86 | grep {\$4294885376} | count 1
+
+; ModuleID = 'shant.c'
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
+target triple = "i386-apple-darwin9.6"
+
+define void @f() nounwind {
+entry:
+ call void asm sideeffect "foo $0", "n,~{dirflag},~{fpsr},~{flags}"(i32 -81920) nounwind
+ call void asm sideeffect "foo $0", "i,~{dirflag},~{fpsr},~{flags}"(i32 -81920) nounwind
+ call void asm sideeffect "foo $0", "e,~{dirflag},~{fpsr},~{flags}"(i32 -81920) nounwind
+ call void asm sideeffect "foo $0", "Z,~{dirflag},~{fpsr},~{flags}"(i64 4294885376) nounwind
+ br label %return
+
+return: ; preds = %entry
+ ret void
+}