xref: /llvm-project/llvm/test/tools/llvm-ml/repeat_directives.asm (revision 8fee2ee9a689276eaea61d4c3f124aa80a81b6f7)
1; RUN: llvm-ml -m64 -filetype=s %s /Fo - | FileCheck %s
2
3.data
4
5a BYTE ?
6
7.code
8
9repeat_test PROC
10; CHECK-LABEL: repeat_test:
11  REPEAT 1+2
12    xor eax, 0
13  ENDM
14; CHECK: xor eax, 0
15; CHECK: xor eax, 0
16; CHECK: xor eax, 0
17; CHECK-NOT: xor eax, 0
18repeat_test ENDP
19
20while_test PROC
21; CHECK-LABEL: while_test:
22  C = 1
23  WHILE C <= 3
24    xor eax, C
25    C = C + 1
26  ENDM
27; CHECK: xor eax, 1
28; CHECK: xor eax, 2
29; CHECK: xor eax, 3
30; CHECK-NOT: xor eax,
31while_test ENDP
32
33for_test PROC
34; CHECK-LABEL: for_test:
35  FOR arg, <'O', 'K', 13, 10>
36    mov al, arg
37  ENDM
38; CHECK: mov al, 79
39; CHECK: mov al, 75
40; CHECK: mov al, 13
41; CHECK: mov al, 10
42; CHECK-NOT: mov al,
43for_test ENDP
44
45for_without_substitution_test PROC
46; CHECK-LABEL: for_without_substitution_test:
47  FOR a, <'O', 'K', 13, 10>
48    mov al, 'a'
49  ENDM
50; CHECK: mov al, 97
51; CHECK: mov al, 97
52; CHECK: mov al, 97
53; CHECK: mov al, 97
54; CHECK-NOT: mov al,
55for_without_substitution_test ENDP
56
57for_with_default_test PROC
58; CHECK-LABEL: for_with_default_test:
59  FOR arg:=<'K'>, <'O', ,, 13,>
60    mov al, arg
61  ENDM
62; CHECK: mov al, 79
63; CHECK: mov al, 75
64; CHECK: mov al, 75
65; CHECK: mov al, 13
66; CHECK: mov al, 75
67; CHECK-NOT: mov al,
68for_with_default_test ENDP
69
70forc_test PROC
71; CHECK-LABEL: forc_test:
72  FORC arg, <OK>
73    mov al, "&arg"
74  ENDM
75; CHECK: mov al, 79
76; CHECK: mov al, 75
77; CHECK-NOT: mov al,
78forc_test ENDP
79
80forc_improper_test PROC
81; CHECK-LABEL: forc_improper_test:
82  FORC arg, A-; OK
83    mov al, "&arg"
84  ENDM
85; CHECK: mov al, 65
86; CHECK: mov al, 45
87; CHECK: mov al, 59
88; CHECK-NOT: mov al,
89forc_improper_test ENDP
90
91nested_substitution_test PROC
92; CHECK-LABEL: nested_substitution_test:
93  FOR s, <A-, OK>
94    FORC c, <s>
95      mov al, '&c'
96    ENDM
97  ENDM
98; CHECK: mov al, 65
99; CHECK: mov al, 45
100; CHECK: mov al, 79
101; CHECK: mov al, 75
102; CHECK-NOT: mov al,
103nested_substitution_test ENDP
104
105end
106