@@ -474,3 +474,172 @@ body: |
474474 %2:_(<128 x s8>) = COPY $y3
475475 %3:_(<128 x s8>) = G_SHUFFLE_VECTOR %1:_(<128 x s8>), %2:_(<128 x s8>), shufflemask(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191)
476476 PseudoRET implicit $lr, implicit %3
477+ ...
478+
479+ ---
480+ name : concat_vector_reverse_32_512
481+ legalized : false
482+ body : |
483+ bb.1.entry:
484+ liveins: $wl2, $wl4
485+ ; CHECK-LABEL: name: concat_vector_reverse_32_512
486+ ; CHECK: liveins: $wl2, $wl4
487+ ; CHECK-NEXT: {{ $}}
488+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl2
489+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s32>) = COPY $wl4
490+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[COPY1]](<8 x s32>), [[COPY]](<8 x s32>)
491+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
492+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
493+ %1:_(<8 x s32>) = COPY $wl2
494+ %2:_(<8 x s32>) = COPY $wl4
495+ %0:_(<16 x s32>) = G_SHUFFLE_VECTOR %1:_(<8 x s32>), %2:_, shufflemask(8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7)
496+ $x0 = COPY %0:_(<16 x s32>)
497+ PseudoRET implicit $lr, implicit $x0
498+ ...
499+
500+ ---
501+ name : concat_vector_reverse_32_512_undef_start_first
502+ legalized : false
503+ body : |
504+ bb.1.entry:
505+ liveins: $wl2, $wl4
506+ ; CHECK-LABEL: name: concat_vector_reverse_32_512_undef_start_first
507+ ; CHECK: liveins: $wl2, $wl4
508+ ; CHECK-NEXT: {{ $}}
509+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl2
510+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s32>) = COPY $wl4
511+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[COPY1]](<8 x s32>), [[COPY]](<8 x s32>)
512+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
513+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
514+ %1:_(<8 x s32>) = COPY $wl2
515+ %2:_(<8 x s32>) = COPY $wl4
516+ %0:_(<16 x s32>) = G_SHUFFLE_VECTOR %1:_(<8 x s32>), %2:_, shufflemask(-1, -1, -1, -1, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7)
517+ $x0 = COPY %0:_(<16 x s32>)
518+ PseudoRET implicit $lr, implicit $x0
519+ ...
520+
521+ ---
522+ name : concat_vector_reverse_32_512_start_end
523+ legalized : false
524+ body : |
525+ bb.1.entry:
526+ liveins: $wl2, $wl4
527+ ; CHECK-LABEL: name: concat_vector_reverse_32_512_start_end
528+ ; CHECK: liveins: $wl2, $wl4
529+ ; CHECK-NEXT: {{ $}}
530+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl2
531+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s32>) = COPY $wl4
532+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[COPY1]](<8 x s32>), [[COPY]](<8 x s32>)
533+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
534+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
535+ %1:_(<8 x s32>) = COPY $wl2
536+ %2:_(<8 x s32>) = COPY $wl4
537+ %0:_(<16 x s32>) = G_SHUFFLE_VECTOR %1:_(<8 x s32>), %2:_, shufflemask(8, 9, 10, 11, 12, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7)
538+ $x0 = COPY %0:_(<16 x s32>)
539+ PseudoRET implicit $lr, implicit $x0
540+ ...
541+
542+ ---
543+ name : concat_vector_reverse_32_512_end_start
544+ legalized : false
545+ body : |
546+ bb.1.entry:
547+ liveins: $wl2, $wl4
548+ ; CHECK-LABEL: name: concat_vector_reverse_32_512_end_start
549+ ; CHECK: liveins: $wl2, $wl4
550+ ; CHECK-NEXT: {{ $}}
551+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl2
552+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s32>) = COPY $wl4
553+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[COPY1]](<8 x s32>), [[COPY]](<8 x s32>)
554+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
555+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
556+ %1:_(<8 x s32>) = COPY $wl2
557+ %2:_(<8 x s32>) = COPY $wl4
558+ %0:_(<16 x s32>) = G_SHUFFLE_VECTOR %1:_(<8 x s32>), %2:_, shufflemask(8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, 4, 5, 6, 7)
559+ $x0 = COPY %0:_(<16 x s32>)
560+ PseudoRET implicit $lr, implicit $x0
561+ ...
562+
563+ ---
564+ name : concat_vector_reverse_32_512_end_end
565+ legalized : false
566+ body : |
567+ bb.1.entry:
568+ liveins: $wl2, $wl4
569+ ; CHECK-LABEL: name: concat_vector_reverse_32_512_end_end
570+ ; CHECK: liveins: $wl2, $wl4
571+ ; CHECK-NEXT: {{ $}}
572+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl2
573+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s32>) = COPY $wl4
574+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[COPY1]](<8 x s32>), [[COPY]](<8 x s32>)
575+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
576+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
577+ %1:_(<8 x s32>) = COPY $wl2
578+ %2:_(<8 x s32>) = COPY $wl4
579+ %0:_(<16 x s32>) = G_SHUFFLE_VECTOR %1:_(<8 x s32>), %2:_, shufflemask(8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, -1, -1, -1, -1)
580+ $x0 = COPY %0:_(<16 x s32>)
581+ PseudoRET implicit $lr, implicit $x0
582+ ...
583+
584+ ---
585+ name : concat_vector_reverse_32_512_first_block
586+ legalized : false
587+ body : |
588+ bb.1.entry:
589+ liveins: $wl2, $wl4
590+ ; CHECK-LABEL: name: concat_vector_reverse_32_512_first_block
591+ ; CHECK: liveins: $wl2, $wl4
592+ ; CHECK-NEXT: {{ $}}
593+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl2
594+ ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<8 x s32>) = G_IMPLICIT_DEF
595+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[DEF]](<8 x s32>), [[COPY]](<8 x s32>)
596+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
597+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
598+ %1:_(<8 x s32>) = COPY $wl2
599+ %2:_(<8 x s32>) = COPY $wl4
600+ %0:_(<16 x s32>) = G_SHUFFLE_VECTOR %1:_(<8 x s32>), %2:_, shufflemask(-1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7)
601+ $x0 = COPY %0:_(<16 x s32>)
602+ PseudoRET implicit $lr, implicit $x0
603+ ...
604+
605+ ---
606+ name : concat_vector_reverse_32_512_second_block
607+ legalized : false
608+ body : |
609+ bb.1.entry:
610+ liveins: $wl2, $wl4
611+ ; CHECK-LABEL: name: concat_vector_reverse_32_512_second_block
612+ ; CHECK: liveins: $wl2, $wl4
613+ ; CHECK-NEXT: {{ $}}
614+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl4
615+ ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<8 x s32>) = G_IMPLICIT_DEF
616+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[COPY]](<8 x s32>), [[DEF]](<8 x s32>)
617+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
618+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
619+ %1:_(<8 x s32>) = COPY $wl2
620+ %2:_(<8 x s32>) = COPY $wl4
621+ %0:_(<16 x s32>) = G_SHUFFLE_VECTOR %1:_(<8 x s32>), %2:_, shufflemask(8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1)
622+ $x0 = COPY %0:_(<16 x s32>)
623+ PseudoRET implicit $lr, implicit $x0
624+ ...
625+
626+ ---
627+ name : concat_vector_reverse_32_512_random
628+ legalized : false
629+ body : |
630+ bb.1.entry:
631+ liveins: $wl2, $wl4
632+ ; CHECK-LABEL: name: concat_vector_reverse_32_512_random
633+ ; CHECK: liveins: $wl2, $wl4
634+ ; CHECK-NEXT: {{ $}}
635+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl2
636+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s32>) = COPY $wl4
637+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[COPY1]](<8 x s32>), [[COPY]](<8 x s32>)
638+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
639+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
640+ %1:_(<8 x s32>) = COPY $wl2
641+ %2:_(<8 x s32>) = COPY $wl4
642+ %0:_(<16 x s32>) = G_SHUFFLE_VECTOR %1:_(<8 x s32>), %2:_, shufflemask(8, 9, -1, 11, 12, 13, -1, 15, 0, 1, -1, 3, 4, 5, -1, 7)
643+ $x0 = COPY %0:_(<16 x s32>)
644+ PseudoRET implicit $lr, implicit $x0
645+ ...
0 commit comments