xref: /aosp_15_r20/external/llvm/test/MC/Disassembler/Hexagon/ld.txt (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker# RUN: llvm-mc -triple hexagon -disassemble < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker# Hexagon Programmer's Reference Manual 11.5 LD
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker# Load doubleword
5*9880d681SAndroid Build Coastguard Worker0x90 0xff 0xd5 0x3a
6*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21 + r31<<#3)
7*9880d681SAndroid Build Coastguard Worker0xb0 0xc2 0xc0 0x49
8*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(#168)
9*9880d681SAndroid Build Coastguard Worker0x02 0x40 0x00 0x00 0x10 0xc5 0xc0 0x49
10*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(##168)
11*9880d681SAndroid Build Coastguard Worker0xd0 0xc0 0xd5 0x91
12*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21 + #48)
13*9880d681SAndroid Build Coastguard Worker0xb0 0xe0 0xd5 0x99
14*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21 ++ #40:circ(m1))
15*9880d681SAndroid Build Coastguard Worker0x10 0xe2 0xd5 0x99
16*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21 ++ I:circ(m1))
17*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x70 0xd7 0xd5 0x9b
18*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21 = ##31)
19*9880d681SAndroid Build Coastguard Worker0xb0 0xc0 0xd5 0x9b
20*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21++#40)
21*9880d681SAndroid Build Coastguard Worker0x10 0xe0 0xd5 0x9d
22*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21++m1)
23*9880d681SAndroid Build Coastguard Worker0x10 0xe0 0xd5 0x9f
24*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21 ++ m1:brev)
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Worker# Load doubleword conditionally
27*9880d681SAndroid Build Coastguard Worker0xf0 0xff 0xd5 0x30
28*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17:16 = memd(r21+r31<<#3)
29*9880d681SAndroid Build Coastguard Worker0xf0 0xff 0xd5 0x31
30*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17:16 = memd(r21+r31<<#3)
31*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf0 0xff 0xd5 0x32
32*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
33*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17:16 = memd(r21+r31<<#3)
34*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf0 0xff 0xd5 0x33
35*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
36*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17:16 = memd(r21+r31<<#3)
37*9880d681SAndroid Build Coastguard Worker0x70 0xd8 0xd5 0x41
38*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17:16 = memd(r21 + #24)
39*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x70 0xd8 0xd5 0x43
40*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
41*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17:16 = memd(r21 + #24)
42*9880d681SAndroid Build Coastguard Worker0x70 0xd8 0xd5 0x45
43*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17:16 = memd(r21 + #24)
44*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x70 0xd8 0xd5 0x47
45*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
46*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17:16 = memd(r21 + #24)
47*9880d681SAndroid Build Coastguard Worker0xb0 0xe6 0xd5 0x9b
48*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17:16 = memd(r21++#40)
49*9880d681SAndroid Build Coastguard Worker0xb0 0xee 0xd5 0x9b
50*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17:16 = memd(r21++#40)
51*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb0 0xf6 0xd5 0x9b
52*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
53*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17:16 = memd(r21++#40)
54*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb0 0xfe 0xd5 0x9b
55*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
56*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17:16 = memd(r21++#40)
57*9880d681SAndroid Build Coastguard Worker
58*9880d681SAndroid Build Coastguard Worker# Load byte
59*9880d681SAndroid Build Coastguard Worker0x91 0xff 0x15 0x3a
60*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21 + r31<<#3)
61*9880d681SAndroid Build Coastguard Worker0xb1 0xc2 0x00 0x49
62*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(#21)
63*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0xb1 0xc2 0x00 0x49
64*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(##21)
65*9880d681SAndroid Build Coastguard Worker0xf1 0xc3 0x15 0x91
66*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21 + #31)
67*9880d681SAndroid Build Coastguard Worker0xb1 0xe0 0x15 0x99
68*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21 ++ #5:circ(m1))
69*9880d681SAndroid Build Coastguard Worker0x11 0xe2 0x15 0x99
70*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21 ++ I:circ(m1))
71*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x71 0xd7 0x15 0x9b
72*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21 = ##31)
73*9880d681SAndroid Build Coastguard Worker0xb1 0xc0 0x15 0x9b
74*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21++#5)
75*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x15 0x9d
76*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21++m1)
77*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x15 0x9f
78*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21 ++ m1:brev)
79*9880d681SAndroid Build Coastguard Worker
80*9880d681SAndroid Build Coastguard Worker# Load byte conditionally
81*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x15 0x30
82*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memb(r21+r31<<#3)
83*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x15 0x31
84*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memb(r21+r31<<#3)
85*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x15 0x32
86*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
87*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memb(r21+r31<<#3)
88*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x15 0x33
89*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
90*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memb(r21+r31<<#3)
91*9880d681SAndroid Build Coastguard Worker0x91 0xdd 0x15 0x41
92*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memb(r21 + #44)
93*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x91 0xdd 0x15 0x43
94*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
95*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memb(r21 + #44)
96*9880d681SAndroid Build Coastguard Worker0x91 0xdd 0x15 0x45
97*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memb(r21 + #44)
98*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x91 0xdd 0x15 0x47
99*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
100*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memb(r21 + #44)
101*9880d681SAndroid Build Coastguard Worker0xb1 0xe6 0x15 0x9b
102*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memb(r21++#5)
103*9880d681SAndroid Build Coastguard Worker0xb1 0xee 0x15 0x9b
104*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memb(r21++#5)
105*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xf6 0x15 0x9b
106*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
107*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memb(r21++#5)
108*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xfe 0x15 0x9b
109*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
110*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memb(r21++#5)
111*9880d681SAndroid Build Coastguard Worker
112*9880d681SAndroid Build Coastguard Worker# Load byte into shifted vector
113*9880d681SAndroid Build Coastguard Worker0xf0 0xc3 0x95 0x90
114*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memb_fifo(r21 + #31)
115*9880d681SAndroid Build Coastguard Worker0xb0 0xe0 0x95 0x98
116*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memb_fifo(r21 ++ #5:circ(m1))
117*9880d681SAndroid Build Coastguard Worker0x10 0xe2 0x95 0x98
118*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memb_fifo(r21 ++ I:circ(m1))
119*9880d681SAndroid Build Coastguard Worker
120*9880d681SAndroid Build Coastguard Worker# Load half into shifted vector
121*9880d681SAndroid Build Coastguard Worker0xf0 0xc3 0x55 0x90
122*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memh_fifo(r21 + #62)
123*9880d681SAndroid Build Coastguard Worker0xb0 0xe0 0x55 0x98
124*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memh_fifo(r21 ++ #10:circ(m1))
125*9880d681SAndroid Build Coastguard Worker0x10 0xe2 0x55 0x98
126*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memh_fifo(r21 ++ I:circ(m1))
127*9880d681SAndroid Build Coastguard Worker
128*9880d681SAndroid Build Coastguard Worker# Load halfword
129*9880d681SAndroid Build Coastguard Worker0x91 0xff 0x55 0x3a
130*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21 + r31<<#3)
131*9880d681SAndroid Build Coastguard Worker0xb1 0xc2 0x40 0x49
132*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(#42)
133*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x51 0xc5 0x40 0x49
134*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(##42)
135*9880d681SAndroid Build Coastguard Worker0xf1 0xc3 0x55 0x91
136*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21 + #62)
137*9880d681SAndroid Build Coastguard Worker0xb1 0xe0 0x55 0x99
138*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21 ++ #10:circ(m1))
139*9880d681SAndroid Build Coastguard Worker0x11 0xe2 0x55 0x99
140*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21 ++ I:circ(m1))
141*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x71 0xd7 0x55 0x9b
142*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21 = ##31)
143*9880d681SAndroid Build Coastguard Worker0xb1 0xc0 0x55 0x9b
144*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21++#10)
145*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x55 0x9d
146*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21++m1)
147*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x55 0x9f
148*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21 ++ m1:brev)
149*9880d681SAndroid Build Coastguard Worker
150*9880d681SAndroid Build Coastguard Worker# Load halfword conditionally
151*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x55 0x30
152*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memh(r21+r31<<#3)
153*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x55 0x31
154*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memh(r21+r31<<#3)
155*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x55 0x32
156*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
157*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memh(r21+r31<<#3)
158*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x55 0x33
159*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
160*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memh(r21+r31<<#3)
161*9880d681SAndroid Build Coastguard Worker0xb1 0xe6 0x55 0x9b
162*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memh(r21++#10)
163*9880d681SAndroid Build Coastguard Worker0xb1 0xee 0x55 0x9b
164*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memh(r21++#10)
165*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xf6 0x55 0x9b
166*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
167*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memh(r21++#10)
168*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xfe 0x55 0x9b
169*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
170*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memh(r21++#10)
171*9880d681SAndroid Build Coastguard Worker0xf1 0xdb 0x55 0x41
172*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memh(r21 + #62)
173*9880d681SAndroid Build Coastguard Worker0xf1 0xdb 0x55 0x45
174*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memh(r21 + #62)
175*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xdb 0x55 0x43
176*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
177*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memh(r21 + #62)
178*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xdb 0x55 0x47
179*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
180*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memh(r21 + #62)
181*9880d681SAndroid Build Coastguard Worker
182*9880d681SAndroid Build Coastguard Worker# Load unsigned byte
183*9880d681SAndroid Build Coastguard Worker0x91 0xff 0x35 0x3a
184*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21 + r31<<#3)
185*9880d681SAndroid Build Coastguard Worker0xb1 0xc2 0x20 0x49
186*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(#21)
187*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0xb1 0xc2 0x20 0x49
188*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(##21)
189*9880d681SAndroid Build Coastguard Worker0xf1 0xc3 0x35 0x91
190*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21 + #31)
191*9880d681SAndroid Build Coastguard Worker0xb1 0xe0 0x35 0x99
192*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21 ++ #5:circ(m1))
193*9880d681SAndroid Build Coastguard Worker0x11 0xe2 0x35 0x99
194*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21 ++ I:circ(m1))
195*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x71 0xd7 0x35 0x9b
196*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21 = ##31)
197*9880d681SAndroid Build Coastguard Worker0xb1 0xc0 0x35 0x9b
198*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21++#5)
199*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x35 0x9d
200*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21++m1)
201*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x35 0x9f
202*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21 ++ m1:brev)
203*9880d681SAndroid Build Coastguard Worker
204*9880d681SAndroid Build Coastguard Worker# Load unsigned byte conditionally
205*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x35 0x30
206*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memub(r21+r31<<#3)
207*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x35 0x31
208*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memub(r21+r31<<#3)
209*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x35 0x32
210*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
211*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memub(r21+r31<<#3)
212*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x35 0x33
213*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
214*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memub(r21+r31<<#3)
215*9880d681SAndroid Build Coastguard Worker0xf1 0xdb 0x35 0x41
216*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memub(r21 + #31)
217*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xdb 0x35 0x43
218*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
219*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memub(r21 + #31)
220*9880d681SAndroid Build Coastguard Worker0xf1 0xdb 0x35 0x45
221*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memub(r21 + #31)
222*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xdb 0x35 0x47
223*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
224*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memub(r21 + #31)
225*9880d681SAndroid Build Coastguard Worker0xb1 0xe6 0x35 0x9b
226*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memub(r21++#5)
227*9880d681SAndroid Build Coastguard Worker0xb1 0xee 0x35 0x9b
228*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memub(r21++#5)
229*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xf6 0x35 0x9b
230*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
231*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memub(r21++#5)
232*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xfe 0x35 0x9b
233*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
234*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memub(r21++#5)
235*9880d681SAndroid Build Coastguard Worker
236*9880d681SAndroid Build Coastguard Worker# Load unsigned halfword
237*9880d681SAndroid Build Coastguard Worker0x91 0xff 0x75 0x3a
238*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21 + r31<<#3)
239*9880d681SAndroid Build Coastguard Worker0xb1 0xc2 0x60 0x49
240*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(#42)
241*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x51 0xc5 0x60 0x49
242*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(##42)
243*9880d681SAndroid Build Coastguard Worker0xb1 0xc2 0x75 0x91
244*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21 + #42)
245*9880d681SAndroid Build Coastguard Worker0xb1 0xe0 0x75 0x99
246*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21 ++ #10:circ(m1))
247*9880d681SAndroid Build Coastguard Worker0x11 0xe2 0x75 0x99
248*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21 ++ I:circ(m1))
249*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x71 0xd7 0x75 0x9b
250*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21 = ##31)
251*9880d681SAndroid Build Coastguard Worker0xb1 0xc0 0x75 0x9b
252*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21++#10)
253*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x75 0x9d
254*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21++m1)
255*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x75 0x9f
256*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21 ++ m1:brev)
257*9880d681SAndroid Build Coastguard Worker
258*9880d681SAndroid Build Coastguard Worker# Load unsigned halfword conditionally
259*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x75 0x30
260*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memuh(r21+r31<<#3)
261*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x75 0x31
262*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memuh(r21+r31<<#3)
263*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x75 0x32
264*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
265*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memuh(r21+r31<<#3)
266*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x75 0x33
267*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
268*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memuh(r21+r31<<#3)
269*9880d681SAndroid Build Coastguard Worker0xb1 0xda 0x75 0x41
270*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memuh(r21 + #42)
271*9880d681SAndroid Build Coastguard Worker0xb1 0xda 0x75 0x45
272*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memuh(r21 + #42)
273*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xda 0x75 0x43
274*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
275*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memuh(r21 + #42)
276*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xda 0x75 0x47
277*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
278*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memuh(r21 + #42)
279*9880d681SAndroid Build Coastguard Worker0xb1 0xe6 0x75 0x9b
280*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memuh(r21++#10)
281*9880d681SAndroid Build Coastguard Worker0xb1 0xee 0x75 0x9b
282*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memuh(r21++#10)
283*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xf6 0x75 0x9b
284*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
285*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memuh(r21++#10)
286*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xfe 0x75 0x9b
287*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
288*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memuh(r21++#10)
289*9880d681SAndroid Build Coastguard Worker
290*9880d681SAndroid Build Coastguard Worker# Load word
291*9880d681SAndroid Build Coastguard Worker0x91 0xff 0x95 0x3a
292*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21 + r31<<#3)
293*9880d681SAndroid Build Coastguard Worker0xb1 0xc2 0x80 0x49
294*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(#84)
295*9880d681SAndroid Build Coastguard Worker0x01 0x40 0x00 0x00 0x91 0xc2 0x80 0x49
296*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(##84)
297*9880d681SAndroid Build Coastguard Worker0xb1 0xc2 0x95 0x91
298*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21 + #84)
299*9880d681SAndroid Build Coastguard Worker0xb1 0xe0 0x95 0x99
300*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21 ++ #20:circ(m1))
301*9880d681SAndroid Build Coastguard Worker0x11 0xe2 0x95 0x99
302*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21 ++ I:circ(m1))
303*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x71 0xd7 0x95 0x9b
304*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21 = ##31)
305*9880d681SAndroid Build Coastguard Worker0xb1 0xc0 0x95 0x9b
306*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21++#20)
307*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x95 0x9d
308*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21++m1)
309*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x95 0x9f
310*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21 ++ m1:brev)
311*9880d681SAndroid Build Coastguard Worker
312*9880d681SAndroid Build Coastguard Worker# Load word conditionally
313*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x95 0x30
314*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memw(r21+r31<<#3)
315*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x95 0x31
316*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memw(r21+r31<<#3)
317*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x95 0x32
318*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
319*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memw(r21+r31<<#3)
320*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x95 0x33
321*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
322*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memw(r21+r31<<#3)
323*9880d681SAndroid Build Coastguard Worker0xb1 0xda 0x95 0x41
324*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memw(r21 + #84)
325*9880d681SAndroid Build Coastguard Worker0xb1 0xda 0x95 0x45
326*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memw(r21 + #84)
327*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xda 0x95 0x43
328*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
329*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memw(r21 + #84)
330*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xda 0x95 0x47
331*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
332*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memw(r21 + #84)
333*9880d681SAndroid Build Coastguard Worker0xb1 0xe6 0x95 0x9b
334*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memw(r21++#20)
335*9880d681SAndroid Build Coastguard Worker0xb1 0xee 0x95 0x9b
336*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memw(r21++#20)
337*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xf6 0x95 0x9b
338*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
339*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memw(r21++#20)
340*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xfe 0x95 0x9b
341*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
342*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memw(r21++#20)
343*9880d681SAndroid Build Coastguard Worker
344*9880d681SAndroid Build Coastguard Worker# Deallocate stack frame
345*9880d681SAndroid Build Coastguard Worker0x1e 0xc0 0x1e 0x90
346*9880d681SAndroid Build Coastguard Worker# CHECK: deallocframe
347*9880d681SAndroid Build Coastguard Worker
348*9880d681SAndroid Build Coastguard Worker# Deallocate stack frame and return
349*9880d681SAndroid Build Coastguard Worker0x1e 0xc0 0x1e 0x96
350*9880d681SAndroid Build Coastguard Worker# CHECK: dealloc_return
351*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x1e 0xcb 0x1e 0x96
352*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
353*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) dealloc_return:nt
354*9880d681SAndroid Build Coastguard Worker0x1e 0xd3 0x1e 0x96
355*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) dealloc_return
356*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x1e 0xdb 0x1e 0x96
357*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
358*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) dealloc_return:t
359*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x1e 0xeb 0x1e 0x96
360*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
361*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) dealloc_return:nt
362*9880d681SAndroid Build Coastguard Worker0x1e 0xf3 0x1e 0x96
363*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) dealloc_return
364*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x1e 0xfb 0x1e 0x96
365*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5
366*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) dealloc_return:t
367*9880d681SAndroid Build Coastguard Worker
368*9880d681SAndroid Build Coastguard Worker# Load and unpack bytes to halfwords
369*9880d681SAndroid Build Coastguard Worker0xf1 0xc3 0x35 0x90
370*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21 + #62)
371*9880d681SAndroid Build Coastguard Worker0xf1 0xc3 0x75 0x90
372*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21 + #62)
373*9880d681SAndroid Build Coastguard Worker0xf0 0xc3 0xb5 0x90
374*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21 + #124)
375*9880d681SAndroid Build Coastguard Worker0xf0 0xc3 0xf5 0x90
376*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21 + #124)
377*9880d681SAndroid Build Coastguard Worker0xb1 0xe0 0x35 0x98
378*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21 ++ #10:circ(m1))
379*9880d681SAndroid Build Coastguard Worker0x11 0xe2 0x35 0x98
380*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21 ++ I:circ(m1))
381*9880d681SAndroid Build Coastguard Worker0xb1 0xe0 0x75 0x98
382*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21 ++ #10:circ(m1))
383*9880d681SAndroid Build Coastguard Worker0x11 0xe2 0x75 0x98
384*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21 ++ I:circ(m1))
385*9880d681SAndroid Build Coastguard Worker0xb0 0xe0 0xf5 0x98
386*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21 ++ #20:circ(m1))
387*9880d681SAndroid Build Coastguard Worker0x10 0xe2 0xf5 0x98
388*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21 ++ I:circ(m1))
389*9880d681SAndroid Build Coastguard Worker0xb0 0xe0 0xb5 0x98
390*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21 ++ #20:circ(m1))
391*9880d681SAndroid Build Coastguard Worker0x10 0xe2 0xb5 0x98
392*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21 ++ I:circ(m1))
393*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x71 0xd7 0x35 0x9a
394*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21 = ##31)
395*9880d681SAndroid Build Coastguard Worker0xb1 0xc0 0x35 0x9a
396*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21++#10)
397*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x71 0xd7 0x75 0x9a
398*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21 = ##31)
399*9880d681SAndroid Build Coastguard Worker0xb1 0xc0 0x75 0x9a
400*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21++#10)
401*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x70 0xd7 0xb5 0x9a
402*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21 = ##31)
403*9880d681SAndroid Build Coastguard Worker0xb0 0xc0 0xb5 0x9a
404*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21++#20)
405*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x70 0xd7 0xf5 0x9a
406*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21 = ##31)
407*9880d681SAndroid Build Coastguard Worker0xb0 0xc0 0xf5 0x9a
408*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21++#20)
409*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0xf1 0xf7 0x35 0x9c
410*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21<<#3 + ##31)
411*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x35 0x9c
412*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21++m1)
413*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0xf1 0xf7 0x75 0x9c
414*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21<<#3 + ##31)
415*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x75 0x9c
416*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21++m1)
417*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0xf0 0xf7 0xf5 0x9c
418*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21<<#3 + ##31)
419*9880d681SAndroid Build Coastguard Worker0x10 0xe0 0xf5 0x9c
420*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21++m1)
421*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0xf0 0xf7 0xb5 0x9c
422*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21<<#3 + ##31)
423*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x35 0x9c
424*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21++m1)
425*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x75 0x9c
426*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21++m1)
427*9880d681SAndroid Build Coastguard Worker0x10 0xe0 0xf5 0x9c
428*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21++m1)
429*9880d681SAndroid Build Coastguard Worker0x10 0xe0 0xb5 0x9c
430*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21++m1)
431*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x35 0x9e
432*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21 ++ m1:brev)
433*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x75 0x9e
434*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21 ++ m1:brev)
435*9880d681SAndroid Build Coastguard Worker0x10 0xe0 0xb5 0x9e
436*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21 ++ m1:brev)
437*9880d681SAndroid Build Coastguard Worker0x10 0xe0 0xf5 0x9e
438*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21 ++ m1:brev)
439