blob: 9bbeba0f3408f71d4227b6bc9220e7aac9ab9084 [file] [log] [blame]
Ulrich Weigandd8394902013-05-03 19:50:27 +00001
2# RUN: llvm-mc -triple powerpc64-unknown-unknown --show-encoding %s | FileCheck %s
3
Ulrich Weigandb86cb7d2013-07-04 14:24:00 +00004# Condition register bit symbols
5
6# CHECK: beqlr 0 # encoding: [0x4d,0x82,0x00,0x20]
7 beqlr cr0
8# CHECK: beqlr 1 # encoding: [0x4d,0x86,0x00,0x20]
9 beqlr cr1
10# CHECK: beqlr 2 # encoding: [0x4d,0x8a,0x00,0x20]
11 beqlr cr2
12# CHECK: beqlr 3 # encoding: [0x4d,0x8e,0x00,0x20]
13 beqlr cr3
14# CHECK: beqlr 4 # encoding: [0x4d,0x92,0x00,0x20]
15 beqlr cr4
16# CHECK: beqlr 5 # encoding: [0x4d,0x96,0x00,0x20]
17 beqlr cr5
18# CHECK: beqlr 6 # encoding: [0x4d,0x9a,0x00,0x20]
19 beqlr cr6
20# CHECK: beqlr 7 # encoding: [0x4d,0x9e,0x00,0x20]
21 beqlr cr7
22
23# CHECK: bclr 12, 0, 0 # encoding: [0x4d,0x80,0x00,0x20]
24 btlr 4*cr0+lt
25# CHECK: bclr 12, 1, 0 # encoding: [0x4d,0x81,0x00,0x20]
26 btlr 4*cr0+gt
27# CHECK: bclr 12, 2, 0 # encoding: [0x4d,0x82,0x00,0x20]
28 btlr 4*cr0+eq
29# CHECK: bclr 12, 3, 0 # encoding: [0x4d,0x83,0x00,0x20]
30 btlr 4*cr0+so
31# CHECK: bclr 12, 3, 0 # encoding: [0x4d,0x83,0x00,0x20]
32 btlr 4*cr0+un
33# CHECK: bclr 12, 4, 0 # encoding: [0x4d,0x84,0x00,0x20]
34 btlr 4*cr1+lt
35# CHECK: bclr 12, 5, 0 # encoding: [0x4d,0x85,0x00,0x20]
36 btlr 4*cr1+gt
37# CHECK: bclr 12, 6, 0 # encoding: [0x4d,0x86,0x00,0x20]
38 btlr 4*cr1+eq
39# CHECK: bclr 12, 7, 0 # encoding: [0x4d,0x87,0x00,0x20]
40 btlr 4*cr1+so
41# CHECK: bclr 12, 7, 0 # encoding: [0x4d,0x87,0x00,0x20]
42 btlr 4*cr1+un
43# CHECK: bclr 12, 8, 0 # encoding: [0x4d,0x88,0x00,0x20]
44 btlr 4*cr2+lt
45# CHECK: bclr 12, 9, 0 # encoding: [0x4d,0x89,0x00,0x20]
46 btlr 4*cr2+gt
47# CHECK: bclr 12, 10, 0 # encoding: [0x4d,0x8a,0x00,0x20]
48 btlr 4*cr2+eq
49# CHECK: bclr 12, 11, 0 # encoding: [0x4d,0x8b,0x00,0x20]
50 btlr 4*cr2+so
51# CHECK: bclr 12, 11, 0 # encoding: [0x4d,0x8b,0x00,0x20]
52 btlr 4*cr2+un
53# CHECK: bclr 12, 12, 0 # encoding: [0x4d,0x8c,0x00,0x20]
54 btlr 4*cr3+lt
55# CHECK: bclr 12, 13, 0 # encoding: [0x4d,0x8d,0x00,0x20]
56 btlr 4*cr3+gt
57# CHECK: bclr 12, 14, 0 # encoding: [0x4d,0x8e,0x00,0x20]
58 btlr 4*cr3+eq
59# CHECK: bclr 12, 15, 0 # encoding: [0x4d,0x8f,0x00,0x20]
60 btlr 4*cr3+so
61# CHECK: bclr 12, 15, 0 # encoding: [0x4d,0x8f,0x00,0x20]
62 btlr 4*cr3+un
63# CHECK: bclr 12, 16, 0 # encoding: [0x4d,0x90,0x00,0x20]
64 btlr 4*cr4+lt
65# CHECK: bclr 12, 17, 0 # encoding: [0x4d,0x91,0x00,0x20]
66 btlr 4*cr4+gt
67# CHECK: bclr 12, 18, 0 # encoding: [0x4d,0x92,0x00,0x20]
68 btlr 4*cr4+eq
69# CHECK: bclr 12, 19, 0 # encoding: [0x4d,0x93,0x00,0x20]
70 btlr 4*cr4+so
71# CHECK: bclr 12, 19, 0 # encoding: [0x4d,0x93,0x00,0x20]
72 btlr 4*cr4+un
73# CHECK: bclr 12, 20, 0 # encoding: [0x4d,0x94,0x00,0x20]
74 btlr 4*cr5+lt
75# CHECK: bclr 12, 21, 0 # encoding: [0x4d,0x95,0x00,0x20]
76 btlr 4*cr5+gt
77# CHECK: bclr 12, 22, 0 # encoding: [0x4d,0x96,0x00,0x20]
78 btlr 4*cr5+eq
79# CHECK: bclr 12, 23, 0 # encoding: [0x4d,0x97,0x00,0x20]
80 btlr 4*cr5+so
81# CHECK: bclr 12, 23, 0 # encoding: [0x4d,0x97,0x00,0x20]
82 btlr 4*cr5+un
83# CHECK: bclr 12, 24, 0 # encoding: [0x4d,0x98,0x00,0x20]
84 btlr 4*cr6+lt
85# CHECK: bclr 12, 25, 0 # encoding: [0x4d,0x99,0x00,0x20]
86 btlr 4*cr6+gt
87# CHECK: bclr 12, 26, 0 # encoding: [0x4d,0x9a,0x00,0x20]
88 btlr 4*cr6+eq
89# CHECK: bclr 12, 27, 0 # encoding: [0x4d,0x9b,0x00,0x20]
90 btlr 4*cr6+so
91# CHECK: bclr 12, 27, 0 # encoding: [0x4d,0x9b,0x00,0x20]
92 btlr 4*cr6+un
93# CHECK: bclr 12, 28, 0 # encoding: [0x4d,0x9c,0x00,0x20]
94 btlr 4*cr7+lt
95# CHECK: bclr 12, 29, 0 # encoding: [0x4d,0x9d,0x00,0x20]
96 btlr 4*cr7+gt
97# CHECK: bclr 12, 30, 0 # encoding: [0x4d,0x9e,0x00,0x20]
98 btlr 4*cr7+eq
99# CHECK: bclr 12, 31, 0 # encoding: [0x4d,0x9f,0x00,0x20]
100 btlr 4*cr7+so
101# CHECK: bclr 12, 31, 0 # encoding: [0x4d,0x9f,0x00,0x20]
102 btlr 4*cr7+un
Ulrich Weigandd8394902013-05-03 19:50:27 +0000103
104# Branch mnemonics
105
106# CHECK: blr # encoding: [0x4e,0x80,0x00,0x20]
107 blr
108# CHECK: bctr # encoding: [0x4e,0x80,0x04,0x20]
109 bctr
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000110# CHECK: blrl # encoding: [0x4e,0x80,0x00,0x21]
111 blrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000112# CHECK: bctrl # encoding: [0x4e,0x80,0x04,0x21]
113 bctrl
114
Ulrich Weigandfedd5a72013-06-24 12:49:20 +0000115# CHECK: bc 12, 2, target # encoding: [0x41,0x82,A,0bAAAAAA00]
116# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
117 bt 2, target
118# CHECK: bca 12, 2, target # encoding: [0x41,0x82,A,0bAAAAAA10]
119# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
120 bta 2, target
121# CHECK: bclr 12, 2, 0 # encoding: [0x4d,0x82,0x00,0x20]
122 btlr 2
123# CHECK: bcctr 12, 2, 0 # encoding: [0x4d,0x82,0x04,0x20]
124 btctr 2
125# CHECK: bcl 12, 2, target # encoding: [0x41,0x82,A,0bAAAAAA01]
126# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
127 btl 2, target
128# CHECK: bcla 12, 2, target # encoding: [0x41,0x82,A,0bAAAAAA11]
129# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
130 btla 2, target
131# CHECK: bclrl 12, 2, 0 # encoding: [0x4d,0x82,0x00,0x21]
132 btlrl 2
133# CHECK: bcctrl 12, 2, 0 # encoding: [0x4d,0x82,0x04,0x21]
134 btctrl 2
Ulrich Weigandd8394902013-05-03 19:50:27 +0000135
Ulrich Weigand86247b62013-06-24 16:52:04 +0000136# CHECK: bc 15, 2, target # encoding: [0x41,0xe2,A,0bAAAAAA00]
137# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
138 bt+ 2, target
139# CHECK: bca 15, 2, target # encoding: [0x41,0xe2,A,0bAAAAAA10]
140# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
141 bta+ 2, target
142# CHECK: bclr 15, 2, 0 # encoding: [0x4d,0xe2,0x00,0x20]
143 btlr+ 2
144# CHECK: bcctr 15, 2, 0 # encoding: [0x4d,0xe2,0x04,0x20]
145 btctr+ 2
146# CHECK: bcl 15, 2, target # encoding: [0x41,0xe2,A,0bAAAAAA01]
147# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
148 btl+ 2, target
149# CHECK: bcla 15, 2, target # encoding: [0x41,0xe2,A,0bAAAAAA11]
150# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
151 btla+ 2, target
152# CHECK: bclrl 15, 2, 0 # encoding: [0x4d,0xe2,0x00,0x21]
153 btlrl+ 2
154# CHECK: bcctrl 15, 2, 0 # encoding: [0x4d,0xe2,0x04,0x21]
155 btctrl+ 2
156
157# CHECK: bc 14, 2, target # encoding: [0x41,0xc2,A,0bAAAAAA00]
158# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
159 bt- 2, target
160# CHECK: bca 14, 2, target # encoding: [0x41,0xc2,A,0bAAAAAA10]
161# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
162 bta- 2, target
163# CHECK: bclr 14, 2, 0 # encoding: [0x4d,0xc2,0x00,0x20]
164 btlr- 2
165# CHECK: bcctr 14, 2, 0 # encoding: [0x4d,0xc2,0x04,0x20]
166 btctr- 2
167# CHECK: bcl 14, 2, target # encoding: [0x41,0xc2,A,0bAAAAAA01]
168# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
169 btl- 2, target
170# CHECK: bcla 14, 2, target # encoding: [0x41,0xc2,A,0bAAAAAA11]
171# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
172 btla- 2, target
173# CHECK: bclrl 14, 2, 0 # encoding: [0x4d,0xc2,0x00,0x21]
174 btlrl- 2
175# CHECK: bcctrl 14, 2, 0 # encoding: [0x4d,0xc2,0x04,0x21]
176 btctrl- 2
177
Ulrich Weigandfedd5a72013-06-24 12:49:20 +0000178# CHECK: bc 4, 2, target # encoding: [0x40,0x82,A,0bAAAAAA00]
179# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
180 bf 2, target
181# CHECK: bca 4, 2, target # encoding: [0x40,0x82,A,0bAAAAAA10]
182# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
183 bfa 2, target
184# CHECK: bclr 4, 2, 0 # encoding: [0x4c,0x82,0x00,0x20]
185 bflr 2
186# CHECK: bcctr 4, 2, 0 # encoding: [0x4c,0x82,0x04,0x20]
187 bfctr 2
188# CHECK: bcl 4, 2, target # encoding: [0x40,0x82,A,0bAAAAAA01]
189# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
190 bfl 2, target
191# CHECK: bcla 4, 2, target # encoding: [0x40,0x82,A,0bAAAAAA11]
192# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
193 bfla 2, target
194# CHECK: bclrl 4, 2, 0 # encoding: [0x4c,0x82,0x00,0x21]
195 bflrl 2
196# CHECK: bcctrl 4, 2, 0 # encoding: [0x4c,0x82,0x04,0x21]
197 bfctrl 2
Ulrich Weigandd8394902013-05-03 19:50:27 +0000198
Ulrich Weigand86247b62013-06-24 16:52:04 +0000199# CHECK: bc 7, 2, target # encoding: [0x40,0xe2,A,0bAAAAAA00]
200# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
201 bf+ 2, target
202# CHECK: bca 7, 2, target # encoding: [0x40,0xe2,A,0bAAAAAA10]
203# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
204 bfa+ 2, target
205# CHECK: bclr 7, 2, 0 # encoding: [0x4c,0xe2,0x00,0x20]
206 bflr+ 2
207# CHECK: bcctr 7, 2, 0 # encoding: [0x4c,0xe2,0x04,0x20]
208 bfctr+ 2
209# CHECK: bcl 7, 2, target # encoding: [0x40,0xe2,A,0bAAAAAA01]
210# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
211 bfl+ 2, target
212# CHECK: bcla 7, 2, target # encoding: [0x40,0xe2,A,0bAAAAAA11]
213# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
214 bfla+ 2, target
215# CHECK: bclrl 7, 2, 0 # encoding: [0x4c,0xe2,0x00,0x21]
216 bflrl+ 2
217# CHECK: bcctrl 7, 2, 0 # encoding: [0x4c,0xe2,0x04,0x21]
218 bfctrl+ 2
219
220# CHECK: bc 6, 2, target # encoding: [0x40,0xc2,A,0bAAAAAA00]
221# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
222 bf- 2, target
223# CHECK: bca 6, 2, target # encoding: [0x40,0xc2,A,0bAAAAAA10]
224# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
225 bfa- 2, target
226# CHECK: bclr 6, 2, 0 # encoding: [0x4c,0xc2,0x00,0x20]
227 bflr- 2
228# CHECK: bcctr 6, 2, 0 # encoding: [0x4c,0xc2,0x04,0x20]
229 bfctr- 2
230# CHECK: bcl 6, 2, target # encoding: [0x40,0xc2,A,0bAAAAAA01]
231# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
232 bfl- 2, target
233# CHECK: bcla 6, 2, target # encoding: [0x40,0xc2,A,0bAAAAAA11]
234# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
235 bfla- 2, target
236# CHECK: bclrl 6, 2, 0 # encoding: [0x4c,0xc2,0x00,0x21]
237 bflrl- 2
238# CHECK: bcctrl 6, 2, 0 # encoding: [0x4c,0xc2,0x04,0x21]
239 bfctrl- 2
240
Ulrich Weigandd8394902013-05-03 19:50:27 +0000241# CHECK: bdnz target # encoding: [0x42,0x00,A,0bAAAAAA00]
242# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
243 bdnz target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000244# CHECK: bdnza target # encoding: [0x42,0x00,A,0bAAAAAA10]
245# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
246 bdnza target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000247# CHECK: bdnzlr # encoding: [0x4e,0x00,0x00,0x20]
248 bdnzlr
Ulrich Weigand5b9d5912013-06-24 11:02:38 +0000249# CHECK: bdnzl target # encoding: [0x42,0x00,A,0bAAAAAA01]
250# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
251 bdnzl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000252# CHECK: bdnzla target # encoding: [0x42,0x00,A,0bAAAAAA11]
253# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
254 bdnzla target
Ulrich Weigand5b9d5912013-06-24 11:02:38 +0000255# CHECK: bdnzlrl # encoding: [0x4e,0x00,0x00,0x21]
256 bdnzlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000257
Ulrich Weigand86247b62013-06-24 16:52:04 +0000258# CHECK: bdnz+ target # encoding: [0x43,0x20,A,0bAAAAAA00]
259# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
260 bdnz+ target
261# CHECK: bdnza+ target # encoding: [0x43,0x20,A,0bAAAAAA10]
262# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
263 bdnza+ target
264# CHECK: bdnzlr+ # encoding: [0x4f,0x20,0x00,0x20]
265 bdnzlr+
266# CHECK: bdnzl+ target # encoding: [0x43,0x20,A,0bAAAAAA01]
267# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
268 bdnzl+ target
269# CHECK: bdnzla+ target # encoding: [0x43,0x20,A,0bAAAAAA11]
270# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
271 bdnzla+ target
272# CHECK: bdnzlrl+ # encoding: [0x4f,0x20,0x00,0x21]
273 bdnzlrl+
274
275# CHECK: bdnz- target # encoding: [0x43,0x00,A,0bAAAAAA00]
276# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
277 bdnz- target
278# CHECK: bdnza- target # encoding: [0x43,0x00,A,0bAAAAAA10]
279# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
280 bdnza- target
281# CHECK: bdnzlr- # encoding: [0x4f,0x00,0x00,0x20]
282 bdnzlr-
283# CHECK: bdnzl- target # encoding: [0x43,0x00,A,0bAAAAAA01]
284# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
285 bdnzl- target
286# CHECK: bdnzla- target # encoding: [0x43,0x00,A,0bAAAAAA11]
287# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
288 bdnzla- target
289# CHECK: bdnzlrl- # encoding: [0x4f,0x00,0x00,0x21]
290 bdnzlrl-
291
Ulrich Weigandfedd5a72013-06-24 12:49:20 +0000292# CHECK: bc 8, 2, target # encoding: [0x41,0x02,A,0bAAAAAA00]
293# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
294 bdnzt 2, target
295# CHECK: bca 8, 2, target # encoding: [0x41,0x02,A,0bAAAAAA10]
296# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
297 bdnzta 2, target
298# CHECK: bclr 8, 2, 0 # encoding: [0x4d,0x02,0x00,0x20]
299 bdnztlr 2
300# CHECK: bcl 8, 2, target # encoding: [0x41,0x02,A,0bAAAAAA01]
301# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
302 bdnztl 2, target
303# CHECK: bcla 8, 2, target # encoding: [0x41,0x02,A,0bAAAAAA11]
304# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
305 bdnztla 2, target
306# CHECK: bclrl 8, 2, 0 # encoding: [0x4d,0x02,0x00,0x21]
307 bdnztlrl 2
308
309# CHECK: bc 0, 2, target # encoding: [0x40,0x02,A,0bAAAAAA00]
310# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
311 bdnzf 2, target
312# CHECK: bca 0, 2, target # encoding: [0x40,0x02,A,0bAAAAAA10]
313# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
314 bdnzfa 2, target
315# CHECK: bclr 0, 2, 0 # encoding: [0x4c,0x02,0x00,0x20]
316 bdnzflr 2
317# CHECK: bcl 0, 2, target # encoding: [0x40,0x02,A,0bAAAAAA01]
318# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
319 bdnzfl 2, target
320# CHECK: bcla 0, 2, target # encoding: [0x40,0x02,A,0bAAAAAA11]
321# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
322 bdnzfla 2, target
323# CHECK: bclrl 0, 2, 0 # encoding: [0x4c,0x02,0x00,0x21]
324 bdnzflrl 2
Ulrich Weigandd8394902013-05-03 19:50:27 +0000325
326# CHECK: bdz target # encoding: [0x42,0x40,A,0bAAAAAA00]
327# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
328 bdz target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000329# CHECK: bdza target # encoding: [0x42,0x40,A,0bAAAAAA10]
330# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
331 bdza target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000332# CHECK: bdzlr # encoding: [0x4e,0x40,0x00,0x20]
333 bdzlr
Ulrich Weigand5b9d5912013-06-24 11:02:38 +0000334# CHECK: bdzl target # encoding: [0x42,0x40,A,0bAAAAAA01]
335# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
336 bdzl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000337# CHECK: bdzla target # encoding: [0x42,0x40,A,0bAAAAAA11]
338# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
339 bdzla target
Ulrich Weigand5b9d5912013-06-24 11:02:38 +0000340# CHECK: bdzlrl # encoding: [0x4e,0x40,0x00,0x21]
341 bdzlrl
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000342
Ulrich Weigand86247b62013-06-24 16:52:04 +0000343# CHECK: bdz+ target # encoding: [0x43,0x60,A,0bAAAAAA00]
344# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
345 bdz+ target
346# CHECK: bdza+ target # encoding: [0x43,0x60,A,0bAAAAAA10]
347# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
348 bdza+ target
349# CHECK: bdzlr+ # encoding: [0x4f,0x60,0x00,0x20]
350 bdzlr+
351# CHECK: bdzl+ target # encoding: [0x43,0x60,A,0bAAAAAA01]
352# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
353 bdzl+ target
354# CHECK: bdzla+ target # encoding: [0x43,0x60,A,0bAAAAAA11]
355# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
356 bdzla+ target
357# CHECK: bdzlrl+ # encoding: [0x4f,0x60,0x00,0x21]
358 bdzlrl+
359
360# CHECK: bdz- target # encoding: [0x43,0x40,A,0bAAAAAA00]
361# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
362 bdz- target
363# CHECK: bdza- target # encoding: [0x43,0x40,A,0bAAAAAA10]
364# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
365 bdza- target
366# CHECK: bdzlr- # encoding: [0x4f,0x40,0x00,0x20]
367 bdzlr-
368# CHECK: bdzl- target # encoding: [0x43,0x40,A,0bAAAAAA01]
369# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
370 bdzl- target
371# CHECK: bdzla- target # encoding: [0x43,0x40,A,0bAAAAAA11]
372# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
373 bdzla- target
374# CHECK: bdzlrl- # encoding: [0x4f,0x40,0x00,0x21]
375 bdzlrl-
376
Ulrich Weigandfedd5a72013-06-24 12:49:20 +0000377# CHECK: bc 10, 2, target # encoding: [0x41,0x42,A,0bAAAAAA00]
378# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
379 bdzt 2, target
380# CHECK: bca 10, 2, target # encoding: [0x41,0x42,A,0bAAAAAA10]
381# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
382 bdzta 2, target
383# CHECK: bclr 10, 2, 0 # encoding: [0x4d,0x42,0x00,0x20]
384 bdztlr 2
385# CHECK: bcl 10, 2, target # encoding: [0x41,0x42,A,0bAAAAAA01]
386# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
387 bdztl 2, target
388# CHECK: bcla 10, 2, target # encoding: [0x41,0x42,A,0bAAAAAA11]
389# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
390 bdztla 2, target
391# CHECK: bclrl 10, 2, 0 # encoding: [0x4d,0x42,0x00,0x21]
392 bdztlrl 2
393
394# CHECK: bc 2, 2, target # encoding: [0x40,0x42,A,0bAAAAAA00]
395# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
396 bdzf 2, target
397# CHECK: bca 2, 2, target # encoding: [0x40,0x42,A,0bAAAAAA10]
398# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
399 bdzfa 2, target
400# CHECK: bclr 2, 2, 0 # encoding: [0x4c,0x42,0x00,0x20]
401 bdzflr 2
402# CHECK: bcl 2, 2, target # encoding: [0x40,0x42,A,0bAAAAAA01]
403# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
404 bdzfl 2, target
405# CHECK: bcla 2, 2, target # encoding: [0x40,0x42,A,0bAAAAAA11]
406# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
407 bdzfla 2, target
408# CHECK: bclrl 2, 2, 0 # encoding: [0x4c,0x42,0x00,0x21]
409 bdzflrl 2
Ulrich Weigandd8394902013-05-03 19:50:27 +0000410
411# CHECK: blt 2, target # encoding: [0x41,0x88,A,0bAAAAAA00]
412# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
413 blt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000414# CHECK: blt 0, target # encoding: [0x41,0x80,A,0bAAAAAA00]
415# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
416 blt target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000417# CHECK: blta 2, target # encoding: [0x41,0x88,A,0bAAAAAA10]
418# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
419 blta 2, target
420# CHECK: blta 0, target # encoding: [0x41,0x80,A,0bAAAAAA10]
421# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
422 blta target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000423# CHECK: bltlr 2 # encoding: [0x4d,0x88,0x00,0x20]
424 bltlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000425# CHECK: bltlr 0 # encoding: [0x4d,0x80,0x00,0x20]
426 bltlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000427# CHECK: bltctr 2 # encoding: [0x4d,0x88,0x04,0x20]
428 bltctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000429# CHECK: bltctr 0 # encoding: [0x4d,0x80,0x04,0x20]
430 bltctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000431# CHECK: bltl 2, target # encoding: [0x41,0x88,A,0bAAAAAA01]
432# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
433 bltl 2, target
434# CHECK: bltl 0, target # encoding: [0x41,0x80,A,0bAAAAAA01]
435# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
436 bltl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000437# CHECK: bltla 2, target # encoding: [0x41,0x88,A,0bAAAAAA11]
438# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
439 bltla 2, target
440# CHECK: bltla 0, target # encoding: [0x41,0x80,A,0bAAAAAA11]
441# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
442 bltla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000443# CHECK: bltlrl 2 # encoding: [0x4d,0x88,0x00,0x21]
444 bltlrl 2
445# CHECK: bltlrl 0 # encoding: [0x4d,0x80,0x00,0x21]
446 bltlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000447# CHECK: bltctrl 2 # encoding: [0x4d,0x88,0x04,0x21]
448 bltctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000449# CHECK: bltctrl 0 # encoding: [0x4d,0x80,0x04,0x21]
450 bltctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000451
Ulrich Weigand86247b62013-06-24 16:52:04 +0000452# CHECK: blt+ 2, target # encoding: [0x41,0xe8,A,0bAAAAAA00]
453# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
454 blt+ 2, target
455# CHECK: blt+ 0, target # encoding: [0x41,0xe0,A,0bAAAAAA00]
456# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
457 blt+ target
458# CHECK: blta+ 2, target # encoding: [0x41,0xe8,A,0bAAAAAA10]
459# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
460 blta+ 2, target
461# CHECK: blta+ 0, target # encoding: [0x41,0xe0,A,0bAAAAAA10]
462# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
463 blta+ target
464# CHECK: bltlr+ 2 # encoding: [0x4d,0xe8,0x00,0x20]
465 bltlr+ 2
466# CHECK: bltlr+ 0 # encoding: [0x4d,0xe0,0x00,0x20]
467 bltlr+
468# CHECK: bltctr+ 2 # encoding: [0x4d,0xe8,0x04,0x20]
469 bltctr+ 2
470# CHECK: bltctr+ 0 # encoding: [0x4d,0xe0,0x04,0x20]
471 bltctr+
472# CHECK: bltl+ 2, target # encoding: [0x41,0xe8,A,0bAAAAAA01]
473# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
474 bltl+ 2, target
475# CHECK: bltl+ 0, target # encoding: [0x41,0xe0,A,0bAAAAAA01]
476# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
477 bltl+ target
478# CHECK: bltla+ 2, target # encoding: [0x41,0xe8,A,0bAAAAAA11]
479# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
480 bltla+ 2, target
481# CHECK: bltla+ 0, target # encoding: [0x41,0xe0,A,0bAAAAAA11]
482# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
483 bltla+ target
484# CHECK: bltlrl+ 2 # encoding: [0x4d,0xe8,0x00,0x21]
485 bltlrl+ 2
486# CHECK: bltlrl+ 0 # encoding: [0x4d,0xe0,0x00,0x21]
487 bltlrl+
488# CHECK: bltctrl+ 2 # encoding: [0x4d,0xe8,0x04,0x21]
489 bltctrl+ 2
490# CHECK: bltctrl+ 0 # encoding: [0x4d,0xe0,0x04,0x21]
491 bltctrl+
492
493# CHECK: blt- 2, target # encoding: [0x41,0xc8,A,0bAAAAAA00]
494# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
495 blt- 2, target
496# CHECK: blt- 0, target # encoding: [0x41,0xc0,A,0bAAAAAA00]
497# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
498 blt- target
499# CHECK: blta- 2, target # encoding: [0x41,0xc8,A,0bAAAAAA10]
500# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
501 blta- 2, target
502# CHECK: blta- 0, target # encoding: [0x41,0xc0,A,0bAAAAAA10]
503# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
504 blta- target
505# CHECK: bltlr- 2 # encoding: [0x4d,0xc8,0x00,0x20]
506 bltlr- 2
507# CHECK: bltlr- 0 # encoding: [0x4d,0xc0,0x00,0x20]
508 bltlr-
509# CHECK: bltctr- 2 # encoding: [0x4d,0xc8,0x04,0x20]
510 bltctr- 2
511# CHECK: bltctr- 0 # encoding: [0x4d,0xc0,0x04,0x20]
512 bltctr-
513# CHECK: bltl- 2, target # encoding: [0x41,0xc8,A,0bAAAAAA01]
514# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
515 bltl- 2, target
516# CHECK: bltl- 0, target # encoding: [0x41,0xc0,A,0bAAAAAA01]
517# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
518 bltl- target
519# CHECK: bltla- 2, target # encoding: [0x41,0xc8,A,0bAAAAAA11]
520# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
521 bltla- 2, target
522# CHECK: bltla- 0, target # encoding: [0x41,0xc0,A,0bAAAAAA11]
523# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
524 bltla- target
525# CHECK: bltlrl- 2 # encoding: [0x4d,0xc8,0x00,0x21]
526 bltlrl- 2
527# CHECK: bltlrl- 0 # encoding: [0x4d,0xc0,0x00,0x21]
528 bltlrl-
529# CHECK: bltctrl- 2 # encoding: [0x4d,0xc8,0x04,0x21]
530 bltctrl- 2
531# CHECK: bltctrl- 0 # encoding: [0x4d,0xc0,0x04,0x21]
532 bltctrl-
533
Ulrich Weigandd8394902013-05-03 19:50:27 +0000534# CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
535# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
536 ble 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000537# CHECK: ble 0, target # encoding: [0x40,0x81,A,0bAAAAAA00]
538# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
539 ble target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000540# CHECK: blea 2, target # encoding: [0x40,0x89,A,0bAAAAAA10]
541# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
542 blea 2, target
543# CHECK: blea 0, target # encoding: [0x40,0x81,A,0bAAAAAA10]
544# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
545 blea target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000546# CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
547 blelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000548# CHECK: blelr 0 # encoding: [0x4c,0x81,0x00,0x20]
549 blelr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000550# CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
551 blectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000552# CHECK: blectr 0 # encoding: [0x4c,0x81,0x04,0x20]
553 blectr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000554# CHECK: blel 2, target # encoding: [0x40,0x89,A,0bAAAAAA01]
555# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
556 blel 2, target
557# CHECK: blel 0, target # encoding: [0x40,0x81,A,0bAAAAAA01]
558# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
559 blel target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000560# CHECK: blela 2, target # encoding: [0x40,0x89,A,0bAAAAAA11]
561# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
562 blela 2, target
563# CHECK: blela 0, target # encoding: [0x40,0x81,A,0bAAAAAA11]
564# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
565 blela target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000566# CHECK: blelrl 2 # encoding: [0x4c,0x89,0x00,0x21]
567 blelrl 2
568# CHECK: blelrl 0 # encoding: [0x4c,0x81,0x00,0x21]
569 blelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000570# CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
571 blectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000572# CHECK: blectrl 0 # encoding: [0x4c,0x81,0x04,0x21]
573 blectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000574
Ulrich Weigand86247b62013-06-24 16:52:04 +0000575# CHECK: ble+ 2, target # encoding: [0x40,0xe9,A,0bAAAAAA00]
576# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
577 ble+ 2, target
578# CHECK: ble+ 0, target # encoding: [0x40,0xe1,A,0bAAAAAA00]
579# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
580 ble+ target
581# CHECK: blea+ 2, target # encoding: [0x40,0xe9,A,0bAAAAAA10]
582# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
583 blea+ 2, target
584# CHECK: blea+ 0, target # encoding: [0x40,0xe1,A,0bAAAAAA10]
585# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
586 blea+ target
587# CHECK: blelr+ 2 # encoding: [0x4c,0xe9,0x00,0x20]
588 blelr+ 2
589# CHECK: blelr+ 0 # encoding: [0x4c,0xe1,0x00,0x20]
590 blelr+
591# CHECK: blectr+ 2 # encoding: [0x4c,0xe9,0x04,0x20]
592 blectr+ 2
593# CHECK: blectr+ 0 # encoding: [0x4c,0xe1,0x04,0x20]
594 blectr+
595# CHECK: blel+ 2, target # encoding: [0x40,0xe9,A,0bAAAAAA01]
596# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
597 blel+ 2, target
598# CHECK: blel+ 0, target # encoding: [0x40,0xe1,A,0bAAAAAA01]
599# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
600 blel+ target
601# CHECK: blela+ 2, target # encoding: [0x40,0xe9,A,0bAAAAAA11]
602# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
603 blela+ 2, target
604# CHECK: blela+ 0, target # encoding: [0x40,0xe1,A,0bAAAAAA11]
605# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
606 blela+ target
607# CHECK: blelrl+ 2 # encoding: [0x4c,0xe9,0x00,0x21]
608 blelrl+ 2
609# CHECK: blelrl+ 0 # encoding: [0x4c,0xe1,0x00,0x21]
610 blelrl+
611# CHECK: blectrl+ 2 # encoding: [0x4c,0xe9,0x04,0x21]
612 blectrl+ 2
613# CHECK: blectrl+ 0 # encoding: [0x4c,0xe1,0x04,0x21]
614 blectrl+
615
616# CHECK: ble- 2, target # encoding: [0x40,0xc9,A,0bAAAAAA00]
617# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
618 ble- 2, target
619# CHECK: ble- 0, target # encoding: [0x40,0xc1,A,0bAAAAAA00]
620# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
621 ble- target
622# CHECK: blea- 2, target # encoding: [0x40,0xc9,A,0bAAAAAA10]
623# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
624 blea- 2, target
625# CHECK: blea- 0, target # encoding: [0x40,0xc1,A,0bAAAAAA10]
626# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
627 blea- target
628# CHECK: blelr- 2 # encoding: [0x4c,0xc9,0x00,0x20]
629 blelr- 2
630# CHECK: blelr- 0 # encoding: [0x4c,0xc1,0x00,0x20]
631 blelr-
632# CHECK: blectr- 2 # encoding: [0x4c,0xc9,0x04,0x20]
633 blectr- 2
634# CHECK: blectr- 0 # encoding: [0x4c,0xc1,0x04,0x20]
635 blectr-
636# CHECK: blel- 2, target # encoding: [0x40,0xc9,A,0bAAAAAA01]
637# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
638 blel- 2, target
639# CHECK: blel- 0, target # encoding: [0x40,0xc1,A,0bAAAAAA01]
640# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
641 blel- target
642# CHECK: blela- 2, target # encoding: [0x40,0xc9,A,0bAAAAAA11]
643# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
644 blela- 2, target
645# CHECK: blela- 0, target # encoding: [0x40,0xc1,A,0bAAAAAA11]
646# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
647 blela- target
648# CHECK: blelrl- 2 # encoding: [0x4c,0xc9,0x00,0x21]
649 blelrl- 2
650# CHECK: blelrl- 0 # encoding: [0x4c,0xc1,0x00,0x21]
651 blelrl-
652# CHECK: blectrl- 2 # encoding: [0x4c,0xc9,0x04,0x21]
653 blectrl- 2
654# CHECK: blectrl- 0 # encoding: [0x4c,0xc1,0x04,0x21]
655 blectrl-
656
Ulrich Weigandd8394902013-05-03 19:50:27 +0000657# CHECK: beq 2, target # encoding: [0x41,0x8a,A,0bAAAAAA00]
658# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
659 beq 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000660# CHECK: beq 0, target # encoding: [0x41,0x82,A,0bAAAAAA00]
661# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
662 beq target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000663# CHECK: beqa 2, target # encoding: [0x41,0x8a,A,0bAAAAAA10]
664# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
665 beqa 2, target
666# CHECK: beqa 0, target # encoding: [0x41,0x82,A,0bAAAAAA10]
667# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
668 beqa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000669# CHECK: beqlr 2 # encoding: [0x4d,0x8a,0x00,0x20]
670 beqlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000671# CHECK: beqlr 0 # encoding: [0x4d,0x82,0x00,0x20]
672 beqlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000673# CHECK: beqctr 2 # encoding: [0x4d,0x8a,0x04,0x20]
674 beqctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000675# CHECK: beqctr 0 # encoding: [0x4d,0x82,0x04,0x20]
676 beqctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000677# CHECK: beql 2, target # encoding: [0x41,0x8a,A,0bAAAAAA01]
678# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
679 beql 2, target
680# CHECK: beql 0, target # encoding: [0x41,0x82,A,0bAAAAAA01]
681# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
682 beql target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000683# CHECK: beqla 2, target # encoding: [0x41,0x8a,A,0bAAAAAA11]
684# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
685 beqla 2, target
686# CHECK: beqla 0, target # encoding: [0x41,0x82,A,0bAAAAAA11]
687# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
688 beqla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000689# CHECK: beqlrl 2 # encoding: [0x4d,0x8a,0x00,0x21]
690 beqlrl 2
691# CHECK: beqlrl 0 # encoding: [0x4d,0x82,0x00,0x21]
692 beqlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000693# CHECK: beqctrl 2 # encoding: [0x4d,0x8a,0x04,0x21]
694 beqctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000695# CHECK: beqctrl 0 # encoding: [0x4d,0x82,0x04,0x21]
696 beqctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000697
Ulrich Weigand86247b62013-06-24 16:52:04 +0000698# CHECK: beq+ 2, target # encoding: [0x41,0xea,A,0bAAAAAA00]
699# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
700 beq+ 2, target
701# CHECK: beq+ 0, target # encoding: [0x41,0xe2,A,0bAAAAAA00]
702# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
703 beq+ target
704# CHECK: beqa+ 2, target # encoding: [0x41,0xea,A,0bAAAAAA10]
705# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
706 beqa+ 2, target
707# CHECK: beqa+ 0, target # encoding: [0x41,0xe2,A,0bAAAAAA10]
708# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
709 beqa+ target
710# CHECK: beqlr+ 2 # encoding: [0x4d,0xea,0x00,0x20]
711 beqlr+ 2
712# CHECK: beqlr+ 0 # encoding: [0x4d,0xe2,0x00,0x20]
713 beqlr+
714# CHECK: beqctr+ 2 # encoding: [0x4d,0xea,0x04,0x20]
715 beqctr+ 2
716# CHECK: beqctr+ 0 # encoding: [0x4d,0xe2,0x04,0x20]
717 beqctr+
718# CHECK: beql+ 2, target # encoding: [0x41,0xea,A,0bAAAAAA01]
719# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
720 beql+ 2, target
721# CHECK: beql+ 0, target # encoding: [0x41,0xe2,A,0bAAAAAA01]
722# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
723 beql+ target
724# CHECK: beqla+ 2, target # encoding: [0x41,0xea,A,0bAAAAAA11]
725# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
726 beqla+ 2, target
727# CHECK: beqla+ 0, target # encoding: [0x41,0xe2,A,0bAAAAAA11]
728# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
729 beqla+ target
730# CHECK: beqlrl+ 2 # encoding: [0x4d,0xea,0x00,0x21]
731 beqlrl+ 2
732# CHECK: beqlrl+ 0 # encoding: [0x4d,0xe2,0x00,0x21]
733 beqlrl+
734# CHECK: beqctrl+ 2 # encoding: [0x4d,0xea,0x04,0x21]
735 beqctrl+ 2
736# CHECK: beqctrl+ 0 # encoding: [0x4d,0xe2,0x04,0x21]
737 beqctrl+
738
739# CHECK: beq- 2, target # encoding: [0x41,0xca,A,0bAAAAAA00]
740# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
741 beq- 2, target
742# CHECK: beq- 0, target # encoding: [0x41,0xc2,A,0bAAAAAA00]
743# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
744 beq- target
745# CHECK: beqa- 2, target # encoding: [0x41,0xca,A,0bAAAAAA10]
746# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
747 beqa- 2, target
748# CHECK: beqa- 0, target # encoding: [0x41,0xc2,A,0bAAAAAA10]
749# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
750 beqa- target
751# CHECK: beqlr- 2 # encoding: [0x4d,0xca,0x00,0x20]
752 beqlr- 2
753# CHECK: beqlr- 0 # encoding: [0x4d,0xc2,0x00,0x20]
754 beqlr-
755# CHECK: beqctr- 2 # encoding: [0x4d,0xca,0x04,0x20]
756 beqctr- 2
757# CHECK: beqctr- 0 # encoding: [0x4d,0xc2,0x04,0x20]
758 beqctr-
759# CHECK: beql- 2, target # encoding: [0x41,0xca,A,0bAAAAAA01]
760# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
761 beql- 2, target
762# CHECK: beql- 0, target # encoding: [0x41,0xc2,A,0bAAAAAA01]
763# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
764 beql- target
765# CHECK: beqla- 2, target # encoding: [0x41,0xca,A,0bAAAAAA11]
766# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
767 beqla- 2, target
768# CHECK: beqla- 0, target # encoding: [0x41,0xc2,A,0bAAAAAA11]
769# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
770 beqla- target
771# CHECK: beqlrl- 2 # encoding: [0x4d,0xca,0x00,0x21]
772 beqlrl- 2
773# CHECK: beqlrl- 0 # encoding: [0x4d,0xc2,0x00,0x21]
774 beqlrl-
775# CHECK: beqctrl- 2 # encoding: [0x4d,0xca,0x04,0x21]
776 beqctrl- 2
777# CHECK: beqctrl- 0 # encoding: [0x4d,0xc2,0x04,0x21]
778 beqctrl-
779
Ulrich Weigandd8394902013-05-03 19:50:27 +0000780# CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
781# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
782 bge 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000783# CHECK: bge 0, target # encoding: [0x40,0x80,A,0bAAAAAA00]
784# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
785 bge target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000786# CHECK: bgea 2, target # encoding: [0x40,0x88,A,0bAAAAAA10]
787# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
788 bgea 2, target
789# CHECK: bgea 0, target # encoding: [0x40,0x80,A,0bAAAAAA10]
790# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
791 bgea target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000792# CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
793 bgelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000794# CHECK: bgelr 0 # encoding: [0x4c,0x80,0x00,0x20]
795 bgelr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000796# CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
797 bgectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000798# CHECK: bgectr 0 # encoding: [0x4c,0x80,0x04,0x20]
799 bgectr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000800# CHECK: bgel 2, target # encoding: [0x40,0x88,A,0bAAAAAA01]
801# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
802 bgel 2, target
803# CHECK: bgel 0, target # encoding: [0x40,0x80,A,0bAAAAAA01]
804# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
805 bgel target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000806# CHECK: bgela 2, target # encoding: [0x40,0x88,A,0bAAAAAA11]
807# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
808 bgela 2, target
809# CHECK: bgela 0, target # encoding: [0x40,0x80,A,0bAAAAAA11]
810# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
811 bgela target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000812# CHECK: bgelrl 2 # encoding: [0x4c,0x88,0x00,0x21]
813 bgelrl 2
814# CHECK: bgelrl 0 # encoding: [0x4c,0x80,0x00,0x21]
815 bgelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000816# CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
817 bgectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000818# CHECK: bgectrl 0 # encoding: [0x4c,0x80,0x04,0x21]
819 bgectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000820
Ulrich Weigand86247b62013-06-24 16:52:04 +0000821# CHECK: bge+ 2, target # encoding: [0x40,0xe8,A,0bAAAAAA00]
822# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
823 bge+ 2, target
824# CHECK: bge+ 0, target # encoding: [0x40,0xe0,A,0bAAAAAA00]
825# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
826 bge+ target
827# CHECK: bgea+ 2, target # encoding: [0x40,0xe8,A,0bAAAAAA10]
828# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
829 bgea+ 2, target
830# CHECK: bgea+ 0, target # encoding: [0x40,0xe0,A,0bAAAAAA10]
831# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
832 bgea+ target
833# CHECK: bgelr+ 2 # encoding: [0x4c,0xe8,0x00,0x20]
834 bgelr+ 2
835# CHECK: bgelr+ 0 # encoding: [0x4c,0xe0,0x00,0x20]
836 bgelr+
837# CHECK: bgectr+ 2 # encoding: [0x4c,0xe8,0x04,0x20]
838 bgectr+ 2
839# CHECK: bgectr+ 0 # encoding: [0x4c,0xe0,0x04,0x20]
840 bgectr+
841# CHECK: bgel+ 2, target # encoding: [0x40,0xe8,A,0bAAAAAA01]
842# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
843 bgel+ 2, target
844# CHECK: bgel+ 0, target # encoding: [0x40,0xe0,A,0bAAAAAA01]
845# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
846 bgel+ target
847# CHECK: bgela+ 2, target # encoding: [0x40,0xe8,A,0bAAAAAA11]
848# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
849 bgela+ 2, target
850# CHECK: bgela+ 0, target # encoding: [0x40,0xe0,A,0bAAAAAA11]
851# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
852 bgela+ target
853# CHECK: bgelrl+ 2 # encoding: [0x4c,0xe8,0x00,0x21]
854 bgelrl+ 2
855# CHECK: bgelrl+ 0 # encoding: [0x4c,0xe0,0x00,0x21]
856 bgelrl+
857# CHECK: bgectrl+ 2 # encoding: [0x4c,0xe8,0x04,0x21]
858 bgectrl+ 2
859# CHECK: bgectrl+ 0 # encoding: [0x4c,0xe0,0x04,0x21]
860 bgectrl+
861
862# CHECK: bge- 2, target # encoding: [0x40,0xc8,A,0bAAAAAA00]
863# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
864 bge- 2, target
865# CHECK: bge- 0, target # encoding: [0x40,0xc0,A,0bAAAAAA00]
866# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
867 bge- target
868# CHECK: bgea- 2, target # encoding: [0x40,0xc8,A,0bAAAAAA10]
869# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
870 bgea- 2, target
871# CHECK: bgea- 0, target # encoding: [0x40,0xc0,A,0bAAAAAA10]
872# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
873 bgea- target
874# CHECK: bgelr- 2 # encoding: [0x4c,0xc8,0x00,0x20]
875 bgelr- 2
876# CHECK: bgelr- 0 # encoding: [0x4c,0xc0,0x00,0x20]
877 bgelr-
878# CHECK: bgectr- 2 # encoding: [0x4c,0xc8,0x04,0x20]
879 bgectr- 2
880# CHECK: bgectr- 0 # encoding: [0x4c,0xc0,0x04,0x20]
881 bgectr-
882# CHECK: bgel- 2, target # encoding: [0x40,0xc8,A,0bAAAAAA01]
883# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
884 bgel- 2, target
885# CHECK: bgel- 0, target # encoding: [0x40,0xc0,A,0bAAAAAA01]
886# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
887 bgel- target
888# CHECK: bgela- 2, target # encoding: [0x40,0xc8,A,0bAAAAAA11]
889# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
890 bgela- 2, target
891# CHECK: bgela- 0, target # encoding: [0x40,0xc0,A,0bAAAAAA11]
892# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
893 bgela- target
894# CHECK: bgelrl- 2 # encoding: [0x4c,0xc8,0x00,0x21]
895 bgelrl- 2
896# CHECK: bgelrl- 0 # encoding: [0x4c,0xc0,0x00,0x21]
897 bgelrl-
898# CHECK: bgectrl- 2 # encoding: [0x4c,0xc8,0x04,0x21]
899 bgectrl- 2
900# CHECK: bgectrl- 0 # encoding: [0x4c,0xc0,0x04,0x21]
901 bgectrl-
902
Ulrich Weigandd8394902013-05-03 19:50:27 +0000903# CHECK: bgt 2, target # encoding: [0x41,0x89,A,0bAAAAAA00]
904# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
905 bgt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000906# CHECK: bgt 0, target # encoding: [0x41,0x81,A,0bAAAAAA00]
907# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
908 bgt target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000909# CHECK: bgta 2, target # encoding: [0x41,0x89,A,0bAAAAAA10]
910# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
911 bgta 2, target
912# CHECK: bgta 0, target # encoding: [0x41,0x81,A,0bAAAAAA10]
913# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
914 bgta target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000915# CHECK: bgtlr 2 # encoding: [0x4d,0x89,0x00,0x20]
916 bgtlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000917# CHECK: bgtlr 0 # encoding: [0x4d,0x81,0x00,0x20]
918 bgtlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000919# CHECK: bgtctr 2 # encoding: [0x4d,0x89,0x04,0x20]
920 bgtctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000921# CHECK: bgtctr 0 # encoding: [0x4d,0x81,0x04,0x20]
922 bgtctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000923# CHECK: bgtl 2, target # encoding: [0x41,0x89,A,0bAAAAAA01]
924# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
925 bgtl 2, target
926# CHECK: bgtl 0, target # encoding: [0x41,0x81,A,0bAAAAAA01]
927# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
928 bgtl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000929# CHECK: bgtla 2, target # encoding: [0x41,0x89,A,0bAAAAAA11]
930# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
931 bgtla 2, target
932# CHECK: bgtla 0, target # encoding: [0x41,0x81,A,0bAAAAAA11]
933# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
934 bgtla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000935# CHECK: bgtlrl 2 # encoding: [0x4d,0x89,0x00,0x21]
936 bgtlrl 2
937# CHECK: bgtlrl 0 # encoding: [0x4d,0x81,0x00,0x21]
938 bgtlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000939# CHECK: bgtctrl 2 # encoding: [0x4d,0x89,0x04,0x21]
940 bgtctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000941# CHECK: bgtctrl 0 # encoding: [0x4d,0x81,0x04,0x21]
942 bgtctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000943
Ulrich Weigand86247b62013-06-24 16:52:04 +0000944# CHECK: bgt+ 2, target # encoding: [0x41,0xe9,A,0bAAAAAA00]
945# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
946 bgt+ 2, target
947# CHECK: bgt+ 0, target # encoding: [0x41,0xe1,A,0bAAAAAA00]
948# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
949 bgt+ target
950# CHECK: bgta+ 2, target # encoding: [0x41,0xe9,A,0bAAAAAA10]
951# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
952 bgta+ 2, target
953# CHECK: bgta+ 0, target # encoding: [0x41,0xe1,A,0bAAAAAA10]
954# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
955 bgta+ target
956# CHECK: bgtlr+ 2 # encoding: [0x4d,0xe9,0x00,0x20]
957 bgtlr+ 2
958# CHECK: bgtlr+ 0 # encoding: [0x4d,0xe1,0x00,0x20]
959 bgtlr+
960# CHECK: bgtctr+ 2 # encoding: [0x4d,0xe9,0x04,0x20]
961 bgtctr+ 2
962# CHECK: bgtctr+ 0 # encoding: [0x4d,0xe1,0x04,0x20]
963 bgtctr+
964# CHECK: bgtl+ 2, target # encoding: [0x41,0xe9,A,0bAAAAAA01]
965# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
966 bgtl+ 2, target
967# CHECK: bgtl+ 0, target # encoding: [0x41,0xe1,A,0bAAAAAA01]
968# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
969 bgtl+ target
970# CHECK: bgtla+ 2, target # encoding: [0x41,0xe9,A,0bAAAAAA11]
971# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
972 bgtla+ 2, target
973# CHECK: bgtla+ 0, target # encoding: [0x41,0xe1,A,0bAAAAAA11]
974# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
975 bgtla+ target
976# CHECK: bgtlrl+ 2 # encoding: [0x4d,0xe9,0x00,0x21]
977 bgtlrl+ 2
978# CHECK: bgtlrl+ 0 # encoding: [0x4d,0xe1,0x00,0x21]
979 bgtlrl+
980# CHECK: bgtctrl+ 2 # encoding: [0x4d,0xe9,0x04,0x21]
981 bgtctrl+ 2
982# CHECK: bgtctrl+ 0 # encoding: [0x4d,0xe1,0x04,0x21]
983 bgtctrl+
984
985# CHECK: bgt- 2, target # encoding: [0x41,0xc9,A,0bAAAAAA00]
986# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
987 bgt- 2, target
988# CHECK: bgt- 0, target # encoding: [0x41,0xc1,A,0bAAAAAA00]
989# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
990 bgt- target
991# CHECK: bgta- 2, target # encoding: [0x41,0xc9,A,0bAAAAAA10]
992# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
993 bgta- 2, target
994# CHECK: bgta- 0, target # encoding: [0x41,0xc1,A,0bAAAAAA10]
995# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
996 bgta- target
997# CHECK: bgtlr- 2 # encoding: [0x4d,0xc9,0x00,0x20]
998 bgtlr- 2
999# CHECK: bgtlr- 0 # encoding: [0x4d,0xc1,0x00,0x20]
1000 bgtlr-
1001# CHECK: bgtctr- 2 # encoding: [0x4d,0xc9,0x04,0x20]
1002 bgtctr- 2
1003# CHECK: bgtctr- 0 # encoding: [0x4d,0xc1,0x04,0x20]
1004 bgtctr-
1005# CHECK: bgtl- 2, target # encoding: [0x41,0xc9,A,0bAAAAAA01]
1006# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1007 bgtl- 2, target
1008# CHECK: bgtl- 0, target # encoding: [0x41,0xc1,A,0bAAAAAA01]
1009# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1010 bgtl- target
1011# CHECK: bgtla- 2, target # encoding: [0x41,0xc9,A,0bAAAAAA11]
1012# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1013 bgtla- 2, target
1014# CHECK: bgtla- 0, target # encoding: [0x41,0xc1,A,0bAAAAAA11]
1015# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1016 bgtla- target
1017# CHECK: bgtlrl- 2 # encoding: [0x4d,0xc9,0x00,0x21]
1018 bgtlrl- 2
1019# CHECK: bgtlrl- 0 # encoding: [0x4d,0xc1,0x00,0x21]
1020 bgtlrl-
1021# CHECK: bgtctrl- 2 # encoding: [0x4d,0xc9,0x04,0x21]
1022 bgtctrl- 2
1023# CHECK: bgtctrl- 0 # encoding: [0x4d,0xc1,0x04,0x21]
1024 bgtctrl-
1025
Ulrich Weigandd8394902013-05-03 19:50:27 +00001026# CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
1027# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1028 bnl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001029# CHECK: bge 0, target # encoding: [0x40,0x80,A,0bAAAAAA00]
1030# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1031 bnl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +00001032# CHECK: bgea 2, target # encoding: [0x40,0x88,A,0bAAAAAA10]
1033# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1034 bnla 2, target
1035# CHECK: bgea 0, target # encoding: [0x40,0x80,A,0bAAAAAA10]
1036# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1037 bnla target
Ulrich Weigandd8394902013-05-03 19:50:27 +00001038# CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
1039 bnllr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001040# CHECK: bgelr 0 # encoding: [0x4c,0x80,0x00,0x20]
1041 bnllr
Ulrich Weigandd8394902013-05-03 19:50:27 +00001042# CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
1043 bnlctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001044# CHECK: bgectr 0 # encoding: [0x4c,0x80,0x04,0x20]
1045 bnlctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +00001046# CHECK: bgel 2, target # encoding: [0x40,0x88,A,0bAAAAAA01]
1047# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1048 bnll 2, target
1049# CHECK: bgel 0, target # encoding: [0x40,0x80,A,0bAAAAAA01]
1050# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1051 bnll target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +00001052# CHECK: bgela 2, target # encoding: [0x40,0x88,A,0bAAAAAA11]
1053# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1054 bnlla 2, target
1055# CHECK: bgela 0, target # encoding: [0x40,0x80,A,0bAAAAAA11]
1056# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1057 bnlla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +00001058# CHECK: bgelrl 2 # encoding: [0x4c,0x88,0x00,0x21]
1059 bnllrl 2
1060# CHECK: bgelrl 0 # encoding: [0x4c,0x80,0x00,0x21]
1061 bnllrl
Ulrich Weigandd8394902013-05-03 19:50:27 +00001062# CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
1063 bnlctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001064# CHECK: bgectrl 0 # encoding: [0x4c,0x80,0x04,0x21]
1065 bnlctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +00001066
Ulrich Weigand86247b62013-06-24 16:52:04 +00001067# CHECK: bge+ 2, target # encoding: [0x40,0xe8,A,0bAAAAAA00]
1068# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1069 bnl+ 2, target
1070# CHECK: bge+ 0, target # encoding: [0x40,0xe0,A,0bAAAAAA00]
1071# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1072 bnl+ target
1073# CHECK: bgea+ 2, target # encoding: [0x40,0xe8,A,0bAAAAAA10]
1074# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1075 bnla+ 2, target
1076# CHECK: bgea+ 0, target # encoding: [0x40,0xe0,A,0bAAAAAA10]
1077# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1078 bnla+ target
1079# CHECK: bgelr+ 2 # encoding: [0x4c,0xe8,0x00,0x20]
1080 bnllr+ 2
1081# CHECK: bgelr+ 0 # encoding: [0x4c,0xe0,0x00,0x20]
1082 bnllr+
1083# CHECK: bgectr+ 2 # encoding: [0x4c,0xe8,0x04,0x20]
1084 bnlctr+ 2
1085# CHECK: bgectr+ 0 # encoding: [0x4c,0xe0,0x04,0x20]
1086 bnlctr+
1087# CHECK: bgel+ 2, target # encoding: [0x40,0xe8,A,0bAAAAAA01]
1088# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1089 bnll+ 2, target
1090# CHECK: bgel+ 0, target # encoding: [0x40,0xe0,A,0bAAAAAA01]
1091# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1092 bnll+ target
1093# CHECK: bgela+ 2, target # encoding: [0x40,0xe8,A,0bAAAAAA11]
1094# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1095 bnlla+ 2, target
1096# CHECK: bgela+ 0, target # encoding: [0x40,0xe0,A,0bAAAAAA11]
1097# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1098 bnlla+ target
1099# CHECK: bgelrl+ 2 # encoding: [0x4c,0xe8,0x00,0x21]
1100 bnllrl+ 2
1101# CHECK: bgelrl+ 0 # encoding: [0x4c,0xe0,0x00,0x21]
1102 bnllrl+
1103# CHECK: bgectrl+ 2 # encoding: [0x4c,0xe8,0x04,0x21]
1104 bnlctrl+ 2
1105# CHECK: bgectrl+ 0 # encoding: [0x4c,0xe0,0x04,0x21]
1106 bnlctrl+
1107
1108# CHECK: bge- 2, target # encoding: [0x40,0xc8,A,0bAAAAAA00]
1109# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1110 bnl- 2, target
1111# CHECK: bge- 0, target # encoding: [0x40,0xc0,A,0bAAAAAA00]
1112# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1113 bnl- target
1114# CHECK: bgea- 2, target # encoding: [0x40,0xc8,A,0bAAAAAA10]
1115# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1116 bnla- 2, target
1117# CHECK: bgea- 0, target # encoding: [0x40,0xc0,A,0bAAAAAA10]
1118# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1119 bnla- target
1120# CHECK: bgelr- 2 # encoding: [0x4c,0xc8,0x00,0x20]
1121 bnllr- 2
1122# CHECK: bgelr- 0 # encoding: [0x4c,0xc0,0x00,0x20]
1123 bnllr-
1124# CHECK: bgectr- 2 # encoding: [0x4c,0xc8,0x04,0x20]
1125 bnlctr- 2
1126# CHECK: bgectr- 0 # encoding: [0x4c,0xc0,0x04,0x20]
1127 bnlctr-
1128# CHECK: bgel- 2, target # encoding: [0x40,0xc8,A,0bAAAAAA01]
1129# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1130 bnll- 2, target
1131# CHECK: bgel- 0, target # encoding: [0x40,0xc0,A,0bAAAAAA01]
1132# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1133 bnll- target
1134# CHECK: bgela- 2, target # encoding: [0x40,0xc8,A,0bAAAAAA11]
1135# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1136 bnlla- 2, target
1137# CHECK: bgela- 0, target # encoding: [0x40,0xc0,A,0bAAAAAA11]
1138# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1139 bnlla- target
1140# CHECK: bgelrl- 2 # encoding: [0x4c,0xc8,0x00,0x21]
1141 bnllrl- 2
1142# CHECK: bgelrl- 0 # encoding: [0x4c,0xc0,0x00,0x21]
1143 bnllrl-
1144# CHECK: bgectrl- 2 # encoding: [0x4c,0xc8,0x04,0x21]
1145 bnlctrl- 2
1146# CHECK: bgectrl- 0 # encoding: [0x4c,0xc0,0x04,0x21]
1147 bnlctrl-
1148
Ulrich Weigandd8394902013-05-03 19:50:27 +00001149# CHECK: bne 2, target # encoding: [0x40,0x8a,A,0bAAAAAA00]
1150# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1151 bne 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001152# CHECK: bne 0, target # encoding: [0x40,0x82,A,0bAAAAAA00]
1153# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1154 bne target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +00001155# CHECK: bnea 2, target # encoding: [0x40,0x8a,A,0bAAAAAA10]
1156# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1157 bnea 2, target
1158# CHECK: bnea 0, target # encoding: [0x40,0x82,A,0bAAAAAA10]
1159# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1160 bnea target
Ulrich Weigandd8394902013-05-03 19:50:27 +00001161# CHECK: bnelr 2 # encoding: [0x4c,0x8a,0x00,0x20]
1162 bnelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001163# CHECK: bnelr 0 # encoding: [0x4c,0x82,0x00,0x20]
1164 bnelr
Ulrich Weigandd8394902013-05-03 19:50:27 +00001165# CHECK: bnectr 2 # encoding: [0x4c,0x8a,0x04,0x20]
1166 bnectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001167# CHECK: bnectr 0 # encoding: [0x4c,0x82,0x04,0x20]
1168 bnectr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +00001169# CHECK: bnel 2, target # encoding: [0x40,0x8a,A,0bAAAAAA01]
1170# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1171 bnel 2, target
1172# CHECK: bnel 0, target # encoding: [0x40,0x82,A,0bAAAAAA01]
1173# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1174 bnel target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +00001175# CHECK: bnela 2, target # encoding: [0x40,0x8a,A,0bAAAAAA11]
1176# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1177 bnela 2, target
1178# CHECK: bnela 0, target # encoding: [0x40,0x82,A,0bAAAAAA11]
1179# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1180 bnela target
Ulrich Weigand1847bb82013-06-24 11:01:55 +00001181# CHECK: bnelrl 2 # encoding: [0x4c,0x8a,0x00,0x21]
1182 bnelrl 2
1183# CHECK: bnelrl 0 # encoding: [0x4c,0x82,0x00,0x21]
1184 bnelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +00001185# CHECK: bnectrl 2 # encoding: [0x4c,0x8a,0x04,0x21]
1186 bnectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001187# CHECK: bnectrl 0 # encoding: [0x4c,0x82,0x04,0x21]
1188 bnectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +00001189
Ulrich Weigand86247b62013-06-24 16:52:04 +00001190# CHECK: bne+ 2, target # encoding: [0x40,0xea,A,0bAAAAAA00]
1191# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1192 bne+ 2, target
1193# CHECK: bne+ 0, target # encoding: [0x40,0xe2,A,0bAAAAAA00]
1194# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1195 bne+ target
1196# CHECK: bnea+ 2, target # encoding: [0x40,0xea,A,0bAAAAAA10]
1197# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1198 bnea+ 2, target
1199# CHECK: bnea+ 0, target # encoding: [0x40,0xe2,A,0bAAAAAA10]
1200# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1201 bnea+ target
1202# CHECK: bnelr+ 2 # encoding: [0x4c,0xea,0x00,0x20]
1203 bnelr+ 2
1204# CHECK: bnelr+ 0 # encoding: [0x4c,0xe2,0x00,0x20]
1205 bnelr+
1206# CHECK: bnectr+ 2 # encoding: [0x4c,0xea,0x04,0x20]
1207 bnectr+ 2
1208# CHECK: bnectr+ 0 # encoding: [0x4c,0xe2,0x04,0x20]
1209 bnectr+
1210# CHECK: bnel+ 2, target # encoding: [0x40,0xea,A,0bAAAAAA01]
1211# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1212 bnel+ 2, target
1213# CHECK: bnel+ 0, target # encoding: [0x40,0xe2,A,0bAAAAAA01]
1214# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1215 bnel+ target
1216# CHECK: bnela+ 2, target # encoding: [0x40,0xea,A,0bAAAAAA11]
1217# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1218 bnela+ 2, target
1219# CHECK: bnela+ 0, target # encoding: [0x40,0xe2,A,0bAAAAAA11]
1220# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1221 bnela+ target
1222# CHECK: bnelrl+ 2 # encoding: [0x4c,0xea,0x00,0x21]
1223 bnelrl+ 2
1224# CHECK: bnelrl+ 0 # encoding: [0x4c,0xe2,0x00,0x21]
1225 bnelrl+
1226# CHECK: bnectrl+ 2 # encoding: [0x4c,0xea,0x04,0x21]
1227 bnectrl+ 2
1228# CHECK: bnectrl+ 0 # encoding: [0x4c,0xe2,0x04,0x21]
1229 bnectrl+
1230
1231# CHECK: bne- 2, target # encoding: [0x40,0xca,A,0bAAAAAA00]
1232# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1233 bne- 2, target
1234# CHECK: bne- 0, target # encoding: [0x40,0xc2,A,0bAAAAAA00]
1235# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1236 bne- target
1237# CHECK: bnea- 2, target # encoding: [0x40,0xca,A,0bAAAAAA10]
1238# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1239 bnea- 2, target
1240# CHECK: bnea- 0, target # encoding: [0x40,0xc2,A,0bAAAAAA10]
1241# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1242 bnea- target
1243# CHECK: bnelr- 2 # encoding: [0x4c,0xca,0x00,0x20]
1244 bnelr- 2
1245# CHECK: bnelr- 0 # encoding: [0x4c,0xc2,0x00,0x20]
1246 bnelr-
1247# CHECK: bnectr- 2 # encoding: [0x4c,0xca,0x04,0x20]
1248 bnectr- 2
1249# CHECK: bnectr- 0 # encoding: [0x4c,0xc2,0x04,0x20]
1250 bnectr-
1251# CHECK: bnel- 2, target # encoding: [0x40,0xca,A,0bAAAAAA01]
1252# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1253 bnel- 2, target
1254# CHECK: bnel- 0, target # encoding: [0x40,0xc2,A,0bAAAAAA01]
1255# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1256 bnel- target
1257# CHECK: bnela- 2, target # encoding: [0x40,0xca,A,0bAAAAAA11]
1258# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1259 bnela- 2, target
1260# CHECK: bnela- 0, target # encoding: [0x40,0xc2,A,0bAAAAAA11]
1261# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1262 bnela- target
1263# CHECK: bnelrl- 2 # encoding: [0x4c,0xca,0x00,0x21]
1264 bnelrl- 2
1265# CHECK: bnelrl- 0 # encoding: [0x4c,0xc2,0x00,0x21]
1266 bnelrl-
1267# CHECK: bnectrl- 2 # encoding: [0x4c,0xca,0x04,0x21]
1268 bnectrl- 2
1269# CHECK: bnectrl- 0 # encoding: [0x4c,0xc2,0x04,0x21]
1270 bnectrl-
1271
Ulrich Weigandd8394902013-05-03 19:50:27 +00001272# CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
1273# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1274 bng 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001275# CHECK: ble 0, target # encoding: [0x40,0x81,A,0bAAAAAA00]
1276# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1277 bng target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +00001278# CHECK: blea 2, target # encoding: [0x40,0x89,A,0bAAAAAA10]
1279# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1280 bnga 2, target
1281# CHECK: blea 0, target # encoding: [0x40,0x81,A,0bAAAAAA10]
1282# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1283 bnga target
Ulrich Weigandd8394902013-05-03 19:50:27 +00001284# CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
1285 bnglr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001286# CHECK: blelr 0 # encoding: [0x4c,0x81,0x00,0x20]
1287 bnglr
Ulrich Weigandd8394902013-05-03 19:50:27 +00001288# CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
1289 bngctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001290# CHECK: blectr 0 # encoding: [0x4c,0x81,0x04,0x20]
1291 bngctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +00001292# CHECK: blel 2, target # encoding: [0x40,0x89,A,0bAAAAAA01]
1293# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1294 bngl 2, target
1295# CHECK: blel 0, target # encoding: [0x40,0x81,A,0bAAAAAA01]
1296# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1297 bngl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +00001298# CHECK: blela 2, target # encoding: [0x40,0x89,A,0bAAAAAA11]
1299# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1300 bngla 2, target
1301# CHECK: blela 0, target # encoding: [0x40,0x81,A,0bAAAAAA11]
1302# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1303 bngla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +00001304# CHECK: blelrl 2 # encoding: [0x4c,0x89,0x00,0x21]
1305 bnglrl 2
1306# CHECK: blelrl 0 # encoding: [0x4c,0x81,0x00,0x21]
1307 bnglrl
Ulrich Weigandd8394902013-05-03 19:50:27 +00001308# CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
1309 bngctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001310# CHECK: blectrl 0 # encoding: [0x4c,0x81,0x04,0x21]
1311 bngctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +00001312
Ulrich Weigand86247b62013-06-24 16:52:04 +00001313# CHECK: ble+ 2, target # encoding: [0x40,0xe9,A,0bAAAAAA00]
1314# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1315 bng+ 2, target
1316# CHECK: ble+ 0, target # encoding: [0x40,0xe1,A,0bAAAAAA00]
1317# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1318 bng+ target
1319# CHECK: blea+ 2, target # encoding: [0x40,0xe9,A,0bAAAAAA10]
1320# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1321 bnga+ 2, target
1322# CHECK: blea+ 0, target # encoding: [0x40,0xe1,A,0bAAAAAA10]
1323# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1324 bnga+ target
1325# CHECK: blelr+ 2 # encoding: [0x4c,0xe9,0x00,0x20]
1326 bnglr+ 2
1327# CHECK: blelr+ 0 # encoding: [0x4c,0xe1,0x00,0x20]
1328 bnglr+
1329# CHECK: blectr+ 2 # encoding: [0x4c,0xe9,0x04,0x20]
1330 bngctr+ 2
1331# CHECK: blectr+ 0 # encoding: [0x4c,0xe1,0x04,0x20]
1332 bngctr+
1333# CHECK: blel+ 2, target # encoding: [0x40,0xe9,A,0bAAAAAA01]
1334# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1335 bngl+ 2, target
1336# CHECK: blel+ 0, target # encoding: [0x40,0xe1,A,0bAAAAAA01]
1337# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1338 bngl+ target
1339# CHECK: blela+ 2, target # encoding: [0x40,0xe9,A,0bAAAAAA11]
1340# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1341 bngla+ 2, target
1342# CHECK: blela+ 0, target # encoding: [0x40,0xe1,A,0bAAAAAA11]
1343# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1344 bngla+ target
1345# CHECK: blelrl+ 2 # encoding: [0x4c,0xe9,0x00,0x21]
1346 bnglrl+ 2
1347# CHECK: blelrl+ 0 # encoding: [0x4c,0xe1,0x00,0x21]
1348 bnglrl+
1349# CHECK: blectrl+ 2 # encoding: [0x4c,0xe9,0x04,0x21]
1350 bngctrl+ 2
1351# CHECK: blectrl+ 0 # encoding: [0x4c,0xe1,0x04,0x21]
1352 bngctrl+
1353
1354# CHECK: ble- 2, target # encoding: [0x40,0xc9,A,0bAAAAAA00]
1355# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1356 bng- 2, target
1357# CHECK: ble- 0, target # encoding: [0x40,0xc1,A,0bAAAAAA00]
1358# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1359 bng- target
1360# CHECK: blea- 2, target # encoding: [0x40,0xc9,A,0bAAAAAA10]
1361# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1362 bnga- 2, target
1363# CHECK: blea- 0, target # encoding: [0x40,0xc1,A,0bAAAAAA10]
1364# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1365 bnga- target
1366# CHECK: blelr- 2 # encoding: [0x4c,0xc9,0x00,0x20]
1367 bnglr- 2
1368# CHECK: blelr- 0 # encoding: [0x4c,0xc1,0x00,0x20]
1369 bnglr-
1370# CHECK: blectr- 2 # encoding: [0x4c,0xc9,0x04,0x20]
1371 bngctr- 2
1372# CHECK: blectr- 0 # encoding: [0x4c,0xc1,0x04,0x20]
1373 bngctr-
1374# CHECK: blel- 2, target # encoding: [0x40,0xc9,A,0bAAAAAA01]
1375# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1376 bngl- 2, target
1377# CHECK: blel- 0, target # encoding: [0x40,0xc1,A,0bAAAAAA01]
1378# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1379 bngl- target
1380# CHECK: blela- 2, target # encoding: [0x40,0xc9,A,0bAAAAAA11]
1381# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1382 bngla- 2, target
1383# CHECK: blela- 0, target # encoding: [0x40,0xc1,A,0bAAAAAA11]
1384# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1385 bngla- target
1386# CHECK: blelrl- 2 # encoding: [0x4c,0xc9,0x00,0x21]
1387 bnglrl- 2
1388# CHECK: blelrl- 0 # encoding: [0x4c,0xc1,0x00,0x21]
1389 bnglrl-
1390# CHECK: blectrl- 2 # encoding: [0x4c,0xc9,0x04,0x21]
1391 bngctrl- 2
1392# CHECK: blectrl- 0 # encoding: [0x4c,0xc1,0x04,0x21]
1393 bngctrl-
1394
Ulrich Weigandd8394902013-05-03 19:50:27 +00001395# CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
1396# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1397 bso 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001398# CHECK: bun 0, target # encoding: [0x41,0x83,A,0bAAAAAA00]
1399# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1400 bso target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +00001401# CHECK: buna 2, target # encoding: [0x41,0x8b,A,0bAAAAAA10]
1402# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1403 bsoa 2, target
1404# CHECK: buna 0, target # encoding: [0x41,0x83,A,0bAAAAAA10]
1405# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1406 bsoa target
Ulrich Weigandd8394902013-05-03 19:50:27 +00001407# CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
1408 bsolr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001409# CHECK: bunlr 0 # encoding: [0x4d,0x83,0x00,0x20]
1410 bsolr
Ulrich Weigandd8394902013-05-03 19:50:27 +00001411# CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
1412 bsoctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001413# CHECK: bunctr 0 # encoding: [0x4d,0x83,0x04,0x20]
1414 bsoctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +00001415# CHECK: bunl 2, target # encoding: [0x41,0x8b,A,0bAAAAAA01]
1416# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1417 bsol 2, target
1418# CHECK: bunl 0, target # encoding: [0x41,0x83,A,0bAAAAAA01]
1419# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1420 bsol target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +00001421# CHECK: bunla 2, target # encoding: [0x41,0x8b,A,0bAAAAAA11]
1422# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1423 bsola 2, target
1424# CHECK: bunla 0, target # encoding: [0x41,0x83,A,0bAAAAAA11]
1425# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1426 bsola target
Ulrich Weigand1847bb82013-06-24 11:01:55 +00001427# CHECK: bunlrl 2 # encoding: [0x4d,0x8b,0x00,0x21]
1428 bsolrl 2
1429# CHECK: bunlrl 0 # encoding: [0x4d,0x83,0x00,0x21]
1430 bsolrl
Ulrich Weigandd8394902013-05-03 19:50:27 +00001431# CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
1432 bsoctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001433# CHECK: bunctrl 0 # encoding: [0x4d,0x83,0x04,0x21]
1434 bsoctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +00001435
Ulrich Weigand86247b62013-06-24 16:52:04 +00001436# CHECK: bun+ 2, target # encoding: [0x41,0xeb,A,0bAAAAAA00]
1437# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1438 bso+ 2, target
1439# CHECK: bun+ 0, target # encoding: [0x41,0xe3,A,0bAAAAAA00]
1440# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1441 bso+ target
1442# CHECK: buna+ 2, target # encoding: [0x41,0xeb,A,0bAAAAAA10]
1443# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1444 bsoa+ 2, target
1445# CHECK: buna+ 0, target # encoding: [0x41,0xe3,A,0bAAAAAA10]
1446# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1447 bsoa+ target
1448# CHECK: bunlr+ 2 # encoding: [0x4d,0xeb,0x00,0x20]
1449 bsolr+ 2
1450# CHECK: bunlr+ 0 # encoding: [0x4d,0xe3,0x00,0x20]
1451 bsolr+
1452# CHECK: bunctr+ 2 # encoding: [0x4d,0xeb,0x04,0x20]
1453 bsoctr+ 2
1454# CHECK: bunctr+ 0 # encoding: [0x4d,0xe3,0x04,0x20]
1455 bsoctr+
1456# CHECK: bunl+ 2, target # encoding: [0x41,0xeb,A,0bAAAAAA01]
1457# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1458 bsol+ 2, target
1459# CHECK: bunl+ 0, target # encoding: [0x41,0xe3,A,0bAAAAAA01]
1460# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1461 bsol+ target
1462# CHECK: bunla+ 2, target # encoding: [0x41,0xeb,A,0bAAAAAA11]
1463# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1464 bsola+ 2, target
1465# CHECK: bunla+ 0, target # encoding: [0x41,0xe3,A,0bAAAAAA11]
1466# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1467 bsola+ target
1468# CHECK: bunlrl+ 2 # encoding: [0x4d,0xeb,0x00,0x21]
1469 bsolrl+ 2
1470# CHECK: bunlrl+ 0 # encoding: [0x4d,0xe3,0x00,0x21]
1471 bsolrl+
1472# CHECK: bunctrl+ 2 # encoding: [0x4d,0xeb,0x04,0x21]
1473 bsoctrl+ 2
1474# CHECK: bunctrl+ 0 # encoding: [0x4d,0xe3,0x04,0x21]
1475 bsoctrl+
1476
1477# CHECK: bun- 2, target # encoding: [0x41,0xcb,A,0bAAAAAA00]
1478# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1479 bso- 2, target
1480# CHECK: bun- 0, target # encoding: [0x41,0xc3,A,0bAAAAAA00]
1481# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1482 bso- target
1483# CHECK: buna- 2, target # encoding: [0x41,0xcb,A,0bAAAAAA10]
1484# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1485 bsoa- 2, target
1486# CHECK: buna- 0, target # encoding: [0x41,0xc3,A,0bAAAAAA10]
1487# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1488 bsoa- target
1489# CHECK: bunlr- 2 # encoding: [0x4d,0xcb,0x00,0x20]
1490 bsolr- 2
1491# CHECK: bunlr- 0 # encoding: [0x4d,0xc3,0x00,0x20]
1492 bsolr-
1493# CHECK: bunctr- 2 # encoding: [0x4d,0xcb,0x04,0x20]
1494 bsoctr- 2
1495# CHECK: bunctr- 0 # encoding: [0x4d,0xc3,0x04,0x20]
1496 bsoctr-
1497# CHECK: bunl- 2, target # encoding: [0x41,0xcb,A,0bAAAAAA01]
1498# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1499 bsol- 2, target
1500# CHECK: bunl- 0, target # encoding: [0x41,0xc3,A,0bAAAAAA01]
1501# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1502 bsol- target
1503# CHECK: bunla- 2, target # encoding: [0x41,0xcb,A,0bAAAAAA11]
1504# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1505 bsola- 2, target
1506# CHECK: bunla- 0, target # encoding: [0x41,0xc3,A,0bAAAAAA11]
1507# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1508 bsola- target
1509# CHECK: bunlrl- 2 # encoding: [0x4d,0xcb,0x00,0x21]
1510 bsolrl- 2
1511# CHECK: bunlrl- 0 # encoding: [0x4d,0xc3,0x00,0x21]
1512 bsolrl-
1513# CHECK: bunctrl- 2 # encoding: [0x4d,0xcb,0x04,0x21]
1514 bsoctrl- 2
1515# CHECK: bunctrl- 0 # encoding: [0x4d,0xc3,0x04,0x21]
1516 bsoctrl-
1517
Ulrich Weigandd8394902013-05-03 19:50:27 +00001518# CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
1519# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1520 bns 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001521# CHECK: bnu 0, target # encoding: [0x40,0x83,A,0bAAAAAA00]
1522# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1523 bns target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +00001524# CHECK: bnua 2, target # encoding: [0x40,0x8b,A,0bAAAAAA10]
1525# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1526 bnsa 2, target
1527# CHECK: bnua 0, target # encoding: [0x40,0x83,A,0bAAAAAA10]
1528# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1529 bnsa target
Ulrich Weigandd8394902013-05-03 19:50:27 +00001530# CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
1531 bnslr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001532# CHECK: bnulr 0 # encoding: [0x4c,0x83,0x00,0x20]
1533 bnslr
Ulrich Weigandd8394902013-05-03 19:50:27 +00001534# CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
1535 bnsctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001536# CHECK: bnuctr 0 # encoding: [0x4c,0x83,0x04,0x20]
1537 bnsctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +00001538# CHECK: bnul 2, target # encoding: [0x40,0x8b,A,0bAAAAAA01]
1539# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1540 bnsl 2, target
1541# CHECK: bnul 0, target # encoding: [0x40,0x83,A,0bAAAAAA01]
1542# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1543 bnsl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +00001544# CHECK: bnula 2, target # encoding: [0x40,0x8b,A,0bAAAAAA11]
1545# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1546 bnsla 2, target
1547# CHECK: bnula 0, target # encoding: [0x40,0x83,A,0bAAAAAA11]
1548# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1549 bnsla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +00001550# CHECK: bnulrl 2 # encoding: [0x4c,0x8b,0x00,0x21]
1551 bnslrl 2
1552# CHECK: bnulrl 0 # encoding: [0x4c,0x83,0x00,0x21]
1553 bnslrl
Ulrich Weigandd8394902013-05-03 19:50:27 +00001554# CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
1555 bnsctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001556# CHECK: bnuctrl 0 # encoding: [0x4c,0x83,0x04,0x21]
1557 bnsctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +00001558
Ulrich Weigand86247b62013-06-24 16:52:04 +00001559# CHECK: bnu+ 2, target # encoding: [0x40,0xeb,A,0bAAAAAA00]
1560# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1561 bns+ 2, target
1562# CHECK: bnu+ 0, target # encoding: [0x40,0xe3,A,0bAAAAAA00]
1563# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1564 bns+ target
1565# CHECK: bnua+ 2, target # encoding: [0x40,0xeb,A,0bAAAAAA10]
1566# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1567 bnsa+ 2, target
1568# CHECK: bnua+ 0, target # encoding: [0x40,0xe3,A,0bAAAAAA10]
1569# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1570 bnsa+ target
1571# CHECK: bnulr+ 2 # encoding: [0x4c,0xeb,0x00,0x20]
1572 bnslr+ 2
1573# CHECK: bnulr+ 0 # encoding: [0x4c,0xe3,0x00,0x20]
1574 bnslr+
1575# CHECK: bnuctr+ 2 # encoding: [0x4c,0xeb,0x04,0x20]
1576 bnsctr+ 2
1577# CHECK: bnuctr+ 0 # encoding: [0x4c,0xe3,0x04,0x20]
1578 bnsctr+
1579# CHECK: bnul+ 2, target # encoding: [0x40,0xeb,A,0bAAAAAA01]
1580# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1581 bnsl+ 2, target
1582# CHECK: bnul+ 0, target # encoding: [0x40,0xe3,A,0bAAAAAA01]
1583# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1584 bnsl+ target
1585# CHECK: bnula+ 2, target # encoding: [0x40,0xeb,A,0bAAAAAA11]
1586# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1587 bnsla+ 2, target
1588# CHECK: bnula+ 0, target # encoding: [0x40,0xe3,A,0bAAAAAA11]
1589# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1590 bnsla+ target
1591# CHECK: bnulrl+ 2 # encoding: [0x4c,0xeb,0x00,0x21]
1592 bnslrl+ 2
1593# CHECK: bnulrl+ 0 # encoding: [0x4c,0xe3,0x00,0x21]
1594 bnslrl+
1595# CHECK: bnuctrl+ 2 # encoding: [0x4c,0xeb,0x04,0x21]
1596 bnsctrl+ 2
1597# CHECK: bnuctrl+ 0 # encoding: [0x4c,0xe3,0x04,0x21]
1598 bnsctrl+
1599
1600# CHECK: bnu- 2, target # encoding: [0x40,0xcb,A,0bAAAAAA00]
1601# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1602 bns- 2, target
1603# CHECK: bnu- 0, target # encoding: [0x40,0xc3,A,0bAAAAAA00]
1604# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1605 bns- target
1606# CHECK: bnua- 2, target # encoding: [0x40,0xcb,A,0bAAAAAA10]
1607# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1608 bnsa- 2, target
1609# CHECK: bnua- 0, target # encoding: [0x40,0xc3,A,0bAAAAAA10]
1610# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1611 bnsa- target
1612# CHECK: bnulr- 2 # encoding: [0x4c,0xcb,0x00,0x20]
1613 bnslr- 2
1614# CHECK: bnulr- 0 # encoding: [0x4c,0xc3,0x00,0x20]
1615 bnslr-
1616# CHECK: bnuctr- 2 # encoding: [0x4c,0xcb,0x04,0x20]
1617 bnsctr- 2
1618# CHECK: bnuctr- 0 # encoding: [0x4c,0xc3,0x04,0x20]
1619 bnsctr-
1620# CHECK: bnul- 2, target # encoding: [0x40,0xcb,A,0bAAAAAA01]
1621# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1622 bnsl- 2, target
1623# CHECK: bnul- 0, target # encoding: [0x40,0xc3,A,0bAAAAAA01]
1624# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1625 bnsl- target
1626# CHECK: bnula- 2, target # encoding: [0x40,0xcb,A,0bAAAAAA11]
1627# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1628 bnsla- 2, target
1629# CHECK: bnula- 0, target # encoding: [0x40,0xc3,A,0bAAAAAA11]
1630# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1631 bnsla- target
1632# CHECK: bnulrl- 2 # encoding: [0x4c,0xcb,0x00,0x21]
1633 bnslrl- 2
1634# CHECK: bnulrl- 0 # encoding: [0x4c,0xc3,0x00,0x21]
1635 bnslrl-
1636# CHECK: bnuctrl- 2 # encoding: [0x4c,0xcb,0x04,0x21]
1637 bnsctrl- 2
1638# CHECK: bnuctrl- 0 # encoding: [0x4c,0xc3,0x04,0x21]
1639 bnsctrl-
1640
Ulrich Weigandd8394902013-05-03 19:50:27 +00001641# CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
1642# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1643 bun 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001644# CHECK: bun 0, target # encoding: [0x41,0x83,A,0bAAAAAA00]
1645# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1646 bun target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +00001647# CHECK: buna 2, target # encoding: [0x41,0x8b,A,0bAAAAAA10]
1648# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1649 buna 2, target
1650# CHECK: buna 0, target # encoding: [0x41,0x83,A,0bAAAAAA10]
1651# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1652 buna target
Ulrich Weigandd8394902013-05-03 19:50:27 +00001653# CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
1654 bunlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001655# CHECK: bunlr 0 # encoding: [0x4d,0x83,0x00,0x20]
1656 bunlr
Ulrich Weigandd8394902013-05-03 19:50:27 +00001657# CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
1658 bunctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001659# CHECK: bunctr 0 # encoding: [0x4d,0x83,0x04,0x20]
1660 bunctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +00001661# CHECK: bunl 2, target # encoding: [0x41,0x8b,A,0bAAAAAA01]
1662# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1663 bunl 2, target
1664# CHECK: bunl 0, target # encoding: [0x41,0x83,A,0bAAAAAA01]
1665# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1666 bunl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +00001667# CHECK: bunla 2, target # encoding: [0x41,0x8b,A,0bAAAAAA11]
1668# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1669 bunla 2, target
1670# CHECK: bunla 0, target # encoding: [0x41,0x83,A,0bAAAAAA11]
1671# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1672 bunla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +00001673# CHECK: bunlrl 2 # encoding: [0x4d,0x8b,0x00,0x21]
1674 bunlrl 2
1675# CHECK: bunlrl 0 # encoding: [0x4d,0x83,0x00,0x21]
1676 bunlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +00001677# CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
1678 bunctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001679# CHECK: bunctrl 0 # encoding: [0x4d,0x83,0x04,0x21]
1680 bunctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +00001681
Ulrich Weigand86247b62013-06-24 16:52:04 +00001682# CHECK: bun+ 2, target # encoding: [0x41,0xeb,A,0bAAAAAA00]
1683# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1684 bun+ 2, target
1685# CHECK: bun+ 0, target # encoding: [0x41,0xe3,A,0bAAAAAA00]
1686# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1687 bun+ target
1688# CHECK: buna+ 2, target # encoding: [0x41,0xeb,A,0bAAAAAA10]
1689# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1690 buna+ 2, target
1691# CHECK: buna+ 0, target # encoding: [0x41,0xe3,A,0bAAAAAA10]
1692# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1693 buna+ target
1694# CHECK: bunlr+ 2 # encoding: [0x4d,0xeb,0x00,0x20]
1695 bunlr+ 2
1696# CHECK: bunlr+ 0 # encoding: [0x4d,0xe3,0x00,0x20]
1697 bunlr+
1698# CHECK: bunctr+ 2 # encoding: [0x4d,0xeb,0x04,0x20]
1699 bunctr+ 2
1700# CHECK: bunctr+ 0 # encoding: [0x4d,0xe3,0x04,0x20]
1701 bunctr+
1702# CHECK: bunl+ 2, target # encoding: [0x41,0xeb,A,0bAAAAAA01]
1703# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1704 bunl+ 2, target
1705# CHECK: bunl+ 0, target # encoding: [0x41,0xe3,A,0bAAAAAA01]
1706# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1707 bunl+ target
1708# CHECK: bunla+ 2, target # encoding: [0x41,0xeb,A,0bAAAAAA11]
1709# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1710 bunla+ 2, target
1711# CHECK: bunla+ 0, target # encoding: [0x41,0xe3,A,0bAAAAAA11]
1712# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1713 bunla+ target
1714# CHECK: bunlrl+ 2 # encoding: [0x4d,0xeb,0x00,0x21]
1715 bunlrl+ 2
1716# CHECK: bunlrl+ 0 # encoding: [0x4d,0xe3,0x00,0x21]
1717 bunlrl+
1718# CHECK: bunctrl+ 2 # encoding: [0x4d,0xeb,0x04,0x21]
1719 bunctrl+ 2
1720# CHECK: bunctrl+ 0 # encoding: [0x4d,0xe3,0x04,0x21]
1721 bunctrl+
1722
1723# CHECK: bun- 2, target # encoding: [0x41,0xcb,A,0bAAAAAA00]
1724# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1725 bun- 2, target
1726# CHECK: bun- 0, target # encoding: [0x41,0xc3,A,0bAAAAAA00]
1727# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1728 bun- target
1729# CHECK: buna- 2, target # encoding: [0x41,0xcb,A,0bAAAAAA10]
1730# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1731 buna- 2, target
1732# CHECK: buna- 0, target # encoding: [0x41,0xc3,A,0bAAAAAA10]
1733# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1734 buna- target
1735# CHECK: bunlr- 2 # encoding: [0x4d,0xcb,0x00,0x20]
1736 bunlr- 2
1737# CHECK: bunlr- 0 # encoding: [0x4d,0xc3,0x00,0x20]
1738 bunlr-
1739# CHECK: bunctr- 2 # encoding: [0x4d,0xcb,0x04,0x20]
1740 bunctr- 2
1741# CHECK: bunctr- 0 # encoding: [0x4d,0xc3,0x04,0x20]
1742 bunctr-
1743# CHECK: bunl- 2, target # encoding: [0x41,0xcb,A,0bAAAAAA01]
1744# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1745 bunl- 2, target
1746# CHECK: bunl- 0, target # encoding: [0x41,0xc3,A,0bAAAAAA01]
1747# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1748 bunl- target
1749# CHECK: bunla- 2, target # encoding: [0x41,0xcb,A,0bAAAAAA11]
1750# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1751 bunla- 2, target
1752# CHECK: bunla- 0, target # encoding: [0x41,0xc3,A,0bAAAAAA11]
1753# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1754 bunla- target
1755# CHECK: bunlrl- 2 # encoding: [0x4d,0xcb,0x00,0x21]
1756 bunlrl- 2
1757# CHECK: bunlrl- 0 # encoding: [0x4d,0xc3,0x00,0x21]
1758 bunlrl-
1759# CHECK: bunctrl- 2 # encoding: [0x4d,0xcb,0x04,0x21]
1760 bunctrl- 2
1761# CHECK: bunctrl- 0 # encoding: [0x4d,0xc3,0x04,0x21]
1762 bunctrl-
1763
Ulrich Weigandd8394902013-05-03 19:50:27 +00001764# CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
1765# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1766 bnu 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001767# CHECK: bnu 0, target # encoding: [0x40,0x83,A,0bAAAAAA00]
1768# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1769 bnu target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +00001770# CHECK: bnua 2, target # encoding: [0x40,0x8b,A,0bAAAAAA10]
1771# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1772 bnua 2, target
1773# CHECK: bnua 0, target # encoding: [0x40,0x83,A,0bAAAAAA10]
1774# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1775 bnua target
Ulrich Weigandd8394902013-05-03 19:50:27 +00001776# CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
1777 bnulr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001778# CHECK: bnulr 0 # encoding: [0x4c,0x83,0x00,0x20]
1779 bnulr
Ulrich Weigandd8394902013-05-03 19:50:27 +00001780# CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
1781 bnuctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001782# CHECK: bnuctr 0 # encoding: [0x4c,0x83,0x04,0x20]
1783 bnuctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +00001784# CHECK: bnul 2, target # encoding: [0x40,0x8b,A,0bAAAAAA01]
1785# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1786 bnul 2, target
1787# CHECK: bnul 0, target # encoding: [0x40,0x83,A,0bAAAAAA01]
1788# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1789 bnul target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +00001790# CHECK: bnula 2, target # encoding: [0x40,0x8b,A,0bAAAAAA11]
1791# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1792 bnula 2, target
1793# CHECK: bnula 0, target # encoding: [0x40,0x83,A,0bAAAAAA11]
1794# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1795 bnula target
Ulrich Weigand1847bb82013-06-24 11:01:55 +00001796# CHECK: bnulrl 2 # encoding: [0x4c,0x8b,0x00,0x21]
1797 bnulrl 2
1798# CHECK: bnulrl 0 # encoding: [0x4c,0x83,0x00,0x21]
1799 bnulrl
Ulrich Weigandd8394902013-05-03 19:50:27 +00001800# CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
1801 bnuctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +00001802# CHECK: bnuctrl 0 # encoding: [0x4c,0x83,0x04,0x21]
1803 bnuctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +00001804
Ulrich Weigand86247b62013-06-24 16:52:04 +00001805# CHECK: bnu+ 2, target # encoding: [0x40,0xeb,A,0bAAAAAA00]
1806# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1807 bnu+ 2, target
1808# CHECK: bnu+ 0, target # encoding: [0x40,0xe3,A,0bAAAAAA00]
1809# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1810 bnu+ target
1811# CHECK: bnua+ 2, target # encoding: [0x40,0xeb,A,0bAAAAAA10]
1812# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1813 bnua+ 2, target
1814# CHECK: bnua+ 0, target # encoding: [0x40,0xe3,A,0bAAAAAA10]
1815# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1816 bnua+ target
1817# CHECK: bnulr+ 2 # encoding: [0x4c,0xeb,0x00,0x20]
1818 bnulr+ 2
1819# CHECK: bnulr+ 0 # encoding: [0x4c,0xe3,0x00,0x20]
1820 bnulr+
1821# CHECK: bnuctr+ 2 # encoding: [0x4c,0xeb,0x04,0x20]
1822 bnuctr+ 2
1823# CHECK: bnuctr+ 0 # encoding: [0x4c,0xe3,0x04,0x20]
1824 bnuctr+
1825# CHECK: bnul+ 2, target # encoding: [0x40,0xeb,A,0bAAAAAA01]
1826# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1827 bnul+ 2, target
1828# CHECK: bnul+ 0, target # encoding: [0x40,0xe3,A,0bAAAAAA01]
1829# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1830 bnul+ target
1831# CHECK: bnula+ 2, target # encoding: [0x40,0xeb,A,0bAAAAAA11]
1832# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1833 bnula+ 2, target
1834# CHECK: bnula+ 0, target # encoding: [0x40,0xe3,A,0bAAAAAA11]
1835# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1836 bnula+ target
1837# CHECK: bnulrl+ 2 # encoding: [0x4c,0xeb,0x00,0x21]
1838 bnulrl+ 2
1839# CHECK: bnulrl+ 0 # encoding: [0x4c,0xe3,0x00,0x21]
1840 bnulrl+
1841# CHECK: bnuctrl+ 2 # encoding: [0x4c,0xeb,0x04,0x21]
1842 bnuctrl+ 2
1843# CHECK: bnuctrl+ 0 # encoding: [0x4c,0xe3,0x04,0x21]
1844 bnuctrl+
1845
1846# CHECK: bnu- 2, target # encoding: [0x40,0xcb,A,0bAAAAAA00]
1847# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1848 bnu- 2, target
1849# CHECK: bnu- 0, target # encoding: [0x40,0xc3,A,0bAAAAAA00]
1850# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1851 bnu- target
1852# CHECK: bnua- 2, target # encoding: [0x40,0xcb,A,0bAAAAAA10]
1853# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1854 bnua- 2, target
1855# CHECK: bnua- 0, target # encoding: [0x40,0xc3,A,0bAAAAAA10]
1856# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1857 bnua- target
1858# CHECK: bnulr- 2 # encoding: [0x4c,0xcb,0x00,0x20]
1859 bnulr- 2
1860# CHECK: bnulr- 0 # encoding: [0x4c,0xc3,0x00,0x20]
1861 bnulr-
1862# CHECK: bnuctr- 2 # encoding: [0x4c,0xcb,0x04,0x20]
1863 bnuctr- 2
1864# CHECK: bnuctr- 0 # encoding: [0x4c,0xc3,0x04,0x20]
1865 bnuctr-
1866# CHECK: bnul- 2, target # encoding: [0x40,0xcb,A,0bAAAAAA01]
1867# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1868 bnul- 2, target
1869# CHECK: bnul- 0, target # encoding: [0x40,0xc3,A,0bAAAAAA01]
1870# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
1871 bnul- target
1872# CHECK: bnula- 2, target # encoding: [0x40,0xcb,A,0bAAAAAA11]
1873# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1874 bnula- 2, target
1875# CHECK: bnula- 0, target # encoding: [0x40,0xc3,A,0bAAAAAA11]
1876# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
1877 bnula- target
1878# CHECK: bnulrl- 2 # encoding: [0x4c,0xcb,0x00,0x21]
1879 bnulrl- 2
1880# CHECK: bnulrl- 0 # encoding: [0x4c,0xc3,0x00,0x21]
1881 bnulrl-
1882# CHECK: bnuctrl- 2 # encoding: [0x4c,0xcb,0x04,0x21]
1883 bnuctrl- 2
1884# CHECK: bnuctrl- 0 # encoding: [0x4c,0xc3,0x04,0x21]
1885 bnuctrl-
1886
Ulrich Weigand85c6f7f2013-07-01 21:40:54 +00001887# Condition register logical mnemonics
1888
1889# CHECK: creqv 2, 2, 2 # encoding: [0x4c,0x42,0x12,0x42]
1890 crset 2
1891# CHECK: crxor 2, 2, 2 # encoding: [0x4c,0x42,0x11,0x82]
1892 crclr 2
1893# CHECK: cror 2, 3, 3 # encoding: [0x4c,0x43,0x1b,0x82]
1894 crmove 2, 3
1895# CHECK: crnor 2, 3, 3 # encoding: [0x4c,0x43,0x18,0x42]
1896 crnot 2, 3
Ulrich Weigandd8394902013-05-03 19:50:27 +00001897
Ulrich Weigand4069e242013-06-25 13:16:48 +00001898# Subtract mnemonics
1899
1900# CHECK: addi 2, 3, -128 # encoding: [0x38,0x43,0xff,0x80]
1901 subi 2, 3, 128
1902# CHECK: addis 2, 3, -128 # encoding: [0x3c,0x43,0xff,0x80]
1903 subis 2, 3, 128
1904# CHECK: addic 2, 3, -128 # encoding: [0x30,0x43,0xff,0x80]
1905 subic 2, 3, 128
1906# CHECK: addic. 2, 3, -128 # encoding: [0x34,0x43,0xff,0x80]
1907 subic. 2, 3, 128
1908
1909# CHECK: subf 2, 4, 3 # encoding: [0x7c,0x44,0x18,0x50]
1910 sub 2, 3, 4
1911# CHECK: subf. 2, 4, 3 # encoding: [0x7c,0x44,0x18,0x51]
1912 sub. 2, 3, 4
1913# CHECK: subfc 2, 4, 3 # encoding: [0x7c,0x44,0x18,0x10]
1914 subc 2, 3, 4
1915# CHECK: subfc. 2, 4, 3 # encoding: [0x7c,0x44,0x18,0x11]
1916 subc. 2, 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +00001917
1918# Compare mnemonics
1919
1920# CHECK: cmpdi 2, 3, 128 # encoding: [0x2d,0x23,0x00,0x80]
1921 cmpdi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +00001922# CHECK: cmpdi 0, 3, 128 # encoding: [0x2c,0x23,0x00,0x80]
1923 cmpdi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +00001924# CHECK: cmpd 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x00]
1925 cmpd 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +00001926# CHECK: cmpd 0, 3, 4 # encoding: [0x7c,0x23,0x20,0x00]
1927 cmpd 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +00001928# CHECK: cmpldi 2, 3, 128 # encoding: [0x29,0x23,0x00,0x80]
1929 cmpldi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +00001930# CHECK: cmpldi 0, 3, 128 # encoding: [0x28,0x23,0x00,0x80]
1931 cmpldi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +00001932# CHECK: cmpld 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x40]
1933 cmpld 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +00001934# CHECK: cmpld 0, 3, 4 # encoding: [0x7c,0x23,0x20,0x40]
1935 cmpld 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +00001936
1937# CHECK: cmpwi 2, 3, 128 # encoding: [0x2d,0x03,0x00,0x80]
1938 cmpwi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +00001939# CHECK: cmpwi 0, 3, 128 # encoding: [0x2c,0x03,0x00,0x80]
1940 cmpwi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +00001941# CHECK: cmpw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x00]
1942 cmpw 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +00001943# CHECK: cmpw 0, 3, 4 # encoding: [0x7c,0x03,0x20,0x00]
1944 cmpw 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +00001945# CHECK: cmplwi 2, 3, 128 # encoding: [0x29,0x03,0x00,0x80]
1946 cmplwi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +00001947# CHECK: cmplwi 0, 3, 128 # encoding: [0x28,0x03,0x00,0x80]
1948 cmplwi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +00001949# CHECK: cmplw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x40]
1950 cmplw 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +00001951# CHECK: cmplw 0, 3, 4 # encoding: [0x7c,0x03,0x20,0x40]
1952 cmplw 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +00001953
1954# FIXME: Trap mnemonics
1955
1956# Rotate and shift mnemonics
1957
Ulrich Weigandad873cd2013-06-25 13:17:41 +00001958# CHECK: rldicr 2, 3, 5, 3 # encoding: [0x78,0x62,0x28,0xc4]
1959 extldi 2, 3, 4, 5
1960# CHECK: rldicr. 2, 3, 5, 3 # encoding: [0x78,0x62,0x28,0xc5]
1961 extldi. 2, 3, 4, 5
1962# CHECK: rldicl 2, 3, 9, 60 # encoding: [0x78,0x62,0x4f,0x20]
1963 extrdi 2, 3, 4, 5
1964# CHECK: rldicl. 2, 3, 9, 60 # encoding: [0x78,0x62,0x4f,0x21]
1965 extrdi. 2, 3, 4, 5
1966# CHECK: rldimi 2, 3, 55, 5 # encoding: [0x78,0x62,0xb9,0x4e]
1967 insrdi 2, 3, 4, 5
1968# CHECK: rldimi. 2, 3, 55, 5 # encoding: [0x78,0x62,0xb9,0x4f]
1969 insrdi. 2, 3, 4, 5
1970# CHECK: rldicl 2, 3, 4, 0 # encoding: [0x78,0x62,0x20,0x00]
1971 rotldi 2, 3, 4
1972# CHECK: rldicl. 2, 3, 4, 0 # encoding: [0x78,0x62,0x20,0x01]
1973 rotldi. 2, 3, 4
1974# CHECK: rldicl 2, 3, 60, 0 # encoding: [0x78,0x62,0xe0,0x02]
1975 rotrdi 2, 3, 4
1976# CHECK: rldicl. 2, 3, 60, 0 # encoding: [0x78,0x62,0xe0,0x03]
1977 rotrdi. 2, 3, 4
1978# CHECK: rldcl 2, 3, 4, 0 # encoding: [0x78,0x62,0x20,0x10]
1979 rotld 2, 3, 4
1980# CHECK: rldcl. 2, 3, 4, 0 # encoding: [0x78,0x62,0x20,0x11]
1981 rotld. 2, 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +00001982# CHECK: sldi 2, 3, 4 # encoding: [0x78,0x62,0x26,0xe4]
1983 sldi 2, 3, 4
Ulrich Weigandad873cd2013-06-25 13:17:41 +00001984# CHECK: rldicr. 2, 3, 4, 59 # encoding: [0x78,0x62,0x26,0xe5]
1985 sldi. 2, 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +00001986# CHECK: rldicl 2, 3, 60, 4 # encoding: [0x78,0x62,0xe1,0x02]
1987 srdi 2, 3, 4
Ulrich Weigandad873cd2013-06-25 13:17:41 +00001988# CHECK: rldicl. 2, 3, 60, 4 # encoding: [0x78,0x62,0xe1,0x03]
1989 srdi. 2, 3, 4
1990# CHECK: rldicl 2, 3, 0, 4 # encoding: [0x78,0x62,0x01,0x00]
1991 clrldi 2, 3, 4
1992# CHECK: rldicl. 2, 3, 0, 4 # encoding: [0x78,0x62,0x01,0x01]
1993 clrldi. 2, 3, 4
1994# CHECK: rldicr 2, 3, 0, 59 # encoding: [0x78,0x62,0x06,0xe4]
1995 clrrdi 2, 3, 4
1996# CHECK: rldicr. 2, 3, 0, 59 # encoding: [0x78,0x62,0x06,0xe5]
1997 clrrdi. 2, 3, 4
1998# CHECK: rldic 2, 3, 4, 1 # encoding: [0x78,0x62,0x20,0x48]
1999 clrlsldi 2, 3, 5, 4
2000# CHECK: rldic. 2, 3, 4, 1 # encoding: [0x78,0x62,0x20,0x49]
2001 clrlsldi. 2, 3, 5, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +00002002
Ulrich Weigandad873cd2013-06-25 13:17:41 +00002003# CHECK: rlwinm 2, 3, 5, 0, 3 # encoding: [0x54,0x62,0x28,0x06]
2004 extlwi 2, 3, 4, 5
2005# CHECK: rlwinm. 2, 3, 5, 0, 3 # encoding: [0x54,0x62,0x28,0x07]
2006 extlwi. 2, 3, 4, 5
2007# CHECK: rlwinm 2, 3, 9, 28, 31 # encoding: [0x54,0x62,0x4f,0x3e]
2008 extrwi 2, 3, 4, 5
2009# CHECK: rlwinm. 2, 3, 9, 28, 31 # encoding: [0x54,0x62,0x4f,0x3f]
2010 extrwi. 2, 3, 4, 5
2011# CHECK: rlwimi 2, 3, 27, 5, 8 # encoding: [0x50,0x62,0xd9,0x50]
2012 inslwi 2, 3, 4, 5
2013# CHECK: rlwimi. 2, 3, 27, 5, 8 # encoding: [0x50,0x62,0xd9,0x51]
2014 inslwi. 2, 3, 4, 5
2015# CHECK: rlwimi 2, 3, 23, 5, 8 # encoding: [0x50,0x62,0xb9,0x50]
2016 insrwi 2, 3, 4, 5
2017# CHECK: rlwimi. 2, 3, 23, 5, 8 # encoding: [0x50,0x62,0xb9,0x51]
2018 insrwi. 2, 3, 4, 5
2019# CHECK: rlwinm 2, 3, 4, 0, 31 # encoding: [0x54,0x62,0x20,0x3e]
2020 rotlwi 2, 3, 4
2021# CHECK: rlwinm. 2, 3, 4, 0, 31 # encoding: [0x54,0x62,0x20,0x3f]
2022 rotlwi. 2, 3, 4
2023# CHECK: rlwinm 2, 3, 28, 0, 31 # encoding: [0x54,0x62,0xe0,0x3e]
2024 rotrwi 2, 3, 4
2025# CHECK: rlwinm. 2, 3, 28, 0, 31 # encoding: [0x54,0x62,0xe0,0x3f]
2026 rotrwi. 2, 3, 4
2027# CHECK: rlwnm 2, 3, 4, 0, 31 # encoding: [0x5c,0x62,0x20,0x3e]
2028 rotlw 2, 3, 4
2029# CHECK: rlwnm. 2, 3, 4, 0, 31 # encoding: [0x5c,0x62,0x20,0x3f]
2030 rotlw. 2, 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +00002031# CHECK: slwi 2, 3, 4 # encoding: [0x54,0x62,0x20,0x36]
2032 slwi 2, 3, 4
Ulrich Weigandad873cd2013-06-25 13:17:41 +00002033# CHECK: rlwinm. 2, 3, 4, 0, 27 # encoding: [0x54,0x62,0x20,0x37]
2034 slwi. 2, 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +00002035# CHECK: srwi 2, 3, 4 # encoding: [0x54,0x62,0xe1,0x3e]
2036 srwi 2, 3, 4
Ulrich Weigandad873cd2013-06-25 13:17:41 +00002037# CHECK: rlwinm. 2, 3, 28, 4, 31 # encoding: [0x54,0x62,0xe1,0x3f]
2038 srwi. 2, 3, 4
2039# CHECK: rlwinm 2, 3, 0, 4, 31 # encoding: [0x54,0x62,0x01,0x3e]
2040 clrlwi 2, 3, 4
2041# CHECK: rlwinm. 2, 3, 0, 4, 31 # encoding: [0x54,0x62,0x01,0x3f]
2042 clrlwi. 2, 3, 4
2043# CHECK: rlwinm 2, 3, 0, 0, 27 # encoding: [0x54,0x62,0x00,0x36]
2044 clrrwi 2, 3, 4
2045# CHECK: rlwinm. 2, 3, 0, 0, 27 # encoding: [0x54,0x62,0x00,0x37]
2046 clrrwi. 2, 3, 4
2047# CHECK: rlwinm 2, 3, 4, 1, 27 # encoding: [0x54,0x62,0x20,0x76]
2048 clrlslwi 2, 3, 5, 4
2049# CHECK: rlwinm. 2, 3, 4, 1, 27 # encoding: [0x54,0x62,0x20,0x77]
2050 clrlslwi. 2, 3, 5, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +00002051
2052# Move to/from special purpose register mnemonics
2053
Ulrich Weigandae9cf582013-07-03 12:32:41 +00002054# CHECK: mtspr 1, 2 # encoding: [0x7c,0x41,0x03,0xa6]
2055 mtxer 2
2056# CHECK: mfspr 2, 1 # encoding: [0x7c,0x41,0x02,0xa6]
2057 mfxer 2
Ulrich Weigandd8394902013-05-03 19:50:27 +00002058# CHECK: mtlr 2 # encoding: [0x7c,0x48,0x03,0xa6]
2059 mtlr 2
2060# CHECK: mflr 2 # encoding: [0x7c,0x48,0x02,0xa6]
2061 mflr 2
2062# CHECK: mtctr 2 # encoding: [0x7c,0x49,0x03,0xa6]
2063 mtctr 2
2064# CHECK: mfctr 2 # encoding: [0x7c,0x49,0x02,0xa6]
2065 mfctr 2
2066
2067# Miscellaneous mnemonics
2068
2069# CHECK: nop # encoding: [0x60,0x00,0x00,0x00]
2070 nop
Ulrich Weigand6ca71572013-06-24 18:08:03 +00002071# CHECK: xori 0, 0, 0 # encoding: [0x68,0x00,0x00,0x00]
2072 xnop
Ulrich Weigandd8394902013-05-03 19:50:27 +00002073# CHECK: li 2, 128 # encoding: [0x38,0x40,0x00,0x80]
2074 li 2, 128
2075# CHECK: lis 2, 128 # encoding: [0x3c,0x40,0x00,0x80]
2076 lis 2, 128
Ulrich Weigand6ca71572013-06-24 18:08:03 +00002077# CHECK: la 2, 128(4)
2078 la 2, 128(4)
Ulrich Weigandd8394902013-05-03 19:50:27 +00002079# CHECK: mr 2, 3 # encoding: [0x7c,0x62,0x1b,0x78]
2080 mr 2, 3
Ulrich Weigand6ca71572013-06-24 18:08:03 +00002081# CHECK: or. 2, 3, 3 # encoding: [0x7c,0x62,0x1b,0x79]
2082 mr. 2, 3
2083# CHECK: nor 2, 3, 3 # encoding: [0x7c,0x62,0x18,0xf8]
2084 not 2, 3
2085# CHECK: nor. 2, 3, 3 # encoding: [0x7c,0x62,0x18,0xf9]
2086 not. 2, 3
Ulrich Weigand49f487e2013-07-03 17:59:07 +00002087# CHECK: mtcrf 255, 2 # encoding: [0x7c,0x4f,0xf1,0x20]
2088 mtcr 2
Ulrich Weigandd8394902013-05-03 19:50:27 +00002089