Lines Matching full:be
3 ; RUN: llc -mtriple=thumbebv8.1m.main-none-none-eabi -mattr=+mve -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=CHECK-BE
24 ; CHECK-BE-LABEL: load_v4i1:
25 ; CHECK-BE: @ %bb.0: @ %entry
26 ; CHECK-BE-NEXT: ldrb r0, [r0]
27 ; CHECK-BE-NEXT: vmov.i8 q1, #0x0
28 ; CHECK-BE-NEXT: vmov.i8 q2, #0xff
29 ; CHECK-BE-NEXT: rbit r0, r0
30 ; CHECK-BE-NEXT: lsrs r0, r0, #28
31 ; CHECK-BE-NEXT: vmsr p0, r0
32 ; CHECK-BE-NEXT: vpsel q1, q2, q1
33 ; CHECK-BE-NEXT: vmov.u8 r0, q1[2]
34 ; CHECK-BE-NEXT: vmov.u8 r1, q1[0]
35 ; CHECK-BE-NEXT: vmov q2[2], q2[0], r1, r0
36 ; CHECK-BE-NEXT: vmov.u8 r0, q1[3]
37 ; CHECK-BE-NEXT: vmov.u8 r1, q1[1]
38 ; CHECK-BE-NEXT: vrev64.32 q1, q0
39 ; CHECK-BE-NEXT: vmov q2[3], q2[1], r1, r0
40 ; CHECK-BE-NEXT: vmov.i32 q0, #0x0
41 ; CHECK-BE-NEXT: vcmp.i32 ne, q2, zr
42 ; CHECK-BE-NEXT: vpsel q1, q1, q0
43 ; CHECK-BE-NEXT: vrev64.32 q0, q1
44 ; CHECK-BE-NEXT: bx lr
80 ; CHECK-BE-LABEL: load_v8i1:
81 ; CHECK-BE: @ %bb.0: @ %entry
82 ; CHECK-BE-NEXT: ldrb r0, [r0]
83 ; CHECK-BE-NEXT: vmov.i8 q1, #0x0
84 ; CHECK-BE-NEXT: vmov.i8 q2, #0xff
85 ; CHECK-BE-NEXT: rbit r0, r0
86 ; CHECK-BE-NEXT: lsrs r0, r0, #24
87 ; CHECK-BE-NEXT: vmsr p0, r0
88 ; CHECK-BE-NEXT: vpsel q2, q2, q1
89 ; CHECK-BE-NEXT: vmov.u8 r0, q2[0]
90 ; CHECK-BE-NEXT: vmov.16 q1[0], r0
91 ; CHECK-BE-NEXT: vmov.u8 r0, q2[1]
92 ; CHECK-BE-NEXT: vmov.16 q1[1], r0
93 ; CHECK-BE-NEXT: vmov.u8 r0, q2[2]
94 ; CHECK-BE-NEXT: vmov.16 q1[2], r0
95 ; CHECK-BE-NEXT: vmov.u8 r0, q2[3]
96 ; CHECK-BE-NEXT: vmov.16 q1[3], r0
97 ; CHECK-BE-NEXT: vmov.u8 r0, q2[4]
98 ; CHECK-BE-NEXT: vmov.16 q1[4], r0
99 ; CHECK-BE-NEXT: vmov.u8 r0, q2[5]
100 ; CHECK-BE-NEXT: vmov.16 q1[5], r0
101 ; CHECK-BE-NEXT: vmov.u8 r0, q2[6]
102 ; CHECK-BE-NEXT: vmov.16 q1[6], r0
103 ; CHECK-BE-NEXT: vmov.u8 r0, q2[7]
104 ; CHECK-BE-NEXT: vmov.16 q1[7], r0
105 ; CHECK-BE-NEXT: vcmp.i16 ne, q1, zr
106 ; CHECK-BE-NEXT: vrev64.16 q1, q0
107 ; CHECK-BE-NEXT: vmov.i32 q0, #0x0
108 ; CHECK-BE-NEXT: vpsel q1, q1, q0
109 ; CHECK-BE-NEXT: vrev64.16 q0, q1
110 ; CHECK-BE-NEXT: bx lr
126 ; CHECK-BE-LABEL: load_v16i1:
127 ; CHECK-BE: @ %bb.0: @ %entry
128 ; CHECK-BE-NEXT: ldrh r0, [r0]
129 ; CHECK-BE-NEXT: vrev64.8 q1, q0
130 ; CHECK-BE-NEXT: vmov.i32 q0, #0x0
131 ; CHECK-BE-NEXT: rbit r0, r0
132 ; CHECK-BE-NEXT: lsrs r0, r0, #16
133 ; CHECK-BE-NEXT: vmsr p0, r0
134 ; CHECK-BE-NEXT: vpsel q1, q1, q0
135 ; CHECK-BE-NEXT: vrev64.8 q0, q1
136 ; CHECK-BE-NEXT: bx lr
160 ; CHECK-BE-LABEL: load_v2i1:
161 ; CHECK-BE: @ %bb.0: @ %entry
162 ; CHECK-BE-NEXT: ldrb r0, [r0]
163 ; CHECK-BE-NEXT: vmov.i8 q1, #0x0
164 ; CHECK-BE-NEXT: vmov.i8 q2, #0xff
165 ; CHECK-BE-NEXT: rbit r0, r0
166 ; CHECK-BE-NEXT: lsrs r0, r0, #30
167 ; CHECK-BE-NEXT: vmsr p0, r0
168 ; CHECK-BE-NEXT: vpsel q1, q2, q1
169 ; CHECK-BE-NEXT: vmov.u8 r0, q1[1]
170 ; CHECK-BE-NEXT: vmov.u8 r1, q1[0]
171 ; CHECK-BE-NEXT: vmov q1[2], q1[0], r1, r0
172 ; CHECK-BE-NEXT: vmov q1[3], q1[1], r1, r0
173 ; CHECK-BE-NEXT: vcmp.i32 ne, q1, zr
174 ; CHECK-BE-NEXT: vmov.i32 q1, #0x0
175 ; CHECK-BE-NEXT: vpsel q0, q0, q1
176 ; CHECK-BE-NEXT: bx lr
205 ; CHECK-BE-LABEL: store_v4i1:
206 ; CHECK-BE: @ %bb.0: @ %entry
207 ; CHECK-BE-NEXT: vrev64.32 q1, q0
208 ; CHECK-BE-NEXT: movs r3, #0
209 ; CHECK-BE-NEXT: vcmp.i32 eq, q1, zr
210 ; CHECK-BE-NEXT: vmrs r1, p0
211 ; CHECK-BE-NEXT: ubfx r2, r1, #12, #1
212 ; CHECK-BE-NEXT: rsbs r2, r2, #0
213 ; CHECK-BE-NEXT: bfi r3, r2, #0, #1
214 ; CHECK-BE-NEXT: ubfx r2, r1, #8, #1
215 ; CHECK-BE-NEXT: rsbs r2, r2, #0
216 ; CHECK-BE-NEXT: bfi r3, r2, #1, #1
217 ; CHECK-BE-NEXT: ubfx r2, r1, #4, #1
218 ; CHECK-BE-NEXT: and r1, r1, #1
219 ; CHECK-BE-NEXT: rsbs r2, r2, #0
220 ; CHECK-BE-NEXT: bfi r3, r2, #2, #1
221 ; CHECK-BE-NEXT: rsbs r1, r1, #0
222 ; CHECK-BE-NEXT: bfi r3, r1, #3, #1
223 ; CHECK-BE-NEXT: strb r3, [r0]
224 ; CHECK-BE-NEXT: bx lr
264 ; CHECK-BE-LABEL: store_v8i1:
265 ; CHECK-BE: @ %bb.0: @ %entry
266 ; CHECK-BE-NEXT: vrev64.16 q1, q0
267 ; CHECK-BE-NEXT: vcmp.i16 eq, q1, zr
268 ; CHECK-BE-NEXT: vmrs r2, p0
269 ; CHECK-BE-NEXT: ubfx r1, r2, #14, #1
270 ; CHECK-BE-NEXT: rsbs r3, r1, #0
271 ; CHECK-BE-NEXT: movs r1, #0
272 ; CHECK-BE-NEXT: bfi r1, r3, #0, #1
273 ; CHECK-BE-NEXT: ubfx r3, r2, #12, #1
274 ; CHECK-BE-NEXT: rsbs r3, r3, #0
275 ; CHECK-BE-NEXT: bfi r1, r3, #1, #1
276 ; CHECK-BE-NEXT: ubfx r3, r2, #10, #1
277 ; CHECK-BE-NEXT: rsbs r3, r3, #0
278 ; CHECK-BE-NEXT: bfi r1, r3, #2, #1
279 ; CHECK-BE-NEXT: ubfx r3, r2, #8, #1
280 ; CHECK-BE-NEXT: rsbs r3, r3, #0
281 ; CHECK-BE-NEXT: bfi r1, r3, #3, #1
282 ; CHECK-BE-NEXT: ubfx r3, r2, #6, #1
283 ; CHECK-BE-NEXT: rsbs r3, r3, #0
284 ; CHECK-BE-NEXT: bfi r1, r3, #4, #1
285 ; CHECK-BE-NEXT: ubfx r3, r2, #4, #1
286 ; CHECK-BE-NEXT: rsbs r3, r3, #0
287 ; CHECK-BE-NEXT: bfi r1, r3, #5, #1
288 ; CHECK-BE-NEXT: ubfx r3, r2, #2, #1
289 ; CHECK-BE-NEXT: and r2, r2, #1
290 ; CHECK-BE-NEXT: rsbs r3, r3, #0
291 ; CHECK-BE-NEXT: bfi r1, r3, #6, #1
292 ; CHECK-BE-NEXT: rsbs r2, r2, #0
293 ; CHECK-BE-NEXT: bfi r1, r2, #7, #1
294 ; CHECK-BE-NEXT: strb r1, [r0]
295 ; CHECK-BE-NEXT: bx lr
310 ; CHECK-BE-LABEL: store_v16i1:
311 ; CHECK-BE: @ %bb.0: @ %entry
312 ; CHECK-BE-NEXT: vrev64.8 q1, q0
313 ; CHECK-BE-NEXT: vcmp.i8 eq, q1, zr
314 ; CHECK-BE-NEXT: vmrs r1, p0
315 ; CHECK-BE-NEXT: rbit r1, r1
316 ; CHECK-BE-NEXT: lsrs r1, r1, #16
317 ; CHECK-BE-NEXT: strh r1, [r0]
318 ; CHECK-BE-NEXT: bx lr
340 ; CHECK-BE-LABEL: store_v2i1:
341 ; CHECK-BE: @ %bb.0: @ %entry
342 ; CHECK-BE-NEXT: vrev64.32 q1, q0
343 ; CHECK-BE-NEXT: vmov r1, r2, d3
344 ; CHECK-BE-NEXT: orrs r1, r2
345 ; CHECK-BE-NEXT: mov.w r2, #0
346 ; CHECK-BE-NEXT: csetm r1, eq
347 ; CHECK-BE-NEXT: bfi r2, r1, #0, #1
348 ; CHECK-BE-NEXT: vmov r1, r3, d2
349 ; CHECK-BE-NEXT: orrs r1, r3
350 ; CHECK-BE-NEXT: csetm r1, eq
351 ; CHECK-BE-NEXT: bfi r2, r1, #1, #1
352 ; CHECK-BE-NEXT: strb r2, [r0]
353 ; CHECK-BE-NEXT: bx lr
369 ; CHECK-BE-LABEL: load_predcastzext:
370 ; CHECK-BE: @ %bb.0:
371 ; CHECK-BE-NEXT: ldrh r0, [r0]
372 ; CHECK-BE-NEXT: vrev64.32 q1, q0
373 ; CHECK-BE-NEXT: vmov.i32 q0, #0x0
374 ; CHECK-BE-NEXT: vmsr p0, r0
375 ; CHECK-BE-NEXT: vpsel q1, q1, q0
376 ; CHECK-BE-NEXT: vrev64.32 q0, q1
377 ; CHECK-BE-NEXT: bx lr
393 ; CHECK-BE-LABEL: load_bc4:
394 ; CHECK-BE: @ %bb.0:
395 ; CHECK-BE-NEXT: vldr p0, [r0]
396 ; CHECK-BE-NEXT: vrev64.32 q1, q0
397 ; CHECK-BE-NEXT: vmov.i32 q0, #0x0
398 ; CHECK-BE-NEXT: vpsel q1, q1, q0
399 ; CHECK-BE-NEXT: vrev64.32 q0, q1
400 ; CHECK-BE-NEXT: bx lr
415 ; CHECK-BE-LABEL: load_predcast8:
416 ; CHECK-BE: @ %bb.0:
417 ; CHECK-BE-NEXT: vldr p0, [r0]
418 ; CHECK-BE-NEXT: vrev64.16 q1, q0
419 ; CHECK-BE-NEXT: vmov.i32 q0, #0x0
420 ; CHECK-BE-NEXT: vpsel q1, q1, q0
421 ; CHECK-BE-NEXT: vrev64.16 q0, q1
422 ; CHECK-BE-NEXT: bx lr
437 ; CHECK-BE-LABEL: load_predcast16:
438 ; CHECK-BE: @ %bb.0:
439 ; CHECK-BE-NEXT: vldr p0, [r0]
440 ; CHECK-BE-NEXT: vrev64.8 q1, q0
441 ; CHECK-BE-NEXT: vmov.i32 q0, #0x0
442 ; CHECK-BE-NEXT: vpsel q1, q1, q0
443 ; CHECK-BE-NEXT: vrev64.8 q0, q1
444 ; CHECK-BE-NEXT: bx lr
460 ; CHECK-BE-LABEL: load_bc4_align2:
461 ; CHECK-BE: @ %bb.0:
462 ; CHECK-BE-NEXT: ldr r0, [r0]
463 ; CHECK-BE-NEXT: vrev64.32 q1, q0
464 ; CHECK-BE-NEXT: vmov.i32 q0, #0x0
465 ; CHECK-BE-NEXT: vmsr p0, r0
466 ; CHECK-BE-NEXT: vpsel q1, q1, q0
467 ; CHECK-BE-NEXT: vrev64.32 q0, q1
468 ; CHECK-BE-NEXT: bx lr
484 ; CHECK-BE-LABEL: load_bc4_offset:
485 ; CHECK-BE: @ %bb.0:
486 ; CHECK-BE-NEXT: adds r0, #6
487 ; CHECK-BE-NEXT: vrev64.32 q1, q0
488 ; CHECK-BE-NEXT: vldr p0, [r0]
489 ; CHECK-BE-NEXT: vmov.i32 q0, #0x0
490 ; CHECK-BE-NEXT: vpsel q1, q1, q0
491 ; CHECK-BE-NEXT: vrev64.32 q0, q1
492 ; CHECK-BE-NEXT: bx lr
508 ; CHECK-BE-LABEL: load_bc4_range4:
509 ; CHECK-BE: @ %bb.0:
510 ; CHECK-BE-NEXT: vldr p0, [r0, #4]
511 ; CHECK-BE-NEXT: vrev64.32 q1, q0
512 ; CHECK-BE-NEXT: vmov.i32 q0, #0x0
513 ; CHECK-BE-NEXT: vpsel q1, q1, q0
514 ; CHECK-BE-NEXT: vrev64.32 q0, q1
515 ; CHECK-BE-NEXT: bx lr
531 ; CHECK-BE-LABEL: load_bc4_range:
532 ; CHECK-BE: @ %bb.0:
533 ; CHECK-BE-NEXT: vldr p0, [r0, #508]
534 ; CHECK-BE-NEXT: vrev64.32 q1, q0
535 ; CHECK-BE-NEXT: vmov.i32 q0, #0x0
536 ; CHECK-BE-NEXT: vpsel q1, q1, q0
537 ; CHECK-BE-NEXT: vrev64.32 q0, q1
538 ; CHECK-BE-NEXT: bx lr
554 ; CHECK-BE-LABEL: load_bc4_range2:
555 ; CHECK-BE: @ %bb.0:
556 ; CHECK-BE-NEXT: vldr p0, [r0, #-508]
557 ; CHECK-BE-NEXT: vrev64.32 q1, q0
558 ; CHECK-BE-NEXT: vmov.i32 q0, #0x0
559 ; CHECK-BE-NEXT: vpsel q1, q1, q0
560 ; CHECK-BE-NEXT: vrev64.32 q0, q1
561 ; CHECK-BE-NEXT: bx lr
578 ; CHECK-BE-LABEL: load_bc4_range3:
579 ; CHECK-BE: @ %bb.0:
580 ; CHECK-BE-NEXT: add.w r0, r0, #512
581 ; CHECK-BE-NEXT: vrev64.32 q1, q0
582 ; CHECK-BE-NEXT: vldr p0, [r0]
583 ; CHECK-BE-NEXT: vmov.i32 q0, #0x0
584 ; CHECK-BE-NEXT: vpsel q1, q1, q0
585 ; CHECK-BE-NEXT: vrev64.32 q0, q1
586 ; CHECK-BE-NEXT: bx lr
603 ; CHECK-BE-LABEL: load_bc4_range5:
604 ; CHECK-BE: @ %bb.0:
605 ; CHECK-BE-NEXT: sub.w r0, r0, #512
606 ; CHECK-BE-NEXT: vrev64.32 q1, q0
607 ; CHECK-BE-NEXT: vldr p0, [r0]
608 ; CHECK-BE-NEXT: vmov.i32 q0, #0x0
609 ; CHECK-BE-NEXT: vpsel q1, q1, q0
610 ; CHECK-BE-NEXT: vrev64.32 q0, q1
611 ; CHECK-BE-NEXT: bx lr