blob: 09fdd458ab803f4e3f934816c5504290f7d58d71 [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
4# FIXME: Condition register bit symbols
5
6# Branch mnemonics
7
8# CHECK: blr # encoding: [0x4e,0x80,0x00,0x20]
9 blr
10# CHECK: bctr # encoding: [0x4e,0x80,0x04,0x20]
11 bctr
Ulrich Weigand1847bb82013-06-24 11:01:55 +000012# CHECK: blrl # encoding: [0x4e,0x80,0x00,0x21]
13 blrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000014# CHECK: bctrl # encoding: [0x4e,0x80,0x04,0x21]
15 bctrl
16
17# FIXME: bt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000018# FIXME: bt target
Ulrich Weigandd8394902013-05-03 19:50:27 +000019# FIXME: bta 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000020# FIXME: bta target
Ulrich Weigandd8394902013-05-03 19:50:27 +000021# FIXME: btlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000022# FIXME: btlr
Ulrich Weigandd8394902013-05-03 19:50:27 +000023# FIXME: btctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000024# FIXME: btctr
Ulrich Weigandd8394902013-05-03 19:50:27 +000025# FIXME: btl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000026# FIXME: btl target
Ulrich Weigandd8394902013-05-03 19:50:27 +000027# FIXME: btla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000028# FIXME: btla target
Ulrich Weigandd8394902013-05-03 19:50:27 +000029# FIXME: btlrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000030# FIXME: btlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000031# FIXME: btctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000032# FIXME: btctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000033
34# FIXME: bf 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000035# FIXME: bf target
Ulrich Weigandd8394902013-05-03 19:50:27 +000036# FIXME: bfa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000037# FIXME: bfa target
Ulrich Weigandd8394902013-05-03 19:50:27 +000038# FIXME: bflr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000039# FIXME: bflr
Ulrich Weigandd8394902013-05-03 19:50:27 +000040# FIXME: bfctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000041# FIXME: bfctr
Ulrich Weigandd8394902013-05-03 19:50:27 +000042# FIXME: bfl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000043# FIXME: bfl target
Ulrich Weigandd8394902013-05-03 19:50:27 +000044# FIXME: bfla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000045# FIXME: bfla target
Ulrich Weigandd8394902013-05-03 19:50:27 +000046# FIXME: bflrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000047# FIXME: bflrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000048# FIXME: bfctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000049# FIXME: bfctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000050
51# CHECK: bdnz target # encoding: [0x42,0x00,A,0bAAAAAA00]
52# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
53 bdnz target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +000054# CHECK: bdnza target # encoding: [0x42,0x00,A,0bAAAAAA10]
55# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
56 bdnza target
Ulrich Weigandd8394902013-05-03 19:50:27 +000057# CHECK: bdnzlr # encoding: [0x4e,0x00,0x00,0x20]
58 bdnzlr
Ulrich Weigand5b9d5912013-06-24 11:02:38 +000059# CHECK: bdnzl target # encoding: [0x42,0x00,A,0bAAAAAA01]
60# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
61 bdnzl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +000062# CHECK: bdnzla target # encoding: [0x42,0x00,A,0bAAAAAA11]
63# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
64 bdnzla target
Ulrich Weigand5b9d5912013-06-24 11:02:38 +000065# CHECK: bdnzlrl # encoding: [0x4e,0x00,0x00,0x21]
66 bdnzlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000067
68# FIXME: bdnzt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000069# FIXME: bdnzt target
Ulrich Weigandd8394902013-05-03 19:50:27 +000070# FIXME: bdnzta 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000071# FIXME: bdnzta target
Ulrich Weigandd8394902013-05-03 19:50:27 +000072# FIXME: bdnztlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000073# FIXME: bdnztlr
Ulrich Weigandd8394902013-05-03 19:50:27 +000074# FIXME: bdnztl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000075# FIXME: bdnztl target
Ulrich Weigandd8394902013-05-03 19:50:27 +000076# FIXME: bdnztla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000077# FIXME: bdnztla target
Ulrich Weigandd8394902013-05-03 19:50:27 +000078# FIXME: bdnztlrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000079# FIXME: bdnztlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000080# FIXME: bdnzf 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000081# FIXME: bdnzf target
Ulrich Weigandd8394902013-05-03 19:50:27 +000082# FIXME: bdnzfa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000083# FIXME: bdnzfa target
Ulrich Weigandd8394902013-05-03 19:50:27 +000084# FIXME: bdnzflr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000085# FIXME: bdnzflr
Ulrich Weigandd8394902013-05-03 19:50:27 +000086# FIXME: bdnzfl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000087# FIXME: bdnzfl target
Ulrich Weigandd8394902013-05-03 19:50:27 +000088# FIXME: bdnzfla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000089# FIXME: bdnzfla target
Ulrich Weigandd8394902013-05-03 19:50:27 +000090# FIXME: bdnzflrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +000091# FIXME: bdnzflrl
Ulrich Weigandd8394902013-05-03 19:50:27 +000092
93# CHECK: bdz target # encoding: [0x42,0x40,A,0bAAAAAA00]
94# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
95 bdz target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +000096# CHECK: bdza target # encoding: [0x42,0x40,A,0bAAAAAA10]
97# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
98 bdza target
Ulrich Weigandd8394902013-05-03 19:50:27 +000099# CHECK: bdzlr # encoding: [0x4e,0x40,0x00,0x20]
100 bdzlr
Ulrich Weigand5b9d5912013-06-24 11:02:38 +0000101# CHECK: bdzl target # encoding: [0x42,0x40,A,0bAAAAAA01]
102# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
103 bdzl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000104# CHECK: bdzla target # encoding: [0x42,0x40,A,0bAAAAAA11]
105# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
106 bdzla target
Ulrich Weigand5b9d5912013-06-24 11:02:38 +0000107# CHECK: bdzlrl # encoding: [0x4e,0x40,0x00,0x21]
108 bdzlrl
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000109
Ulrich Weigandd8394902013-05-03 19:50:27 +0000110# FIXME: bdzt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000111# FIXME: bdzt target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000112# FIXME: bdzta 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000113# FIXME: bdzta target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000114# FIXME: bdztlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000115# FIXME: bdztlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000116# FIXME: bdztl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000117# FIXME: bdztl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000118# FIXME: bdztla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000119# FIXME: bdztla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000120# FIXME: bdztlrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000121# FIXME: bdztlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000122# FIXME: bdzf 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000123# FIXME: bdzf target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000124# FIXME: bdzfa 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000125# FIXME: bdzfa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000126# FIXME: bdzflr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000127# FIXME: bdzflr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000128# FIXME: bdzfl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000129# FIXME: bdzfl target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000130# FIXME: bdzfla 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000131# FIXME: bdzfla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000132# FIXME: bdzflrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000133# FIXME: bdzflrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000134
135# CHECK: blt 2, target # encoding: [0x41,0x88,A,0bAAAAAA00]
136# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
137 blt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000138# CHECK: blt 0, target # encoding: [0x41,0x80,A,0bAAAAAA00]
139# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
140 blt target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000141# CHECK: blta 2, target # encoding: [0x41,0x88,A,0bAAAAAA10]
142# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
143 blta 2, target
144# CHECK: blta 0, target # encoding: [0x41,0x80,A,0bAAAAAA10]
145# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
146 blta target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000147# CHECK: bltlr 2 # encoding: [0x4d,0x88,0x00,0x20]
148 bltlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000149# CHECK: bltlr 0 # encoding: [0x4d,0x80,0x00,0x20]
150 bltlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000151# CHECK: bltctr 2 # encoding: [0x4d,0x88,0x04,0x20]
152 bltctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000153# CHECK: bltctr 0 # encoding: [0x4d,0x80,0x04,0x20]
154 bltctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000155# CHECK: bltl 2, target # encoding: [0x41,0x88,A,0bAAAAAA01]
156# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
157 bltl 2, target
158# CHECK: bltl 0, target # encoding: [0x41,0x80,A,0bAAAAAA01]
159# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
160 bltl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000161# CHECK: bltla 2, target # encoding: [0x41,0x88,A,0bAAAAAA11]
162# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
163 bltla 2, target
164# CHECK: bltla 0, target # encoding: [0x41,0x80,A,0bAAAAAA11]
165# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
166 bltla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000167# CHECK: bltlrl 2 # encoding: [0x4d,0x88,0x00,0x21]
168 bltlrl 2
169# CHECK: bltlrl 0 # encoding: [0x4d,0x80,0x00,0x21]
170 bltlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000171# CHECK: bltctrl 2 # encoding: [0x4d,0x88,0x04,0x21]
172 bltctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000173# CHECK: bltctrl 0 # encoding: [0x4d,0x80,0x04,0x21]
174 bltctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000175
176# CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
177# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
178 ble 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000179# CHECK: ble 0, target # encoding: [0x40,0x81,A,0bAAAAAA00]
180# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
181 ble target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000182# CHECK: blea 2, target # encoding: [0x40,0x89,A,0bAAAAAA10]
183# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
184 blea 2, target
185# CHECK: blea 0, target # encoding: [0x40,0x81,A,0bAAAAAA10]
186# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
187 blea target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000188# CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
189 blelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000190# CHECK: blelr 0 # encoding: [0x4c,0x81,0x00,0x20]
191 blelr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000192# CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
193 blectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000194# CHECK: blectr 0 # encoding: [0x4c,0x81,0x04,0x20]
195 blectr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000196# CHECK: blel 2, target # encoding: [0x40,0x89,A,0bAAAAAA01]
197# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
198 blel 2, target
199# CHECK: blel 0, target # encoding: [0x40,0x81,A,0bAAAAAA01]
200# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
201 blel target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000202# CHECK: blela 2, target # encoding: [0x40,0x89,A,0bAAAAAA11]
203# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
204 blela 2, target
205# CHECK: blela 0, target # encoding: [0x40,0x81,A,0bAAAAAA11]
206# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
207 blela target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000208# CHECK: blelrl 2 # encoding: [0x4c,0x89,0x00,0x21]
209 blelrl 2
210# CHECK: blelrl 0 # encoding: [0x4c,0x81,0x00,0x21]
211 blelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000212# CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
213 blectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000214# CHECK: blectrl 0 # encoding: [0x4c,0x81,0x04,0x21]
215 blectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000216
217# CHECK: beq 2, target # encoding: [0x41,0x8a,A,0bAAAAAA00]
218# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
219 beq 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000220# CHECK: beq 0, target # encoding: [0x41,0x82,A,0bAAAAAA00]
221# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
222 beq target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000223# CHECK: beqa 2, target # encoding: [0x41,0x8a,A,0bAAAAAA10]
224# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
225 beqa 2, target
226# CHECK: beqa 0, target # encoding: [0x41,0x82,A,0bAAAAAA10]
227# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
228 beqa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000229# CHECK: beqlr 2 # encoding: [0x4d,0x8a,0x00,0x20]
230 beqlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000231# CHECK: beqlr 0 # encoding: [0x4d,0x82,0x00,0x20]
232 beqlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000233# CHECK: beqctr 2 # encoding: [0x4d,0x8a,0x04,0x20]
234 beqctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000235# CHECK: beqctr 0 # encoding: [0x4d,0x82,0x04,0x20]
236 beqctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000237# CHECK: beql 2, target # encoding: [0x41,0x8a,A,0bAAAAAA01]
238# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
239 beql 2, target
240# CHECK: beql 0, target # encoding: [0x41,0x82,A,0bAAAAAA01]
241# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
242 beql target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000243# CHECK: beqla 2, target # encoding: [0x41,0x8a,A,0bAAAAAA11]
244# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
245 beqla 2, target
246# CHECK: beqla 0, target # encoding: [0x41,0x82,A,0bAAAAAA11]
247# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
248 beqla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000249# CHECK: beqlrl 2 # encoding: [0x4d,0x8a,0x00,0x21]
250 beqlrl 2
251# CHECK: beqlrl 0 # encoding: [0x4d,0x82,0x00,0x21]
252 beqlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000253# CHECK: beqctrl 2 # encoding: [0x4d,0x8a,0x04,0x21]
254 beqctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000255# CHECK: beqctrl 0 # encoding: [0x4d,0x82,0x04,0x21]
256 beqctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000257
258# CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
259# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
260 bge 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000261# CHECK: bge 0, target # encoding: [0x40,0x80,A,0bAAAAAA00]
262# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
263 bge target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000264# CHECK: bgea 2, target # encoding: [0x40,0x88,A,0bAAAAAA10]
265# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
266 bgea 2, target
267# CHECK: bgea 0, target # encoding: [0x40,0x80,A,0bAAAAAA10]
268# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
269 bgea target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000270# CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
271 bgelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000272# CHECK: bgelr 0 # encoding: [0x4c,0x80,0x00,0x20]
273 bgelr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000274# CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
275 bgectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000276# CHECK: bgectr 0 # encoding: [0x4c,0x80,0x04,0x20]
277 bgectr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000278# CHECK: bgel 2, target # encoding: [0x40,0x88,A,0bAAAAAA01]
279# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
280 bgel 2, target
281# CHECK: bgel 0, target # encoding: [0x40,0x80,A,0bAAAAAA01]
282# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
283 bgel target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000284# CHECK: bgela 2, target # encoding: [0x40,0x88,A,0bAAAAAA11]
285# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
286 bgela 2, target
287# CHECK: bgela 0, target # encoding: [0x40,0x80,A,0bAAAAAA11]
288# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
289 bgela target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000290# CHECK: bgelrl 2 # encoding: [0x4c,0x88,0x00,0x21]
291 bgelrl 2
292# CHECK: bgelrl 0 # encoding: [0x4c,0x80,0x00,0x21]
293 bgelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000294# CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
295 bgectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000296# CHECK: bgectrl 0 # encoding: [0x4c,0x80,0x04,0x21]
297 bgectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000298
299# CHECK: bgt 2, target # encoding: [0x41,0x89,A,0bAAAAAA00]
300# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
301 bgt 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000302# CHECK: bgt 0, target # encoding: [0x41,0x81,A,0bAAAAAA00]
303# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
304 bgt target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000305# CHECK: bgta 2, target # encoding: [0x41,0x89,A,0bAAAAAA10]
306# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
307 bgta 2, target
308# CHECK: bgta 0, target # encoding: [0x41,0x81,A,0bAAAAAA10]
309# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
310 bgta target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000311# CHECK: bgtlr 2 # encoding: [0x4d,0x89,0x00,0x20]
312 bgtlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000313# CHECK: bgtlr 0 # encoding: [0x4d,0x81,0x00,0x20]
314 bgtlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000315# CHECK: bgtctr 2 # encoding: [0x4d,0x89,0x04,0x20]
316 bgtctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000317# CHECK: bgtctr 0 # encoding: [0x4d,0x81,0x04,0x20]
318 bgtctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000319# CHECK: bgtl 2, target # encoding: [0x41,0x89,A,0bAAAAAA01]
320# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
321 bgtl 2, target
322# CHECK: bgtl 0, target # encoding: [0x41,0x81,A,0bAAAAAA01]
323# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
324 bgtl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000325# CHECK: bgtla 2, target # encoding: [0x41,0x89,A,0bAAAAAA11]
326# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
327 bgtla 2, target
328# CHECK: bgtla 0, target # encoding: [0x41,0x81,A,0bAAAAAA11]
329# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
330 bgtla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000331# CHECK: bgtlrl 2 # encoding: [0x4d,0x89,0x00,0x21]
332 bgtlrl 2
333# CHECK: bgtlrl 0 # encoding: [0x4d,0x81,0x00,0x21]
334 bgtlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000335# CHECK: bgtctrl 2 # encoding: [0x4d,0x89,0x04,0x21]
336 bgtctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000337# CHECK: bgtctrl 0 # encoding: [0x4d,0x81,0x04,0x21]
338 bgtctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000339
340# CHECK: bge 2, target # encoding: [0x40,0x88,A,0bAAAAAA00]
341# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
342 bnl 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000343# CHECK: bge 0, target # encoding: [0x40,0x80,A,0bAAAAAA00]
344# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
345 bnl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000346# CHECK: bgea 2, target # encoding: [0x40,0x88,A,0bAAAAAA10]
347# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
348 bnla 2, target
349# CHECK: bgea 0, target # encoding: [0x40,0x80,A,0bAAAAAA10]
350# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
351 bnla target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000352# CHECK: bgelr 2 # encoding: [0x4c,0x88,0x00,0x20]
353 bnllr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000354# CHECK: bgelr 0 # encoding: [0x4c,0x80,0x00,0x20]
355 bnllr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000356# CHECK: bgectr 2 # encoding: [0x4c,0x88,0x04,0x20]
357 bnlctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000358# CHECK: bgectr 0 # encoding: [0x4c,0x80,0x04,0x20]
359 bnlctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000360# CHECK: bgel 2, target # encoding: [0x40,0x88,A,0bAAAAAA01]
361# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
362 bnll 2, target
363# CHECK: bgel 0, target # encoding: [0x40,0x80,A,0bAAAAAA01]
364# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
365 bnll target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000366# CHECK: bgela 2, target # encoding: [0x40,0x88,A,0bAAAAAA11]
367# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
368 bnlla 2, target
369# CHECK: bgela 0, target # encoding: [0x40,0x80,A,0bAAAAAA11]
370# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
371 bnlla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000372# CHECK: bgelrl 2 # encoding: [0x4c,0x88,0x00,0x21]
373 bnllrl 2
374# CHECK: bgelrl 0 # encoding: [0x4c,0x80,0x00,0x21]
375 bnllrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000376# CHECK: bgectrl 2 # encoding: [0x4c,0x88,0x04,0x21]
377 bnlctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000378# CHECK: bgectrl 0 # encoding: [0x4c,0x80,0x04,0x21]
379 bnlctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000380
381# CHECK: bne 2, target # encoding: [0x40,0x8a,A,0bAAAAAA00]
382# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
383 bne 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000384# CHECK: bne 0, target # encoding: [0x40,0x82,A,0bAAAAAA00]
385# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
386 bne target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000387# CHECK: bnea 2, target # encoding: [0x40,0x8a,A,0bAAAAAA10]
388# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
389 bnea 2, target
390# CHECK: bnea 0, target # encoding: [0x40,0x82,A,0bAAAAAA10]
391# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
392 bnea target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000393# CHECK: bnelr 2 # encoding: [0x4c,0x8a,0x00,0x20]
394 bnelr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000395# CHECK: bnelr 0 # encoding: [0x4c,0x82,0x00,0x20]
396 bnelr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000397# CHECK: bnectr 2 # encoding: [0x4c,0x8a,0x04,0x20]
398 bnectr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000399# CHECK: bnectr 0 # encoding: [0x4c,0x82,0x04,0x20]
400 bnectr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000401# CHECK: bnel 2, target # encoding: [0x40,0x8a,A,0bAAAAAA01]
402# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
403 bnel 2, target
404# CHECK: bnel 0, target # encoding: [0x40,0x82,A,0bAAAAAA01]
405# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
406 bnel target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000407# CHECK: bnela 2, target # encoding: [0x40,0x8a,A,0bAAAAAA11]
408# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
409 bnela 2, target
410# CHECK: bnela 0, target # encoding: [0x40,0x82,A,0bAAAAAA11]
411# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
412 bnela target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000413# CHECK: bnelrl 2 # encoding: [0x4c,0x8a,0x00,0x21]
414 bnelrl 2
415# CHECK: bnelrl 0 # encoding: [0x4c,0x82,0x00,0x21]
416 bnelrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000417# CHECK: bnectrl 2 # encoding: [0x4c,0x8a,0x04,0x21]
418 bnectrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000419# CHECK: bnectrl 0 # encoding: [0x4c,0x82,0x04,0x21]
420 bnectrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000421
422# CHECK: ble 2, target # encoding: [0x40,0x89,A,0bAAAAAA00]
423# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
424 bng 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000425# CHECK: ble 0, target # encoding: [0x40,0x81,A,0bAAAAAA00]
426# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
427 bng target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000428# CHECK: blea 2, target # encoding: [0x40,0x89,A,0bAAAAAA10]
429# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
430 bnga 2, target
431# CHECK: blea 0, target # encoding: [0x40,0x81,A,0bAAAAAA10]
432# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
433 bnga target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000434# CHECK: blelr 2 # encoding: [0x4c,0x89,0x00,0x20]
435 bnglr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000436# CHECK: blelr 0 # encoding: [0x4c,0x81,0x00,0x20]
437 bnglr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000438# CHECK: blectr 2 # encoding: [0x4c,0x89,0x04,0x20]
439 bngctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000440# CHECK: blectr 0 # encoding: [0x4c,0x81,0x04,0x20]
441 bngctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000442# CHECK: blel 2, target # encoding: [0x40,0x89,A,0bAAAAAA01]
443# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
444 bngl 2, target
445# CHECK: blel 0, target # encoding: [0x40,0x81,A,0bAAAAAA01]
446# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
447 bngl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000448# CHECK: blela 2, target # encoding: [0x40,0x89,A,0bAAAAAA11]
449# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
450 bngla 2, target
451# CHECK: blela 0, target # encoding: [0x40,0x81,A,0bAAAAAA11]
452# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
453 bngla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000454# CHECK: blelrl 2 # encoding: [0x4c,0x89,0x00,0x21]
455 bnglrl 2
456# CHECK: blelrl 0 # encoding: [0x4c,0x81,0x00,0x21]
457 bnglrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000458# CHECK: blectrl 2 # encoding: [0x4c,0x89,0x04,0x21]
459 bngctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000460# CHECK: blectrl 0 # encoding: [0x4c,0x81,0x04,0x21]
461 bngctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000462
463# CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
464# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
465 bso 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000466# CHECK: bun 0, target # encoding: [0x41,0x83,A,0bAAAAAA00]
467# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
468 bso target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000469# CHECK: buna 2, target # encoding: [0x41,0x8b,A,0bAAAAAA10]
470# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
471 bsoa 2, target
472# CHECK: buna 0, target # encoding: [0x41,0x83,A,0bAAAAAA10]
473# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
474 bsoa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000475# CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
476 bsolr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000477# CHECK: bunlr 0 # encoding: [0x4d,0x83,0x00,0x20]
478 bsolr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000479# CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
480 bsoctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000481# CHECK: bunctr 0 # encoding: [0x4d,0x83,0x04,0x20]
482 bsoctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000483# CHECK: bunl 2, target # encoding: [0x41,0x8b,A,0bAAAAAA01]
484# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
485 bsol 2, target
486# CHECK: bunl 0, target # encoding: [0x41,0x83,A,0bAAAAAA01]
487# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
488 bsol target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000489# CHECK: bunla 2, target # encoding: [0x41,0x8b,A,0bAAAAAA11]
490# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
491 bsola 2, target
492# CHECK: bunla 0, target # encoding: [0x41,0x83,A,0bAAAAAA11]
493# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
494 bsola target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000495# CHECK: bunlrl 2 # encoding: [0x4d,0x8b,0x00,0x21]
496 bsolrl 2
497# CHECK: bunlrl 0 # encoding: [0x4d,0x83,0x00,0x21]
498 bsolrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000499# CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
500 bsoctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000501# CHECK: bunctrl 0 # encoding: [0x4d,0x83,0x04,0x21]
502 bsoctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000503
504# CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
505# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
506 bns 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000507# CHECK: bnu 0, target # encoding: [0x40,0x83,A,0bAAAAAA00]
508# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
509 bns target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000510# CHECK: bnua 2, target # encoding: [0x40,0x8b,A,0bAAAAAA10]
511# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
512 bnsa 2, target
513# CHECK: bnua 0, target # encoding: [0x40,0x83,A,0bAAAAAA10]
514# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
515 bnsa target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000516# CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
517 bnslr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000518# CHECK: bnulr 0 # encoding: [0x4c,0x83,0x00,0x20]
519 bnslr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000520# CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
521 bnsctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000522# CHECK: bnuctr 0 # encoding: [0x4c,0x83,0x04,0x20]
523 bnsctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000524# CHECK: bnul 2, target # encoding: [0x40,0x8b,A,0bAAAAAA01]
525# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
526 bnsl 2, target
527# CHECK: bnul 0, target # encoding: [0x40,0x83,A,0bAAAAAA01]
528# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
529 bnsl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000530# CHECK: bnula 2, target # encoding: [0x40,0x8b,A,0bAAAAAA11]
531# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
532 bnsla 2, target
533# CHECK: bnula 0, target # encoding: [0x40,0x83,A,0bAAAAAA11]
534# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
535 bnsla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000536# CHECK: bnulrl 2 # encoding: [0x4c,0x8b,0x00,0x21]
537 bnslrl 2
538# CHECK: bnulrl 0 # encoding: [0x4c,0x83,0x00,0x21]
539 bnslrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000540# CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
541 bnsctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000542# CHECK: bnuctrl 0 # encoding: [0x4c,0x83,0x04,0x21]
543 bnsctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000544
545# CHECK: bun 2, target # encoding: [0x41,0x8b,A,0bAAAAAA00]
546# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
547 bun 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000548# CHECK: bun 0, target # encoding: [0x41,0x83,A,0bAAAAAA00]
549# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
550 bun target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000551# CHECK: buna 2, target # encoding: [0x41,0x8b,A,0bAAAAAA10]
552# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
553 buna 2, target
554# CHECK: buna 0, target # encoding: [0x41,0x83,A,0bAAAAAA10]
555# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
556 buna target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000557# CHECK: bunlr 2 # encoding: [0x4d,0x8b,0x00,0x20]
558 bunlr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000559# CHECK: bunlr 0 # encoding: [0x4d,0x83,0x00,0x20]
560 bunlr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000561# CHECK: bunctr 2 # encoding: [0x4d,0x8b,0x04,0x20]
562 bunctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000563# CHECK: bunctr 0 # encoding: [0x4d,0x83,0x04,0x20]
564 bunctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000565# CHECK: bunl 2, target # encoding: [0x41,0x8b,A,0bAAAAAA01]
566# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
567 bunl 2, target
568# CHECK: bunl 0, target # encoding: [0x41,0x83,A,0bAAAAAA01]
569# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
570 bunl target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000571# CHECK: bunla 2, target # encoding: [0x41,0x8b,A,0bAAAAAA11]
572# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
573 bunla 2, target
574# CHECK: bunla 0, target # encoding: [0x41,0x83,A,0bAAAAAA11]
575# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
576 bunla target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000577# CHECK: bunlrl 2 # encoding: [0x4d,0x8b,0x00,0x21]
578 bunlrl 2
579# CHECK: bunlrl 0 # encoding: [0x4d,0x83,0x00,0x21]
580 bunlrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000581# CHECK: bunctrl 2 # encoding: [0x4d,0x8b,0x04,0x21]
582 bunctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000583# CHECK: bunctrl 0 # encoding: [0x4d,0x83,0x04,0x21]
584 bunctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000585
586# CHECK: bnu 2, target # encoding: [0x40,0x8b,A,0bAAAAAA00]
587# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
588 bnu 2, target
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000589# CHECK: bnu 0, target # encoding: [0x40,0x83,A,0bAAAAAA00]
590# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
591 bnu target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000592# CHECK: bnua 2, target # encoding: [0x40,0x8b,A,0bAAAAAA10]
593# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
594 bnua 2, target
595# CHECK: bnua 0, target # encoding: [0x40,0x83,A,0bAAAAAA10]
596# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
597 bnua target
Ulrich Weigandd8394902013-05-03 19:50:27 +0000598# CHECK: bnulr 2 # encoding: [0x4c,0x8b,0x00,0x20]
599 bnulr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000600# CHECK: bnulr 0 # encoding: [0x4c,0x83,0x00,0x20]
601 bnulr
Ulrich Weigandd8394902013-05-03 19:50:27 +0000602# CHECK: bnuctr 2 # encoding: [0x4c,0x8b,0x04,0x20]
603 bnuctr 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000604# CHECK: bnuctr 0 # encoding: [0x4c,0x83,0x04,0x20]
605 bnuctr
Ulrich Weigandd20e91e2013-06-24 11:02:19 +0000606# CHECK: bnul 2, target # encoding: [0x40,0x8b,A,0bAAAAAA01]
607# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
608 bnul 2, target
609# CHECK: bnul 0, target # encoding: [0x40,0x83,A,0bAAAAAA01]
610# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14
611 bnul target
Ulrich Weigandb6a30d12013-06-24 11:03:33 +0000612# CHECK: bnula 2, target # encoding: [0x40,0x8b,A,0bAAAAAA11]
613# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
614 bnula 2, target
615# CHECK: bnula 0, target # encoding: [0x40,0x83,A,0bAAAAAA11]
616# CHECK-NEXT: # fixup A - offset: 0, value: target, kind: fixup_ppc_brcond14abs
617 bnula target
Ulrich Weigand1847bb82013-06-24 11:01:55 +0000618# CHECK: bnulrl 2 # encoding: [0x4c,0x8b,0x00,0x21]
619 bnulrl 2
620# CHECK: bnulrl 0 # encoding: [0x4c,0x83,0x00,0x21]
621 bnulrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000622# CHECK: bnuctrl 2 # encoding: [0x4c,0x8b,0x04,0x21]
623 bnuctrl 2
Ulrich Weigandaa4a2d72013-06-10 17:19:15 +0000624# CHECK: bnuctrl 0 # encoding: [0x4c,0x83,0x04,0x21]
625 bnuctrl
Ulrich Weigandd8394902013-05-03 19:50:27 +0000626
627# FIXME: Condition register logical mnemonics
628
629# FIXME: Subtract mnemonics
630
631# Compare mnemonics
632
633# CHECK: cmpdi 2, 3, 128 # encoding: [0x2d,0x23,0x00,0x80]
634 cmpdi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000635# CHECK: cmpdi 0, 3, 128 # encoding: [0x2c,0x23,0x00,0x80]
636 cmpdi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +0000637# CHECK: cmpd 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x00]
638 cmpd 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000639# CHECK: cmpd 0, 3, 4 # encoding: [0x7c,0x23,0x20,0x00]
640 cmpd 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +0000641# CHECK: cmpldi 2, 3, 128 # encoding: [0x29,0x23,0x00,0x80]
642 cmpldi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000643# CHECK: cmpldi 0, 3, 128 # encoding: [0x28,0x23,0x00,0x80]
644 cmpldi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +0000645# CHECK: cmpld 2, 3, 4 # encoding: [0x7d,0x23,0x20,0x40]
646 cmpld 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000647# CHECK: cmpld 0, 3, 4 # encoding: [0x7c,0x23,0x20,0x40]
648 cmpld 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +0000649
650# CHECK: cmpwi 2, 3, 128 # encoding: [0x2d,0x03,0x00,0x80]
651 cmpwi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000652# CHECK: cmpwi 0, 3, 128 # encoding: [0x2c,0x03,0x00,0x80]
653 cmpwi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +0000654# CHECK: cmpw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x00]
655 cmpw 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000656# CHECK: cmpw 0, 3, 4 # encoding: [0x7c,0x03,0x20,0x00]
657 cmpw 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +0000658# CHECK: cmplwi 2, 3, 128 # encoding: [0x29,0x03,0x00,0x80]
659 cmplwi 2, 3, 128
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000660# CHECK: cmplwi 0, 3, 128 # encoding: [0x28,0x03,0x00,0x80]
661 cmplwi 3, 128
Ulrich Weigandd8394902013-05-03 19:50:27 +0000662# CHECK: cmplw 2, 3, 4 # encoding: [0x7d,0x03,0x20,0x40]
663 cmplw 2, 3, 4
Ulrich Weigand865a1ef2013-06-20 16:15:12 +0000664# CHECK: cmplw 0, 3, 4 # encoding: [0x7c,0x03,0x20,0x40]
665 cmplw 3, 4
Ulrich Weigandd8394902013-05-03 19:50:27 +0000666
667# FIXME: Trap mnemonics
668
669# Rotate and shift mnemonics
670
671# FIXME: extldi 2, 3, 4, 5
672# FIXME: extrdi 2, 3, 4, 5
673# FIXME: insrdi 2, 3, 4, 5
674# FIXME: rotldi 2, 3, 4
675# FIXME: rotrdi 2, 3, 4
676# FIXME: rotld 2, 3, 4
677# CHECK: sldi 2, 3, 4 # encoding: [0x78,0x62,0x26,0xe4]
678 sldi 2, 3, 4
679# CHECK: rldicl 2, 3, 60, 4 # encoding: [0x78,0x62,0xe1,0x02]
680 srdi 2, 3, 4
681# FIXME: clrldi 2, 3, 4
682# FIXME: clrrdi 2, 3, 4
683# FIXME: clrlsldi 2, 3, 4, 5
684
685# FIXME: extlwi 2, 3, 4, 5
686# FIXME: extrwi 2, 3, 4, 5
687# FIXME: inslwi 2, 3, 4, 5
688# FIXME: insrwi 2, 3, 4, 5
689# FIXME: rotlwi 2, 3, 4
690# FIXME: rotrwi 2, 3, 4
691# FIXME: rotlw 2, 3, 4
692# CHECK: slwi 2, 3, 4 # encoding: [0x54,0x62,0x20,0x36]
693 slwi 2, 3, 4
694# CHECK: srwi 2, 3, 4 # encoding: [0x54,0x62,0xe1,0x3e]
695 srwi 2, 3, 4
696# FIXME: clrlwi 2, 3, 4
697# FIXME: clrrwi 2, 3, 4
698# FIXME: clrlslwi 2, 3, 4, 5
699
700# Move to/from special purpose register mnemonics
701
702# FIXME: mtxer 2
703# FIXME: mfxer 2
704# CHECK: mtlr 2 # encoding: [0x7c,0x48,0x03,0xa6]
705 mtlr 2
706# CHECK: mflr 2 # encoding: [0x7c,0x48,0x02,0xa6]
707 mflr 2
708# CHECK: mtctr 2 # encoding: [0x7c,0x49,0x03,0xa6]
709 mtctr 2
710# CHECK: mfctr 2 # encoding: [0x7c,0x49,0x02,0xa6]
711 mfctr 2
712
713# Miscellaneous mnemonics
714
715# CHECK: nop # encoding: [0x60,0x00,0x00,0x00]
716 nop
717# FIXME: xnop
718# CHECK: li 2, 128 # encoding: [0x38,0x40,0x00,0x80]
719 li 2, 128
720# CHECK: lis 2, 128 # encoding: [0x3c,0x40,0x00,0x80]
721 lis 2, 128
722# FIXME: la 2, 128(4)
723# CHECK: mr 2, 3 # encoding: [0x7c,0x62,0x1b,0x78]
724 mr 2, 3
725# FIXME: not 2, 3
726