brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.3 KiB · d5947c8 Raw
356 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -O0 -run-pass=legalizer %s -o - | FileCheck %s3 4---5name: shufflevector_scalar_src6tracksRegLiveness: true7 8body: |9  bb.0:10    liveins: $vgpr0, $vgpr111 12    ; CHECK-LABEL: name: shufflevector_scalar_src13    ; CHECK: liveins: $vgpr0, $vgpr114    ; CHECK-NEXT: {{  $}}15    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr016    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr117    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32)18    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)19    %0:_(s32) = COPY $vgpr020    %1:_(s32) = COPY $vgpr121    %2:_(<2 x s32>) = G_BUILD_VECTOR %0, %122    $vgpr0_vgpr1 = COPY %223 24...25 26---27name: shufflevector_v2s32_0_128tracksRegLiveness: true29 30body: |31  bb.0:32    liveins: $vgpr0_vgpr1, $vgpr2_vgpr333 34    ; CHECK-LABEL: name: shufflevector_v2s32_0_135    ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr336    ; CHECK-NEXT: {{  $}}37    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr138    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr339    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)40    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[UV]](s32)41    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)42    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY [[UV3]](s32)43    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY2]](s32), [[COPY3]](s32)44    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)45    %0:_(<2 x s32>) = COPY $vgpr0_vgpr146    %1:_(<2 x s32>) = COPY $vgpr2_vgpr347    %2:_(<2 x s32>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(0, 1)48    $vgpr0_vgpr1 = COPY %249 50...51 52---53name: shufflevector_v2s32_1_054tracksRegLiveness: true55 56body: |57  bb.0:58    liveins: $vgpr0_vgpr1, $vgpr2_vgpr359 60    ; CHECK-LABEL: name: shufflevector_v2s32_1_061    ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr362    ; CHECK-NEXT: {{  $}}63    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr164    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr365    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)66    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[UV1]](s32)67    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)68    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY [[UV2]](s32)69    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY2]](s32), [[COPY3]](s32)70    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)71    %0:_(<2 x s32>) = COPY $vgpr0_vgpr172    %1:_(<2 x s32>) = COPY $vgpr2_vgpr373    %2:_(<2 x s32>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(1, 0)74    $vgpr0_vgpr1 = COPY %275 76...77 78---79name: shufflevector_v2s32_0_080tracksRegLiveness: true81 82body: |83  bb.0:84    liveins: $vgpr0_vgpr1, $vgpr2_vgpr385 86    ; CHECK-LABEL: name: shufflevector_v2s32_0_087    ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr388    ; CHECK-NEXT: {{  $}}89    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr190    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr391    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)92    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[UV]](s32)93    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY2]](s32), [[COPY2]](s32)94    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)95    %0:_(<2 x s32>) = COPY $vgpr0_vgpr196    %1:_(<2 x s32>) = COPY $vgpr2_vgpr397    %2:_(<2 x s32>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(0, 0)98    $vgpr0_vgpr1 = COPY %299 100...101 102---103name: shufflevector_v2s32_undef_undef104tracksRegLiveness: true105 106body: |107  bb.0:108    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3109 110    ; CHECK-LABEL: name: shufflevector_v2s32_undef_undef111    ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3112    ; CHECK-NEXT: {{  $}}113    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1114    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr3115    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF116    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[DEF]](s32), [[DEF]](s32)117    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)118    %0:_(<2 x s32>) = COPY $vgpr0_vgpr1119    %1:_(<2 x s32>) = COPY $vgpr2_vgpr3120    %2:_(<2 x s32>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(undef, undef)121    $vgpr0_vgpr1 = COPY %2122 123...124 125---126name: shufflevector_v2s32_undef_0127tracksRegLiveness: true128 129body: |130  bb.0:131    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3132 133    ; CHECK-LABEL: name: shufflevector_v2s32_undef_0134    ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3135    ; CHECK-NEXT: {{  $}}136    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1137    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr3138    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF139    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)140    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[UV]](s32)141    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[DEF]](s32), [[COPY2]](s32)142    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)143    %0:_(<2 x s32>) = COPY $vgpr0_vgpr1144    %1:_(<2 x s32>) = COPY $vgpr2_vgpr3145    %2:_(<2 x s32>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(undef, 0)146    $vgpr0_vgpr1 = COPY %2147 148...149 150---151name: shufflevector_v2s32_0_undef152tracksRegLiveness: true153 154body: |155  bb.0:156    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3157 158    ; CHECK-LABEL: name: shufflevector_v2s32_0_undef159    ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3160    ; CHECK-NEXT: {{  $}}161    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1162    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr3163    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[COPY]](<2 x s32>)164    %0:_(<2 x s32>) = COPY $vgpr0_vgpr1165    %1:_(<2 x s32>) = COPY $vgpr2_vgpr3166    %2:_(<2 x s32>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(0, undef)167    $vgpr0_vgpr1 = COPY %2168 169...170 171---172name: shufflevector_v3s32_3_2_1173tracksRegLiveness: true174 175body: |176  bb.0:177    liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5178 179    ; CHECK-LABEL: name: shufflevector_v3s32_3_2_1180    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5181    ; CHECK-NEXT: {{  $}}182    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2183    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr3_vgpr4_vgpr5184    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<3 x s32>)185    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[UV]](s32)186    ; CHECK-NEXT: [[UV3:%[0-9]+]]:_(s32), [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<3 x s32>)187    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY [[UV5]](s32)188    ; CHECK-NEXT: [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32), [[UV8:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<3 x s32>)189    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY [[UV7]](s32)190    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[COPY2]](s32), [[COPY3]](s32), [[COPY4]](s32)191    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)192    %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2193    %1:_(<3 x s32>) = COPY $vgpr3_vgpr4_vgpr5194    %2:_(<3 x s32>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(3, 2, 1)195    $vgpr0_vgpr1_vgpr2 = COPY %2196 197...198 199---200name: shufflevector_v3s32_3_2_1_smaller201tracksRegLiveness: true202 203body: |204  bb.0:205    liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5206 207    ; CHECK-LABEL: name: shufflevector_v3s32_3_2_1_smaller208    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5209    ; CHECK-NEXT: {{  $}}210    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2211    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr3_vgpr4_vgpr5212    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<3 x s32>)213    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[UV2]](s32)214    ; CHECK-NEXT: [[UV3:%[0-9]+]]:_(s32), [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<3 x s32>)215    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY [[UV4]](s32)216    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY2]](s32), [[COPY3]](s32)217    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)218    %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2219    %1:_(<3 x s32>) = COPY $vgpr3_vgpr4_vgpr5220    %2:_(<2 x s32>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(2, 1)221    $vgpr0_vgpr1 = COPY %2222 223...224 225---226name: shufflevector_v2s16_0_1227tracksRegLiveness: true228 229body: |230  bb.0:231    liveins: $vgpr0, $vgpr1232 233    ; CHECK-LABEL: name: shufflevector_v2s16_0_1234    ; CHECK: liveins: $vgpr0, $vgpr1235    ; CHECK-NEXT: {{  $}}236    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr0237    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr1238    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0239    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[COPY]](<2 x s16>)240    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)241    ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(s32) = G_BITCAST [[COPY]](<2 x s16>)242    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16243    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST1]], [[C1]](s32)244    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535245    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[LSHR]], [[C2]]246    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[LSHR1]], [[C1]](s32)247    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]248    ; CHECK-NEXT: [[BITCAST2:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR]](s32)249    ; CHECK-NEXT: $vgpr0 = COPY [[BITCAST2]](<2 x s16>)250    %0:_(<2 x s16>) = COPY $vgpr0251    %1:_(<2 x s16>) = COPY $vgpr1252    %2:_(<2 x s16>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(0, 1)253    $vgpr0 = COPY %2254 255...256 257---258name: shufflevector_v2s16_1_0259tracksRegLiveness: true260 261body: |262  bb.0:263    liveins: $vgpr0, $vgpr1264 265    ; CHECK-LABEL: name: shufflevector_v2s16_1_0266    ; CHECK: liveins: $vgpr0, $vgpr1267    ; CHECK-NEXT: {{  $}}268    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr0269    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr1270    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[COPY]](<2 x s16>)271    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0272    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16273    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C1]](s32)274    ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(s32) = G_BITCAST [[COPY]](<2 x s16>)275    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST1]], [[C]](s32)276    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535277    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[LSHR1]], [[C2]]278    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND]], [[C1]](s32)279    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[LSHR]], [[SHL]]280    ; CHECK-NEXT: [[BITCAST2:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR]](s32)281    ; CHECK-NEXT: $vgpr0 = COPY [[BITCAST2]](<2 x s16>)282    %0:_(<2 x s16>) = COPY $vgpr0283    %1:_(<2 x s16>) = COPY $vgpr1284    %2:_(<2 x s16>) = G_SHUFFLE_VECTOR %0, %1, shufflemask(1, 0)285    $vgpr0 = COPY %2286 287...288 289---290name: shufflevector_v3s16_2_0291tracksRegLiveness: true292 293body: |294  bb.0:295    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3296 297    ; CHECK-LABEL: name: shufflevector_v3s16_2_0298    ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3299    ; CHECK-NEXT: {{  $}}300    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $vgpr0_vgpr1301    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $vgpr2_vgpr3302    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<2 x s16>), [[UV1:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<4 x s16>)303    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[UV]](<2 x s16>)304    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16305    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)306    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(<2 x s16>), [[UV3:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[COPY1]](<4 x s16>)307    ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(s32) = G_BITCAST [[UV2]](<2 x s16>)308    ; CHECK-NEXT: [[BITCAST2:%[0-9]+]]:_(s32) = G_BITCAST [[UV3]](<2 x s16>)309    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535310    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[BITCAST2]], [[C1]]311    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[LSHR]], [[C]](s32)312    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]313    ; CHECK-NEXT: [[BITCAST3:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR]](s32)314    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[BITCAST1]], [[C1]]315    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[BITCAST]], [[C1]]316    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND2]], [[C]](s32)317    ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND1]], [[SHL1]]318    ; CHECK-NEXT: [[BITCAST4:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR1]](s32)319    ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST3]](<2 x s16>), [[BITCAST4]](<2 x s16>)320    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[CONCAT_VECTORS]](<4 x s16>)321    %0:_(<4 x s16>) = COPY $vgpr0_vgpr1322    %1:_(<4 x s16>) = COPY $vgpr2_vgpr3323    %2:_(<3 x s16>) = G_EXTRACT %0, 0324    %3:_(<3 x s16>) = G_EXTRACT %1, 0325    %4:_(<4 x s16>) = G_SHUFFLE_VECTOR %2, %3, shufflemask(5, 1, 3, 0)326    $vgpr0_vgpr1 = COPY %4327 328...329 330---331name: shufflevector_cache_element332tracksRegLiveness: true333 334body: |335  bb.0:336    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3337 338    ; CHECK-LABEL: name: shufflevector_cache_element339    ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3340    ; CHECK-NEXT: {{  $}}341    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0342    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1343    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)344    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY [[COPY1]](s32)345    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x s32>) = G_BUILD_VECTOR [[COPY2]](s32), [[COPY2]](s32), [[COPY2]](s32), [[COPY2]](s32), [[COPY3]](s32), [[COPY3]](s32), [[COPY3]](s32), [[COPY3]](s32)346    ; CHECK-NEXT: [[EVEC:%[0-9]+]]:_(s32) = G_EXTRACT_VECTOR_ELT [[BUILD_VECTOR]](<8 x s32>), [[COPY1]](s32)347    ; CHECK-NEXT: $vgpr0 = COPY [[EVEC]](s32)348    %0:_(s32) = COPY $vgpr0349    %1:_(s32) = COPY $vgpr1350    %2:_(<2 x s32>) = G_BUILD_VECTOR %0, %1351    %3:_(<8 x s32>) = G_SHUFFLE_VECTOR %2, %2, shufflemask(0, 0, 0, 0, 3, 3, 3, 3)352    %4:_(s32) = G_EXTRACT_VECTOR_ELT %3(<8 x s32>), %1(s32)353    $vgpr0 = COPY %4354 355...356