brintos

brintos / llvm-project-archived public Read only

0
0
Text · 72.8 KiB · be57687 Raw
1505 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=amdgcn -mcpu=tahiti -run-pass=legalizer -allow-ginsert-as-artifact=0 -global-isel-abort=0 %s -o - | FileCheck %s3 4---5name: test_select_s326body: |7  bb.0:8    liveins: $vgpr09    ; CHECK-LABEL: name: test_select_s3210    ; CHECK: liveins: $vgpr011    ; CHECK-NEXT: {{  $}}12    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 013    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr014    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]15    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 116    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 217    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[C1]], [[C2]]18    ; CHECK-NEXT: $vgpr0 = COPY [[SELECT]](s32)19    %0:_(s32) = G_CONSTANT i32 020    %1:_(s32) = COPY $vgpr021 22    %2:_(s1) = G_ICMP intpred(ne), %0, %123    %3:_(s32) = G_CONSTANT i32 124    %4:_(s32) = G_CONSTANT i32 225    %5:_(s32) = G_SELECT %2, %3, %426    $vgpr0 = COPY %527 28...29 30---31name: test_select_s6432body: |33  bb.0:34    liveins: $vgpr035    ; CHECK-LABEL: name: test_select_s6436    ; CHECK: liveins: $vgpr037    ; CHECK-NEXT: {{  $}}38    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 039    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr040    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]41    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 142    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 243    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[C1]], [[C2]]44    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[SELECT]](s64)45    %0:_(s32) = G_CONSTANT i32 046    %1:_(s32) = COPY $vgpr047 48    %2:_(s1) = G_ICMP intpred(ne), %0, %149    %3:_(s64) = G_CONSTANT i64 150    %4:_(s64) = G_CONSTANT i64 251    %5:_(s64) = G_SELECT %2, %3, %452    $vgpr0_vgpr1 = COPY %553 54...55 56---57name: test_select_s4858body: |59  bb.0:60    liveins: $vgpr061    ; CHECK-LABEL: name: test_select_s4862    ; CHECK: liveins: $vgpr063    ; CHECK-NEXT: {{  $}}64    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 065    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr066    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]67    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 168    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 269    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[C1]], [[C2]]70    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[SELECT]](s64)71    %0:_(s32) = G_CONSTANT i32 072    %1:_(s32) = COPY $vgpr073 74    %2:_(s1) = G_ICMP intpred(ne), %0, %175    %3:_(s48) = G_CONSTANT i48 176    %4:_(s48) = G_CONSTANT i48 277    %5:_(s48) = G_SELECT %2, %3, %478    %6:_(s64) = G_ANYEXT %579    $vgpr0_vgpr1 = COPY %680 81...82 83---84name: test_select_s1685body: |86  bb.0:87    liveins: $vgpr088    ; CHECK-LABEL: name: test_select_s1689    ; CHECK: liveins: $vgpr090    ; CHECK-NEXT: {{  $}}91    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 092    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr093    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]94    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 195    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s16) = G_CONSTANT i16 296    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[C1]], [[C2]]97    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT]](s16)98    ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)99    %0:_(s32) = G_CONSTANT i32 0100    %1:_(s32) = COPY $vgpr0101 102    %2:_(s1) = G_ICMP intpred(ne), %0, %1103    %3:_(s16) = G_CONSTANT i16 1104    %4:_(s16) = G_CONSTANT i16 2105    %5:_(s16) = G_SELECT %2, %3, %4106    %6:_(s32) = G_ANYEXT %5107    $vgpr0 = COPY %6108 109...110 111---112name: test_select_s8113body: |114  bb.0:115    liveins: $vgpr0116    ; CHECK-LABEL: name: test_select_s8117    ; CHECK: liveins: $vgpr0118    ; CHECK-NEXT: {{  $}}119    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0120    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0121    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]122    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 1123    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s16) = G_CONSTANT i16 2124    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[C1]], [[C2]]125    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT]](s16)126    ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)127    %0:_(s32) = G_CONSTANT i32 0128    %1:_(s32) = COPY $vgpr0129 130    %2:_(s1) = G_ICMP intpred(ne), %0, %1131    %3:_(s8) = G_CONSTANT i8 1132    %4:_(s8) = G_CONSTANT i8 2133    %5:_(s8) = G_SELECT %2, %3, %4134    %6:_(s32) = G_ANYEXT %5135    $vgpr0 = COPY %6136 137...138 139---140name: test_select_s7141body: |142  bb.0:143    liveins: $vgpr0144    ; CHECK-LABEL: name: test_select_s7145    ; CHECK: liveins: $vgpr0146    ; CHECK-NEXT: {{  $}}147    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0148    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0149    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]150    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s16) = G_CONSTANT i16 1151    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s16) = G_CONSTANT i16 2152    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[C1]], [[C2]]153    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT]](s16)154    ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)155    %0:_(s32) = G_CONSTANT i32 0156    %1:_(s32) = COPY $vgpr0157 158    %2:_(s1) = G_ICMP intpred(ne), %0, %1159    %3:_(s7) = G_CONSTANT i7 1160    %4:_(s7) = G_CONSTANT i7 2161    %5:_(s7) = G_SELECT %2, %3, %4162    %6:_(s32) = G_ANYEXT %5163    $vgpr0 = COPY %6164 165...166 167---168name: test_select_s96169body: |170  bb.0:171    liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5 , $vgpr6172    ; CHECK-LABEL: name: test_select_s96173    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5, $vgpr6174    ; CHECK-NEXT: {{  $}}175    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s96) = COPY $vgpr0_vgpr1_vgpr2176    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s96) = COPY $vgpr3_vgpr4_vgpr5177    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr6178    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0179    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[C]]180    ; CHECK-NEXT: [[EXTRACT:%[0-9]+]]:_(s64) = G_EXTRACT [[COPY]](s96), 0181    ; CHECK-NEXT: [[EXTRACT1:%[0-9]+]]:_(s32) = G_EXTRACT [[COPY]](s96), 64182    ; CHECK-NEXT: [[EXTRACT2:%[0-9]+]]:_(s64) = G_EXTRACT [[COPY1]](s96), 0183    ; CHECK-NEXT: [[EXTRACT3:%[0-9]+]]:_(s32) = G_EXTRACT [[COPY1]](s96), 64184    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[EXTRACT]], [[EXTRACT2]]185    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[EXTRACT1]], [[EXTRACT3]]186    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[SELECT]](s64)187    ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[UV]](s32), [[UV1]](s32), [[SELECT1]](s32)188    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[MV]](s96)189    %0:_(s96) = COPY $vgpr0_vgpr1_vgpr2190    %1:_(s96) = COPY $vgpr3_vgpr4_vgpr5191    %2:_(s32) = COPY $vgpr6192    %3:_(s32) = G_CONSTANT i32 0193 194    %4:_(s1) = G_ICMP intpred(ne), %2, %3195    %5:_(s96) = G_SELECT %4, %0, %1196    $vgpr0_vgpr1_vgpr2 = COPY %5197 198...199 200---201name: test_select_s128202body: |203  bb.0:204    liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7 , $vgpr8205 206    ; CHECK-LABEL: name: test_select_s128207    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8208    ; CHECK-NEXT: {{  $}}209    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3210    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $vgpr4_vgpr5_vgpr6_vgpr7211    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr8212    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0213    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[C]]214    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY]](s128)215    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s64), [[UV3:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY1]](s128)216    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]217    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]218    ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[SELECT]](s64), [[SELECT1]](s64)219    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[MV]](s128)220    %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3221    %1:_(s128) = COPY $vgpr4_vgpr5_vgpr6_vgpr7222    %2:_(s32) = COPY $vgpr8223    %3:_(s32) = G_CONSTANT i32 0224    %4:_(s1) = G_ICMP intpred(ne), %2, %3225    %5:_(s128) = G_SELECT %4, %0, %1226    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %5227 228...229 230---231name: test_select_v2s8232body: |233  bb.0:234    liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4235 236    ; CHECK-LABEL: name: test_select_v2s8237    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4238    ; CHECK-NEXT: {{  $}}239    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0240    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0241    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr1_vgpr2242    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr3_vgpr4243    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[C]]244    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<2 x s32>)245    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY2]](<2 x s32>)246    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[UV]](s32)247    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[UV2]](s32)248    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[TRUNC]], [[TRUNC1]]249    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[UV1]](s32)250    ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[UV3]](s32)251    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[TRUNC2]], [[TRUNC3]]252    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT]](s16)253    ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT1]](s16)254    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[ANYEXT]](s32), [[ANYEXT1]](s32)255    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)256    %0:_(s32) = COPY $vgpr0257    %1:_(s32) = G_CONSTANT i32 0258    %2:_(<2 x s32>) = COPY $vgpr1_vgpr2259    %3:_(<2 x s32>) = COPY $vgpr3_vgpr4260    %4:_(<2 x s8>) = G_TRUNC %2261    %5:_(<2 x s8>) = G_TRUNC %3262 263    %6:_(s1) = G_ICMP intpred(ne), %0, %1264    %7:_(<2 x s8>) = G_SELECT %6, %4, %5265    %8:_(<2 x s32>) = G_ANYEXT %7266    $vgpr0_vgpr1 = COPY %8267 268...269 270---271name: test_select_v3s8272body: |273  bb.0:274    liveins: $vgpr0, $vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6275 276    ; CHECK-LABEL: name: test_select_v3s8277    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6278    ; CHECK-NEXT: {{  $}}279    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0280    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0281    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr1_vgpr2_vgpr3282    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr4_vgpr5_vgpr6283    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[C]]284    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<3 x s32>)285    ; CHECK-NEXT: [[UV3:%[0-9]+]]:_(s32), [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY2]](<3 x s32>)286    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[UV]](s32)287    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[UV3]](s32)288    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[TRUNC]], [[TRUNC1]]289    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[UV1]](s32)290    ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[UV4]](s32)291    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[TRUNC2]], [[TRUNC3]]292    ; CHECK-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[UV2]](s32)293    ; CHECK-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[UV5]](s32)294    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[TRUNC4]], [[TRUNC5]]295    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT]](s16)296    ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT1]](s16)297    ; CHECK-NEXT: [[ANYEXT2:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT2]](s16)298    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[ANYEXT]](s32), [[ANYEXT1]](s32), [[ANYEXT2]](s32)299    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)300    %0:_(s32) = COPY $vgpr0301    %1:_(s32) = G_CONSTANT i32 0302    %2:_(<3 x s32>) = COPY $vgpr1_vgpr2_vgpr3303    %3:_(<3 x s32>) = COPY $vgpr4_vgpr5_vgpr6304    %4:_(<3 x s8>) = G_TRUNC %2305    %5:_(<3 x s8>) = G_TRUNC %3306 307    %6:_(s1) = G_ICMP intpred(ne), %0, %1308    %7:_(<3 x s8>) = G_SELECT %6, %4, %5309    %8:_(<3 x s32>) = G_ANYEXT %7310    $vgpr0_vgpr1_vgpr2 = COPY %8311 312...313 314---315name: test_select_v4s8316body: |317  bb.0:318    liveins: $vgpr0, $vgpr1_vgpr2_vgpr3_vgpr4, $vgpr5_vgpr6_vgpr7_vgpr8319 320    ; CHECK-LABEL: name: test_select_v4s8321    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2_vgpr3_vgpr4, $vgpr5_vgpr6_vgpr7_vgpr8322    ; CHECK-NEXT: {{  $}}323    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0324    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0325    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr1_vgpr2_vgpr3_vgpr4326    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr5_vgpr6_vgpr7_vgpr8327    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[C]]328    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<4 x s32>)329    ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32), [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY2]](<4 x s32>)330    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[UV]](s32)331    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[UV4]](s32)332    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[TRUNC]], [[TRUNC1]]333    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[UV1]](s32)334    ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[UV5]](s32)335    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[TRUNC2]], [[TRUNC3]]336    ; CHECK-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[UV2]](s32)337    ; CHECK-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[UV6]](s32)338    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[TRUNC4]], [[TRUNC5]]339    ; CHECK-NEXT: [[TRUNC6:%[0-9]+]]:_(s16) = G_TRUNC [[UV3]](s32)340    ; CHECK-NEXT: [[TRUNC7:%[0-9]+]]:_(s16) = G_TRUNC [[UV7]](s32)341    ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[TRUNC6]], [[TRUNC7]]342    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT]](s16)343    ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT1]](s16)344    ; CHECK-NEXT: [[ANYEXT2:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT2]](s16)345    ; CHECK-NEXT: [[ANYEXT3:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT3]](s16)346    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[ANYEXT]](s32), [[ANYEXT1]](s32), [[ANYEXT2]](s32), [[ANYEXT3]](s32)347    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)348    %0:_(s32) = COPY $vgpr0349    %1:_(s32) = G_CONSTANT i32 0350    %2:_(<4 x s32>) = COPY $vgpr1_vgpr2_vgpr3_vgpr4351    %3:_(<4 x s32>) = COPY $vgpr5_vgpr6_vgpr7_vgpr8352    %4:_(<4 x s8>) = G_TRUNC %2353    %5:_(<4 x s8>) = G_TRUNC %3354 355    %6:_(s1) = G_ICMP intpred(ne), %0, %1356    %7:_(<4 x s8>) = G_SELECT %6, %4, %5357    %8:_(<4 x s32>) = G_ANYEXT %7358    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %8359 360...361 362---363name: test_select_v2s16364body: |365  bb.0:366    liveins: $vgpr0, $vgpr1, $vgpr2367    ; CHECK-LABEL: name: test_select_v2s16368    ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2369    ; CHECK-NEXT: {{  $}}370    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr0371    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr1372    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2373    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0374    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[C]]375    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<2 x s16>) = G_SELECT [[ICMP]](s1), [[COPY]], [[COPY1]]376    ; CHECK-NEXT: $vgpr0 = COPY [[SELECT]](<2 x s16>)377    %0:_(<2 x s16>) = COPY $vgpr0378    %1:_(<2 x s16>) = COPY $vgpr1379    %2:_(s32) = COPY $vgpr2380    %3:_(s32) = G_CONSTANT i32 0381 382    %4:_(s1) = G_ICMP intpred(ne), %2, %3383    %5:_(<2 x s16>) = G_SELECT %4, %0, %1384    $vgpr0 = COPY %5385 386...387 388---389name: test_select_v3s16390body: |391  bb.0:392    liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5, $vgpr6393    ; CHECK-LABEL: name: test_select_v3s16394    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5, $vgpr6395    ; CHECK-NEXT: {{  $}}396    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2397    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<6 x s16>) = COPY $vgpr3_vgpr4_vgpr5398    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr6399    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0400    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[C]]401    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<2 x s16>), [[UV1:%[0-9]+]]:_(<2 x s16>), [[UV2:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<6 x s16>)402    ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[UV]](<2 x s16>), [[UV1]](<2 x s16>)403    ; CHECK-NEXT: [[UV3:%[0-9]+]]:_(<2 x s16>), [[UV4:%[0-9]+]]:_(<2 x s16>), [[UV5:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[COPY1]](<6 x s16>)404    ; CHECK-NEXT: [[CONCAT_VECTORS1:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[UV3]](<2 x s16>), [[UV4]](<2 x s16>)405    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<4 x s16>) = G_SELECT [[ICMP]](s1), [[CONCAT_VECTORS]], [[CONCAT_VECTORS1]]406    ; CHECK-NEXT: [[UV6:%[0-9]+]]:_(<2 x s16>), [[UV7:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[SELECT]](<4 x s16>)407    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16408    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[C]], [[C1]](s32)409    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[C]], [[SHL]]410    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR]](s32)411    ; CHECK-NEXT: [[CONCAT_VECTORS2:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[UV6]](<2 x s16>), [[UV7]](<2 x s16>), [[BITCAST]](<2 x s16>)412    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[CONCAT_VECTORS2]](<6 x s16>)413    %0:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2414    %1:_(<6 x s16>) = COPY $vgpr3_vgpr4_vgpr5415    %2:_(s32) = COPY $vgpr6416    %3:_(s32) = G_CONSTANT i32 0417    %4:_(s1) = G_ICMP intpred(ne), %2, %3418    %5:_(<3 x s16>), %6:_(<3 x s16>) = G_UNMERGE_VALUES %0419    %7:_(<3 x s16>), %8:_(<3 x s16>) = G_UNMERGE_VALUES %1420    %9:_(<3 x s16>) = G_SELECT %4, %5, %7421    %10:_(<3 x s16>) = G_IMPLICIT_DEF422    %11:_(<6 x s16>) = G_CONCAT_VECTORS %9, %10423    $vgpr0_vgpr1_vgpr2 = COPY %11424 425...426 427---428name: test_select_v4s16429body: |430  bb.0:431    liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4432    ; CHECK-LABEL: name: test_select_v4s16433    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4434    ; CHECK-NEXT: {{  $}}435    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0436    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s16>) = COPY $vgpr1_vgpr2437    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<4 x s16>) = COPY $vgpr3_vgpr4438    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0439    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[C]]440    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<4 x s16>) = G_SELECT [[ICMP]](s1), [[COPY1]], [[COPY2]]441    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[SELECT]](<4 x s16>)442    %0:_(s32) = COPY $vgpr0443    %1:_(<4 x s16>) = COPY $vgpr1_vgpr2444    %2:_(<4 x s16>) = COPY $vgpr3_vgpr4445    %4:_(s32) = G_CONSTANT i32 0446 447    %5:_(s1) = G_ICMP intpred(ne), %0, %4448    %6:_(<4 x s16>) = G_SELECT %5, %1, %2449    $vgpr0_vgpr1 = COPY %6450 451...452 453---454name: test_select_v2s32455body: |456  bb.0:457    liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4458    ; CHECK-LABEL: name: test_select_v2s32459    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4460    ; CHECK-NEXT: {{  $}}461    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0462    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr1_vgpr2463    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr3_vgpr4464    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0465    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[C]]466    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<2 x s32>) = G_SELECT [[ICMP]](s1), [[COPY1]], [[COPY2]]467    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[SELECT]](<2 x s32>)468    %0:_(s32) = COPY $vgpr0469    %1:_(<2 x s32>) = COPY $vgpr1_vgpr2470    %2:_(<2 x s32>) = COPY $vgpr3_vgpr4471    %4:_(s32) = G_CONSTANT i32 0472 473    %5:_(s1) = G_ICMP intpred(ne), %0, %4474    %6:_(<2 x s32>) = G_SELECT %5, %1, %2475    $vgpr0_vgpr1 = COPY %6476 477...478 479---480name: test_select_v3s32481body: |482  bb.0:483    liveins: $vgpr0, $vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6484    ; CHECK-LABEL: name: test_select_v3s32485    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6486    ; CHECK-NEXT: {{  $}}487    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0488    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0489    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr1_vgpr2_vgpr3490    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr4_vgpr5_vgpr6491    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]492    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<3 x s32>)493    ; CHECK-NEXT: [[UV3:%[0-9]+]]:_(s32), [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY2]](<3 x s32>)494    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[UV]], [[UV3]]495    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV4]]496    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[UV2]], [[UV5]]497    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32), [[SELECT2]](s32)498    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)499    %0:_(s32) = G_CONSTANT i32 0500    %1:_(s32) = COPY $vgpr0501    %2:_(<3 x s32>) = COPY $vgpr1_vgpr2_vgpr3502    %3:_(<3 x s32>) = COPY $vgpr4_vgpr5_vgpr6503 504    %4:_(s1) = G_ICMP intpred(ne), %0, %1505    %5:_(<3 x s32>) = G_SELECT %4, %2, %3506    $vgpr0_vgpr1_vgpr2 = COPY %5507 508...509 510---511name: test_select_v4s32512body: |513  bb.0:514    liveins: $vgpr0, $vgpr1_vgpr2_vgpr3_vgpr4, $vgpr5_vgpr6_vgpr7_vgpr8515    ; CHECK-LABEL: name: test_select_v4s32516    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2_vgpr3_vgpr4, $vgpr5_vgpr6_vgpr7_vgpr8517    ; CHECK-NEXT: {{  $}}518    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0519    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0520    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr1_vgpr2_vgpr3_vgpr4521    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr5_vgpr6_vgpr7_vgpr8522    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]523    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<2 x s32>), [[UV1:%[0-9]+]]:_(<2 x s32>) = G_UNMERGE_VALUES [[COPY1]](<4 x s32>)524    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(<2 x s32>), [[UV3:%[0-9]+]]:_(<2 x s32>) = G_UNMERGE_VALUES [[COPY2]](<4 x s32>)525    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<2 x s32>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]526    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(<2 x s32>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]527    ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s32>) = G_CONCAT_VECTORS [[SELECT]](<2 x s32>), [[SELECT1]](<2 x s32>)528    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<4 x s32>)529    %0:_(s32) = G_CONSTANT i32 0530    %1:_(s32) = COPY $vgpr0531    %2:_(<4 x s32>) = COPY $vgpr1_vgpr2_vgpr3_vgpr4532    %3:_(<4 x s32>) = COPY $vgpr5_vgpr6_vgpr7_vgpr8533 534    %4:_(s1) = G_ICMP intpred(ne), %0, %1535    %5:_(<4 x s32>) = G_SELECT %4, %2, %3536    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %5537 538...539 540---541name: test_select_v2s64542body: |543  bb.0:544    liveins: $vgpr0, $vgpr1_vgpr2_vgpr3_vgpr4, $vgpr5_vgpr6_vgpr7_vgpr8545    ; CHECK-LABEL: name: test_select_v2s64546    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2_vgpr3_vgpr4, $vgpr5_vgpr6_vgpr7_vgpr8547    ; CHECK-NEXT: {{  $}}548    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0549    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0550    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr1_vgpr2_vgpr3_vgpr4551    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr5_vgpr6_vgpr7_vgpr8552    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]553    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY1]](<2 x s64>)554    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s64), [[UV3:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY2]](<2 x s64>)555    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]556    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]557    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[SELECT]](s64), [[SELECT1]](s64)558    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)559    %0:_(s32) = G_CONSTANT i32 0560    %1:_(s32) = COPY $vgpr0561    %2:_(<2 x s64>) = COPY $vgpr1_vgpr2_vgpr3_vgpr4562    %3:_(<2 x s64>) = COPY $vgpr5_vgpr6_vgpr7_vgpr8563 564    %4:_(s1) = G_ICMP intpred(ne), %0, %1565    %5:_(<2 x s64>) = G_SELECT %4, %2, %3566    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %5567 568...569 570---571name: test_select_p0572body: |573  bb.0:574    liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4575    ; CHECK-LABEL: name: test_select_p0576    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4577    ; CHECK-NEXT: {{  $}}578    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0579    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0580    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $vgpr1_vgpr2581    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p0) = COPY $vgpr3_vgpr4582    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]583    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[COPY1]], [[COPY2]]584    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[SELECT]](p0)585    %0:_(s32) = G_CONSTANT i32 0586    %1:_(s32) = COPY $vgpr0587    %2:_(p0) = COPY $vgpr1_vgpr2588    %3:_(p0) = COPY $vgpr3_vgpr4589 590    %4:_(s1) = G_ICMP intpred(ne), %0, %1591    %5:_(p0) = G_SELECT %4, %2, %3592    $vgpr0_vgpr1 = COPY %5593 594...595 596---597name: test_select_p1598body: |599  bb.0:600    liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4601    ; CHECK-LABEL: name: test_select_p1602    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4603    ; CHECK-NEXT: {{  $}}604    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0605    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0606    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p1) = COPY $vgpr1_vgpr2607    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p1) = COPY $vgpr3_vgpr4608    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]609    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(p1) = G_SELECT [[ICMP]](s1), [[COPY1]], [[COPY2]]610    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[SELECT]](p1)611    %0:_(s32) = G_CONSTANT i32 0612    %1:_(s32) = COPY $vgpr0613    %2:_(p1) = COPY $vgpr1_vgpr2614    %3:_(p1) = COPY $vgpr3_vgpr4615 616    %4:_(s1) = G_ICMP intpred(ne), %0, %1617    %5:_(p1) = G_SELECT %4, %2, %3618    $vgpr0_vgpr1 = COPY %5619 620...621 622---623name: test_select_p2624body: |625  bb.0:626    liveins: $vgpr0, $vgpr1, $vgpr2627    ; CHECK-LABEL: name: test_select_p2628    ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2629    ; CHECK-NEXT: {{  $}}630    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0631    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0632    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p2) = COPY $vgpr1633    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p2) = COPY $vgpr2634    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]635    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(p2) = G_SELECT [[ICMP]](s1), [[COPY1]], [[COPY2]]636    ; CHECK-NEXT: $vgpr0 = COPY [[SELECT]](p2)637    %0:_(s32) = G_CONSTANT i32 0638    %1:_(s32) = COPY $vgpr0639    %2:_(p2) = COPY $vgpr1640    %3:_(p2) = COPY $vgpr2641 642    %4:_(s1) = G_ICMP intpred(ne), %0, %1643    %5:_(p2) = G_SELECT %4, %2, %3644    $vgpr0 = COPY %5645 646...647 648---649name: test_select_p3650body: |651  bb.0:652    liveins: $vgpr0, $vgpr1, $vgpr2653    ; CHECK-LABEL: name: test_select_p3654    ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2655    ; CHECK-NEXT: {{  $}}656    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0657    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0658    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p3) = COPY $vgpr1659    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p3) = COPY $vgpr2660    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]661    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(p3) = G_SELECT [[ICMP]](s1), [[COPY1]], [[COPY2]]662    ; CHECK-NEXT: $vgpr0 = COPY [[SELECT]](p3)663    %0:_(s32) = G_CONSTANT i32 0664    %1:_(s32) = COPY $vgpr0665    %2:_(p3) = COPY $vgpr1666    %3:_(p3) = COPY $vgpr2667 668    %4:_(s1) = G_ICMP intpred(ne), %0, %1669    %5:_(p3) = G_SELECT %4, %2, %3670    $vgpr0 = COPY %5671 672...673 674---675name: test_select_p4676body: |677  bb.0:678    liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4679    ; CHECK-LABEL: name: test_select_p4680    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4681    ; CHECK-NEXT: {{  $}}682    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0683    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0684    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p4) = COPY $vgpr1_vgpr2685    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p4) = COPY $vgpr3_vgpr4686    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]687    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(p4) = G_SELECT [[ICMP]](s1), [[COPY1]], [[COPY2]]688    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[SELECT]](p4)689    %0:_(s32) = G_CONSTANT i32 0690    %1:_(s32) = COPY $vgpr0691    %2:_(p4) = COPY $vgpr1_vgpr2692    %3:_(p4) = COPY $vgpr3_vgpr4693 694    %4:_(s1) = G_ICMP intpred(ne), %0, %1695    %5:_(p4) = G_SELECT %4, %2, %3696    $vgpr0_vgpr1 = COPY %5697 698...699 700---701name: test_select_p5702body: |703  bb.0:704    liveins: $vgpr0, $vgpr1, $vgpr2705 706    ; CHECK-LABEL: name: test_select_p5707    ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2708    ; CHECK-NEXT: {{  $}}709    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0710    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0711    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p5) = COPY $vgpr1712    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p5) = COPY $vgpr2713    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]714    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(p5) = G_SELECT [[ICMP]](s1), [[COPY1]], [[COPY2]]715    ; CHECK-NEXT: $vgpr0 = COPY [[SELECT]](p5)716    %0:_(s32) = G_CONSTANT i32 0717    %1:_(s32) = COPY $vgpr0718    %2:_(p5) = COPY $vgpr1719    %3:_(p5) = COPY $vgpr2720    %4:_(s1) = G_ICMP intpred(ne), %0, %1721    %5:_(p5) = G_SELECT %4, %2, %3722    $vgpr0 = COPY %5723 724...725 726---727name: test_select_p999728body: |729  bb.0:730    liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4731 732    ; CHECK-LABEL: name: test_select_p999733    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4734    ; CHECK-NEXT: {{  $}}735    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0736    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0737    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(p999) = COPY $vgpr1_vgpr2738    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(p999) = COPY $vgpr3_vgpr4739    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]740    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(p999) = G_SELECT [[ICMP]](s1), [[COPY1]], [[COPY2]]741    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[SELECT]](p999)742    %0:_(s32) = G_CONSTANT i32 0743    %1:_(s32) = COPY $vgpr0744    %2:_(p999) = COPY $vgpr1_vgpr2745    %3:_(p999) = COPY $vgpr3_vgpr4746    %4:_(s1) = G_ICMP intpred(ne), %0, %1747    %5:_(p999) = G_SELECT %4, %2, %3748    $vgpr0_vgpr1 = COPY %5749 750...751 752---753 754name: test_select_v2p3755body: |756  bb.0:757    liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4758 759    ; CHECK-LABEL: name: test_select_v2p3760    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2, $vgpr3_vgpr4761    ; CHECK-NEXT: {{  $}}762    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0763    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x p3>) = COPY $vgpr1_vgpr2764    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x p3>) = COPY $vgpr3_vgpr4765    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0766    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[C]]767    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<2 x p3>) = G_SELECT [[ICMP]](s1), [[COPY1]], [[COPY2]]768    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[SELECT]](<2 x p3>)769    %0:_(s32) = COPY $vgpr0770    %1:_(<2 x p3>) = COPY $vgpr1_vgpr2771    %2:_(<2 x p3>) = COPY $vgpr3_vgpr4772    %4:_(s32) = G_CONSTANT i32 0773    %5:_(s1) = G_ICMP intpred(ne), %0, %4774    %6:_(<2 x p3>) = G_SELECT %5, %1, %2775    $vgpr0_vgpr1 = COPY %6776 777...778 779---780name: test_select_v3p3781body: |782  bb.0:783    liveins: $vgpr0, $vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6784 785    ; CHECK-LABEL: name: test_select_v3p3786    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6787    ; CHECK-NEXT: {{  $}}788    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0789    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0790    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<3 x p3>) = COPY $vgpr1_vgpr2_vgpr3791    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<3 x p3>) = COPY $vgpr4_vgpr5_vgpr6792    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]793    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(p3), [[UV1:%[0-9]+]]:_(p3), [[UV2:%[0-9]+]]:_(p3) = G_UNMERGE_VALUES [[COPY1]](<3 x p3>)794    ; CHECK-NEXT: [[UV3:%[0-9]+]]:_(p3), [[UV4:%[0-9]+]]:_(p3), [[UV5:%[0-9]+]]:_(p3) = G_UNMERGE_VALUES [[COPY2]](<3 x p3>)795    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(p3) = G_SELECT [[ICMP]](s1), [[UV]], [[UV3]]796    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(p3) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV4]]797    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(p3) = G_SELECT [[ICMP]](s1), [[UV2]], [[UV5]]798    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x p3>) = G_BUILD_VECTOR [[SELECT]](p3), [[SELECT1]](p3), [[SELECT2]](p3)799    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x p3>)800    %0:_(s32) = G_CONSTANT i32 0801    %1:_(s32) = COPY $vgpr0802    %2:_(<3 x p3>) = COPY $vgpr1_vgpr2_vgpr3803    %3:_(<3 x p3>) = COPY $vgpr4_vgpr5_vgpr6804 805    %4:_(s1) = G_ICMP intpred(ne), %0, %1806    %5:_(<3 x p3>) = G_SELECT %4, %2, %3807    $vgpr0_vgpr1_vgpr2 = COPY %5808 809...810 811---812name: test_select_v4p3813body: |814  bb.0:815    liveins: $vgpr0, $vgpr1_vgpr2_vgpr3_vgpr4, $vgpr5_vgpr6_vgpr7_vgpr8816 817    ; CHECK-LABEL: name: test_select_v4p3818    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2_vgpr3_vgpr4, $vgpr5_vgpr6_vgpr7_vgpr8819    ; CHECK-NEXT: {{  $}}820    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0821    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0822    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x p3>) = COPY $vgpr1_vgpr2_vgpr3_vgpr4823    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<4 x p3>) = COPY $vgpr5_vgpr6_vgpr7_vgpr8824    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]825    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<2 x p3>), [[UV1:%[0-9]+]]:_(<2 x p3>) = G_UNMERGE_VALUES [[COPY1]](<4 x p3>)826    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(<2 x p3>), [[UV3:%[0-9]+]]:_(<2 x p3>) = G_UNMERGE_VALUES [[COPY2]](<4 x p3>)827    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<2 x p3>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]828    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(<2 x p3>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]829    ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x p3>) = G_CONCAT_VECTORS [[SELECT]](<2 x p3>), [[SELECT1]](<2 x p3>)830    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<4 x p3>)831    %0:_(s32) = G_CONSTANT i32 0832    %1:_(s32) = COPY $vgpr0833    %2:_(<4 x p3>) = COPY $vgpr1_vgpr2_vgpr3_vgpr4834    %3:_(<4 x p3>) = COPY $vgpr5_vgpr6_vgpr7_vgpr8835 836    %4:_(s1) = G_ICMP intpred(ne), %0, %1837    %5:_(<4 x p3>) = G_SELECT %4, %2, %3838    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %5839 840...841 842---843name: test_select_v4p5844body: |845  bb.0:846    liveins: $vgpr0, $vgpr1_vgpr2_vgpr3_vgpr4, $vgpr5_vgpr6_vgpr7_vgpr8847 848    ; CHECK-LABEL: name: test_select_v4p5849    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2_vgpr3_vgpr4, $vgpr5_vgpr6_vgpr7_vgpr8850    ; CHECK-NEXT: {{  $}}851    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0852    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0853    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x p5>) = COPY $vgpr1_vgpr2_vgpr3_vgpr4854    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<4 x p5>) = COPY $vgpr5_vgpr6_vgpr7_vgpr8855    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]856    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(<2 x p5>), [[UV1:%[0-9]+]]:_(<2 x p5>) = G_UNMERGE_VALUES [[COPY1]](<4 x p5>)857    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(<2 x p5>), [[UV3:%[0-9]+]]:_(<2 x p5>) = G_UNMERGE_VALUES [[COPY2]](<4 x p5>)858    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(<2 x p5>) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]859    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(<2 x p5>) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]860    ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x p5>) = G_CONCAT_VECTORS [[SELECT]](<2 x p5>), [[SELECT1]](<2 x p5>)861    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[CONCAT_VECTORS]](<4 x p5>)862    %0:_(s32) = G_CONSTANT i32 0863    %1:_(s32) = COPY $vgpr0864    %2:_(<4 x p5>) = COPY $vgpr1_vgpr2_vgpr3_vgpr4865    %3:_(<4 x p5>) = COPY $vgpr5_vgpr6_vgpr7_vgpr8866 867    %4:_(s1) = G_ICMP intpred(ne), %0, %1868    %5:_(<4 x p5>) = G_SELECT %4, %2, %3869    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %5870 871...872 873---874name: test_select_v2p0875body: |876  bb.0:877    liveins: $vgpr0, $vgpr1_vgpr2_vgpr3_vgpr4, $vgpr5_vgpr6_vgpr7_vgpr8878 879    ; CHECK-LABEL: name: test_select_v2p0880    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2_vgpr3_vgpr4, $vgpr5_vgpr6_vgpr7_vgpr8881    ; CHECK-NEXT: {{  $}}882    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0883    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0884    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x p0>) = COPY $vgpr1_vgpr2_vgpr3_vgpr4885    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x p0>) = COPY $vgpr5_vgpr6_vgpr7_vgpr8886    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]887    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(p0), [[UV1:%[0-9]+]]:_(p0) = G_UNMERGE_VALUES [[COPY1]](<2 x p0>)888    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(p0), [[UV3:%[0-9]+]]:_(p0) = G_UNMERGE_VALUES [[COPY2]](<2 x p0>)889    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[UV]], [[UV2]]890    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV3]]891    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p0>) = G_BUILD_VECTOR [[SELECT]](p0), [[SELECT1]](p0)892    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x p0>)893    %0:_(s32) = G_CONSTANT i32 0894    %1:_(s32) = COPY $vgpr0895    %2:_(<2 x p0>) = COPY $vgpr1_vgpr2_vgpr3_vgpr4896    %3:_(<2 x p0>) = COPY $vgpr5_vgpr6_vgpr7_vgpr8897 898    %4:_(s1) = G_ICMP intpred(ne), %0, %1899    %5:_(<2 x p0>) = G_SELECT %4, %2, %3900    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %5901 902...903 904---905name: test_select_v4p0906body: |907  bb.0:908    liveins: $vgpr0, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8, $vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16909 910    ; CHECK-LABEL: name: test_select_v4p0911    ; CHECK: liveins: $vgpr0, $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8, $vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16912    ; CHECK-NEXT: {{  $}}913    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0914    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0915    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x p0>) = COPY $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8916    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<4 x p0>) = COPY $vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16917    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]918    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(p0), [[UV1:%[0-9]+]]:_(p0), [[UV2:%[0-9]+]]:_(p0), [[UV3:%[0-9]+]]:_(p0) = G_UNMERGE_VALUES [[COPY1]](<4 x p0>)919    ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(p0), [[UV5:%[0-9]+]]:_(p0), [[UV6:%[0-9]+]]:_(p0), [[UV7:%[0-9]+]]:_(p0) = G_UNMERGE_VALUES [[COPY2]](<4 x p0>)920    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[UV]], [[UV4]]921    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[UV1]], [[UV5]]922    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[UV2]], [[UV6]]923    ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[UV3]], [[UV7]]924    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x p0>) = G_BUILD_VECTOR [[SELECT]](p0), [[SELECT1]](p0), [[SELECT2]](p0), [[SELECT3]](p0)925    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[BUILD_VECTOR]](<4 x p0>)926    %0:_(s32) = G_CONSTANT i32 0927    %1:_(s32) = COPY $vgpr0928    %2:_(<4 x p0>) = COPY $vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8929    %3:_(<4 x p0>) = COPY $vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15_vgpr16930 931    %4:_(s1) = G_ICMP intpred(ne), %0, %1932    %5:_(<4 x p0>) = G_SELECT %4, %2, %3933    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %5934 935...936 937---938name: test_select_v2s96939body: |940  bb.0:941    liveins: $vgpr0942 943    ; CHECK-LABEL: name: test_select_v2s96944    ; CHECK: liveins: $vgpr0945    ; CHECK-NEXT: {{  $}}946    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<2 x s96>) = G_IMPLICIT_DEF947    ; CHECK-NEXT: [[DEF1:%[0-9]+]]:_(<2 x s96>) = G_IMPLICIT_DEF948    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0949    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0950    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[C]]951    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s96), [[UV1:%[0-9]+]]:_(s96) = G_UNMERGE_VALUES [[DEF]](<2 x s96>)952    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s96), [[UV3:%[0-9]+]]:_(s96) = G_UNMERGE_VALUES [[DEF1]](<2 x s96>)953    ; CHECK-NEXT: [[EXTRACT:%[0-9]+]]:_(s64) = G_EXTRACT [[UV]](s96), 0954    ; CHECK-NEXT: [[EXTRACT1:%[0-9]+]]:_(s32) = G_EXTRACT [[UV]](s96), 64955    ; CHECK-NEXT: [[EXTRACT2:%[0-9]+]]:_(s64) = G_EXTRACT [[UV2]](s96), 0956    ; CHECK-NEXT: [[EXTRACT3:%[0-9]+]]:_(s32) = G_EXTRACT [[UV2]](s96), 64957    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[EXTRACT]], [[EXTRACT2]]958    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[EXTRACT1]], [[EXTRACT3]]959    ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[SELECT]](s64)960    ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[UV4]](s32), [[UV5]](s32), [[SELECT1]](s32)961    ; CHECK-NEXT: [[EXTRACT4:%[0-9]+]]:_(s64) = G_EXTRACT [[UV1]](s96), 0962    ; CHECK-NEXT: [[EXTRACT5:%[0-9]+]]:_(s32) = G_EXTRACT [[UV1]](s96), 64963    ; CHECK-NEXT: [[EXTRACT6:%[0-9]+]]:_(s64) = G_EXTRACT [[UV3]](s96), 0964    ; CHECK-NEXT: [[EXTRACT7:%[0-9]+]]:_(s32) = G_EXTRACT [[UV3]](s96), 64965    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[EXTRACT4]], [[EXTRACT6]]966    ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[EXTRACT5]], [[EXTRACT7]]967    ; CHECK-NEXT: [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[SELECT2]](s64)968    ; CHECK-NEXT: [[MV1:%[0-9]+]]:_(s96) = G_MERGE_VALUES [[UV6]](s32), [[UV7]](s32), [[SELECT3]](s32)969    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s96>) = G_BUILD_VECTOR [[MV]](s96), [[MV1]](s96)970    ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<2 x s96>)971    %0:_(<2 x s96>) = G_IMPLICIT_DEF972    %1:_(<2 x s96>) = G_IMPLICIT_DEF973    %2:_(s32) = COPY $vgpr0974    %3:_(s32) = G_CONSTANT i32 0975    %4:_(s1) = G_ICMP intpred(ne), %2, %3976    %5:_(<2 x s96>) = G_SELECT %4, %0, %1977    S_NOP 0, implicit %5978 979...980 981---982 983name: test_select_v8p0984body: |985  bb.0:986    liveins: $vgpr0987 988    ; CHECK-LABEL: name: test_select_v8p0989    ; CHECK: liveins: $vgpr0990    ; CHECK-NEXT: {{  $}}991    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0992    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0993    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(p0) = G_IMPLICIT_DEF994    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[C]](s32), [[COPY]]995    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[DEF]], [[DEF]]996    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[DEF]], [[DEF]]997    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[DEF]], [[DEF]]998    ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[DEF]], [[DEF]]999    ; CHECK-NEXT: [[SELECT4:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[DEF]], [[DEF]]1000    ; CHECK-NEXT: [[SELECT5:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[DEF]], [[DEF]]1001    ; CHECK-NEXT: [[SELECT6:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[DEF]], [[DEF]]1002    ; CHECK-NEXT: [[SELECT7:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[DEF]], [[DEF]]1003    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<8 x p0>) = G_BUILD_VECTOR [[SELECT]](p0), [[SELECT1]](p0), [[SELECT2]](p0), [[SELECT3]](p0), [[SELECT4]](p0), [[SELECT5]](p0), [[SELECT6]](p0), [[SELECT7]](p0)1004    ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR]](<8 x p0>)1005    %0:_(s32) = G_CONSTANT i32 01006    %1:_(s32) = COPY $vgpr01007    %2:_(<8 x p0>) = G_IMPLICIT_DEF1008    %3:_(<8 x p0>) = G_IMPLICIT_DEF1009 1010    %4:_(s1) = G_ICMP intpred(ne), %0, %11011    %5:_(<8 x p0>) = G_SELECT %4, %2, %31012    S_NOP 0, implicit %51013...1014---1015name: test_select_v2s1281016body: |1017  bb.0:1018    liveins:  $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, $vgpr161019 1020    ; CHECK-LABEL: name: test_select_v2s1281021    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15, $vgpr161022    ; CHECK-NEXT: {{  $}}1023    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s128>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr71024    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s128>) = COPY $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr151025    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr161026    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 01027    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[C]]1028    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s128), [[UV1:%[0-9]+]]:_(s128) = G_UNMERGE_VALUES [[COPY]](<2 x s128>)1029    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s128), [[UV3:%[0-9]+]]:_(s128) = G_UNMERGE_VALUES [[COPY1]](<2 x s128>)1030    ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(s64), [[UV5:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[UV]](s128)1031    ; CHECK-NEXT: [[UV6:%[0-9]+]]:_(s64), [[UV7:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[UV2]](s128)1032    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[UV4]], [[UV6]]1033    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[UV5]], [[UV7]]1034    ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[SELECT]](s64), [[SELECT1]](s64)1035    ; CHECK-NEXT: [[UV8:%[0-9]+]]:_(s64), [[UV9:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[UV1]](s128)1036    ; CHECK-NEXT: [[UV10:%[0-9]+]]:_(s64), [[UV11:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[UV3]](s128)1037    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[UV8]], [[UV10]]1038    ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[UV9]], [[UV11]]1039    ; CHECK-NEXT: [[MV1:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[SELECT2]](s64), [[SELECT3]](s64)1040    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s128>) = G_BUILD_VECTOR [[MV]](s128), [[MV1]](s128)1041    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[BUILD_VECTOR]](<2 x s128>)1042    %0:_(<2 x s128>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 ,1043    %1:_(<2 x s128>) = COPY $vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr151044    %2:_(s32) = COPY $vgpr161045    %3:_(s32) = G_CONSTANT i32 01046    %4:_(s1) = G_ICMP intpred(ne), %2, %31047    %5:_(<2 x s128>) = G_SELECT %4, %0, %11048    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %51049 1050...1051 1052---1053name: test_vselect_v2s321054body: |1055  bb.0:1056    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr71057    ; CHECK-LABEL: name: test_vselect_v2s321058    ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr71059    ; CHECK-NEXT: {{  $}}1060    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr11061    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr31062    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr4_vgpr51063    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr6_vgpr71064    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)1065    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<2 x s32>)1066    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV]](s32), [[UV2]]1067    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV1]](s32), [[UV3]]1068    ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY2]](<2 x s32>)1069    ; CHECK-NEXT: [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)1070    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[UV4]], [[UV6]]1071    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s1), [[UV5]], [[UV7]]1072    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32)1073    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)1074    %0:_(<2 x s32>) = COPY $vgpr0_vgpr11075    %1:_(<2 x s32>) = COPY $vgpr2_vgpr31076    %2:_(<2 x s32>) = COPY $vgpr4_vgpr51077    %3:_(<2 x s32>) = COPY $vgpr6_vgpr71078 1079    %4:_(<2 x s1>) = G_ICMP intpred(ne), %0, %11080    %5:_(<2 x s32>) = G_SELECT %4, %2, %31081    $vgpr0_vgpr1 = COPY %51082 1083...1084 1085---1086name: test_vselect_v3s321087body: |1088  bb.0:1089    liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr81090    ; CHECK-LABEL: name: test_vselect_v3s321091    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr81092    ; CHECK-NEXT: {{  $}}1093    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr21094    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr3_vgpr4_vgpr51095    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr6_vgpr7_vgpr81096    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<3 x s32>)1097    ; CHECK-NEXT: [[UV3:%[0-9]+]]:_(s32), [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<3 x s32>)1098    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV]](s32), [[UV3]]1099    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV1]](s32), [[UV4]]1100    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV2]](s32), [[UV5]]1101    ; CHECK-NEXT: [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32), [[UV8:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<3 x s32>)1102    ; CHECK-NEXT: [[UV9:%[0-9]+]]:_(s32), [[UV10:%[0-9]+]]:_(s32), [[UV11:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY2]](<3 x s32>)1103    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[UV6]], [[UV9]]1104    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s1), [[UV7]], [[UV10]]1105    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s1), [[UV8]], [[UV11]]1106    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32), [[SELECT2]](s32)1107    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)1108    %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr21109    %1:_(<3 x s32>) = COPY $vgpr3_vgpr4_vgpr51110    %2:_(<3 x s32>) = COPY $vgpr6_vgpr7_vgpr81111 1112    %3:_(<3 x s1>) = G_ICMP intpred(ne), %0, %11113    %4:_(<3 x s32>) = G_SELECT %3, %1, %21114    $vgpr0_vgpr1_vgpr2 = COPY %41115 1116...1117 1118---1119name: test_vselect_v4s321120body: |1121  bb.0:1122    liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr111123    ; CHECK-LABEL: name: test_vselect_v4s321124    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr111125    ; CHECK-NEXT: {{  $}}1126    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr31127    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr4_vgpr5_vgpr6_vgpr71128    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr8_vgpr9_vgpr10_vgpr111129    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<4 x s32>)1130    ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32), [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<4 x s32>)1131    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV]](s32), [[UV4]]1132    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV1]](s32), [[UV5]]1133    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV2]](s32), [[UV6]]1134    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV3]](s32), [[UV7]]1135    ; CHECK-NEXT: [[UV8:%[0-9]+]]:_(s32), [[UV9:%[0-9]+]]:_(s32), [[UV10:%[0-9]+]]:_(s32), [[UV11:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<4 x s32>)1136    ; CHECK-NEXT: [[UV12:%[0-9]+]]:_(s32), [[UV13:%[0-9]+]]:_(s32), [[UV14:%[0-9]+]]:_(s32), [[UV15:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY2]](<4 x s32>)1137    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[ICMP]](s1), [[UV8]], [[UV12]]1138    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[ICMP1]](s1), [[UV9]], [[UV13]]1139    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s32) = G_SELECT [[ICMP2]](s1), [[UV10]], [[UV14]]1140    ; CHECK-NEXT: [[SELECT3:%[0-9]+]]:_(s32) = G_SELECT [[ICMP3]](s1), [[UV11]], [[UV15]]1141    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[SELECT]](s32), [[SELECT1]](s32), [[SELECT2]](s32), [[SELECT3]](s32)1142    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<4 x s32>)1143    %0:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr31144    %1:_(<4 x s32>) = COPY $vgpr4_vgpr5_vgpr6_vgpr71145    %2:_(<4 x s32>) = COPY $vgpr8_vgpr9_vgpr10_vgpr111146 1147    %3:_(<4 x s1>) = G_ICMP intpred(ne), %0, %11148    %4:_(<4 x s32>) = G_SELECT %3, %1, %21149    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %41150 1151...1152 1153---1154name: test_vselect_v2s641155body: |1156  bb.0:1157    liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr111158    ; CHECK-LABEL: name: test_vselect_v2s641159    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr111160    ; CHECK-NEXT: {{  $}}1161    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr31162    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr4_vgpr5_vgpr6_vgpr71163    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr8_vgpr9_vgpr10_vgpr111164    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY]](<2 x s64>)1165    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s64), [[UV3:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY1]](<2 x s64>)1166    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV]](s64), [[UV2]]1167    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV1]](s64), [[UV3]]1168    ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(s64), [[UV5:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY1]](<2 x s64>)1169    ; CHECK-NEXT: [[UV6:%[0-9]+]]:_(s64), [[UV7:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY2]](<2 x s64>)1170    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s1), [[UV4]], [[UV6]]1171    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s64) = G_SELECT [[ICMP1]](s1), [[UV5]], [[UV7]]1172    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[SELECT]](s64), [[SELECT1]](s64)1173    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)1174    %0:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr31175    %1:_(<2 x s64>) = COPY $vgpr4_vgpr5_vgpr6_vgpr71176    %2:_(<2 x s64>) = COPY $vgpr8_vgpr9_vgpr10_vgpr111177 1178    %3:_(<2 x s1>) = G_ICMP intpred(ne), %0, %11179    %4:_(<2 x s64>) = G_SELECT %3, %1, %21180    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %41181 1182...1183 1184---1185name: test_vselect_v2p31186body: |1187  bb.0:1188    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr71189    ; CHECK-LABEL: name: test_vselect_v2p31190    ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr71191    ; CHECK-NEXT: {{  $}}1192    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr11193    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr31194    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x p3>) = COPY $vgpr4_vgpr51195    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<2 x p3>) = COPY $vgpr6_vgpr71196    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)1197    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<2 x s32>)1198    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV]](s32), [[UV2]]1199    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV1]](s32), [[UV3]]1200    ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(p3), [[UV5:%[0-9]+]]:_(p3) = G_UNMERGE_VALUES [[COPY2]](<2 x p3>)1201    ; CHECK-NEXT: [[UV6:%[0-9]+]]:_(p3), [[UV7:%[0-9]+]]:_(p3) = G_UNMERGE_VALUES [[COPY3]](<2 x p3>)1202    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(p3) = G_SELECT [[ICMP]](s1), [[UV4]], [[UV6]]1203    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(p3) = G_SELECT [[ICMP1]](s1), [[UV5]], [[UV7]]1204    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p3>) = G_BUILD_VECTOR [[SELECT]](p3), [[SELECT1]](p3)1205    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x p3>)1206    %0:_(<2 x s32>) = COPY $vgpr0_vgpr11207    %1:_(<2 x s32>) = COPY $vgpr2_vgpr31208    %2:_(<2 x p3>) = COPY $vgpr4_vgpr51209    %3:_(<2 x p3>) = COPY $vgpr6_vgpr71210 1211    %4:_(<2 x s1>) = G_ICMP intpred(ne), %0, %11212    %5:_(<2 x p3>) = G_SELECT %4, %2, %31213    $vgpr0_vgpr1 = COPY %51214 1215...1216 1217---1218name: test_vselect_v2p01219body: |1220  bb.0:1221    liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr151222 1223    ; CHECK-LABEL: name: test_vselect_v2p01224    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11, $vgpr12_vgpr13_vgpr14_vgpr151225    ; CHECK-NEXT: {{  $}}1226    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr31227    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr4_vgpr5_vgpr6_vgpr71228    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x p0>) = COPY $vgpr8_vgpr9_vgpr10_vgpr111229    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<2 x p0>) = COPY $vgpr12_vgpr13_vgpr14_vgpr151230    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY]](<2 x s64>)1231    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s64), [[UV3:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY1]](<2 x s64>)1232    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV]](s64), [[UV2]]1233    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV1]](s64), [[UV3]]1234    ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(p0), [[UV5:%[0-9]+]]:_(p0) = G_UNMERGE_VALUES [[COPY2]](<2 x p0>)1235    ; CHECK-NEXT: [[UV6:%[0-9]+]]:_(p0), [[UV7:%[0-9]+]]:_(p0) = G_UNMERGE_VALUES [[COPY3]](<2 x p0>)1236    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(p0) = G_SELECT [[ICMP]](s1), [[UV4]], [[UV6]]1237    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(p0) = G_SELECT [[ICMP1]](s1), [[UV5]], [[UV7]]1238    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x p0>) = G_BUILD_VECTOR [[SELECT]](p0), [[SELECT1]](p0)1239    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x p0>)1240    %0:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr31241    %1:_(<2 x s64>) = COPY $vgpr4_vgpr5_vgpr6_vgpr71242    %2:_(<2 x p0>) = COPY $vgpr8_vgpr9_vgpr10_vgpr111243    %3:_(<2 x p0>) = COPY $vgpr12_vgpr13_vgpr14_vgpr151244 1245    %4:_(<2 x s1>) = G_ICMP intpred(ne), %0, %11246    %5:_(<2 x p0>) = G_SELECT %4, %2, %31247    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %51248 1249...1250 1251---1252name: test_vselect_v3s81253body: |1254  bb.0:1255    liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr8, $vgpr9_vgpr10_vgpr111256    ; CHECK-LABEL: name: test_vselect_v3s81257    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr8, $vgpr9_vgpr10_vgpr111258    ; CHECK-NEXT: {{  $}}1259    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr21260    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr3_vgpr4_vgpr51261    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr6_vgpr7_vgpr81262    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr9_vgpr10_vgpr111263    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<3 x s32>)1264    ; CHECK-NEXT: [[UV3:%[0-9]+]]:_(s32), [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<3 x s32>)1265    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV]](s32), [[UV3]]1266    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV1]](s32), [[UV4]]1267    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV2]](s32), [[UV5]]1268    ; CHECK-NEXT: [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32), [[UV8:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY2]](<3 x s32>)1269    ; CHECK-NEXT: [[UV9:%[0-9]+]]:_(s32), [[UV10:%[0-9]+]]:_(s32), [[UV11:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY3]](<3 x s32>)1270    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[UV6]](s32)1271    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[UV9]](s32)1272    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[TRUNC]], [[TRUNC1]]1273    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[UV7]](s32)1274    ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[UV10]](s32)1275    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s16) = G_SELECT [[ICMP1]](s1), [[TRUNC2]], [[TRUNC3]]1276    ; CHECK-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[UV8]](s32)1277    ; CHECK-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[UV11]](s32)1278    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s16) = G_SELECT [[ICMP2]](s1), [[TRUNC4]], [[TRUNC5]]1279    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT]](s16)1280    ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT1]](s16)1281    ; CHECK-NEXT: [[ANYEXT2:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT2]](s16)1282    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[ANYEXT]](s32), [[ANYEXT1]](s32), [[ANYEXT2]](s32)1283    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)1284    %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr21285    %1:_(<3 x s32>) = COPY $vgpr3_vgpr4_vgpr51286    %2:_(<3 x s32>) = COPY $vgpr6_vgpr7_vgpr81287    %3:_(<3 x s32>) = COPY $vgpr9_vgpr10_vgpr111288    %4:_(<3 x s1>) = G_ICMP intpred(ne), %0, %11289    %5:_(<3 x s8>) = G_TRUNC %21290    %6:_(<3 x s8>) = G_TRUNC %31291    %7:_(<3 x s8>) = G_SELECT %4, %5, %61292    %8:_(<3 x s32>) = G_ANYEXT %71293    $vgpr0_vgpr1_vgpr2 = COPY %81294 1295...1296 1297---1298name: test_vselect_v3s161299body: |1300  bb.0:1301    liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr8, $vgpr9_vgpr10_vgpr111302    ; CHECK-LABEL: name: test_vselect_v3s161303    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr8, $vgpr9_vgpr10_vgpr111304    ; CHECK-NEXT: {{  $}}1305    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr21306    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<6 x s16>) = COPY $vgpr3_vgpr4_vgpr51307    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr6_vgpr7_vgpr81308    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr9_vgpr10_vgpr111309    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY2]](<3 x s32>)1310    ; CHECK-NEXT: [[UV3:%[0-9]+]]:_(s32), [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY3]](<3 x s32>)1311    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV]](s32), [[UV3]]1312    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV1]](s32), [[UV4]]1313    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV2]](s32), [[UV5]]1314    ; CHECK-NEXT: [[UV6:%[0-9]+]]:_(<2 x s16>), [[UV7:%[0-9]+]]:_(<2 x s16>), [[UV8:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[COPY]](<6 x s16>)1315    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[UV6]](<2 x s16>)1316    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[BITCAST]](s32)1317    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 161318    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)1319    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR]](s32)1320    ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(s32) = G_BITCAST [[UV7]](<2 x s16>)1321    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[BITCAST1]](s32)1322    ; CHECK-NEXT: [[UV9:%[0-9]+]]:_(<2 x s16>), [[UV10:%[0-9]+]]:_(<2 x s16>), [[UV11:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[COPY1]](<6 x s16>)1323    ; CHECK-NEXT: [[BITCAST2:%[0-9]+]]:_(s32) = G_BITCAST [[UV9]](<2 x s16>)1324    ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[BITCAST2]](s32)1325    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST2]], [[C]](s32)1326    ; CHECK-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR1]](s32)1327    ; CHECK-NEXT: [[BITCAST3:%[0-9]+]]:_(s32) = G_BITCAST [[UV10]](<2 x s16>)1328    ; CHECK-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[BITCAST3]](s32)1329    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[TRUNC]], [[TRUNC3]]1330    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s16) = G_SELECT [[ICMP1]](s1), [[TRUNC1]], [[TRUNC4]]1331    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s16) = G_SELECT [[ICMP2]](s1), [[TRUNC2]], [[TRUNC5]]1332    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[SELECT]](s16)1333    ; CHECK-NEXT: [[ZEXT1:%[0-9]+]]:_(s32) = G_ZEXT [[SELECT1]](s16)1334    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[ZEXT1]], [[C]](s32)1335    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[ZEXT]], [[SHL]]1336    ; CHECK-NEXT: [[BITCAST4:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR]](s32)1337    ; CHECK-NEXT: [[ZEXT2:%[0-9]+]]:_(s32) = G_ZEXT [[SELECT2]](s16)1338    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 01339    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[C1]], [[C]](s32)1340    ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[ZEXT2]], [[SHL1]]1341    ; CHECK-NEXT: [[BITCAST5:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR1]](s32)1342    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[C1]], [[C]](s32)1343    ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[C1]], [[SHL2]]1344    ; CHECK-NEXT: [[BITCAST6:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR2]](s32)1345    ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BITCAST4]](<2 x s16>), [[BITCAST5]](<2 x s16>), [[BITCAST6]](<2 x s16>)1346    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[CONCAT_VECTORS]](<6 x s16>)1347    %0:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr21348    %1:_(<6 x s16>) = COPY $vgpr3_vgpr4_vgpr51349    %2:_(<3 x s32>) = COPY $vgpr6_vgpr7_vgpr81350    %3:_(<3 x s32>) = COPY $vgpr9_vgpr10_vgpr111351    %4:_(<3 x s1>) = G_ICMP intpred(ne), %2, %31352    %5:_(<3 x s16>), %6:_(<3 x s16>) = G_UNMERGE_VALUES %01353    %7:_(<3 x s16>), %8:_(<3 x s16>) = G_UNMERGE_VALUES %11354    %9:_(<3 x s16>) = G_SELECT %4, %5, %71355    %10:_(<3 x s16>) = G_IMPLICIT_DEF1356    %11:_(<6 x s16>) = G_CONCAT_VECTORS %9, %101357    $vgpr0_vgpr1_vgpr2 = COPY %111358...1359 1360---1361name: test_select_s11362body: |1363  bb.0:1364    liveins: $vgpr0, $vgpr1, $vgpr21365 1366    ; CHECK-LABEL: name: test_select_s11367    ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr21368    ; CHECK-NEXT: {{  $}}1369    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr01370    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr11371    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr21372    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 01373    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY]](s32), [[C]]1374    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY1]](s32), [[C]]1375    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[COPY2]](s32), [[C]]1376    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s16) = G_ANYEXT [[ICMP1]](s1)1377    ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s16) = G_ANYEXT [[ICMP2]](s1)1378    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[ANYEXT]], [[ANYEXT1]]1379    ; CHECK-NEXT: [[ANYEXT2:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT]](s16)1380    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 11381    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[ANYEXT2]], [[C1]]1382    ; CHECK-NEXT: $vgpr0 = COPY [[AND]](s32)1383    %0:_(s32) = COPY $vgpr01384    %1:_(s32) = COPY $vgpr11385    %2:_(s32) = COPY $vgpr21386    %3:_(s32) = G_CONSTANT i32 01387    %4:_(s1) = G_ICMP intpred(ne), %0, %31388    %5:_(s1) = G_ICMP intpred(ne), %1, %31389    %6:_(s1) = G_ICMP intpred(ne), %2, %31390    %7:_(s1) = G_SELECT %4, %5, %61391    %8:_(s32) = G_ZEXT %71392    $vgpr0 = COPY %81393 1394...1395 1396---1397name: test_select_v2s11398body: |1399  bb.0:1400    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr71401 1402    ; CHECK-LABEL: name: test_select_v2s11403    ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr5, $vgpr6_vgpr71404    ; CHECK-NEXT: {{  $}}1405    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr11406    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr31407    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr4_vgpr51408    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr6_vgpr71409    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)1410    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)1411    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV]](s32), [[UV2]]1412    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV1]](s32), [[UV3]]1413    ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<2 x s32>)1414    ; CHECK-NEXT: [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)1415    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV4]](s32), [[UV6]]1416    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV5]](s32), [[UV7]]1417    ; CHECK-NEXT: [[UV8:%[0-9]+]]:_(s32), [[UV9:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY2]](<2 x s32>)1418    ; CHECK-NEXT: [[UV10:%[0-9]+]]:_(s32), [[UV11:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY3]](<2 x s32>)1419    ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV8]](s32), [[UV10]]1420    ; CHECK-NEXT: [[ICMP5:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV9]](s32), [[UV11]]1421    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s16) = G_ANYEXT [[ICMP2]](s1)1422    ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s16) = G_ANYEXT [[ICMP4]](s1)1423    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[ANYEXT]], [[ANYEXT1]]1424    ; CHECK-NEXT: [[ANYEXT2:%[0-9]+]]:_(s16) = G_ANYEXT [[ICMP3]](s1)1425    ; CHECK-NEXT: [[ANYEXT3:%[0-9]+]]:_(s16) = G_ANYEXT [[ICMP5]](s1)1426    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s16) = G_SELECT [[ICMP1]](s1), [[ANYEXT2]], [[ANYEXT3]]1427    ; CHECK-NEXT: [[ANYEXT4:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT]](s16)1428    ; CHECK-NEXT: [[ANYEXT5:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT1]](s16)1429    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 11430    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[ANYEXT4]], [[C]]1431    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[ANYEXT5]], [[C]]1432    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[AND]](s32), [[AND1]](s32)1433    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[BUILD_VECTOR]](<2 x s32>)1434    %0:_(<2 x s32>) = COPY $vgpr0_vgpr11435    %1:_(<2 x s32>) = COPY $vgpr2_vgpr31436    %2:_(<2 x s32>) = COPY $vgpr4_vgpr51437    %3:_(<2 x s32>) = COPY $vgpr6_vgpr71438    %4:_(<2 x s1>) = G_ICMP intpred(ne), %0, %31439    %5:_(<2 x s1>) = G_ICMP intpred(ne), %1, %31440    %6:_(<2 x s1>) = G_ICMP intpred(ne), %2, %31441    %7:_(<2 x s1>) = G_SELECT %4, %5, %61442    %8:_(<2 x s32>) = G_ZEXT %71443    $vgpr0_vgpr1 = COPY %81444 1445...1446 1447---1448name: test_select_v3s11449body: |1450  bb.0:1451    liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr8, $vgpr9_vgpr10_vgpr111452 1453    ; CHECK-LABEL: name: test_select_v3s11454    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5, $vgpr6_vgpr7_vgpr8, $vgpr9_vgpr10_vgpr111455    ; CHECK-NEXT: {{  $}}1456    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr21457    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr3_vgpr4_vgpr51458    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr6_vgpr7_vgpr81459    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr9_vgpr10_vgpr111460    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<3 x s32>)1461    ; CHECK-NEXT: [[UV3:%[0-9]+]]:_(s32), [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY3]](<3 x s32>)1462    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV]](s32), [[UV3]]1463    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV1]](s32), [[UV4]]1464    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV2]](s32), [[UV5]]1465    ; CHECK-NEXT: [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32), [[UV8:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<3 x s32>)1466    ; CHECK-NEXT: [[UV9:%[0-9]+]]:_(s32), [[UV10:%[0-9]+]]:_(s32), [[UV11:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY3]](<3 x s32>)1467    ; CHECK-NEXT: [[ICMP3:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV6]](s32), [[UV9]]1468    ; CHECK-NEXT: [[ICMP4:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV7]](s32), [[UV10]]1469    ; CHECK-NEXT: [[ICMP5:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV8]](s32), [[UV11]]1470    ; CHECK-NEXT: [[UV12:%[0-9]+]]:_(s32), [[UV13:%[0-9]+]]:_(s32), [[UV14:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY2]](<3 x s32>)1471    ; CHECK-NEXT: [[UV15:%[0-9]+]]:_(s32), [[UV16:%[0-9]+]]:_(s32), [[UV17:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY3]](<3 x s32>)1472    ; CHECK-NEXT: [[ICMP6:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV12]](s32), [[UV15]]1473    ; CHECK-NEXT: [[ICMP7:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV13]](s32), [[UV16]]1474    ; CHECK-NEXT: [[ICMP8:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV14]](s32), [[UV17]]1475    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s16) = G_ANYEXT [[ICMP3]](s1)1476    ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s16) = G_ANYEXT [[ICMP6]](s1)1477    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[ICMP]](s1), [[ANYEXT]], [[ANYEXT1]]1478    ; CHECK-NEXT: [[ANYEXT2:%[0-9]+]]:_(s16) = G_ANYEXT [[ICMP4]](s1)1479    ; CHECK-NEXT: [[ANYEXT3:%[0-9]+]]:_(s16) = G_ANYEXT [[ICMP7]](s1)1480    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s16) = G_SELECT [[ICMP1]](s1), [[ANYEXT2]], [[ANYEXT3]]1481    ; CHECK-NEXT: [[ANYEXT4:%[0-9]+]]:_(s16) = G_ANYEXT [[ICMP5]](s1)1482    ; CHECK-NEXT: [[ANYEXT5:%[0-9]+]]:_(s16) = G_ANYEXT [[ICMP8]](s1)1483    ; CHECK-NEXT: [[SELECT2:%[0-9]+]]:_(s16) = G_SELECT [[ICMP2]](s1), [[ANYEXT4]], [[ANYEXT5]]1484    ; CHECK-NEXT: [[ANYEXT6:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT]](s16)1485    ; CHECK-NEXT: [[ANYEXT7:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT1]](s16)1486    ; CHECK-NEXT: [[ANYEXT8:%[0-9]+]]:_(s32) = G_ANYEXT [[SELECT2]](s16)1487    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 11488    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[ANYEXT6]], [[C]]1489    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[ANYEXT7]], [[C]]1490    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[ANYEXT8]], [[C]]1491    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[AND]](s32), [[AND1]](s32), [[AND2]](s32)1492    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)1493    %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr21494    %1:_(<3 x s32>) = COPY $vgpr3_vgpr4_vgpr51495    %2:_(<3 x s32>) = COPY $vgpr6_vgpr7_vgpr81496    %3:_(<3 x s32>) = COPY $vgpr9_vgpr10_vgpr111497    %4:_(<3 x s1>) = G_ICMP intpred(ne), %0, %31498    %5:_(<3 x s1>) = G_ICMP intpred(ne), %1, %31499    %6:_(<3 x s1>) = G_ICMP intpred(ne), %2, %31500    %7:_(<3 x s1>) = G_SELECT %4, %5, %61501    %8:_(<3 x s32>) = G_ZEXT %71502    $vgpr0_vgpr1_vgpr2 = COPY %81503 1504...1505