summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2014-07-24 17:08:39 +0000
committerNico Weber <nicolasweber@gmx.de>2014-07-24 17:08:39 +0000
commit155dccd1eba26965a8c13c65838f653ea7f55de3 (patch)
tree02288da86bd25822e015141b800998015a6e6084 /llvm/test
parenta9b498955caf537c8c08b29d258ee44cecaf723b (diff)
downloadbcm5719-llvm-155dccd1eba26965a8c13c65838f653ea7f55de3.tar.gz
bcm5719-llvm-155dccd1eba26965a8c13c65838f653ea7f55de3.zip
Let the integrated assembler understand .exitm, PR20426.
llvm-svn: 213876
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/MC/AsmParser/macro-exitm.s64
1 files changed, 64 insertions, 0 deletions
diff --git a/llvm/test/MC/AsmParser/macro-exitm.s b/llvm/test/MC/AsmParser/macro-exitm.s
new file mode 100644
index 00000000000..66a0597288a
--- /dev/null
+++ b/llvm/test/MC/AsmParser/macro-exitm.s
@@ -0,0 +1,64 @@
+// RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
+
+// .exitm is encountered in a normal macro expansion
+.macro REP
+.rept 3
+.long 0
+.exitm
+.endr
+.endm
+REP
+// Only the output from the first rept expansion should make it through:
+// CHECK: .long 0
+// CHECK-NOT: .long 0
+
+// .exitm is in a true branch
+.macro A
+.if 1
+.long 1
+.exitm
+.endif
+.long 1
+.endm
+A
+// CHECK: .long 1
+// CHECK-NOT: .long 1
+
+// .exitm is in a false branch
+.macro B
+.if 1
+.long 2
+.else
+.exitm
+.endif
+.long 2
+.endm
+B
+// CHECK: .long 2
+// CHECK: .long 2
+
+
+// .exitm is in a false branch that is encountered prior to the true branch
+.macro C
+.if 0
+.exitm
+.else
+.long 3
+.endif
+.long 3
+.endm
+C
+// CHECK: .long 3
+// CHECK: .long 3
+
+// .exitm is in a macro that's expanded in a conditional block.
+.macro D
+.long 4
+.exitm
+.long 4
+.endm
+.if 1
+D
+.endif
+// CHECK: .long 4
+// CHECK-NOT: .long 4
OpenPOWER on IntegriCloud