1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=instruction-select %s -o - | FileCheck -check-prefix=GFX6 %s 3# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=instruction-select %s -o - | FileCheck -check-prefix=GFX6 %s 4# RUN: llc -march=amdgcn -mcpu=gfx1010 -run-pass=instruction-select %s -o - | FileCheck -check-prefix=GFX10 %s 5 6--- 7name: test_freeze_s1_vgpr_to_vgpr 8alignment: 1 9legalized: true 10regBankSelected: true 11 12body: | 13 bb.0: 14 liveins: $vgpr0 15 ; GFX6-LABEL: name: test_freeze_s1_vgpr_to_vgpr 16 ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 17 ; GFX6: $vgpr0 = COPY [[COPY]] 18 ; GFX10-LABEL: name: test_freeze_s1_vgpr_to_vgpr 19 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 20 ; GFX10: $vgpr0 = COPY [[COPY]] 21 %0:vgpr(s32) = COPY $vgpr0 22 %1:vgpr(s1) = G_TRUNC %0(s32) 23 %2:vgpr(s1) = G_FREEZE %1 24 %3:vgpr(s32) = G_ANYEXT %2(s1) 25 $vgpr0 = COPY %3(s32) 26 27... 28 29--- 30name: test_freeze_s1_vgpr_to_agpr 31alignment: 1 32legalized: true 33regBankSelected: true 34 35body: | 36 bb.0: 37 liveins: $vgpr0 38 ; GFX6-LABEL: name: test_freeze_s1_vgpr_to_agpr 39 ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 40 ; GFX6: $agpr0 = COPY [[COPY]] 41 ; GFX10-LABEL: name: test_freeze_s1_vgpr_to_agpr 42 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 43 ; GFX10: $agpr0 = COPY [[COPY]] 44 %0:vgpr(s32) = COPY $vgpr0 45 %1:vgpr(s1) = G_TRUNC %0(s32) 46 %2:vgpr(s1) = G_FREEZE %1 47 %3:vgpr(s32) = G_ANYEXT %2(s1) 48 $agpr0 = COPY %3(s32) 49 50... 51 52--- 53name: test_freeze_s1_vcc 54alignment: 1 55legalized: true 56regBankSelected: true 57 58body: | 59 bb.0: 60 liveins: $vgpr0, $vgpr1 61 ; GFX6-LABEL: name: test_freeze_s1_vcc 62 ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 63 ; GFX6: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 64 ; GFX6: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64 = V_CMP_EQ_U32_e64 [[COPY]], [[COPY1]], implicit $exec 65 ; GFX6: [[COPY2:%[0-9]+]]:sreg_64_xexec = COPY [[V_CMP_EQ_U32_e64_]] 66 ; GFX6: S_ENDPGM 0, implicit [[COPY2]] 67 ; GFX10-LABEL: name: test_freeze_s1_vcc 68 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 69 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 70 ; GFX10: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_32 = V_CMP_EQ_U32_e64 [[COPY]], [[COPY1]], implicit $exec 71 ; GFX10: [[COPY2:%[0-9]+]]:sreg_32_xm0_xexec = COPY [[V_CMP_EQ_U32_e64_]] 72 ; GFX10: S_ENDPGM 0, implicit [[COPY2]] 73 %0:vgpr(s32) = COPY $vgpr0 74 %1:vgpr(s32) = COPY $vgpr1 75 %2:vcc(s1) = G_ICMP intpred(eq), %0(s32), %1 76 %3:vcc(s1) = G_FREEZE %2 77 S_ENDPGM 0, implicit %3(s1) 78 79... 80 81--- 82name: test_freeze_s16_vgpr_to_vgpr 83alignment: 1 84legalized: true 85regBankSelected: true 86 87body: | 88 bb.0: 89 liveins: $vgpr0 90 ; GFX6-LABEL: name: test_freeze_s16_vgpr_to_vgpr 91 ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 92 ; GFX6: $vgpr0 = COPY [[COPY]] 93 ; GFX10-LABEL: name: test_freeze_s16_vgpr_to_vgpr 94 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 95 ; GFX10: $vgpr0 = COPY [[COPY]] 96 %0:vgpr(s32) = COPY $vgpr0 97 %1:vgpr(s16) = G_TRUNC %0(s32) 98 %2:vgpr(s16) = G_FREEZE %1 99 %3:vgpr(s32) = G_ANYEXT %2(s16) 100 $vgpr0 = COPY %3(s32) 101 102... 103 104--- 105name: test_freeze_s32_vgpr_to_vgpr 106alignment: 1 107legalized: true 108regBankSelected: true 109 110body: | 111 bb.0: 112 liveins: $vgpr0 113 ; GFX6-LABEL: name: test_freeze_s32_vgpr_to_vgpr 114 ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 115 ; GFX6: $vgpr0 = COPY [[COPY]] 116 ; GFX10-LABEL: name: test_freeze_s32_vgpr_to_vgpr 117 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 118 ; GFX10: $vgpr0 = COPY [[COPY]] 119 %0:vgpr(s32) = COPY $vgpr0 120 %1:vgpr(s32) = G_FREEZE %0 121 $vgpr0 = COPY %1(s32) 122 123... 124 125--- 126name: test_freeze_s32_sgpr_to_sgpr 127alignment: 1 128legalized: true 129regBankSelected: true 130 131body: | 132 bb.0: 133 liveins: $sgpr0 134 ; GFX6-LABEL: name: test_freeze_s32_sgpr_to_sgpr 135 ; GFX6: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 136 ; GFX6: $sgpr0 = COPY [[COPY]] 137 ; GFX10-LABEL: name: test_freeze_s32_sgpr_to_sgpr 138 ; GFX10: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 139 ; GFX10: $sgpr0 = COPY [[COPY]] 140 %0:sgpr(s32) = COPY $sgpr0 141 %1:sgpr(s32) = G_FREEZE %0 142 $sgpr0 = COPY %1(s32) 143 144... 145 146--- 147name: test_freeze_s32_sgpr_to_vgpr 148alignment: 1 149legalized: true 150regBankSelected: true 151 152body: | 153 bb.0: 154 liveins: $sgpr0 155 ; GFX6-LABEL: name: test_freeze_s32_sgpr_to_vgpr 156 ; GFX6: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 157 ; GFX6: $vgpr0 = COPY [[COPY]] 158 ; GFX10-LABEL: name: test_freeze_s32_sgpr_to_vgpr 159 ; GFX10: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 160 ; GFX10: $vgpr0 = COPY [[COPY]] 161 %0:sgpr(s32) = COPY $sgpr0 162 %1:sgpr(s32) = G_FREEZE %0 163 $vgpr0 = COPY %1(s32) 164 165... 166 167--- 168name: test_freeze_s32_vgpr_to_agpr 169alignment: 1 170legalized: true 171regBankSelected: true 172 173body: | 174 bb.0: 175 liveins: $vgpr0 176 ; GFX6-LABEL: name: test_freeze_s32_vgpr_to_agpr 177 ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 178 ; GFX6: $agpr0 = COPY [[COPY]] 179 ; GFX10-LABEL: name: test_freeze_s32_vgpr_to_agpr 180 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 181 ; GFX10: $agpr0 = COPY [[COPY]] 182 %0:vgpr(s32) = COPY $vgpr0 183 %1:vgpr(s32) = G_FREEZE %0 184 $agpr0 = COPY %1(s32) 185 186... 187 188--- 189name: test_freeze_s32_sgpr_to_agpr 190alignment: 1 191legalized: true 192regBankSelected: true 193 194body: | 195 bb.0: 196 liveins: $sgpr0 197 ; GFX6-LABEL: name: test_freeze_s32_sgpr_to_agpr 198 ; GFX6: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 199 ; GFX6: $agpr0 = COPY [[COPY]] 200 ; GFX10-LABEL: name: test_freeze_s32_sgpr_to_agpr 201 ; GFX10: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0 202 ; GFX10: $agpr0 = COPY [[COPY]] 203 %0:sgpr(s32) = COPY $sgpr0 204 %1:sgpr(s32) = G_FREEZE %0 205 $agpr0 = COPY %1(s32) 206 207... 208 209--- 210name: test_freeze_s32_agpr_to_vgpr 211alignment: 1 212legalized: true 213regBankSelected: true 214 215body: | 216 bb.0: 217 liveins: $agpr0 218 ; GFX6-LABEL: name: test_freeze_s32_agpr_to_vgpr 219 ; GFX6: [[COPY:%[0-9]+]]:agpr_32 = COPY $agpr0 220 ; GFX6: $vgpr0 = COPY [[COPY]] 221 ; GFX10-LABEL: name: test_freeze_s32_agpr_to_vgpr 222 ; GFX10: [[COPY:%[0-9]+]]:agpr_32 = COPY $agpr0 223 ; GFX10: $vgpr0 = COPY [[COPY]] 224 %0:agpr(s32) = COPY $agpr0 225 %1:agpr(s32) = G_FREEZE %0 226 $vgpr0 = COPY %1(s32) 227 228... 229 230--- 231name: test_freeze_s32_agpr_to_agpr 232alignment: 1 233legalized: true 234regBankSelected: true 235 236body: | 237 bb.0: 238 liveins: $agpr0 239 ; GFX6-LABEL: name: test_freeze_s32_agpr_to_agpr 240 ; GFX6: [[COPY:%[0-9]+]]:agpr_32 = COPY $agpr0 241 ; GFX6: $agpr0 = COPY [[COPY]] 242 ; GFX10-LABEL: name: test_freeze_s32_agpr_to_agpr 243 ; GFX10: [[COPY:%[0-9]+]]:agpr_32 = COPY $agpr0 244 ; GFX10: $agpr0 = COPY [[COPY]] 245 %0:agpr(s32) = COPY $agpr0 246 %1:agpr(s32) = G_FREEZE %0 247 $agpr0 = COPY %1(s32) 248 249... 250 251--- 252name: test_freeze_s64 253alignment: 1 254legalized: true 255regBankSelected: true 256 257body: | 258 bb.0: 259 liveins: $vgpr0_vgpr1 260 ; GFX6-LABEL: name: test_freeze_s64 261 ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 262 ; GFX6: $vgpr0_vgpr1 = COPY [[COPY]] 263 ; GFX10-LABEL: name: test_freeze_s64 264 ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 265 ; GFX10: $vgpr0_vgpr1 = COPY [[COPY]] 266 %0:vgpr(s64) = COPY $vgpr0_vgpr1 267 %1:vgpr(s64) = G_FREEZE %0 268 $vgpr0_vgpr1 = COPY %1(s64) 269 270... 271 272--- 273name: test_freeze_s128 274alignment: 1 275legalized: true 276regBankSelected: true 277 278body: | 279 bb.0: 280 liveins: $vgpr0_vgpr1_vgpr2_vgpr3 281 ; GFX6-LABEL: name: test_freeze_s128 282 ; GFX6: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3 283 ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]] 284 ; GFX10-LABEL: name: test_freeze_s128 285 ; GFX10: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3 286 ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]] 287 %0:vgpr(s128) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 288 %1:vgpr(s128) = G_FREEZE %0 289 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(s128) 290 291... 292 293--- 294name: test_freeze_256 295alignment: 1 296legalized: true 297regBankSelected: true 298 299body: | 300 bb.0: 301 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 302 ; GFX6-LABEL: name: test_freeze_256 303 ; GFX6: [[COPY:%[0-9]+]]:vreg_256 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 304 ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[COPY]] 305 ; GFX10-LABEL: name: test_freeze_256 306 ; GFX10: [[COPY:%[0-9]+]]:vreg_256 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 307 ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[COPY]] 308 %0:vgpr(s256) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 309 %1:vgpr(s256) = G_FREEZE %0 310 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1(s256) 311 312... 313 314--- 315name: test_freeze_s512 316alignment: 1 317legalized: true 318regBankSelected: true 319 320body: | 321 bb.0: 322 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 323 ; GFX6-LABEL: name: test_freeze_s512 324 ; GFX6: [[COPY:%[0-9]+]]:vreg_512 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 325 ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[COPY]] 326 ; GFX10-LABEL: name: test_freeze_s512 327 ; GFX10: [[COPY:%[0-9]+]]:vreg_512 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 328 ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[COPY]] 329 %0:vgpr(s512) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 330 %1:vgpr(s512) = G_FREEZE %0 331 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1(s512) 332 333... 334 335--- 336name: test_freeze_v2s32 337alignment: 1 338legalized: true 339regBankSelected: true 340 341body: | 342 bb.0: 343 liveins: $vgpr0_vgpr1 344 ; GFX6-LABEL: name: test_freeze_v2s32 345 ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 346 ; GFX6: $vgpr0_vgpr1 = COPY [[COPY]] 347 ; GFX10-LABEL: name: test_freeze_v2s32 348 ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 349 ; GFX10: $vgpr0_vgpr1 = COPY [[COPY]] 350 %0:vgpr(<2 x s32>) = COPY $vgpr0_vgpr1 351 %1:vgpr(<2 x s32>) = G_FREEZE %0 352 $vgpr0_vgpr1 = COPY %1(<2 x s32>) 353 354... 355 356--- 357name: test_freeze_v3s32 358alignment: 1 359legalized: true 360regBankSelected: true 361 362body: | 363 bb.0: 364 liveins: $vgpr0_vgpr1_vgpr2 365 ; GFX6-LABEL: name: test_freeze_v3s32 366 ; GFX6: [[COPY:%[0-9]+]]:vreg_96 = COPY $vgpr0_vgpr1_vgpr2 367 ; GFX6: $vgpr0_vgpr1_vgpr2 = COPY [[COPY]] 368 ; GFX10-LABEL: name: test_freeze_v3s32 369 ; GFX10: [[COPY:%[0-9]+]]:vreg_96 = COPY $vgpr0_vgpr1_vgpr2 370 ; GFX10: $vgpr0_vgpr1_vgpr2 = COPY [[COPY]] 371 %0:vgpr(<3 x s32>) = COPY $vgpr0_vgpr1_vgpr2 372 %1:vgpr(<3 x s32>) = G_FREEZE %0 373 $vgpr0_vgpr1_vgpr2 = COPY %1(<3 x s32>) 374 375... 376 377--- 378name: test_freeze_v4s32 379alignment: 1 380legalized: true 381regBankSelected: true 382 383body: | 384 bb.0: 385 liveins: $vgpr0_vgpr1_vgpr2_vgpr3 386 ; GFX6-LABEL: name: test_freeze_v4s32 387 ; GFX6: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3 388 ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]] 389 ; GFX10-LABEL: name: test_freeze_v4s32 390 ; GFX10: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3 391 ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]] 392 %0:vgpr(<4 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 393 %1:vgpr(<4 x s32>) = G_FREEZE %0 394 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<4 x s32>) 395 396... 397 398--- 399name: test_freeze_v5s32 400alignment: 1 401legalized: true 402regBankSelected: true 403 404body: | 405 bb.0: 406 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 407 ; GFX6-LABEL: name: test_freeze_v5s32 408 ; GFX6: [[COPY:%[0-9]+]]:vreg_160 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 409 ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY [[COPY]] 410 ; GFX10-LABEL: name: test_freeze_v5s32 411 ; GFX10: [[COPY:%[0-9]+]]:vreg_160 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 412 ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY [[COPY]] 413 %0:vgpr(<5 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 414 %1:vgpr(<5 x s32>) = G_FREEZE %0 415 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4 = COPY %1(<5 x s32>) 416 417... 418 419--- 420name: test_freeze_v8s32 421alignment: 1 422legalized: true 423regBankSelected: true 424 425body: | 426 bb.0: 427 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 428 ; GFX6-LABEL: name: test_freeze_v8s32 429 ; GFX6: [[COPY:%[0-9]+]]:vreg_256 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 430 ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[COPY]] 431 ; GFX10-LABEL: name: test_freeze_v8s32 432 ; GFX10: [[COPY:%[0-9]+]]:vreg_256 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 433 ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY [[COPY]] 434 %0:vgpr(<8 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 435 %1:vgpr(<8 x s32>) = G_FREEZE %0 436 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7 = COPY %1(<8 x s32>) 437 438... 439 440--- 441name: test_freeze_v16s32 442alignment: 1 443legalized: true 444regBankSelected: true 445 446body: | 447 bb.0: 448 liveins: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 449 ; GFX6-LABEL: name: test_freeze_v16s32 450 ; GFX6: [[COPY:%[0-9]+]]:vreg_512 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 451 ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[COPY]] 452 ; GFX10-LABEL: name: test_freeze_v16s32 453 ; GFX10: [[COPY:%[0-9]+]]:vreg_512 = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 454 ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY [[COPY]] 455 %0:vgpr(<16 x s32>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 456 %1:vgpr(<16 x s32>) = G_FREEZE %0 457 $vgpr0_vgpr1_vgpr2_vgpr3_vgpr4_vgpr5_vgpr6_vgpr7_vgpr8_vgpr9_vgpr10_vgpr11_vgpr12_vgpr13_vgpr14_vgpr15 = COPY %1(<16 x s32>) 458 459... 460 461--- 462name: test_freeze_v2s16 463alignment: 1 464legalized: true 465regBankSelected: true 466 467body: | 468 bb.0: 469 liveins: $vgpr0 470 ; GFX6-LABEL: name: test_freeze_v2s16 471 ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 472 ; GFX6: $vgpr0 = COPY [[COPY]] 473 ; GFX10-LABEL: name: test_freeze_v2s16 474 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 475 ; GFX10: $vgpr0 = COPY [[COPY]] 476 %0:vgpr(<2 x s16>) = COPY $vgpr0 477 %1:vgpr(<2 x s16>) = G_FREEZE %0 478 $vgpr0 = COPY %1(<2 x s16>) 479 480... 481 482--- 483name: test_freeze_v4s16 484alignment: 1 485legalized: true 486regBankSelected: true 487 488body: | 489 bb.0: 490 liveins: $vgpr0_vgpr1 491 ; GFX6-LABEL: name: test_freeze_v4s16 492 ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 493 ; GFX6: $vgpr0_vgpr1 = COPY [[COPY]] 494 ; GFX10-LABEL: name: test_freeze_v4s16 495 ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 496 ; GFX10: $vgpr0_vgpr1 = COPY [[COPY]] 497 %0:vgpr(<4 x s16>) = COPY $vgpr0_vgpr1 498 %1:vgpr(<4 x s16>) = G_FREEZE %0 499 $vgpr0_vgpr1 = COPY %1(<4 x s16>) 500 501... 502 503--- 504name: test_freeze_v6s16 505alignment: 1 506legalized: true 507regBankSelected: true 508 509body: | 510 bb.0: 511 liveins: $vgpr0_vgpr1_vgpr2 512 ; GFX6-LABEL: name: test_freeze_v6s16 513 ; GFX6: [[COPY:%[0-9]+]]:vreg_96 = COPY $vgpr0_vgpr1_vgpr2 514 ; GFX6: $vgpr0_vgpr1_vgpr2 = COPY [[COPY]] 515 ; GFX10-LABEL: name: test_freeze_v6s16 516 ; GFX10: [[COPY:%[0-9]+]]:vreg_96 = COPY $vgpr0_vgpr1_vgpr2 517 ; GFX10: $vgpr0_vgpr1_vgpr2 = COPY [[COPY]] 518 %0:vgpr(<6 x s16>) = COPY $vgpr0_vgpr1_vgpr2 519 %1:vgpr(<6 x s16>) = G_FREEZE %0 520 $vgpr0_vgpr1_vgpr2 = COPY %1(<6 x s16>) 521 522... 523 524--- 525name: test_freeze_v8s16 526alignment: 1 527legalized: true 528regBankSelected: true 529 530body: | 531 bb.0: 532 liveins: $vgpr0_vgpr1_vgpr2_vgpr3 533 ; GFX6-LABEL: name: test_freeze_v8s16 534 ; GFX6: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3 535 ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]] 536 ; GFX10-LABEL: name: test_freeze_v8s16 537 ; GFX10: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3 538 ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]] 539 %0:vgpr(<8 x s16>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 540 %1:vgpr(<8 x s16>) = G_FREEZE %0 541 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<8 x s16>) 542 543... 544 545--- 546name: test_freeze_v2s64 547alignment: 1 548legalized: true 549regBankSelected: true 550 551body: | 552 bb.0: 553 liveins: $vgpr0_vgpr1_vgpr2_vgpr3 554 ; GFX6-LABEL: name: test_freeze_v2s64 555 ; GFX6: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3 556 ; GFX6: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]] 557 ; GFX10-LABEL: name: test_freeze_v2s64 558 ; GFX10: [[COPY:%[0-9]+]]:vreg_128 = COPY $vgpr0_vgpr1_vgpr2_vgpr3 559 ; GFX10: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[COPY]] 560 %0:vgpr(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3 561 %1:vgpr(<2 x s64>) = G_FREEZE %0 562 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %1(<2 x s64>) 563 564... 565 566--- 567name: test_freeze_p0 568alignment: 1 569legalized: true 570regBankSelected: true 571 572body: | 573 bb.0: 574 liveins: $vgpr0_vgpr1 575 ; GFX6-LABEL: name: test_freeze_p0 576 ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 577 ; GFX6: $vgpr0_vgpr1 = COPY [[COPY]] 578 ; GFX10-LABEL: name: test_freeze_p0 579 ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 580 ; GFX10: $vgpr0_vgpr1 = COPY [[COPY]] 581 %0:vgpr(p0) = COPY $vgpr0_vgpr1 582 %1:vgpr(p0) = G_FREEZE %0 583 $vgpr0_vgpr1 = COPY %1(p0) 584 585... 586 587--- 588name: test_freeze_p1 589alignment: 1 590legalized: true 591regBankSelected: true 592 593body: | 594 bb.0: 595 liveins: $vgpr0_vgpr1 596 ; GFX6-LABEL: name: test_freeze_p1 597 ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 598 ; GFX6: $vgpr0_vgpr1 = COPY [[COPY]] 599 ; GFX10-LABEL: name: test_freeze_p1 600 ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 601 ; GFX10: $vgpr0_vgpr1 = COPY [[COPY]] 602 %0:vgpr(p1) = COPY $vgpr0_vgpr1 603 %1:vgpr(p1) = G_FREEZE %0 604 $vgpr0_vgpr1 = COPY %1(p1) 605 606... 607 608--- 609name: test_freeze_p2 610alignment: 1 611legalized: true 612regBankSelected: true 613 614body: | 615 bb.0: 616 liveins: $vgpr0 617 ; GFX6-LABEL: name: test_freeze_p2 618 ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 619 ; GFX6: $vgpr0 = COPY [[COPY]] 620 ; GFX10-LABEL: name: test_freeze_p2 621 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 622 ; GFX10: $vgpr0 = COPY [[COPY]] 623 %0:vgpr(p2) = COPY $vgpr0 624 %1:vgpr(p2) = G_FREEZE %0 625 $vgpr0 = COPY %1(p2) 626 627... 628 629--- 630name: test_freeze_p3 631alignment: 1 632legalized: true 633regBankSelected: true 634 635body: | 636 bb.0: 637 liveins: $vgpr0 638 ; GFX6-LABEL: name: test_freeze_p3 639 ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 640 ; GFX6: $vgpr0 = COPY [[COPY]] 641 ; GFX10-LABEL: name: test_freeze_p3 642 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 643 ; GFX10: $vgpr0 = COPY [[COPY]] 644 %0:vgpr(p3) = COPY $vgpr0 645 %1:vgpr(p3) = G_FREEZE %0 646 $vgpr0 = COPY %1(p3) 647 648... 649 650--- 651name: test_freeze_p4 652alignment: 1 653legalized: true 654regBankSelected: true 655 656body: | 657 bb.0: 658 liveins: $vgpr0_vgpr1 659 ; GFX6-LABEL: name: test_freeze_p4 660 ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 661 ; GFX6: $vgpr0_vgpr1 = COPY [[COPY]] 662 ; GFX10-LABEL: name: test_freeze_p4 663 ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 664 ; GFX10: $vgpr0_vgpr1 = COPY [[COPY]] 665 %0:vgpr(p4) = COPY $vgpr0_vgpr1 666 %1:vgpr(p4) = G_FREEZE %0 667 $vgpr0_vgpr1 = COPY %1(p4) 668 669... 670 671--- 672name: test_freeze_p5 673alignment: 1 674legalized: true 675regBankSelected: true 676 677body: | 678 bb.0: 679 liveins: $vgpr0 680 ; GFX6-LABEL: name: test_freeze_p5 681 ; GFX6: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 682 ; GFX6: $vgpr0 = COPY [[COPY]] 683 ; GFX10-LABEL: name: test_freeze_p5 684 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 685 ; GFX10: $vgpr0 = COPY [[COPY]] 686 %0:vgpr(p5) = COPY $vgpr0 687 %1:vgpr(p5) = G_FREEZE %0 688 $vgpr0 = COPY %1(p5) 689 690... 691 692--- 693name: test_freeze_p999 694alignment: 1 695legalized: true 696regBankSelected: true 697 698body: | 699 bb.0: 700 liveins: $vgpr0_vgpr1 701 ; GFX6-LABEL: name: test_freeze_p999 702 ; GFX6: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 703 ; GFX6: $vgpr0_vgpr1 = COPY [[COPY]] 704 ; GFX10-LABEL: name: test_freeze_p999 705 ; GFX10: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 706 ; GFX10: $vgpr0_vgpr1 = COPY [[COPY]] 707 %0:vgpr(p999) = COPY $vgpr0_vgpr1 708 %1:vgpr(p999) = G_FREEZE %0 709 $vgpr0_vgpr1 = COPY %1(p999) 710 711... 712