1818body : |
1919 bb.0.entry:
2020 ; CHECK-LABEL: name: vconcat_1024
21- ; CHECK: [[DEF:%[0-9]+]]:vec512 = IMPLICIT_DEF
22- ; CHECK-NEXT: [[DEF1:%[0-9]+]]:vec512 = IMPLICIT_DEF
21+ ; CHECK: [[DEF:%[0-9]+]]:exe = IMPLICIT_DEF
22+ ; CHECK-NEXT: [[DEF1:%[0-9]+]]:exo = IMPLICIT_DEF
2323 ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vec1024 = REG_SEQUENCE [[DEF]], %subreg.sub_512_lo, [[DEF1]], %subreg.sub_512_hi
2424 ; CHECK-NEXT: PseudoRET implicit $lr, implicit [[REG_SEQUENCE]]
2525 %0:vregbank(<16 x s32>) = G_IMPLICIT_DEF
@@ -29,20 +29,100 @@ body: |
2929 ...
3030
3131---
32- name : vconcat_512
32+ name : vconcat_512_32
3333legalized : true
3434regBankSelected : true
3535tracksRegLiveness : true
3636stack :
3737 - { id: 0, name: "", size: 128, alignment: 32 }
3838body : |
3939 bb.0.entry:
40- ; CHECK-LABEL: name: vconcat_512
41- ; CHECK: [[DEF:%[0-9]+]]:vec256 = IMPLICIT_DEF
42- ; CHECK-NEXT: [[DEF1:%[0-9]+]]:vec256 = IMPLICIT_DEF
40+ ; CHECK-LABEL: name: vconcat_512_32
41+ ; CHECK: [[DEF:%[0-9]+]]:ewl = IMPLICIT_DEF
42+ ; CHECK-NEXT: [[DEF1:%[0-9]+]]:ewh = IMPLICIT_DEF
4343 ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vec512 = REG_SEQUENCE [[DEF]], %subreg.sub_256_lo, [[DEF1]], %subreg.sub_256_hi
4444 ; CHECK-NEXT: PseudoRET implicit $lr, implicit [[REG_SEQUENCE]]
4545 %0:vregbank(<8 x s32>) = G_IMPLICIT_DEF
4646 %1:vregbank(<8 x s32>) = G_IMPLICIT_DEF
4747 %2:vregbank(<16 x s32>) = G_CONCAT_VECTORS %0(<8 x s32>), %1(<8 x s32>)
4848 PseudoRET implicit $lr, implicit %2
49+ ...
50+
51+ ---
52+ name : vconcat_512_16
53+ legalized : true
54+ regBankSelected : true
55+ tracksRegLiveness : true
56+ stack :
57+ - { id: 0, name: "", size: 128, alignment: 32 }
58+ body : |
59+ bb.0.entry:
60+ ; CHECK-LABEL: name: vconcat_512_16
61+ ; CHECK: [[DEF:%[0-9]+]]:ewl = IMPLICIT_DEF
62+ ; CHECK-NEXT: [[DEF1:%[0-9]+]]:ewh = IMPLICIT_DEF
63+ ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vec512 = REG_SEQUENCE [[DEF]], %subreg.sub_256_lo, [[DEF1]], %subreg.sub_256_hi
64+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit [[REG_SEQUENCE]]
65+ %0:vregbank(<16 x s16>) = G_IMPLICIT_DEF
66+ %1:vregbank(<16 x s16>) = G_IMPLICIT_DEF
67+ %2:vregbank(<32 x s16>) = G_CONCAT_VECTORS %0(<16 x s16>), %1(<16 x s16>)
68+ PseudoRET implicit $lr, implicit %2
69+ ...
70+
71+ ---
72+ name : vconcat_1024_16
73+ legalized : true
74+ regBankSelected : true
75+ tracksRegLiveness : true
76+ stack :
77+ - { id: 0, name: "", size: 128, alignment: 32 }
78+ body : |
79+ bb.0.entry:
80+ ; CHECK-LABEL: name: vconcat_1024_16
81+ ; CHECK: [[DEF:%[0-9]+]]:exe = IMPLICIT_DEF
82+ ; CHECK-NEXT: [[DEF1:%[0-9]+]]:exo = IMPLICIT_DEF
83+ ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vec1024 = REG_SEQUENCE [[DEF]], %subreg.sub_512_lo, [[DEF1]], %subreg.sub_512_hi
84+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit [[REG_SEQUENCE]]
85+ %0:vregbank(<32 x s16>) = G_IMPLICIT_DEF
86+ %1:vregbank(<32 x s16>) = G_IMPLICIT_DEF
87+ %2:vregbank(<64 x s16>) = G_CONCAT_VECTORS %0(<32 x s16>), %1(<32 x s16>)
88+ PseudoRET implicit $lr, implicit %2
89+ ...
90+
91+ ---
92+ name : vconcat_512_8
93+ legalized : true
94+ regBankSelected : true
95+ tracksRegLiveness : true
96+ stack :
97+ - { id: 0, name: "", size: 128, alignment: 32 }
98+ body : |
99+ bb.0.entry:
100+ ; CHECK-LABEL: name: vconcat_512_8
101+ ; CHECK: [[DEF:%[0-9]+]]:ewl = IMPLICIT_DEF
102+ ; CHECK-NEXT: [[DEF1:%[0-9]+]]:ewh = IMPLICIT_DEF
103+ ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vec512 = REG_SEQUENCE [[DEF]], %subreg.sub_256_lo, [[DEF1]], %subreg.sub_256_hi
104+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit [[REG_SEQUENCE]]
105+ %0:vregbank(<32 x s8>) = G_IMPLICIT_DEF
106+ %1:vregbank(<32 x s8>) = G_IMPLICIT_DEF
107+ %2:vregbank(<64 x s8>) = G_CONCAT_VECTORS %0(<32 x s8>), %1(<32 x s8>)
108+ PseudoRET implicit $lr, implicit %2
109+ ...
110+
111+ ---
112+ name : vconcat_1024_8
113+ legalized : true
114+ regBankSelected : true
115+ tracksRegLiveness : true
116+ stack :
117+ - { id: 0, name: "", size: 128, alignment: 32 }
118+ body : |
119+ bb.0.entry:
120+ ; CHECK-LABEL: name: vconcat_1024_8
121+ ; CHECK: [[DEF:%[0-9]+]]:exe = IMPLICIT_DEF
122+ ; CHECK-NEXT: [[DEF1:%[0-9]+]]:exo = IMPLICIT_DEF
123+ ; CHECK-NEXT: [[REG_SEQUENCE:%[0-9]+]]:vec1024 = REG_SEQUENCE [[DEF]], %subreg.sub_512_lo, [[DEF1]], %subreg.sub_512_hi
124+ ; CHECK-NEXT: PseudoRET implicit $lr, implicit [[REG_SEQUENCE]]
125+ %0:vregbank(<64 x s8>) = G_IMPLICIT_DEF
126+ %1:vregbank(<64 x s8>) = G_IMPLICIT_DEF
127+ %2:vregbank(<128 x s8>) = G_CONCAT_VECTORS %0(<64 x s8>), %1(<64 x s8>)
128+ PseudoRET implicit $lr, implicit %2
0 commit comments