[PowerPC] Support extended mnemonics in AsmParser
[oota-llvm.git] / test / MC / PowerPC / ppc64-encoding-ext.s
1
2 # RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
3
4 # FIXME: Condition register bit symbols
5
6 # Branch mnemonics
7
8 # CHECK: blr                             # encoding: [0x4e,0x80,0x00,0x20]
9          blr
10 # CHECK: bctr                            # encoding: [0x4e,0x80,0x04,0x20]
11          bctr
12 # FIXME: blrl
13 # CHECK: bctrl                           # encoding: [0x4e,0x80,0x04,0x21]
14          bctrl
15
16 # FIXME: bt 2, target
17 # FIXME: bta 2, target
18 # FIXME: btlr 2
19 # FIXME: btctr 2
20 # FIXME: btl 2, target
21 # FIXME: btla 2, target
22 # FIXME: btlrl 2
23 # FIXME: btctrl 2
24
25 # FIXME: bf 2, target
26 # FIXME: bfa 2, target
27 # FIXME: bflr 2
28 # FIXME: bfctr 2
29 # FIXME: bfl 2, target
30 # FIXME: bfla 2, target
31 # FIXME: bflrl 2
32 # FIXME: bfctrl 2
33
34 # CHECK: bdnz target                     # encoding: [0x42,0x00,A,0bAAAAAA00]
35 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
36          bdnz target
37 # FIXME: bdnza target
38 # CHECK: bdnzlr                          # encoding: [0x4e,0x00,0x00,0x20]
39          bdnzlr
40 # FIXME: bdnzl target
41 # FIXME: bdnzla target
42 # FIXME: bdnzlrl
43
44 # FIXME: bdnzt 2, target
45 # FIXME: bdnzta 2, target
46 # FIXME: bdnztlr 2
47 # FIXME: bdnztl 2, target
48 # FIXME: bdnztla 2, target
49 # FIXME: bdnztlrl 2
50 # FIXME: bdnzf 2, target
51 # FIXME: bdnzfa 2, target
52 # FIXME: bdnzflr 2
53 # FIXME: bdnzfl 2, target
54 # FIXME: bdnzfla 2, target
55 # FIXME: bdnzflrl 2
56
57 # CHECK: bdz target                      # encoding: [0x42,0x40,A,0bAAAAAA00]
58 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
59          bdz target
60 # FIXME: bdza target
61 # CHECK: bdzlr                           # encoding: [0x4e,0x40,0x00,0x20]
62          bdzlr
63 # FIXME: bdzl target
64 # FIXME: bdzla target
65
66 # FIXME: bdzlrl
67 # FIXME: bdzt 2, target
68 # FIXME: bdzta 2, target
69 # FIXME: bdztlr 2
70 # FIXME: bdztl 2, target
71 # FIXME: bdztla 2, target
72 # FIXME: bdztlrl 2
73 # FIXME: bdzf 2, target
74 # FIXME: bdzfa 2, target
75 # FIXME: bdzflr 2
76 # FIXME: bdzfl 2, target
77 # FIXME: bdzfla 2, target
78 # FIXME: bdzflrl 2
79
80 # CHECK: blt 2, target                   # encoding: [0x41,0x88,A,0bAAAAAA00]
81 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
82          blt 2, target
83 # FIXME: blta 2, target
84 # CHECK: bltlr 2                         # encoding: [0x4d,0x88,0x00,0x20]
85          bltlr 2
86 # CHECK: bltctr 2                        # encoding: [0x4d,0x88,0x04,0x20]
87          bltctr 2
88 # FIXME: bltl 2, target
89 # FIXME: bltla 2, target
90 # FIXME: bltlrl 2
91 # CHECK: bltctrl 2                       # encoding: [0x4d,0x88,0x04,0x21]
92          bltctrl 2
93
94 # CHECK: ble 2, target                   # encoding: [0x40,0x89,A,0bAAAAAA00]
95 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
96          ble 2, target
97 # FIXME: blea 2, target
98 # CHECK: blelr 2                         # encoding: [0x4c,0x89,0x00,0x20]
99          blelr 2
100 # CHECK: blectr 2                        # encoding: [0x4c,0x89,0x04,0x20]
101          blectr 2
102 # FIXME: blel 2, target
103 # FIXME: blela 2, target
104 # FIXME: blelrl 2
105 # CHECK: blectrl 2                       # encoding: [0x4c,0x89,0x04,0x21]
106          blectrl 2
107
108 # CHECK: beq 2, target                   # encoding: [0x41,0x8a,A,0bAAAAAA00]
109 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
110          beq 2, target
111 # FIXME: beqa 2, target
112 # CHECK: beqlr 2                         # encoding: [0x4d,0x8a,0x00,0x20]
113          beqlr 2
114 # CHECK: beqctr 2                        # encoding: [0x4d,0x8a,0x04,0x20]
115          beqctr 2
116 # FIXME: beql 2, target
117 # FIXME: beqla 2, target
118 # FIXME: beqlrl 2
119 # CHECK: beqctrl 2                       # encoding: [0x4d,0x8a,0x04,0x21]
120          beqctrl 2
121
122 # CHECK: bge 2, target                   # encoding: [0x40,0x88,A,0bAAAAAA00]
123 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
124          bge 2, target
125 # FIXME: bgea 2, target
126 # CHECK: bgelr 2                         # encoding: [0x4c,0x88,0x00,0x20]
127          bgelr 2
128 # CHECK: bgectr 2                        # encoding: [0x4c,0x88,0x04,0x20]
129          bgectr 2
130 # FIXME: bgel 2, target
131 # FIXME: bgela 2, target
132 # FIXME: bgelrl 2
133 # CHECK: bgectrl 2                       # encoding: [0x4c,0x88,0x04,0x21]
134          bgectrl 2
135
136 # CHECK: bgt 2, target                   # encoding: [0x41,0x89,A,0bAAAAAA00]
137 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
138          bgt 2, target
139 # FIXME: bgta 2, target
140 # CHECK: bgtlr 2                         # encoding: [0x4d,0x89,0x00,0x20]
141          bgtlr 2
142 # CHECK: bgtctr 2                        # encoding: [0x4d,0x89,0x04,0x20]
143          bgtctr 2
144 # FIXME: bgtl 2, target
145 # FIXME: bgtla 2, target
146 # FIXME: bgtlrl 2
147 # CHECK: bgtctrl 2                       # encoding: [0x4d,0x89,0x04,0x21]
148          bgtctrl 2
149
150 # CHECK: bge 2, target                   # encoding: [0x40,0x88,A,0bAAAAAA00]
151 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
152          bnl 2, target
153 # FIXME: bnla 2, target
154 # CHECK: bgelr 2                         # encoding: [0x4c,0x88,0x00,0x20]
155          bnllr 2
156 # CHECK: bgectr 2                        # encoding: [0x4c,0x88,0x04,0x20]
157          bnlctr 2
158 # FIXME: bnll 2, target
159 # FIXME: bnlla 2, target
160 # FIXME: bnllrl 2
161 # CHECK: bgectrl 2                       # encoding: [0x4c,0x88,0x04,0x21]
162          bnlctrl 2
163
164 # CHECK: bne 2, target                   # encoding: [0x40,0x8a,A,0bAAAAAA00]
165 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
166          bne 2, target
167 # FIXME: bnea 2, target
168 # CHECK: bnelr 2                         # encoding: [0x4c,0x8a,0x00,0x20]
169          bnelr 2
170 # CHECK: bnectr 2                        # encoding: [0x4c,0x8a,0x04,0x20]
171          bnectr 2
172 # FIXME: bnel 2, target
173 # FIXME: bnela 2, target
174 # FIXME: bnelrl 2
175 # CHECK: bnectrl 2                       # encoding: [0x4c,0x8a,0x04,0x21]
176          bnectrl 2
177
178 # CHECK: ble 2, target                   # encoding: [0x40,0x89,A,0bAAAAAA00]
179 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
180          bng 2, target
181 # FIXME: bnga 2, target
182 # CHECK: blelr 2                         # encoding: [0x4c,0x89,0x00,0x20]
183          bnglr 2
184 # CHECK: blectr 2                        # encoding: [0x4c,0x89,0x04,0x20]
185          bngctr 2
186 # FIXME: bngl 2, target
187 # FIXME: bngla 2, target
188 # FIXME: bnglrl 2
189 # CHECK: blectrl 2                       # encoding: [0x4c,0x89,0x04,0x21]
190          bngctrl 2
191
192 # CHECK: bun 2, target                   # encoding: [0x41,0x8b,A,0bAAAAAA00]
193 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
194          bso 2, target
195 # FIXME: bsoa 2, target
196 # CHECK: bunlr 2                         # encoding: [0x4d,0x8b,0x00,0x20]
197          bsolr 2
198 # CHECK: bunctr 2                        # encoding: [0x4d,0x8b,0x04,0x20]
199          bsoctr 2
200 # FIXME: bsol 2, target
201 # FIXME: bsola 2, target
202 # FIXME: bsolrl 2
203 # CHECK: bunctrl 2                       # encoding: [0x4d,0x8b,0x04,0x21]
204          bsoctrl 2
205
206 # CHECK: bnu 2, target                   # encoding: [0x40,0x8b,A,0bAAAAAA00]
207 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
208          bns 2, target
209 # FIXME: bnsa 2, target
210 # CHECK: bnulr 2                         # encoding: [0x4c,0x8b,0x00,0x20]
211          bnslr 2
212 # CHECK: bnuctr 2                        # encoding: [0x4c,0x8b,0x04,0x20]
213          bnsctr 2
214 # FIXME: bnsl 2, target
215 # FIXME: bnsla 2, target
216 # FIXME: bnslrl 2
217 # CHECK: bnuctrl 2                       # encoding: [0x4c,0x8b,0x04,0x21]
218          bnsctrl 2
219
220 # CHECK: bun 2, target                   # encoding: [0x41,0x8b,A,0bAAAAAA00]
221 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
222          bun 2, target
223 # FIXME: buna 2, target
224 # CHECK: bunlr 2                         # encoding: [0x4d,0x8b,0x00,0x20]
225          bunlr 2
226 # CHECK: bunctr 2                        # encoding: [0x4d,0x8b,0x04,0x20]
227          bunctr 2
228 # FIXME: bunl 2, target
229 # FIXME: bunla 2, target
230 # FIXME: bunlrl 2
231 # CHECK: bunctrl 2                       # encoding: [0x4d,0x8b,0x04,0x21]
232          bunctrl 2
233
234 # CHECK: bnu 2, target                   # encoding: [0x40,0x8b,A,0bAAAAAA00]
235 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
236          bnu 2, target
237 # FIXME: bnua 2, target
238 # CHECK: bnulr 2                         # encoding: [0x4c,0x8b,0x00,0x20]
239          bnulr 2
240 # CHECK: bnuctr 2                        # encoding: [0x4c,0x8b,0x04,0x20]
241          bnuctr 2
242 # FIXME: bnul 2, target
243 # FIXME: bnula 2, target
244 # FIXME: bnulrl 2
245 # CHECK: bnuctrl 2                       # encoding: [0x4c,0x8b,0x04,0x21]
246          bnuctrl 2
247
248 # FIXME: Condition register logical mnemonics
249
250 # FIXME: Subtract mnemonics
251
252 # Compare mnemonics
253
254 # CHECK: cmpdi 2, 3, 128                 # encoding: [0x2d,0x23,0x00,0x80]
255          cmpdi 2, 3, 128
256 # CHECK: cmpd 2, 3, 4                    # encoding: [0x7d,0x23,0x20,0x00]
257          cmpd 2, 3, 4
258 # CHECK: cmpldi 2, 3, 128                # encoding: [0x29,0x23,0x00,0x80]
259          cmpldi 2, 3, 128
260 # CHECK: cmpld 2, 3, 4                   # encoding: [0x7d,0x23,0x20,0x40]
261          cmpld 2, 3, 4
262
263 # CHECK: cmpwi 2, 3, 128                 # encoding: [0x2d,0x03,0x00,0x80]
264          cmpwi 2, 3, 128
265 # CHECK: cmpw 2, 3, 4                    # encoding: [0x7d,0x03,0x20,0x00]
266          cmpw 2, 3, 4
267 # CHECK: cmplwi 2, 3, 128                # encoding: [0x29,0x03,0x00,0x80]
268          cmplwi 2, 3, 128
269 # CHECK: cmplw 2, 3, 4                   # encoding: [0x7d,0x03,0x20,0x40]
270          cmplw 2, 3, 4
271
272 # FIXME: Trap mnemonics
273
274 # Rotate and shift mnemonics
275
276 # FIXME: extldi 2, 3, 4, 5
277 # FIXME: extrdi 2, 3, 4, 5
278 # FIXME: insrdi 2, 3, 4, 5
279 # FIXME: rotldi 2, 3, 4
280 # FIXME: rotrdi 2, 3, 4
281 # FIXME: rotld 2, 3, 4
282 # CHECK: sldi 2, 3, 4                    # encoding: [0x78,0x62,0x26,0xe4]
283          sldi 2, 3, 4
284 # CHECK: rldicl 2, 3, 60, 4              # encoding: [0x78,0x62,0xe1,0x02]
285          srdi 2, 3, 4
286 # FIXME: clrldi 2, 3, 4
287 # FIXME: clrrdi 2, 3, 4
288 # FIXME: clrlsldi 2, 3, 4, 5
289
290 # FIXME: extlwi 2, 3, 4, 5
291 # FIXME: extrwi 2, 3, 4, 5
292 # FIXME: inslwi 2, 3, 4, 5
293 # FIXME: insrwi 2, 3, 4, 5
294 # FIXME: rotlwi 2, 3, 4
295 # FIXME: rotrwi 2, 3, 4
296 # FIXME: rotlw 2, 3, 4
297 # CHECK: slwi 2, 3, 4                    # encoding: [0x54,0x62,0x20,0x36]
298          slwi 2, 3, 4
299 # CHECK: srwi 2, 3, 4                    # encoding: [0x54,0x62,0xe1,0x3e]
300          srwi 2, 3, 4
301 # FIXME: clrlwi 2, 3, 4
302 # FIXME: clrrwi 2, 3, 4
303 # FIXME: clrlslwi 2, 3, 4, 5
304
305 # Move to/from special purpose register mnemonics
306
307 # FIXME: mtxer 2
308 # FIXME: mfxer 2
309 # CHECK: mtlr 2                          # encoding: [0x7c,0x48,0x03,0xa6]
310          mtlr 2
311 # CHECK: mflr 2                          # encoding: [0x7c,0x48,0x02,0xa6]
312          mflr 2
313 # CHECK: mtctr 2                         # encoding: [0x7c,0x49,0x03,0xa6]
314          mtctr 2
315 # CHECK: mfctr 2                         # encoding: [0x7c,0x49,0x02,0xa6]
316          mfctr 2
317
318 # Miscellaneous mnemonics
319
320 # CHECK: nop                             # encoding: [0x60,0x00,0x00,0x00]
321          nop
322 # FIXME: xnop
323 # CHECK: li 2, 128                       # encoding: [0x38,0x40,0x00,0x80]
324          li 2, 128
325 # CHECK: lis 2, 128                      # encoding: [0x3c,0x40,0x00,0x80]
326          lis 2, 128
327 # FIXME: la 2, 128(4)
328 # CHECK: mr 2, 3                         # encoding: [0x7c,0x62,0x1b,0x78]
329          mr 2, 3
330 # FIXME: not 2, 3
331