165 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx90a -simplify-mir -start-before=greedy,2 -stress-regalloc=3 -stop-after=postrapseudos -o - -verify-regalloc %s | FileCheck %s3 4# Compare results of using V_MOV_B32 vs. AV_MOV_B32_IMM_PSEUDO during5# allocation.6 7---8name: av_mov_b32_split9tracksRegLiveness: true10machineFunctionInfo:11 isEntryFunction: true12 scratchRSrcReg: '$sgpr72_sgpr73_sgpr74_sgpr75'13 stackPtrOffsetReg: '$sgpr32'14 occupancy: 715body: |16 bb.0:17 liveins: $vgpr0, $sgpr4_sgpr518 19 ; CHECK-LABEL: name: av_mov_b32_split20 ; CHECK: liveins: $agpr3, $agpr4, $vgpr0, $sgpr4_sgpr521 ; CHECK-NEXT: {{ $}}22 ; CHECK-NEXT: renamable $agpr0 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec23 ; CHECK-NEXT: renamable $agpr1 = V_ACCVGPR_WRITE_B32_e64 1, implicit $exec24 ; CHECK-NEXT: renamable $agpr2 = V_ACCVGPR_WRITE_B32_e64 2, implicit $exec25 ; CHECK-NEXT: renamable $vgpr0 = V_MOV_B32_e32 3, implicit $exec26 ; CHECK-NEXT: $agpr3 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec27 ; CHECK-NEXT: renamable $vgpr0 = V_MOV_B32_e32 4, implicit $exec28 ; CHECK-NEXT: $agpr4 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec29 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $agpr030 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $agpr131 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $agpr232 ; CHECK-NEXT: $vgpr0 = V_ACCVGPR_READ_B32_e64 $agpr3, implicit $exec33 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $vgpr034 ; CHECK-NEXT: $vgpr0 = V_ACCVGPR_READ_B32_e64 $agpr4, implicit $exec35 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $vgpr036 %0:vgpr_32 = AV_MOV_B32_IMM_PSEUDO 0, implicit $exec37 %1:vgpr_32 = AV_MOV_B32_IMM_PSEUDO 1, implicit $exec38 %2:vgpr_32 = AV_MOV_B32_IMM_PSEUDO 2, implicit $exec39 %3:vgpr_32 = AV_MOV_B32_IMM_PSEUDO 3, implicit $exec40 %4:vgpr_32 = AV_MOV_B32_IMM_PSEUDO 4, implicit $exec41 42 %5:agpr_32 = COPY %043 %6:agpr_32 = COPY %144 %7:agpr_32 = COPY %245 %8:agpr_32 = COPY %346 %9:agpr_32 = COPY %447 48 S_NOP 0, implicit %549 S_NOP 0, implicit %650 S_NOP 0, implicit %751 S_NOP 0, implicit %852 S_NOP 0, implicit %953 54...55 56---57name: v_mov_b32_split58tracksRegLiveness: true59machineFunctionInfo:60 isEntryFunction: true61 scratchRSrcReg: '$sgpr72_sgpr73_sgpr74_sgpr75'62 stackPtrOffsetReg: '$sgpr32'63 occupancy: 764body: |65 bb.0:66 liveins: $vgpr0, $sgpr4_sgpr567 68 ; CHECK-LABEL: name: v_mov_b32_split69 ; CHECK: liveins: $agpr3, $agpr4, $vgpr0, $sgpr4_sgpr570 ; CHECK-NEXT: {{ $}}71 ; CHECK-NEXT: renamable $vgpr0 = V_MOV_B32_e32 0, implicit $exec72 ; CHECK-NEXT: renamable $vgpr1 = V_MOV_B32_e32 1, implicit $exec73 ; CHECK-NEXT: renamable $vgpr2 = V_MOV_B32_e32 2, implicit $exec74 ; CHECK-NEXT: $agpr0 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec, implicit $exec75 ; CHECK-NEXT: $agpr1 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr1, implicit $exec, implicit $exec76 ; CHECK-NEXT: $agpr2 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr2, implicit $exec, implicit $exec77 ; CHECK-NEXT: renamable $vgpr0 = V_MOV_B32_e32 3, implicit $exec78 ; CHECK-NEXT: $agpr3 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec79 ; CHECK-NEXT: renamable $vgpr0 = V_MOV_B32_e32 4, implicit $exec80 ; CHECK-NEXT: $agpr4 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec81 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $agpr082 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $agpr183 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $agpr284 ; CHECK-NEXT: $vgpr0 = V_ACCVGPR_READ_B32_e64 $agpr3, implicit $exec85 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $vgpr086 ; CHECK-NEXT: $vgpr0 = V_ACCVGPR_READ_B32_e64 $agpr4, implicit $exec87 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $vgpr088 %0:vgpr_32 = V_MOV_B32_e32 0, implicit $exec89 %1:vgpr_32 = V_MOV_B32_e32 1, implicit $exec90 %2:vgpr_32 = V_MOV_B32_e32 2, implicit $exec91 %3:vgpr_32 = V_MOV_B32_e32 3, implicit $exec92 %4:vgpr_32 = V_MOV_B32_e32 4, implicit $exec93 94 %5:agpr_32 = COPY %095 %6:agpr_32 = COPY %196 %7:agpr_32 = COPY %297 %8:agpr_32 = COPY %398 %9:agpr_32 = COPY %499 100 S_NOP 0, implicit %5101 S_NOP 0, implicit %6102 S_NOP 0, implicit %7103 S_NOP 0, implicit %8104 S_NOP 0, implicit %9105 106...107 108---109name: av_mov_b64_split110tracksRegLiveness: true111machineFunctionInfo:112 isEntryFunction: true113 scratchRSrcReg: '$sgpr72_sgpr73_sgpr74_sgpr75'114 stackPtrOffsetReg: '$sgpr32'115 occupancy: 7116body: |117 bb.0:118 liveins: $vgpr0, $sgpr4_sgpr5119 120 ; CHECK-LABEL: name: av_mov_b64_split121 ; CHECK: liveins: $agpr6, $agpr7, $agpr8, $agpr9, $vgpr0, $sgpr4_sgpr5122 ; CHECK-NEXT: {{ $}}123 ; CHECK-NEXT: $agpr0 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec, implicit-def $agpr0_agpr1124 ; CHECK-NEXT: $agpr1 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec, implicit-def $agpr0_agpr1125 ; CHECK-NEXT: $agpr2 = V_ACCVGPR_WRITE_B32_e64 1, implicit $exec, implicit-def $agpr2_agpr3126 ; CHECK-NEXT: $agpr3 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec, implicit-def $agpr2_agpr3127 ; CHECK-NEXT: $agpr4 = V_ACCVGPR_WRITE_B32_e64 2, implicit $exec, implicit-def $agpr4_agpr5128 ; CHECK-NEXT: $agpr5 = V_ACCVGPR_WRITE_B32_e64 0, implicit $exec, implicit-def $agpr4_agpr5129 ; CHECK-NEXT: $vgpr0 = V_MOV_B32_e32 3, implicit $exec, implicit-def $vgpr0_vgpr1130 ; CHECK-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec, implicit-def $vgpr0_vgpr1131 ; CHECK-NEXT: $agpr7 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr0_vgpr1132 ; CHECK-NEXT: $agpr6 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr1, implicit $exec, implicit killed $vgpr0_vgpr1133 ; CHECK-NEXT: $vgpr0 = V_MOV_B32_e32 4, implicit $exec, implicit-def $vgpr0_vgpr1134 ; CHECK-NEXT: $vgpr1 = V_MOV_B32_e32 0, implicit $exec, implicit-def $vgpr0_vgpr1135 ; CHECK-NEXT: $agpr9 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr0, implicit $exec, implicit-def $vgpr0_vgpr1, implicit $vgpr0_vgpr1136 ; CHECK-NEXT: $agpr8 = V_ACCVGPR_WRITE_B32_e64 killed $vgpr1, implicit $exec, implicit killed $vgpr0_vgpr1137 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $agpr0_agpr1138 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $agpr2_agpr3139 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $agpr4_agpr5140 ; CHECK-NEXT: $vgpr0 = V_ACCVGPR_READ_B32_e64 $agpr7, implicit $exec, implicit-def $vgpr0_vgpr1141 ; CHECK-NEXT: $vgpr1 = V_ACCVGPR_READ_B32_e64 $agpr6, implicit $exec, implicit $vgpr0_vgpr1142 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1143 ; CHECK-NEXT: $vgpr0 = V_ACCVGPR_READ_B32_e64 $agpr9, implicit $exec, implicit-def $vgpr0_vgpr1144 ; CHECK-NEXT: $vgpr1 = V_ACCVGPR_READ_B32_e64 $agpr8, implicit $exec, implicit $vgpr0_vgpr1145 ; CHECK-NEXT: S_NOP 0, implicit killed renamable $vgpr0_vgpr1146 %0:vreg_64_align2 = AV_MOV_B64_IMM_PSEUDO 0, implicit $exec147 %1:vreg_64_align2 = AV_MOV_B64_IMM_PSEUDO 1, implicit $exec148 %2:vreg_64_align2 = AV_MOV_B64_IMM_PSEUDO 2, implicit $exec149 %3:vreg_64_align2 = AV_MOV_B64_IMM_PSEUDO 3, implicit $exec150 %4:vreg_64_align2 = AV_MOV_B64_IMM_PSEUDO 4, implicit $exec151 152 %5:areg_64_align2 = COPY %0153 %6:areg_64_align2 = COPY %1154 %7:areg_64_align2 = COPY %2155 %8:areg_64_align2 = COPY %3156 %9:areg_64_align2 = COPY %4157 158 S_NOP 0, implicit %5159 S_NOP 0, implicit %6160 S_NOP 0, implicit %7161 S_NOP 0, implicit %8162 S_NOP 0, implicit %9163 164...165