brintos

brintos / llvm-project-archived public Read only

0
0
Text · 34.6 KiB · 25652b6 Raw
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