1# RUN: llvm-mc --triple hexagon -disassemble < %s | FileCheck %s
2
30x90 0xff 0xd5 0x3a
4# CHECK: r17:16 = memd(r21 + r31<<#3)
50x10 0xc5 0xc0 0x49
6# CHECK: r17:16 = memd(##320)
70xb0 0xe0 0xd5 0x99
8# CHECK: r17:16 = memd(r21 ++ #40:circ(m1))
90x10 0xe2 0xd5 0x99
10# CHECK: r17:16 = memd(r21 ++ I:circ(m1))
110xb0 0xc0 0xd5 0x9b
12# CHECK: r17:16 = memd(r21++#40)
130x10 0xe0 0xd5 0x9d
14# CHECK: r17:16 = memd(r21++m1)
150x10 0xe0 0xd5 0x9f
16# CHECK: r17:16 = memd(r21 ++ m1:brev)
170xf0 0xff 0xd5 0x30
18# CHECK: if (p3) r17:16 = memd(r21+r31<<#3)
190xf0 0xff 0xd5 0x31
20# CHECK: if (!p3) r17:16 = memd(r21+r31<<#3)
210x03 0x40 0x45 0x85 0xf0 0xff 0xd5 0x32
22# CHECK: p3 = r5
23# CHECK-NEXT: if (p3.new) r17:16 = memd(r21+r31<<#3)
240x03 0x40 0x45 0x85 0xf0 0xff 0xd5 0x33
25# CHECK: p3 = r5
26# CHECK-NEXT: if (!p3.new) r17:16 = memd(r21+r31<<#3)
270x70 0xd8 0xd5 0x41
28# CHECK: if (p3) r17:16 = memd(r21 + #24)
290x03 0x40 0x45 0x85 0x70 0xd8 0xd5 0x43
30# CHECK: p3 = r5
31# CHECK-NEXT: if (p3.new) r17:16 = memd(r21 + #24)
320x70 0xd8 0xd5 0x45
33# CHECK: if (!p3) r17:16 = memd(r21 + #24)
340x03 0x40 0x45 0x85 0x70 0xd8 0xd5 0x47
35# CHECK: p3 = r5
36# CHECK-NEXT: if (!p3.new) r17:16 = memd(r21 + #24)
370xb0 0xe6 0xd5 0x9b
38# CHECK: if (p3) r17:16 = memd(r21++#40)
390xb0 0xee 0xd5 0x9b
40# CHECK: if (!p3) r17:16 = memd(r21++#40)
410x03 0x40 0x45 0x85 0xb0 0xf6 0xd5 0x9b
42# CHECK: p3 = r5
43# CHECK-NEXT: if (p3.new) r17:16 = memd(r21++#40)
440x03 0x40 0x45 0x85 0xb0 0xfe 0xd5 0x9b
45# CHECK: p3 = r5
46# CHECK-NEXT: if (!p3.new) r17:16 = memd(r21++#40)
47
480x91 0xff 0x15 0x3a
49# CHECK: r17 = memb(r21 + r31<<#3)
500xb1 0xc2 0x00 0x49
51# CHECK: r17 = memb(##21)
520xf1 0xc3 0x15 0x91
53# CHECK: r17 = memb(r21 + #31)
540xb1 0xe0 0x15 0x99
55# CHECK: r17 = memb(r21 ++ #5:circ(m1))
560x11 0xe2 0x15 0x99
57# CHECK: r17 = memb(r21 ++ I:circ(m1))
580xb1 0xc0 0x15 0x9b
59# CHECK: r17 = memb(r21++#5)
600x11 0xe0 0x15 0x9d
61# CHECK: r17 = memb(r21++m1)
620x11 0xe0 0x15 0x9f
63# CHECK: r17 = memb(r21 ++ m1:brev)
640xf1 0xff 0x15 0x30
65# CHECK: if (p3) r17 = memb(r21+r31<<#3)
660xf1 0xff 0x15 0x31
67# CHECK: if (!p3) r17 = memb(r21+r31<<#3)
680x03 0x40 0x45 0x85 0xf1 0xff 0x15 0x32
69# CHECK: p3 = r5
70# CHECK-NEXT: if (p3.new) r17 = memb(r21+r31<<#3)
710x03 0x40 0x45 0x85 0xf1 0xff 0x15 0x33
72# CHECK: p3 = r5
73# CHECK-NEXT: if (!p3.new) r17 = memb(r21+r31<<#3)
740x91 0xdd 0x15 0x41
75# CHECK: if (p3) r17 = memb(r21 + #44)
760x03 0x40 0x45 0x85 0x91 0xdd 0x15 0x43
77# CHECK: p3 = r5
78# CHECK-NEXT: if (p3.new) r17 = memb(r21 + #44)
790x91 0xdd 0x15 0x45
80# CHECK: if (!p3) r17 = memb(r21 + #44)
810x03 0x40 0x45 0x85 0x91 0xdd 0x15 0x47
82# CHECK: p3 = r5
83# CHECK-NEXT: if (!p3.new) r17 = memb(r21 + #44)
840xb1 0xe6 0x15 0x9b
85# CHECK: if (p3) r17 = memb(r21++#5)
860xb1 0xee 0x15 0x9b
87# CHECK: if (!p3) r17 = memb(r21++#5)
880x03 0x40 0x45 0x85 0xb1 0xf6 0x15 0x9b
89# CHECK: p3 = r5
90# CHECK-NEXT: if (p3.new) r17 = memb(r21++#5)
910x03 0x40 0x45 0x85 0xb1 0xfe 0x15 0x9b
92# CHECK: p3 = r5
93# CHECK-NEXT: if (!p3.new) r17 = memb(r21++#5)
94
950x91 0xff 0x55 0x3a
96# CHECK: r17 = memh(r21 + r31<<#3)
970x51 0xc5 0x40 0x49
98# CHECK: r17 = memh(##84)
990xf1 0xc3 0x55 0x91
100# CHECK: r17 = memh(r21 + #62)
1010xb1 0xe0 0x55 0x99
102# CHECK: r17 = memh(r21 ++ #10:circ(m1))
1030x11 0xe2 0x55 0x99
104# CHECK: r17 = memh(r21 ++ I:circ(m1))
1050xb1 0xc0 0x55 0x9b
106# CHECK: r17 = memh(r21++#10)
1070x11 0xe0 0x55 0x9d
108# CHECK: r17 = memh(r21++m1)
1090x11 0xe0 0x55 0x9f
110# CHECK: r17 = memh(r21 ++ m1:brev)
1110xf1 0xff 0x55 0x30
112# CHECK: if (p3) r17 = memh(r21+r31<<#3)
1130xf1 0xff 0x55 0x31
114# CHECK: if (!p3) r17 = memh(r21+r31<<#3)
1150x03 0x40 0x45 0x85 0xf1 0xff 0x55 0x32
116# CHECK: p3 = r5
117# CHECK-NEXT: if (p3.new) r17 = memh(r21+r31<<#3)
1180x03 0x40 0x45 0x85 0xf1 0xff 0x55 0x33
119# CHECK: p3 = r5
120# CHECK-NEXT: if (!p3.new) r17 = memh(r21+r31<<#3)
1210xb1 0xe6 0x55 0x9b
122# CHECK: if (p3) r17 = memh(r21++#10)
1230xb1 0xee 0x55 0x9b
124# CHECK: if (!p3) r17 = memh(r21++#10)
1250x03 0x40 0x45 0x85 0xb1 0xf6 0x55 0x9b
126# CHECK: p3 = r5
127# CHECK-NEXT: if (p3.new) r17 = memh(r21++#10)
1280x03 0x40 0x45 0x85 0xb1 0xfe 0x55 0x9b
129# CHECK: p3 = r5
130# CHECK-NEXT: if (!p3.new) r17 = memh(r21++#10)
131
1320x91 0xff 0x35 0x3a
133# CHECK: r17 = memub(r21 + r31<<#3)
1340xb1 0xc2 0x20 0x49
135# CHECK: r17 = memub(##21)
1360xf1 0xc3 0x35 0x91
137# CHECK: r17 = memub(r21 + #31)
1380xb1 0xe0 0x35 0x99
139# CHECK: r17 = memub(r21 ++ #5:circ(m1))
1400x11 0xe2 0x35 0x99
141# CHECK: r17 = memub(r21 ++ I:circ(m1))
1420xb1 0xc0 0x35 0x9b
143# CHECK: r17 = memub(r21++#5)
1440x11 0xe0 0x35 0x9d
145# CHECK: r17 = memub(r21++m1)
1460x11 0xe0 0x35 0x9f
147# CHECK: r17 = memub(r21 ++ m1:brev)
1480xf1 0xff 0x35 0x30
149# CHECK: if (p3) r17 = memub(r21+r31<<#3)
1500xf1 0xff 0x35 0x31
151# CHECK: if (!p3) r17 = memub(r21+r31<<#3)
1520x03 0x40 0x45 0x85 0xf1 0xff 0x35 0x32
153# CHECK: p3 = r5
154# CHECK-NEXT: if (p3.new) r17 = memub(r21+r31<<#3)
1550x03 0x40 0x45 0x85 0xf1 0xff 0x35 0x33
156# CHECK: p3 = r5
157# CHECK-NEXT: if (!p3.new) r17 = memub(r21+r31<<#3)
1580xf1 0xdb 0x35 0x41
159# CHECK: if (p3) r17 = memub(r21 + #31)
1600x03 0x40 0x45 0x85 0xf1 0xdb 0x35 0x43
161# CHECK: p3 = r5
162# CHECK-NEXT: if (p3.new) r17 = memub(r21 + #31)
1630xf1 0xdb 0x35 0x45
164# CHECK: if (!p3) r17 = memub(r21 + #31)
1650x03 0x40 0x45 0x85 0xf1 0xdb 0x35 0x47
166# CHECK: p3 = r5
167# CHECK-NEXT: if (!p3.new) r17 = memub(r21 + #31)
1680xb1 0xe6 0x35 0x9b
169# CHECK: if (p3) r17 = memub(r21++#5)
1700xb1 0xee 0x35 0x9b
171# CHECK: if (!p3) r17 = memub(r21++#5)
1720x03 0x40 0x45 0x85 0xb1 0xf6 0x35 0x9b
173# CHECK: p3 = r5
174# CHECK-NEXT: if (p3.new) r17 = memub(r21++#5)
1750x03 0x40 0x45 0x85 0xb1 0xfe 0x35 0x9b
176# CHECK: p3 = r5
177# CHECK-NEXT: if (!p3.new) r17 = memub(r21++#5)
178
1790x91 0xff 0x75 0x3a
180# CHECK: r17 = memuh(r21 + r31<<#3)
1810x51 0xc5 0x60 0x49
182# CHECK: r17 = memuh(##84)
1830xb1 0xc2 0x75 0x91
184# CHECK: r17 = memuh(r21 + #42)
1850xb1 0xe0 0x75 0x99
186# CHECK: r17 = memuh(r21 ++ #10:circ(m1))
1870x11 0xe2 0x75 0x99
188# CHECK: r17 = memuh(r21 ++ I:circ(m1))
1890xb1 0xc0 0x75 0x9b
190# CHECK: r17 = memuh(r21++#10)
1910x11 0xe0 0x75 0x9d
192# CHECK: r17 = memuh(r21++m1)
1930x11 0xe0 0x75 0x9f
194# CHECK: r17 = memuh(r21 ++ m1:brev)
1950xf1 0xff 0x75 0x30
196# CHECK: if (p3) r17 = memuh(r21+r31<<#3)
1970xf1 0xff 0x75 0x31
198# CHECK: if (!p3) r17 = memuh(r21+r31<<#3)
1990x03 0x40 0x45 0x85 0xf1 0xff 0x75 0x32
200# CHECK: p3 = r5
201# CHECK-NEXT: if (p3.new) r17 = memuh(r21+r31<<#3)
2020x03 0x40 0x45 0x85 0xf1 0xff 0x75 0x33
203# CHECK: p3 = r5
204# CHECK-NEXT: if (!p3.new) r17 = memuh(r21+r31<<#3)
2050xb1 0xda 0x75 0x41
206# CHECK: if (p3) r17 = memuh(r21 + #42)
2070xb1 0xda 0x75 0x45
208# CHECK: if (!p3) r17 = memuh(r21 + #42)
2090x03 0x40 0x45 0x85 0xb1 0xda 0x75 0x43
210# CHECK: p3 = r5
211# CHECK-NEXT: if (p3.new) r17 = memuh(r21 + #42)
2120x03 0x40 0x45 0x85 0xb1 0xda 0x75 0x47
213# CHECK: p3 = r5
214# CHECK-NEXT: if (!p3.new) r17 = memuh(r21 + #42)
2150xb1 0xe6 0x75 0x9b
216# CHECK: if (p3) r17 = memuh(r21++#10)
2170xb1 0xee 0x75 0x9b
218# CHECK: if (!p3) r17 = memuh(r21++#10)
2190x03 0x40 0x45 0x85 0xb1 0xf6 0x75 0x9b
220# CHECK: p3 = r5
221# CHECK-NEXT: if (p3.new) r17 = memuh(r21++#10)
2220x03 0x40 0x45 0x85 0xb1 0xfe 0x75 0x9b
223# CHECK: p3 = r5
224# CHECK-NEXT: if (!p3.new) r17 = memuh(r21++#10)
225
2260x91 0xff 0x95 0x3a
227# CHECK: r17 = memw(r21 + r31<<#3)
2280x91 0xc2 0x80 0x49
229# CHECK: r17 = memw(##80)
2300xb1 0xc2 0x95 0x91
231# CHECK: r17 = memw(r21 + #84)
2320xb1 0xe0 0x95 0x99
233# CHECK: r17 = memw(r21 ++ #20:circ(m1))
2340x11 0xe2 0x95 0x99
235# CHECK: r17 = memw(r21 ++ I:circ(m1))
2360xb1 0xc0 0x95 0x9b
237# CHECK: r17 = memw(r21++#20)
2380x11 0xe0 0x95 0x9d
239# CHECK: r17 = memw(r21++m1)
2400x11 0xe0 0x95 0x9f
241# CHECK: r17 = memw(r21 ++ m1:brev)
2420xf1 0xff 0x95 0x30
243# CHECK: if (p3) r17 = memw(r21+r31<<#3)
2440xf1 0xff 0x95 0x31
245# CHECK: if (!p3) r17 = memw(r21+r31<<#3)
2460x03 0x40 0x45 0x85 0xf1 0xff 0x95 0x32
247# CHECK: p3 = r5
248# CHECK-NEXT: if (p3.new) r17 = memw(r21+r31<<#3)
2490x03 0x40 0x45 0x85 0xf1 0xff 0x95 0x33
250# CHECK: p3 = r5
251# CHECK-NEXT: if (!p3.new) r17 = memw(r21+r31<<#3)
2520xb1 0xda 0x95 0x41
253# CHECK: if (p3) r17 = memw(r21 + #84)
2540xb1 0xda 0x95 0x45
255# CHECK: if (!p3) r17 = memw(r21 + #84)
2560x03 0x40 0x45 0x85 0xb1 0xda 0x95 0x43
257# CHECK: p3 = r5
258# CHECK-NEXT: if (p3.new) r17 = memw(r21 + #84)
2590x03 0x40 0x45 0x85 0xb1 0xda 0x95 0x47
260# CHECK: p3 = r5
261# CHECK-NEXT: if (!p3.new) r17 = memw(r21 + #84)
2620xb1 0xe6 0x95 0x9b
263# CHECK: if (p3) r17 = memw(r21++#20)
2640xb1 0xee 0x95 0x9b
265# CHECK: if (!p3) r17 = memw(r21++#20)
2660x03 0x40 0x45 0x85 0xb1 0xf6 0x95 0x9b
267# CHECK: p3 = r5
268# CHECK-NEXT: if (p3.new) r17 = memw(r21++#20)
2690x03 0x40 0x45 0x85 0xb1 0xfe 0x95 0x9b
270# CHECK: p3 = r5
271# CHECK-NEXT: if (!p3.new) r17 = memw(r21++#20)
272
2730x1e 0xc0 0x1e 0x90
274# CHECK: deallocframe
2750x1e 0xc0 0x1e 0x96
276# CHECK: dealloc_return
2770x03 0x40 0x45 0x85 0x1e 0xcb 0x1e 0x96
278# CHECK: p3 = r5
279# CHECK-NEXT: if (p3.new) dealloc_return:nt
2800x1e 0xd3 0x1e 0x96
281# CHECK: if (p3) dealloc_return
2820x03 0x40 0x45 0x85 0x1e 0xdb 0x1e 0x96
283# CHECK: p3 = r5
284# CHECK-NEXT: if (p3.new) dealloc_return:t
2850x03 0x40 0x45 0x85 0x1e 0xeb 0x1e 0x96
286# CHECK: p3 = r5
287# CHECK-NEXT: if (!p3.new) dealloc_return:nt
2880x1e 0xf3 0x1e 0x96
289# CHECK: if (!p3) dealloc_return
2900x03 0x40 0x45 0x85 0x1e 0xfb 0x1e 0x96
291# CHECK: p3 = r5
292# CHECK-NEXT: if (!p3.new) dealloc_return:t
293