[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / MC / AVR / inst-family-cond-branch.s
blobbbc5095de2c326649d0d0a042a0769a8504c3cd7
1 ; RUN: llvm-mc -triple avr -show-encoding < %s | FileCheck %s
4 foo:
5 ; BREQ
6 breq .-18
7 breq .-12
8 brbs 1, .-18
9 brbs 1, baz
11 ; CHECK: breq .Ltmp0-18 ; encoding: [0bAAAAA001,0b111100AA]
12 ; CHECK: ; fixup A - offset: 0, value: .Ltmp0-18, kind: fixup_7_pcrel
13 ; CHECK: breq .Ltmp1-12 ; encoding: [0bAAAAA001,0b111100AA]
14 ; CHECK: ; fixup A - offset: 0, value: .Ltmp1-12, kind: fixup_7_pcrel
15 ; CHECK: brbs 1, .Ltmp2-18 ; encoding: [0bAAAAA001,0b111100AA]
16 ; CHECK: ; fixup A - offset: 0, value: .Ltmp2-18, kind: fixup_7_pcrel
17 ; CHECK: brbs 1, baz ; encoding: [0bAAAAA001,0b111100AA]
18 ; CHECK: ; fixup A - offset: 0, value: baz, kind: fixup_7_pcrel
20 ; BRNE
21 brne .+10
22 brne .+2
23 brbc 1, .+10
24 brbc 1, bar
26 ; CHECK: brne .Ltmp3+10 ; encoding: [0bAAAAA001,0b111101AA]
27 ; CHECK: ; fixup A - offset: 0, value: .Ltmp3+10, kind: fixup_7_pcrel
28 ; CHECK: brne .Ltmp4+2 ; encoding: [0bAAAAA001,0b111101AA]
29 ; CHECK: ; fixup A - offset: 0, value: .Ltmp4+2, kind: fixup_7_pcrel
30 ; CHECK: brbc 1, .Ltmp5+10 ; encoding: [0bAAAAA001,0b111101AA]
31 ; CHECK: ; fixup A - offset: 0, value: .Ltmp5+10, kind: fixup_7_pcrel
32 ; CHECK: brbc 1, bar ; encoding: [0bAAAAA001,0b111101AA]
33 ; CHECK: ; fixup A - offset: 0, value: bar, kind: fixup_7_pcrel
35 bar:
36 ; BRCS
37 brcs .+8
38 brcs .+4
39 brbs 0, .+8
40 brbs 0, end
42 ; CHECK: brcs .Ltmp6+8 ; encoding: [0bAAAAA000,0b111100AA]
43 ; CHECK: ; fixup A - offset: 0, value: .Ltmp6+8, kind: fixup_7_pcrel
44 ; CHECK: brcs .Ltmp7+4 ; encoding: [0bAAAAA000,0b111100AA]
45 ; CHECK: ; fixup A - offset: 0, value: .Ltmp7+4, kind: fixup_7_pcrel
46 ; CHECK: brcs .Ltmp8+8 ; encoding: [0bAAAAA000,0b111100AA]
47 ; CHECK: ; fixup A - offset: 0, value: .Ltmp8+8, kind: fixup_7_pcrel
48 ; CHECK: brcs end ; encoding: [0bAAAAA000,0b111100AA]
49 ; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_7_pcrel
51 ; BRCC
52 brcc .+66
53 brcc .-22
54 brbc 0, .+66
55 brbc 0, baz
57 ; CHECK: brcc .Ltmp9+66 ; encoding: [0bAAAAA000,0b111101AA]
58 ; CHECK: ; fixup A - offset: 0, value: .Ltmp9+66, kind: fixup_7_pcrel
59 ; CHECK: brcc .Ltmp10-22 ; encoding: [0bAAAAA000,0b111101AA]
60 ; CHECK: ; fixup A - offset: 0, value: .Ltmp10-22, kind: fixup_7_pcrel
61 ; CHECK: brcc .Ltmp11+66 ; encoding: [0bAAAAA000,0b111101AA]
62 ; CHECK: ; fixup A - offset: 0, value: .Ltmp11+66, kind: fixup_7_pcrel
63 ; CHECK: brcc baz ; encoding: [0bAAAAA000,0b111101AA]
64 ; CHECK: ; fixup A - offset: 0, value: baz, kind: fixup_7_pcrel
66 ; BRSH
67 brsh .+32
68 brsh .+70
69 brsh car
71 ; CHECK: brsh .Ltmp12+32 ; encoding: [0bAAAAA000,0b111101AA]
72 ; CHECK: ; fixup A - offset: 0, value: .Ltmp12+32, kind: fixup_7_pcrel
73 ; CHECK: brsh .Ltmp13+70 ; encoding: [0bAAAAA000,0b111101AA]
74 ; CHECK: ; fixup A - offset: 0, value: .Ltmp13+70, kind: fixup_7_pcrel
75 ; CHECK: brsh car ; encoding: [0bAAAAA000,0b111101AA]
76 ; CHECK: ; fixup A - offset: 0, value: car, kind: fixup_7_pcrel
78 baz:
80 ; BRLO
81 brlo .+12
82 brlo .+28
83 brlo car
85 ; CHECK: brlo .Ltmp14+12 ; encoding: [0bAAAAA000,0b111100AA]
86 ; CHECK: ; fixup A - offset: 0, value: .Ltmp14+12, kind: fixup_7_pcrel
87 ; CHECK: brlo .Ltmp15+28 ; encoding: [0bAAAAA000,0b111100AA]
88 ; CHECK: ; fixup A - offset: 0, value: .Ltmp15+28, kind: fixup_7_pcrel
89 ; CHECK: brlo car ; encoding: [0bAAAAA000,0b111100AA]
90 ; CHECK: ; fixup A - offset: 0, value: car, kind: fixup_7_pcrel
92 ; BRMI
93 brmi .+66
94 brmi .+58
95 brmi car
97 ; CHECK: brmi .Ltmp16+66 ; encoding: [0bAAAAA010,0b111100AA]
98 ; CHECK: ; fixup A - offset: 0, value: .Ltmp16+66, kind: fixup_7_pcrel
99 ; CHECK: brmi .Ltmp17+58 ; encoding: [0bAAAAA010,0b111100AA]
100 ; CHECK: ; fixup A - offset: 0, value: .Ltmp17+58, kind: fixup_7_pcrel
101 ; CHECK: brmi car ; encoding: [0bAAAAA010,0b111100AA]
102 ; CHECK: ; fixup A - offset: 0, value: car, kind: fixup_7_pcrel
104 ; BRPL
105 brpl .-12
106 brpl .+18
107 brpl car
109 ; CHECK: brpl .Ltmp18-12 ; encoding: [0bAAAAA010,0b111101AA]
110 ; CHECK: ; fixup A - offset: 0, value: .Ltmp18-12, kind: fixup_7_pcrel
111 ; CHECK: brpl .Ltmp19+18 ; encoding: [0bAAAAA010,0b111101AA]
112 ; CHECK: ; fixup A - offset: 0, value: .Ltmp19+18, kind: fixup_7_pcrel
113 ; CHECK: brpl car ; encoding: [0bAAAAA010,0b111101AA]
114 ; CHECK: ; fixup A - offset: 0, value: car, kind: fixup_7_pcrel
116 ; BRGE
117 brge .+50
118 brge .+42
119 brge car
121 ; CHECK: brge .Ltmp20+50 ; encoding: [0bAAAAA100,0b111101AA]
122 ; CHECK: ; fixup A - offset: 0, value: .Ltmp20+50, kind: fixup_7_pcrel
123 ; CHECK: brge .Ltmp21+42 ; encoding: [0bAAAAA100,0b111101AA]
124 ; CHECK: ; fixup A - offset: 0, value: .Ltmp21+42, kind: fixup_7_pcrel
125 ; CHECK: brge car ; encoding: [0bAAAAA100,0b111101AA]
126 ; CHECK: ; fixup A - offset: 0, value: car, kind: fixup_7_pcrel
128 car:
129 ; BRLT
130 brlt .+16
131 brlt .+2
132 brlt end
134 ; CHECK: brlt .Ltmp22+16 ; encoding: [0bAAAAA100,0b111100AA]
135 ; CHECK: ; fixup A - offset: 0, value: .Ltmp22+16, kind: fixup_7_pcrel
136 ; CHECK: brlt .Ltmp23+2 ; encoding: [0bAAAAA100,0b111100AA]
137 ; CHECK: ; fixup A - offset: 0, value: .Ltmp23+2, kind: fixup_7_pcrel
138 ; CHECK: brlt end ; encoding: [0bAAAAA100,0b111100AA]
139 ; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_7_pcrel
141 ; BRHS
142 brhs .-66
143 brhs .+14
144 brhs just_another_label
146 ; CHECK: brhs .Ltmp24-66 ; encoding: [0bAAAAA101,0b111100AA]
147 ; CHECK: ; fixup A - offset: 0, value: .Ltmp24-66, kind: fixup_7_pcrel
148 ; CHECK: brhs .Ltmp25+14 ; encoding: [0bAAAAA101,0b111100AA]
149 ; CHECK: ; fixup A - offset: 0, value: .Ltmp25+14, kind: fixup_7_pcrel
150 ; CHECK: brhs just_another_label ; encoding: [0bAAAAA101,0b111100AA]
151 ; CHECK: ; fixup A - offset: 0, value: just_another_label, kind: fixup_7_pcrel
153 ; BRHC
154 brhc .+12
155 brhc .+14
156 brhc just_another_label
158 ; CHECK: brhc .Ltmp26+12 ; encoding: [0bAAAAA101,0b111101AA]
159 ; CHECK: ; fixup A - offset: 0, value: .Ltmp26+12, kind: fixup_7_pcrel
160 ; CHECK: brhc .Ltmp27+14 ; encoding: [0bAAAAA101,0b111101AA]
161 ; CHECK: ; fixup A - offset: 0, value: .Ltmp27+14, kind: fixup_7_pcrel
162 ; CHECK: brhc just_another_label ; encoding: [0bAAAAA101,0b111101AA]
163 ; CHECK: ; fixup A - offset: 0, value: just_another_label, kind: fixup_7_pcrel
165 ; BRTS
166 brts .+18
167 brts .+22
168 brts just_another_label
170 ; CHECK: brts .Ltmp28+18 ; encoding: [0bAAAAA110,0b111100AA]
171 ; CHECK: ; fixup A - offset: 0, value: .Ltmp28+18, kind: fixup_7_pcrel
172 ; CHECK: brts .Ltmp29+22 ; encoding: [0bAAAAA110,0b111100AA]
173 ; CHECK: ; fixup A - offset: 0, value: .Ltmp29+22, kind: fixup_7_pcrel
174 ; CHECK: brts just_another_label ; encoding: [0bAAAAA110,0b111100AA]
175 ; CHECK: ; fixup A - offset: 0, value: just_another_label, kind: fixup_7_pcrel
177 just_another_label:
178 ; BRTC
179 brtc .+52
180 brtc .+50
181 brtc end
183 ; CHECK: brtc .Ltmp30+52 ; encoding: [0bAAAAA110,0b111101AA]
184 ; CHECK: ; fixup A - offset: 0, value: .Ltmp30+52, kind: fixup_7_pcrel
185 ; CHECK: brtc .Ltmp31+50 ; encoding: [0bAAAAA110,0b111101AA]
186 ; CHECK: ; fixup A - offset: 0, value: .Ltmp31+50, kind: fixup_7_pcrel
187 ; CHECK: brtc end ; encoding: [0bAAAAA110,0b111101AA]
188 ; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_7_pcrel
190 ; BRVS
191 brvs .+18
192 brvs .+32
193 brvs end
195 ; CHECK: brvs .Ltmp32+18 ; encoding: [0bAAAAA011,0b111100AA]
196 ; CHECK: ; fixup A - offset: 0, value: .Ltmp32+18, kind: fixup_7_pcrel
197 ; CHECK: brvs .Ltmp33+32 ; encoding: [0bAAAAA011,0b111100AA]
198 ; CHECK: ; fixup A - offset: 0, value: .Ltmp33+32, kind: fixup_7_pcrel
199 ; CHECK: brvs end ; encoding: [0bAAAAA011,0b111100AA]
200 ; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_7_pcrel
202 ; BRVC
203 brvc .-28
204 brvc .-62
205 brvc end
207 ; CHECK: brvc .Ltmp34-28 ; encoding: [0bAAAAA011,0b111101AA]
208 ; CHECK: ; fixup A - offset: 0, value: .Ltmp34-28, kind: fixup_7_pcrel
209 ; CHECK: brvc .Ltmp35-62 ; encoding: [0bAAAAA011,0b111101AA]
210 ; CHECK: ; fixup A - offset: 0, value: .Ltmp35-62, kind: fixup_7_pcrel
211 ; CHECK: brvc end ; encoding: [0bAAAAA011,0b111101AA]
212 ; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_7_pcrel
214 ; BRIE
215 brie .+20
216 brie .+40
217 brie end
219 ; CHECK: brie .Ltmp36+20 ; encoding: [0bAAAAA111,0b111100AA]
220 ; CHECK: ; fixup A - offset: 0, value: .Ltmp36+20, kind: fixup_7_pcrel
221 ; CHECK: brie .Ltmp37+40 ; encoding: [0bAAAAA111,0b111100AA]
222 ; CHECK: ; fixup A - offset: 0, value: .Ltmp37+40, kind: fixup_7_pcrel
223 ; CHECK: brie end ; encoding: [0bAAAAA111,0b111100AA]
224 ; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_7_pcrel
226 ; BRID
227 brid .+42
228 brid .+62
229 brid end
231 ; CHECK: brid .Ltmp38+42 ; encoding: [0bAAAAA111,0b111101AA]
232 ; CHECK: ; fixup A - offset: 0, value: .Ltmp38+42, kind: fixup_7_pcrel
233 ; CHECK: brid .Ltmp39+62 ; encoding: [0bAAAAA111,0b111101AA]
234 ; CHECK: ; fixup A - offset: 0, value: .Ltmp39+62, kind: fixup_7_pcrel
235 ; CHECK: brid end ; encoding: [0bAAAAA111,0b111101AA]
236 ; CHECK: ; fixup A - offset: 0, value: end, kind: fixup_7_pcrel
238 end: