Let the integrated assembler understand .exitm, PR20426.
[oota-llvm.git] / test / MC / AsmParser / macro-exitm.s
1 // RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
2
3 // .exitm is encountered in a normal macro expansion
4 .macro REP
5 .rept 3
6 .long 0
7 .exitm
8 .endr
9 .endm
10 REP
11 // Only the output from the first rept expansion should make it through:
12 // CHECK: .long 0
13 // CHECK-NOT: .long 0
14
15 // .exitm is in a true branch
16 .macro A
17 .if 1
18 .long 1
19 .exitm
20 .endif
21 .long 1
22 .endm
23 A
24 // CHECK: .long 1
25 // CHECK-NOT: .long 1
26
27 // .exitm is in a false branch
28 .macro B
29 .if 1
30 .long 2
31 .else
32 .exitm
33 .endif
34 .long 2
35 .endm
36 B
37 // CHECK: .long 2
38 // CHECK: .long 2
39
40
41 // .exitm is in a false branch that is encountered prior to the true branch
42 .macro C
43 .if 0
44 .exitm
45 .else
46 .long 3
47 .endif
48 .long 3
49 .endm
50 C
51 // CHECK: .long 3
52 // CHECK: .long 3
53
54 // .exitm is in a macro that's expanded in a conditional block.
55 .macro D
56 .long 4
57 .exitm
58 .long 4
59 .endm
60 .if 1
61 D
62 .endif
63 // CHECK: .long 4
64 // CHECK-NOT: .long 4