3021 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx908 -run-pass=regbankselect -regbankselect-fast -verify-machineinstrs -o - %s | FileCheck -check-prefix=FAST %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx908 -run-pass=regbankselect -regbankselect-greedy -verify-machineinstrs -o - %s | FileCheck -check-prefix=GREEDY %s4 5---6name: phi_s32_ss_sbranch7legalized: true8tracksRegLiveness: true9 10body: |11 ; FAST-LABEL: name: phi_s32_ss_sbranch12 ; FAST: bb.0:13 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)14 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $sgpr215 ; FAST-NEXT: {{ $}}16 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr017 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr118 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr219 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 020 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]21 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)22 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)23 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.124 ; FAST-NEXT: G_BR %bb.225 ; FAST-NEXT: {{ $}}26 ; FAST-NEXT: bb.1:27 ; FAST-NEXT: successors: %bb.2(0x80000000)28 ; FAST-NEXT: {{ $}}29 ; FAST-NEXT: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY [[COPY1]](s32)30 ; FAST-NEXT: G_BR %bb.231 ; FAST-NEXT: {{ $}}32 ; FAST-NEXT: bb.2:33 ; FAST-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.134 ; FAST-NEXT: $sgpr0 = COPY [[PHI]](s32)35 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr3136 ; GREEDY-LABEL: name: phi_s32_ss_sbranch37 ; GREEDY: bb.0:38 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)39 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $sgpr240 ; GREEDY-NEXT: {{ $}}41 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr042 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr143 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr244 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 045 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]46 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)47 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)48 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.149 ; GREEDY-NEXT: G_BR %bb.250 ; GREEDY-NEXT: {{ $}}51 ; GREEDY-NEXT: bb.1:52 ; GREEDY-NEXT: successors: %bb.2(0x80000000)53 ; GREEDY-NEXT: {{ $}}54 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY [[COPY1]](s32)55 ; GREEDY-NEXT: G_BR %bb.256 ; GREEDY-NEXT: {{ $}}57 ; GREEDY-NEXT: bb.2:58 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.159 ; GREEDY-NEXT: $sgpr0 = COPY [[PHI]](s32)60 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr3161 bb.0:62 successors: %bb.1, %bb.263 liveins: $sgpr0, $sgpr1, $sgpr264 65 %0:_(s32) = COPY $sgpr066 %1:_(s32) = COPY $sgpr167 %2:_(s32) = COPY $sgpr268 %3:_(s32) = G_CONSTANT i32 069 %4:_(s1) = G_ICMP intpred(eq), %2, %370 G_BRCOND %4, %bb.171 G_BR %bb.272 73 bb.1:74 successors: %bb.275 76 %5:_(s32) = COPY %177 G_BR %bb.278 79 bb.2:80 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.181 $sgpr0 = COPY %682 S_SETPC_B64 undef $sgpr30_sgpr3183 84...85 86---87name: phi_s32_sv_sbranch88legalized: true89tracksRegLiveness: true90 91body: |92 ; FAST-LABEL: name: phi_s32_sv_sbranch93 ; FAST: bb.0:94 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)95 ; FAST-NEXT: liveins: $sgpr0, $vgpr0, $sgpr196 ; FAST-NEXT: {{ $}}97 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr098 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr099 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1100 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0101 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]102 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)103 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)104 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1105 ; FAST-NEXT: G_BR %bb.2106 ; FAST-NEXT: {{ $}}107 ; FAST-NEXT: bb.1:108 ; FAST-NEXT: successors: %bb.2(0x80000000)109 ; FAST-NEXT: {{ $}}110 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)111 ; FAST-NEXT: G_BR %bb.2112 ; FAST-NEXT: {{ $}}113 ; FAST-NEXT: bb.2:114 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.1115 ; FAST-NEXT: $vgpr0 = COPY [[PHI]](s32)116 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31117 ; GREEDY-LABEL: name: phi_s32_sv_sbranch118 ; GREEDY: bb.0:119 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)120 ; GREEDY-NEXT: liveins: $sgpr0, $vgpr0, $sgpr1121 ; GREEDY-NEXT: {{ $}}122 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0123 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0124 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1125 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0126 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]127 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)128 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)129 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1130 ; GREEDY-NEXT: G_BR %bb.2131 ; GREEDY-NEXT: {{ $}}132 ; GREEDY-NEXT: bb.1:133 ; GREEDY-NEXT: successors: %bb.2(0x80000000)134 ; GREEDY-NEXT: {{ $}}135 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)136 ; GREEDY-NEXT: G_BR %bb.2137 ; GREEDY-NEXT: {{ $}}138 ; GREEDY-NEXT: bb.2:139 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.1140 ; GREEDY-NEXT: $vgpr0 = COPY [[PHI]](s32)141 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31142 bb.0:143 successors: %bb.1, %bb.2144 liveins: $sgpr0, $vgpr0, $sgpr1145 146 %0:_(s32) = COPY $sgpr0147 %1:_(s32) = COPY $vgpr0148 %2:_(s32) = COPY $sgpr1149 %3:_(s32) = G_CONSTANT i32 0150 %4:_(s1) = G_ICMP intpred(eq), %2, %3151 G_BRCOND %4, %bb.1152 G_BR %bb.2153 154 bb.1:155 successors: %bb.2156 157 %5:_(s32) = COPY %1158 G_BR %bb.2159 160 bb.2:161 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.1162 $vgpr0 = COPY %6163 S_SETPC_B64 undef $sgpr30_sgpr31164 165...166 167---168name: phi_s32_vs_sbranch169legalized: true170tracksRegLiveness: true171 172body: |173 ; FAST-LABEL: name: phi_s32_vs_sbranch174 ; FAST: bb.0:175 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)176 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr1177 ; FAST-NEXT: {{ $}}178 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0179 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0180 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1181 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0182 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]183 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)184 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)185 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1186 ; FAST-NEXT: G_BR %bb.2187 ; FAST-NEXT: {{ $}}188 ; FAST-NEXT: bb.1:189 ; FAST-NEXT: successors: %bb.2(0x80000000)190 ; FAST-NEXT: {{ $}}191 ; FAST-NEXT: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY [[COPY1]](s32)192 ; FAST-NEXT: G_BR %bb.2193 ; FAST-NEXT: {{ $}}194 ; FAST-NEXT: bb.2:195 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.1196 ; FAST-NEXT: $vgpr0 = COPY [[PHI]](s32)197 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31198 ; GREEDY-LABEL: name: phi_s32_vs_sbranch199 ; GREEDY: bb.0:200 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)201 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr1202 ; GREEDY-NEXT: {{ $}}203 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0204 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0205 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1206 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0207 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]208 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)209 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)210 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1211 ; GREEDY-NEXT: G_BR %bb.2212 ; GREEDY-NEXT: {{ $}}213 ; GREEDY-NEXT: bb.1:214 ; GREEDY-NEXT: successors: %bb.2(0x80000000)215 ; GREEDY-NEXT: {{ $}}216 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY [[COPY1]](s32)217 ; GREEDY-NEXT: G_BR %bb.2218 ; GREEDY-NEXT: {{ $}}219 ; GREEDY-NEXT: bb.2:220 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.1221 ; GREEDY-NEXT: $vgpr0 = COPY [[PHI]](s32)222 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31223 bb.0:224 successors: %bb.1, %bb.2225 liveins: $vgpr0, $sgpr0, $sgpr1226 227 %0:_(s32) = COPY $vgpr0228 %1:_(s32) = COPY $sgpr0229 %2:_(s32) = COPY $sgpr1230 %3:_(s32) = G_CONSTANT i32 0231 %4:_(s1) = G_ICMP intpred(eq), %2, %3232 G_BRCOND %4, %bb.1233 G_BR %bb.2234 235 bb.1:236 successors: %bb.2237 238 %5:_(s32) = COPY %1239 G_BR %bb.2240 241 bb.2:242 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.1243 $vgpr0 = COPY %6244 S_SETPC_B64 undef $sgpr30_sgpr31245 246...247 248---249name: phi_s32_vv_sbranch250legalized: true251tracksRegLiveness: true252 253body: |254 ; FAST-LABEL: name: phi_s32_vv_sbranch255 ; FAST: bb.0:256 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)257 ; FAST-NEXT: liveins: $vgpr0, $vgpr1, $sgpr0258 ; FAST-NEXT: {{ $}}259 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0260 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1261 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr0262 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0263 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]264 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)265 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)266 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1267 ; FAST-NEXT: G_BR %bb.2268 ; FAST-NEXT: {{ $}}269 ; FAST-NEXT: bb.1:270 ; FAST-NEXT: successors: %bb.2(0x80000000)271 ; FAST-NEXT: {{ $}}272 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)273 ; FAST-NEXT: G_BR %bb.2274 ; FAST-NEXT: {{ $}}275 ; FAST-NEXT: bb.2:276 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.1277 ; FAST-NEXT: $vgpr0 = COPY [[PHI]](s32)278 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31279 ; GREEDY-LABEL: name: phi_s32_vv_sbranch280 ; GREEDY: bb.0:281 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)282 ; GREEDY-NEXT: liveins: $vgpr0, $vgpr1, $sgpr0283 ; GREEDY-NEXT: {{ $}}284 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0285 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1286 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr0287 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0288 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]289 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)290 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)291 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1292 ; GREEDY-NEXT: G_BR %bb.2293 ; GREEDY-NEXT: {{ $}}294 ; GREEDY-NEXT: bb.1:295 ; GREEDY-NEXT: successors: %bb.2(0x80000000)296 ; GREEDY-NEXT: {{ $}}297 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)298 ; GREEDY-NEXT: G_BR %bb.2299 ; GREEDY-NEXT: {{ $}}300 ; GREEDY-NEXT: bb.2:301 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.1302 ; GREEDY-NEXT: $vgpr0 = COPY [[PHI]](s32)303 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31304 bb.0:305 successors: %bb.1, %bb.2306 liveins: $vgpr0, $vgpr1, $sgpr0307 308 %0:_(s32) = COPY $vgpr0309 %1:_(s32) = COPY $vgpr1310 %2:_(s32) = COPY $sgpr0311 %3:_(s32) = G_CONSTANT i32 0312 %4:_(s1) = G_ICMP intpred(eq), %2, %3313 G_BRCOND %4, %bb.1314 G_BR %bb.2315 316 bb.1:317 successors: %bb.2318 319 %5:_(s32) = COPY %1320 G_BR %bb.2321 322 bb.2:323 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.1324 $vgpr0 = COPY %6325 S_SETPC_B64 undef $sgpr30_sgpr31326 327...328---329name: phi_s32_ss_vcc_sbranch330legalized: true331tracksRegLiveness: true332 333body: |334 ; FAST-LABEL: name: phi_s32_ss_vcc_sbranch335 ; FAST: bb.0:336 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)337 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $vgpr0338 ; FAST-NEXT: {{ $}}339 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0340 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1341 ; FAST-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0342 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0343 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)344 ; FAST-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]345 ; FAST-NEXT: G_BRCOND [[ICMP]](s1), %bb.1346 ; FAST-NEXT: G_BR %bb.2347 ; FAST-NEXT: {{ $}}348 ; FAST-NEXT: bb.1:349 ; FAST-NEXT: successors: %bb.2(0x80000000)350 ; FAST-NEXT: {{ $}}351 ; FAST-NEXT: [[COPY4:%[0-9]+]]:sgpr(s32) = COPY [[COPY1]](s32)352 ; FAST-NEXT: G_BR %bb.2353 ; FAST-NEXT: {{ $}}354 ; FAST-NEXT: bb.2:355 ; FAST-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY4]](s32), %bb.1356 ; FAST-NEXT: $sgpr0 = COPY [[PHI]](s32)357 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31358 ; GREEDY-LABEL: name: phi_s32_ss_vcc_sbranch359 ; GREEDY: bb.0:360 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)361 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $vgpr0362 ; GREEDY-NEXT: {{ $}}363 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0364 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1365 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr0366 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0367 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)368 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]369 ; GREEDY-NEXT: G_BRCOND [[ICMP]](s1), %bb.1370 ; GREEDY-NEXT: G_BR %bb.2371 ; GREEDY-NEXT: {{ $}}372 ; GREEDY-NEXT: bb.1:373 ; GREEDY-NEXT: successors: %bb.2(0x80000000)374 ; GREEDY-NEXT: {{ $}}375 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:sgpr(s32) = COPY [[COPY1]](s32)376 ; GREEDY-NEXT: G_BR %bb.2377 ; GREEDY-NEXT: {{ $}}378 ; GREEDY-NEXT: bb.2:379 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY4]](s32), %bb.1380 ; GREEDY-NEXT: $sgpr0 = COPY [[PHI]](s32)381 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31382 bb.0:383 successors: %bb.1, %bb.2384 liveins: $sgpr0, $sgpr1, $vgpr0385 386 %0:_(s32) = COPY $sgpr0387 %1:_(s32) = COPY $sgpr1388 %2:_(s32) = COPY $vgpr0389 %3:_(s32) = G_CONSTANT i32 0390 %4:_(s1) = G_ICMP intpred(eq), %2, %3391 G_BRCOND %4, %bb.1392 G_BR %bb.2393 394 bb.1:395 successors: %bb.2396 397 %5:_(s32) = COPY %1398 G_BR %bb.2399 400 bb.2:401 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.1402 $sgpr0 = COPY %6403 S_SETPC_B64 undef $sgpr30_sgpr31404 405...406 407---408name: phi_s32_sv_vcc_sbranch409legalized: true410tracksRegLiveness: true411 412body: |413 ; FAST-LABEL: name: phi_s32_sv_vcc_sbranch414 ; FAST: bb.0:415 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)416 ; FAST-NEXT: liveins: $sgpr0, $vgpr0, $vgpr1417 ; FAST-NEXT: {{ $}}418 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0419 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0420 ; FAST-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1421 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0422 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)423 ; FAST-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]424 ; FAST-NEXT: G_BRCOND [[ICMP]](s1), %bb.1425 ; FAST-NEXT: G_BR %bb.2426 ; FAST-NEXT: {{ $}}427 ; FAST-NEXT: bb.1:428 ; FAST-NEXT: successors: %bb.2(0x80000000)429 ; FAST-NEXT: {{ $}}430 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)431 ; FAST-NEXT: G_BR %bb.2432 ; FAST-NEXT: {{ $}}433 ; FAST-NEXT: bb.2:434 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY4]](s32), %bb.1435 ; FAST-NEXT: $vgpr0 = COPY [[PHI]](s32)436 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31437 ; GREEDY-LABEL: name: phi_s32_sv_vcc_sbranch438 ; GREEDY: bb.0:439 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)440 ; GREEDY-NEXT: liveins: $sgpr0, $vgpr0, $vgpr1441 ; GREEDY-NEXT: {{ $}}442 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0443 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0444 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1445 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0446 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)447 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]448 ; GREEDY-NEXT: G_BRCOND [[ICMP]](s1), %bb.1449 ; GREEDY-NEXT: G_BR %bb.2450 ; GREEDY-NEXT: {{ $}}451 ; GREEDY-NEXT: bb.1:452 ; GREEDY-NEXT: successors: %bb.2(0x80000000)453 ; GREEDY-NEXT: {{ $}}454 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)455 ; GREEDY-NEXT: G_BR %bb.2456 ; GREEDY-NEXT: {{ $}}457 ; GREEDY-NEXT: bb.2:458 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY4]](s32), %bb.1459 ; GREEDY-NEXT: $vgpr0 = COPY [[PHI]](s32)460 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31461 bb.0:462 successors: %bb.1, %bb.2463 liveins: $sgpr0, $vgpr0, $vgpr1464 465 %0:_(s32) = COPY $sgpr0466 %1:_(s32) = COPY $vgpr0467 %2:_(s32) = COPY $vgpr1468 %3:_(s32) = G_CONSTANT i32 0469 %4:_(s1) = G_ICMP intpred(eq), %2, %3470 G_BRCOND %4, %bb.1471 G_BR %bb.2472 473 bb.1:474 successors: %bb.2475 476 %5:_(s32) = COPY %1477 G_BR %bb.2478 479 bb.2:480 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.1481 $vgpr0 = COPY %6482 S_SETPC_B64 undef $sgpr30_sgpr31483 484...485 486---487name: phi_s32_vs_vcc_sbranch488legalized: true489tracksRegLiveness: true490 491body: |492 ; FAST-LABEL: name: phi_s32_vs_vcc_sbranch493 ; FAST: bb.0:494 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)495 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $vgpr1496 ; FAST-NEXT: {{ $}}497 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0498 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0499 ; FAST-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1500 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0501 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)502 ; FAST-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]503 ; FAST-NEXT: G_BRCOND [[ICMP]](s1), %bb.1504 ; FAST-NEXT: G_BR %bb.2505 ; FAST-NEXT: {{ $}}506 ; FAST-NEXT: bb.1:507 ; FAST-NEXT: successors: %bb.2(0x80000000)508 ; FAST-NEXT: {{ $}}509 ; FAST-NEXT: [[COPY4:%[0-9]+]]:sgpr(s32) = COPY [[COPY1]](s32)510 ; FAST-NEXT: G_BR %bb.2511 ; FAST-NEXT: {{ $}}512 ; FAST-NEXT: bb.2:513 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY4]](s32), %bb.1514 ; FAST-NEXT: $vgpr0 = COPY [[PHI]](s32)515 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31516 ; GREEDY-LABEL: name: phi_s32_vs_vcc_sbranch517 ; GREEDY: bb.0:518 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)519 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $vgpr1520 ; GREEDY-NEXT: {{ $}}521 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0522 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0523 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr1524 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0525 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)526 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]527 ; GREEDY-NEXT: G_BRCOND [[ICMP]](s1), %bb.1528 ; GREEDY-NEXT: G_BR %bb.2529 ; GREEDY-NEXT: {{ $}}530 ; GREEDY-NEXT: bb.1:531 ; GREEDY-NEXT: successors: %bb.2(0x80000000)532 ; GREEDY-NEXT: {{ $}}533 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:sgpr(s32) = COPY [[COPY1]](s32)534 ; GREEDY-NEXT: G_BR %bb.2535 ; GREEDY-NEXT: {{ $}}536 ; GREEDY-NEXT: bb.2:537 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY4]](s32), %bb.1538 ; GREEDY-NEXT: $vgpr0 = COPY [[PHI]](s32)539 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31540 bb.0:541 successors: %bb.1, %bb.2542 liveins: $vgpr0, $sgpr0, $vgpr1543 544 %0:_(s32) = COPY $vgpr0545 %1:_(s32) = COPY $sgpr0546 %2:_(s32) = COPY $vgpr1547 %3:_(s32) = G_CONSTANT i32 0548 %4:_(s1) = G_ICMP intpred(eq), %2, %3549 G_BRCOND %4, %bb.1550 G_BR %bb.2551 552 bb.1:553 successors: %bb.2554 555 %5:_(s32) = COPY %1556 G_BR %bb.2557 558 bb.2:559 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.1560 $vgpr0 = COPY %6561 S_SETPC_B64 undef $sgpr30_sgpr31562 563...564 565---566name: phi_s32_vv_vcc_sbranch567legalized: true568tracksRegLiveness: true569 570body: |571 ; FAST-LABEL: name: phi_s32_vv_vcc_sbranch572 ; FAST: bb.0:573 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)574 ; FAST-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2575 ; FAST-NEXT: {{ $}}576 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0577 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1578 ; FAST-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr2579 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0580 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)581 ; FAST-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]582 ; FAST-NEXT: G_BRCOND [[ICMP]](s1), %bb.1583 ; FAST-NEXT: G_BR %bb.2584 ; FAST-NEXT: {{ $}}585 ; FAST-NEXT: bb.1:586 ; FAST-NEXT: successors: %bb.2(0x80000000)587 ; FAST-NEXT: {{ $}}588 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)589 ; FAST-NEXT: G_BR %bb.2590 ; FAST-NEXT: {{ $}}591 ; FAST-NEXT: bb.2:592 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY4]](s32), %bb.1593 ; FAST-NEXT: $vgpr0 = COPY [[PHI]](s32)594 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31595 ; GREEDY-LABEL: name: phi_s32_vv_vcc_sbranch596 ; GREEDY: bb.0:597 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)598 ; GREEDY-NEXT: liveins: $vgpr0, $vgpr1, $vgpr2599 ; GREEDY-NEXT: {{ $}}600 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0601 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1602 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr2603 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0604 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)605 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]606 ; GREEDY-NEXT: G_BRCOND [[ICMP]](s1), %bb.1607 ; GREEDY-NEXT: G_BR %bb.2608 ; GREEDY-NEXT: {{ $}}609 ; GREEDY-NEXT: bb.1:610 ; GREEDY-NEXT: successors: %bb.2(0x80000000)611 ; GREEDY-NEXT: {{ $}}612 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)613 ; GREEDY-NEXT: G_BR %bb.2614 ; GREEDY-NEXT: {{ $}}615 ; GREEDY-NEXT: bb.2:616 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY4]](s32), %bb.1617 ; GREEDY-NEXT: $vgpr0 = COPY [[PHI]](s32)618 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31619 bb.0:620 successors: %bb.1, %bb.2621 liveins: $vgpr0, $vgpr1, $vgpr2622 623 %0:_(s32) = COPY $vgpr0624 %1:_(s32) = COPY $vgpr1625 %2:_(s32) = COPY $vgpr2626 %3:_(s32) = G_CONSTANT i32 0627 %4:_(s1) = G_ICMP intpred(eq), %2, %3628 G_BRCOND %4, %bb.1629 G_BR %bb.2630 631 bb.1:632 successors: %bb.2633 634 %5:_(s32) = COPY %1635 G_BR %bb.2636 637 bb.2:638 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.1639 $vgpr0 = COPY %6640 S_SETPC_B64 undef $sgpr30_sgpr31641 642...643 644---645name: phi_s1_scc_scc_sbranch646legalized: true647tracksRegLiveness: true648 649body: |650 ; FAST-LABEL: name: phi_s1_scc_scc_sbranch651 ; FAST: bb.0:652 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)653 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $sgpr2654 ; FAST-NEXT: {{ $}}655 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0656 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1657 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2658 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0659 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]660 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)661 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]662 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)663 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)664 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)665 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1666 ; FAST-NEXT: G_BR %bb.2667 ; FAST-NEXT: {{ $}}668 ; FAST-NEXT: bb.1:669 ; FAST-NEXT: successors: %bb.2(0x80000000)670 ; FAST-NEXT: {{ $}}671 ; FAST-NEXT: [[ICMP2:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]672 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP2]](s32)673 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)674 ; FAST-NEXT: G_BR %bb.2675 ; FAST-NEXT: {{ $}}676 ; FAST-NEXT: bb.2:677 ; FAST-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.1678 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)679 ; FAST-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)680 ; FAST-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]681 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)682 ; GREEDY-LABEL: name: phi_s1_scc_scc_sbranch683 ; GREEDY: bb.0:684 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)685 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $sgpr2686 ; GREEDY-NEXT: {{ $}}687 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0688 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1689 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2690 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0691 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]692 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)693 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]694 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)695 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)696 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)697 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1698 ; GREEDY-NEXT: G_BR %bb.2699 ; GREEDY-NEXT: {{ $}}700 ; GREEDY-NEXT: bb.1:701 ; GREEDY-NEXT: successors: %bb.2(0x80000000)702 ; GREEDY-NEXT: {{ $}}703 ; GREEDY-NEXT: [[ICMP2:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]704 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP2]](s32)705 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)706 ; GREEDY-NEXT: G_BR %bb.2707 ; GREEDY-NEXT: {{ $}}708 ; GREEDY-NEXT: bb.2:709 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.1710 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)711 ; GREEDY-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)712 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]713 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)714 bb.0:715 successors: %bb.1, %bb.2716 liveins: $sgpr0, $sgpr1, $sgpr2717 718 %0:_(s32) = COPY $sgpr0719 %1:_(s32) = COPY $sgpr1720 %2:_(s32) = COPY $sgpr2721 %3:_(s32) = G_CONSTANT i32 0722 %4:_(s1) = G_ICMP intpred(eq), %0, %3723 %5:_(s1) = G_ICMP intpred(eq), %2, %3724 G_BRCOND %5, %bb.1725 G_BR %bb.2726 727 bb.1:728 successors: %bb.2729 730 %6:_(s1) = G_ICMP intpred(eq), %1, %3731 G_BR %bb.2732 733 bb.2:734 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.1735 %8:_(s32) = G_SELECT %7, %3, %0736 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %8737 738...739 740---741name: phi_s1_scc_scc_scc_sbranch742legalized: true743tracksRegLiveness: true744 745body: |746 ; FAST-LABEL: name: phi_s1_scc_scc_scc_sbranch747 ; FAST: bb.0:748 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.3(0x40000000)749 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3750 ; FAST-NEXT: {{ $}}751 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0752 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1753 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2754 ; FAST-NEXT: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY $sgpr3755 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0756 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]757 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)758 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]759 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)760 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)761 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)762 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.3763 ; FAST-NEXT: G_BR %bb.1764 ; FAST-NEXT: {{ $}}765 ; FAST-NEXT: bb.1:766 ; FAST-NEXT: successors: %bb.2(0x40000000), %bb.3(0x40000000)767 ; FAST-NEXT: {{ $}}768 ; FAST-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 99769 ; FAST-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 888770 ; FAST-NEXT: [[ICMP2:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C1]]771 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP2]](s32)772 ; FAST-NEXT: [[ICMP3:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C2]]773 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP3]](s32)774 ; FAST-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)775 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)776 ; FAST-NEXT: G_BRCOND [[ZEXT1]](s32), %bb.3777 ; FAST-NEXT: G_BR %bb.2778 ; FAST-NEXT: {{ $}}779 ; FAST-NEXT: bb.2:780 ; FAST-NEXT: successors: %bb.3(0x80000000)781 ; FAST-NEXT: {{ $}}782 ; FAST-NEXT: [[C3:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 123783 ; FAST-NEXT: [[ICMP4:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C3]]784 ; FAST-NEXT: [[TRUNC4:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP4]](s32)785 ; FAST-NEXT: [[ANYEXT2:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC4]](s1)786 ; FAST-NEXT: G_BR %bb.3787 ; FAST-NEXT: {{ $}}788 ; FAST-NEXT: bb.3:789 ; FAST-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.1, [[ANYEXT2]](s32), %bb.2790 ; FAST-NEXT: [[TRUNC5:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)791 ; FAST-NEXT: [[ZEXT2:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC5]](s1)792 ; FAST-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT2]](s32), [[COPY]], [[COPY1]]793 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)794 ; GREEDY-LABEL: name: phi_s1_scc_scc_scc_sbranch795 ; GREEDY: bb.0:796 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.3(0x40000000)797 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3798 ; GREEDY-NEXT: {{ $}}799 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0800 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1801 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2802 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY $sgpr3803 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0804 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]805 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)806 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]807 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)808 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)809 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)810 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.3811 ; GREEDY-NEXT: G_BR %bb.1812 ; GREEDY-NEXT: {{ $}}813 ; GREEDY-NEXT: bb.1:814 ; GREEDY-NEXT: successors: %bb.2(0x40000000), %bb.3(0x40000000)815 ; GREEDY-NEXT: {{ $}}816 ; GREEDY-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 99817 ; GREEDY-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 888818 ; GREEDY-NEXT: [[ICMP2:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C1]]819 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP2]](s32)820 ; GREEDY-NEXT: [[ICMP3:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C2]]821 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP3]](s32)822 ; GREEDY-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)823 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)824 ; GREEDY-NEXT: G_BRCOND [[ZEXT1]](s32), %bb.3825 ; GREEDY-NEXT: G_BR %bb.2826 ; GREEDY-NEXT: {{ $}}827 ; GREEDY-NEXT: bb.2:828 ; GREEDY-NEXT: successors: %bb.3(0x80000000)829 ; GREEDY-NEXT: {{ $}}830 ; GREEDY-NEXT: [[C3:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 123831 ; GREEDY-NEXT: [[ICMP4:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C3]]832 ; GREEDY-NEXT: [[TRUNC4:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP4]](s32)833 ; GREEDY-NEXT: [[ANYEXT2:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC4]](s1)834 ; GREEDY-NEXT: G_BR %bb.3835 ; GREEDY-NEXT: {{ $}}836 ; GREEDY-NEXT: bb.3:837 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.1, [[ANYEXT2]](s32), %bb.2838 ; GREEDY-NEXT: [[TRUNC5:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)839 ; GREEDY-NEXT: [[ZEXT2:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC5]](s1)840 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT2]](s32), [[COPY]], [[COPY1]]841 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)842 bb.0:843 successors: %bb.1, %bb.3844 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3845 846 %0:_(s32) = COPY $sgpr0847 %1:_(s32) = COPY $sgpr1848 %2:_(s32) = COPY $sgpr2849 %3:_(s32) = COPY $sgpr3850 %4:_(s32) = G_CONSTANT i32 0851 %5:_(s1) = G_ICMP intpred(eq), %0, %3852 %6:_(s1) = G_ICMP intpred(eq), %2, %3853 G_BRCOND %6, %bb.3854 G_BR %bb.1855 856 bb.1:857 successors: %bb.2, %bb.3858 859 %7:_(s32) = G_CONSTANT i32 99860 %8:_(s32) = G_CONSTANT i32 888861 %9:_(s1) = G_ICMP intpred(eq), %1, %7862 %10:_(s1) = G_ICMP intpred(eq), %1, %8863 G_BRCOND %10, %bb.3864 G_BR %bb.2865 866 bb.2:867 successors: %bb.3868 869 %11:_(s32) = G_CONSTANT i32 123870 %12:_(s1) = G_ICMP intpred(eq), %2, %11871 G_BR %bb.3872 873 bb.3:874 %13:_(s1) = G_PHI %5, %bb.0, %9, %bb.1, %12, %bb.2875 %14:_(s32) = G_SELECT %13, %0, %1876 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %14877 878...879 880---881name: phi_s1_scc_vcc_sbranch882legalized: true883tracksRegLiveness: true884 885body: |886 ; FAST-LABEL: name: phi_s1_scc_vcc_sbranch887 ; FAST: bb.0:888 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)889 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $vgpr0890 ; FAST-NEXT: {{ $}}891 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0892 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0893 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1894 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0895 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]896 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)897 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]898 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)899 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)900 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)901 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1902 ; FAST-NEXT: G_BR %bb.2903 ; FAST-NEXT: {{ $}}904 ; FAST-NEXT: bb.1:905 ; FAST-NEXT: successors: %bb.2(0x80000000)906 ; FAST-NEXT: {{ $}}907 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)908 ; FAST-NEXT: [[ICMP2:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY4]]909 ; FAST-NEXT: G_BR %bb.2910 ; FAST-NEXT: {{ $}}911 ; FAST-NEXT: bb.2:912 ; FAST-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[COPY3]](s1), %bb.0, [[ICMP2]](s1), %bb.1913 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)914 ; FAST-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)915 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY6]]916 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)917 ; GREEDY-LABEL: name: phi_s1_scc_vcc_sbranch918 ; GREEDY: bb.0:919 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)920 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $vgpr0921 ; GREEDY-NEXT: {{ $}}922 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0923 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0924 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1925 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0926 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]927 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)928 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]929 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)930 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)931 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)932 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1933 ; GREEDY-NEXT: G_BR %bb.2934 ; GREEDY-NEXT: {{ $}}935 ; GREEDY-NEXT: bb.1:936 ; GREEDY-NEXT: successors: %bb.2(0x80000000)937 ; GREEDY-NEXT: {{ $}}938 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)939 ; GREEDY-NEXT: [[ICMP2:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY4]]940 ; GREEDY-NEXT: G_BR %bb.2941 ; GREEDY-NEXT: {{ $}}942 ; GREEDY-NEXT: bb.2:943 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[COPY3]](s1), %bb.0, [[ICMP2]](s1), %bb.1944 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)945 ; GREEDY-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)946 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY6]]947 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)948 bb.0:949 successors: %bb.1, %bb.2950 liveins: $sgpr0, $sgpr1, $vgpr0951 952 %0:_(s32) = COPY $sgpr0953 %1:_(s32) = COPY $vgpr0954 %2:_(s32) = COPY $sgpr1955 %3:_(s32) = G_CONSTANT i32 0956 %4:_(s1) = G_ICMP intpred(eq), %0, %3957 %5:_(s1) = G_ICMP intpred(eq), %2, %3958 G_BRCOND %5, %bb.1959 G_BR %bb.2960 961 bb.1:962 successors: %bb.2963 964 %6:_(s1) = G_ICMP intpred(eq), %1, %3965 G_BR %bb.2966 967 bb.2:968 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.1969 %8:_(s32) = G_SELECT %7, %3, %0970 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %8971 972...973 974---975name: phi_s1_vcc_scc_sbranch976legalized: true977tracksRegLiveness: true978 979body: |980 ; FAST-LABEL: name: phi_s1_vcc_scc_sbranch981 ; FAST: bb.0:982 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)983 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr1984 ; FAST-NEXT: {{ $}}985 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0986 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0987 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1988 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0989 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)990 ; FAST-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]991 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]992 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)993 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)994 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1995 ; FAST-NEXT: G_BR %bb.2996 ; FAST-NEXT: {{ $}}997 ; FAST-NEXT: bb.1:998 ; FAST-NEXT: successors: %bb.2(0x80000000)999 ; FAST-NEXT: {{ $}}1000 ; FAST-NEXT: [[ICMP2:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]1001 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP2]](s32)1002 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC1]](s1)1003 ; FAST-NEXT: G_BR %bb.21004 ; FAST-NEXT: {{ $}}1005 ; FAST-NEXT: bb.2:1006 ; FAST-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[ICMP]](s1), %bb.0, [[COPY4]](s1), %bb.11007 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1008 ; FAST-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)1009 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY6]]1010 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1011 ; GREEDY-LABEL: name: phi_s1_vcc_scc_sbranch1012 ; GREEDY: bb.0:1013 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1014 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11015 ; GREEDY-NEXT: {{ $}}1016 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01017 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr01018 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11019 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01020 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1021 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]1022 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1023 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1024 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)1025 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11026 ; GREEDY-NEXT: G_BR %bb.21027 ; GREEDY-NEXT: {{ $}}1028 ; GREEDY-NEXT: bb.1:1029 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1030 ; GREEDY-NEXT: {{ $}}1031 ; GREEDY-NEXT: [[ICMP2:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]1032 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP2]](s32)1033 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC1]](s1)1034 ; GREEDY-NEXT: G_BR %bb.21035 ; GREEDY-NEXT: {{ $}}1036 ; GREEDY-NEXT: bb.2:1037 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[ICMP]](s1), %bb.0, [[COPY4]](s1), %bb.11038 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1039 ; GREEDY-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)1040 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY6]]1041 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1042 bb.0:1043 successors: %bb.1, %bb.21044 liveins: $vgpr0, $sgpr0, $sgpr11045 1046 %0:_(s32) = COPY $vgpr01047 %1:_(s32) = COPY $sgpr01048 %2:_(s32) = COPY $sgpr11049 %3:_(s32) = G_CONSTANT i32 01050 %4:_(s1) = G_ICMP intpred(eq), %0, %31051 %5:_(s1) = G_ICMP intpred(eq), %2, %31052 G_BRCOND %5, %bb.11053 G_BR %bb.21054 1055 bb.1:1056 successors: %bb.21057 1058 %6:_(s1) = G_ICMP intpred(eq), %1, %31059 G_BR %bb.21060 1061 bb.2:1062 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11063 %8:_(s32) = G_SELECT %7, %3, %11064 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81065 1066...1067 1068---1069name: phi_s1_vcc_vcc_sbranch1070legalized: true1071tracksRegLiveness: true1072 1073body: |1074 ; FAST-LABEL: name: phi_s1_vcc_vcc_sbranch1075 ; FAST: bb.0:1076 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1077 ; FAST-NEXT: liveins: $vgpr0, $vgpr1, $sgpr01078 ; FAST-NEXT: {{ $}}1079 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01080 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr11081 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr01082 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01083 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1084 ; FAST-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]1085 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1086 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1087 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)1088 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11089 ; FAST-NEXT: G_BR %bb.21090 ; FAST-NEXT: {{ $}}1091 ; FAST-NEXT: bb.1:1092 ; FAST-NEXT: successors: %bb.2(0x80000000)1093 ; FAST-NEXT: {{ $}}1094 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1095 ; FAST-NEXT: [[ICMP2:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY4]]1096 ; FAST-NEXT: G_BR %bb.21097 ; FAST-NEXT: {{ $}}1098 ; FAST-NEXT: bb.2:1099 ; FAST-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[ICMP]](s1), %bb.0, [[ICMP2]](s1), %bb.11100 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1101 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY]]1102 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1103 ; GREEDY-LABEL: name: phi_s1_vcc_vcc_sbranch1104 ; GREEDY: bb.0:1105 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1106 ; GREEDY-NEXT: liveins: $vgpr0, $vgpr1, $sgpr01107 ; GREEDY-NEXT: {{ $}}1108 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01109 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr11110 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr01111 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01112 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1113 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]1114 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1115 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1116 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)1117 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11118 ; GREEDY-NEXT: G_BR %bb.21119 ; GREEDY-NEXT: {{ $}}1120 ; GREEDY-NEXT: bb.1:1121 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1122 ; GREEDY-NEXT: {{ $}}1123 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1124 ; GREEDY-NEXT: [[ICMP2:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY4]]1125 ; GREEDY-NEXT: G_BR %bb.21126 ; GREEDY-NEXT: {{ $}}1127 ; GREEDY-NEXT: bb.2:1128 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[ICMP]](s1), %bb.0, [[ICMP2]](s1), %bb.11129 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1130 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY]]1131 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1132 bb.0:1133 successors: %bb.1, %bb.21134 liveins: $vgpr0, $vgpr1, $sgpr01135 1136 %0:_(s32) = COPY $vgpr01137 %1:_(s32) = COPY $vgpr11138 %2:_(s32) = COPY $sgpr01139 %3:_(s32) = G_CONSTANT i32 01140 %4:_(s1) = G_ICMP intpred(eq), %0, %31141 %5:_(s1) = G_ICMP intpred(eq), %2, %31142 G_BRCOND %5, %bb.11143 G_BR %bb.21144 1145 bb.1:1146 successors: %bb.21147 1148 %6:_(s1) = G_ICMP intpred(eq), %1, %31149 G_BR %bb.21150 1151 bb.2:1152 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11153 %8:_(s32) = G_SELECT %7, %3, %01154 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81155 1156...1157 1158---1159name: phi_s1_s_scc_sbranch1160legalized: true1161tracksRegLiveness: true1162 1163body: |1164 ; FAST-LABEL: name: phi_s1_s_scc_sbranch1165 ; FAST: bb.0:1166 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1167 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $sgpr21168 ; FAST-NEXT: {{ $}}1169 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01170 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr11171 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr21172 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01173 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)1174 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1175 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1176 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1177 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)1178 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11179 ; FAST-NEXT: G_BR %bb.21180 ; FAST-NEXT: {{ $}}1181 ; FAST-NEXT: bb.1:1182 ; FAST-NEXT: successors: %bb.2(0x80000000)1183 ; FAST-NEXT: {{ $}}1184 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]1185 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1186 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1187 ; FAST-NEXT: G_BR %bb.21188 ; FAST-NEXT: {{ $}}1189 ; FAST-NEXT: bb.2:1190 ; FAST-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11191 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)1192 ; FAST-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)1193 ; FAST-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]1194 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1195 ; GREEDY-LABEL: name: phi_s1_s_scc_sbranch1196 ; GREEDY: bb.0:1197 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1198 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $sgpr21199 ; GREEDY-NEXT: {{ $}}1200 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01201 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr11202 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr21203 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01204 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)1205 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1206 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1207 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1208 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)1209 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11210 ; GREEDY-NEXT: G_BR %bb.21211 ; GREEDY-NEXT: {{ $}}1212 ; GREEDY-NEXT: bb.1:1213 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1214 ; GREEDY-NEXT: {{ $}}1215 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]1216 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1217 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1218 ; GREEDY-NEXT: G_BR %bb.21219 ; GREEDY-NEXT: {{ $}}1220 ; GREEDY-NEXT: bb.2:1221 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11222 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)1223 ; GREEDY-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)1224 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]1225 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1226 bb.0:1227 successors: %bb.1, %bb.21228 liveins: $sgpr0, $sgpr1, $sgpr21229 1230 %0:_(s32) = COPY $sgpr01231 %1:_(s32) = COPY $sgpr11232 %2:_(s32) = COPY $sgpr21233 %3:_(s32) = G_CONSTANT i32 01234 %4:_(s1) = G_TRUNC %01235 %5:_(s1) = G_ICMP intpred(eq), %2, %31236 G_BRCOND %5, %bb.11237 G_BR %bb.21238 1239 bb.1:1240 successors: %bb.21241 1242 %6:_(s1) = G_ICMP intpred(eq), %1, %31243 G_BR %bb.21244 1245 bb.2:1246 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11247 %8:_(s32) = G_SELECT %7, %3, %01248 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81249 1250...1251 1252---1253name: phi_s1_scc_s_sbranch1254legalized: true1255tracksRegLiveness: true1256 1257body: |1258 ; FAST-LABEL: name: phi_s1_scc_s_sbranch1259 ; FAST: bb.0:1260 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1261 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $sgpr21262 ; FAST-NEXT: {{ $}}1263 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01264 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr11265 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr21266 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01267 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]1268 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1269 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1270 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1271 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1272 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)1273 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11274 ; FAST-NEXT: G_BR %bb.21275 ; FAST-NEXT: {{ $}}1276 ; FAST-NEXT: bb.1:1277 ; FAST-NEXT: successors: %bb.2(0x80000000)1278 ; FAST-NEXT: {{ $}}1279 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)1280 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1281 ; FAST-NEXT: G_BR %bb.21282 ; FAST-NEXT: {{ $}}1283 ; FAST-NEXT: bb.2:1284 ; FAST-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11285 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)1286 ; FAST-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)1287 ; FAST-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]1288 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1289 ; GREEDY-LABEL: name: phi_s1_scc_s_sbranch1290 ; GREEDY: bb.0:1291 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1292 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $sgpr21293 ; GREEDY-NEXT: {{ $}}1294 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01295 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr11296 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr21297 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01298 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]1299 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1300 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1301 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1302 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1303 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)1304 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11305 ; GREEDY-NEXT: G_BR %bb.21306 ; GREEDY-NEXT: {{ $}}1307 ; GREEDY-NEXT: bb.1:1308 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1309 ; GREEDY-NEXT: {{ $}}1310 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)1311 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1312 ; GREEDY-NEXT: G_BR %bb.21313 ; GREEDY-NEXT: {{ $}}1314 ; GREEDY-NEXT: bb.2:1315 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11316 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)1317 ; GREEDY-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)1318 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]1319 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1320 bb.0:1321 successors: %bb.1, %bb.21322 liveins: $sgpr0, $sgpr1, $sgpr21323 1324 %0:_(s32) = COPY $sgpr01325 %1:_(s32) = COPY $sgpr11326 %2:_(s32) = COPY $sgpr21327 %3:_(s32) = G_CONSTANT i32 01328 %4:_(s1) = G_ICMP intpred(eq), %0, %31329 %5:_(s1) = G_ICMP intpred(eq), %2, %31330 G_BRCOND %5, %bb.11331 G_BR %bb.21332 1333 bb.1:1334 successors: %bb.21335 1336 %6:_(s1) = G_TRUNC %11337 G_BR %bb.21338 1339 bb.2:1340 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11341 %8:_(s32) = G_SELECT %7, %3, %01342 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81343 1344...1345 1346---1347name: phi_s1_scc_v_sbranch1348legalized: true1349tracksRegLiveness: true1350 1351body: |1352 ; FAST-LABEL: name: phi_s1_scc_v_sbranch1353 ; FAST: bb.0:1354 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1355 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr1, $sgpr21356 ; FAST-NEXT: {{ $}}1357 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01358 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr01359 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr21360 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01361 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]1362 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1363 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1364 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1365 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1366 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1367 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11368 ; FAST-NEXT: G_BR %bb.21369 ; FAST-NEXT: {{ $}}1370 ; FAST-NEXT: bb.1:1371 ; FAST-NEXT: successors: %bb.2(0x80000000)1372 ; FAST-NEXT: {{ $}}1373 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)1374 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1375 ; FAST-NEXT: G_BR %bb.21376 ; FAST-NEXT: {{ $}}1377 ; FAST-NEXT: bb.2:1378 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11379 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1380 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)1381 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1382 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)1383 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY5]]1384 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1385 ; GREEDY-LABEL: name: phi_s1_scc_v_sbranch1386 ; GREEDY: bb.0:1387 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1388 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr1, $sgpr21389 ; GREEDY-NEXT: {{ $}}1390 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01391 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr01392 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr21393 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01394 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]1395 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1396 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1397 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1398 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1399 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1400 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11401 ; GREEDY-NEXT: G_BR %bb.21402 ; GREEDY-NEXT: {{ $}}1403 ; GREEDY-NEXT: bb.1:1404 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1405 ; GREEDY-NEXT: {{ $}}1406 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)1407 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1408 ; GREEDY-NEXT: G_BR %bb.21409 ; GREEDY-NEXT: {{ $}}1410 ; GREEDY-NEXT: bb.2:1411 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11412 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1413 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)1414 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1415 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)1416 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY5]]1417 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1418 bb.0:1419 successors: %bb.1, %bb.21420 liveins: $vgpr0, $sgpr0, $sgpr1, $sgpr21421 1422 %0:_(s32) = COPY $sgpr01423 %1:_(s32) = COPY $vgpr01424 %2:_(s32) = COPY $sgpr21425 %3:_(s32) = G_CONSTANT i32 01426 %4:_(s1) = G_ICMP intpred(eq), %0, %31427 %5:_(s1) = G_ICMP intpred(eq), %2, %31428 G_BRCOND %5, %bb.11429 G_BR %bb.21430 1431 bb.1:1432 successors: %bb.21433 1434 %6:_(s1) = G_TRUNC %11435 G_BR %bb.21436 1437 bb.2:1438 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11439 %8:_(s32) = G_SELECT %7, %3, %01440 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81441 1442...1443 1444---1445name: phi_s1_v_scc_sbranch1446legalized: true1447tracksRegLiveness: true1448 1449body: |1450 ; FAST-LABEL: name: phi_s1_v_scc_sbranch1451 ; FAST: bb.0:1452 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1453 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11454 ; FAST-NEXT: {{ $}}1455 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01456 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr01457 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11458 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01459 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)1460 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1461 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1462 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1463 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1464 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11465 ; FAST-NEXT: G_BR %bb.21466 ; FAST-NEXT: {{ $}}1467 ; FAST-NEXT: bb.1:1468 ; FAST-NEXT: successors: %bb.2(0x80000000)1469 ; FAST-NEXT: {{ $}}1470 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]1471 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1472 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1473 ; FAST-NEXT: G_BR %bb.21474 ; FAST-NEXT: {{ $}}1475 ; FAST-NEXT: bb.2:1476 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11477 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1478 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)1479 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1480 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY]]1481 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1482 ; GREEDY-LABEL: name: phi_s1_v_scc_sbranch1483 ; GREEDY: bb.0:1484 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1485 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11486 ; GREEDY-NEXT: {{ $}}1487 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01488 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr01489 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11490 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01491 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)1492 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1493 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1494 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1495 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1496 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11497 ; GREEDY-NEXT: G_BR %bb.21498 ; GREEDY-NEXT: {{ $}}1499 ; GREEDY-NEXT: bb.1:1500 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1501 ; GREEDY-NEXT: {{ $}}1502 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]1503 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1504 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1505 ; GREEDY-NEXT: G_BR %bb.21506 ; GREEDY-NEXT: {{ $}}1507 ; GREEDY-NEXT: bb.2:1508 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11509 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1510 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)1511 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1512 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY]]1513 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1514 bb.0:1515 successors: %bb.1, %bb.21516 liveins: $vgpr0, $sgpr0, $sgpr11517 1518 %0:_(s32) = COPY $vgpr01519 %1:_(s32) = COPY $sgpr01520 %2:_(s32) = COPY $sgpr11521 %3:_(s32) = G_CONSTANT i32 01522 %4:_(s1) = G_TRUNC %01523 %5:_(s1) = G_ICMP intpred(eq), %2, %31524 G_BRCOND %5, %bb.11525 G_BR %bb.21526 1527 bb.1:1528 successors: %bb.21529 1530 %6:_(s1) = G_ICMP intpred(eq), %1, %31531 G_BR %bb.21532 1533 bb.2:1534 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11535 %8:_(s32) = G_SELECT %7, %3, %01536 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81537 1538...1539 1540---1541name: phi_s1_vcc_s_sbranch1542legalized: true1543tracksRegLiveness: true1544 1545body: |1546 ; FAST-LABEL: name: phi_s1_vcc_s_sbranch1547 ; FAST: bb.0:1548 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1549 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11550 ; FAST-NEXT: {{ $}}1551 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01552 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr01553 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11554 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01555 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1556 ; FAST-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]1557 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1558 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1559 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)1560 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11561 ; FAST-NEXT: G_BR %bb.21562 ; FAST-NEXT: {{ $}}1563 ; FAST-NEXT: bb.1:1564 ; FAST-NEXT: successors: %bb.2(0x80000000)1565 ; FAST-NEXT: {{ $}}1566 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)1567 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC1]](s1)1568 ; FAST-NEXT: G_BR %bb.21569 ; FAST-NEXT: {{ $}}1570 ; FAST-NEXT: bb.2:1571 ; FAST-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[ICMP]](s1), %bb.0, [[COPY4]](s1), %bb.11572 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1573 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY]]1574 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1575 ; GREEDY-LABEL: name: phi_s1_vcc_s_sbranch1576 ; GREEDY: bb.0:1577 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1578 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11579 ; GREEDY-NEXT: {{ $}}1580 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01581 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr01582 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11583 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01584 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1585 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]1586 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1587 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1588 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)1589 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11590 ; GREEDY-NEXT: G_BR %bb.21591 ; GREEDY-NEXT: {{ $}}1592 ; GREEDY-NEXT: bb.1:1593 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1594 ; GREEDY-NEXT: {{ $}}1595 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)1596 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC1]](s1)1597 ; GREEDY-NEXT: G_BR %bb.21598 ; GREEDY-NEXT: {{ $}}1599 ; GREEDY-NEXT: bb.2:1600 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[ICMP]](s1), %bb.0, [[COPY4]](s1), %bb.11601 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1602 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY]]1603 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1604 bb.0:1605 successors: %bb.1, %bb.21606 liveins: $vgpr0, $sgpr0, $sgpr11607 1608 %0:_(s32) = COPY $vgpr01609 %1:_(s32) = COPY $sgpr01610 %2:_(s32) = COPY $sgpr11611 %3:_(s32) = G_CONSTANT i32 01612 %4:_(s1) = G_ICMP intpred(eq), %0, %31613 %5:_(s1) = G_ICMP intpred(eq), %2, %31614 G_BRCOND %5, %bb.11615 G_BR %bb.21616 1617 bb.1:1618 successors: %bb.21619 1620 %6:_(s1) = G_TRUNC %11621 G_BR %bb.21622 1623 bb.2:1624 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11625 %8:_(s32) = G_SELECT %7, %3, %01626 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81627 1628...1629 1630---1631name: phi_s1_s_vcc_sbranch1632legalized: true1633tracksRegLiveness: true1634 1635body: |1636 ; FAST-LABEL: name: phi_s1_s_vcc_sbranch1637 ; FAST: bb.0:1638 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1639 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11640 ; FAST-NEXT: {{ $}}1641 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01642 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr01643 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11644 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01645 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)1646 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1647 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1648 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1649 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)1650 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11651 ; FAST-NEXT: G_BR %bb.21652 ; FAST-NEXT: {{ $}}1653 ; FAST-NEXT: bb.1:1654 ; FAST-NEXT: successors: %bb.2(0x80000000)1655 ; FAST-NEXT: {{ $}}1656 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1657 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY4]]1658 ; FAST-NEXT: G_BR %bb.21659 ; FAST-NEXT: {{ $}}1660 ; FAST-NEXT: bb.2:1661 ; FAST-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[COPY3]](s1), %bb.0, [[ICMP1]](s1), %bb.11662 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1663 ; FAST-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)1664 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY6]]1665 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1666 ; GREEDY-LABEL: name: phi_s1_s_vcc_sbranch1667 ; GREEDY: bb.0:1668 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1669 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11670 ; GREEDY-NEXT: {{ $}}1671 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01672 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr01673 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11674 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01675 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)1676 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1677 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1678 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1679 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)1680 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11681 ; GREEDY-NEXT: G_BR %bb.21682 ; GREEDY-NEXT: {{ $}}1683 ; GREEDY-NEXT: bb.1:1684 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1685 ; GREEDY-NEXT: {{ $}}1686 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1687 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY4]]1688 ; GREEDY-NEXT: G_BR %bb.21689 ; GREEDY-NEXT: {{ $}}1690 ; GREEDY-NEXT: bb.2:1691 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[COPY3]](s1), %bb.0, [[ICMP1]](s1), %bb.11692 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1693 ; GREEDY-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)1694 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY6]]1695 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1696 bb.0:1697 successors: %bb.1, %bb.21698 liveins: $vgpr0, $sgpr0, $sgpr11699 1700 %0:_(s32) = COPY $sgpr01701 %1:_(s32) = COPY $vgpr01702 %2:_(s32) = COPY $sgpr11703 %3:_(s32) = G_CONSTANT i32 01704 %4:_(s1) = G_TRUNC %01705 %5:_(s1) = G_ICMP intpred(eq), %2, %31706 G_BRCOND %5, %bb.11707 G_BR %bb.21708 1709 bb.1:1710 successors: %bb.21711 1712 %6:_(s1) = G_ICMP intpred(eq), %1, %31713 G_BR %bb.21714 1715 bb.2:1716 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11717 %8:_(s32) = G_SELECT %7, %3, %01718 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81719 1720...1721 1722---1723name: phi_s1_vcc_v_sbranch1724legalized: true1725tracksRegLiveness: true1726 1727body: |1728 ; FAST-LABEL: name: phi_s1_vcc_v_sbranch1729 ; FAST: bb.0:1730 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1731 ; FAST-NEXT: liveins: $vgpr0, $vgpr1, $sgpr01732 ; FAST-NEXT: {{ $}}1733 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01734 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr11735 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr01736 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01737 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1738 ; FAST-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]1739 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1740 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1741 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)1742 ; FAST-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 11743 ; FAST-NEXT: [[C2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 01744 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[C1]], [[C2]]1745 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11746 ; FAST-NEXT: G_BR %bb.21747 ; FAST-NEXT: {{ $}}1748 ; FAST-NEXT: bb.1:1749 ; FAST-NEXT: successors: %bb.2(0x80000000)1750 ; FAST-NEXT: {{ $}}1751 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)1752 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC1]](s1)1753 ; FAST-NEXT: G_BR %bb.21754 ; FAST-NEXT: {{ $}}1755 ; FAST-NEXT: bb.2:1756 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[SELECT]](s32), %bb.0, [[ANYEXT]](s32), %bb.11757 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1758 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC2]](s1)1759 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1760 ; FAST-NEXT: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY4]](s1), [[COPY5]], [[COPY]]1761 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT1]](s32)1762 ; GREEDY-LABEL: name: phi_s1_vcc_v_sbranch1763 ; GREEDY: bb.0:1764 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1765 ; GREEDY-NEXT: liveins: $vgpr0, $vgpr1, $sgpr01766 ; GREEDY-NEXT: {{ $}}1767 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01768 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr11769 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr01770 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01771 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1772 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]1773 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1774 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1775 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)1776 ; GREEDY-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 11777 ; GREEDY-NEXT: [[C2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 01778 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[C1]], [[C2]]1779 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11780 ; GREEDY-NEXT: G_BR %bb.21781 ; GREEDY-NEXT: {{ $}}1782 ; GREEDY-NEXT: bb.1:1783 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1784 ; GREEDY-NEXT: {{ $}}1785 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)1786 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC1]](s1)1787 ; GREEDY-NEXT: G_BR %bb.21788 ; GREEDY-NEXT: {{ $}}1789 ; GREEDY-NEXT: bb.2:1790 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[SELECT]](s32), %bb.0, [[ANYEXT]](s32), %bb.11791 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1792 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC2]](s1)1793 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1794 ; GREEDY-NEXT: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY4]](s1), [[COPY5]], [[COPY]]1795 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT1]](s32)1796 bb.0:1797 successors: %bb.1, %bb.21798 liveins: $vgpr0, $vgpr1, $sgpr01799 1800 %0:_(s32) = COPY $vgpr01801 %1:_(s32) = COPY $vgpr11802 %2:_(s32) = COPY $sgpr01803 %3:_(s32) = G_CONSTANT i32 01804 %4:_(s1) = G_ICMP intpred(eq), %0, %31805 %5:_(s1) = G_ICMP intpred(eq), %2, %31806 G_BRCOND %5, %bb.11807 G_BR %bb.21808 1809 bb.1:1810 successors: %bb.21811 1812 %6:_(s1) = G_TRUNC %11813 G_BR %bb.21814 1815 bb.2:1816 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11817 %8:_(s32) = G_SELECT %7, %3, %01818 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81819 1820...1821 1822---1823name: phi_s1_v_vcc_sbranch1824legalized: true1825tracksRegLiveness: true1826 1827body: |1828 ; FAST-LABEL: name: phi_s1_v_vcc_sbranch1829 ; FAST: bb.0:1830 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1831 ; FAST-NEXT: liveins: $vgpr0, $vgpr1, $sgpr01832 ; FAST-NEXT: {{ $}}1833 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01834 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr11835 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr01836 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01837 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)1838 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1839 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1840 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1841 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1842 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11843 ; FAST-NEXT: G_BR %bb.21844 ; FAST-NEXT: {{ $}}1845 ; FAST-NEXT: bb.1:1846 ; FAST-NEXT: successors: %bb.2(0x80000000)1847 ; FAST-NEXT: {{ $}}1848 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1849 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]1850 ; FAST-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 11851 ; FAST-NEXT: [[C2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 01852 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP1]](s1), [[C1]], [[C2]]1853 ; FAST-NEXT: G_BR %bb.21854 ; FAST-NEXT: {{ $}}1855 ; FAST-NEXT: bb.2:1856 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[SELECT]](s32), %bb.11857 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1858 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC2]](s1)1859 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1860 ; FAST-NEXT: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY4]](s1), [[COPY5]], [[COPY]]1861 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT1]](s32)1862 ; GREEDY-LABEL: name: phi_s1_v_vcc_sbranch1863 ; GREEDY: bb.0:1864 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1865 ; GREEDY-NEXT: liveins: $vgpr0, $vgpr1, $sgpr01866 ; GREEDY-NEXT: {{ $}}1867 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01868 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr11869 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr01870 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01871 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)1872 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1873 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1874 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1875 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1876 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11877 ; GREEDY-NEXT: G_BR %bb.21878 ; GREEDY-NEXT: {{ $}}1879 ; GREEDY-NEXT: bb.1:1880 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1881 ; GREEDY-NEXT: {{ $}}1882 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1883 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]1884 ; GREEDY-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 11885 ; GREEDY-NEXT: [[C2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 01886 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP1]](s1), [[C1]], [[C2]]1887 ; GREEDY-NEXT: G_BR %bb.21888 ; GREEDY-NEXT: {{ $}}1889 ; GREEDY-NEXT: bb.2:1890 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[SELECT]](s32), %bb.11891 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1892 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC2]](s1)1893 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1894 ; GREEDY-NEXT: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY4]](s1), [[COPY5]], [[COPY]]1895 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT1]](s32)1896 bb.0:1897 successors: %bb.1, %bb.21898 liveins: $vgpr0, $vgpr1, $sgpr01899 1900 %0:_(s32) = COPY $vgpr01901 %1:_(s32) = COPY $vgpr11902 %2:_(s32) = COPY $sgpr01903 %3:_(s32) = G_CONSTANT i32 01904 %4:_(s1) = G_TRUNC %01905 %5:_(s1) = G_ICMP intpred(eq), %2, %31906 G_BRCOND %5, %bb.11907 G_BR %bb.21908 1909 bb.1:1910 successors: %bb.21911 1912 %6:_(s1) = G_ICMP intpred(eq), %1, %31913 G_BR %bb.21914 1915 bb.2:1916 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11917 %8:_(s32) = G_SELECT %7, %3, %01918 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81919 1920...1921 1922---1923name: phi_s1_v_s_sbranch1924legalized: true1925tracksRegLiveness: true1926 1927body: |1928 ; FAST-LABEL: name: phi_s1_v_s_sbranch1929 ; FAST: bb.0:1930 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1931 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11932 ; FAST-NEXT: {{ $}}1933 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01934 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr01935 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11936 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01937 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)1938 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1939 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1940 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1941 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1942 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11943 ; FAST-NEXT: G_BR %bb.21944 ; FAST-NEXT: {{ $}}1945 ; FAST-NEXT: bb.1:1946 ; FAST-NEXT: successors: %bb.2(0x80000000)1947 ; FAST-NEXT: {{ $}}1948 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)1949 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1950 ; FAST-NEXT: G_BR %bb.21951 ; FAST-NEXT: {{ $}}1952 ; FAST-NEXT: bb.2:1953 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11954 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1955 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)1956 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1957 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY]]1958 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1959 ; GREEDY-LABEL: name: phi_s1_v_s_sbranch1960 ; GREEDY: bb.0:1961 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1962 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11963 ; GREEDY-NEXT: {{ $}}1964 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01965 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr01966 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11967 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01968 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)1969 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1970 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1971 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1972 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1973 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11974 ; GREEDY-NEXT: G_BR %bb.21975 ; GREEDY-NEXT: {{ $}}1976 ; GREEDY-NEXT: bb.1:1977 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1978 ; GREEDY-NEXT: {{ $}}1979 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)1980 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1981 ; GREEDY-NEXT: G_BR %bb.21982 ; GREEDY-NEXT: {{ $}}1983 ; GREEDY-NEXT: bb.2:1984 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11985 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1986 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)1987 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1988 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY]]1989 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1990 bb.0:1991 successors: %bb.1, %bb.21992 liveins: $vgpr0, $sgpr0, $sgpr11993 1994 %0:_(s32) = COPY $vgpr01995 %1:_(s32) = COPY $sgpr01996 %2:_(s32) = COPY $sgpr11997 %3:_(s32) = G_CONSTANT i32 01998 %4:_(s1) = G_TRUNC %01999 %5:_(s1) = G_ICMP intpred(eq), %2, %32000 G_BRCOND %5, %bb.12001 G_BR %bb.22002 2003 bb.1:2004 successors: %bb.22005 2006 %6:_(s1) = G_TRUNC %12007 G_BR %bb.22008 2009 bb.2:2010 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.12011 %8:_(s32) = G_SELECT %7, %3, %02012 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %82013 2014...2015 2016---2017name: phi_s1_s_v_sbranch2018legalized: true2019tracksRegLiveness: true2020 2021body: |2022 ; FAST-LABEL: name: phi_s1_s_v_sbranch2023 ; FAST: bb.0:2024 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2025 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr12026 ; FAST-NEXT: {{ $}}2027 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr02028 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr02029 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr12030 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02031 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)2032 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2033 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2034 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)2035 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)2036 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12037 ; FAST-NEXT: G_BR %bb.22038 ; FAST-NEXT: {{ $}}2039 ; FAST-NEXT: bb.1:2040 ; FAST-NEXT: successors: %bb.2(0x80000000)2041 ; FAST-NEXT: {{ $}}2042 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)2043 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)2044 ; FAST-NEXT: G_BR %bb.22045 ; FAST-NEXT: {{ $}}2046 ; FAST-NEXT: bb.2:2047 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.12048 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)2049 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)2050 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)2051 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)2052 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY5]]2053 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)2054 ; GREEDY-LABEL: name: phi_s1_s_v_sbranch2055 ; GREEDY: bb.0:2056 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2057 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr12058 ; GREEDY-NEXT: {{ $}}2059 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr02060 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr02061 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr12062 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02063 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)2064 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2065 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2066 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)2067 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)2068 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12069 ; GREEDY-NEXT: G_BR %bb.22070 ; GREEDY-NEXT: {{ $}}2071 ; GREEDY-NEXT: bb.1:2072 ; GREEDY-NEXT: successors: %bb.2(0x80000000)2073 ; GREEDY-NEXT: {{ $}}2074 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)2075 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)2076 ; GREEDY-NEXT: G_BR %bb.22077 ; GREEDY-NEXT: {{ $}}2078 ; GREEDY-NEXT: bb.2:2079 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.12080 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)2081 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)2082 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)2083 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)2084 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY5]]2085 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)2086 bb.0:2087 successors: %bb.1, %bb.22088 liveins: $vgpr0, $sgpr0, $sgpr12089 2090 %0:_(s32) = COPY $sgpr02091 %1:_(s32) = COPY $vgpr02092 %2:_(s32) = COPY $sgpr12093 %3:_(s32) = G_CONSTANT i32 02094 %4:_(s1) = G_TRUNC %02095 %5:_(s1) = G_ICMP intpred(eq), %2, %32096 G_BRCOND %5, %bb.12097 G_BR %bb.22098 2099 bb.1:2100 successors: %bb.22101 2102 %6:_(s1) = G_TRUNC %12103 G_BR %bb.22104 2105 bb.2:2106 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.12107 %8:_(s32) = G_SELECT %7, %3, %02108 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %82109 2110...2111 2112---2113name: phi_s1_v_v_sbranch2114legalized: true2115tracksRegLiveness: true2116 2117body: |2118 ; FAST-LABEL: name: phi_s1_v_v_sbranch2119 ; FAST: bb.0:2120 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2121 ; FAST-NEXT: liveins: $vgpr0, $vgpr1, $sgpr02122 ; FAST-NEXT: {{ $}}2123 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr02124 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr12125 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr02126 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02127 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)2128 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2129 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2130 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)2131 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)2132 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12133 ; FAST-NEXT: G_BR %bb.22134 ; FAST-NEXT: {{ $}}2135 ; FAST-NEXT: bb.1:2136 ; FAST-NEXT: successors: %bb.2(0x80000000)2137 ; FAST-NEXT: {{ $}}2138 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)2139 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)2140 ; FAST-NEXT: G_BR %bb.22141 ; FAST-NEXT: {{ $}}2142 ; FAST-NEXT: bb.2:2143 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.12144 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)2145 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)2146 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)2147 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY]]2148 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)2149 ; GREEDY-LABEL: name: phi_s1_v_v_sbranch2150 ; GREEDY: bb.0:2151 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2152 ; GREEDY-NEXT: liveins: $vgpr0, $vgpr1, $sgpr02153 ; GREEDY-NEXT: {{ $}}2154 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr02155 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr12156 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr02157 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02158 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)2159 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2160 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2161 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)2162 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)2163 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12164 ; GREEDY-NEXT: G_BR %bb.22165 ; GREEDY-NEXT: {{ $}}2166 ; GREEDY-NEXT: bb.1:2167 ; GREEDY-NEXT: successors: %bb.2(0x80000000)2168 ; GREEDY-NEXT: {{ $}}2169 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)2170 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)2171 ; GREEDY-NEXT: G_BR %bb.22172 ; GREEDY-NEXT: {{ $}}2173 ; GREEDY-NEXT: bb.2:2174 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.12175 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)2176 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)2177 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)2178 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY]]2179 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)2180 bb.0:2181 successors: %bb.1, %bb.22182 liveins: $vgpr0, $vgpr1, $sgpr02183 2184 %0:_(s32) = COPY $vgpr02185 %1:_(s32) = COPY $vgpr12186 %2:_(s32) = COPY $sgpr02187 %3:_(s32) = G_CONSTANT i32 02188 %4:_(s1) = G_TRUNC %02189 %5:_(s1) = G_ICMP intpred(eq), %2, %32190 G_BRCOND %5, %bb.12191 G_BR %bb.22192 2193 bb.1:2194 successors: %bb.22195 2196 %6:_(s1) = G_TRUNC %12197 G_BR %bb.22198 2199 bb.2:2200 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.12201 %8:_(s32) = G_SELECT %7, %3, %02202 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %82203 2204...2205 2206---2207name: phi_s1_s_s_sbranch2208legalized: true2209tracksRegLiveness: true2210 2211body: |2212 ; FAST-LABEL: name: phi_s1_s_s_sbranch2213 ; FAST: bb.0:2214 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2215 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $sgpr22216 ; FAST-NEXT: {{ $}}2217 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr02218 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr12219 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22220 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02221 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)2222 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2223 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2224 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)2225 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)2226 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12227 ; FAST-NEXT: G_BR %bb.22228 ; FAST-NEXT: {{ $}}2229 ; FAST-NEXT: bb.1:2230 ; FAST-NEXT: successors: %bb.2(0x80000000)2231 ; FAST-NEXT: {{ $}}2232 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)2233 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)2234 ; FAST-NEXT: G_BR %bb.22235 ; FAST-NEXT: {{ $}}2236 ; FAST-NEXT: bb.2:2237 ; FAST-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.12238 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)2239 ; FAST-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)2240 ; FAST-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]2241 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)2242 ; GREEDY-LABEL: name: phi_s1_s_s_sbranch2243 ; GREEDY: bb.0:2244 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2245 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $sgpr22246 ; GREEDY-NEXT: {{ $}}2247 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr02248 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr12249 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22250 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02251 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)2252 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2253 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2254 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)2255 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)2256 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12257 ; GREEDY-NEXT: G_BR %bb.22258 ; GREEDY-NEXT: {{ $}}2259 ; GREEDY-NEXT: bb.1:2260 ; GREEDY-NEXT: successors: %bb.2(0x80000000)2261 ; GREEDY-NEXT: {{ $}}2262 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)2263 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)2264 ; GREEDY-NEXT: G_BR %bb.22265 ; GREEDY-NEXT: {{ $}}2266 ; GREEDY-NEXT: bb.2:2267 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.12268 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)2269 ; GREEDY-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)2270 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]2271 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)2272 bb.0:2273 successors: %bb.1, %bb.22274 liveins: $sgpr0, $sgpr1, $sgpr22275 2276 %0:_(s32) = COPY $sgpr02277 %1:_(s32) = COPY $sgpr12278 %2:_(s32) = COPY $sgpr22279 %3:_(s32) = G_CONSTANT i32 02280 %4:_(s1) = G_TRUNC %02281 %5:_(s1) = G_ICMP intpred(eq), %2, %32282 G_BRCOND %5, %bb.12283 G_BR %bb.22284 2285 bb.1:2286 successors: %bb.22287 2288 %6:_(s1) = G_TRUNC %12289 G_BR %bb.22290 2291 bb.2:2292 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.12293 %8:_(s32) = G_SELECT %7, %3, %02294 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %82295 2296...2297 2298# Test a phi where the VGPR input is after the phi itself2299---2300name: phi_s32_s_loop_v_sbranch2301legalized: true2302tracksRegLiveness: true2303 2304body: |2305 ; FAST-LABEL: name: phi_s32_s_loop_v_sbranch2306 ; FAST: bb.0:2307 ; FAST-NEXT: successors: %bb.1(0x80000000)2308 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $vgpr02309 ; FAST-NEXT: {{ $}}2310 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr02311 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr12312 ; FAST-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr02313 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02314 ; FAST-NEXT: G_BR %bb.12315 ; FAST-NEXT: {{ $}}2316 ; FAST-NEXT: bb.1:2317 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2318 ; FAST-NEXT: {{ $}}2319 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, %5(s32), %bb.12320 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)2321 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]2322 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2323 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2324 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12325 ; FAST-NEXT: G_BR %bb.22326 ; FAST-NEXT: {{ $}}2327 ; FAST-NEXT: bb.2:2328 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[PHI]](s32)2329 ; GREEDY-LABEL: name: phi_s32_s_loop_v_sbranch2330 ; GREEDY: bb.0:2331 ; GREEDY-NEXT: successors: %bb.1(0x80000000)2332 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $vgpr02333 ; GREEDY-NEXT: {{ $}}2334 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr02335 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr12336 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:vgpr(s32) = COPY $vgpr02337 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02338 ; GREEDY-NEXT: G_BR %bb.12339 ; GREEDY-NEXT: {{ $}}2340 ; GREEDY-NEXT: bb.1:2341 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2342 ; GREEDY-NEXT: {{ $}}2343 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, %5(s32), %bb.12344 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY2]](s32)2345 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]2346 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2347 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2348 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12349 ; GREEDY-NEXT: G_BR %bb.22350 ; GREEDY-NEXT: {{ $}}2351 ; GREEDY-NEXT: bb.2:2352 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[PHI]](s32)2353 bb.0:2354 successors: %bb.12355 liveins: $sgpr0, $sgpr1, $vgpr02356 2357 %0:_(s32) = COPY $sgpr02358 %1:_(s32) = COPY $sgpr12359 %2:_(s32) = COPY $vgpr02360 %3:_(s32) = G_CONSTANT i32 02361 G_BR %bb.12362 2363 bb.1:2364 successors: %bb.1, %bb.22365 2366 %4:_(s32) = G_PHI %0, %bb.0, %5, %bb.12367 %5:_(s32) = COPY %22368 %6:_(s1) = G_ICMP intpred(eq), %1, %32369 G_BRCOND %6, %bb.12370 G_BR %bb.22371 2372 bb.2:2373 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %42374 2375...2376 2377# Test a phi where an SGPR input is after the phi itself2378---2379name: phi_s32_s_loop_s_sbranch2380legalized: true2381tracksRegLiveness: true2382 2383body: |2384 ; FAST-LABEL: name: phi_s32_s_loop_s_sbranch2385 ; FAST: bb.0:2386 ; FAST-NEXT: successors: %bb.1(0x80000000)2387 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $sgpr22388 ; FAST-NEXT: {{ $}}2389 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr02390 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr12391 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22392 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02393 ; FAST-NEXT: G_BR %bb.12394 ; FAST-NEXT: {{ $}}2395 ; FAST-NEXT: bb.1:2396 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2397 ; FAST-NEXT: {{ $}}2398 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, %5(s32), %bb.12399 ; FAST-NEXT: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY [[COPY2]](s32)2400 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]2401 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2402 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2403 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12404 ; FAST-NEXT: G_BR %bb.22405 ; FAST-NEXT: {{ $}}2406 ; FAST-NEXT: bb.2:2407 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[PHI]](s32)2408 ; GREEDY-LABEL: name: phi_s32_s_loop_s_sbranch2409 ; GREEDY: bb.0:2410 ; GREEDY-NEXT: successors: %bb.1(0x80000000)2411 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $sgpr22412 ; GREEDY-NEXT: {{ $}}2413 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr02414 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr12415 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22416 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02417 ; GREEDY-NEXT: G_BR %bb.12418 ; GREEDY-NEXT: {{ $}}2419 ; GREEDY-NEXT: bb.1:2420 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2421 ; GREEDY-NEXT: {{ $}}2422 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, %5(s32), %bb.12423 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY [[COPY2]](s32)2424 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]2425 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2426 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2427 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12428 ; GREEDY-NEXT: G_BR %bb.22429 ; GREEDY-NEXT: {{ $}}2430 ; GREEDY-NEXT: bb.2:2431 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[PHI]](s32)2432 bb.0:2433 successors: %bb.12434 liveins: $sgpr0, $sgpr1, $sgpr22435 2436 %0:_(s32) = COPY $sgpr02437 %1:_(s32) = COPY $sgpr12438 %2:_(s32) = COPY $sgpr22439 %3:_(s32) = G_CONSTANT i32 02440 G_BR %bb.12441 2442 bb.1:2443 successors: %bb.1, %bb.22444 2445 %4:_(s32) = G_PHI %0, %bb.0, %5, %bb.12446 %5:_(s32) = COPY %22447 %6:_(s1) = G_ICMP intpred(eq), %1, %32448 G_BRCOND %6, %bb.12449 G_BR %bb.22450 2451 bb.2:2452 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %42453 2454...2455 2456---2457name: phi_s32_ss_sbranch_cycle2458legalized: true2459tracksRegLiveness: true2460 2461body: |2462 ; FAST-LABEL: name: phi_s32_ss_sbranch_cycle2463 ; FAST: bb.0:2464 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2465 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $sgpr22466 ; FAST-NEXT: {{ $}}2467 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr02468 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr12469 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22470 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02471 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2472 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2473 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2474 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12475 ; FAST-NEXT: G_BR %bb.22476 ; FAST-NEXT: {{ $}}2477 ; FAST-NEXT: bb.1:2478 ; FAST-NEXT: successors: %bb.2(0x80000000)2479 ; FAST-NEXT: {{ $}}2480 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, %6(s32), %bb.22481 ; FAST-NEXT: G_BR %bb.22482 ; FAST-NEXT: {{ $}}2483 ; FAST-NEXT: bb.2:2484 ; FAST-NEXT: successors: %bb.1(0x80000000)2485 ; FAST-NEXT: {{ $}}2486 ; FAST-NEXT: [[PHI1:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[PHI]](s32), %bb.12487 ; FAST-NEXT: G_BR %bb.12488 ; GREEDY-LABEL: name: phi_s32_ss_sbranch_cycle2489 ; GREEDY: bb.0:2490 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2491 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $sgpr22492 ; GREEDY-NEXT: {{ $}}2493 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr02494 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr12495 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22496 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02497 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2498 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2499 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2500 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12501 ; GREEDY-NEXT: G_BR %bb.22502 ; GREEDY-NEXT: {{ $}}2503 ; GREEDY-NEXT: bb.1:2504 ; GREEDY-NEXT: successors: %bb.2(0x80000000)2505 ; GREEDY-NEXT: {{ $}}2506 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, %6(s32), %bb.22507 ; GREEDY-NEXT: G_BR %bb.22508 ; GREEDY-NEXT: {{ $}}2509 ; GREEDY-NEXT: bb.2:2510 ; GREEDY-NEXT: successors: %bb.1(0x80000000)2511 ; GREEDY-NEXT: {{ $}}2512 ; GREEDY-NEXT: [[PHI1:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[PHI]](s32), %bb.12513 ; GREEDY-NEXT: G_BR %bb.12514 bb.0:2515 successors: %bb.1, %bb.22516 liveins: $sgpr0, $sgpr1, $sgpr22517 2518 %0:_(s32) = COPY $sgpr02519 %1:_(s32) = COPY $sgpr12520 %2:_(s32) = COPY $sgpr22521 %3:_(s32) = G_CONSTANT i32 02522 %4:_(s1) = G_ICMP intpred(eq), %2, %32523 G_BRCOND %4, %bb.12524 G_BR %bb.22525 2526 bb.1:2527 successors: %bb.22528 %5:_(s32) = G_PHI %0, %bb.0, %6, %bb.22529 G_BR %bb.22530 2531 bb.2:2532 successors: %bb.12533 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.12534 G_BR %bb.12535...2536 2537---2538name: phi_s32_vs_sbranch_cycle2539legalized: true2540tracksRegLiveness: true2541 2542body: |2543 ; FAST-LABEL: name: phi_s32_vs_sbranch_cycle2544 ; FAST: bb.0:2545 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2546 ; FAST-NEXT: liveins: $vgpr0, $sgpr1, $sgpr22547 ; FAST-NEXT: {{ $}}2548 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr02549 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr12550 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22551 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02552 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2553 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2554 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2555 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12556 ; FAST-NEXT: G_BR %bb.22557 ; FAST-NEXT: {{ $}}2558 ; FAST-NEXT: bb.1:2559 ; FAST-NEXT: successors: %bb.2(0x80000000)2560 ; FAST-NEXT: {{ $}}2561 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, %6(s32), %bb.22562 ; FAST-NEXT: G_BR %bb.22563 ; FAST-NEXT: {{ $}}2564 ; FAST-NEXT: bb.2:2565 ; FAST-NEXT: successors: %bb.1(0x80000000)2566 ; FAST-NEXT: {{ $}}2567 ; FAST-NEXT: [[PHI1:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[PHI]](s32), %bb.12568 ; FAST-NEXT: G_BR %bb.12569 ; GREEDY-LABEL: name: phi_s32_vs_sbranch_cycle2570 ; GREEDY: bb.0:2571 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2572 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr1, $sgpr22573 ; GREEDY-NEXT: {{ $}}2574 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr02575 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr12576 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22577 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02578 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2579 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2580 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2581 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12582 ; GREEDY-NEXT: G_BR %bb.22583 ; GREEDY-NEXT: {{ $}}2584 ; GREEDY-NEXT: bb.1:2585 ; GREEDY-NEXT: successors: %bb.2(0x80000000)2586 ; GREEDY-NEXT: {{ $}}2587 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, %6(s32), %bb.22588 ; GREEDY-NEXT: G_BR %bb.22589 ; GREEDY-NEXT: {{ $}}2590 ; GREEDY-NEXT: bb.2:2591 ; GREEDY-NEXT: successors: %bb.1(0x80000000)2592 ; GREEDY-NEXT: {{ $}}2593 ; GREEDY-NEXT: [[PHI1:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[PHI]](s32), %bb.12594 ; GREEDY-NEXT: G_BR %bb.12595 bb.0:2596 successors: %bb.1, %bb.22597 liveins: $vgpr0, $sgpr1, $sgpr22598 2599 %0:_(s32) = COPY $vgpr02600 %1:_(s32) = COPY $sgpr12601 %2:_(s32) = COPY $sgpr22602 %3:_(s32) = G_CONSTANT i32 02603 %4:_(s1) = G_ICMP intpred(eq), %2, %32604 G_BRCOND %4, %bb.12605 G_BR %bb.22606 2607 bb.1:2608 successors: %bb.22609 %5:_(s32) = G_PHI %0, %bb.0, %6, %bb.22610 G_BR %bb.22611 2612 bb.2:2613 successors: %bb.12614 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.12615 G_BR %bb.12616...2617 2618---2619name: phi_s32_aa_sbranch2620legalized: true2621tracksRegLiveness: true2622 2623body: |2624 ; FAST-LABEL: name: phi_s32_aa_sbranch2625 ; FAST: bb.0:2626 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2627 ; FAST-NEXT: liveins: $agpr0, $agpr1, $sgpr22628 ; FAST-NEXT: {{ $}}2629 ; FAST-NEXT: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr02630 ; FAST-NEXT: [[COPY1:%[0-9]+]]:agpr(s32) = COPY $agpr12631 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22632 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02633 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2634 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2635 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2636 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12637 ; FAST-NEXT: G_BR %bb.22638 ; FAST-NEXT: {{ $}}2639 ; FAST-NEXT: bb.1:2640 ; FAST-NEXT: successors: %bb.2(0x80000000)2641 ; FAST-NEXT: {{ $}}2642 ; FAST-NEXT: [[COPY3:%[0-9]+]]:agpr(s32) = COPY [[COPY1]](s32)2643 ; FAST-NEXT: G_BR %bb.22644 ; FAST-NEXT: {{ $}}2645 ; FAST-NEXT: bb.2:2646 ; FAST-NEXT: [[PHI:%[0-9]+]]:agpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.12647 ; FAST-NEXT: $agpr0 = COPY [[PHI]](s32)2648 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr312649 ; GREEDY-LABEL: name: phi_s32_aa_sbranch2650 ; GREEDY: bb.0:2651 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2652 ; GREEDY-NEXT: liveins: $agpr0, $agpr1, $sgpr22653 ; GREEDY-NEXT: {{ $}}2654 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr02655 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:agpr(s32) = COPY $agpr12656 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22657 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02658 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2659 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2660 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2661 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12662 ; GREEDY-NEXT: G_BR %bb.22663 ; GREEDY-NEXT: {{ $}}2664 ; GREEDY-NEXT: bb.1:2665 ; GREEDY-NEXT: successors: %bb.2(0x80000000)2666 ; GREEDY-NEXT: {{ $}}2667 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:agpr(s32) = COPY [[COPY1]](s32)2668 ; GREEDY-NEXT: G_BR %bb.22669 ; GREEDY-NEXT: {{ $}}2670 ; GREEDY-NEXT: bb.2:2671 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:agpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.12672 ; GREEDY-NEXT: $agpr0 = COPY [[PHI]](s32)2673 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr312674 bb.0:2675 successors: %bb.1, %bb.22676 liveins: $agpr0, $agpr1, $sgpr22677 2678 %0:_(s32) = COPY $agpr02679 %1:_(s32) = COPY $agpr12680 %2:_(s32) = COPY $sgpr22681 %3:_(s32) = G_CONSTANT i32 02682 %4:_(s1) = G_ICMP intpred(eq), %2, %32683 G_BRCOND %4, %bb.12684 G_BR %bb.22685 2686 bb.1:2687 successors: %bb.22688 2689 %5:_(s32) = COPY %12690 G_BR %bb.22691 2692 bb.2:2693 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.12694 $agpr0 = COPY %62695 S_SETPC_B64 undef $sgpr30_sgpr312696 2697...2698 2699---2700name: phi_s32_av_sbranch2701legalized: true2702tracksRegLiveness: true2703 2704body: |2705 ; FAST-LABEL: name: phi_s32_av_sbranch2706 ; FAST: bb.0:2707 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2708 ; FAST-NEXT: liveins: $agpr0, $vgpr0, $sgpr22709 ; FAST-NEXT: {{ $}}2710 ; FAST-NEXT: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr02711 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr02712 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22713 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02714 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2715 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2716 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2717 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12718 ; FAST-NEXT: G_BR %bb.22719 ; FAST-NEXT: {{ $}}2720 ; FAST-NEXT: bb.1:2721 ; FAST-NEXT: successors: %bb.2(0x80000000)2722 ; FAST-NEXT: {{ $}}2723 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)2724 ; FAST-NEXT: G_BR %bb.22725 ; FAST-NEXT: {{ $}}2726 ; FAST-NEXT: bb.2:2727 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.12728 ; FAST-NEXT: $agpr0 = COPY [[PHI]](s32)2729 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr312730 ; GREEDY-LABEL: name: phi_s32_av_sbranch2731 ; GREEDY: bb.0:2732 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2733 ; GREEDY-NEXT: liveins: $agpr0, $vgpr0, $sgpr22734 ; GREEDY-NEXT: {{ $}}2735 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr02736 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr02737 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22738 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02739 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2740 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2741 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2742 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12743 ; GREEDY-NEXT: G_BR %bb.22744 ; GREEDY-NEXT: {{ $}}2745 ; GREEDY-NEXT: bb.1:2746 ; GREEDY-NEXT: successors: %bb.2(0x80000000)2747 ; GREEDY-NEXT: {{ $}}2748 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)2749 ; GREEDY-NEXT: G_BR %bb.22750 ; GREEDY-NEXT: {{ $}}2751 ; GREEDY-NEXT: bb.2:2752 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.12753 ; GREEDY-NEXT: $agpr0 = COPY [[PHI]](s32)2754 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr312755 bb.0:2756 successors: %bb.1, %bb.22757 liveins: $agpr0, $vgpr0, $sgpr22758 2759 %0:_(s32) = COPY $agpr02760 %1:_(s32) = COPY $vgpr02761 %2:_(s32) = COPY $sgpr22762 %3:_(s32) = G_CONSTANT i32 02763 %4:_(s1) = G_ICMP intpred(eq), %2, %32764 G_BRCOND %4, %bb.12765 G_BR %bb.22766 2767 bb.1:2768 successors: %bb.22769 2770 %5:_(s32) = COPY %12771 G_BR %bb.22772 2773 bb.2:2774 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.12775 $agpr0 = COPY %62776 S_SETPC_B64 undef $sgpr30_sgpr312777 2778...2779---2780name: phi_s32_va_sbranch2781legalized: true2782tracksRegLiveness: true2783 2784body: |2785 ; FAST-LABEL: name: phi_s32_va_sbranch2786 ; FAST: bb.0:2787 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2788 ; FAST-NEXT: liveins: $agpr0, $vgpr0, $sgpr22789 ; FAST-NEXT: {{ $}}2790 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr02791 ; FAST-NEXT: [[COPY1:%[0-9]+]]:agpr(s32) = COPY $agpr02792 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22793 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02794 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2795 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2796 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2797 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12798 ; FAST-NEXT: G_BR %bb.22799 ; FAST-NEXT: {{ $}}2800 ; FAST-NEXT: bb.1:2801 ; FAST-NEXT: successors: %bb.2(0x80000000)2802 ; FAST-NEXT: {{ $}}2803 ; FAST-NEXT: [[COPY3:%[0-9]+]]:agpr(s32) = COPY [[COPY1]](s32)2804 ; FAST-NEXT: G_BR %bb.22805 ; FAST-NEXT: {{ $}}2806 ; FAST-NEXT: bb.2:2807 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.12808 ; FAST-NEXT: $agpr0 = COPY [[PHI]](s32)2809 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr312810 ; GREEDY-LABEL: name: phi_s32_va_sbranch2811 ; GREEDY: bb.0:2812 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2813 ; GREEDY-NEXT: liveins: $agpr0, $vgpr0, $sgpr22814 ; GREEDY-NEXT: {{ $}}2815 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr02816 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:agpr(s32) = COPY $agpr02817 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22818 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02819 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2820 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2821 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2822 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12823 ; GREEDY-NEXT: G_BR %bb.22824 ; GREEDY-NEXT: {{ $}}2825 ; GREEDY-NEXT: bb.1:2826 ; GREEDY-NEXT: successors: %bb.2(0x80000000)2827 ; GREEDY-NEXT: {{ $}}2828 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:agpr(s32) = COPY [[COPY1]](s32)2829 ; GREEDY-NEXT: G_BR %bb.22830 ; GREEDY-NEXT: {{ $}}2831 ; GREEDY-NEXT: bb.2:2832 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.12833 ; GREEDY-NEXT: $agpr0 = COPY [[PHI]](s32)2834 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr312835 bb.0:2836 successors: %bb.1, %bb.22837 liveins: $agpr0, $vgpr0, $sgpr22838 2839 %0:_(s32) = COPY $vgpr02840 %1:_(s32) = COPY $agpr02841 %2:_(s32) = COPY $sgpr22842 %3:_(s32) = G_CONSTANT i32 02843 %4:_(s1) = G_ICMP intpred(eq), %2, %32844 G_BRCOND %4, %bb.12845 G_BR %bb.22846 2847 bb.1:2848 successors: %bb.22849 2850 %5:_(s32) = COPY %12851 G_BR %bb.22852 2853 bb.2:2854 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.12855 $agpr0 = COPY %62856 S_SETPC_B64 undef $sgpr30_sgpr312857 2858...2859 2860---2861name: phi_s32_as_sbranch2862legalized: true2863tracksRegLiveness: true2864 2865body: |2866 ; FAST-LABEL: name: phi_s32_as_sbranch2867 ; FAST: bb.0:2868 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2869 ; FAST-NEXT: liveins: $agpr0, $sgpr0, $sgpr22870 ; FAST-NEXT: {{ $}}2871 ; FAST-NEXT: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr02872 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr02873 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22874 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02875 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2876 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2877 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2878 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12879 ; FAST-NEXT: G_BR %bb.22880 ; FAST-NEXT: {{ $}}2881 ; FAST-NEXT: bb.1:2882 ; FAST-NEXT: successors: %bb.2(0x80000000)2883 ; FAST-NEXT: {{ $}}2884 ; FAST-NEXT: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY [[COPY1]](s32)2885 ; FAST-NEXT: G_BR %bb.22886 ; FAST-NEXT: {{ $}}2887 ; FAST-NEXT: bb.2:2888 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.12889 ; FAST-NEXT: $agpr0 = COPY [[PHI]](s32)2890 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr312891 ; GREEDY-LABEL: name: phi_s32_as_sbranch2892 ; GREEDY: bb.0:2893 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2894 ; GREEDY-NEXT: liveins: $agpr0, $sgpr0, $sgpr22895 ; GREEDY-NEXT: {{ $}}2896 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:agpr(s32) = COPY $agpr02897 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr02898 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22899 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02900 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2901 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2902 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2903 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12904 ; GREEDY-NEXT: G_BR %bb.22905 ; GREEDY-NEXT: {{ $}}2906 ; GREEDY-NEXT: bb.1:2907 ; GREEDY-NEXT: successors: %bb.2(0x80000000)2908 ; GREEDY-NEXT: {{ $}}2909 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY [[COPY1]](s32)2910 ; GREEDY-NEXT: G_BR %bb.22911 ; GREEDY-NEXT: {{ $}}2912 ; GREEDY-NEXT: bb.2:2913 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.12914 ; GREEDY-NEXT: $agpr0 = COPY [[PHI]](s32)2915 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr312916 bb.0:2917 successors: %bb.1, %bb.22918 liveins: $agpr0, $sgpr0, $sgpr22919 2920 %0:_(s32) = COPY $agpr02921 %1:_(s32) = COPY $sgpr02922 %2:_(s32) = COPY $sgpr22923 %3:_(s32) = G_CONSTANT i32 02924 %4:_(s1) = G_ICMP intpred(eq), %2, %32925 G_BRCOND %4, %bb.12926 G_BR %bb.22927 2928 bb.1:2929 successors: %bb.22930 2931 %5:_(s32) = COPY %12932 G_BR %bb.22933 2934 bb.2:2935 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.12936 $agpr0 = COPY %62937 S_SETPC_B64 undef $sgpr30_sgpr312938 2939...2940 2941---2942name: phi_s32_sa_sbranch2943legalized: true2944tracksRegLiveness: true2945 2946body: |2947 ; FAST-LABEL: name: phi_s32_sa_sbranch2948 ; FAST: bb.0:2949 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2950 ; FAST-NEXT: liveins: $agpr0, $sgpr0, $sgpr22951 ; FAST-NEXT: {{ $}}2952 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr02953 ; FAST-NEXT: [[COPY1:%[0-9]+]]:agpr(s32) = COPY $agpr02954 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22955 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02956 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2957 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2958 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2959 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12960 ; FAST-NEXT: G_BR %bb.22961 ; FAST-NEXT: {{ $}}2962 ; FAST-NEXT: bb.1:2963 ; FAST-NEXT: successors: %bb.2(0x80000000)2964 ; FAST-NEXT: {{ $}}2965 ; FAST-NEXT: [[COPY3:%[0-9]+]]:agpr(s32) = COPY [[COPY1]](s32)2966 ; FAST-NEXT: G_BR %bb.22967 ; FAST-NEXT: {{ $}}2968 ; FAST-NEXT: bb.2:2969 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.12970 ; FAST-NEXT: $agpr0 = COPY [[PHI]](s32)2971 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr312972 ; GREEDY-LABEL: name: phi_s32_sa_sbranch2973 ; GREEDY: bb.0:2974 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)2975 ; GREEDY-NEXT: liveins: $agpr0, $sgpr0, $sgpr22976 ; GREEDY-NEXT: {{ $}}2977 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr02978 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:agpr(s32) = COPY $agpr02979 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr22980 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 02981 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]2982 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)2983 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)2984 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.12985 ; GREEDY-NEXT: G_BR %bb.22986 ; GREEDY-NEXT: {{ $}}2987 ; GREEDY-NEXT: bb.1:2988 ; GREEDY-NEXT: successors: %bb.2(0x80000000)2989 ; GREEDY-NEXT: {{ $}}2990 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:agpr(s32) = COPY [[COPY1]](s32)2991 ; GREEDY-NEXT: G_BR %bb.22992 ; GREEDY-NEXT: {{ $}}2993 ; GREEDY-NEXT: bb.2:2994 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[COPY]](s32), %bb.0, [[COPY3]](s32), %bb.12995 ; GREEDY-NEXT: $agpr0 = COPY [[PHI]](s32)2996 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr312997 bb.0:2998 successors: %bb.1, %bb.22999 liveins: $agpr0, $sgpr0, $sgpr23000 3001 %0:_(s32) = COPY $sgpr03002 %1:_(s32) = COPY $agpr03003 %2:_(s32) = COPY $sgpr23004 %3:_(s32) = G_CONSTANT i32 03005 %4:_(s1) = G_ICMP intpred(eq), %2, %33006 G_BRCOND %4, %bb.13007 G_BR %bb.23008 3009 bb.1:3010 successors: %bb.23011 3012 %5:_(s32) = COPY %13013 G_BR %bb.23014 3015 bb.2:3016 %6:_(s32) = G_PHI %0, %bb.0, %5, %bb.13017 $agpr0 = COPY %63018 S_SETPC_B64 undef $sgpr30_sgpr313019 3020...3021