diff options
author | Richard Osborne <richard@xmos.com> | 2013-07-16 12:48:34 +0000 |
---|---|---|
committer | Richard Osborne <richard@xmos.com> | 2013-07-16 12:48:34 +0000 |
commit | 6e2dc6d669dcbd2129bbc939088d30c7a751bd94 (patch) | |
tree | 0793170f6e904b6cd8914c527eb720e261e2e679 /test/CodeGen/XCore | |
parent | ad9a0d27d36f18dff2b2d37dd13b11ed2d07688b (diff) | |
download | external_llvm-6e2dc6d669dcbd2129bbc939088d30c7a751bd94.zip external_llvm-6e2dc6d669dcbd2129bbc939088d30c7a751bd94.tar.gz external_llvm-6e2dc6d669dcbd2129bbc939088d30c7a751bd94.tar.bz2 |
[XCore] Fix printing of inline asm operands.
Previously an asm operand with no operand modifier would give the error
"invalid operand in inline asm".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186407 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/XCore')
-rw-r--r-- | test/CodeGen/XCore/inline-asm.ll | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/CodeGen/XCore/inline-asm.ll b/test/CodeGen/XCore/inline-asm.ll new file mode 100644 index 0000000..af3edd1 --- /dev/null +++ b/test/CodeGen/XCore/inline-asm.ll @@ -0,0 +1,32 @@ +; RUN: llc < %s -march=xcore | FileCheck %s +; CHECK-LABEL: f1: +; CHECK: foo r0 +define i32 @f1() nounwind { +entry: + %asmtmp = tail call i32 asm sideeffect "foo $0", "=r"() nounwind + ret i32 %asmtmp +} + +; CHECK-LABEL: f2: +; CHECK: foo 5 +define void @f2() nounwind { +entry: + tail call void asm sideeffect "foo $0", "i"(i32 5) nounwind + ret void +} + +; CHECK-LABEL: f3: +; CHECK: foo 42 +define void @f3() nounwind { +entry: + tail call void asm sideeffect "foo ${0:c}", "i"(i32 42) nounwind + ret void +} + +; CHECK-LABEL: f4: +; CHECK: foo -99 +define void @f4() nounwind { +entry: + tail call void asm sideeffect "foo ${0:n}", "i"(i32 99) nounwind + ret void +} |