764 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-amd-amdhsa -O0 -run-pass=legalizer %s -o - | FileCheck %s3 4---5name: legal_v2s326body: |7 bb.0:8 liveins: $vgpr0, $vgpr19 ; CHECK-LABEL: name: legal_v2s3210 ; CHECK: liveins: $vgpr0, $vgpr111 ; CHECK-NEXT: {{ $}}12 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr013 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr114 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32)15 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x s32>)16 %0:_(s32) = COPY $vgpr017 %1:_(s32) = COPY $vgpr118 %2:_(<2 x s32>) = G_BUILD_VECTOR %0, %119 S_NOP 0, implicit %220...21---22name: legal_v3s3223body: |24 bb.0:25 liveins: $vgpr0, $vgpr1, $vgpr226 ; CHECK-LABEL: name: legal_v3s3227 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr228 ; CHECK-NEXT: {{ $}}29 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr030 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr131 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr232 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32)33 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<3 x s32>)34 %0:_(s32) = COPY $vgpr035 %1:_(s32) = COPY $vgpr136 %2:_(s32) = COPY $vgpr237 %3:_(<3 x s32>) = G_BUILD_VECTOR %0, %1, %238 S_NOP 0, implicit %339...40---41name: legal_v4s3242body: |43 bb.0:44 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr345 ; CHECK-LABEL: name: legal_v4s3246 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr347 ; CHECK-NEXT: {{ $}}48 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr049 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr150 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr251 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr352 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32)53 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<4 x s32>)54 %0:_(s32) = COPY $vgpr055 %1:_(s32) = COPY $vgpr156 %2:_(s32) = COPY $vgpr257 %3:_(s32) = COPY $vgpr358 %4:_(<4 x s32>) = G_BUILD_VECTOR %0, %1, %2, %359 S_NOP 0, implicit %460...61---62name: legal_v5s3263body: |64 bb.0:65 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr466 ; CHECK-LABEL: name: legal_v5s3267 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr468 ; CHECK-NEXT: {{ $}}69 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr070 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr171 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr272 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr373 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr474 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<5 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32)75 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<5 x s32>)76 %0:_(s32) = COPY $vgpr077 %1:_(s32) = COPY $vgpr178 %2:_(s32) = COPY $vgpr279 %3:_(s32) = COPY $vgpr380 %4:_(s32) = COPY $vgpr481 %5:_(<5 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %482 S_NOP 0, implicit %583...84---85name: legal_v6s3286body: |87 bb.0:88 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr589 ; CHECK-LABEL: name: legal_v6s3290 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr591 ; CHECK-NEXT: {{ $}}92 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr093 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr194 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr295 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr396 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr497 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr598 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<6 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32)99 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<6 x s32>)100 %0:_(s32) = COPY $vgpr0101 %1:_(s32) = COPY $vgpr1102 %2:_(s32) = COPY $vgpr2103 %3:_(s32) = COPY $vgpr3104 %4:_(s32) = COPY $vgpr4105 %5:_(s32) = COPY $vgpr5106 %6:_(<6 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5107 S_NOP 0, implicit %6108...109---110name: legal_v7s32111body: |112 bb.0:113 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6114 ; CHECK-LABEL: name: legal_v7s32115 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6116 ; CHECK-NEXT: {{ $}}117 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0118 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1119 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2120 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3121 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4122 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5123 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6124 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<7 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32)125 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<7 x s32>)126 %0:_(s32) = COPY $vgpr0127 %1:_(s32) = COPY $vgpr1128 %2:_(s32) = COPY $vgpr2129 %3:_(s32) = COPY $vgpr3130 %4:_(s32) = COPY $vgpr4131 %5:_(s32) = COPY $vgpr5132 %6:_(s32) = COPY $vgpr6133 %7:_(<7 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6134 S_NOP 0, implicit %7135...136---137name: legal_v8s32138body: |139 bb.0:140 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7141 ; CHECK-LABEL: name: legal_v8s32142 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7143 ; CHECK-NEXT: {{ $}}144 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0145 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1146 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2147 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3148 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4149 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5150 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6151 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7152 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32)153 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<8 x s32>)154 %0:_(s32) = COPY $vgpr0155 %1:_(s32) = COPY $vgpr1156 %2:_(s32) = COPY $vgpr2157 %3:_(s32) = COPY $vgpr3158 %4:_(s32) = COPY $vgpr4159 %5:_(s32) = COPY $vgpr5160 %6:_(s32) = COPY $vgpr6161 %7:_(s32) = COPY $vgpr7162 %8:_(<8 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7163 S_NOP 0, implicit %8164...165---166name: legal_v9s32167body: |168 bb.0:169 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8170 ; CHECK-LABEL: name: legal_v9s32171 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8172 ; CHECK-NEXT: {{ $}}173 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0174 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1175 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2176 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3177 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4178 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5179 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6180 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7181 ; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8182 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<9 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32)183 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<9 x s32>)184 %0:_(s32) = COPY $vgpr0185 %1:_(s32) = COPY $vgpr1186 %2:_(s32) = COPY $vgpr2187 %3:_(s32) = COPY $vgpr3188 %4:_(s32) = COPY $vgpr4189 %5:_(s32) = COPY $vgpr5190 %6:_(s32) = COPY $vgpr6191 %7:_(s32) = COPY $vgpr7192 %8:_(s32) = COPY $vgpr8193 %9:_(<9 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8194 S_NOP 0, implicit %9195...196---197name: legal_v10s32198body: |199 bb.0:200 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9201 ; CHECK-LABEL: name: legal_v10s32202 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9203 ; CHECK-NEXT: {{ $}}204 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0205 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1206 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2207 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3208 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4209 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5210 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6211 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7212 ; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8213 ; CHECK-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $vgpr9214 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<10 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32), [[COPY9]](s32)215 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<10 x s32>)216 %0:_(s32) = COPY $vgpr0217 %1:_(s32) = COPY $vgpr1218 %2:_(s32) = COPY $vgpr2219 %3:_(s32) = COPY $vgpr3220 %4:_(s32) = COPY $vgpr4221 %5:_(s32) = COPY $vgpr5222 %6:_(s32) = COPY $vgpr6223 %7:_(s32) = COPY $vgpr7224 %8:_(s32) = COPY $vgpr8225 %9:_(s32) = COPY $vgpr9226 %10:_(<10 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8, %9227 S_NOP 0, implicit %10228...229---230name: legal_v11s32231body: |232 bb.0:233 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10234 ; CHECK-LABEL: name: legal_v11s32235 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10236 ; CHECK-NEXT: {{ $}}237 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0238 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1239 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2240 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3241 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4242 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5243 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6244 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7245 ; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8246 ; CHECK-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $vgpr9247 ; CHECK-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $vgpr10248 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<11 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32)249 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<11 x s32>)250 %0:_(s32) = COPY $vgpr0251 %1:_(s32) = COPY $vgpr1252 %2:_(s32) = COPY $vgpr2253 %3:_(s32) = COPY $vgpr3254 %4:_(s32) = COPY $vgpr4255 %5:_(s32) = COPY $vgpr5256 %6:_(s32) = COPY $vgpr6257 %7:_(s32) = COPY $vgpr7258 %8:_(s32) = COPY $vgpr8259 %9:_(s32) = COPY $vgpr9260 %10:_(s32) = COPY $vgpr10261 %11:_(<11 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10262 S_NOP 0, implicit %11263...264---265name: legal_v12s32266body: |267 bb.0:268 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11269 ; CHECK-LABEL: name: legal_v12s32270 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11271 ; CHECK-NEXT: {{ $}}272 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0273 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1274 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2275 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3276 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4277 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5278 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6279 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7280 ; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8281 ; CHECK-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $vgpr9282 ; CHECK-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $vgpr10283 ; CHECK-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $vgpr11284 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<12 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32)285 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<12 x s32>)286 %0:_(s32) = COPY $vgpr0287 %1:_(s32) = COPY $vgpr1288 %2:_(s32) = COPY $vgpr2289 %3:_(s32) = COPY $vgpr3290 %4:_(s32) = COPY $vgpr4291 %5:_(s32) = COPY $vgpr5292 %6:_(s32) = COPY $vgpr6293 %7:_(s32) = COPY $vgpr7294 %8:_(s32) = COPY $vgpr8295 %9:_(s32) = COPY $vgpr9296 %10:_(s32) = COPY $vgpr10297 %11:_(s32) = COPY $vgpr11298 %12:_(<12 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11299 S_NOP 0, implicit %12300...301---302name: legal_v16s32303body: |304 bb.0:305 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15306 ; CHECK-LABEL: name: legal_v16s32307 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15308 ; CHECK-NEXT: {{ $}}309 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0310 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1311 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2312 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3313 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4314 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5315 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6316 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7317 ; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8318 ; CHECK-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $vgpr9319 ; CHECK-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $vgpr10320 ; CHECK-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $vgpr11321 ; CHECK-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr12322 ; CHECK-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13323 ; CHECK-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr14324 ; CHECK-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr15325 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<16 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32), [[COPY12]](s32), [[COPY13]](s32), [[COPY14]](s32), [[COPY15]](s32)326 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<16 x s32>)327 %0:_(s32) = COPY $vgpr0328 %1:_(s32) = COPY $vgpr1329 %2:_(s32) = COPY $vgpr2330 %3:_(s32) = COPY $vgpr3331 %4:_(s32) = COPY $vgpr4332 %5:_(s32) = COPY $vgpr5333 %6:_(s32) = COPY $vgpr6334 %7:_(s32) = COPY $vgpr7335 %8:_(s32) = COPY $vgpr8336 %9:_(s32) = COPY $vgpr9337 %10:_(s32) = COPY $vgpr10338 %11:_(s32) = COPY $vgpr11339 %12:_(s32) = COPY $vgpr12340 %13:_(s32) = COPY $vgpr13341 %14:_(s32) = COPY $vgpr14342 %15:_(s32) = COPY $vgpr15343 %16:_(<16 x s32>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15344 S_NOP 0, implicit %16345...346---347name: legal_v32s32348body: |349 bb.0:350 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31351 ; CHECK-LABEL: name: legal_v32s32352 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3, $vgpr4, $vgpr5, $vgpr6, $vgpr7, $vgpr8, $vgpr9, $vgpr10, $vgpr11, $vgpr12, $vgpr13, $vgpr14, $vgpr15, $vgpr16, $vgpr17, $vgpr18, $vgpr19, $vgpr20, $vgpr21, $vgpr22, $vgpr23, $vgpr24, $vgpr25, $vgpr26, $vgpr27, $vgpr28, $vgpr29, $vgpr30, $vgpr31353 ; CHECK-NEXT: {{ $}}354 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0355 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1356 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2357 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3358 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY $vgpr4359 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY $vgpr5360 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s32) = COPY $vgpr6361 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s32) = COPY $vgpr7362 ; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(s32) = COPY $vgpr8363 ; CHECK-NEXT: [[COPY9:%[0-9]+]]:_(s32) = COPY $vgpr9364 ; CHECK-NEXT: [[COPY10:%[0-9]+]]:_(s32) = COPY $vgpr10365 ; CHECK-NEXT: [[COPY11:%[0-9]+]]:_(s32) = COPY $vgpr11366 ; CHECK-NEXT: [[COPY12:%[0-9]+]]:_(s32) = COPY $vgpr12367 ; CHECK-NEXT: [[COPY13:%[0-9]+]]:_(s32) = COPY $vgpr13368 ; CHECK-NEXT: [[COPY14:%[0-9]+]]:_(s32) = COPY $vgpr14369 ; CHECK-NEXT: [[COPY15:%[0-9]+]]:_(s32) = COPY $vgpr15370 ; CHECK-NEXT: [[COPY16:%[0-9]+]]:_(s32) = COPY $vgpr16371 ; CHECK-NEXT: [[COPY17:%[0-9]+]]:_(s32) = COPY $vgpr17372 ; CHECK-NEXT: [[COPY18:%[0-9]+]]:_(s32) = COPY $vgpr18373 ; CHECK-NEXT: [[COPY19:%[0-9]+]]:_(s32) = COPY $vgpr19374 ; CHECK-NEXT: [[COPY20:%[0-9]+]]:_(s32) = COPY $vgpr20375 ; CHECK-NEXT: [[COPY21:%[0-9]+]]:_(s32) = COPY $vgpr21376 ; CHECK-NEXT: [[COPY22:%[0-9]+]]:_(s32) = COPY $vgpr22377 ; CHECK-NEXT: [[COPY23:%[0-9]+]]:_(s32) = COPY $vgpr23378 ; CHECK-NEXT: [[COPY24:%[0-9]+]]:_(s32) = COPY $vgpr24379 ; CHECK-NEXT: [[COPY25:%[0-9]+]]:_(s32) = COPY $vgpr25380 ; CHECK-NEXT: [[COPY26:%[0-9]+]]:_(s32) = COPY $vgpr26381 ; CHECK-NEXT: [[COPY27:%[0-9]+]]:_(s32) = COPY $vgpr27382 ; CHECK-NEXT: [[COPY28:%[0-9]+]]:_(s32) = COPY $vgpr28383 ; CHECK-NEXT: [[COPY29:%[0-9]+]]:_(s32) = COPY $vgpr29384 ; CHECK-NEXT: [[COPY30:%[0-9]+]]:_(s32) = COPY $vgpr30385 ; CHECK-NEXT: [[COPY31:%[0-9]+]]:_(s32) = COPY $vgpr31386 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<32 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32), [[COPY5]](s32), [[COPY6]](s32), [[COPY7]](s32), [[COPY8]](s32), [[COPY9]](s32), [[COPY10]](s32), [[COPY11]](s32), [[COPY12]](s32), [[COPY13]](s32), [[COPY14]](s32), [[COPY15]](s32), [[COPY16]](s32), [[COPY17]](s32), [[COPY18]](s32), [[COPY19]](s32), [[COPY20]](s32), [[COPY21]](s32), [[COPY22]](s32), [[COPY23]](s32), [[COPY24]](s32), [[COPY25]](s32), [[COPY26]](s32), [[COPY27]](s32), [[COPY28]](s32), [[COPY29]](s32), [[COPY30]](s32), [[COPY31]](s32)387 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<32 x s32>)388 %0:_(s32) = COPY $vgpr0389 %1:_(s32) = COPY $vgpr1390 %2:_(s32) = COPY $vgpr2391 %3:_(s32) = COPY $vgpr3392 %4:_(s32) = COPY $vgpr4393 %5:_(s32) = COPY $vgpr5394 %6:_(s32) = COPY $vgpr6395 %7:_(s32) = COPY $vgpr7396 %8:_(s32) = COPY $vgpr8397 %9:_(s32) = COPY $vgpr9398 %10:_(s32) = COPY $vgpr10399 %11:_(s32) = COPY $vgpr11400 %12:_(s32) = COPY $vgpr12401 %13:_(s32) = COPY $vgpr13402 %14:_(s32) = COPY $vgpr14403 %15:_(s32) = COPY $vgpr15404 %16:_(s32) = COPY $vgpr16405 %17:_(s32) = COPY $vgpr17406 %18:_(s32) = COPY $vgpr18407 %19:_(s32) = COPY $vgpr19408 %20:_(s32) = COPY $vgpr20409 %21:_(s32) = COPY $vgpr21410 %22:_(s32) = COPY $vgpr22411 %23:_(s32) = COPY $vgpr23412 %24:_(s32) = COPY $vgpr24413 %25:_(s32) = COPY $vgpr25414 %26:_(s32) = COPY $vgpr26415 %27:_(s32) = COPY $vgpr27416 %28:_(s32) = COPY $vgpr28417 %29:_(s32) = COPY $vgpr29418 %30:_(s32) = COPY $vgpr30419 %31:_(s32) = COPY $vgpr31420 %32:_(<32 x s32>) = G_BUILD_VECTOR %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, %31421 S_NOP 0, implicit %32422...423---424name: legal_v2s64425body: |426 bb.0:427 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3428 ; CHECK-LABEL: name: legal_v2s64429 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3430 ; CHECK-NEXT: {{ $}}431 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1432 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3433 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64)434 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x s64>)435 %0:_(s64) = COPY $vgpr0_vgpr1436 %1:_(s64) = COPY $vgpr2_vgpr3437 %2:_(<2 x s64>) = G_BUILD_VECTOR %0, %1438 S_NOP 0, implicit %2439...440---441name: legal_v3s64442body: |443 bb.0:444 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5445 ; CHECK-LABEL: name: legal_v3s64446 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5447 ; CHECK-NEXT: {{ $}}448 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1449 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3450 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5451 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64), [[COPY2]](s64)452 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<3 x s64>)453 %0:_(s64) = COPY $vgpr0_vgpr1454 %1:_(s64) = COPY $vgpr2_vgpr3455 %2:_(s64) = COPY $vgpr4_vgpr5456 %3:_(<3 x s64>) = G_BUILD_VECTOR %0, %1, %2457 S_NOP 0, implicit %3458...459---460name: legal_v4s64461body: |462 bb.0:463 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7464 ; CHECK-LABEL: name: legal_v4s64465 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7466 ; CHECK-NEXT: {{ $}}467 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1468 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3469 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5470 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $vgpr6_vgpr7471 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64), [[COPY2]](s64), [[COPY3]](s64)472 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<4 x s64>)473 %0:_(s64) = COPY $vgpr0_vgpr1474 %1:_(s64) = COPY $vgpr2_vgpr3475 %2:_(s64) = COPY $vgpr4_vgpr5476 %3:_(s64) = COPY $vgpr6_vgpr7477 %4:_(<4 x s64>) = G_BUILD_VECTOR %0, %1, %2, %3478 S_NOP 0, implicit %4479...480---481name: legal_v5s64482body: |483 bb.0:484 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9485 ; CHECK-LABEL: name: legal_v5s64486 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9487 ; CHECK-NEXT: {{ $}}488 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1489 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3490 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5491 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $vgpr6_vgpr7492 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s64) = COPY $vgpr8_vgpr9493 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<5 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64), [[COPY2]](s64), [[COPY3]](s64), [[COPY4]](s64)494 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<5 x s64>)495 %0:_(s64) = COPY $vgpr0_vgpr1496 %1:_(s64) = COPY $vgpr2_vgpr3497 %2:_(s64) = COPY $vgpr4_vgpr5498 %3:_(s64) = COPY $vgpr6_vgpr7499 %4:_(s64) = COPY $vgpr8_vgpr9500 %5:_(<5 x s64>) = G_BUILD_VECTOR %0, %1, %2, %3, %4501 S_NOP 0, implicit %5502...503---504name: legal_v6s64505body: |506 bb.0:507 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11508 ; CHECK-LABEL: name: legal_v6s64509 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11510 ; CHECK-NEXT: {{ $}}511 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1512 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3513 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5514 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $vgpr6_vgpr7515 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s64) = COPY $vgpr8_vgpr9516 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s64) = COPY $vgpr10_vgpr11517 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<6 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64), [[COPY2]](s64), [[COPY3]](s64), [[COPY4]](s64), [[COPY5]](s64)518 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<6 x s64>)519 %0:_(s64) = COPY $vgpr0_vgpr1520 %1:_(s64) = COPY $vgpr2_vgpr3521 %2:_(s64) = COPY $vgpr4_vgpr5522 %3:_(s64) = COPY $vgpr6_vgpr7523 %4:_(s64) = COPY $vgpr8_vgpr9524 %5:_(s64) = COPY $vgpr10_vgpr11525 %6:_(<6 x s64>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5526 S_NOP 0, implicit %6527...528---529name: legal_v7s64530body: |531 bb.0:532 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13533 ; CHECK-LABEL: name: legal_v7s64534 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13535 ; CHECK-NEXT: {{ $}}536 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1537 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3538 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5539 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $vgpr6_vgpr7540 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s64) = COPY $vgpr8_vgpr9541 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s64) = COPY $vgpr10_vgpr11542 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s64) = COPY $vgpr12_vgpr13543 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<7 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64), [[COPY2]](s64), [[COPY3]](s64), [[COPY4]](s64), [[COPY5]](s64), [[COPY6]](s64)544 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<7 x s64>)545 %0:_(s64) = COPY $vgpr0_vgpr1546 %1:_(s64) = COPY $vgpr2_vgpr3547 %2:_(s64) = COPY $vgpr4_vgpr5548 %3:_(s64) = COPY $vgpr6_vgpr7549 %4:_(s64) = COPY $vgpr8_vgpr9550 %5:_(s64) = COPY $vgpr10_vgpr11551 %6:_(s64) = COPY $vgpr12_vgpr13552 %7:_(<7 x s64>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6553 S_NOP 0, implicit %7554...555---556name: legal_v8s64557body: |558 bb.0:559 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr14_vgpr15560 ; CHECK-LABEL: name: legal_v8s64561 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr14_vgpr15562 ; CHECK-NEXT: {{ $}}563 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1564 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3565 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5566 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $vgpr6_vgpr7567 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s64) = COPY $vgpr8_vgpr9568 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s64) = COPY $vgpr10_vgpr11569 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s64) = COPY $vgpr12_vgpr13570 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s64) = COPY $vgpr14_vgpr15571 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64), [[COPY2]](s64), [[COPY3]](s64), [[COPY4]](s64), [[COPY5]](s64), [[COPY6]](s64), [[COPY7]](s64)572 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<8 x s64>)573 %0:_(s64) = COPY $vgpr0_vgpr1574 %1:_(s64) = COPY $vgpr2_vgpr3575 %2:_(s64) = COPY $vgpr4_vgpr5576 %3:_(s64) = COPY $vgpr6_vgpr7577 %4:_(s64) = COPY $vgpr8_vgpr9578 %5:_(s64) = COPY $vgpr10_vgpr11579 %6:_(s64) = COPY $vgpr12_vgpr13580 %7:_(s64) = COPY $vgpr14_vgpr15581 %8:_(<8 x s64>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7582 S_NOP 0, implicit %8583...584 585---586name: legal_v16s64587body: |588 bb.0:589 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr14_vgpr15, $vgpr16_vgpr17, $vgpr18_vgpr19, $vgpr20_vgpr21, $vgpr22_vgpr23, $vgpr24_vgpr25, $vgpr26_vgpr27, $vgpr28_vgpr29, $vgpr30_vgpr31590 ; CHECK-LABEL: name: legal_v16s64591 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr7, $vgpr8_vgpr9, $vgpr10_vgpr11, $vgpr12_vgpr13, $vgpr14_vgpr15, $vgpr16_vgpr17, $vgpr18_vgpr19, $vgpr20_vgpr21, $vgpr22_vgpr23, $vgpr24_vgpr25, $vgpr26_vgpr27, $vgpr28_vgpr29, $vgpr30_vgpr31592 ; CHECK-NEXT: {{ $}}593 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1594 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3595 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr5596 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s64) = COPY $vgpr6_vgpr7597 ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s64) = COPY $vgpr8_vgpr9598 ; CHECK-NEXT: [[COPY5:%[0-9]+]]:_(s64) = COPY $vgpr10_vgpr11599 ; CHECK-NEXT: [[COPY6:%[0-9]+]]:_(s64) = COPY $vgpr12_vgpr13600 ; CHECK-NEXT: [[COPY7:%[0-9]+]]:_(s64) = COPY $vgpr14_vgpr15601 ; CHECK-NEXT: [[COPY8:%[0-9]+]]:_(s64) = COPY $vgpr16_vgpr17602 ; CHECK-NEXT: [[COPY9:%[0-9]+]]:_(s64) = COPY $vgpr18_vgpr19603 ; CHECK-NEXT: [[COPY10:%[0-9]+]]:_(s64) = COPY $vgpr20_vgpr21604 ; CHECK-NEXT: [[COPY11:%[0-9]+]]:_(s64) = COPY $vgpr22_vgpr23605 ; CHECK-NEXT: [[COPY12:%[0-9]+]]:_(s64) = COPY $vgpr24_vgpr25606 ; CHECK-NEXT: [[COPY13:%[0-9]+]]:_(s64) = COPY $vgpr26_vgpr27607 ; CHECK-NEXT: [[COPY14:%[0-9]+]]:_(s64) = COPY $vgpr28_vgpr29608 ; CHECK-NEXT: [[COPY15:%[0-9]+]]:_(s64) = COPY $vgpr30_vgpr31609 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<16 x s64>) = G_BUILD_VECTOR [[COPY]](s64), [[COPY1]](s64), [[COPY2]](s64), [[COPY3]](s64), [[COPY4]](s64), [[COPY5]](s64), [[COPY6]](s64), [[COPY7]](s64), [[COPY8]](s64), [[COPY9]](s64), [[COPY10]](s64), [[COPY11]](s64), [[COPY12]](s64), [[COPY13]](s64), [[COPY14]](s64), [[COPY15]](s64)610 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<16 x s64>)611 %0:_(s64) = COPY $vgpr0_vgpr1612 %1:_(s64) = COPY $vgpr2_vgpr3613 %2:_(s64) = COPY $vgpr4_vgpr5614 %3:_(s64) = COPY $vgpr6_vgpr7615 %4:_(s64) = COPY $vgpr8_vgpr9616 %5:_(s64) = COPY $vgpr10_vgpr11617 %6:_(s64) = COPY $vgpr12_vgpr13618 %7:_(s64) = COPY $vgpr14_vgpr15619 %8:_(s64) = COPY $vgpr16_vgpr17620 %9:_(s64) = COPY $vgpr18_vgpr19621 %10:_(s64) = COPY $vgpr20_vgpr21622 %11:_(s64) = COPY $vgpr22_vgpr23623 %12:_(s64) = COPY $vgpr24_vgpr25624 %13:_(s64) = COPY $vgpr26_vgpr27625 %14:_(s64) = COPY $vgpr28_vgpr29626 %15:_(s64) = COPY $vgpr30_vgpr31627 %16:_(<16 x s64>) = G_BUILD_VECTOR %0, %1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15628 S_NOP 0, implicit %16629...630 631---632name: legal_v2s128633body: |634 bb.0:635 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7636 637 ; CHECK-LABEL: name: legal_v2s128638 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7639 ; CHECK-NEXT: {{ $}}640 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3641 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $vgpr4_vgpr5_vgpr6_vgpr7642 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s128>) = G_BUILD_VECTOR [[COPY]](s128), [[COPY1]](s128)643 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x s128>)644 %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3645 %1:_(s128) = COPY $vgpr4_vgpr5_vgpr6_vgpr7646 %2:_(<2 x s128>) = G_BUILD_VECTOR %0, %1647 S_NOP 0, implicit %2648...649 650---651name: legal_v2p3652body: |653 bb.0:654 liveins: $vgpr0, $vgpr1655 ; CHECK-LABEL: name: legal_v2p3656 ; CHECK: liveins: $vgpr0, $vgpr1657 ; CHECK-NEXT: {{ $}}658 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0659 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p3) = COPY $vgpr1660 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p3>) = G_BUILD_VECTOR [[COPY]](p3), [[COPY1]](p3)661 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x p3>)662 %0:_(p3) = COPY $vgpr0663 %1:_(p3) = COPY $vgpr1664 %2:_(<2 x p3>) = G_BUILD_VECTOR %0, %1665 S_NOP 0, implicit %2666...667---668name: legal_v3p3669body: |670 bb.0:671 liveins: $vgpr0, $vgpr1, $vgpr2672 ; CHECK-LABEL: name: legal_v3p3673 ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2674 ; CHECK-NEXT: {{ $}}675 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0676 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p3) = COPY $vgpr1677 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p3) = COPY $vgpr2678 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x p3>) = G_BUILD_VECTOR [[COPY]](p3), [[COPY1]](p3), [[COPY2]](p3)679 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<3 x p3>)680 %0:_(p3) = COPY $vgpr0681 %1:_(p3) = COPY $vgpr1682 %2:_(p3) = COPY $vgpr2683 %3:_(<3 x p3>) = G_BUILD_VECTOR %0, %1, %2684 S_NOP 0, implicit %3685...686 687---688name: legal_v2p0689body: |690 bb.0:691 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3692 ; CHECK-LABEL: name: legal_v2p0693 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3694 ; CHECK-NEXT: {{ $}}695 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1696 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $vgpr2_vgpr3697 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p0>) = G_BUILD_VECTOR [[COPY]](p0), [[COPY1]](p0)698 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x p0>)699 %0:_(p0) = COPY $vgpr0_vgpr1700 %1:_(p0) = COPY $vgpr2_vgpr3701 %2:_(<2 x p0>) = G_BUILD_VECTOR %0, %1702 S_NOP 0, implicit %2703...704 705---706name: legal_v2p999707body: |708 bb.0:709 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3710 ; CHECK-LABEL: name: legal_v2p999711 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3712 ; CHECK-NEXT: {{ $}}713 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p999) = COPY $vgpr0_vgpr1714 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p999) = COPY $vgpr2_vgpr3715 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p999>) = G_BUILD_VECTOR [[COPY]](p999), [[COPY1]](p999)716 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x p999>)717 %0:_(p999) = COPY $vgpr0_vgpr1718 %1:_(p999) = COPY $vgpr2_vgpr3719 %2:_(<2 x p999>) = G_BUILD_VECTOR %0, %1720 S_NOP 0, implicit %2721...722 723---724name: legal_v2s256725body: |726 bb.0:727 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15728 729 ; CHECK-LABEL: name: legal_v2s256730 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15731 ; CHECK-NEXT: {{ $}}732 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7733 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s256) = COPY $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15734 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s256>) = G_BUILD_VECTOR [[COPY]](s256), [[COPY1]](s256)735 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x s256>)736 %0:_(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7737 %1:_(s256) = COPY $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15738 %2:_(<2 x s256>) = G_BUILD_VECTOR %0, %1739 S_NOP 0, implicit %2740...741 742---743name: legal_v4s128744body: |745 bb.0:746 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10, $vgpr11_vgpr12_vgpr13_vgpr14_vgpr15747 748 ; CHECK-LABEL: name: legal_v4s128749 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10, $vgpr11_vgpr12_vgpr13_vgpr14_vgpr15750 ; CHECK-NEXT: {{ $}}751 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3752 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $vgpr4_vgpr5_vgpr6_vgpr7753 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s128) = COPY $vgpr8_vgpr9_vgpr10_vgpr11754 ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s128) = COPY $vgpr12_vgpr13_vgpr14_vgpr15755 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s128>) = G_BUILD_VECTOR [[COPY]](s128), [[COPY1]](s128), [[COPY2]](s128), [[COPY3]](s128)756 ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<4 x s128>)757 %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3758 %1:_(s128) = COPY $vgpr4_vgpr5_vgpr6_vgpr7759 %2:_(s128) = COPY $vgpr8_vgpr9_vgpr10_vgpr11760 %3:_(s128)= COPY $vgpr12_vgpr13_vgpr14_vgpr15761 %4:_(<4 x s128>) = G_BUILD_VECTOR %0, %1, %2, %3762 S_NOP 0, implicit %4763...764