Lines Matching full:common

1 ; RUN: llc %s -mtriple=thumbv8m.main     -o - | FileCheck %s --check-prefixes V8M-COMMON,V8M-LE
2 ; RUN: llc %s -mtriple=thumbebv8m.main -o - | FileCheck %s --check-prefixes V8M-COMMON,V8M-BE
3 ; RUN: llc %s -mtriple=thumbv8.1m.main -o - | FileCheck %s --check-prefixes V81M-COMMON,V81M-LE
4 ; RUN: llc %s -mtriple=thumbebv8.1m.main -o - | FileCheck %s --check-prefixes V81M-COMMON,V81M-BE
9 ; V8M-COMMON-LABEL: access_i16:
10 ; V8M-COMMON: @ %bb.0: @ %entry
11 ; V8M-COMMON-NEXT: movw r1, :lower16:arr
12 ; V8M-COMMON-NEXT: sxth r0, r0
13 ; V8M-COMMON-NEXT: movt r1, :upper16:arr
14 ; V8M-COMMON-NEXT: mov r2, lr
15 ; V8M-COMMON-NEXT: ldr.w r0, [r1, r0, lsl #2]
16 ; V8M-COMMON-NEXT: mov r1, lr
17 ; V8M-COMMON-NEXT: mov r3, lr
18 ; V8M-COMMON-NEXT: msr apsr_nzcvq, lr
19 ; V8M-COMMON-NEXT: mov r12, lr
20 ; V8M-COMMON-NEXT: bxns lr
22 ; V81M-COMMON-LABEL: access_i16:
23 ; V81M-COMMON: @ %bb.0: @ %entry
24 ; V81M-COMMON-NEXT: vstr fpcxtns, [sp, #-4]!
25 ; V81M-COMMON-NEXT: movw r1, :lower16:arr
26 ; V81M-COMMON-NEXT: sxth r0, r0
27 ; V81M-COMMON-NEXT: movt r1, :upper16:arr
28 ; V81M-COMMON-NEXT: ldr.w r0, [r1, r0, lsl #2]
29 ; V81M-COMMON-NEXT: vscclrm {s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s1…
30 ; V81M-COMMON-NEXT: vldr fpcxtns, [sp], #4
31 ; V81M-COMMON-NEXT: clrm {r1, r2, r3, r12, apsr}
32 ; V81M-COMMON-NEXT: bxns lr
41 ; V8M-COMMON-LABEL: access_u16:
42 ; V8M-COMMON: @ %bb.0: @ %entry
43 ; V8M-COMMON-NEXT: movw r1, :lower16:arr
44 ; V8M-COMMON-NEXT: uxth r0, r0
45 ; V8M-COMMON-NEXT: movt r1, :upper16:arr
46 ; V8M-COMMON-NEXT: mov r2, lr
47 ; V8M-COMMON-NEXT: ldr.w r0, [r1, r0, lsl #2]
48 ; V8M-COMMON-NEXT: mov r1, lr
49 ; V8M-COMMON-NEXT: mov r3, lr
50 ; V8M-COMMON-NEXT: msr apsr_nzcvq, lr
51 ; V8M-COMMON-NEXT: mov r12, lr
52 ; V8M-COMMON-NEXT: bxns lr
54 ; V81M-COMMON-LABEL: access_u16:
55 ; V81M-COMMON: @ %bb.0: @ %entry
56 ; V81M-COMMON-NEXT: vstr fpcxtns, [sp, #-4]!
57 ; V81M-COMMON-NEXT: movw r1, :lower16:arr
58 ; V81M-COMMON-NEXT: uxth r0, r0
59 ; V81M-COMMON-NEXT: movt r1, :upper16:arr
60 ; V81M-COMMON-NEXT: ldr.w r0, [r1, r0, lsl #2]
61 ; V81M-COMMON-NEXT: vscclrm {s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s1…
62 ; V81M-COMMON-NEXT: vldr fpcxtns, [sp], #4
63 ; V81M-COMMON-NEXT: clrm {r1, r2, r3, r12, apsr}
64 ; V81M-COMMON-NEXT: bxns lr
73 ; V8M-COMMON-LABEL: access_i8:
74 ; V8M-COMMON: @ %bb.0: @ %entry
75 ; V8M-COMMON-NEXT: movw r1, :lower16:arr
76 ; V8M-COMMON-NEXT: sxtb r0, r0
77 ; V8M-COMMON-NEXT: movt r1, :upper16:arr
78 ; V8M-COMMON-NEXT: mov r2, lr
79 ; V8M-COMMON-NEXT: ldr.w r0, [r1, r0, lsl #2]
80 ; V8M-COMMON-NEXT: mov r1, lr
81 ; V8M-COMMON-NEXT: mov r3, lr
82 ; V8M-COMMON-NEXT: msr apsr_nzcvq, lr
83 ; V8M-COMMON-NEXT: mov r12, lr
84 ; V8M-COMMON-NEXT: bxns lr
86 ; V81M-COMMON-LABEL: access_i8:
87 ; V81M-COMMON: @ %bb.0: @ %entry
88 ; V81M-COMMON-NEXT: vstr fpcxtns, [sp, #-4]!
89 ; V81M-COMMON-NEXT: movw r1, :lower16:arr
90 ; V81M-COMMON-NEXT: sxtb r0, r0
91 ; V81M-COMMON-NEXT: movt r1, :upper16:arr
92 ; V81M-COMMON-NEXT: ldr.w r0, [r1, r0, lsl #2]
93 ; V81M-COMMON-NEXT: vscclrm {s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s1…
94 ; V81M-COMMON-NEXT: vldr fpcxtns, [sp], #4
95 ; V81M-COMMON-NEXT: clrm {r1, r2, r3, r12, apsr}
96 ; V81M-COMMON-NEXT: bxns lr
105 ; V8M-COMMON-LABEL: access_u8:
106 ; V8M-COMMON: @ %bb.0: @ %entry
107 ; V8M-COMMON-NEXT: movw r1, :lower16:arr
108 ; V8M-COMMON-NEXT: uxtb r0, r0
109 ; V8M-COMMON-NEXT: movt r1, :upper16:arr
110 ; V8M-COMMON-NEXT: mov r2, lr
111 ; V8M-COMMON-NEXT: ldr.w r0, [r1, r0, lsl #2]
112 ; V8M-COMMON-NEXT: mov r1, lr
113 ; V8M-COMMON-NEXT: mov r3, lr
114 ; V8M-COMMON-NEXT: msr apsr_nzcvq, lr
115 ; V8M-COMMON-NEXT: mov r12, lr
116 ; V8M-COMMON-NEXT: bxns lr
118 ; V81M-COMMON-LABEL: access_u8:
119 ; V81M-COMMON: @ %bb.0: @ %entry
120 ; V81M-COMMON-NEXT: vstr fpcxtns, [sp, #-4]!
121 ; V81M-COMMON-NEXT: movw r1, :lower16:arr
122 ; V81M-COMMON-NEXT: uxtb r0, r0
123 ; V81M-COMMON-NEXT: movt r1, :upper16:arr
124 ; V81M-COMMON-NEXT: ldr.w r0, [r1, r0, lsl #2]
125 ; V81M-COMMON-NEXT: vscclrm {s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s1…
126 ; V81M-COMMON-NEXT: vldr fpcxtns, [sp], #4
127 ; V81M-COMMON-NEXT: clrm {r1, r2, r3, r12, apsr}
128 ; V81M-COMMON-NEXT: bxns lr
137 ; V8M-COMMON-LABEL: access_i1:
138 ; V8M-COMMON: @ %bb.0: @ %entry
139 ; V8M-COMMON-NEXT: and r0, r0, #1
140 ; V8M-COMMON-NEXT: movw r1, :lower16:arr
141 ; V8M-COMMON-NEXT: rsbs r0, r0, #0
142 ; V8M-COMMON-NEXT: movt r1, :upper16:arr
143 ; V8M-COMMON-NEXT: and r0, r0, #1
144 ; V8M-COMMON-NEXT: mov r2, lr
145 ; V8M-COMMON-NEXT: mov r3, lr
146 ; V8M-COMMON-NEXT: mov r12, lr
147 ; V8M-COMMON-NEXT: ldr.w r0, [r1, r0, lsl #2]
148 ; V8M-COMMON-NEXT: mov r1, lr
149 ; V8M-COMMON-NEXT: msr apsr_nzcvq, lr
150 ; V8M-COMMON-NEXT: bxns lr
152 ; V81M-COMMON-LABEL: access_i1:
153 ; V81M-COMMON: @ %bb.0: @ %entry
154 ; V81M-COMMON-NEXT: vstr fpcxtns, [sp, #-4]!
155 ; V81M-COMMON-NEXT: and r0, r0, #1
156 ; V81M-COMMON-NEXT: movw r1, :lower16:arr
157 ; V81M-COMMON-NEXT: rsbs r0, r0, #0
158 ; V81M-COMMON-NEXT: movt r1, :upper16:arr
159 ; V81M-COMMON-NEXT: and r0, r0, #1
160 ; V81M-COMMON-NEXT: ldr.w r0, [r1, r0, lsl #2]
161 ; V81M-COMMON-NEXT: vscclrm {s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s1…
162 ; V81M-COMMON-NEXT: vldr fpcxtns, [sp], #4
163 ; V81M-COMMON-NEXT: clrm {r1, r2, r3, r12, apsr}
164 ; V81M-COMMON-NEXT: bxns lr
173 ; V8M-COMMON-LABEL: access_i5:
174 ; V8M-COMMON: @ %bb.0: @ %entry
175 ; V8M-COMMON-NEXT: movw r1, :lower16:arr
176 ; V8M-COMMON-NEXT: sbfx r0, r0, #0, #5
177 ; V8M-COMMON-NEXT: movt r1, :upper16:arr
178 ; V8M-COMMON-NEXT: mov r2, lr
179 ; V8M-COMMON-NEXT: ldr.w r0, [r1, r0, lsl #2]
180 ; V8M-COMMON-NEXT: mov r1, lr
181 ; V8M-COMMON-NEXT: mov r3, lr
182 ; V8M-COMMON-NEXT: msr apsr_nzcvq, lr
183 ; V8M-COMMON-NEXT: mov r12, lr
184 ; V8M-COMMON-NEXT: bxns lr
186 ; V81M-COMMON-LABEL: access_i5:
187 ; V81M-COMMON: @ %bb.0: @ %entry
188 ; V81M-COMMON-NEXT: vstr fpcxtns, [sp, #-4]!
189 ; V81M-COMMON-NEXT: movw r1, :lower16:arr
190 ; V81M-COMMON-NEXT: sbfx r0, r0, #0, #5
191 ; V81M-COMMON-NEXT: movt r1, :upper16:arr
192 ; V81M-COMMON-NEXT: ldr.w r0, [r1, r0, lsl #2]
193 ; V81M-COMMON-NEXT: vscclrm {s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s1…
194 ; V81M-COMMON-NEXT: vldr fpcxtns, [sp], #4
195 ; V81M-COMMON-NEXT: clrm {r1, r2, r3, r12, apsr}
196 ; V81M-COMMON-NEXT: bxns lr
205 ; V8M-COMMON-LABEL: access_u5:
206 ; V8M-COMMON: @ %bb.0: @ %entry
207 ; V8M-COMMON-NEXT: movw r1, :lower16:arr
208 ; V8M-COMMON-NEXT: and r0, r0, #31
209 ; V8M-COMMON-NEXT: movt r1, :upper16:arr
210 ; V8M-COMMON-NEXT: mov r2, lr
211 ; V8M-COMMON-NEXT: ldr.w r0, [r1, r0, lsl #2]
212 ; V8M-COMMON-NEXT: mov r1, lr
213 ; V8M-COMMON-NEXT: mov r3, lr
214 ; V8M-COMMON-NEXT: msr apsr_nzcvq, lr
215 ; V8M-COMMON-NEXT: mov r12, lr
216 ; V8M-COMMON-NEXT: bxns lr
218 ; V81M-COMMON-LABEL: access_u5:
219 ; V81M-COMMON: @ %bb.0: @ %entry
220 ; V81M-COMMON-NEXT: vstr fpcxtns, [sp, #-4]!
221 ; V81M-COMMON-NEXT: movw r1, :lower16:arr
222 ; V81M-COMMON-NEXT: and r0, r0, #31
223 ; V81M-COMMON-NEXT: movt r1, :upper16:arr
224 ; V81M-COMMON-NEXT: ldr.w r0, [r1, r0, lsl #2]
225 ; V81M-COMMON-NEXT: vscclrm {s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s1…
226 ; V81M-COMMON-NEXT: vldr fpcxtns, [sp], #4
227 ; V81M-COMMON-NEXT: clrm {r1, r2, r3, r12, apsr}
228 ; V81M-COMMON-NEXT: bxns lr
237 ; V8M-COMMON-LABEL: access_i33:
238 ; V8M-COMMON: @ %bb.0: @ %entry
241 ; V8M-COMMON-NEXT: mov r1, lr
242 ; V8M-COMMON-NEXT: rsbs r0, r0, #0
243 ; V8M-COMMON-NEXT: mov r2, lr
244 ; V8M-COMMON-NEXT: mov r3, lr
245 ; V8M-COMMON-NEXT: mov r12, lr
246 ; V8M-COMMON-NEXT: msr apsr_nzcvq, lr
247 ; V8M-COMMON-NEXT: bxns lr
249 ; V81M-COMMON-LABEL: access_i33:
250 ; V81M-COMMON: @ %bb.0: @ %entry
251 ; V81M-COMMON-NEXT: vstr fpcxtns, [sp, #-4]!
254 ; V81M-COMMON-NEXT: vscclrm {s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s1…
255 ; V81M-COMMON-NEXT: rsbs r0, r0, #0
256 ; V81M-COMMON-NEXT: vldr fpcxtns, [sp], #4
257 ; V81M-COMMON-NEXT: clrm {r1, r2, r3, r12, apsr}
258 ; V81M-COMMON-NEXT: bxns lr
266 ; V8M-COMMON-LABEL: access_u33:
267 ; V8M-COMMON: @ %bb.0: @ %entry
270 ; V8M-COMMON-NEXT: mov r1, lr
271 ; V8M-COMMON-NEXT: mov r2, lr
272 ; V8M-COMMON-NEXT: mov r3, lr
273 ; V8M-COMMON-NEXT: mov r12, lr
274 ; V8M-COMMON-NEXT: msr apsr_nzcvq, lr
275 ; V8M-COMMON-NEXT: bxns lr
277 ; V81M-COMMON-LABEL: access_u33:
278 ; V81M-COMMON: @ %bb.0: @ %entry
279 ; V81M-COMMON-NEXT: vstr fpcxtns, [sp, #-4]!
282 ; V81M-COMMON-NEXT: vscclrm {s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s1…
283 ; V81M-COMMON-NEXT: vldr fpcxtns, [sp], #4
284 ; V81M-COMMON-NEXT: clrm {r1, r2, r3, r12, apsr}
285 ; V81M-COMMON-NEXT: bxns lr
293 ; V8M-COMMON-LABEL: access_i65:
294 ; V8M-COMMON: @ %bb.0: @ %entry
295 ; V8M-COMMON-NEXT: sub sp, #16
296 ; V8M-COMMON-NEXT: stm.w sp, {r0, r1, r2, r3}
302 ; V8M-COMMON-NEXT: add sp, #16
303 ; V8M-COMMON-NEXT: mov r1, lr
304 ; V8M-COMMON-NEXT: mov r2, lr
305 ; V8M-COMMON-NEXT: mov r3, lr
306 ; V8M-COMMON-NEXT: mov r12, lr
307 ; V8M-COMMON-NEXT: msr apsr_nzcvq, lr
308 ; V8M-COMMON-NEXT: bxns lr
310 ; V81M-COMMON-LABEL: access_i65:
311 ; V81M-COMMON: @ %bb.0: @ %entry
312 ; V81M-COMMON-NEXT: vstr fpcxtns, [sp, #-4]!
313 ; V81M-COMMON-NEXT: sub sp, #16
314 ; V81M-COMMON-NEXT: add sp, #4
315 ; V81M-COMMON-NEXT: stm.w sp, {r0, r1, r2, r3}
321 ; V81M-COMMON-NEXT: sub sp, #4
322 ; V81M-COMMON-NEXT: add sp, #16
323 ; V81M-COMMON-NEXT: vscclrm {s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s1…
324 ; V81M-COMMON-NEXT: vldr fpcxtns, [sp], #4
325 ; V81M-COMMON-NEXT: clrm {r1, r2, r3, r12, apsr}
326 ; V81M-COMMON-NEXT: bxns lr
335 ; V8M-COMMON-LABEL: access_u65:
336 ; V8M-COMMON: @ %bb.0: @ %entry
337 ; V8M-COMMON-NEXT: sub sp, #16
338 ; V8M-COMMON-NEXT: stm.w sp, {r0, r1, r2, r3}
341 ; V8M-COMMON-NEXT: add sp, #16
342 ; V8M-COMMON-NEXT: mov r1, lr
343 ; V8M-COMMON-NEXT: mov r2, lr
344 ; V8M-COMMON-NEXT: mov r3, lr
345 ; V8M-COMMON-NEXT: mov r12, lr
346 ; V8M-COMMON-NEXT: msr apsr_nzcvq, lr
347 ; V8M-COMMON-NEXT: bxns lr
349 ; V81M-COMMON-LABEL: access_u65:
350 ; V81M-COMMON: @ %bb.0: @ %entry
351 ; V81M-COMMON-NEXT: vstr fpcxtns, [sp, #-4]!
352 ; V81M-COMMON-NEXT: sub sp, #16
353 ; V81M-COMMON-NEXT: add sp, #4
354 ; V81M-COMMON-NEXT: stm.w sp, {r0, r1, r2, r3}
357 ; V81M-COMMON-NEXT: sub sp, #4
358 ; V81M-COMMON-NEXT: add sp, #16
359 ; V81M-COMMON-NEXT: vscclrm {s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s1…
360 ; V81M-COMMON-NEXT: vldr fpcxtns, [sp], #4
361 ; V81M-COMMON-NEXT: clrm {r1, r2, r3, r12, apsr}
362 ; V81M-COMMON-NEXT: bxns lr