brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.5 KiB · 9b9601e Raw
138 lines · plain
1# RUN: llc -mtriple=amdgcn -run-pass si-fix-sgpr-copies %s -o - | FileCheck %s -check-prefixes=GCN2# RUN: llc -mtriple=amdgcn -passes=si-fix-sgpr-copies %s -o - | FileCheck %s -check-prefixes=GCN3 4---5 6name: phi_visit_order7tracksRegLiveness: true8registers:9  - { id: 0, class: sreg_32_xm0 }10  - { id: 1, class: sreg_64 }11  - { id: 2, class: sreg_32_xm0 }12  - { id: 7, class: vgpr_32 }13  - { id: 8, class: sreg_32_xm0 }14  - { id: 9, class: vgpr_32 }15  - { id: 10, class: sreg_64 }16  - { id: 11, class: sreg_32_xm0 }17 18body: |19  ; GCN-LABEL: name: phi_visit_order20  ; GCN: S_ADD_I3221  bb.0:22    liveins: $vgpr023    %7 = COPY $vgpr024    %8 = S_MOV_B32 025 26  bb.1:27    %0 = PHI %8, %bb.0, %0, %bb.1, %2, %bb.228    %9 = V_MOV_B32_e32 9, implicit $exec29    %10 = V_CMP_EQ_U32_e64 %7, %9, implicit $exec30    %1 = SI_IF %10, %bb.2, implicit-def $exec, implicit-def $scc, implicit $exec31    S_BRANCH %bb.132 33  bb.2:34    SI_END_CF %1, implicit-def $exec, implicit-def $scc, implicit $exec35    %11 = S_MOV_B32 136    %2 = S_ADD_I32 %0, %11, implicit-def $scc37    S_BRANCH %bb.138 39...40 41---42 43# GCN-LABEL: name: dead_illegal_virtreg_copy44# GCN: %0:vgpr_32 = COPY $vgpr045# GCN: S_ENDPGM 0, implicit %046 47name: dead_illegal_virtreg_copy48tracksRegLiveness: true49 50body: |51  bb.0:52    liveins: $vgpr053    %0:vgpr_32 = COPY $vgpr054    %1:sreg_32_xm0 = COPY %055    S_ENDPGM 0, implicit %156...57 58---59 60# GCN-LABEL: name: dead_illegal_physreg_copy61# GCN: %2:vgpr_32 = COPY $vgpr062# GCN: S_ENDPGM 0, implicit %263 64name: dead_illegal_physreg_copy65tracksRegLiveness: true66 67body: |68  bb.0:69    liveins: $vgpr070    %0:sreg_32_xm0 = COPY $vgpr071    %1:sreg_32_xm0 = COPY %072    S_ENDPGM 0, implicit %173...74 75# Make sure there's no assert when looking at the implicit use on S_ENDPGM76# GCN-LABEL: name: s_to_v_copy_implicit_use77# GCN: %0:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM undef %1:sreg_64, 0, 0 :: (load (s32), addrspace 4)78# GCN-NEXT: %2:vgpr_32 = COPY %079# GCN-NEXT: S_ENDPGM 0, implicit %280---81name: s_to_v_copy_implicit_use82tracksRegLiveness: true83body:               |84  bb.0:85    %0:sreg_32_xm0_xexec = S_LOAD_DWORD_IMM undef %2:sreg_64, 0, 0 :: (load (s32), addrspace 4)86    %1:vgpr_32 = COPY %087    S_ENDPGM 0, implicit %188 89...90 91# GCN-LABEL: name: find_debug_loc_end_iterator_regression92# GCN: %6:vreg_1 = COPY %493# GCN: %14:sgpr_32 = S_MOV_B32 094 95# GCN: %7:vgpr_32 = PHI %5, %bb.0, %1, %bb.396# GCN: %8:sreg_32 = PHI %14, %bb.0, %9, %bb.397 98# GCN: %11:sreg_64 = PHI %10, %bb.1, %12, %bb.299# GCN: %13:sreg_64 = COPY %6100---101name: find_debug_loc_end_iterator_regression102tracksRegLiveness: true103body:             |104  bb.0:105    liveins: $vgpr2, $vgpr3106 107    %0:vgpr_32 = COPY $vgpr3108    %1:vgpr_32 = COPY $vgpr2109    %2:sreg_64 = V_CMP_EQ_U32_e64 killed %0, 1, implicit $exec110    %3:sreg_64 = S_MOV_B64 -1111    %4:sreg_64 = S_XOR_B64 killed %2, killed %3, implicit-def dead $scc112    %5:vgpr_32 = V_MOV_B32_e32 0, implicit $exec113    %6:vreg_1 = COPY %4114 115  bb.1:116    %7:vgpr_32 = PHI %5, %bb.0, %1, %bb.3117    %8:sreg_32 = PHI %5, %bb.0, %9, %bb.3118    %10:sreg_64 = S_MOV_B64 0119 120  bb.2:121    %11:sreg_64 = PHI %10, %bb.1, %12, %bb.2122    %13:sreg_64 = COPY %6123    %12:sreg_64 = SI_IF_BREAK %13, %11, implicit-def dead $scc124    SI_LOOP %12, %bb.2, implicit-def dead $exec, implicit-def dead $scc, implicit $exec125    S_BRANCH %bb.3126 127  bb.3:128    %9:sreg_32 = S_OR_B32 %8, 1, implicit-def dead $scc129    S_CBRANCH_VCCNZ %bb.1, implicit undef $vcc130    S_BRANCH %bb.4131 132  bb.4:133    SI_RETURN134 135...136## NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:137# GCN: {{.*}}138