Lines Matching full:be
3 ; RUN: llc -mtriple=aarch64_be -o - %s | FileCheck --check-prefix BE %s
14 ; BE-LABEL: load_v3i8:
15 ; BE: // %bb.0:
16 ; BE-NEXT: sub sp, sp, #16
17 ; BE-NEXT: .cfi_def_cfa_offset 16
18 ; BE-NEXT: ldrh w8, [x0]
19 ; BE-NEXT: strh w8, [sp, #12]
20 ; BE-NEXT: ldr s0, [sp, #12]
21 ; BE-NEXT: rev32 v0.8b, v0.8b
22 ; BE-NEXT: ushll v0.8h, v0.8b, #0
23 ; BE-NEXT: umov w8, v0.h[0]
24 ; BE-NEXT: umov w9, v0.h[1]
25 ; BE-NEXT: fmov s0, w8
26 ; BE-NEXT: add x8, x0, #2
27 ; BE-NEXT: mov v0.b[1], w9
28 ; BE-NEXT: ld1 { v0.b }[2], [x8]
29 ; BE-NEXT: rev64 v0.16b, v0.16b
30 ; BE-NEXT: ext v0.16b, v0.16b, v0.16b, #8
31 ; BE-NEXT: add sp, sp, #16
32 ; BE-NEXT: ret
51 ; BE-LABEL: load_v3i8_to_4xi32:
52 ; BE: // %bb.0:
53 ; BE-NEXT: sub sp, sp, #16
54 ; BE-NEXT: .cfi_def_cfa_offset 16
55 ; BE-NEXT: ldrh w8, [x0]
56 ; BE-NEXT: movi v1.2d, #0x0000ff000000ff
57 ; BE-NEXT: strh w8, [sp, #12]
58 ; BE-NEXT: ldr s0, [sp, #12]
59 ; BE-NEXT: ldrsb w8, [x0, #2]
60 ; BE-NEXT: rev32 v0.8b, v0.8b
61 ; BE-NEXT: ushll v0.8h, v0.8b, #0
62 ; BE-NEXT: mov v0.h[1], v0.h[1]
63 ; BE-NEXT: mov v0.h[2], w8
64 ; BE-NEXT: ushll v0.4s, v0.4h, #0
65 ; BE-NEXT: and v0.16b, v0.16b, v1.16b
66 ; BE-NEXT: rev64 v0.4s, v0.4s
67 ; BE-NEXT: ext v0.16b, v0.16b, v0.16b, #8
68 ; BE-NEXT: add sp, sp, #16
69 ; BE-NEXT: ret
89 ; BE-LABEL: load_v3i8_to_4xi32_align_2:
90 ; BE: // %bb.0:
91 ; BE-NEXT: sub sp, sp, #16
92 ; BE-NEXT: .cfi_def_cfa_offset 16
93 ; BE-NEXT: ldrh w8, [x0]
94 ; BE-NEXT: movi v1.2d, #0x0000ff000000ff
95 ; BE-NEXT: strh w8, [sp, #12]
96 ; BE-NEXT: ldr s0, [sp, #12]
97 ; BE-NEXT: ldrsb w8, [x0, #2]
98 ; BE-NEXT: rev32 v0.8b, v0.8b
99 ; BE-NEXT: ushll v0.8h, v0.8b, #0
100 ; BE-NEXT: mov v0.h[1], v0.h[1]
101 ; BE-NEXT: mov v0.h[2], w8
102 ; BE-NEXT: ushll v0.4s, v0.4h, #0
103 ; BE-NEXT: and v0.16b, v0.16b, v1.16b
104 ; BE-NEXT: rev64 v0.4s, v0.4s
105 ; BE-NEXT: ext v0.16b, v0.16b, v0.16b, #8
106 ; BE-NEXT: add sp, sp, #16
107 ; BE-NEXT: ret
124 ; BE-LABEL: load_v3i8_to_4xi32_align_4:
125 ; BE: // %bb.0:
126 ; BE-NEXT: ldr s0, [x0]
127 ; BE-NEXT: movi v1.2d, #0x0000ff000000ff
128 ; BE-NEXT: rev32 v0.8b, v0.8b
129 ; BE-NEXT: zip1 v0.8b, v0.8b, v0.8b
130 ; BE-NEXT: ushll v0.4s, v0.4h, #0
131 ; BE-NEXT: and v0.16b, v0.16b, v1.16b
132 ; BE-NEXT: rev64 v0.4s, v0.4s
133 ; BE-NEXT: ext v0.16b, v0.16b, v0.16b, #8
134 ; BE-NEXT: ret
154 ; BE-LABEL: load_v3i8_to_4xi32_const_offset_1:
155 ; BE: // %bb.0:
156 ; BE-NEXT: sub sp, sp, #16
157 ; BE-NEXT: .cfi_def_cfa_offset 16
158 ; BE-NEXT: ldurh w8, [x0, #1]
159 ; BE-NEXT: movi v1.2d, #0x0000ff000000ff
160 ; BE-NEXT: strh w8, [sp, #12]
161 ; BE-NEXT: ldr s0, [sp, #12]
162 ; BE-NEXT: ldrsb w8, [x0, #3]
163 ; BE-NEXT: rev32 v0.8b, v0.8b
164 ; BE-NEXT: ushll v0.8h, v0.8b, #0
165 ; BE-NEXT: mov v0.h[1], v0.h[1]
166 ; BE-NEXT: mov v0.h[2], w8
167 ; BE-NEXT: ushll v0.4s, v0.4h, #0
168 ; BE-NEXT: and v0.16b, v0.16b, v1.16b
169 ; BE-NEXT: rev64 v0.4s, v0.4s
170 ; BE-NEXT: ext v0.16b, v0.16b, v0.16b, #8
171 ; BE-NEXT: add sp, sp, #16
172 ; BE-NEXT: ret
193 ; BE-LABEL: load_v3i8_to_4xi32_const_offset_3:
194 ; BE: // %bb.0:
195 ; BE-NEXT: sub sp, sp, #16
196 ; BE-NEXT: .cfi_def_cfa_offset 16
197 ; BE-NEXT: ldurh w8, [x0, #3]
198 ; BE-NEXT: movi v1.2d, #0x0000ff000000ff
199 ; BE-NEXT: strh w8, [sp, #12]
200 ; BE-NEXT: ldr s0, [sp, #12]
201 ; BE-NEXT: ldrsb w8, [x0, #5]
202 ; BE-NEXT: rev32 v0.8b, v0.8b
203 ; BE-NEXT: ushll v0.8h, v0.8b, #0
204 ; BE-NEXT: mov v0.h[1], v0.h[1]
205 ; BE-NEXT: mov v0.h[2], w8
206 ; BE-NEXT: ushll v0.4s, v0.4h, #0
207 ; BE-NEXT: and v0.16b, v0.16b, v1.16b
208 ; BE-NEXT: rev64 v0.4s, v0.4s
209 ; BE-NEXT: ext v0.16b, v0.16b, v0.16b, #8
210 ; BE-NEXT: add sp, sp, #16
211 ; BE-NEXT: ret
237 ; BE-LABEL: volatile_load_v3i8_to_4xi32:
238 ; BE: // %bb.0:
239 ; BE-NEXT: sub sp, sp, #16
240 ; BE-NEXT: .cfi_def_cfa_offset 16
241 ; BE-NEXT: ldrh w8, [x0]
242 ; BE-NEXT: movi v1.2d, #0x0000ff000000ff
243 ; BE-NEXT: strh w8, [sp, #12]
244 ; BE-NEXT: ldr s0, [sp, #12]
245 ; BE-NEXT: ldrsb w8, [x0, #2]
246 ; BE-NEXT: rev32 v0.8b, v0.8b
247 ; BE-NEXT: ushll v0.8h, v0.8b, #0
248 ; BE-NEXT: mov v0.h[1], v0.h[1]
249 ; BE-NEXT: mov v0.h[2], w8
250 ; BE-NEXT: ushll v0.4s, v0.4h, #0
251 ; BE-NEXT: and v0.16b, v0.16b, v1.16b
252 ; BE-NEXT: rev64 v0.4s, v0.4s
253 ; BE-NEXT: ext v0.16b, v0.16b, v0.16b, #8
254 ; BE-NEXT: add sp, sp, #16
255 ; BE-NEXT: ret
270 ; BE-LABEL: load_v3i32:
271 ; BE: // %bb.0:
272 ; BE-NEXT: ldr d0, [x0]
273 ; BE-NEXT: add x8, x0, #8
274 ; BE-NEXT: rev64 v0.4s, v0.4s
275 ; BE-NEXT: ld1 { v0.s }[2], [x8]
276 ; BE-NEXT: rev64 v0.4s, v0.4s
277 ; BE-NEXT: ext v0.16b, v0.16b, v0.16b, #8
278 ; BE-NEXT: ret
296 ; BE-LABEL: load_v3i8_zext_to_3xi32:
297 ; BE: // %bb.0:
298 ; BE-NEXT: sub sp, sp, #16
299 ; BE-NEXT: .cfi_def_cfa_offset 16
300 ; BE-NEXT: ldrh w8, [x0]
301 ; BE-NEXT: movi v1.2d, #0x0000ff000000ff
302 ; BE-NEXT: strh w8, [sp, #12]
303 ; BE-NEXT: add x8, x0, #2
304 ; BE-NEXT: ldr s0, [sp, #12]
305 ; BE-NEXT: rev32 v0.8b, v0.8b
306 ; BE-NEXT: ushll v0.8h, v0.8b, #0
307 ; BE-NEXT: ld1 { v0.b }[4], [x8]
308 ; BE-NEXT: ushll v0.4s, v0.4h, #0
309 ; BE-NEXT: and v0.16b, v0.16b, v1.16b
310 ; BE-NEXT: rev64 v0.4s, v0.4s
311 ; BE-NEXT: ext v0.16b, v0.16b, v0.16b, #8
312 ; BE-NEXT: add sp, sp, #16
313 ; BE-NEXT: ret
332 ; BE-LABEL: load_v3i8_sext_to_3xi32:
333 ; BE: // %bb.0:
334 ; BE-NEXT: sub sp, sp, #16
335 ; BE-NEXT: .cfi_def_cfa_offset 16
336 ; BE-NEXT: ldrh w8, [x0]
337 ; BE-NEXT: strh w8, [sp, #12]
338 ; BE-NEXT: add x8, x0, #2
339 ; BE-NEXT: ldr s0, [sp, #12]
340 ; BE-NEXT: rev32 v0.8b, v0.8b
341 ; BE-NEXT: ushll v0.8h, v0.8b, #0
342 ; BE-NEXT: ld1 { v0.b }[4], [x8]
343 ; BE-NEXT: ushll v0.4s, v0.4h, #0
344 ; BE-NEXT: shl v0.4s, v0.4s, #24
345 ; BE-NEXT: sshr v0.4s, v0.4s, #24
346 ; BE-NEXT: rev64 v0.4s, v0.4s
347 ; BE-NEXT: ext v0.16b, v0.16b, v0.16b, #8
348 ; BE-NEXT: add sp, sp, #16
349 ; BE-NEXT: ret
368 ; BE-LABEL: store_trunc_from_64bits:
369 ; BE: // %bb.0: // %entry
370 ; BE-NEXT: sub sp, sp, #16
371 ; BE-NEXT: .cfi_def_cfa_offset 16
372 ; BE-NEXT: ldr s0, [x0]
373 ; BE-NEXT: ldrh w8, [x0, #4]
374 ; BE-NEXT: rev32 v0.4h, v0.4h
375 ; BE-NEXT: mov v0.h[2], w8
376 ; BE-NEXT: uzp1 v0.8b, v0.8b, v0.8b
377 ; BE-NEXT: rev32 v0.16b, v0.16b
378 ; BE-NEXT: str s0, [sp, #12]
379 ; BE-NEXT: ldrh w9, [sp, #12]
380 ; BE-NEXT: strb w8, [x1, #2]
381 ; BE-NEXT: strh w9, [x1]
382 ; BE-NEXT: add sp, sp, #16
383 ; BE-NEXT: ret
410 ; BE-LABEL: store_trunc_add_from_64bits:
411 ; BE: // %bb.0: // %entry
412 ; BE-NEXT: sub sp, sp, #16
413 ; BE-NEXT: .cfi_def_cfa_offset 16
414 ; BE-NEXT: ldr s0, [x0]
415 ; BE-NEXT: add x8, x0, #4
416 ; BE-NEXT: rev32 v0.4h, v0.4h
417 ; BE-NEXT: ld1 { v0.h }[2], [x8]
418 ; BE-NEXT: adrp x8, .LCPI11_0
419 ; BE-NEXT: add x8, x8, :lo12:.LCPI11_0
420 ; BE-NEXT: ld1 { v1.4h }, [x8]
421 ; BE-NEXT: add v0.4h, v0.4h, v1.4h
422 ; BE-NEXT: uzp1 v1.8b, v0.8b, v0.8b
423 ; BE-NEXT: umov w8, v0.h[2]
424 ; BE-NEXT: rev32 v1.16b, v1.16b
425 ; BE-NEXT: str s1, [sp, #12]
426 ; BE-NEXT: ldrh w9, [sp, #12]
427 ; BE-NEXT: strb w8, [x1, #2]
428 ; BE-NEXT: strh w9, [x1]
429 ; BE-NEXT: add sp, sp, #16
430 ; BE-NEXT: ret
453 ; BE-LABEL: load_ext_to_64bits:
454 ; BE: // %bb.0: // %entry
455 ; BE-NEXT: sub sp, sp, #16
456 ; BE-NEXT: .cfi_def_cfa_offset 16
457 ; BE-NEXT: ldrh w8, [x0]
458 ; BE-NEXT: strh w8, [sp, #12]
459 ; BE-NEXT: add x8, x0, #2
460 ; BE-NEXT: ldr s0, [sp, #12]
461 ; BE-NEXT: rev32 v0.8b, v0.8b
462 ; BE-NEXT: ushll v0.8h, v0.8b, #0
463 ; BE-NEXT: ld1 { v0.b }[4], [x8]
464 ; BE-NEXT: add x8, x1, #4
465 ; BE-NEXT: bic v0.4h, #255, lsl #8
466 ; BE-NEXT: rev32 v1.8h, v0.8h
467 ; BE-NEXT: st1 { v0.h }[2], [x8]
468 ; BE-NEXT: str s1, [x1]
469 ; BE-NEXT: add sp, sp, #16
470 ; BE-NEXT: ret
489 ; BE-LABEL: load_ext_to_64bits_default_align:
490 ; BE: // %bb.0: // %entry
491 ; BE-NEXT: ldr s0, [x0]
492 ; BE-NEXT: add x8, x1, #4
493 ; BE-NEXT: rev32 v0.8b, v0.8b
494 ; BE-NEXT: zip1 v0.8b, v0.8b, v0.8b
495 ; BE-NEXT: bic v0.4h, #255, lsl #8
496 ; BE-NEXT: rev32 v1.8h, v0.8h
497 ; BE-NEXT: st1 { v0.h }[2], [x8]
498 ; BE-NEXT: str s1, [x1]
499 ; BE-NEXT: ret
518 ; BE-LABEL: load_ext_to_64bits_align_4:
519 ; BE: // %bb.0: // %entry
520 ; BE-NEXT: ldr s0, [x0]
521 ; BE-NEXT: add x8, x1, #4
522 ; BE-NEXT: rev32 v0.8b, v0.8b
523 ; BE-NEXT: zip1 v0.8b, v0.8b, v0.8b
524 ; BE-NEXT: bic v0.4h, #255, lsl #8
525 ; BE-NEXT: rev32 v1.8h, v0.8h
526 ; BE-NEXT: st1 { v0.h }[2], [x8]
527 ; BE-NEXT: str s1, [x1]
528 ; BE-NEXT: ret
556 ; BE-LABEL: load_ext_add_to_64bits:
557 ; BE: // %bb.0: // %entry
558 ; BE-NEXT: sub sp, sp, #16
559 ; BE-NEXT: .cfi_def_cfa_offset 16
560 ; BE-NEXT: ldrh w8, [x0]
561 ; BE-NEXT: strh w8, [sp, #12]
562 ; BE-NEXT: add x8, x0, #2
563 ; BE-NEXT: ldr s0, [sp, #12]
564 ; BE-NEXT: rev32 v0.8b, v0.8b
565 ; BE-NEXT: ushll v0.8h, v0.8b, #0
566 ; BE-NEXT: ld1 { v0.b }[4], [x8]
567 ; BE-NEXT: adrp x8, .LCPI15_0
568 ; BE-NEXT: add x8, x8, :lo12:.LCPI15_0
569 ; BE-NEXT: ld1 { v1.4h }, [x8]
570 ; BE-NEXT: add x8, x1, #4
571 ; BE-NEXT: bic v0.4h, #255, lsl #8
572 ; BE-NEXT: add v0.4h, v0.4h, v1.4h
573 ; BE-NEXT: rev32 v1.8h, v0.8h
574 ; BE-NEXT: st1 { v0.h }[2], [x8]
575 ; BE-NEXT: str s1, [x1]
576 ; BE-NEXT: add sp, sp, #16
577 ; BE-NEXT: ret
598 ; BE-LABEL: shift_trunc_store:
599 ; BE: // %bb.0:
600 ; BE-NEXT: sub sp, sp, #16
601 ; BE-NEXT: .cfi_def_cfa_offset 16
602 ; BE-NEXT: ld1 { v0.4s }, [x0]
603 ; BE-NEXT: shrn v0.4h, v0.4s, #16
604 ; BE-NEXT: uzp1 v1.8b, v0.8b, v0.8b
605 ; BE-NEXT: umov w8, v0.h[2]
606 ; BE-NEXT: rev32 v1.16b, v1.16b
607 ; BE-NEXT: str s1, [sp, #12]
608 ; BE-NEXT: ldrh w9, [sp, #12]
609 ; BE-NEXT: strb w8, [x1, #2]
610 ; BE-NEXT: strh w9, [x1]
611 ; BE-NEXT: add sp, sp, #16
612 ; BE-NEXT: ret
632 ; BE-LABEL: shift_trunc_store_default_align:
633 ; BE: // %bb.0:
634 ; BE-NEXT: sub sp, sp, #16
635 ; BE-NEXT: .cfi_def_cfa_offset 16
636 ; BE-NEXT: ld1 { v0.4s }, [x0]
637 ; BE-NEXT: shrn v0.4h, v0.4s, #16
638 ; BE-NEXT: uzp1 v1.8b, v0.8b, v0.8b
639 ; BE-NEXT: umov w8, v0.h[2]
640 ; BE-NEXT: rev32 v1.16b, v1.16b
641 ; BE-NEXT: str s1, [sp, #12]
642 ; BE-NEXT: ldrh w9, [sp, #12]
643 ; BE-NEXT: strb w8, [x1, #2]
644 ; BE-NEXT: strh w9, [x1]
645 ; BE-NEXT: add sp, sp, #16
646 ; BE-NEXT: ret
666 ; BE-LABEL: shift_trunc_store_align_4:
667 ; BE: // %bb.0:
668 ; BE-NEXT: sub sp, sp, #16
669 ; BE-NEXT: .cfi_def_cfa_offset 16
670 ; BE-NEXT: ld1 { v0.4s }, [x0]
671 ; BE-NEXT: shrn v0.4h, v0.4s, #16
672 ; BE-NEXT: uzp1 v1.8b, v0.8b, v0.8b
673 ; BE-NEXT: umov w8, v0.h[2]
674 ; BE-NEXT: rev32 v1.16b, v1.16b
675 ; BE-NEXT: str s1, [sp, #12]
676 ; BE-NEXT: ldrh w9, [sp, #12]
677 ; BE-NEXT: strb w8, [x1, #2]
678 ; BE-NEXT: strh w9, [x1]
679 ; BE-NEXT: add sp, sp, #16
680 ; BE-NEXT: ret
701 ; BE-LABEL: shift_trunc_store_const_offset_1:
702 ; BE: // %bb.0:
703 ; BE-NEXT: sub sp, sp, #16
704 ; BE-NEXT: .cfi_def_cfa_offset 16
705 ; BE-NEXT: ld1 { v0.4s }, [x0]
706 ; BE-NEXT: shrn v0.4h, v0.4s, #16
707 ; BE-NEXT: uzp1 v1.8b, v0.8b, v0.8b
708 ; BE-NEXT: umov w8, v0.h[2]
709 ; BE-NEXT: rev32 v1.16b, v1.16b
710 ; BE-NEXT: str s1, [sp, #12]
711 ; BE-NEXT: ldrh w9, [sp, #12]
712 ; BE-NEXT: strb w8, [x1, #3]
713 ; BE-NEXT: sturh w9, [x1, #1]
714 ; BE-NEXT: add sp, sp, #16
715 ; BE-NEXT: ret
737 ; BE-LABEL: shift_trunc_store_const_offset_3:
738 ; BE: // %bb.0:
739 ; BE-NEXT: sub sp, sp, #16
740 ; BE-NEXT: .cfi_def_cfa_offset 16
741 ; BE-NEXT: ld1 { v0.4s }, [x0]
742 ; BE-NEXT: shrn v0.4h, v0.4s, #16
743 ; BE-NEXT: uzp1 v1.8b, v0.8b, v0.8b
744 ; BE-NEXT: umov w8, v0.h[2]
745 ; BE-NEXT: rev32 v1.16b, v1.16b
746 ; BE-NEXT: str s1, [sp, #12]
747 ; BE-NEXT: ldrh w9, [sp, #12]
748 ; BE-NEXT: strb w8, [x1, #5]
749 ; BE-NEXT: sturh w9, [x1, #3]
750 ; BE-NEXT: add sp, sp, #16
751 ; BE-NEXT: ret
776 ; BE-LABEL: shift_trunc_volatile_store:
777 ; BE: // %bb.0:
778 ; BE-NEXT: sub sp, sp, #16
779 ; BE-NEXT: .cfi_def_cfa_offset 16
780 ; BE-NEXT: ld1 { v0.4s }, [x0]
781 ; BE-NEXT: shrn v0.4h, v0.4s, #16
782 ; BE-NEXT: uzp1 v1.8b, v0.8b, v0.8b
783 ; BE-NEXT: umov w8, v0.h[2]
784 ; BE-NEXT: rev32 v1.16b, v1.16b
785 ; BE-NEXT: str s1, [sp, #12]
786 ; BE-NEXT: ldrh w9, [sp, #12]
787 ; BE-NEXT: strb w8, [x1, #2]
788 ; BE-NEXT: strh w9, [x1]
789 ; BE-NEXT: add sp, sp, #16
790 ; BE-NEXT: ret
819 ; BE-LABEL: load_v3i8_zext_to_3xi32_add_trunc_store:
820 ; BE: // %bb.0:
821 ; BE-NEXT: sub sp, sp, #16
822 ; BE-NEXT: .cfi_def_cfa_offset 16
823 ; BE-NEXT: ldrh w9, [x0]
824 ; BE-NEXT: adrp x8, .LCPI22_0
825 ; BE-NEXT: add x8, x8, :lo12:.LCPI22_0
826 ; BE-NEXT: ld1 { v1.4h }, [x8]
827 ; BE-NEXT: strh w9, [sp, #12]
828 ; BE-NEXT: add x9, x0, #2
829 ; BE-NEXT: ldr s0, [sp, #12]
830 ; BE-NEXT: rev32 v0.8b, v0.8b
831 ; BE-NEXT: ushll v0.8h, v0.8b, #0
832 ; BE-NEXT: ld1 { v0.b }[4], [x9]
833 ; BE-NEXT: add v0.4h, v0.4h, v1.4h
834 ; BE-NEXT: uzp1 v1.8b, v0.8b, v0.8b
835 ; BE-NEXT: umov w8, v0.h[2]
836 ; BE-NEXT: rev32 v1.16b, v1.16b
837 ; BE-NEXT: str s1, [sp, #8]
838 ; BE-NEXT: ldrh w9, [sp, #8]
839 ; BE-NEXT: strb w8, [x0, #2]
840 ; BE-NEXT: strh w9, [x0]
841 ; BE-NEXT: add sp, sp, #16
842 ; BE-NEXT: ret
872 ; BE-LABEL: load_v3i8_sext_to_3xi32_add_trunc_store:
873 ; BE: // %bb.0:
874 ; BE-NEXT: sub sp, sp, #16
875 ; BE-NEXT: .cfi_def_cfa_offset 16
876 ; BE-NEXT: ldrh w9, [x0]
877 ; BE-NEXT: adrp x8, .LCPI23_0
878 ; BE-NEXT: add x8, x8, :lo12:.LCPI23_0
879 ; BE-NEXT: ld1 { v1.4h }, [x8]
880 ; BE-NEXT: strh w9, [sp, #12]
881 ; BE-NEXT: add x9, x0, #2
882 ; BE-NEXT: ldr s0, [sp, #12]
883 ; BE-NEXT: rev32 v0.8b, v0.8b
884 ; BE-NEXT: ushll v0.8h, v0.8b, #0
885 ; BE-NEXT: ld1 { v0.b }[4], [x9]
886 ; BE-NEXT: add v0.4h, v0.4h, v1.4h
887 ; BE-NEXT: uzp1 v1.8b, v0.8b, v0.8b
888 ; BE-NEXT: umov w8, v0.h[2]
889 ; BE-NEXT: rev32 v1.16b, v1.16b
890 ; BE-NEXT: str s1, [sp, #8]
891 ; BE-NEXT: ldrh w9, [sp, #8]
892 ; BE-NEXT: strb w8, [x0, #2]
893 ; BE-NEXT: strh w9, [x0]
894 ; BE-NEXT: add sp, sp, #16
895 ; BE-NEXT: ret