1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=regbankselect %s -o - | FileCheck %s 3# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=regbankselect %s -o - | FileCheck %s 4# RUN: llc -march=amdgcn -mcpu=gfx1010 -run-pass=regbankselect %s -o - | FileCheck %s 5 6--- 7name: test_freeze_s1_vgpr_to_vgpr 8legalized: true 9 10body: | 11 bb.0: 12 liveins: $vgpr0 13 ; CHECK-LABEL: name: test_freeze_s1_vgpr_to_vgpr 14 ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 15 ; CHECK: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32) 16 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(s1) = G_FREEZE [[TRUNC]] 17 ; CHECK: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[FREEZE]](s1) 18 ; CHECK: $vgpr0 = COPY [[ANYEXT]](s32) 19 %0:_(s32) = COPY $vgpr0 20 %1:_(s1) = G_TRUNC %0(s32) 21 %2:_(s1) = G_FREEZE %1 22 %3:_(s32) = G_ANYEXT %2(s1) 23 $vgpr0 = COPY %3(s32) 24 25... 26 27--- 28name: test_freeze_s1_vgpr_to_agpr 29legalized: true 30 31body: | 32 bb.0: 33 liveins: $vgpr0 34 ; CHECK-LABEL: name: test_freeze_s1_vgpr_to_agpr 35 ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 36 ; CHECK: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32) 37 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(s1) = G_FREEZE [[TRUNC]] 38 ; CHECK: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[FREEZE]](s1) 39 ; CHECK: $agpr0 = COPY [[ANYEXT]](s32) 40 %0:_(s32) = COPY $vgpr0 41 %1:_(s1) = G_TRUNC %0(s32) 42 %2:_(s1) = G_FREEZE %1 43 %3:_(s32) = G_ANYEXT %2(s1) 44 $agpr0 = COPY %3(s32) 45 46... 47 48--- 49name: test_freeze_s1_vcc 50legalized: true 51 52body: | 53 bb.0: 54 liveins: $vgpr0, $vgpr1 55 ; CHECK-LABEL: name: test_freeze_s1_vcc 56 ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 57 ; CHECK: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1 58 ; CHECK: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY1]] 59 ; CHECK: [[FREEZE:%[0-9]+]]:vcc(s1) = G_FREEZE [[ICMP]] 60 ; CHECK: S_ENDPGM 0, implicit [[FREEZE]](s1) 61 %0:_(s32) = COPY $vgpr0 62 %1:_(s32) = COPY $vgpr1 63 %2:_(s1) = G_ICMP intpred(eq), %0(s32), %1 64 %3:_(s1) = G_FREEZE %2 65 S_ENDPGM 0, implicit %3 66 67... 68 69--- 70name: test_freeze_s16_vgpr_to_vgpr 71legalized: true 72 73body: | 74 bb.0: 75 liveins: $vgpr0 76 ; CHECK-LABEL: name: test_freeze_s16_vgpr_to_vgpr 77 ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 78 ; CHECK: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32) 79 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(s16) = G_FREEZE [[TRUNC]] 80 ; CHECK: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[FREEZE]](s16) 81 ; CHECK: $vgpr0 = COPY [[ANYEXT]](s32) 82 %0:_(s32) = COPY $vgpr0 83 %1:_(s16) = G_TRUNC %0(s32) 84 %2:_(s16) = G_FREEZE %1 85 %3:_(s32) = G_ANYEXT %2(s16) 86 $vgpr0 = COPY %3(s32) 87 88... 89 90--- 91name: test_freeze_s32_vgpr_to_vgpr 92legalized: true 93 94body: | 95 bb.0: 96 liveins: $vgpr0 97 ; CHECK-LABEL: name: test_freeze_s32_vgpr_to_vgpr 98 ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 99 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(s32) = G_FREEZE [[COPY]] 100 ; CHECK: $vgpr0 = COPY [[FREEZE]](s32) 101 %0:_(s32) = COPY $vgpr0 102 %1:_(s32) = G_FREEZE %0 103 $vgpr0 = COPY %1(s32) 104 105... 106 107--- 108name: test_freeze_s32_sgpr_to_sgpr 109legalized: true 110 111body: | 112 bb.0: 113 liveins: $sgpr0 114 ; CHECK-LABEL: name: test_freeze_s32_sgpr_to_sgpr 115 ; CHECK: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0 116 ; CHECK: [[FREEZE:%[0-9]+]]:sgpr(s32) = G_FREEZE [[COPY]] 117 ; CHECK: $sgpr0 = COPY [[FREEZE]](s32) 118 %0:_(s32) = COPY $sgpr0 119 %1:_(s32) = G_FREEZE %0 120 $sgpr0 = COPY %1(s32) 121 122... 123 124--- 125name: test_freeze_s32_sgpr_to_vgpr 126legalized: true 127 128body: | 129 bb.0: 130 liveins: $sgpr0 131 ; CHECK-LABEL: name: test_freeze_s32_sgpr_to_vgpr 132 ; CHECK: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0 133 ; CHECK: [[FREEZE:%[0-9]+]]:sgpr(s32) = G_FREEZE [[COPY]] 134 ; CHECK: $vgpr0 = COPY [[FREEZE]](s32) 135 %0:_(s32) = COPY $sgpr0 136 %1:_(s32) = G_FREEZE %0 137 $vgpr0 = COPY %1(s32) 138 139... 140 141--- 142name: test_freeze_s32_vgpr_to_agpr 143legalized: true 144 145body: | 146 bb.0: 147 liveins: $vgpr0 148 ; CHECK-LABEL: name: test_freeze_s32_vgpr_to_agpr 149 ; CHECK: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 150 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(s32) = G_FREEZE [[COPY]] 151 ; CHECK: $agpr0 = COPY [[FREEZE]](s32) 152 %0:_(s32) = COPY $vgpr0 153 %1:_(s32) = G_FREEZE %0 154 $agpr0 = COPY %1(s32) 155 156... 157 158--- 159name: test_freeze_s32_sgpr_to_agpr 160legalized: true 161 162body: | 163 bb.0: 164 liveins: $sgpr0 165 ; CHECK-LABEL: name: test_freeze_s32_sgpr_to_agpr 166 ; CHECK: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0 167 ; CHECK: [[FREEZE:%[0-9]+]]:sgpr(s32) = G_FREEZE [[COPY]] 168 ; CHECK: $agpr0 = COPY [[FREEZE]](s32) 169 %0:_(s32) = COPY $sgpr0 170 %1:_(s32) = G_FREEZE %0 171 $agpr0 = COPY %1(s32) 172 173... 174 175--- 176name: test_freeze_s32_agpr_to_vgpr 177legalized: true 178 179body: | 180 bb.0: 181 liveins: $agpr0 182 ; CHECK-LABEL: name: test_freeze_s32_agpr_to_vgpr 183 ; CHECK: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr0 184 ; CHECK: [[FREEZE:%[0-9]+]]:agpr(s32) = G_FREEZE [[COPY]] 185 ; CHECK: $vgpr0 = COPY [[FREEZE]](s32) 186 %0:_(s32) = COPY $agpr0 187 %1:_(s32) = G_FREEZE %0 188 $vgpr0 = COPY %1(s32) 189 190... 191 192--- 193name: test_freeze_s32_agpr_to_agpr 194legalized: true 195 196body: | 197 bb.0: 198 liveins: $agpr0 199 ; CHECK-LABEL: name: test_freeze_s32_agpr_to_agpr 200 ; CHECK: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr0 201 ; CHECK: [[FREEZE:%[0-9]+]]:agpr(s32) = G_FREEZE [[COPY]] 202 ; CHECK: $agpr0 = COPY [[FREEZE]](s32) 203 %0:_(s32) = COPY $agpr0 204 %1:_(s32) = G_FREEZE %0 205 $agpr0 = COPY %1(s32) 206 207... 208 209--- 210name: test_freeze_s64 211legalized: true 212 213body: | 214 bb.0: 215 liveins: $vgpr0_vgpr1 216 ; CHECK-LABEL: name: test_freeze_s64 217 ; CHECK: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1 218 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(s64) = G_FREEZE [[COPY]] 219 ; CHECK: $vgpr0_vgpr1 = COPY [[FREEZE]](s64) 220 %0:_(s64) = COPY $vgpr0_vgpr1 221 %1:_(s64) = G_FREEZE %0 222 $vgpr0_vgpr1 = COPY %1(s64) 223... 224 225--- 226name: test_freeze_s128 227legalized: true 228 229body: | 230 bb.0: 231 liveins: $vgpr0_vgpr1_vgpr2_vgpr3 232 ; CHECK-LABEL: name: test_freeze_s128 233 ; CHECK: [[COPY:%[0-9]+]]:vgpr(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 234 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(s128) = G_FREEZE [[COPY]] 235 ; CHECK: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](s128) 236 %0:_(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 237 %1:_(s128) = G_FREEZE %0 238 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(s128) 239... 240 241--- 242name: test_freeze_256 243legalized: true 244 245body: | 246 bb.0: 247 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 248 ; CHECK-LABEL: name: test_freeze_256 249 ; CHECK: [[COPY:%[0-9]+]]:vgpr(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 250 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(s256) = G_FREEZE [[COPY]] 251 ; CHECK: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[FREEZE]](s256) 252 %0:_(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 253 %1:_(s256) = G_FREEZE %0 254 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1(s256) 255... 256 257--- 258name: test_freeze_s512 259legalized: true 260 261body: | 262 bb.0: 263 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 264 ; CHECK-LABEL: name: test_freeze_s512 265 ; CHECK: [[COPY:%[0-9]+]]:vgpr(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 266 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(s512) = G_FREEZE [[COPY]] 267 ; CHECK: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[FREEZE]](s512) 268 %0:_(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 269 %1:_(s512) = G_FREEZE %0 270 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1(s512) 271... 272 273--- 274name: test_freeze_v2s32 275legalized: true 276 277body: | 278 bb.0: 279 liveins: $vgpr0_vgpr1 280 ; CHECK-LABEL: name: test_freeze_v2s32 281 ; CHECK: [[COPY:%[0-9]+]]:vgpr(<2 x s32>) = COPY $vgpr0_vgpr1 282 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(<2 x s32>) = G_FREEZE [[COPY]] 283 ; CHECK: $vgpr0_vgpr1 = COPY [[FREEZE]](<2 x s32>) 284 %0:_(<2 x s32>) = COPY $vgpr0_vgpr1 285 %1:_(<2 x s32>) = G_FREEZE %0 286 $vgpr0_vgpr1 = COPY %1(<2 x s32>) 287... 288 289--- 290name: test_freeze_v3s32 291legalized: true 292 293body: | 294 bb.0: 295 liveins: $vgpr0_vgpr1_vgpr2 296 ; CHECK-LABEL: name: test_freeze_v3s32 297 ; CHECK: [[COPY:%[0-9]+]]:vgpr(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2 298 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(<3 x s32>) = G_FREEZE [[COPY]] 299 ; CHECK: $vgpr0_vgpr1_vgpr2 = COPY [[FREEZE]](<3 x s32>) 300 %0:_(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2 301 %1:_(<3 x s32>) = G_FREEZE %0 302 $vgpr0_vgpr1_vgpr2 = COPY %1(<3 x s32>) 303... 304 305--- 306name: test_freeze_v4s32 307legalized: true 308 309body: | 310 bb.0: 311 liveins: $vgpr0_vgpr1_vgpr2_vgpr3 312 ; CHECK-LABEL: name: test_freeze_v4s32 313 ; CHECK: [[COPY:%[0-9]+]]:vgpr(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 314 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(<4 x s32>) = G_FREEZE [[COPY]] 315 ; CHECK: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](<4 x s32>) 316 %0:_(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 317 %1:_(<4 x s32>) = G_FREEZE %0 318 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<4 x s32>) 319... 320 321--- 322name: test_freeze_v5s32 323legalized: true 324 325body: | 326 bb.0: 327 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 328 ; CHECK-LABEL: name: test_freeze_v5s32 329 ; CHECK: [[COPY:%[0-9]+]]:vgpr(<5 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 330 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(<5 x s32>) = G_FREEZE [[COPY]] 331 ; CHECK: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY [[FREEZE]](<5 x s32>) 332 %0:_(<5 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 333 %1:_(<5 x s32>) = G_FREEZE %0 334 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY %1(<5 x s32>) 335... 336 337--- 338name: test_freeze_v8s32 339legalized: true 340 341body: | 342 bb.0: 343 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 344 ; CHECK-LABEL: name: test_freeze_v8s32 345 ; CHECK: [[COPY:%[0-9]+]]:vgpr(<8 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 346 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(<8 x s32>) = G_FREEZE [[COPY]] 347 ; CHECK: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[FREEZE]](<8 x s32>) 348 %0:_(<8 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 349 %1:_(<8 x s32>) = G_FREEZE %0 350 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1(<8 x s32>) 351... 352 353--- 354name: test_freeze_v16s32 355legalized: true 356 357body: | 358 bb.0: 359 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 360 ; CHECK-LABEL: name: test_freeze_v16s32 361 ; CHECK: [[COPY:%[0-9]+]]:vgpr(<16 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 362 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(<16 x s32>) = G_FREEZE [[COPY]] 363 ; CHECK: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[FREEZE]](<16 x s32>) 364 %0:_(<16 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 365 %1:_(<16 x s32>) = G_FREEZE %0 366 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1(<16 x s32>) 367... 368 369--- 370name: test_freeze_v2s16 371legalized: true 372 373body: | 374 bb.0: 375 liveins: $vgpr0 376 ; CHECK-LABEL: name: test_freeze_v2s16 377 ; CHECK: [[COPY:%[0-9]+]]:vgpr(<2 x s16>) = COPY $vgpr0 378 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(<2 x s16>) = G_FREEZE [[COPY]] 379 ; CHECK: $vgpr0 = COPY [[FREEZE]](<2 x s16>) 380 %0:_(<2 x s16>) = COPY $vgpr0 381 %1:_(<2 x s16>) = G_FREEZE %0 382 $vgpr0 = COPY %1(<2 x s16>) 383... 384 385--- 386name: test_freeze_v4s16 387legalized: true 388 389body: | 390 bb.0: 391 liveins: $vgpr0_vgpr1 392 ; CHECK-LABEL: name: test_freeze_v4s16 393 ; CHECK: [[COPY:%[0-9]+]]:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1 394 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(<4 x s16>) = G_FREEZE [[COPY]] 395 ; CHECK: $vgpr0_vgpr1 = COPY [[FREEZE]](<4 x s16>) 396 %0:_(<4 x s16>) = COPY $vgpr0_vgpr1 397 %1:_(<4 x s16>) = G_FREEZE %0 398 $vgpr0_vgpr1 = COPY %1(<4 x s16>) 399... 400 401--- 402name: test_freeze_v6s16 403legalized: true 404 405body: | 406 bb.0: 407 liveins: $vgpr0_vgpr1_vgpr2 408 ; CHECK-LABEL: name: test_freeze_v6s16 409 ; CHECK: [[COPY:%[0-9]+]]:vgpr(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2 410 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(<6 x s16>) = G_FREEZE [[COPY]] 411 ; CHECK: $vgpr0_vgpr1_vgpr2 = COPY [[FREEZE]](<6 x s16>) 412 %0:_(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2 413 %1:_(<6 x s16>) = G_FREEZE %0 414 $vgpr0_vgpr1_vgpr2 = COPY %1(<6 x s16>) 415... 416 417--- 418name: test_freeze_v8s16 419legalized: true 420 421body: | 422 bb.0: 423 liveins: $vgpr0_vgpr1_vgpr2_vgpr3 424 ; CHECK-LABEL: name: test_freeze_v8s16 425 ; CHECK: [[COPY:%[0-9]+]]:vgpr(<8 x s16>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 426 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(<8 x s16>) = G_FREEZE [[COPY]] 427 ; CHECK: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](<8 x s16>) 428 %0:_(<8 x s16>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 429 %1:_(<8 x s16>) = G_FREEZE %0 430 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<8 x s16>) 431... 432 433--- 434name: test_freeze_v2s64 435legalized: true 436 437body: | 438 bb.0: 439 liveins: $vgpr0_vgpr1_vgpr2_vgpr3 440 ; CHECK-LABEL: name: test_freeze_v2s64 441 ; CHECK: [[COPY:%[0-9]+]]:vgpr(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 442 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(<2 x s64>) = G_FREEZE [[COPY]] 443 ; CHECK: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[FREEZE]](<2 x s64>) 444 %0:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 445 %1:_(<2 x s64>) = G_FREEZE %0 446 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<2 x s64>) 447... 448 449--- 450name: test_freeze_p0 451legalized: true 452 453body: | 454 bb.0: 455 liveins: $vgpr0_vgpr1 456 ; CHECK-LABEL: name: test_freeze_p0 457 ; CHECK: [[COPY:%[0-9]+]]:vgpr(p0) = COPY $vgpr0_vgpr1 458 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(p0) = G_FREEZE [[COPY]] 459 ; CHECK: $vgpr0_vgpr1 = COPY [[FREEZE]](p0) 460 %0:_(p0) = COPY $vgpr0_vgpr1 461 %1:_(p0) = G_FREEZE %0 462 $vgpr0_vgpr1 = COPY %1(p0) 463... 464 465--- 466name: test_freeze_p1 467legalized: true 468 469body: | 470 bb.0: 471 liveins: $vgpr0_vgpr1 472 ; CHECK-LABEL: name: test_freeze_p1 473 ; CHECK: [[COPY:%[0-9]+]]:vgpr(p1) = COPY $vgpr0_vgpr1 474 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(p1) = G_FREEZE [[COPY]] 475 ; CHECK: $vgpr0_vgpr1 = COPY [[FREEZE]](p1) 476 %0:_(p1) = COPY $vgpr0_vgpr1 477 %1:_(p1) = G_FREEZE %0 478 $vgpr0_vgpr1 = COPY %1(p1) 479... 480 481--- 482name: test_freeze_p2 483legalized: true 484 485body: | 486 bb.0: 487 liveins: $vgpr0 488 ; CHECK-LABEL: name: test_freeze_p2 489 ; CHECK: [[COPY:%[0-9]+]]:vgpr(p2) = COPY $vgpr0 490 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(p2) = G_FREEZE [[COPY]] 491 ; CHECK: $vgpr0 = COPY [[FREEZE]](p2) 492 %0:_(p2) = COPY $vgpr0 493 %1:_(p2) = G_FREEZE %0 494 $vgpr0 = COPY %1(p2) 495... 496 497--- 498name: test_freeze_p3 499legalized: true 500 501body: | 502 bb.0: 503 liveins: $vgpr0 504 ; CHECK-LABEL: name: test_freeze_p3 505 ; CHECK: [[COPY:%[0-9]+]]:vgpr(p3) = COPY $vgpr0 506 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(p3) = G_FREEZE [[COPY]] 507 ; CHECK: $vgpr0 = COPY [[FREEZE]](p3) 508 %0:_(p3) = COPY $vgpr0 509 %1:_(p3) = G_FREEZE %0 510 $vgpr0 = COPY %1(p3) 511... 512 513--- 514name: test_freeze_p4 515legalized: true 516 517body: | 518 bb.0: 519 liveins: $vgpr0_vgpr1 520 ; CHECK-LABEL: name: test_freeze_p4 521 ; CHECK: [[COPY:%[0-9]+]]:vgpr(p4) = COPY $vgpr0_vgpr1 522 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(p4) = G_FREEZE [[COPY]] 523 ; CHECK: $vgpr0_vgpr1 = COPY [[FREEZE]](p4) 524 %0:_(p4) = COPY $vgpr0_vgpr1 525 %1:_(p4) = G_FREEZE %0 526 $vgpr0_vgpr1 = COPY %1(p4) 527... 528 529--- 530name: test_freeze_p5 531legalized: true 532 533body: | 534 bb.0: 535 liveins: $vgpr0 536 ; CHECK-LABEL: name: test_freeze_p5 537 ; CHECK: [[COPY:%[0-9]+]]:vgpr(p5) = COPY $vgpr0 538 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(p5) = G_FREEZE [[COPY]] 539 ; CHECK: $vgpr0 = COPY [[FREEZE]](p5) 540 %0:_(p5) = COPY $vgpr0 541 %1:_(p5) = G_FREEZE %0 542 $vgpr0 = COPY %1(p5) 543... 544 545--- 546name: test_freeze_p999 547legalized: true 548 549body: | 550 bb.0: 551 liveins: $vgpr0_vgpr1 552 ; CHECK-LABEL: name: test_freeze_p999 553 ; CHECK: [[COPY:%[0-9]+]]:vgpr(p999) = COPY $vgpr0_vgpr1 554 ; CHECK: [[FREEZE:%[0-9]+]]:vgpr(p999) = G_FREEZE [[COPY]] 555 ; CHECK: $vgpr0_vgpr1 = COPY [[FREEZE]](p999) 556 %0:_(p999) = COPY $vgpr0_vgpr1 557 %1:_(p999) = G_FREEZE %0 558 $vgpr0_vgpr1 = COPY %1(p999) 559... 560