224 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -verify-machineinstrs -run-pass=si-fix-sgpr-copies -o - %s | FileCheck -check-prefix=GCN %s3---4 5name: phi_moveimm_input6tracksRegLiveness: true7body: |8 ; GCN-LABEL: name: phi_moveimm_input9 ; GCN: bb.0:10 ; GCN-NEXT: successors: %bb.1(0x80000000)11 ; GCN-NEXT: liveins: $sgpr0, $sgpr112 ; GCN-NEXT: {{ $}}13 ; GCN-NEXT: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 0, implicit $exec14 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr015 ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr116 ; GCN-NEXT: {{ $}}17 ; GCN-NEXT: bb.1:18 ; GCN-NEXT: successors: %bb.2(0x80000000)19 ; GCN-NEXT: {{ $}}20 ; GCN-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY]], [[COPY1]], implicit-def $scc21 ; GCN-NEXT: S_BRANCH %bb.222 ; GCN-NEXT: {{ $}}23 ; GCN-NEXT: bb.2:24 ; GCN-NEXT: successors: %bb.3(0x80000000)25 ; GCN-NEXT: {{ $}}26 ; GCN-NEXT: [[PHI:%[0-9]+]]:sreg_32 = PHI %5, %bb.3, [[S_ADD_U32_]], %bb.127 ; GCN-NEXT: S_BRANCH %bb.328 ; GCN-NEXT: {{ $}}29 ; GCN-NEXT: bb.3:30 ; GCN-NEXT: successors: %bb.2(0x80000000)31 ; GCN-NEXT: {{ $}}32 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 033 ; GCN-NEXT: S_BRANCH %bb.234 bb.0:35 successors: %bb.136 liveins: $sgpr0, $sgpr137 38 %0:vgpr_32 = V_MOV_B32_e32 0, implicit $exec39 40 %4:sreg_32 = COPY $sgpr041 %5:sreg_32 = COPY $sgpr142 43 bb.1:44 successors: %bb.245 %2:sreg_32 = S_ADD_U32 %4, %5, implicit-def $scc46 S_BRANCH %bb.247 48 bb.2:49 successors: %bb.350 %3:sreg_32 = PHI %1, %bb.3, %2, %bb.151 S_BRANCH %bb.352 53 bb.3:54 successors: %bb.255 %1:sreg_32 = COPY %056 S_BRANCH %bb.257...58 59---60name: phi_moveimm_subreg_input61tracksRegLiveness: true62body: |63 ; GCN-LABEL: name: phi_moveimm_subreg_input64 ; GCN: bb.0:65 ; GCN-NEXT: successors: %bb.1(0x80000000)66 ; GCN-NEXT: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr367 ; GCN-NEXT: {{ $}}68 ; GCN-NEXT: [[V_MOV_B64_e32_:%[0-9]+]]:vreg_64 = V_MOV_B64_e32 0, implicit $exec69 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr170 ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_64 = COPY $sgpr2_sgpr371 ; GCN-NEXT: {{ $}}72 ; GCN-NEXT: bb.1:73 ; GCN-NEXT: successors: %bb.2(0x80000000)74 ; GCN-NEXT: {{ $}}75 ; GCN-NEXT: [[S_ADD_U:%[0-9]+]]:sreg_64 = S_ADD_U64_PSEUDO [[COPY]], [[COPY1]], implicit-def $scc76 ; GCN-NEXT: [[COPY2:%[0-9]+]]:vreg_64 = COPY [[S_ADD_U]], implicit $exec77 ; GCN-NEXT: S_BRANCH %bb.278 ; GCN-NEXT: {{ $}}79 ; GCN-NEXT: bb.2:80 ; GCN-NEXT: successors: %bb.3(0x80000000)81 ; GCN-NEXT: {{ $}}82 ; GCN-NEXT: [[PHI:%[0-9]+]]:vgpr_32 = PHI [[V_MOV_B64_e32_]].sub0, %bb.3, [[COPY2]].sub0, %bb.183 ; GCN-NEXT: S_BRANCH %bb.384 ; GCN-NEXT: {{ $}}85 ; GCN-NEXT: bb.3:86 ; GCN-NEXT: successors: %bb.2(0x80000000)87 ; GCN-NEXT: {{ $}}88 ; GCN-NEXT: S_BRANCH %bb.289 bb.0:90 successors: %bb.191 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr392 93 %0:vreg_64 = V_MOV_B64_e32 0, implicit $exec94 95 %4:sreg_64 = COPY $sgpr0_sgpr196 %5:sreg_64 = COPY $sgpr2_sgpr397 98 bb.1:99 successors: %bb.2100 %2:sreg_64 = S_ADD_U64_PSEUDO %4, %5, implicit-def $scc101 S_BRANCH %bb.2102 103 bb.2:104 successors: %bb.3105 %3:sreg_32 = PHI %1.sub0:sreg_64, %bb.3, %2.sub0:sreg_64, %bb.1106 S_BRANCH %bb.3107 108 bb.3:109 successors: %bb.2110 %1:sreg_64 = COPY %0.sub0:vreg_64111 S_BRANCH %bb.2112...113 114---115name: phi_moveimm_bad_opcode_input116tracksRegLiveness: true117body: |118 ; GCN-LABEL: name: phi_moveimm_bad_opcode_input119 ; GCN: bb.0:120 ; GCN-NEXT: successors: %bb.1(0x80000000)121 ; GCN-NEXT: liveins: $sgpr0, $sgpr1, $vgpr0122 ; GCN-NEXT: {{ $}}123 ; GCN-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0124 ; GCN-NEXT: [[V_MOV_B32_sdwa:%[0-9]+]]:vgpr_32 = V_MOV_B32_sdwa 0, [[COPY]], 0, 5, 2, 4, implicit $exec, implicit [[COPY]](tied-def 0)125 ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0126 ; GCN-NEXT: [[COPY2:%[0-9]+]]:sreg_32 = COPY $sgpr1127 ; GCN-NEXT: {{ $}}128 ; GCN-NEXT: bb.1:129 ; GCN-NEXT: successors: %bb.2(0x80000000)130 ; GCN-NEXT: {{ $}}131 ; GCN-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY1]], [[COPY2]], implicit-def $scc132 ; GCN-NEXT: [[COPY3:%[0-9]+]]:vgpr_32 = COPY [[S_ADD_U32_]], implicit $exec133 ; GCN-NEXT: S_BRANCH %bb.2134 ; GCN-NEXT: {{ $}}135 ; GCN-NEXT: bb.2:136 ; GCN-NEXT: successors: %bb.3(0x80000000)137 ; GCN-NEXT: {{ $}}138 ; GCN-NEXT: [[PHI:%[0-9]+]]:vgpr_32 = PHI [[V_MOV_B32_sdwa]], %bb.3, [[COPY3]], %bb.1139 ; GCN-NEXT: S_BRANCH %bb.3140 ; GCN-NEXT: {{ $}}141 ; GCN-NEXT: bb.3:142 ; GCN-NEXT: successors: %bb.2(0x80000000)143 ; GCN-NEXT: {{ $}}144 ; GCN-NEXT: S_BRANCH %bb.2145 bb.0:146 successors: %bb.1147 liveins: $sgpr0, $sgpr1, $vgpr0148 %6:vgpr_32 = COPY $vgpr0149 %0:vgpr_32 = V_MOV_B32_sdwa 0, %6:vgpr_32, 0, 5, 2, 4, implicit $exec, implicit %6:vgpr_32(tied-def 0)150 151 %4:sreg_32 = COPY $sgpr0152 %5:sreg_32 = COPY $sgpr1153 154 bb.1:155 156 successors: %bb.2157 %2:sreg_32 = S_ADD_U32 %4, %5, implicit-def $scc158 S_BRANCH %bb.2159 bb.2:160 successors: %bb.3161 %3:sreg_32 = PHI %1, %bb.3, %2, %bb.1162 S_BRANCH %bb.3163 bb.3:164 successors: %bb.2165 %1:sreg_32 = COPY %0166 S_BRANCH %bb.2167...168 169---170 171name: phi_moveimm_av_pseudo_input172tracksRegLiveness: true173body: |174 ; GCN-LABEL: name: phi_moveimm_av_pseudo_input175 ; GCN: bb.0:176 ; GCN-NEXT: successors: %bb.1(0x80000000)177 ; GCN-NEXT: liveins: $sgpr0, $sgpr1178 ; GCN-NEXT: {{ $}}179 ; GCN-NEXT: [[AV_MOV_:%[0-9]+]]:vgpr_32 = AV_MOV_B32_IMM_PSEUDO 0, implicit $exec180 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0181 ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1182 ; GCN-NEXT: {{ $}}183 ; GCN-NEXT: bb.1:184 ; GCN-NEXT: successors: %bb.2(0x80000000)185 ; GCN-NEXT: {{ $}}186 ; GCN-NEXT: [[S_ADD_U32_:%[0-9]+]]:sreg_32 = S_ADD_U32 [[COPY]], [[COPY1]], implicit-def $scc187 ; GCN-NEXT: S_BRANCH %bb.2188 ; GCN-NEXT: {{ $}}189 ; GCN-NEXT: bb.2:190 ; GCN-NEXT: successors: %bb.3(0x80000000)191 ; GCN-NEXT: {{ $}}192 ; GCN-NEXT: [[PHI:%[0-9]+]]:sreg_32 = PHI %5, %bb.3, [[S_ADD_U32_]], %bb.1193 ; GCN-NEXT: S_BRANCH %bb.3194 ; GCN-NEXT: {{ $}}195 ; GCN-NEXT: bb.3:196 ; GCN-NEXT: successors: %bb.2(0x80000000)197 ; GCN-NEXT: {{ $}}198 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 0199 ; GCN-NEXT: S_BRANCH %bb.2200 bb.0:201 successors: %bb.1202 liveins: $sgpr0, $sgpr1203 204 %0:vgpr_32 = AV_MOV_B32_IMM_PSEUDO 0, implicit $exec205 206 %4:sreg_32 = COPY $sgpr0207 %5:sreg_32 = COPY $sgpr1208 209 bb.1:210 successors: %bb.2211 %2:sreg_32 = S_ADD_U32 %4, %5, implicit-def $scc212 S_BRANCH %bb.2213 214 bb.2:215 successors: %bb.3216 %3:sreg_32 = PHI %1, %bb.3, %2, %bb.1217 S_BRANCH %bb.3218 219 bb.3:220 successors: %bb.2221 %1:sreg_32 = COPY %0222 S_BRANCH %bb.2223...224