[PowerPC] Support absolute branches
[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 # CHECK: blrl                            # encoding: [0x4e,0x80,0x00,0x21]
13          blrl
14 # CHECK: bctrl                           # encoding: [0x4e,0x80,0x04,0x21]
15          bctrl
16
17 # FIXME: bt 2, target
18 # FIXME: bt target
19 # FIXME: bta 2, target
20 # FIXME: bta target
21 # FIXME: btlr 2
22 # FIXME: btlr
23 # FIXME: btctr 2
24 # FIXME: btctr
25 # FIXME: btl 2, target
26 # FIXME: btl target
27 # FIXME: btla 2, target
28 # FIXME: btla target
29 # FIXME: btlrl 2
30 # FIXME: btlrl
31 # FIXME: btctrl 2
32 # FIXME: btctrl
33
34 # FIXME: bf 2, target
35 # FIXME: bf target
36 # FIXME: bfa 2, target
37 # FIXME: bfa target
38 # FIXME: bflr 2
39 # FIXME: bflr
40 # FIXME: bfctr 2
41 # FIXME: bfctr
42 # FIXME: bfl 2, target
43 # FIXME: bfl target
44 # FIXME: bfla 2, target
45 # FIXME: bfla target
46 # FIXME: bflrl 2
47 # FIXME: bflrl
48 # FIXME: bfctrl 2
49 # FIXME: bfctrl
50
51 # CHECK: bdnz target                     # encoding: [0x42,0x00,A,0bAAAAAA00]
52 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
53          bdnz target
54 # CHECK: bdnza target                    # encoding: [0x42,0x00,A,0bAAAAAA10]
55 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
56          bdnza target
57 # CHECK: bdnzlr                          # encoding: [0x4e,0x00,0x00,0x20]
58          bdnzlr
59 # CHECK: bdnzl target                    # encoding: [0x42,0x00,A,0bAAAAAA01]
60 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
61          bdnzl target
62 # CHECK: bdnzla target                   # encoding: [0x42,0x00,A,0bAAAAAA11]
63 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
64          bdnzla target
65 # CHECK: bdnzlrl                         # encoding: [0x4e,0x00,0x00,0x21]
66          bdnzlrl
67
68 # FIXME: bdnzt 2, target
69 # FIXME: bdnzt target
70 # FIXME: bdnzta 2, target
71 # FIXME: bdnzta target
72 # FIXME: bdnztlr 2
73 # FIXME: bdnztlr
74 # FIXME: bdnztl 2, target
75 # FIXME: bdnztl target
76 # FIXME: bdnztla 2, target
77 # FIXME: bdnztla target
78 # FIXME: bdnztlrl 2
79 # FIXME: bdnztlrl
80 # FIXME: bdnzf 2, target
81 # FIXME: bdnzf target
82 # FIXME: bdnzfa 2, target
83 # FIXME: bdnzfa target
84 # FIXME: bdnzflr 2
85 # FIXME: bdnzflr
86 # FIXME: bdnzfl 2, target
87 # FIXME: bdnzfl target
88 # FIXME: bdnzfla 2, target
89 # FIXME: bdnzfla target
90 # FIXME: bdnzflrl 2
91 # FIXME: bdnzflrl
92
93 # CHECK: bdz target                      # encoding: [0x42,0x40,A,0bAAAAAA00]
94 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
95          bdz target
96 # CHECK: bdza target                     # encoding: [0x42,0x40,A,0bAAAAAA10]
97 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
98          bdza target
99 # CHECK: bdzlr                           # encoding: [0x4e,0x40,0x00,0x20]
100          bdzlr
101 # CHECK: bdzl target                     # encoding: [0x42,0x40,A,0bAAAAAA01]
102 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
103          bdzl target
104 # CHECK: bdzla target                    # encoding: [0x42,0x40,A,0bAAAAAA11]
105 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
106          bdzla target
107 # CHECK: bdzlrl                          # encoding: [0x4e,0x40,0x00,0x21]
108          bdzlrl
109
110 # FIXME: bdzt 2, target
111 # FIXME: bdzt target
112 # FIXME: bdzta 2, target
113 # FIXME: bdzta target
114 # FIXME: bdztlr 2
115 # FIXME: bdztlr
116 # FIXME: bdztl 2, target
117 # FIXME: bdztl target
118 # FIXME: bdztla 2, target
119 # FIXME: bdztla target
120 # FIXME: bdztlrl 2
121 # FIXME: bdztlrl
122 # FIXME: bdzf 2, target
123 # FIXME: bdzf target
124 # FIXME: bdzfa 2, target
125 # FIXME: bdzfa target
126 # FIXME: bdzflr 2
127 # FIXME: bdzflr
128 # FIXME: bdzfl 2, target
129 # FIXME: bdzfl target
130 # FIXME: bdzfla 2, target
131 # FIXME: bdzfla target
132 # FIXME: bdzflrl 2
133 # FIXME: bdzflrl
134
135 # CHECK: blt 2, target                   # encoding: [0x41,0x88,A,0bAAAAAA00]
136 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
137          blt 2, target
138 # CHECK: blt 0, target                   # encoding: [0x41,0x80,A,0bAAAAAA00]
139 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
140          blt target
141 # CHECK: blta 2, target                  # encoding: [0x41,0x88,A,0bAAAAAA10]
142 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
143          blta 2, target
144 # CHECK: blta 0, target                  # encoding: [0x41,0x80,A,0bAAAAAA10]
145 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
146          blta target
147 # CHECK: bltlr 2                         # encoding: [0x4d,0x88,0x00,0x20]
148          bltlr 2
149 # CHECK: bltlr 0                         # encoding: [0x4d,0x80,0x00,0x20]
150          bltlr
151 # CHECK: bltctr 2                        # encoding: [0x4d,0x88,0x04,0x20]
152          bltctr 2
153 # CHECK: bltctr 0                        # encoding: [0x4d,0x80,0x04,0x20]
154          bltctr
155 # CHECK: bltl 2, target                  # encoding: [0x41,0x88,A,0bAAAAAA01]
156 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
157          bltl 2, target
158 # CHECK: bltl 0, target                  # encoding: [0x41,0x80,A,0bAAAAAA01]
159 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
160          bltl target
161 # CHECK: bltla 2, target                 # encoding: [0x41,0x88,A,0bAAAAAA11]
162 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
163          bltla 2, target
164 # CHECK: bltla 0, target                 # encoding: [0x41,0x80,A,0bAAAAAA11]
165 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
166          bltla target
167 # CHECK: bltlrl 2                        # encoding: [0x4d,0x88,0x00,0x21]
168          bltlrl 2
169 # CHECK: bltlrl 0                        # encoding: [0x4d,0x80,0x00,0x21]
170          bltlrl
171 # CHECK: bltctrl 2                       # encoding: [0x4d,0x88,0x04,0x21]
172          bltctrl 2
173 # CHECK: bltctrl 0                       # encoding: [0x4d,0x80,0x04,0x21]
174          bltctrl
175
176 # CHECK: ble 2, target                   # encoding: [0x40,0x89,A,0bAAAAAA00]
177 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
178          ble 2, target
179 # CHECK: ble 0, target                   # encoding: [0x40,0x81,A,0bAAAAAA00]
180 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
181          ble target
182 # CHECK: blea 2, target                  # encoding: [0x40,0x89,A,0bAAAAAA10]
183 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
184          blea 2, target
185 # CHECK: blea 0, target                  # encoding: [0x40,0x81,A,0bAAAAAA10]
186 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
187          blea target
188 # CHECK: blelr 2                         # encoding: [0x4c,0x89,0x00,0x20]
189          blelr 2
190 # CHECK: blelr 0                         # encoding: [0x4c,0x81,0x00,0x20]
191          blelr
192 # CHECK: blectr 2                        # encoding: [0x4c,0x89,0x04,0x20]
193          blectr 2
194 # CHECK: blectr 0                        # encoding: [0x4c,0x81,0x04,0x20]
195          blectr
196 # CHECK: blel 2, target                  # encoding: [0x40,0x89,A,0bAAAAAA01]
197 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
198          blel 2, target
199 # CHECK: blel 0, target                  # encoding: [0x40,0x81,A,0bAAAAAA01]
200 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
201          blel target
202 # CHECK: blela 2, target                 # encoding: [0x40,0x89,A,0bAAAAAA11]
203 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
204          blela 2, target
205 # CHECK: blela 0, target                 # encoding: [0x40,0x81,A,0bAAAAAA11]
206 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
207          blela target
208 # CHECK: blelrl 2                        # encoding: [0x4c,0x89,0x00,0x21]
209          blelrl 2
210 # CHECK: blelrl 0                        # encoding: [0x4c,0x81,0x00,0x21]
211          blelrl
212 # CHECK: blectrl 2                       # encoding: [0x4c,0x89,0x04,0x21]
213          blectrl 2
214 # CHECK: blectrl 0                       # encoding: [0x4c,0x81,0x04,0x21]
215          blectrl
216
217 # CHECK: beq 2, target                   # encoding: [0x41,0x8a,A,0bAAAAAA00]
218 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
219          beq 2, target
220 # CHECK: beq 0, target                   # encoding: [0x41,0x82,A,0bAAAAAA00]
221 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
222          beq target
223 # CHECK: beqa 2, target                  # encoding: [0x41,0x8a,A,0bAAAAAA10]
224 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
225          beqa 2, target
226 # CHECK: beqa 0, target                  # encoding: [0x41,0x82,A,0bAAAAAA10]
227 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
228          beqa target
229 # CHECK: beqlr 2                         # encoding: [0x4d,0x8a,0x00,0x20]
230          beqlr 2
231 # CHECK: beqlr 0                         # encoding: [0x4d,0x82,0x00,0x20]
232          beqlr
233 # CHECK: beqctr 2                        # encoding: [0x4d,0x8a,0x04,0x20]
234          beqctr 2
235 # CHECK: beqctr 0                        # encoding: [0x4d,0x82,0x04,0x20]
236          beqctr
237 # CHECK: beql 2, target                  # encoding: [0x41,0x8a,A,0bAAAAAA01]
238 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
239          beql 2, target
240 # CHECK: beql 0, target                  # encoding: [0x41,0x82,A,0bAAAAAA01]
241 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
242          beql target
243 # CHECK: beqla 2, target                 # encoding: [0x41,0x8a,A,0bAAAAAA11]
244 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
245          beqla 2, target
246 # CHECK: beqla 0, target                 # encoding: [0x41,0x82,A,0bAAAAAA11]
247 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
248          beqla target
249 # CHECK: beqlrl 2                        # encoding: [0x4d,0x8a,0x00,0x21]
250          beqlrl 2
251 # CHECK: beqlrl 0                        # encoding: [0x4d,0x82,0x00,0x21]
252          beqlrl
253 # CHECK: beqctrl 2                       # encoding: [0x4d,0x8a,0x04,0x21]
254          beqctrl 2
255 # CHECK: beqctrl 0                       # encoding: [0x4d,0x82,0x04,0x21]
256          beqctrl
257
258 # CHECK: bge 2, target                   # encoding: [0x40,0x88,A,0bAAAAAA00]
259 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
260          bge 2, target
261 # CHECK: bge 0, target                   # encoding: [0x40,0x80,A,0bAAAAAA00]
262 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
263          bge target
264 # CHECK: bgea 2, target                  # encoding: [0x40,0x88,A,0bAAAAAA10]
265 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
266          bgea 2, target
267 # CHECK: bgea 0, target                  # encoding: [0x40,0x80,A,0bAAAAAA10]
268 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
269          bgea target
270 # CHECK: bgelr 2                         # encoding: [0x4c,0x88,0x00,0x20]
271          bgelr 2
272 # CHECK: bgelr 0                         # encoding: [0x4c,0x80,0x00,0x20]
273          bgelr
274 # CHECK: bgectr 2                        # encoding: [0x4c,0x88,0x04,0x20]
275          bgectr 2
276 # CHECK: bgectr 0                        # encoding: [0x4c,0x80,0x04,0x20]
277          bgectr
278 # CHECK: bgel 2, target                  # encoding: [0x40,0x88,A,0bAAAAAA01]
279 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
280          bgel 2, target
281 # CHECK: bgel 0, target                  # encoding: [0x40,0x80,A,0bAAAAAA01]
282 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
283          bgel target
284 # CHECK: bgela 2, target                 # encoding: [0x40,0x88,A,0bAAAAAA11]
285 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
286          bgela 2, target
287 # CHECK: bgela 0, target                 # encoding: [0x40,0x80,A,0bAAAAAA11]
288 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
289          bgela target
290 # CHECK: bgelrl 2                        # encoding: [0x4c,0x88,0x00,0x21]
291          bgelrl 2
292 # CHECK: bgelrl 0                        # encoding: [0x4c,0x80,0x00,0x21]
293          bgelrl
294 # CHECK: bgectrl 2                       # encoding: [0x4c,0x88,0x04,0x21]
295          bgectrl 2
296 # CHECK: bgectrl 0                       # encoding: [0x4c,0x80,0x04,0x21]
297          bgectrl
298
299 # CHECK: bgt 2, target                   # encoding: [0x41,0x89,A,0bAAAAAA00]
300 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
301          bgt 2, target
302 # CHECK: bgt 0, target                   # encoding: [0x41,0x81,A,0bAAAAAA00]
303 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
304          bgt target
305 # CHECK: bgta 2, target                  # encoding: [0x41,0x89,A,0bAAAAAA10]
306 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
307          bgta 2, target
308 # CHECK: bgta 0, target                  # encoding: [0x41,0x81,A,0bAAAAAA10]
309 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
310          bgta target
311 # CHECK: bgtlr 2                         # encoding: [0x4d,0x89,0x00,0x20]
312          bgtlr 2
313 # CHECK: bgtlr 0                         # encoding: [0x4d,0x81,0x00,0x20]
314          bgtlr
315 # CHECK: bgtctr 2                        # encoding: [0x4d,0x89,0x04,0x20]
316          bgtctr 2
317 # CHECK: bgtctr 0                        # encoding: [0x4d,0x81,0x04,0x20]
318          bgtctr
319 # CHECK: bgtl 2, target                  # encoding: [0x41,0x89,A,0bAAAAAA01]
320 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
321          bgtl 2, target
322 # CHECK: bgtl 0, target                  # encoding: [0x41,0x81,A,0bAAAAAA01]
323 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
324          bgtl target
325 # CHECK: bgtla 2, target                 # encoding: [0x41,0x89,A,0bAAAAAA11]
326 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
327          bgtla 2, target
328 # CHECK: bgtla 0, target                 # encoding: [0x41,0x81,A,0bAAAAAA11]
329 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
330          bgtla target
331 # CHECK: bgtlrl 2                        # encoding: [0x4d,0x89,0x00,0x21]
332          bgtlrl 2
333 # CHECK: bgtlrl 0                        # encoding: [0x4d,0x81,0x00,0x21]
334          bgtlrl
335 # CHECK: bgtctrl 2                       # encoding: [0x4d,0x89,0x04,0x21]
336          bgtctrl 2
337 # CHECK: bgtctrl 0                       # encoding: [0x4d,0x81,0x04,0x21]
338          bgtctrl
339
340 # CHECK: bge 2, target                   # encoding: [0x40,0x88,A,0bAAAAAA00]
341 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
342          bnl 2, target
343 # CHECK: bge 0, target                   # encoding: [0x40,0x80,A,0bAAAAAA00]
344 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
345          bnl target
346 # CHECK: bgea 2, target                  # encoding: [0x40,0x88,A,0bAAAAAA10]
347 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
348          bnla 2, target
349 # CHECK: bgea 0, target                  # encoding: [0x40,0x80,A,0bAAAAAA10]
350 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
351          bnla target
352 # CHECK: bgelr 2                         # encoding: [0x4c,0x88,0x00,0x20]
353          bnllr 2
354 # CHECK: bgelr 0                         # encoding: [0x4c,0x80,0x00,0x20]
355          bnllr
356 # CHECK: bgectr 2                        # encoding: [0x4c,0x88,0x04,0x20]
357          bnlctr 2
358 # CHECK: bgectr 0                        # encoding: [0x4c,0x80,0x04,0x20]
359          bnlctr
360 # CHECK: bgel 2, target                  # encoding: [0x40,0x88,A,0bAAAAAA01]
361 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
362          bnll 2, target
363 # CHECK: bgel 0, target                  # encoding: [0x40,0x80,A,0bAAAAAA01]
364 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
365          bnll target
366 # CHECK: bgela 2, target                  # encoding: [0x40,0x88,A,0bAAAAAA11]
367 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
368          bnlla 2, target
369 # CHECK: bgela 0, target                  # encoding: [0x40,0x80,A,0bAAAAAA11]
370 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
371          bnlla target
372 # CHECK: bgelrl 2                        # encoding: [0x4c,0x88,0x00,0x21]
373          bnllrl 2
374 # CHECK: bgelrl 0                        # encoding: [0x4c,0x80,0x00,0x21]
375          bnllrl
376 # CHECK: bgectrl 2                       # encoding: [0x4c,0x88,0x04,0x21]
377          bnlctrl 2
378 # CHECK: bgectrl 0                       # encoding: [0x4c,0x80,0x04,0x21]
379          bnlctrl
380
381 # CHECK: bne 2, target                   # encoding: [0x40,0x8a,A,0bAAAAAA00]
382 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
383          bne 2, target
384 # CHECK: bne 0, target                   # encoding: [0x40,0x82,A,0bAAAAAA00]
385 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
386          bne target
387 # CHECK: bnea 2, target                  # encoding: [0x40,0x8a,A,0bAAAAAA10]
388 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
389          bnea 2, target
390 # CHECK: bnea 0, target                  # encoding: [0x40,0x82,A,0bAAAAAA10]
391 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
392          bnea target
393 # CHECK: bnelr 2                         # encoding: [0x4c,0x8a,0x00,0x20]
394          bnelr 2
395 # CHECK: bnelr 0                         # encoding: [0x4c,0x82,0x00,0x20]
396          bnelr
397 # CHECK: bnectr 2                        # encoding: [0x4c,0x8a,0x04,0x20]
398          bnectr 2
399 # CHECK: bnectr 0                        # encoding: [0x4c,0x82,0x04,0x20]
400          bnectr
401 # CHECK: bnel 2, target                  # encoding: [0x40,0x8a,A,0bAAAAAA01]
402 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
403          bnel 2, target
404 # CHECK: bnel 0, target                  # encoding: [0x40,0x82,A,0bAAAAAA01]
405 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
406          bnel target
407 # CHECK: bnela 2, target                 # encoding: [0x40,0x8a,A,0bAAAAAA11]
408 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
409          bnela 2, target
410 # CHECK: bnela 0, target                 # encoding: [0x40,0x82,A,0bAAAAAA11]
411 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
412          bnela target
413 # CHECK: bnelrl 2                        # encoding: [0x4c,0x8a,0x00,0x21]
414          bnelrl 2
415 # CHECK: bnelrl 0                        # encoding: [0x4c,0x82,0x00,0x21]
416          bnelrl
417 # CHECK: bnectrl 2                       # encoding: [0x4c,0x8a,0x04,0x21]
418          bnectrl 2
419 # CHECK: bnectrl 0                       # encoding: [0x4c,0x82,0x04,0x21]
420          bnectrl
421
422 # CHECK: ble 2, target                   # encoding: [0x40,0x89,A,0bAAAAAA00]
423 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
424          bng 2, target
425 # CHECK: ble 0, target                   # encoding: [0x40,0x81,A,0bAAAAAA00]
426 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
427          bng target
428 # CHECK: blea 2, target                  # encoding: [0x40,0x89,A,0bAAAAAA10]
429 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
430          bnga 2, target
431 # CHECK: blea 0, target                  # encoding: [0x40,0x81,A,0bAAAAAA10]
432 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
433          bnga target
434 # CHECK: blelr 2                         # encoding: [0x4c,0x89,0x00,0x20]
435          bnglr 2
436 # CHECK: blelr 0                         # encoding: [0x4c,0x81,0x00,0x20]
437          bnglr
438 # CHECK: blectr 2                        # encoding: [0x4c,0x89,0x04,0x20]
439          bngctr 2
440 # CHECK: blectr 0                        # encoding: [0x4c,0x81,0x04,0x20]
441          bngctr
442 # CHECK: blel 2, target                  # encoding: [0x40,0x89,A,0bAAAAAA01]
443 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
444          bngl 2, target
445 # CHECK: blel 0, target                  # encoding: [0x40,0x81,A,0bAAAAAA01]
446 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
447          bngl target
448 # CHECK: blela 2, target                 # encoding: [0x40,0x89,A,0bAAAAAA11]
449 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
450          bngla 2, target
451 # CHECK: blela 0, target                 # encoding: [0x40,0x81,A,0bAAAAAA11]
452 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
453          bngla target
454 # CHECK: blelrl 2                        # encoding: [0x4c,0x89,0x00,0x21]
455          bnglrl 2
456 # CHECK: blelrl 0                        # encoding: [0x4c,0x81,0x00,0x21]
457          bnglrl
458 # CHECK: blectrl 2                       # encoding: [0x4c,0x89,0x04,0x21]
459          bngctrl 2
460 # CHECK: blectrl 0                       # encoding: [0x4c,0x81,0x04,0x21]
461          bngctrl
462
463 # CHECK: bun 2, target                   # encoding: [0x41,0x8b,A,0bAAAAAA00]
464 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
465          bso 2, target
466 # CHECK: bun 0, target                   # encoding: [0x41,0x83,A,0bAAAAAA00]
467 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
468          bso target
469 # CHECK: buna 2, target                  # encoding: [0x41,0x8b,A,0bAAAAAA10]
470 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
471          bsoa 2, target
472 # CHECK: buna 0, target                  # encoding: [0x41,0x83,A,0bAAAAAA10]
473 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
474          bsoa target
475 # CHECK: bunlr 2                         # encoding: [0x4d,0x8b,0x00,0x20]
476          bsolr 2
477 # CHECK: bunlr 0                         # encoding: [0x4d,0x83,0x00,0x20]
478          bsolr
479 # CHECK: bunctr 2                        # encoding: [0x4d,0x8b,0x04,0x20]
480          bsoctr 2
481 # CHECK: bunctr 0                        # encoding: [0x4d,0x83,0x04,0x20]
482          bsoctr
483 # CHECK: bunl 2, target                  # encoding: [0x41,0x8b,A,0bAAAAAA01]
484 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
485          bsol 2, target
486 # CHECK: bunl 0, target                  # encoding: [0x41,0x83,A,0bAAAAAA01]
487 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
488          bsol target
489 # CHECK: bunla 2, target                 # encoding: [0x41,0x8b,A,0bAAAAAA11]
490 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
491          bsola 2, target
492 # CHECK: bunla 0, target                 # encoding: [0x41,0x83,A,0bAAAAAA11]
493 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
494          bsola target
495 # CHECK: bunlrl 2                        # encoding: [0x4d,0x8b,0x00,0x21]
496          bsolrl 2
497 # CHECK: bunlrl 0                        # encoding: [0x4d,0x83,0x00,0x21]
498          bsolrl
499 # CHECK: bunctrl 2                       # encoding: [0x4d,0x8b,0x04,0x21]
500          bsoctrl 2
501 # CHECK: bunctrl 0                       # encoding: [0x4d,0x83,0x04,0x21]
502          bsoctrl
503
504 # CHECK: bnu 2, target                   # encoding: [0x40,0x8b,A,0bAAAAAA00]
505 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
506          bns 2, target
507 # CHECK: bnu 0, target                   # encoding: [0x40,0x83,A,0bAAAAAA00]
508 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
509          bns target
510 # CHECK: bnua 2, target                  # encoding: [0x40,0x8b,A,0bAAAAAA10]
511 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
512          bnsa 2, target
513 # CHECK: bnua 0, target                  # encoding: [0x40,0x83,A,0bAAAAAA10]
514 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
515          bnsa target
516 # CHECK: bnulr 2                         # encoding: [0x4c,0x8b,0x00,0x20]
517          bnslr 2
518 # CHECK: bnulr 0                         # encoding: [0x4c,0x83,0x00,0x20]
519          bnslr
520 # CHECK: bnuctr 2                        # encoding: [0x4c,0x8b,0x04,0x20]
521          bnsctr 2
522 # CHECK: bnuctr 0                        # encoding: [0x4c,0x83,0x04,0x20]
523          bnsctr
524 # CHECK: bnul 2, target                  # encoding: [0x40,0x8b,A,0bAAAAAA01]
525 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
526          bnsl 2, target
527 # CHECK: bnul 0, target                  # encoding: [0x40,0x83,A,0bAAAAAA01]
528 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
529          bnsl target
530 # CHECK: bnula 2, target                 # encoding: [0x40,0x8b,A,0bAAAAAA11]
531 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
532          bnsla 2, target
533 # CHECK: bnula 0, target                 # encoding: [0x40,0x83,A,0bAAAAAA11]
534 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
535          bnsla target
536 # CHECK: bnulrl 2                        # encoding: [0x4c,0x8b,0x00,0x21]
537          bnslrl 2
538 # CHECK: bnulrl 0                        # encoding: [0x4c,0x83,0x00,0x21]
539          bnslrl
540 # CHECK: bnuctrl 2                       # encoding: [0x4c,0x8b,0x04,0x21]
541          bnsctrl 2
542 # CHECK: bnuctrl 0                       # encoding: [0x4c,0x83,0x04,0x21]
543          bnsctrl
544
545 # CHECK: bun 2, target                   # encoding: [0x41,0x8b,A,0bAAAAAA00]
546 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
547          bun 2, target
548 # CHECK: bun 0, target                   # encoding: [0x41,0x83,A,0bAAAAAA00]
549 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
550          bun target
551 # CHECK: buna 2, target                  # encoding: [0x41,0x8b,A,0bAAAAAA10]
552 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
553          buna 2, target
554 # CHECK: buna 0, target                  # encoding: [0x41,0x83,A,0bAAAAAA10]
555 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
556          buna target
557 # CHECK: bunlr 2                         # encoding: [0x4d,0x8b,0x00,0x20]
558          bunlr 2
559 # CHECK: bunlr 0                         # encoding: [0x4d,0x83,0x00,0x20]
560          bunlr
561 # CHECK: bunctr 2                        # encoding: [0x4d,0x8b,0x04,0x20]
562          bunctr 2
563 # CHECK: bunctr 0                        # encoding: [0x4d,0x83,0x04,0x20]
564          bunctr
565 # CHECK: bunl 2, target                  # encoding: [0x41,0x8b,A,0bAAAAAA01]
566 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
567          bunl 2, target
568 # CHECK: bunl 0, target                  # encoding: [0x41,0x83,A,0bAAAAAA01]
569 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
570          bunl target
571 # CHECK: bunla 2, target                 # encoding: [0x41,0x8b,A,0bAAAAAA11]
572 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
573          bunla 2, target
574 # CHECK: bunla 0, target                 # encoding: [0x41,0x83,A,0bAAAAAA11]
575 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
576          bunla target
577 # CHECK: bunlrl 2                        # encoding: [0x4d,0x8b,0x00,0x21]
578          bunlrl 2
579 # CHECK: bunlrl 0                        # encoding: [0x4d,0x83,0x00,0x21]
580          bunlrl
581 # CHECK: bunctrl 2                       # encoding: [0x4d,0x8b,0x04,0x21]
582          bunctrl 2
583 # CHECK: bunctrl 0                       # encoding: [0x4d,0x83,0x04,0x21]
584          bunctrl
585
586 # CHECK: bnu 2, target                   # encoding: [0x40,0x8b,A,0bAAAAAA00]
587 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
588          bnu 2, target
589 # CHECK: bnu 0, target                   # encoding: [0x40,0x83,A,0bAAAAAA00]
590 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
591          bnu target
592 # CHECK: bnua 2, target                  # encoding: [0x40,0x8b,A,0bAAAAAA10]
593 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
594          bnua 2, target
595 # CHECK: bnua 0, target                  # encoding: [0x40,0x83,A,0bAAAAAA10]
596 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
597          bnua target
598 # CHECK: bnulr 2                         # encoding: [0x4c,0x8b,0x00,0x20]
599          bnulr 2
600 # CHECK: bnulr 0                         # encoding: [0x4c,0x83,0x00,0x20]
601          bnulr
602 # CHECK: bnuctr 2                        # encoding: [0x4c,0x8b,0x04,0x20]
603          bnuctr 2
604 # CHECK: bnuctr 0                        # encoding: [0x4c,0x83,0x04,0x20]
605          bnuctr
606 # CHECK: bnul 2, target                  # encoding: [0x40,0x8b,A,0bAAAAAA01]
607 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
608          bnul 2, target
609 # CHECK: bnul 0, target                  # encoding: [0x40,0x83,A,0bAAAAAA01]
610 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
611          bnul target
612 # CHECK: bnula 2, target                 # encoding: [0x40,0x8b,A,0bAAAAAA11]
613 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
614          bnula 2, target
615 # CHECK: bnula 0, target                 # encoding: [0x40,0x83,A,0bAAAAAA11]
616 # CHECK-NEXT:                            #   fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
617          bnula target
618 # CHECK: bnulrl 2                        # encoding: [0x4c,0x8b,0x00,0x21]
619          bnulrl 2
620 # CHECK: bnulrl 0                        # encoding: [0x4c,0x83,0x00,0x21]
621          bnulrl
622 # CHECK: bnuctrl 2                       # encoding: [0x4c,0x8b,0x04,0x21]
623          bnuctrl 2
624 # CHECK: bnuctrl 0                       # encoding: [0x4c,0x83,0x04,0x21]
625          bnuctrl
626
627 # FIXME: Condition register logical mnemonics
628
629 # FIXME: Subtract mnemonics
630
631 # Compare mnemonics
632
633 # CHECK: cmpdi 2, 3, 128                 # encoding: [0x2d,0x23,0x00,0x80]
634          cmpdi 2, 3, 128
635 # CHECK: cmpdi 0, 3, 128                 # encoding: [0x2c,0x23,0x00,0x80]
636          cmpdi 3, 128
637 # CHECK: cmpd 2, 3, 4                    # encoding: [0x7d,0x23,0x20,0x00]
638          cmpd 2, 3, 4
639 # CHECK: cmpd 0, 3, 4                    # encoding: [0x7c,0x23,0x20,0x00]
640          cmpd 3, 4
641 # CHECK: cmpldi 2, 3, 128                # encoding: [0x29,0x23,0x00,0x80]
642          cmpldi 2, 3, 128
643 # CHECK: cmpldi 0, 3, 128                # encoding: [0x28,0x23,0x00,0x80]
644          cmpldi 3, 128
645 # CHECK: cmpld 2, 3, 4                   # encoding: [0x7d,0x23,0x20,0x40]
646          cmpld 2, 3, 4
647 # CHECK: cmpld 0, 3, 4                   # encoding: [0x7c,0x23,0x20,0x40]
648          cmpld 3, 4
649
650 # CHECK: cmpwi 2, 3, 128                 # encoding: [0x2d,0x03,0x00,0x80]
651          cmpwi 2, 3, 128
652 # CHECK: cmpwi 0, 3, 128                 # encoding: [0x2c,0x03,0x00,0x80]
653          cmpwi 3, 128
654 # CHECK: cmpw 2, 3, 4                    # encoding: [0x7d,0x03,0x20,0x00]
655          cmpw 2, 3, 4
656 # CHECK: cmpw 0, 3, 4                    # encoding: [0x7c,0x03,0x20,0x00]
657          cmpw 3, 4
658 # CHECK: cmplwi 2, 3, 128                # encoding: [0x29,0x03,0x00,0x80]
659          cmplwi 2, 3, 128
660 # CHECK: cmplwi 0, 3, 128                # encoding: [0x28,0x03,0x00,0x80]
661          cmplwi 3, 128
662 # CHECK: cmplw 2, 3, 4                   # encoding: [0x7d,0x03,0x20,0x40]
663          cmplw 2, 3, 4
664 # CHECK: cmplw 0, 3, 4                   # encoding: [0x7c,0x03,0x20,0x40]
665          cmplw 3, 4
666
667 # FIXME: Trap mnemonics
668
669 # Rotate and shift mnemonics
670
671 # FIXME: extldi 2, 3, 4, 5
672 # FIXME: extrdi 2, 3, 4, 5
673 # FIXME: insrdi 2, 3, 4, 5
674 # FIXME: rotldi 2, 3, 4
675 # FIXME: rotrdi 2, 3, 4
676 # FIXME: rotld 2, 3, 4
677 # CHECK: sldi 2, 3, 4                    # encoding: [0x78,0x62,0x26,0xe4]
678          sldi 2, 3, 4
679 # CHECK: rldicl 2, 3, 60, 4              # encoding: [0x78,0x62,0xe1,0x02]
680          srdi 2, 3, 4
681 # FIXME: clrldi 2, 3, 4
682 # FIXME: clrrdi 2, 3, 4
683 # FIXME: clrlsldi 2, 3, 4, 5
684
685 # FIXME: extlwi 2, 3, 4, 5
686 # FIXME: extrwi 2, 3, 4, 5
687 # FIXME: inslwi 2, 3, 4, 5
688 # FIXME: insrwi 2, 3, 4, 5
689 # FIXME: rotlwi 2, 3, 4
690 # FIXME: rotrwi 2, 3, 4
691 # FIXME: rotlw 2, 3, 4
692 # CHECK: slwi 2, 3, 4                    # encoding: [0x54,0x62,0x20,0x36]
693          slwi 2, 3, 4
694 # CHECK: srwi 2, 3, 4                    # encoding: [0x54,0x62,0xe1,0x3e]
695          srwi 2, 3, 4
696 # FIXME: clrlwi 2, 3, 4
697 # FIXME: clrrwi 2, 3, 4
698 # FIXME: clrlslwi 2, 3, 4, 5
699
700 # Move to/from special purpose register mnemonics
701
702 # FIXME: mtxer 2
703 # FIXME: mfxer 2
704 # CHECK: mtlr 2                          # encoding: [0x7c,0x48,0x03,0xa6]
705          mtlr 2
706 # CHECK: mflr 2                          # encoding: [0x7c,0x48,0x02,0xa6]
707          mflr 2
708 # CHECK: mtctr 2                         # encoding: [0x7c,0x49,0x03,0xa6]
709          mtctr 2
710 # CHECK: mfctr 2                         # encoding: [0x7c,0x49,0x02,0xa6]
711          mfctr 2
712
713 # Miscellaneous mnemonics
714
715 # CHECK: nop                             # encoding: [0x60,0x00,0x00,0x00]
716          nop
717 # FIXME: xnop
718 # CHECK: li 2, 128                       # encoding: [0x38,0x40,0x00,0x80]
719          li 2, 128
720 # CHECK: lis 2, 128                      # encoding: [0x3c,0x40,0x00,0x80]
721          lis 2, 128
722 # FIXME: la 2, 128(4)
723 # CHECK: mr 2, 3                         # encoding: [0x7c,0x62,0x1b,0x78]
724          mr 2, 3
725 # FIXME: not 2, 3
726