@@ -682,3 +682,172 @@ body: |
682682 %3:_(<128 x s8>) = G_SHUFFLE_VECTOR %1:_(<128 x s8>), %2:_(<128 x s8>), shufflemask(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, 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)
683683 PseudoRET implicit $lr, implicit %3
684684 ...
685+
686+ ---
687+ name : concat_vector_reverse_32_512
688+ legalized : false
689+ body : |
690+ bb.1.entry:
691+ liveins: $wl2, $wl4
692+ ; CHECK-LABEL: name: concat_vector_reverse_32_512
693+ ; CHECK: liveins: $wl2, $wl4
694+ ; CHECK-NEXT: {{ $}}
695+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl2
696+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s32>) = COPY $wl4
697+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[COPY1]](<8 x s32>), [[COPY]](<8 x s32>)
698+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
699+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
700+ %1:_(<8 x s32>) = COPY $wl2
701+ %2:_(<8 x s32>) = COPY $wl4
702+ %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)
703+ $x0 = COPY %0:_(<16 x s32>)
704+ PseudoRET implicit $lr, implicit $x0
705+ ...
706+
707+ ---
708+ name : concat_vector_reverse_32_512_undef_start_first
709+ legalized : false
710+ body : |
711+ bb.1.entry:
712+ liveins: $wl2, $wl4
713+ ; CHECK-LABEL: name: concat_vector_reverse_32_512_undef_start_first
714+ ; CHECK: liveins: $wl2, $wl4
715+ ; CHECK-NEXT: {{ $}}
716+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl2
717+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s32>) = COPY $wl4
718+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[COPY1]](<8 x s32>), [[COPY]](<8 x s32>)
719+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
720+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
721+ %1:_(<8 x s32>) = COPY $wl2
722+ %2:_(<8 x s32>) = COPY $wl4
723+ %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)
724+ $x0 = COPY %0:_(<16 x s32>)
725+ PseudoRET implicit $lr, implicit $x0
726+ ...
727+
728+ ---
729+ name : concat_vector_reverse_32_512_start_end
730+ legalized : false
731+ body : |
732+ bb.1.entry:
733+ liveins: $wl2, $wl4
734+ ; CHECK-LABEL: name: concat_vector_reverse_32_512_start_end
735+ ; CHECK: liveins: $wl2, $wl4
736+ ; CHECK-NEXT: {{ $}}
737+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl2
738+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s32>) = COPY $wl4
739+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[COPY1]](<8 x s32>), [[COPY]](<8 x s32>)
740+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
741+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
742+ %1:_(<8 x s32>) = COPY $wl2
743+ %2:_(<8 x s32>) = COPY $wl4
744+ %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)
745+ $x0 = COPY %0:_(<16 x s32>)
746+ PseudoRET implicit $lr, implicit $x0
747+ ...
748+
749+ ---
750+ name : concat_vector_reverse_32_512_end_start
751+ legalized : false
752+ body : |
753+ bb.1.entry:
754+ liveins: $wl2, $wl4
755+ ; CHECK-LABEL: name: concat_vector_reverse_32_512_end_start
756+ ; CHECK: liveins: $wl2, $wl4
757+ ; CHECK-NEXT: {{ $}}
758+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl2
759+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s32>) = COPY $wl4
760+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[COPY1]](<8 x s32>), [[COPY]](<8 x s32>)
761+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
762+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
763+ %1:_(<8 x s32>) = COPY $wl2
764+ %2:_(<8 x s32>) = COPY $wl4
765+ %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)
766+ $x0 = COPY %0:_(<16 x s32>)
767+ PseudoRET implicit $lr, implicit $x0
768+ ...
769+
770+ ---
771+ name : concat_vector_reverse_32_512_end_end
772+ legalized : false
773+ body : |
774+ bb.1.entry:
775+ liveins: $wl2, $wl4
776+ ; CHECK-LABEL: name: concat_vector_reverse_32_512_end_end
777+ ; CHECK: liveins: $wl2, $wl4
778+ ; CHECK-NEXT: {{ $}}
779+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl2
780+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s32>) = COPY $wl4
781+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[COPY1]](<8 x s32>), [[COPY]](<8 x s32>)
782+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
783+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
784+ %1:_(<8 x s32>) = COPY $wl2
785+ %2:_(<8 x s32>) = COPY $wl4
786+ %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)
787+ $x0 = COPY %0:_(<16 x s32>)
788+ PseudoRET implicit $lr, implicit $x0
789+ ...
790+
791+ ---
792+ name : concat_vector_reverse_32_512_first_block
793+ legalized : false
794+ body : |
795+ bb.1.entry:
796+ liveins: $wl2, $wl4
797+ ; CHECK-LABEL: name: concat_vector_reverse_32_512_first_block
798+ ; CHECK: liveins: $wl2, $wl4
799+ ; CHECK-NEXT: {{ $}}
800+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl2
801+ ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<8 x s32>) = G_IMPLICIT_DEF
802+ ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
803+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[DEF]](<8 x s32>), [[COPY]](<8 x s32>)
804+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
805+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
806+ %1:_(<8 x s32>) = COPY $wl2
807+ %2:_(<8 x s32>) = COPY $wl4
808+ %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)
809+ $x0 = COPY %0:_(<16 x s32>)
810+ PseudoRET implicit $lr, implicit $x0
811+ ...
812+
813+ ---
814+ name : concat_vector_reverse_32_512_second_block
815+ legalized : false
816+ body : |
817+ bb.1.entry:
818+ liveins: $wl2, $wl4
819+ ; CHECK-LABEL: name: concat_vector_reverse_32_512_second_block
820+ ; CHECK: liveins: $wl2, $wl4
821+ ; CHECK-NEXT: {{ $}}
822+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl4
823+ ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<8 x s32>) = G_IMPLICIT_DEF
824+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[COPY]](<8 x s32>), [[DEF]](<8 x s32>)
825+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
826+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
827+ %1:_(<8 x s32>) = COPY $wl2
828+ %2:_(<8 x s32>) = COPY $wl4
829+ %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)
830+ $x0 = COPY %0:_(<16 x s32>)
831+ PseudoRET implicit $lr, implicit $x0
832+ ...
833+
834+ ---
835+ name : concat_vector_reverse_32_512_random
836+ legalized : false
837+ body : |
838+ bb.1.entry:
839+ liveins: $wl2, $wl4
840+ ; CHECK-LABEL: name: concat_vector_reverse_32_512_random
841+ ; CHECK: liveins: $wl2, $wl4
842+ ; CHECK-NEXT: {{ $}}
843+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $wl2
844+ ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<8 x s32>) = COPY $wl4
845+ ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<16 x s32>) = G_CONCAT_VECTORS [[COPY1]](<8 x s32>), [[COPY]](<8 x s32>)
846+ ; CHECK-NEXT: $x0 = COPY [[CONCAT_VECTORS]](<16 x s32>)
847+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit $x0
848+ %1:_(<8 x s32>) = COPY $wl2
849+ %2:_(<8 x s32>) = COPY $wl4
850+ %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)
851+ $x0 = COPY %0:_(<16 x s32>)
852+ PseudoRET implicit $lr, implicit $x0
853+ ...
0 commit comments