brintos

brintos / llvm-project-archived public Read only

0
0
Text · 32.7 KiB · aab47bc Raw
830 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=legalizer -allow-ginsert-as-artifact=0 -global-isel-abort=0 %s -o - | FileCheck %s3# RUN: llc -O0 -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer -allow-ginsert-as-artifact=0 -global-isel-abort=0 %s -o - | FileCheck %s4 5---6name: test_freeze_s17body: |8  bb.0:9 10    ; CHECK-LABEL: name: test_freeze_s111    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr012    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[COPY]](s32)13    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s1) = G_FREEZE [[TRUNC]]14    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FREEZE]](s1)15    ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)16    %0:_(s32) = COPY $vgpr017    %1:_(s1) = G_TRUNC %018    %2:_(s1) = G_FREEZE %119    %3:_(s32) = G_ANYEXT %220    $vgpr0 = COPY %321...22 23---24name: test_freeze_s725body: |26  bb.0:27 28    ; CHECK-LABEL: name: test_freeze_s729    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr030    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s32) = G_FREEZE [[COPY]]31    ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](s32)32    %0:_(s32) = COPY $vgpr033    %1:_(s7) = G_TRUNC %034    %2:_(s7) = G_FREEZE %135    %3:_(s32) = G_ANYEXT %236    $vgpr0 = COPY %337...38 39---40name: test_freeze_s841body: |42  bb.0:43 44    ; CHECK-LABEL: name: test_freeze_s845    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr046    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s32) = G_FREEZE [[COPY]]47    ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](s32)48    %0:_(s32) = COPY $vgpr049    %1:_(s8) = G_TRUNC %050    %2:_(s8) = G_FREEZE %151    %3:_(s32) = G_ANYEXT %252    $vgpr0 = COPY %353...54 55---56name: test_freeze_s1657body: |58  bb.0:59 60    ; CHECK-LABEL: name: test_freeze_s1661    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr062    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)63    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s16) = G_FREEZE [[TRUNC]]64    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FREEZE]](s16)65    ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)66    %0:_(s32) = COPY $vgpr067    %1:_(s16) = G_TRUNC %068    %2:_(s16) = G_FREEZE %169    %3:_(s32) = G_ANYEXT %270    $vgpr0 = COPY %371...72 73---74name: test_freeze_s3275body: |76  bb.0:77 78    ; CHECK-LABEL: name: test_freeze_s3279    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr080    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s32) = G_FREEZE [[COPY]]81    ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](s32)82    %0:_(s32) = COPY $vgpr083    %1:_(s32) = G_FREEZE %084    $vgpr0 = COPY %185...86 87---88name: test_freeze_s4889body: |90  bb.0:91 92    ; CHECK-LABEL: name: test_freeze_s4893    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr194    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[COPY]]95    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](s64)96    %0:_(s64) = COPY $vgpr0_vgpr197    %1:_(s48) = G_TRUNC %098    %2:_(s48) = G_FREEZE %199    %3:_(s64) = G_ANYEXT %2100    $vgpr0_vgpr1 = COPY %3101...102 103---104name: test_freeze_s64105body: |106  bb.0:107 108    ; CHECK-LABEL: name: test_freeze_s64109    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1110    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s64) = G_FREEZE [[COPY]]111    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](s64)112    %0:_(s64) = COPY $vgpr0_vgpr1113    %1:_(s64) = G_FREEZE %0114    $vgpr0_vgpr1 = COPY %1115...116 117---118name: test_freeze_s65119body: |120  bb.0:121 122    ; CHECK-LABEL: name: test_freeze_s65123    ; CHECK: [[COPY:%[0-9]+]]:_(s96) = COPY $vgpr0_vgpr1_vgpr2124    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s96)125    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF126    ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[UV]](s32), [[UV1]](s32)127    ; CHECK-NEXT: [[MV1:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[UV2]](s32), [[DEF]](s32)128    ; CHECK-NEXT: [[MV2:%[0-9]+]]:_(s128) = G_MERGE_VALUES [[MV]](s64), [[MV1]](s64)129    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s128) = G_FREEZE [[MV2]]130    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s96) = G_TRUNC [[FREEZE]](s128)131    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[TRUNC]](s96)132    %0:_(s96) = COPY $vgpr0_vgpr1_vgpr2133    %1:_(s65) = G_TRUNC %0134    %2:_(s65) = G_FREEZE %1135    %3:_(s96) = G_ANYEXT %2136    $vgpr0_vgpr1_vgpr2 = COPY %3137...138 139---140name: test_freeze_s128141body: |142  bb.0:143 144    ; CHECK-LABEL: name: test_freeze_s128145    ; CHECK: [[COPY:%[0-9]+]]:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3146    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s128) = G_FREEZE [[COPY]]147    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](s128)148    %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3149    %1:_(s128) = G_FREEZE %0150    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1151...152 153---154name: test_freeze_256155body: |156  bb.0:157 158    ; CHECK-LABEL: name: test_freeze_256159    ; CHECK: [[COPY:%[0-9]+]]:_(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7160    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s256) = G_FREEZE [[COPY]]161    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[FREEZE]](s256)162    %0:_(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7163    %1:_(s256) = G_FREEZE %0164    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1165...166 167---168name: test_freeze_s448169body: |170  bb.0:171 172    ; CHECK-LABEL: name: test_freeze_s448173    ; CHECK: [[COPY:%[0-9]+]]:_(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15174    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s512) = G_FREEZE [[COPY]]175    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[FREEZE]](s512)176    %0:_(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15177    %1:_(s448) = G_TRUNC %0178    %2:_(s448) = G_FREEZE %1179    %3:_(s512) = G_ANYEXT %2180    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %3181...182 183---184name: test_freeze_s512185body: |186  bb.0:187 188    ; CHECK-LABEL: name: test_freeze_s512189    ; CHECK: [[COPY:%[0-9]+]]:_(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15190    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s512) = G_FREEZE [[COPY]]191    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[FREEZE]](s512)192    %0:_(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15193    %1:_(s512) = G_FREEZE %0194    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1195...196 197---198name: test_freeze_s1024199body: |200  bb.0:201 202    ; CHECK-LABEL: name: test_freeze_s1024203    ; CHECK: [[COPY:%[0-9]+]]:_(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15204    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64), [[UV2:%[0-9]+]]:_(s64), [[UV3:%[0-9]+]]:_(s64), [[UV4:%[0-9]+]]:_(s64), [[UV5:%[0-9]+]]:_(s64), [[UV6:%[0-9]+]]:_(s64), [[UV7:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY]](s512)205    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF206    ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s1024) = G_MERGE_VALUES [[UV]](s64), [[UV1]](s64), [[UV2]](s64), [[UV3]](s64), [[UV4]](s64), [[UV5]](s64), [[UV6]](s64), [[UV7]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64)207    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s1024) = G_FREEZE [[MV]]208    ; CHECK-NEXT: S_NOP 0, implicit [[FREEZE]](s1024)209    %0:_(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15210    %1:_(s1024) = G_ANYEXT %0211    %2:_(s1024) = G_FREEZE %1212    S_NOP 0, implicit %2213...214 215---216name: test_freeze_s1056217body: |218  bb.0:219 220    ; CHECK-LABEL: name: test_freeze_s1056221    ; CHECK: [[COPY:%[0-9]+]]:_(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15222    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s1056) = G_ANYEXT [[COPY]](s512)223    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s1056) = G_FREEZE [[ANYEXT]]224    ; CHECK-NEXT: S_NOP 0, implicit [[FREEZE]](s1056)225    %0:_(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15226    %1:_(s1056) = G_ANYEXT %0227    %2:_(s1056) = G_FREEZE %1228    S_NOP 0, implicit %2229...230 231---232name: test_freeze_s2048233body: |234  bb.0:235 236    ; CHECK-LABEL: name: test_freeze_s2048237    ; CHECK: [[COPY:%[0-9]+]]:_(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15238    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64), [[UV2:%[0-9]+]]:_(s64), [[UV3:%[0-9]+]]:_(s64), [[UV4:%[0-9]+]]:_(s64), [[UV5:%[0-9]+]]:_(s64), [[UV6:%[0-9]+]]:_(s64), [[UV7:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY]](s512)239    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s64) = G_IMPLICIT_DEF240    ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s1024) = G_MERGE_VALUES [[UV]](s64), [[UV1]](s64), [[UV2]](s64), [[UV3]](s64), [[UV4]](s64), [[UV5]](s64), [[UV6]](s64), [[UV7]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64)241    ; CHECK-NEXT: [[MV1:%[0-9]+]]:_(s1024) = G_MERGE_VALUES [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64), [[DEF]](s64)242    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(s1024) = G_FREEZE [[MV]]243    ; CHECK-NEXT: [[FREEZE1:%[0-9]+]]:_(s1024) = G_FREEZE [[MV1]]244    ; CHECK-NEXT: [[MV2:%[0-9]+]]:_(s2048) = G_MERGE_VALUES [[FREEZE]](s1024), [[FREEZE1]](s1024)245    ; CHECK-NEXT: S_NOP 0, implicit [[MV2]](s2048)246    %0:_(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15247    %1:_(s2048) = G_ANYEXT %0248    %2:_(s2048) = G_FREEZE %1249    S_NOP 0, implicit %2250...251 252---253name: test_freeze_v2s32254body: |255  bb.0:256 257    ; CHECK-LABEL: name: test_freeze_v2s32258    ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1259    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<2 x s32>) = G_FREEZE [[COPY]]260    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](<2 x s32>)261    %0:_(<2 x s32>) = COPY $vgpr0_vgpr1262    %1:_(<2 x s32>) = G_FREEZE %0263    $vgpr0_vgpr1 = COPY %1264...265 266---267name: test_freeze_v3s32268body: |269  bb.0:270 271    ; CHECK-LABEL: name: test_freeze_v3s32272    ; CHECK: [[COPY:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2273    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<3 x s32>) = G_FREEZE [[COPY]]274    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[FREEZE]](<3 x s32>)275    %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2276    %1:_(<3 x s32>) = G_FREEZE %0277    $vgpr0_vgpr1_vgpr2 = COPY %1278...279 280---281name: test_freeze_v4s32282body: |283  bb.0:284 285    ; CHECK-LABEL: name: test_freeze_v4s32286    ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3287    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<4 x s32>) = G_FREEZE [[COPY]]288    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](<4 x s32>)289    %0:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3290    %1:_(<4 x s32>) = G_FREEZE %0291    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1292...293 294---295name: test_freeze_v5s32296body: |297  bb.0:298 299    ; CHECK-LABEL: name: test_freeze_v5s32300    ; CHECK: [[COPY:%[0-9]+]]:_(<5 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4301    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<5 x s32>) = G_FREEZE [[COPY]]302    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY [[FREEZE]](<5 x s32>)303    %0:_(<5 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4304    %1:_(<5 x s32>) = G_FREEZE %0305    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY %1306...307 308---309name: test_freeze_v6s32310body: |311  bb.0:312 313    ; CHECK-LABEL: name: test_freeze_v6s32314    ; CHECK: [[DEF:%[0-9]+]]:_(<6 x s32>) = G_IMPLICIT_DEF315    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<6 x s32>) = G_FREEZE [[DEF]]316    ; CHECK-NEXT: S_NOP 0, implicit [[FREEZE]](<6 x s32>)317    %0:_(<6 x s32>) = G_IMPLICIT_DEF318    %1:_(<6 x s32>) = G_FREEZE %0319    S_NOP 0, implicit %1320...321 322---323name: test_freeze_v7s32324body: |325  bb.0:326 327    ; CHECK-LABEL: name: test_freeze_v7s32328    ; CHECK: [[DEF:%[0-9]+]]:_(<7 x s32>) = G_IMPLICIT_DEF329    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<7 x s32>) = G_FREEZE [[DEF]]330    ; CHECK-NEXT: S_NOP 0, implicit [[FREEZE]](<7 x s32>)331    %0:_(<7 x s32>) = G_IMPLICIT_DEF332    %1:_(<7 x s32>) = G_FREEZE %0333    S_NOP 0, implicit %1334...335 336---337name: test_freeze_v8s32338body: |339  bb.0:340 341    ; CHECK-LABEL: name: test_freeze_v8s32342    ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7343    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<8 x s32>) = G_FREEZE [[COPY]]344    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[FREEZE]](<8 x s32>)345    %0:_(<8 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7346    %1:_(<8 x s32>) = G_FREEZE %0347    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1348...349 350---351name: test_freeze_v16s32352body: |353  bb.0:354 355    ; CHECK-LABEL: name: test_freeze_v16s32356    ; CHECK: [[COPY:%[0-9]+]]:_(<16 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15357    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<16 x s32>) = G_FREEZE [[COPY]]358    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[FREEZE]](<16 x s32>)359    %0:_(<16 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15360    %1:_(<16 x s32>) = G_FREEZE %0361    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1362...363 364---365name: test_freeze_v17s32366body: |367  bb.0:368 369    ; CHECK-LABEL: name: test_freeze_v17s32370    ; CHECK: [[COPY:%[0-9]+]]:_(<16 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15371    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<16 x s32>) = G_FREEZE [[COPY]]372    ; CHECK-NEXT: S_NOP 0, implicit [[FREEZE]](<16 x s32>)373    %0:_(<16 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15374    %1:_(<16 x s32>) = G_FREEZE %0375    S_NOP 0, implicit %1376...377 378---379name: test_freeze_v32s32380body: |381  bb.0:382 383    ; CHECK-LABEL: name: test_freeze_v32s32384    ; CHECK: [[DEF:%[0-9]+]]:_(<32 x s32>) = G_IMPLICIT_DEF385    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<32 x s32>) = G_FREEZE [[DEF]]386    ; CHECK-NEXT: S_NOP 0, implicit [[FREEZE]](<32 x s32>)387    %0:_(<32 x s32>) = G_IMPLICIT_DEF388    %1:_(<32 x s32>) = G_FREEZE %0389    S_NOP 0, implicit %1390...391 392---393name: test_freeze_v33s32394body: |395  bb.0:396 397    ; CHECK-LABEL: name: test_freeze_v33s32398    ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF399    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<32 x s32>) = G_BUILD_VECTOR [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32), [[DEF]](s32)400    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<32 x s32>) = G_FREEZE [[BUILD_VECTOR]]401    ; CHECK-NEXT: [[FREEZE1:%[0-9]+]]:_(s32) = G_FREEZE [[DEF]]402    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32), [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32), [[UV6:%[0-9]+]]:_(s32), [[UV7:%[0-9]+]]:_(s32), [[UV8:%[0-9]+]]:_(s32), [[UV9:%[0-9]+]]:_(s32), [[UV10:%[0-9]+]]:_(s32), [[UV11:%[0-9]+]]:_(s32), [[UV12:%[0-9]+]]:_(s32), [[UV13:%[0-9]+]]:_(s32), [[UV14:%[0-9]+]]:_(s32), [[UV15:%[0-9]+]]:_(s32), [[UV16:%[0-9]+]]:_(s32), [[UV17:%[0-9]+]]:_(s32), [[UV18:%[0-9]+]]:_(s32), [[UV19:%[0-9]+]]:_(s32), [[UV20:%[0-9]+]]:_(s32), [[UV21:%[0-9]+]]:_(s32), [[UV22:%[0-9]+]]:_(s32), [[UV23:%[0-9]+]]:_(s32), [[UV24:%[0-9]+]]:_(s32), [[UV25:%[0-9]+]]:_(s32), [[UV26:%[0-9]+]]:_(s32), [[UV27:%[0-9]+]]:_(s32), [[UV28:%[0-9]+]]:_(s32), [[UV29:%[0-9]+]]:_(s32), [[UV30:%[0-9]+]]:_(s32), [[UV31:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[FREEZE]](<32 x s32>)403    ; CHECK-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<33 x s32>) = G_BUILD_VECTOR [[UV]](s32), [[UV1]](s32), [[UV2]](s32), [[UV3]](s32), [[UV4]](s32), [[UV5]](s32), [[UV6]](s32), [[UV7]](s32), [[UV8]](s32), [[UV9]](s32), [[UV10]](s32), [[UV11]](s32), [[UV12]](s32), [[UV13]](s32), [[UV14]](s32), [[UV15]](s32), [[UV16]](s32), [[UV17]](s32), [[UV18]](s32), [[UV19]](s32), [[UV20]](s32), [[UV21]](s32), [[UV22]](s32), [[UV23]](s32), [[UV24]](s32), [[UV25]](s32), [[UV26]](s32), [[UV27]](s32), [[UV28]](s32), [[UV29]](s32), [[UV30]](s32), [[UV31]](s32), [[FREEZE1]](s32)404    ; CHECK-NEXT: S_NOP 0, implicit [[BUILD_VECTOR1]](<33 x s32>)405    %0:_(<33 x s32>) = G_IMPLICIT_DEF406    %1:_(<33 x s32>) = G_FREEZE %0407    S_NOP 0, implicit %1408...409 410---411name: test_freeze_v64s32412body: |413  bb.0:414 415    ; CHECK-LABEL: name: test_freeze_v64s32416    ; CHECK: [[DEF:%[0-9]+]]:_(<32 x s32>) = G_IMPLICIT_DEF417    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<32 x s32>) = G_FREEZE [[DEF]]418    ; CHECK-NEXT: [[FREEZE1:%[0-9]+]]:_(<32 x s32>) = G_FREEZE [[DEF]]419    ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<64 x s32>) = G_CONCAT_VECTORS [[FREEZE]](<32 x s32>), [[FREEZE1]](<32 x s32>)420    ; CHECK-NEXT: S_NOP 0, implicit [[CONCAT_VECTORS]](<64 x s32>)421    %0:_(<64 x s32>) = G_IMPLICIT_DEF422    %1:_(<64 x s32>) = G_FREEZE %0423    S_NOP 0, implicit %1424...425 426---427name: test_freeze_v2s1428body: |429  bb.0:430    liveins: $vgpr0_vgpr1, $vgpr2_vgpr3431 432    ; CHECK-LABEL: name: test_freeze_v2s1433    ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3434    ; CHECK-NEXT: {{  $}}435    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1436    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr2_vgpr3437    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<2 x s32>)438    ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<2 x s32>)439    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV]](s32), [[UV2]]440    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV1]](s32), [[UV3]]441    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[ICMP]](s1)442    ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s32) = G_ANYEXT [[ICMP1]](s1)443    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[ANYEXT]](s32), [[ANYEXT1]](s32)444    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<2 x s32>) = G_FREEZE [[BUILD_VECTOR]]445    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](<2 x s32>)446    %0:_(<2 x s32>) = COPY $vgpr0_vgpr1447    %1:_(<2 x s32>) = COPY $vgpr2_vgpr3448    %2:_(<2 x s1>) = G_ICMP intpred(ne), %0, %1449    %3:_(<2 x s1>) = G_FREEZE %2450    %4:_(<2 x s32>) = G_ANYEXT %3451    $vgpr0_vgpr1 = COPY %4452...453 454---455name: test_freeze_v3s1456body: |457  bb.0:458    liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5459 460    ; CHECK-LABEL: name: test_freeze_v3s1461    ; CHECK: liveins: $vgpr0_vgpr1_vgpr2, $vgpr3_vgpr4_vgpr5462    ; CHECK-NEXT: {{  $}}463    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2464    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr3_vgpr4_vgpr5465    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<3 x s32>)466    ; CHECK-NEXT: [[UV3:%[0-9]+]]:_(s32), [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY1]](<3 x s32>)467    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV]](s32), [[UV3]]468    ; CHECK-NEXT: [[ICMP1:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV1]](s32), [[UV4]]469    ; CHECK-NEXT: [[ICMP2:%[0-9]+]]:_(s1) = G_ICMP intpred(ne), [[UV2]](s32), [[UV5]]470    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[ICMP]](s1)471    ; CHECK-NEXT: [[ANYEXT1:%[0-9]+]]:_(s32) = G_ANYEXT [[ICMP1]](s1)472    ; CHECK-NEXT: [[ANYEXT2:%[0-9]+]]:_(s32) = G_ANYEXT [[ICMP2]](s1)473    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[ANYEXT]](s32), [[ANYEXT1]](s32), [[ANYEXT2]](s32)474    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<3 x s32>) = G_FREEZE [[BUILD_VECTOR]]475    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[FREEZE]](<3 x s32>)476    %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2477    %1:_(<3 x s32>) = COPY $vgpr3_vgpr4_vgpr5478    %2:_(<3 x s1>) = G_ICMP intpred(ne), %0, %1479    %3:_(<3 x s1>) = G_FREEZE %2480    %4:_(<3 x s32>) = G_ANYEXT %3481    $vgpr0_vgpr1_vgpr2 = COPY %4482...483 484---485name: test_freeze_v2s8486body: |487  bb.0:488 489    ; CHECK-LABEL: name: test_freeze_v2s8490    ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $vgpr0_vgpr1491    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<2 x s32>) = G_FREEZE [[COPY]]492    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](<2 x s32>)493    %0:_(<2 x s32>) = COPY $vgpr0_vgpr1494    %1:_(<2 x s8>) = G_TRUNC %0495    %2:_(<2 x s8>) = G_FREEZE %1496    %3:_(<2 x s32>) = G_ANYEXT %2497    $vgpr0_vgpr1 = COPY %3498...499 500---501name: test_freeze_v3s8502body: |503  bb.0:504 505    ; CHECK-LABEL: name: test_freeze_v3s8506    ; CHECK: [[COPY:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2507    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<3 x s32>)508    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF509    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[UV]](s32), [[UV1]](s32), [[UV2]](s32), [[DEF]](s32)510    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<4 x s32>) = G_FREEZE [[BUILD_VECTOR]]511    ; CHECK-NEXT: [[UV3:%[0-9]+]]:_(s32), [[UV4:%[0-9]+]]:_(s32), [[UV5:%[0-9]+]]:_(s32), [[UV6:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[FREEZE]](<4 x s32>)512    ; CHECK-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[UV3]](s32), [[UV4]](s32), [[UV5]](s32)513    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR1]](<3 x s32>)514    %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2515    %1:_(<3 x s8>) = G_TRUNC %0516    %2:_(<3 x s8>) = G_FREEZE %1517    %3:_(<3 x s32>) = G_ANYEXT %2518    $vgpr0_vgpr1_vgpr2 = COPY %3519...520 521---522name: test_freeze_v2s16523body: |524  bb.0:525 526    ; CHECK-LABEL: name: test_freeze_v2s16527    ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr0528    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<2 x s16>) = G_FREEZE [[COPY]]529    ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](<2 x s16>)530    %0:_(<2 x s16>) = COPY $vgpr0531    %1:_(<2 x s16>) = G_FREEZE %0532    $vgpr0 = COPY %1533...534 535---536name: test_freeze_v3s16537body: |538  bb.0:539 540    ; CHECK-LABEL: name: test_freeze_v3s16541    ; CHECK: [[COPY:%[0-9]+]]:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2542    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<3 x s32>)543    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535544    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[UV]], [[C]]545    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[UV1]], [[C]]546    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16547    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C1]](s32)548    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]549    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR]](s32)550    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[UV2]], [[C]]551    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 0552    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[C2]], [[C1]](s32)553    ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]554    ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR1]](s32)555    ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<4 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>)556    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<4 x s16>) = G_FREEZE [[CONCAT_VECTORS]]557    ; CHECK-NEXT: [[UV3:%[0-9]+]]:_(<2 x s16>), [[UV4:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[FREEZE]](<4 x s16>)558    ; CHECK-NEXT: [[BITCAST2:%[0-9]+]]:_(s32) = G_BITCAST [[UV3]](<2 x s16>)559    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST2]], [[C1]](s32)560    ; CHECK-NEXT: [[BITCAST3:%[0-9]+]]:_(s32) = G_BITCAST [[UV4]](<2 x s16>)561    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<3 x s32>) = G_BUILD_VECTOR [[BITCAST2]](s32), [[LSHR]](s32), [[BITCAST3]](s32)562    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[BUILD_VECTOR]](<3 x s32>)563    %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2564    %1:_(<3 x s16>) = G_TRUNC %0565    %2:_(<3 x s16>) = G_FREEZE %1566    %3:_(<3 x s32>) = G_ANYEXT %2567    $vgpr0_vgpr1_vgpr2 = COPY %3568...569 570---571name: test_freeze_v4s16572body: |573  bb.0:574 575    ; CHECK-LABEL: name: test_freeze_v4s16576    ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $vgpr0_vgpr1577    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<4 x s16>) = G_FREEZE [[COPY]]578    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](<4 x s16>)579    %0:_(<4 x s16>) = COPY $vgpr0_vgpr1580    %1:_(<4 x s16>) = G_FREEZE %0581    $vgpr0_vgpr1 = COPY %1582...583 584---585name: test_freeze_v5s16586body: |587  bb.0:588 589    ; CHECK-LABEL: name: test_freeze_v5s16590    ; CHECK: [[COPY:%[0-9]+]]:_(<5 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4591    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32), [[UV4:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](<5 x s32>)592    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 65535593    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[UV]], [[C]]594    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[UV1]], [[C]]595    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 16596    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[AND1]], [[C1]](s32)597    ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s32) = G_OR [[AND]], [[SHL]]598    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR]](s32)599    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[UV2]], [[C]]600    ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s32) = G_AND [[UV3]], [[C]]601    ; CHECK-NEXT: [[SHL1:%[0-9]+]]:_(s32) = G_SHL [[AND3]], [[C1]](s32)602    ; CHECK-NEXT: [[OR1:%[0-9]+]]:_(s32) = G_OR [[AND2]], [[SHL1]]603    ; CHECK-NEXT: [[BITCAST1:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR1]](s32)604    ; CHECK-NEXT: [[AND4:%[0-9]+]]:_(s32) = G_AND [[UV4]], [[C]]605    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 0606    ; CHECK-NEXT: [[SHL2:%[0-9]+]]:_(s32) = G_SHL [[C2]], [[C1]](s32)607    ; CHECK-NEXT: [[OR2:%[0-9]+]]:_(s32) = G_OR [[AND4]], [[SHL2]]608    ; CHECK-NEXT: [[BITCAST2:%[0-9]+]]:_(<2 x s16>) = G_BITCAST [[OR2]](s32)609    ; CHECK-NEXT: [[CONCAT_VECTORS:%[0-9]+]]:_(<6 x s16>) = G_CONCAT_VECTORS [[BITCAST]](<2 x s16>), [[BITCAST1]](<2 x s16>), [[BITCAST2]](<2 x s16>)610    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<6 x s16>) = G_FREEZE [[CONCAT_VECTORS]]611    ; CHECK-NEXT: [[UV5:%[0-9]+]]:_(<2 x s16>), [[UV6:%[0-9]+]]:_(<2 x s16>), [[UV7:%[0-9]+]]:_(<2 x s16>) = G_UNMERGE_VALUES [[FREEZE]](<6 x s16>)612    ; CHECK-NEXT: [[BITCAST3:%[0-9]+]]:_(s32) = G_BITCAST [[UV5]](<2 x s16>)613    ; CHECK-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST3]], [[C1]](s32)614    ; CHECK-NEXT: [[BITCAST4:%[0-9]+]]:_(s32) = G_BITCAST [[UV6]](<2 x s16>)615    ; CHECK-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST4]], [[C1]](s32)616    ; CHECK-NEXT: [[BITCAST5:%[0-9]+]]:_(s32) = G_BITCAST [[UV7]](<2 x s16>)617    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<5 x s32>) = G_BUILD_VECTOR [[BITCAST3]](s32), [[LSHR]](s32), [[BITCAST4]](s32), [[LSHR1]](s32), [[BITCAST5]](s32)618    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY [[BUILD_VECTOR]](<5 x s32>)619    %0:_(<5 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4620    %1:_(<5 x s16>) = G_TRUNC %0621    %2:_(<5 x s16>) = G_FREEZE %1622    %3:_(<5 x s32>) = G_ANYEXT %2623    $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY %3624...625 626---627name: test_freeze_v6s16628body: |629  bb.0:630 631    ; CHECK-LABEL: name: test_freeze_v6s16632    ; CHECK: [[COPY:%[0-9]+]]:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2633    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<6 x s16>) = G_FREEZE [[COPY]]634    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[FREEZE]](<6 x s16>)635    %0:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2636    %1:_(<6 x s16>) = G_FREEZE %0637    $vgpr0_vgpr1_vgpr2 = COPY %1638...639 640---641name: test_freeze_v8s16642body: |643  bb.0:644 645    ; CHECK-LABEL: name: test_freeze_v8s16646    ; CHECK: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3647    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<8 x s16>) = G_FREEZE [[COPY]]648    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](<8 x s16>)649    %0:_(<8 x s16>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3650    %1:_(<8 x s16>) = G_FREEZE %0651    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1652...653 654---655name: test_freeze_v2s64656body: |657  bb.0:658 659    ; CHECK-LABEL: name: test_freeze_v2s64660    ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3661    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<2 x s64>) = G_FREEZE [[COPY]]662    ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](<2 x s64>)663    %0:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3664    %1:_(<2 x s64>) = G_FREEZE %0665    $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1666...667 668---669name: test_freeze_v4s8670body: |671  bb.0:672    liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3673 674    ; CHECK-LABEL: name: test_freeze_v4s8675    ; CHECK: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3676    ; CHECK-NEXT: {{  $}}677    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0678    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1679    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2680    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3681    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32)682    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<4 x s32>) = G_FREEZE [[BUILD_VECTOR]]683    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[FREEZE]](<4 x s32>)684    ; CHECK-NEXT: S_ENDPGM 0, implicit [[UV]](s32), implicit [[UV1]](s32), implicit [[UV2]](s32), implicit [[UV3]](s32)685    %0:_(s32) = COPY $vgpr0686    %1:_(s32) = COPY $vgpr1687    %2:_(s32) = COPY $vgpr2688    %3:_(s32) = COPY $vgpr3689    %4:_(s8) = G_TRUNC %0690    %5:_(s8) = G_TRUNC %1691    %6:_(s8) = G_TRUNC %2692    %7:_(s8) = G_TRUNC %3693    %8:_(<4 x s8>) = G_BUILD_VECTOR %4, %5, %6, %7694    %9:_(<4 x s8>) = G_FREEZE %8695    %10:_(s8), %11:_(s8), %12:_(s8), %13:_(s8) = G_UNMERGE_VALUES %9696    %14:_(s32) = G_ANYEXT %10697    %15:_(s32) = G_ANYEXT %11698    %16:_(s32) = G_ANYEXT %12699    %17:_(s32) = G_ANYEXT %13700    S_ENDPGM 0, implicit %14, implicit %15, implicit %16, implicit %17701...702 703---704name: test_freeze_p0705body: |706  bb.0:707 708    ; CHECK-LABEL: name: test_freeze_p0709    ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $vgpr0_vgpr1710    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(p0) = G_FREEZE [[COPY]]711    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](p0)712    %0:_(p0) = COPY $vgpr0_vgpr1713    %1:_(p0) = G_FREEZE %0714    $vgpr0_vgpr1 = COPY %1715...716 717---718name: test_freeze_p1719body: |720  bb.0:721 722    ; CHECK-LABEL: name: test_freeze_p1723    ; CHECK: [[COPY:%[0-9]+]]:_(p1) = COPY $vgpr0_vgpr1724    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(p1) = G_FREEZE [[COPY]]725    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](p1)726    %0:_(p1) = COPY $vgpr0_vgpr1727    %1:_(p1) = G_FREEZE %0728    $vgpr0_vgpr1 = COPY %1729...730 731---732name: test_freeze_p2733body: |734  bb.0:735 736    ; CHECK-LABEL: name: test_freeze_p2737    ; CHECK: [[COPY:%[0-9]+]]:_(p2) = COPY $vgpr0738    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(p2) = G_FREEZE [[COPY]]739    ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](p2)740    %0:_(p2) = COPY $vgpr0741    %1:_(p2) = G_FREEZE %0742    $vgpr0 = COPY %1743...744 745---746name: test_freeze_p3747body: |748  bb.0:749 750    ; CHECK-LABEL: name: test_freeze_p3751    ; CHECK: [[COPY:%[0-9]+]]:_(p3) = COPY $vgpr0752    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(p3) = G_FREEZE [[COPY]]753    ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](p3)754    %0:_(p3) = COPY $vgpr0755    %1:_(p3) = G_FREEZE %0756    $vgpr0 = COPY %1757...758 759---760name: test_freeze_p4761body: |762  bb.0:763 764    ; CHECK-LABEL: name: test_freeze_p4765    ; CHECK: [[COPY:%[0-9]+]]:_(p4) = COPY $vgpr0_vgpr1766    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(p4) = G_FREEZE [[COPY]]767    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](p4)768    %0:_(p4) = COPY $vgpr0_vgpr1769    %1:_(p4) = G_FREEZE %0770    $vgpr0_vgpr1 = COPY %1771...772 773---774name: test_freeze_p5775body: |776  bb.0:777 778    ; CHECK-LABEL: name: test_freeze_p5779    ; CHECK: [[COPY:%[0-9]+]]:_(p5) = COPY $vgpr0780    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(p5) = G_FREEZE [[COPY]]781    ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](p5)782    %0:_(p5) = COPY $vgpr0783    %1:_(p5) = G_FREEZE %0784    $vgpr0 = COPY %1785...786 787---788name: test_freeze_p999789body: |790  bb.0:791 792    ; CHECK-LABEL: name: test_freeze_p999793    ; CHECK: [[COPY:%[0-9]+]]:_(p999) = COPY $vgpr0_vgpr1794    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(p999) = G_FREEZE [[COPY]]795    ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](p999)796    %0:_(p999) = COPY $vgpr0_vgpr1797    %1:_(p999) = G_FREEZE %0798    $vgpr0_vgpr1 = COPY %1799 800...801 802---803name: test_freeze_v2s1024804body: |805  bb.0:806 807    ; CHECK-LABEL: name: test_freeze_v2s1024808    ; CHECK: [[DEF:%[0-9]+]]:_(<2 x s1024>) = G_IMPLICIT_DEF809    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<2 x s1024>) = G_FREEZE [[DEF]]810    ; CHECK-NEXT: S_NOP 0, implicit [[FREEZE]](<2 x s1024>)811    %0:_(<2 x s1024>) = G_IMPLICIT_DEF812    %1:_(<2 x s1024>) = G_FREEZE %0813    S_NOP 0, implicit %1814...815 816---817 818name: test_freeze_v3s1024819body: |820  bb.0:821 822    ; CHECK-LABEL: name: test_freeze_v3s1024823    ; CHECK: [[DEF:%[0-9]+]]:_(<3 x s1024>) = G_IMPLICIT_DEF824    ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:_(<3 x s1024>) = G_FREEZE [[DEF]]825    ; CHECK-NEXT: S_NOP 0, implicit [[FREEZE]](<3 x s1024>)826    %0:_(<3 x s1024>) = G_IMPLICIT_DEF827    %1:_(<3 x s1024>) = G_FREEZE %0828    S_NOP 0, implicit %1829...830