Lines Matching full:be
7 ; RUN: -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK-BE,CHECK-BE-OPT
9 ; RUN: -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK-BE,CHECK-BE-O0
20 ; CHECK-BE-LABEL: shuffle_vector_halfword_0_8:
21 ; CHECK-BE: # %bb.0: # %entry
22 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 10
23 ; CHECK-BE-NEXT: vinserth 2, 3, 0
24 ; CHECK-BE-NEXT: blr
37 ; CHECK-BE-LABEL: shuffle_vector_halfword_1_15:
38 ; CHECK-BE: # %bb.0: # %entry
39 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 8
40 ; CHECK-BE-NEXT: vinserth 2, 3, 2
41 ; CHECK-BE-NEXT: blr
54 ; CHECK-BE-LABEL: shuffle_vector_halfword_2_9:
55 ; CHECK-BE: # %bb.0: # %entry
56 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 12
57 ; CHECK-BE-NEXT: vinserth 2, 3, 4
58 ; CHECK-BE-NEXT: blr
71 ; CHECK-BE-LABEL: shuffle_vector_halfword_3_13:
72 ; CHECK-BE: # %bb.0: # %entry
73 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 4
74 ; CHECK-BE-NEXT: vinserth 2, 3, 6
75 ; CHECK-BE-NEXT: blr
88 ; CHECK-BE-LABEL: shuffle_vector_halfword_4_10:
89 ; CHECK-BE: # %bb.0: # %entry
90 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 14
91 ; CHECK-BE-NEXT: vinserth 2, 3, 8
92 ; CHECK-BE-NEXT: blr
105 ; CHECK-BE-LABEL: shuffle_vector_halfword_5_14:
106 ; CHECK-BE: # %bb.0: # %entry
107 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 6
108 ; CHECK-BE-NEXT: vinserth 2, 3, 10
109 ; CHECK-BE-NEXT: blr
122 ; CHECK-BE-LABEL: shuffle_vector_halfword_6_11:
123 ; CHECK-BE: # %bb.0: # %entry
124 ; CHECK-BE-NEXT: vinserth 2, 3, 12
125 ; CHECK-BE-NEXT: blr
137 ; CHECK-BE-LABEL: shuffle_vector_halfword_7_12:
138 ; CHECK-BE: # %bb.0: # %entry
139 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 2
140 ; CHECK-BE-NEXT: vinserth 2, 3, 14
141 ; CHECK-BE-NEXT: blr
164 ; CHECK-BE-OPT-LABEL: shuffle_vector_halfword_8_1:
165 ; CHECK-BE-OPT: # %bb.0: # %entry
166 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 12
167 ; CHECK-BE-OPT-NEXT: vinserth 3, 2, 0
168 ; CHECK-BE-OPT-NEXT: vmr 2, 3
169 ; CHECK-BE-OPT-NEXT: blr
171 ; CHECK-BE-O0-LABEL: shuffle_vector_halfword_8_1:
172 ; CHECK-BE-O0: # %bb.0: # %entry
173 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
174 ; CHECK-BE-O0-NEXT: vmr 3, 2
175 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
176 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 12
177 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 0
178 ; CHECK-BE-O0-NEXT: blr
203 ; CHECK-BE-OPT-LABEL: shuffle_vector_halfword_9_7:
204 ; CHECK-BE-OPT: # %bb.0: # %entry
205 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 8
206 ; CHECK-BE-OPT-NEXT: vinserth 3, 2, 2
207 ; CHECK-BE-OPT-NEXT: vmr 2, 3
208 ; CHECK-BE-OPT-NEXT: blr
210 ; CHECK-BE-O0-LABEL: shuffle_vector_halfword_9_7:
211 ; CHECK-BE-O0: # %bb.0: # %entry
212 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
213 ; CHECK-BE-O0-NEXT: vmr 3, 2
214 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
215 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 8
216 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 2
217 ; CHECK-BE-O0-NEXT: blr
238 ; CHECK-BE-OPT-LABEL: shuffle_vector_halfword_10_4:
239 ; CHECK-BE-OPT: # %bb.0: # %entry
240 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 2
241 ; CHECK-BE-OPT-NEXT: vinserth 3, 2, 4
242 ; CHECK-BE-OPT-NEXT: vmr 2, 3
243 ; CHECK-BE-OPT-NEXT: blr
245 ; CHECK-BE-O0-LABEL: shuffle_vector_halfword_10_4:
246 ; CHECK-BE-O0: # %bb.0: # %entry
247 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
248 ; CHECK-BE-O0-NEXT: vmr 3, 2
249 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
250 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 2
251 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 4
252 ; CHECK-BE-O0-NEXT: blr
275 ; CHECK-BE-OPT-LABEL: shuffle_vector_halfword_11_2:
276 ; CHECK-BE-OPT: # %bb.0: # %entry
277 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 14
278 ; CHECK-BE-OPT-NEXT: vinserth 3, 2, 6
279 ; CHECK-BE-OPT-NEXT: vmr 2, 3
280 ; CHECK-BE-OPT-NEXT: blr
282 ; CHECK-BE-O0-LABEL: shuffle_vector_halfword_11_2:
283 ; CHECK-BE-O0: # %bb.0: # %entry
284 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
285 ; CHECK-BE-O0-NEXT: vmr 3, 2
286 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
287 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 14
288 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 6
289 ; CHECK-BE-O0-NEXT: blr
312 ; CHECK-BE-OPT-LABEL: shuffle_vector_halfword_12_6:
313 ; CHECK-BE-OPT: # %bb.0: # %entry
314 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 6
315 ; CHECK-BE-OPT-NEXT: vinserth 3, 2, 8
316 ; CHECK-BE-OPT-NEXT: vmr 2, 3
317 ; CHECK-BE-OPT-NEXT: blr
319 ; CHECK-BE-O0-LABEL: shuffle_vector_halfword_12_6:
320 ; CHECK-BE-O0: # %bb.0: # %entry
321 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
322 ; CHECK-BE-O0-NEXT: vmr 3, 2
323 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
324 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 6
325 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 8
326 ; CHECK-BE-O0-NEXT: blr
349 ; CHECK-BE-OPT-LABEL: shuffle_vector_halfword_13_3:
350 ; CHECK-BE-OPT: # %bb.0: # %entry
351 ; CHECK-BE-OPT-NEXT: vinserth 3, 2, 10
352 ; CHECK-BE-OPT-NEXT: vmr 2, 3
353 ; CHECK-BE-OPT-NEXT: blr
355 ; CHECK-BE-O0-LABEL: shuffle_vector_halfword_13_3:
356 ; CHECK-BE-O0: # %bb.0: # %entry
357 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
358 ; CHECK-BE-O0-NEXT: vmr 3, 2
359 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
360 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 10
361 ; CHECK-BE-O0-NEXT: blr
384 ; CHECK-BE-OPT-LABEL: shuffle_vector_halfword_14_5:
385 ; CHECK-BE-OPT: # %bb.0: # %entry
386 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 4
387 ; CHECK-BE-OPT-NEXT: vinserth 3, 2, 12
388 ; CHECK-BE-OPT-NEXT: vmr 2, 3
389 ; CHECK-BE-OPT-NEXT: blr
391 ; CHECK-BE-O0-LABEL: shuffle_vector_halfword_14_5:
392 ; CHECK-BE-O0: # %bb.0: # %entry
393 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
394 ; CHECK-BE-O0-NEXT: vmr 3, 2
395 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
396 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 4
397 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 12
398 ; CHECK-BE-O0-NEXT: blr
421 ; CHECK-BE-OPT-LABEL: shuffle_vector_halfword_15_0:
422 ; CHECK-BE-OPT: # %bb.0: # %entry
423 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 10
424 ; CHECK-BE-OPT-NEXT: vinserth 3, 2, 14
425 ; CHECK-BE-OPT-NEXT: vmr 2, 3
426 ; CHECK-BE-OPT-NEXT: blr
428 ; CHECK-BE-O0-LABEL: shuffle_vector_halfword_15_0:
429 ; CHECK-BE-O0: # %bb.0: # %entry
430 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
431 ; CHECK-BE-O0-NEXT: vmr 3, 2
432 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
433 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 10
434 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 14
435 ; CHECK-BE-O0-NEXT: blr
442 ; shufflevector. If halfword element 3 in BE mode(or 4 in LE mode) is the one
450 ; CHECK-BE-LABEL: shuffle_vector_halfword_0_4:
451 ; CHECK-BE: # %bb.0: # %entry
452 ; CHECK-BE-NEXT: addis 3, 2, .LCPI16_0@toc@ha
453 ; CHECK-BE-NEXT: addi 3, 3, .LCPI16_0@toc@l
454 ; CHECK-BE-NEXT: lxv 0, 0(3)
455 ; CHECK-BE-NEXT: xxperm 34, 34, 0
456 ; CHECK-BE-NEXT: blr
471 ; CHECK-BE-LABEL: shuffle_vector_halfword_1_3:
472 ; CHECK-BE: # %bb.0: # %entry
473 ; CHECK-BE-NEXT: vinserth 2, 2, 2
474 ; CHECK-BE-NEXT: blr
489 ; CHECK-BE-LABEL: shuffle_vector_halfword_2_3:
490 ; CHECK-BE: # %bb.0: # %entry
491 ; CHECK-BE-NEXT: vinserth 2, 2, 4
492 ; CHECK-BE-NEXT: blr
504 ; CHECK-BE-LABEL: shuffle_vector_halfword_3_4:
505 ; CHECK-BE: # %bb.0: # %entry
506 ; CHECK-BE-NEXT: addis 3, 2, .LCPI19_0@toc@ha
507 ; CHECK-BE-NEXT: addi 3, 3, .LCPI19_0@toc@l
508 ; CHECK-BE-NEXT: lxv 0, 0(3)
509 ; CHECK-BE-NEXT: xxperm 34, 34, 0
510 ; CHECK-BE-NEXT: blr
525 ; CHECK-BE-LABEL: shuffle_vector_halfword_4_3:
526 ; CHECK-BE: # %bb.0: # %entry
527 ; CHECK-BE-NEXT: vinserth 2, 2, 8
528 ; CHECK-BE-NEXT: blr
543 ; CHECK-BE-LABEL: shuffle_vector_halfword_5_3:
544 ; CHECK-BE: # %bb.0: # %entry
545 ; CHECK-BE-NEXT: vinserth 2, 2, 10
546 ; CHECK-BE-NEXT: blr
558 ; CHECK-BE-LABEL: shuffle_vector_halfword_6_4:
559 ; CHECK-BE: # %bb.0: # %entry
560 ; CHECK-BE-NEXT: addis 3, 2, .LCPI22_0@toc@ha
561 ; CHECK-BE-NEXT: addi 3, 3, .LCPI22_0@toc@l
562 ; CHECK-BE-NEXT: lxv 0, 0(3)
563 ; CHECK-BE-NEXT: xxperm 34, 34, 0
564 ; CHECK-BE-NEXT: blr
576 ; CHECK-BE-LABEL: shuffle_vector_halfword_7_4:
577 ; CHECK-BE: # %bb.0: # %entry
578 ; CHECK-BE-NEXT: addis 3, 2, .LCPI23_0@toc@ha
579 ; CHECK-BE-NEXT: addi 3, 3, .LCPI23_0@toc@l
580 ; CHECK-BE-NEXT: lxv 0, 0(3)
581 ; CHECK-BE-NEXT: xxperm 34, 34, 0
582 ; CHECK-BE-NEXT: blr
597 ; CHECK-BE-LABEL: shuffle_vector_byte_0_16:
598 ; CHECK-BE: # %bb.0: # %entry
599 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 9
600 ; CHECK-BE-NEXT: vinsertb 2, 3, 0
601 ; CHECK-BE-NEXT: blr
614 ; CHECK-BE-LABEL: shuffle_vector_byte_1_25:
615 ; CHECK-BE: # %bb.0: # %entry
616 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 2
617 ; CHECK-BE-NEXT: vinsertb 2, 3, 1
618 ; CHECK-BE-NEXT: blr
631 ; CHECK-BE-LABEL: shuffle_vector_byte_2_18:
632 ; CHECK-BE: # %bb.0: # %entry
633 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 11
634 ; CHECK-BE-NEXT: vinsertb 2, 3, 2
635 ; CHECK-BE-NEXT: blr
648 ; CHECK-BE-LABEL: shuffle_vector_byte_3_27:
649 ; CHECK-BE: # %bb.0: # %entry
650 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 4
651 ; CHECK-BE-NEXT: vinsertb 2, 3, 3
652 ; CHECK-BE-NEXT: blr
665 ; CHECK-BE-LABEL: shuffle_vector_byte_4_20:
666 ; CHECK-BE: # %bb.0: # %entry
667 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 13
668 ; CHECK-BE-NEXT: vinsertb 2, 3, 4
669 ; CHECK-BE-NEXT: blr
682 ; CHECK-BE-LABEL: shuffle_vector_byte_5_29:
683 ; CHECK-BE: # %bb.0: # %entry
684 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 6
685 ; CHECK-BE-NEXT: vinsertb 2, 3, 5
686 ; CHECK-BE-NEXT: blr
699 ; CHECK-BE-LABEL: shuffle_vector_byte_6_22:
700 ; CHECK-BE: # %bb.0: # %entry
701 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 15
702 ; CHECK-BE-NEXT: vinsertb 2, 3, 6
703 ; CHECK-BE-NEXT: blr
716 ; CHECK-BE-LABEL: shuffle_vector_byte_7_31:
717 ; CHECK-BE: # %bb.0: # %entry
718 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 8
719 ; CHECK-BE-NEXT: vinsertb 2, 3, 7
720 ; CHECK-BE-NEXT: blr
732 ; CHECK-BE-LABEL: shuffle_vector_byte_8_24:
733 ; CHECK-BE: # %bb.0: # %entry
734 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 1
735 ; CHECK-BE-NEXT: vinsertb 2, 3, 8
736 ; CHECK-BE-NEXT: blr
749 ; CHECK-BE-LABEL: shuffle_vector_byte_9_17:
750 ; CHECK-BE: # %bb.0: # %entry
751 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 10
752 ; CHECK-BE-NEXT: vinsertb 2, 3, 9
753 ; CHECK-BE-NEXT: blr
766 ; CHECK-BE-LABEL: shuffle_vector_byte_10_26:
767 ; CHECK-BE: # %bb.0: # %entry
768 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 3
769 ; CHECK-BE-NEXT: vinsertb 2, 3, 10
770 ; CHECK-BE-NEXT: blr
783 ; CHECK-BE-LABEL: shuffle_vector_byte_11_19:
784 ; CHECK-BE: # %bb.0: # %entry
785 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 12
786 ; CHECK-BE-NEXT: vinsertb 2, 3, 11
787 ; CHECK-BE-NEXT: blr
800 ; CHECK-BE-LABEL: shuffle_vector_byte_12_28:
801 ; CHECK-BE: # %bb.0: # %entry
802 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 5
803 ; CHECK-BE-NEXT: vinsertb 2, 3, 12
804 ; CHECK-BE-NEXT: blr
817 ; CHECK-BE-LABEL: shuffle_vector_byte_13_21:
818 ; CHECK-BE: # %bb.0: # %entry
819 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 14
820 ; CHECK-BE-NEXT: vinsertb 2, 3, 13
821 ; CHECK-BE-NEXT: blr
834 ; CHECK-BE-LABEL: shuffle_vector_byte_14_30:
835 ; CHECK-BE: # %bb.0: # %entry
836 ; CHECK-BE-NEXT: vsldoi 3, 3, 3, 7
837 ; CHECK-BE-NEXT: vinsertb 2, 3, 14
838 ; CHECK-BE-NEXT: blr
851 ; CHECK-BE-LABEL: shuffle_vector_byte_15_23:
852 ; CHECK-BE: # %bb.0: # %entry
853 ; CHECK-BE-NEXT: vinsertb 2, 3, 15
854 ; CHECK-BE-NEXT: blr
877 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_16_8:
878 ; CHECK-BE-OPT: # %bb.0: # %entry
879 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 1
880 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 0
881 ; CHECK-BE-OPT-NEXT: vmr 2, 3
882 ; CHECK-BE-OPT-NEXT: blr
884 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_16_8:
885 ; CHECK-BE-O0: # %bb.0: # %entry
886 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
887 ; CHECK-BE-O0-NEXT: vmr 3, 2
888 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
889 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 1
890 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 0
891 ; CHECK-BE-O0-NEXT: blr
914 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_17_1:
915 ; CHECK-BE-OPT: # %bb.0: # %entry
916 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 10
917 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 1
918 ; CHECK-BE-OPT-NEXT: vmr 2, 3
919 ; CHECK-BE-OPT-NEXT: blr
921 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_17_1:
922 ; CHECK-BE-O0: # %bb.0: # %entry
923 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
924 ; CHECK-BE-O0-NEXT: vmr 3, 2
925 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
926 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 10
927 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 1
928 ; CHECK-BE-O0-NEXT: blr
951 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_18_10:
952 ; CHECK-BE-OPT: # %bb.0: # %entry
953 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 3
954 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 2
955 ; CHECK-BE-OPT-NEXT: vmr 2, 3
956 ; CHECK-BE-OPT-NEXT: blr
958 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_18_10:
959 ; CHECK-BE-O0: # %bb.0: # %entry
960 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
961 ; CHECK-BE-O0-NEXT: vmr 3, 2
962 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
963 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 3
964 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 2
965 ; CHECK-BE-O0-NEXT: blr
988 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_19_3:
989 ; CHECK-BE-OPT: # %bb.0: # %entry
990 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 12
991 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 3
992 ; CHECK-BE-OPT-NEXT: vmr 2, 3
993 ; CHECK-BE-OPT-NEXT: blr
995 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_19_3:
996 ; CHECK-BE-O0: # %bb.0: # %entry
997 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
998 ; CHECK-BE-O0-NEXT: vmr 3, 2
999 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
1000 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 12
1001 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 3
1002 ; CHECK-BE-O0-NEXT: blr
1025 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_20_12:
1026 ; CHECK-BE-OPT: # %bb.0: # %entry
1027 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 5
1028 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 4
1029 ; CHECK-BE-OPT-NEXT: vmr 2, 3
1030 ; CHECK-BE-OPT-NEXT: blr
1032 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_20_12:
1033 ; CHECK-BE-O0: # %bb.0: # %entry
1034 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
1035 ; CHECK-BE-O0-NEXT: vmr 3, 2
1036 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
1037 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 5
1038 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 4
1039 ; CHECK-BE-O0-NEXT: blr
1062 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_21_5:
1063 ; CHECK-BE-OPT: # %bb.0: # %entry
1064 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 14
1065 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 5
1066 ; CHECK-BE-OPT-NEXT: vmr 2, 3
1067 ; CHECK-BE-OPT-NEXT: blr
1069 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_21_5:
1070 ; CHECK-BE-O0: # %bb.0: # %entry
1071 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
1072 ; CHECK-BE-O0-NEXT: vmr 3, 2
1073 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
1074 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 14
1075 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 5
1076 ; CHECK-BE-O0-NEXT: blr
1099 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_22_14:
1100 ; CHECK-BE-OPT: # %bb.0: # %entry
1101 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 7
1102 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 6
1103 ; CHECK-BE-OPT-NEXT: vmr 2, 3
1104 ; CHECK-BE-OPT-NEXT: blr
1106 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_22_14:
1107 ; CHECK-BE-O0: # %bb.0: # %entry
1108 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
1109 ; CHECK-BE-O0-NEXT: vmr 3, 2
1110 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
1111 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 7
1112 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 6
1113 ; CHECK-BE-O0-NEXT: blr
1136 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_23_7:
1137 ; CHECK-BE-OPT: # %bb.0: # %entry
1138 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 7
1139 ; CHECK-BE-OPT-NEXT: vmr 2, 3
1140 ; CHECK-BE-OPT-NEXT: blr
1142 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_23_7:
1143 ; CHECK-BE-O0: # %bb.0: # %entry
1144 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
1145 ; CHECK-BE-O0-NEXT: vmr 3, 2
1146 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
1147 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 7
1148 ; CHECK-BE-O0-NEXT: blr
1171 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_24_0:
1172 ; CHECK-BE-OPT: # %bb.0: # %entry
1173 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 9
1174 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 8
1175 ; CHECK-BE-OPT-NEXT: vmr 2, 3
1176 ; CHECK-BE-OPT-NEXT: blr
1178 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_24_0:
1179 ; CHECK-BE-O0: # %bb.0: # %entry
1180 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
1181 ; CHECK-BE-O0-NEXT: vmr 3, 2
1182 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
1183 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 9
1184 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 8
1185 ; CHECK-BE-O0-NEXT: blr
1208 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_25_9:
1209 ; CHECK-BE-OPT: # %bb.0: # %entry
1210 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 2
1211 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 9
1212 ; CHECK-BE-OPT-NEXT: vmr 2, 3
1213 ; CHECK-BE-OPT-NEXT: blr
1215 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_25_9:
1216 ; CHECK-BE-O0: # %bb.0: # %entry
1217 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
1218 ; CHECK-BE-O0-NEXT: vmr 3, 2
1219 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
1220 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 2
1221 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 9
1222 ; CHECK-BE-O0-NEXT: blr
1245 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_26_2:
1246 ; CHECK-BE-OPT: # %bb.0: # %entry
1247 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 11
1248 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 10
1249 ; CHECK-BE-OPT-NEXT: vmr 2, 3
1250 ; CHECK-BE-OPT-NEXT: blr
1252 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_26_2:
1253 ; CHECK-BE-O0: # %bb.0: # %entry
1254 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
1255 ; CHECK-BE-O0-NEXT: vmr 3, 2
1256 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
1257 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 11
1258 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 10
1259 ; CHECK-BE-O0-NEXT: blr
1282 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_27_11:
1283 ; CHECK-BE-OPT: # %bb.0: # %entry
1284 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 4
1285 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 11
1286 ; CHECK-BE-OPT-NEXT: vmr 2, 3
1287 ; CHECK-BE-OPT-NEXT: blr
1289 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_27_11:
1290 ; CHECK-BE-O0: # %bb.0: # %entry
1291 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
1292 ; CHECK-BE-O0-NEXT: vmr 3, 2
1293 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
1294 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 4
1295 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 11
1296 ; CHECK-BE-O0-NEXT: blr
1319 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_28_4:
1320 ; CHECK-BE-OPT: # %bb.0: # %entry
1321 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 13
1322 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 12
1323 ; CHECK-BE-OPT-NEXT: vmr 2, 3
1324 ; CHECK-BE-OPT-NEXT: blr
1326 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_28_4:
1327 ; CHECK-BE-O0: # %bb.0: # %entry
1328 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
1329 ; CHECK-BE-O0-NEXT: vmr 3, 2
1330 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
1331 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 13
1332 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 12
1333 ; CHECK-BE-O0-NEXT: blr
1356 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_29_13:
1357 ; CHECK-BE-OPT: # %bb.0: # %entry
1358 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 6
1359 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 13
1360 ; CHECK-BE-OPT-NEXT: vmr 2, 3
1361 ; CHECK-BE-OPT-NEXT: blr
1363 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_29_13:
1364 ; CHECK-BE-O0: # %bb.0: # %entry
1365 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
1366 ; CHECK-BE-O0-NEXT: vmr 3, 2
1367 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
1368 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 6
1369 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 13
1370 ; CHECK-BE-O0-NEXT: blr
1393 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_30_6:
1394 ; CHECK-BE-OPT: # %bb.0: # %entry
1395 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 15
1396 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 14
1397 ; CHECK-BE-OPT-NEXT: vmr 2, 3
1398 ; CHECK-BE-OPT-NEXT: blr
1400 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_30_6:
1401 ; CHECK-BE-O0: # %bb.0: # %entry
1402 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
1403 ; CHECK-BE-O0-NEXT: vmr 3, 2
1404 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
1405 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 15
1406 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 14
1407 ; CHECK-BE-O0-NEXT: blr
1430 ; CHECK-BE-OPT-LABEL: shuffle_vector_byte_31_15:
1431 ; CHECK-BE-OPT: # %bb.0: # %entry
1432 ; CHECK-BE-OPT-NEXT: vsldoi 2, 2, 2, 8
1433 ; CHECK-BE-OPT-NEXT: vinsertb 3, 2, 15
1434 ; CHECK-BE-OPT-NEXT: vmr 2, 3
1435 ; CHECK-BE-OPT-NEXT: blr
1437 ; CHECK-BE-O0-LABEL: shuffle_vector_byte_31_15:
1438 ; CHECK-BE-O0: # %bb.0: # %entry
1439 ; CHECK-BE-O0-NEXT: stxv 35, -16(1) # 16-byte Folded Spill
1440 ; CHECK-BE-O0-NEXT: vmr 3, 2
1441 ; CHECK-BE-O0-NEXT: lxv 34, -16(1) # 16-byte Folded Reload
1442 ; CHECK-BE-O0-NEXT: vsldoi 3, 3, 3, 8
1443 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 15
1444 ; CHECK-BE-O0-NEXT: blr
1451 ; shufflevector. If byte element 7 in BE mode(or 8 in LE mode) is the one
1462 ; CHECK-BE-LABEL: shuffle_vector_byte_0_7:
1463 ; CHECK-BE: # %bb.0: # %entry
1464 ; CHECK-BE-NEXT: vinsertb 2, 2, 0
1465 ; CHECK-BE-NEXT: blr
1477 ; CHECK-BE-LABEL: shuffle_vector_byte_1_8:
1478 ; CHECK-BE: # %bb.0: # %entry
1479 ; CHECK-BE-NEXT: addis 3, 2, .LCPI57_0@toc@ha
1480 ; CHECK-BE-NEXT: addi 3, 3, .LCPI57_0@toc@l
1481 ; CHECK-BE-NEXT: lxv 0, 0(3)
1482 ; CHECK-BE-NEXT: xxperm 34, 34, 0
1483 ; CHECK-BE-NEXT: blr
1495 ; CHECK-BE-LABEL: shuffle_vector_byte_2_8:
1496 ; CHECK-BE: # %bb.0: # %entry
1497 ; CHECK-BE-NEXT: addis 3, 2, .LCPI58_0@toc@ha
1498 ; CHECK-BE-NEXT: addi 3, 3, .LCPI58_0@toc@l
1499 ; CHECK-BE-NEXT: lxv 0, 0(3)
1500 ; CHECK-BE-NEXT: xxperm 34, 34, 0
1501 ; CHECK-BE-NEXT: blr
1516 ; CHECK-BE-LABEL: shuffle_vector_byte_3_7:
1517 ; CHECK-BE: # %bb.0: # %entry
1518 ; CHECK-BE-NEXT: vinsertb 2, 2, 3
1519 ; CHECK-BE-NEXT: blr
1534 ; CHECK-BE-LABEL: shuffle_vector_byte_4_7:
1535 ; CHECK-BE: # %bb.0: # %entry
1536 ; CHECK-BE-NEXT: vinsertb 2, 2, 4
1537 ; CHECK-BE-NEXT: blr
1549 ; CHECK-BE-LABEL: shuffle_vector_byte_5_8:
1550 ; CHECK-BE: # %bb.0: # %entry
1551 ; CHECK-BE-NEXT: addis 3, 2, .LCPI61_0@toc@ha
1552 ; CHECK-BE-NEXT: addi 3, 3, .LCPI61_0@toc@l
1553 ; CHECK-BE-NEXT: lxv 0, 0(3)
1554 ; CHECK-BE-NEXT: xxperm 34, 34, 0
1555 ; CHECK-BE-NEXT: blr
1567 ; CHECK-BE-LABEL: shuffle_vector_byte_6_8:
1568 ; CHECK-BE: # %bb.0: # %entry
1569 ; CHECK-BE-NEXT: addis 3, 2, .LCPI62_0@toc@ha
1570 ; CHECK-BE-NEXT: addi 3, 3, .LCPI62_0@toc@l
1571 ; CHECK-BE-NEXT: lxv 0, 0(3)
1572 ; CHECK-BE-NEXT: xxperm 34, 34, 0
1573 ; CHECK-BE-NEXT: blr
1585 ; CHECK-BE-LABEL: shuffle_vector_byte_7_8:
1586 ; CHECK-BE: # %bb.0: # %entry
1587 ; CHECK-BE-NEXT: addis 3, 2, .LCPI63_0@toc@ha
1588 ; CHECK-BE-NEXT: addi 3, 3, .LCPI63_0@toc@l
1589 ; CHECK-BE-NEXT: lxv 0, 0(3)
1590 ; CHECK-BE-NEXT: xxperm 34, 34, 0
1591 ; CHECK-BE-NEXT: blr
1606 ; CHECK-BE-LABEL: shuffle_vector_byte_8_7:
1607 ; CHECK-BE: # %bb.0: # %entry
1608 ; CHECK-BE-NEXT: vinsertb 2, 2, 8
1609 ; CHECK-BE-NEXT: blr
1624 ; CHECK-BE-LABEL: shuffle_vector_byte_9_7:
1625 ; CHECK-BE: # %bb.0: # %entry
1626 ; CHECK-BE-NEXT: vinsertb 2, 2, 9
1627 ; CHECK-BE-NEXT: blr
1642 ; CHECK-BE-LABEL: shuffle_vector_byte_10_7:
1643 ; CHECK-BE: # %bb.0: # %entry
1644 ; CHECK-BE-NEXT: vinsertb 2, 2, 10
1645 ; CHECK-BE-NEXT: blr
1657 ; CHECK-BE-LABEL: shuffle_vector_byte_11_8:
1658 ; CHECK-BE: # %bb.0: # %entry
1659 ; CHECK-BE-NEXT: addis 3, 2, .LCPI67_0@toc@ha
1660 ; CHECK-BE-NEXT: addi 3, 3, .LCPI67_0@toc@l
1661 ; CHECK-BE-NEXT: lxv 0, 0(3)
1662 ; CHECK-BE-NEXT: xxperm 34, 34, 0
1663 ; CHECK-BE-NEXT: blr
1675 ; CHECK-BE-LABEL: shuffle_vector_byte_12_8:
1676 ; CHECK-BE: # %bb.0: # %entry
1677 ; CHECK-BE-NEXT: addis 3, 2, .LCPI68_0@toc@ha
1678 ; CHECK-BE-NEXT: addi 3, 3, .LCPI68_0@toc@l
1679 ; CHECK-BE-NEXT: lxv 0, 0(3)
1680 ; CHECK-BE-NEXT: xxperm 34, 34, 0
1681 ; CHECK-BE-NEXT: blr
1696 ; CHECK-BE-LABEL: shuffle_vector_byte_13_7:
1697 ; CHECK-BE: # %bb.0: # %entry
1698 ; CHECK-BE-NEXT: vinsertb 2, 2, 13
1699 ; CHECK-BE-NEXT: blr
1714 ; CHECK-BE-LABEL: shuffle_vector_byte_14_7:
1715 ; CHECK-BE: # %bb.0: # %entry
1716 ; CHECK-BE-NEXT: vinsertb 2, 2, 14
1717 ; CHECK-BE-NEXT: blr
1729 ; CHECK-BE-LABEL: shuffle_vector_byte_15_8:
1730 ; CHECK-BE: # %bb.0: # %entry
1731 ; CHECK-BE-NEXT: addis 3, 2, .LCPI71_0@toc@ha
1732 ; CHECK-BE-NEXT: addi 3, 3, .LCPI71_0@toc@l
1733 ; CHECK-BE-NEXT: lxv 0, 0(3)
1734 ; CHECK-BE-NEXT: xxperm 34, 34, 0
1735 ; CHECK-BE-NEXT: blr
1742 ; should always be using the 'vinserth' instruction.
1758 ; CHECK-BE-OPT-LABEL: insert_halfword_0:
1759 ; CHECK-BE-OPT: # %bb.0: # %entry
1760 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
1761 ; CHECK-BE-OPT-NEXT: vinserth 2, 3, 0
1762 ; CHECK-BE-OPT-NEXT: blr
1764 ; CHECK-BE-O0-LABEL: insert_halfword_0:
1765 ; CHECK-BE-O0: # %bb.0: # %entry
1766 ; CHECK-BE-O0-NEXT: mr 3, 5
1767 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
1768 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
1769 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 0
1770 ; CHECK-BE-O0-NEXT: blr
1791 ; CHECK-BE-OPT-LABEL: insert_halfword_1:
1792 ; CHECK-BE-OPT: # %bb.0: # %entry
1793 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
1794 ; CHECK-BE-OPT-NEXT: vinserth 2, 3, 2
1795 ; CHECK-BE-OPT-NEXT: blr
1797 ; CHECK-BE-O0-LABEL: insert_halfword_1:
1798 ; CHECK-BE-O0: # %bb.0: # %entry
1799 ; CHECK-BE-O0-NEXT: mr 3, 5
1800 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
1801 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
1802 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 2
1803 ; CHECK-BE-O0-NEXT: blr
1824 ; CHECK-BE-OPT-LABEL: insert_halfword_2:
1825 ; CHECK-BE-OPT: # %bb.0: # %entry
1826 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
1827 ; CHECK-BE-OPT-NEXT: vinserth 2, 3, 4
1828 ; CHECK-BE-OPT-NEXT: blr
1830 ; CHECK-BE-O0-LABEL: insert_halfword_2:
1831 ; CHECK-BE-O0: # %bb.0: # %entry
1832 ; CHECK-BE-O0-NEXT: mr 3, 5
1833 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
1834 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
1835 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 4
1836 ; CHECK-BE-O0-NEXT: blr
1857 ; CHECK-BE-OPT-LABEL: insert_halfword_3:
1858 ; CHECK-BE-OPT: # %bb.0: # %entry
1859 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
1860 ; CHECK-BE-OPT-NEXT: vinserth 2, 3, 6
1861 ; CHECK-BE-OPT-NEXT: blr
1863 ; CHECK-BE-O0-LABEL: insert_halfword_3:
1864 ; CHECK-BE-O0: # %bb.0: # %entry
1865 ; CHECK-BE-O0-NEXT: mr 3, 5
1866 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
1867 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
1868 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 6
1869 ; CHECK-BE-O0-NEXT: blr
1890 ; CHECK-BE-OPT-LABEL: insert_halfword_4:
1891 ; CHECK-BE-OPT: # %bb.0: # %entry
1892 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
1893 ; CHECK-BE-OPT-NEXT: vinserth 2, 3, 8
1894 ; CHECK-BE-OPT-NEXT: blr
1896 ; CHECK-BE-O0-LABEL: insert_halfword_4:
1897 ; CHECK-BE-O0: # %bb.0: # %entry
1898 ; CHECK-BE-O0-NEXT: mr 3, 5
1899 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
1900 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
1901 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 8
1902 ; CHECK-BE-O0-NEXT: blr
1923 ; CHECK-BE-OPT-LABEL: insert_halfword_5:
1924 ; CHECK-BE-OPT: # %bb.0: # %entry
1925 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
1926 ; CHECK-BE-OPT-NEXT: vinserth 2, 3, 10
1927 ; CHECK-BE-OPT-NEXT: blr
1929 ; CHECK-BE-O0-LABEL: insert_halfword_5:
1930 ; CHECK-BE-O0: # %bb.0: # %entry
1931 ; CHECK-BE-O0-NEXT: mr 3, 5
1932 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
1933 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
1934 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 10
1935 ; CHECK-BE-O0-NEXT: blr
1956 ; CHECK-BE-OPT-LABEL: insert_halfword_6:
1957 ; CHECK-BE-OPT: # %bb.0: # %entry
1958 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
1959 ; CHECK-BE-OPT-NEXT: vinserth 2, 3, 12
1960 ; CHECK-BE-OPT-NEXT: blr
1962 ; CHECK-BE-O0-LABEL: insert_halfword_6:
1963 ; CHECK-BE-O0: # %bb.0: # %entry
1964 ; CHECK-BE-O0-NEXT: mr 3, 5
1965 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
1966 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
1967 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 12
1968 ; CHECK-BE-O0-NEXT: blr
1989 ; CHECK-BE-OPT-LABEL: insert_halfword_7:
1990 ; CHECK-BE-OPT: # %bb.0: # %entry
1991 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
1992 ; CHECK-BE-OPT-NEXT: vinserth 2, 3, 14
1993 ; CHECK-BE-OPT-NEXT: blr
1995 ; CHECK-BE-O0-LABEL: insert_halfword_7:
1996 ; CHECK-BE-O0: # %bb.0: # %entry
1997 ; CHECK-BE-O0-NEXT: mr 3, 5
1998 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
1999 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2000 ; CHECK-BE-O0-NEXT: vinserth 2, 3, 14
2001 ; CHECK-BE-O0-NEXT: blr
2008 ; should always be using the 'vinsertb' instruction.
2024 ; CHECK-BE-OPT-LABEL: insert_byte_0:
2025 ; CHECK-BE-OPT: # %bb.0: # %entry
2026 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2027 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 0
2028 ; CHECK-BE-OPT-NEXT: blr
2030 ; CHECK-BE-O0-LABEL: insert_byte_0:
2031 ; CHECK-BE-O0: # %bb.0: # %entry
2032 ; CHECK-BE-O0-NEXT: mr 3, 5
2033 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2034 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2035 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 0
2036 ; CHECK-BE-O0-NEXT: blr
2057 ; CHECK-BE-OPT-LABEL: insert_byte_1:
2058 ; CHECK-BE-OPT: # %bb.0: # %entry
2059 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2060 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 1
2061 ; CHECK-BE-OPT-NEXT: blr
2063 ; CHECK-BE-O0-LABEL: insert_byte_1:
2064 ; CHECK-BE-O0: # %bb.0: # %entry
2065 ; CHECK-BE-O0-NEXT: mr 3, 5
2066 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2067 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2068 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 1
2069 ; CHECK-BE-O0-NEXT: blr
2090 ; CHECK-BE-OPT-LABEL: insert_byte_2:
2091 ; CHECK-BE-OPT: # %bb.0: # %entry
2092 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2093 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 2
2094 ; CHECK-BE-OPT-NEXT: blr
2096 ; CHECK-BE-O0-LABEL: insert_byte_2:
2097 ; CHECK-BE-O0: # %bb.0: # %entry
2098 ; CHECK-BE-O0-NEXT: mr 3, 5
2099 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2100 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2101 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 2
2102 ; CHECK-BE-O0-NEXT: blr
2123 ; CHECK-BE-OPT-LABEL: insert_byte_3:
2124 ; CHECK-BE-OPT: # %bb.0: # %entry
2125 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2126 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 3
2127 ; CHECK-BE-OPT-NEXT: blr
2129 ; CHECK-BE-O0-LABEL: insert_byte_3:
2130 ; CHECK-BE-O0: # %bb.0: # %entry
2131 ; CHECK-BE-O0-NEXT: mr 3, 5
2132 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2133 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2134 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 3
2135 ; CHECK-BE-O0-NEXT: blr
2156 ; CHECK-BE-OPT-LABEL: insert_byte_4:
2157 ; CHECK-BE-OPT: # %bb.0: # %entry
2158 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2159 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 4
2160 ; CHECK-BE-OPT-NEXT: blr
2162 ; CHECK-BE-O0-LABEL: insert_byte_4:
2163 ; CHECK-BE-O0: # %bb.0: # %entry
2164 ; CHECK-BE-O0-NEXT: mr 3, 5
2165 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2166 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2167 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 4
2168 ; CHECK-BE-O0-NEXT: blr
2189 ; CHECK-BE-OPT-LABEL: insert_byte_5:
2190 ; CHECK-BE-OPT: # %bb.0: # %entry
2191 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2192 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 5
2193 ; CHECK-BE-OPT-NEXT: blr
2195 ; CHECK-BE-O0-LABEL: insert_byte_5:
2196 ; CHECK-BE-O0: # %bb.0: # %entry
2197 ; CHECK-BE-O0-NEXT: mr 3, 5
2198 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2199 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2200 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 5
2201 ; CHECK-BE-O0-NEXT: blr
2222 ; CHECK-BE-OPT-LABEL: insert_byte_6:
2223 ; CHECK-BE-OPT: # %bb.0: # %entry
2224 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2225 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 6
2226 ; CHECK-BE-OPT-NEXT: blr
2228 ; CHECK-BE-O0-LABEL: insert_byte_6:
2229 ; CHECK-BE-O0: # %bb.0: # %entry
2230 ; CHECK-BE-O0-NEXT: mr 3, 5
2231 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2232 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2233 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 6
2234 ; CHECK-BE-O0-NEXT: blr
2255 ; CHECK-BE-OPT-LABEL: insert_byte_7:
2256 ; CHECK-BE-OPT: # %bb.0: # %entry
2257 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2258 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 7
2259 ; CHECK-BE-OPT-NEXT: blr
2261 ; CHECK-BE-O0-LABEL: insert_byte_7:
2262 ; CHECK-BE-O0: # %bb.0: # %entry
2263 ; CHECK-BE-O0-NEXT: mr 3, 5
2264 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2265 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2266 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 7
2267 ; CHECK-BE-O0-NEXT: blr
2288 ; CHECK-BE-OPT-LABEL: insert_byte_8:
2289 ; CHECK-BE-OPT: # %bb.0: # %entry
2290 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2291 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 8
2292 ; CHECK-BE-OPT-NEXT: blr
2294 ; CHECK-BE-O0-LABEL: insert_byte_8:
2295 ; CHECK-BE-O0: # %bb.0: # %entry
2296 ; CHECK-BE-O0-NEXT: mr 3, 5
2297 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2298 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2299 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 8
2300 ; CHECK-BE-O0-NEXT: blr
2321 ; CHECK-BE-OPT-LABEL: insert_byte_9:
2322 ; CHECK-BE-OPT: # %bb.0: # %entry
2323 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2324 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 9
2325 ; CHECK-BE-OPT-NEXT: blr
2327 ; CHECK-BE-O0-LABEL: insert_byte_9:
2328 ; CHECK-BE-O0: # %bb.0: # %entry
2329 ; CHECK-BE-O0-NEXT: mr 3, 5
2330 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2331 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2332 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 9
2333 ; CHECK-BE-O0-NEXT: blr
2354 ; CHECK-BE-OPT-LABEL: insert_byte_10:
2355 ; CHECK-BE-OPT: # %bb.0: # %entry
2356 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2357 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 10
2358 ; CHECK-BE-OPT-NEXT: blr
2360 ; CHECK-BE-O0-LABEL: insert_byte_10:
2361 ; CHECK-BE-O0: # %bb.0: # %entry
2362 ; CHECK-BE-O0-NEXT: mr 3, 5
2363 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2364 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2365 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 10
2366 ; CHECK-BE-O0-NEXT: blr
2387 ; CHECK-BE-OPT-LABEL: insert_byte_11:
2388 ; CHECK-BE-OPT: # %bb.0: # %entry
2389 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2390 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 11
2391 ; CHECK-BE-OPT-NEXT: blr
2393 ; CHECK-BE-O0-LABEL: insert_byte_11:
2394 ; CHECK-BE-O0: # %bb.0: # %entry
2395 ; CHECK-BE-O0-NEXT: mr 3, 5
2396 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2397 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2398 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 11
2399 ; CHECK-BE-O0-NEXT: blr
2420 ; CHECK-BE-OPT-LABEL: insert_byte_12:
2421 ; CHECK-BE-OPT: # %bb.0: # %entry
2422 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2423 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 12
2424 ; CHECK-BE-OPT-NEXT: blr
2426 ; CHECK-BE-O0-LABEL: insert_byte_12:
2427 ; CHECK-BE-O0: # %bb.0: # %entry
2428 ; CHECK-BE-O0-NEXT: mr 3, 5
2429 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2430 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2431 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 12
2432 ; CHECK-BE-O0-NEXT: blr
2453 ; CHECK-BE-OPT-LABEL: insert_byte_13:
2454 ; CHECK-BE-OPT: # %bb.0: # %entry
2455 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2456 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 13
2457 ; CHECK-BE-OPT-NEXT: blr
2459 ; CHECK-BE-O0-LABEL: insert_byte_13:
2460 ; CHECK-BE-O0: # %bb.0: # %entry
2461 ; CHECK-BE-O0-NEXT: mr 3, 5
2462 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2463 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2464 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 13
2465 ; CHECK-BE-O0-NEXT: blr
2486 ; CHECK-BE-OPT-LABEL: insert_byte_14:
2487 ; CHECK-BE-OPT: # %bb.0: # %entry
2488 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2489 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 14
2490 ; CHECK-BE-OPT-NEXT: blr
2492 ; CHECK-BE-O0-LABEL: insert_byte_14:
2493 ; CHECK-BE-O0: # %bb.0: # %entry
2494 ; CHECK-BE-O0-NEXT: mr 3, 5
2495 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2496 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2497 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 14
2498 ; CHECK-BE-O0-NEXT: blr
2519 ; CHECK-BE-OPT-LABEL: insert_byte_15:
2520 ; CHECK-BE-OPT: # %bb.0: # %entry
2521 ; CHECK-BE-OPT-NEXT: mtvsrwz 35, 5
2522 ; CHECK-BE-OPT-NEXT: vinsertb 2, 3, 15
2523 ; CHECK-BE-OPT-NEXT: blr
2525 ; CHECK-BE-O0-LABEL: insert_byte_15:
2526 ; CHECK-BE-O0: # %bb.0: # %entry
2527 ; CHECK-BE-O0-NEXT: mr 3, 5
2528 ; CHECK-BE-O0-NEXT: mtfprwz 0, 3
2529 ; CHECK-BE-O0-NEXT: xscpsgndp 35, 0, 0
2530 ; CHECK-BE-O0-NEXT: vinsertb 2, 3, 15
2531 ; CHECK-BE-O0-NEXT: blr