649 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=regbankselect %s -o - | FileCheck %s3# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=regbankselect %s -o - | FileCheck %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=regbankselect %s -o - | FileCheck %s5 6---7name: test_freeze_s1_vgpr_to_vgpr8legalized: true9 10body: |11 bb.0:12 liveins: $vgpr013 ; CHECK-LABEL: name: test_freeze_s1_vgpr_to_vgpr14 ; CHECK: liveins: $vgpr015 ; CHECK-NEXT: {{ $}}16 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr017 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)18 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s1) = G_FREEZE [[TRUNC]]19 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[FREEZE]](s1)20 ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)21 %0:_(s32) = COPY $vgpr022 %1:_(s1) = G_TRUNC %0(s32)23 %2:_(s1) = G_FREEZE %124 %3:_(s32) = G_ANYEXT %2(s1)25 $vgpr0 = COPY %3(s32)26 27...28 29---30name: test_freeze_s1_vgpr_to_agpr31legalized: true32 33body: |34 bb.0:35 liveins: $vgpr036 ; CHECK-LABEL: name: test_freeze_s1_vgpr_to_agpr37 ; CHECK: liveins: $vgpr038 ; CHECK-NEXT: {{ $}}39 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr040 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)41 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s1) = G_FREEZE [[TRUNC]]42 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[FREEZE]](s1)43 ; CHECK-NEXT: $agpr0 = COPY [[ANYEXT]](s32)44 %0:_(s32) = COPY $vgpr045 %1:_(s1) = G_TRUNC %0(s32)46 %2:_(s1) = G_FREEZE %147 %3:_(s32) = G_ANYEXT %2(s1)48 $agpr0 = COPY %3(s32)49 50...51 52---53name: test_freeze_s1_sgpr_to_sgpr54legalized: true55body: |56 bb.0:57 liveins: $sgpr058 59 ; CHECK-LABEL: name: test_freeze_s1_sgpr_to_sgpr60 ; CHECK: liveins: $sgpr061 ; CHECK-NEXT: {{ $}}62 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr063 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)64 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:sgpr(s1) = G_FREEZE [[TRUNC]]65 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[FREEZE]](s1)66 ; CHECK-NEXT: $sgpr0 = COPY [[ANYEXT]](s32)67 %0:_(s32) = COPY $sgpr068 %1:_(s1) = G_TRUNC %0(s32)69 %2:_(s1) = G_FREEZE %170 %3:_(s32) = G_ANYEXT %2(s1)71 $sgpr0 = COPY %3(s32)72 73...74 75---76name: test_freeze_s1_vcc77legalized: true78 79body: |80 bb.0:81 liveins: $vgpr0, $vgpr182 ; CHECK-LABEL: name: test_freeze_s1_vcc83 ; CHECK: liveins: $vgpr0, $vgpr184 ; CHECK-NEXT: {{ $}}85 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr086 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr187 ; CHECK-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]]88 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vcc(s1) = G_FREEZE [[ICMP]]89 ; CHECK-NEXT: S_ENDPGM 0, implicit [[FREEZE]](s1)90 %0:_(s32) = COPY $vgpr091 %1:_(s32) = COPY $vgpr192 %2:_(s1) = G_ICMP intpred(eq), %0(s32), %193 %3:_(s1) = G_FREEZE %294 S_ENDPGM 0, implicit %395 96...97 98---99name: test_freeze_s16_vgpr_to_vgpr100legalized: true101 102body: |103 bb.0:104 liveins: $vgpr0105 ; CHECK-LABEL: name: test_freeze_s16_vgpr_to_vgpr106 ; CHECK: liveins: $vgpr0107 ; CHECK-NEXT: {{ $}}108 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0109 ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32)110 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s16) = G_FREEZE [[TRUNC]]111 ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[FREEZE]](s16)112 ; CHECK-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)113 %0:_(s32) = COPY $vgpr0114 %1:_(s16) = G_TRUNC %0(s32)115 %2:_(s16) = G_FREEZE %1116 %3:_(s32) = G_ANYEXT %2(s16)117 $vgpr0 = COPY %3(s32)118 119...120 121---122name: test_freeze_s32_vgpr_to_vgpr123legalized: true124 125body: |126 bb.0:127 liveins: $vgpr0128 ; CHECK-LABEL: name: test_freeze_s32_vgpr_to_vgpr129 ; CHECK: liveins: $vgpr0130 ; CHECK-NEXT: {{ $}}131 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0132 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s32) = G_FREEZE [[COPY]]133 ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](s32)134 %0:_(s32) = COPY $vgpr0135 %1:_(s32) = G_FREEZE %0136 $vgpr0 = COPY %1(s32)137 138...139 140---141name: test_freeze_s32_sgpr_to_sgpr142legalized: true143 144body: |145 bb.0:146 liveins: $sgpr0147 ; CHECK-LABEL: name: test_freeze_s32_sgpr_to_sgpr148 ; CHECK: liveins: $sgpr0149 ; CHECK-NEXT: {{ $}}150 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0151 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:sgpr(s32) = G_FREEZE [[COPY]]152 ; CHECK-NEXT: $sgpr0 = COPY [[FREEZE]](s32)153 %0:_(s32) = COPY $sgpr0154 %1:_(s32) = G_FREEZE %0155 $sgpr0 = COPY %1(s32)156 157...158 159---160name: test_freeze_s32_sgpr_to_vgpr161legalized: true162 163body: |164 bb.0:165 liveins: $sgpr0166 ; CHECK-LABEL: name: test_freeze_s32_sgpr_to_vgpr167 ; CHECK: liveins: $sgpr0168 ; CHECK-NEXT: {{ $}}169 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0170 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:sgpr(s32) = G_FREEZE [[COPY]]171 ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](s32)172 %0:_(s32) = COPY $sgpr0173 %1:_(s32) = G_FREEZE %0174 $vgpr0 = COPY %1(s32)175 176...177 178---179name: test_freeze_s32_vgpr_to_agpr180legalized: true181 182body: |183 bb.0:184 liveins: $vgpr0185 ; CHECK-LABEL: name: test_freeze_s32_vgpr_to_agpr186 ; CHECK: liveins: $vgpr0187 ; CHECK-NEXT: {{ $}}188 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0189 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s32) = G_FREEZE [[COPY]]190 ; CHECK-NEXT: $agpr0 = COPY [[FREEZE]](s32)191 %0:_(s32) = COPY $vgpr0192 %1:_(s32) = G_FREEZE %0193 $agpr0 = COPY %1(s32)194 195...196 197---198name: test_freeze_s32_sgpr_to_agpr199legalized: true200 201body: |202 bb.0:203 liveins: $sgpr0204 ; CHECK-LABEL: name: test_freeze_s32_sgpr_to_agpr205 ; CHECK: liveins: $sgpr0206 ; CHECK-NEXT: {{ $}}207 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0208 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:sgpr(s32) = G_FREEZE [[COPY]]209 ; CHECK-NEXT: $agpr0 = COPY [[FREEZE]](s32)210 %0:_(s32) = COPY $sgpr0211 %1:_(s32) = G_FREEZE %0212 $agpr0 = COPY %1(s32)213 214...215 216---217name: test_freeze_s32_agpr_to_vgpr218legalized: true219 220body: |221 bb.0:222 liveins: $agpr0223 ; CHECK-LABEL: name: test_freeze_s32_agpr_to_vgpr224 ; CHECK: liveins: $agpr0225 ; CHECK-NEXT: {{ $}}226 ; CHECK-NEXT: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr0227 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:agpr(s32) = G_FREEZE [[COPY]]228 ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](s32)229 %0:_(s32) = COPY $agpr0230 %1:_(s32) = G_FREEZE %0231 $vgpr0 = COPY %1(s32)232 233...234 235---236name: test_freeze_s32_agpr_to_agpr237legalized: true238 239body: |240 bb.0:241 liveins: $agpr0242 ; CHECK-LABEL: name: test_freeze_s32_agpr_to_agpr243 ; CHECK: liveins: $agpr0244 ; CHECK-NEXT: {{ $}}245 ; CHECK-NEXT: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr0246 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:agpr(s32) = G_FREEZE [[COPY]]247 ; CHECK-NEXT: $agpr0 = COPY [[FREEZE]](s32)248 %0:_(s32) = COPY $agpr0249 %1:_(s32) = G_FREEZE %0250 $agpr0 = COPY %1(s32)251 252...253 254---255name: test_freeze_s64256legalized: true257 258body: |259 bb.0:260 liveins: $vgpr0_vgpr1261 ; CHECK-LABEL: name: test_freeze_s64262 ; CHECK: liveins: $vgpr0_vgpr1263 ; CHECK-NEXT: {{ $}}264 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1265 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s64) = G_FREEZE [[COPY]]266 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](s64)267 %0:_(s64) = COPY $vgpr0_vgpr1268 %1:_(s64) = G_FREEZE %0269 $vgpr0_vgpr1 = COPY %1(s64)270...271 272---273name: test_freeze_s128274legalized: true275 276body: |277 bb.0:278 liveins: $vgpr0_vgpr1_vgpr2_vgpr3279 ; CHECK-LABEL: name: test_freeze_s128280 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3281 ; CHECK-NEXT: {{ $}}282 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3283 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s128) = G_FREEZE [[COPY]]284 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](s128)285 %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3286 %1:_(s128) = G_FREEZE %0287 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(s128)288...289 290---291name: test_freeze_256292legalized: true293 294body: |295 bb.0:296 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7297 ; CHECK-LABEL: name: test_freeze_256298 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7299 ; CHECK-NEXT: {{ $}}300 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7301 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s256) = G_FREEZE [[COPY]]302 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[FREEZE]](s256)303 %0:_(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7304 %1:_(s256) = G_FREEZE %0305 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1(s256)306...307 308---309name: test_freeze_s512310legalized: true311 312body: |313 bb.0:314 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15315 ; CHECK-LABEL: name: test_freeze_s512316 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15317 ; CHECK-NEXT: {{ $}}318 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15319 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(s512) = G_FREEZE [[COPY]]320 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[FREEZE]](s512)321 %0:_(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15322 %1:_(s512) = G_FREEZE %0323 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1(s512)324...325 326---327name: test_freeze_v2s32328legalized: true329 330body: |331 bb.0:332 liveins: $vgpr0_vgpr1333 ; CHECK-LABEL: name: test_freeze_v2s32334 ; CHECK: liveins: $vgpr0_vgpr1335 ; CHECK-NEXT: {{ $}}336 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr0_vgpr1337 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<2 x s32>) = G_FREEZE [[COPY]]338 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](<2 x s32>)339 %0:_(<2 x s32>) = COPY $vgpr0_vgpr1340 %1:_(<2 x s32>) = G_FREEZE %0341 $vgpr0_vgpr1 = COPY %1(<2 x s32>)342...343 344---345name: test_freeze_v3s32346legalized: true347 348body: |349 bb.0:350 liveins: $vgpr0_vgpr1_vgpr2351 ; CHECK-LABEL: name: test_freeze_v3s32352 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2353 ; CHECK-NEXT: {{ $}}354 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2355 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<3 x s32>) = G_FREEZE [[COPY]]356 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[FREEZE]](<3 x s32>)357 %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2358 %1:_(<3 x s32>) = G_FREEZE %0359 $vgpr0_vgpr1_vgpr2 = COPY %1(<3 x s32>)360...361 362---363name: test_freeze_v4s32364legalized: true365 366body: |367 bb.0:368 liveins: $vgpr0_vgpr1_vgpr2_vgpr3369 ; CHECK-LABEL: name: test_freeze_v4s32370 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3371 ; CHECK-NEXT: {{ $}}372 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3373 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<4 x s32>) = G_FREEZE [[COPY]]374 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](<4 x s32>)375 %0:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3376 %1:_(<4 x s32>) = G_FREEZE %0377 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<4 x s32>)378...379 380---381name: test_freeze_v5s32382legalized: true383 384body: |385 bb.0:386 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4387 ; CHECK-LABEL: name: test_freeze_v5s32388 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4389 ; CHECK-NEXT: {{ $}}390 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<5 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4391 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<5 x s32>) = G_FREEZE [[COPY]]392 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY [[FREEZE]](<5 x s32>)393 %0:_(<5 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4394 %1:_(<5 x s32>) = G_FREEZE %0395 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY %1(<5 x s32>)396...397 398---399name: test_freeze_v8s32400legalized: true401 402body: |403 bb.0:404 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7405 ; CHECK-LABEL: name: test_freeze_v8s32406 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7407 ; CHECK-NEXT: {{ $}}408 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<8 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7409 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<8 x s32>) = G_FREEZE [[COPY]]410 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[FREEZE]](<8 x s32>)411 %0:_(<8 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7412 %1:_(<8 x s32>) = G_FREEZE %0413 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1(<8 x s32>)414...415 416---417name: test_freeze_v16s32418legalized: true419 420body: |421 bb.0:422 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15423 ; CHECK-LABEL: name: test_freeze_v16s32424 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15425 ; CHECK-NEXT: {{ $}}426 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<16 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15427 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<16 x s32>) = G_FREEZE [[COPY]]428 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[FREEZE]](<16 x s32>)429 %0:_(<16 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15430 %1:_(<16 x s32>) = G_FREEZE %0431 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1(<16 x s32>)432...433 434---435name: test_freeze_v2s16436legalized: true437 438body: |439 bb.0:440 liveins: $vgpr0441 ; CHECK-LABEL: name: test_freeze_v2s16442 ; CHECK: liveins: $vgpr0443 ; CHECK-NEXT: {{ $}}444 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr0445 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<2 x s16>) = G_FREEZE [[COPY]]446 ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](<2 x s16>)447 %0:_(<2 x s16>) = COPY $vgpr0448 %1:_(<2 x s16>) = G_FREEZE %0449 $vgpr0 = COPY %1(<2 x s16>)450...451 452---453name: test_freeze_v4s16454legalized: true455 456body: |457 bb.0:458 liveins: $vgpr0_vgpr1459 ; CHECK-LABEL: name: test_freeze_v4s16460 ; CHECK: liveins: $vgpr0_vgpr1461 ; CHECK-NEXT: {{ $}}462 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1463 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<4 x s16>) = G_FREEZE [[COPY]]464 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](<4 x s16>)465 %0:_(<4 x s16>) = COPY $vgpr0_vgpr1466 %1:_(<4 x s16>) = G_FREEZE %0467 $vgpr0_vgpr1 = COPY %1(<4 x s16>)468...469 470---471name: test_freeze_v6s16472legalized: true473 474body: |475 bb.0:476 liveins: $vgpr0_vgpr1_vgpr2477 ; CHECK-LABEL: name: test_freeze_v6s16478 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2479 ; CHECK-NEXT: {{ $}}480 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2481 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<6 x s16>) = G_FREEZE [[COPY]]482 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2 = COPY [[FREEZE]](<6 x s16>)483 %0:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2484 %1:_(<6 x s16>) = G_FREEZE %0485 $vgpr0_vgpr1_vgpr2 = COPY %1(<6 x s16>)486...487 488---489name: test_freeze_v8s16490legalized: true491 492body: |493 bb.0:494 liveins: $vgpr0_vgpr1_vgpr2_vgpr3495 ; CHECK-LABEL: name: test_freeze_v8s16496 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3497 ; CHECK-NEXT: {{ $}}498 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<8 x s16>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3499 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<8 x s16>) = G_FREEZE [[COPY]]500 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](<8 x s16>)501 %0:_(<8 x s16>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3502 %1:_(<8 x s16>) = G_FREEZE %0503 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<8 x s16>)504...505 506---507name: test_freeze_v2s64508legalized: true509 510body: |511 bb.0:512 liveins: $vgpr0_vgpr1_vgpr2_vgpr3513 ; CHECK-LABEL: name: test_freeze_v2s64514 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3515 ; CHECK-NEXT: {{ $}}516 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3517 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(<2 x s64>) = G_FREEZE [[COPY]]518 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](<2 x s64>)519 %0:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3520 %1:_(<2 x s64>) = G_FREEZE %0521 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<2 x s64>)522...523 524---525name: test_freeze_p0526legalized: true527 528body: |529 bb.0:530 liveins: $vgpr0_vgpr1531 ; CHECK-LABEL: name: test_freeze_p0532 ; CHECK: liveins: $vgpr0_vgpr1533 ; CHECK-NEXT: {{ $}}534 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p0) = COPY $vgpr0_vgpr1535 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(p0) = G_FREEZE [[COPY]]536 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](p0)537 %0:_(p0) = COPY $vgpr0_vgpr1538 %1:_(p0) = G_FREEZE %0539 $vgpr0_vgpr1 = COPY %1(p0)540...541 542---543name: test_freeze_p1544legalized: true545 546body: |547 bb.0:548 liveins: $vgpr0_vgpr1549 ; CHECK-LABEL: name: test_freeze_p1550 ; CHECK: liveins: $vgpr0_vgpr1551 ; CHECK-NEXT: {{ $}}552 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1553 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(p1) = G_FREEZE [[COPY]]554 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](p1)555 %0:_(p1) = COPY $vgpr0_vgpr1556 %1:_(p1) = G_FREEZE %0557 $vgpr0_vgpr1 = COPY %1(p1)558...559 560---561name: test_freeze_p2562legalized: true563 564body: |565 bb.0:566 liveins: $vgpr0567 ; CHECK-LABEL: name: test_freeze_p2568 ; CHECK: liveins: $vgpr0569 ; CHECK-NEXT: {{ $}}570 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p2) = COPY $vgpr0571 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(p2) = G_FREEZE [[COPY]]572 ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](p2)573 %0:_(p2) = COPY $vgpr0574 %1:_(p2) = G_FREEZE %0575 $vgpr0 = COPY %1(p2)576...577 578---579name: test_freeze_p3580legalized: true581 582body: |583 bb.0:584 liveins: $vgpr0585 ; CHECK-LABEL: name: test_freeze_p3586 ; CHECK: liveins: $vgpr0587 ; CHECK-NEXT: {{ $}}588 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0589 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(p3) = G_FREEZE [[COPY]]590 ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](p3)591 %0:_(p3) = COPY $vgpr0592 %1:_(p3) = G_FREEZE %0593 $vgpr0 = COPY %1(p3)594...595 596---597name: test_freeze_p4598legalized: true599 600body: |601 bb.0:602 liveins: $vgpr0_vgpr1603 ; CHECK-LABEL: name: test_freeze_p4604 ; CHECK: liveins: $vgpr0_vgpr1605 ; CHECK-NEXT: {{ $}}606 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p4) = COPY $vgpr0_vgpr1607 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(p4) = G_FREEZE [[COPY]]608 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](p4)609 %0:_(p4) = COPY $vgpr0_vgpr1610 %1:_(p4) = G_FREEZE %0611 $vgpr0_vgpr1 = COPY %1(p4)612...613 614---615name: test_freeze_p5616legalized: true617 618body: |619 bb.0:620 liveins: $vgpr0621 ; CHECK-LABEL: name: test_freeze_p5622 ; CHECK: liveins: $vgpr0623 ; CHECK-NEXT: {{ $}}624 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p5) = COPY $vgpr0625 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(p5) = G_FREEZE [[COPY]]626 ; CHECK-NEXT: $vgpr0 = COPY [[FREEZE]](p5)627 %0:_(p5) = COPY $vgpr0628 %1:_(p5) = G_FREEZE %0629 $vgpr0 = COPY %1(p5)630...631 632---633name: test_freeze_p999634legalized: true635 636body: |637 bb.0:638 liveins: $vgpr0_vgpr1639 ; CHECK-LABEL: name: test_freeze_p999640 ; CHECK: liveins: $vgpr0_vgpr1641 ; CHECK-NEXT: {{ $}}642 ; CHECK-NEXT: [[COPY:%[0-9]+]]:vgpr(p999) = COPY $vgpr0_vgpr1643 ; CHECK-NEXT: [[FREEZE:%[0-9]+]]:vgpr(p999) = G_FREEZE [[COPY]]644 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FREEZE]](p999)645 %0:_(p999) = COPY $vgpr0_vgpr1646 %1:_(p999) = G_FREEZE %0647 $vgpr0_vgpr1 = COPY %1(p999)648...649