brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · 8687d6c Raw
68 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=postra-machine-sink -verify-machineinstrs -o - %s | FileCheck %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -passes='postra-machine-sink' -o - %s | FileCheck %s4#5# In the example, the ` $sgpr4 = COPY $sgpr2` was incorrectly sunk into bb.3. This happened because we did not update6# register uses when we found that `$sgpr2 = COPY $sgpr3` should not be sunk because of conflict with the successor's7# prologue instructions.8---9name:            update_dependency_correctly10tracksRegLiveness: true11body:             |12  ; CHECK-LABEL: name: update_dependency_correctly13  ; CHECK: bb.0:14  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)15  ; CHECK-NEXT:   liveins: $sgpr0, $sgpr3, $sgpr216  ; CHECK-NEXT: {{  $}}17  ; CHECK-NEXT:   $vgpr1 = IMPLICIT_DEF18  ; CHECK-NEXT:   renamable $sgpr4 = COPY $sgpr219  ; CHECK-NEXT:   renamable $sgpr2 = COPY $sgpr320  ; CHECK-NEXT:   $vgpr1 = SI_SPILL_S32_TO_VGPR $sgpr0, 0, $vgpr121  ; CHECK-NEXT:   $sgpr1 = S_AND_SAVEEXEC_B32 $sgpr0, implicit-def $exec, implicit-def $scc, implicit $exec22  ; CHECK-NEXT:   S_CBRANCH_EXECZ %bb.1, implicit $exec23  ; CHECK-NEXT:   S_BRANCH %bb.224  ; CHECK-NEXT: {{  $}}25  ; CHECK-NEXT: bb.1:26  ; CHECK-NEXT:   S_ENDPGM 027  ; CHECK-NEXT: {{  $}}28  ; CHECK-NEXT: bb.2:29  ; CHECK-NEXT:   successors: %bb.1(0x80000000)30  ; CHECK-NEXT:   liveins: $sgpr0, $sgpr2, $sgpr4, $vgpr131  ; CHECK-NEXT: {{  $}}32  ; CHECK-NEXT:   $sgpr3 = SI_RESTORE_S32_FROM_VGPR $vgpr1, 033  ; CHECK-NEXT:   renamable $sgpr0_sgpr1 = S_GETPC_B64_pseudo34  ; CHECK-NEXT:   renamable $sgpr5 = COPY $sgpr135  ; CHECK-NEXT:   renamable $sgpr0_sgpr1 = S_LOAD_DWORDX2_IMM renamable $sgpr4_sgpr5, 32, 036  ; CHECK-NEXT:   S_BRANCH %bb.137  bb.0:38    successors: %bb.3(0x40000000), %bb.2(0x40000000)39    liveins: $sgpr0, $sgpr3, $sgpr240 41    $vgpr1 = IMPLICIT_DEF42 43    renamable $sgpr4 = COPY $sgpr244    renamable $sgpr2 = COPY $sgpr345 46    $vgpr1 = SI_SPILL_S32_TO_VGPR $sgpr0, 0, $vgpr147 48    $sgpr1 = S_AND_SAVEEXEC_B32 $sgpr0, implicit-def $exec, implicit-def $scc, implicit $exec49    S_CBRANCH_EXECZ %bb.2, implicit $exec50    S_BRANCH %bb.351 52  bb.2:53    S_ENDPGM 054 55  bb.3:56    successors: %bb.2(0x40000000)57    liveins: $sgpr0, $sgpr2, $sgpr4, $vgpr158 59    $sgpr3 = SI_RESTORE_S32_FROM_VGPR $vgpr1, 060 61    renamable $sgpr0_sgpr1 = S_GETPC_B64_pseudo62    renamable $sgpr5 = COPY $sgpr163    renamable $sgpr0_sgpr1 = S_LOAD_DWORDX2_IMM renamable $sgpr4_sgpr5, 32, 064 65    S_BRANCH %bb.266 67...68