1758 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=regbankselect -regbankselect-fast -verify-machineinstrs -o - %s | FileCheck -check-prefix=FAST %s3# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=regbankselect -regbankselect-greedy -verify-machineinstrs -o - %s | FileCheck -check-prefix=GREEDY %s4 5---6name: phi_s1_scc_scc_sbranch7legalized: true8tracksRegLiveness: true9 10body: |11 ; FAST-LABEL: name: phi_s1_scc_scc_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), [[COPY]](s32), [[C]]21 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)22 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]23 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)24 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)25 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)26 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.127 ; FAST-NEXT: G_BR %bb.228 ; FAST-NEXT: {{ $}}29 ; FAST-NEXT: bb.1:30 ; FAST-NEXT: successors: %bb.2(0x80000000)31 ; FAST-NEXT: {{ $}}32 ; FAST-NEXT: [[ICMP2:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]33 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP2]](s32)34 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)35 ; FAST-NEXT: G_BR %bb.236 ; FAST-NEXT: {{ $}}37 ; FAST-NEXT: bb.2:38 ; FAST-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.139 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)40 ; FAST-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)41 ; FAST-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]42 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)43 ; GREEDY-LABEL: name: phi_s1_scc_scc_sbranch44 ; GREEDY: bb.0:45 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)46 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $sgpr247 ; GREEDY-NEXT: {{ $}}48 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr049 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr150 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr251 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 052 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]53 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)54 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]55 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)56 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)57 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)58 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.159 ; GREEDY-NEXT: G_BR %bb.260 ; GREEDY-NEXT: {{ $}}61 ; GREEDY-NEXT: bb.1:62 ; GREEDY-NEXT: successors: %bb.2(0x80000000)63 ; GREEDY-NEXT: {{ $}}64 ; GREEDY-NEXT: [[ICMP2:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]65 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP2]](s32)66 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)67 ; GREEDY-NEXT: G_BR %bb.268 ; GREEDY-NEXT: {{ $}}69 ; GREEDY-NEXT: bb.2:70 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.171 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)72 ; GREEDY-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)73 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]74 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)75 bb.0:76 successors: %bb.1, %bb.277 liveins: $sgpr0, $sgpr1, $sgpr278 79 %0:_(s32) = COPY $sgpr080 %1:_(s32) = COPY $sgpr181 %2:_(s32) = COPY $sgpr282 %3:_(s32) = G_CONSTANT i32 083 %4:_(s1) = G_ICMP intpred(eq), %0, %384 %5:_(s1) = G_ICMP intpred(eq), %2, %385 G_BRCOND %5, %bb.186 G_BR %bb.287 88 bb.1:89 successors: %bb.290 91 %6:_(s1) = G_ICMP intpred(eq), %1, %392 G_BR %bb.293 94 bb.2:95 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.196 %8:_(s32) = G_SELECT %7, %3, %097 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %898 99...100 101---102name: phi_s1_scc_scc_scc_sbranch103legalized: true104tracksRegLiveness: true105 106body: |107 ; FAST-LABEL: name: phi_s1_scc_scc_scc_sbranch108 ; FAST: bb.0:109 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.3(0x40000000)110 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3111 ; FAST-NEXT: {{ $}}112 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0113 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1114 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2115 ; FAST-NEXT: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY $sgpr3116 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0117 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]118 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)119 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]120 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)121 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)122 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)123 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.3124 ; FAST-NEXT: G_BR %bb.1125 ; FAST-NEXT: {{ $}}126 ; FAST-NEXT: bb.1:127 ; FAST-NEXT: successors: %bb.2(0x40000000), %bb.3(0x40000000)128 ; FAST-NEXT: {{ $}}129 ; FAST-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 99130 ; FAST-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 888131 ; FAST-NEXT: [[ICMP2:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C1]]132 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP2]](s32)133 ; FAST-NEXT: [[ICMP3:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C2]]134 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP3]](s32)135 ; FAST-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)136 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)137 ; FAST-NEXT: G_BRCOND [[ZEXT1]](s32), %bb.3138 ; FAST-NEXT: G_BR %bb.2139 ; FAST-NEXT: {{ $}}140 ; FAST-NEXT: bb.2:141 ; FAST-NEXT: successors: %bb.3(0x80000000)142 ; FAST-NEXT: {{ $}}143 ; FAST-NEXT: [[C3:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 123144 ; FAST-NEXT: [[ICMP4:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C3]]145 ; FAST-NEXT: [[TRUNC4:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP4]](s32)146 ; FAST-NEXT: [[ANYEXT2:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC4]](s1)147 ; FAST-NEXT: G_BR %bb.3148 ; FAST-NEXT: {{ $}}149 ; FAST-NEXT: bb.3:150 ; FAST-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.1, [[ANYEXT2]](s32), %bb.2151 ; FAST-NEXT: [[TRUNC5:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)152 ; FAST-NEXT: [[ZEXT2:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC5]](s1)153 ; FAST-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT2]](s32), [[COPY]], [[COPY1]]154 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)155 ; GREEDY-LABEL: name: phi_s1_scc_scc_scc_sbranch156 ; GREEDY: bb.0:157 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.3(0x40000000)158 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3159 ; GREEDY-NEXT: {{ $}}160 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0161 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1162 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2163 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:sgpr(s32) = COPY $sgpr3164 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0165 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]166 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)167 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[COPY3]]168 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)169 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)170 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)171 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.3172 ; GREEDY-NEXT: G_BR %bb.1173 ; GREEDY-NEXT: {{ $}}174 ; GREEDY-NEXT: bb.1:175 ; GREEDY-NEXT: successors: %bb.2(0x40000000), %bb.3(0x40000000)176 ; GREEDY-NEXT: {{ $}}177 ; GREEDY-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 99178 ; GREEDY-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 888179 ; GREEDY-NEXT: [[ICMP2:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C1]]180 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP2]](s32)181 ; GREEDY-NEXT: [[ICMP3:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C2]]182 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP3]](s32)183 ; GREEDY-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)184 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)185 ; GREEDY-NEXT: G_BRCOND [[ZEXT1]](s32), %bb.3186 ; GREEDY-NEXT: G_BR %bb.2187 ; GREEDY-NEXT: {{ $}}188 ; GREEDY-NEXT: bb.2:189 ; GREEDY-NEXT: successors: %bb.3(0x80000000)190 ; GREEDY-NEXT: {{ $}}191 ; GREEDY-NEXT: [[C3:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 123192 ; GREEDY-NEXT: [[ICMP4:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C3]]193 ; GREEDY-NEXT: [[TRUNC4:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP4]](s32)194 ; GREEDY-NEXT: [[ANYEXT2:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC4]](s1)195 ; GREEDY-NEXT: G_BR %bb.3196 ; GREEDY-NEXT: {{ $}}197 ; GREEDY-NEXT: bb.3:198 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.1, [[ANYEXT2]](s32), %bb.2199 ; GREEDY-NEXT: [[TRUNC5:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)200 ; GREEDY-NEXT: [[ZEXT2:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC5]](s1)201 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT2]](s32), [[COPY]], [[COPY1]]202 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)203 bb.0:204 successors: %bb.1, %bb.3205 liveins: $sgpr0, $sgpr1, $sgpr2, $sgpr3206 207 %0:_(s32) = COPY $sgpr0208 %1:_(s32) = COPY $sgpr1209 %2:_(s32) = COPY $sgpr2210 %3:_(s32) = COPY $sgpr3211 %4:_(s32) = G_CONSTANT i32 0212 %5:_(s1) = G_ICMP intpred(eq), %0, %3213 %6:_(s1) = G_ICMP intpred(eq), %2, %3214 G_BRCOND %6, %bb.3215 G_BR %bb.1216 217 bb.1:218 successors: %bb.2, %bb.3219 220 %7:_(s32) = G_CONSTANT i32 99221 %8:_(s32) = G_CONSTANT i32 888222 %9:_(s1) = G_ICMP intpred(eq), %1, %7223 %10:_(s1) = G_ICMP intpred(eq), %1, %8224 G_BRCOND %10, %bb.3225 G_BR %bb.2226 227 bb.2:228 successors: %bb.3229 230 %11:_(s32) = G_CONSTANT i32 123231 %12:_(s1) = G_ICMP intpred(eq), %2, %11232 G_BR %bb.3233 234 bb.3:235 %13:_(s1) = G_PHI %5, %bb.0, %9, %bb.1, %12, %bb.2236 %14:_(s32) = G_SELECT %13, %0, %1237 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %14238 239...240 241---242name: phi_s1_scc_vcc_sbranch243legalized: true244tracksRegLiveness: true245 246body: |247 ; FAST-LABEL: name: phi_s1_scc_vcc_sbranch248 ; FAST: bb.0:249 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)250 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $vgpr0251 ; FAST-NEXT: {{ $}}252 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0253 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0254 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1255 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0256 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]257 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)258 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]259 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)260 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)261 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)262 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1263 ; FAST-NEXT: G_BR %bb.2264 ; FAST-NEXT: {{ $}}265 ; FAST-NEXT: bb.1:266 ; FAST-NEXT: successors: %bb.2(0x80000000)267 ; FAST-NEXT: {{ $}}268 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)269 ; FAST-NEXT: [[ICMP2:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY4]]270 ; FAST-NEXT: G_BR %bb.2271 ; FAST-NEXT: {{ $}}272 ; FAST-NEXT: bb.2:273 ; FAST-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[COPY3]](s1), %bb.0, [[ICMP2]](s1), %bb.1274 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)275 ; FAST-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)276 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY6]]277 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)278 ; GREEDY-LABEL: name: phi_s1_scc_vcc_sbranch279 ; GREEDY: bb.0:280 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)281 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $vgpr0282 ; GREEDY-NEXT: {{ $}}283 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0284 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0285 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1286 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0287 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]288 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)289 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]290 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)291 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)292 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)293 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1294 ; GREEDY-NEXT: G_BR %bb.2295 ; GREEDY-NEXT: {{ $}}296 ; GREEDY-NEXT: bb.1:297 ; GREEDY-NEXT: successors: %bb.2(0x80000000)298 ; GREEDY-NEXT: {{ $}}299 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)300 ; GREEDY-NEXT: [[ICMP2:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY4]]301 ; GREEDY-NEXT: G_BR %bb.2302 ; GREEDY-NEXT: {{ $}}303 ; GREEDY-NEXT: bb.2:304 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[COPY3]](s1), %bb.0, [[ICMP2]](s1), %bb.1305 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)306 ; GREEDY-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)307 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY6]]308 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)309 bb.0:310 successors: %bb.1, %bb.2311 liveins: $sgpr0, $sgpr1, $vgpr0312 313 %0:_(s32) = COPY $sgpr0314 %1:_(s32) = COPY $vgpr0315 %2:_(s32) = COPY $sgpr1316 %3:_(s32) = G_CONSTANT i32 0317 %4:_(s1) = G_ICMP intpred(eq), %0, %3318 %5:_(s1) = G_ICMP intpred(eq), %2, %3319 G_BRCOND %5, %bb.1320 G_BR %bb.2321 322 bb.1:323 successors: %bb.2324 325 %6:_(s1) = G_ICMP intpred(eq), %1, %3326 G_BR %bb.2327 328 bb.2:329 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.1330 %8:_(s32) = G_SELECT %7, %3, %0331 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %8332 333...334 335---336name: phi_s1_vcc_scc_sbranch337legalized: true338tracksRegLiveness: true339 340body: |341 ; FAST-LABEL: name: phi_s1_vcc_scc_sbranch342 ; FAST: bb.0:343 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)344 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr1345 ; FAST-NEXT: {{ $}}346 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0347 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0348 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1349 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0350 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)351 ; FAST-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]352 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]353 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)354 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)355 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1356 ; FAST-NEXT: G_BR %bb.2357 ; FAST-NEXT: {{ $}}358 ; FAST-NEXT: bb.1:359 ; FAST-NEXT: successors: %bb.2(0x80000000)360 ; FAST-NEXT: {{ $}}361 ; FAST-NEXT: [[ICMP2:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]362 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP2]](s32)363 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC1]](s1)364 ; FAST-NEXT: G_BR %bb.2365 ; FAST-NEXT: {{ $}}366 ; FAST-NEXT: bb.2:367 ; FAST-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[ICMP]](s1), %bb.0, [[COPY4]](s1), %bb.1368 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)369 ; FAST-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)370 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY6]]371 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)372 ; GREEDY-LABEL: name: phi_s1_vcc_scc_sbranch373 ; GREEDY: bb.0:374 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)375 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr1376 ; GREEDY-NEXT: {{ $}}377 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0378 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0379 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1380 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0381 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)382 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]383 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]384 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)385 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)386 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1387 ; GREEDY-NEXT: G_BR %bb.2388 ; GREEDY-NEXT: {{ $}}389 ; GREEDY-NEXT: bb.1:390 ; GREEDY-NEXT: successors: %bb.2(0x80000000)391 ; GREEDY-NEXT: {{ $}}392 ; GREEDY-NEXT: [[ICMP2:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]393 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP2]](s32)394 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC1]](s1)395 ; GREEDY-NEXT: G_BR %bb.2396 ; GREEDY-NEXT: {{ $}}397 ; GREEDY-NEXT: bb.2:398 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[ICMP]](s1), %bb.0, [[COPY4]](s1), %bb.1399 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)400 ; GREEDY-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY1]](s32)401 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY6]]402 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)403 bb.0:404 successors: %bb.1, %bb.2405 liveins: $vgpr0, $sgpr0, $sgpr1406 407 %0:_(s32) = COPY $vgpr0408 %1:_(s32) = COPY $sgpr0409 %2:_(s32) = COPY $sgpr1410 %3:_(s32) = G_CONSTANT i32 0411 %4:_(s1) = G_ICMP intpred(eq), %0, %3412 %5:_(s1) = G_ICMP intpred(eq), %2, %3413 G_BRCOND %5, %bb.1414 G_BR %bb.2415 416 bb.1:417 successors: %bb.2418 419 %6:_(s1) = G_ICMP intpred(eq), %1, %3420 G_BR %bb.2421 422 bb.2:423 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.1424 %8:_(s32) = G_SELECT %7, %3, %1425 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %8426 427...428 429---430name: phi_s1_vcc_vcc_sbranch431legalized: true432tracksRegLiveness: true433 434body: |435 ; FAST-LABEL: name: phi_s1_vcc_vcc_sbranch436 ; FAST: bb.0:437 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)438 ; FAST-NEXT: liveins: $vgpr0, $vgpr1, $sgpr0439 ; FAST-NEXT: {{ $}}440 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0441 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1442 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr0443 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0444 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)445 ; FAST-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]446 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]447 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)448 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)449 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1450 ; FAST-NEXT: G_BR %bb.2451 ; FAST-NEXT: {{ $}}452 ; FAST-NEXT: bb.1:453 ; FAST-NEXT: successors: %bb.2(0x80000000)454 ; FAST-NEXT: {{ $}}455 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)456 ; FAST-NEXT: [[ICMP2:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY4]]457 ; FAST-NEXT: G_BR %bb.2458 ; FAST-NEXT: {{ $}}459 ; FAST-NEXT: bb.2:460 ; FAST-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[ICMP]](s1), %bb.0, [[ICMP2]](s1), %bb.1461 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)462 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY]]463 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)464 ; GREEDY-LABEL: name: phi_s1_vcc_vcc_sbranch465 ; GREEDY: bb.0:466 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)467 ; GREEDY-NEXT: liveins: $vgpr0, $vgpr1, $sgpr0468 ; GREEDY-NEXT: {{ $}}469 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0470 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1471 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr0472 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0473 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)474 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]475 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]476 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)477 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)478 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1479 ; GREEDY-NEXT: G_BR %bb.2480 ; GREEDY-NEXT: {{ $}}481 ; GREEDY-NEXT: bb.1:482 ; GREEDY-NEXT: successors: %bb.2(0x80000000)483 ; GREEDY-NEXT: {{ $}}484 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)485 ; GREEDY-NEXT: [[ICMP2:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY4]]486 ; GREEDY-NEXT: G_BR %bb.2487 ; GREEDY-NEXT: {{ $}}488 ; GREEDY-NEXT: bb.2:489 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[ICMP]](s1), %bb.0, [[ICMP2]](s1), %bb.1490 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)491 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY]]492 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)493 bb.0:494 successors: %bb.1, %bb.2495 liveins: $vgpr0, $vgpr1, $sgpr0496 497 %0:_(s32) = COPY $vgpr0498 %1:_(s32) = COPY $vgpr1499 %2:_(s32) = COPY $sgpr0500 %3:_(s32) = G_CONSTANT i32 0501 %4:_(s1) = G_ICMP intpred(eq), %0, %3502 %5:_(s1) = G_ICMP intpred(eq), %2, %3503 G_BRCOND %5, %bb.1504 G_BR %bb.2505 506 bb.1:507 successors: %bb.2508 509 %6:_(s1) = G_ICMP intpred(eq), %1, %3510 G_BR %bb.2511 512 bb.2:513 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.1514 %8:_(s32) = G_SELECT %7, %3, %0515 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %8516 517...518 519---520name: phi_s1_s_scc_sbranch521legalized: true522tracksRegLiveness: true523 524body: |525 ; FAST-LABEL: name: phi_s1_s_scc_sbranch526 ; FAST: bb.0:527 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)528 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $sgpr2529 ; FAST-NEXT: {{ $}}530 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0531 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1532 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2533 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0534 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)535 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]536 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)537 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)538 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)539 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1540 ; FAST-NEXT: G_BR %bb.2541 ; FAST-NEXT: {{ $}}542 ; FAST-NEXT: bb.1:543 ; FAST-NEXT: successors: %bb.2(0x80000000)544 ; FAST-NEXT: {{ $}}545 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]546 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)547 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)548 ; FAST-NEXT: G_BR %bb.2549 ; FAST-NEXT: {{ $}}550 ; FAST-NEXT: bb.2:551 ; FAST-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.1552 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)553 ; FAST-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)554 ; FAST-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]555 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)556 ; GREEDY-LABEL: name: phi_s1_s_scc_sbranch557 ; GREEDY: bb.0:558 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)559 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $sgpr2560 ; GREEDY-NEXT: {{ $}}561 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0562 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1563 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2564 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0565 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)566 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]567 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)568 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)569 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)570 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1571 ; GREEDY-NEXT: G_BR %bb.2572 ; GREEDY-NEXT: {{ $}}573 ; GREEDY-NEXT: bb.1:574 ; GREEDY-NEXT: successors: %bb.2(0x80000000)575 ; GREEDY-NEXT: {{ $}}576 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]577 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)578 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)579 ; GREEDY-NEXT: G_BR %bb.2580 ; GREEDY-NEXT: {{ $}}581 ; GREEDY-NEXT: bb.2:582 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.1583 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)584 ; GREEDY-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)585 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]586 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)587 bb.0:588 successors: %bb.1, %bb.2589 liveins: $sgpr0, $sgpr1, $sgpr2590 591 %0:_(s32) = COPY $sgpr0592 %1:_(s32) = COPY $sgpr1593 %2:_(s32) = COPY $sgpr2594 %3:_(s32) = G_CONSTANT i32 0595 %4:_(s1) = G_TRUNC %0596 %5:_(s1) = G_ICMP intpred(eq), %2, %3597 G_BRCOND %5, %bb.1598 G_BR %bb.2599 600 bb.1:601 successors: %bb.2602 603 %6:_(s1) = G_ICMP intpred(eq), %1, %3604 G_BR %bb.2605 606 bb.2:607 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.1608 %8:_(s32) = G_SELECT %7, %3, %0609 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %8610 611...612 613---614name: phi_s1_scc_s_sbranch615legalized: true616tracksRegLiveness: true617 618body: |619 ; FAST-LABEL: name: phi_s1_scc_s_sbranch620 ; FAST: bb.0:621 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)622 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $sgpr2623 ; FAST-NEXT: {{ $}}624 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0625 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1626 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2627 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0628 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]629 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)630 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]631 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)632 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)633 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)634 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1635 ; FAST-NEXT: G_BR %bb.2636 ; FAST-NEXT: {{ $}}637 ; FAST-NEXT: bb.1:638 ; FAST-NEXT: successors: %bb.2(0x80000000)639 ; FAST-NEXT: {{ $}}640 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)641 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)642 ; FAST-NEXT: G_BR %bb.2643 ; FAST-NEXT: {{ $}}644 ; FAST-NEXT: bb.2:645 ; FAST-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.1646 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)647 ; FAST-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)648 ; FAST-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]649 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)650 ; GREEDY-LABEL: name: phi_s1_scc_s_sbranch651 ; GREEDY: bb.0:652 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)653 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $sgpr2654 ; GREEDY-NEXT: {{ $}}655 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0656 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr1657 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2658 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0659 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]660 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)661 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]662 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)663 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)664 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)665 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1666 ; GREEDY-NEXT: G_BR %bb.2667 ; GREEDY-NEXT: {{ $}}668 ; GREEDY-NEXT: bb.1:669 ; GREEDY-NEXT: successors: %bb.2(0x80000000)670 ; GREEDY-NEXT: {{ $}}671 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)672 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)673 ; GREEDY-NEXT: G_BR %bb.2674 ; GREEDY-NEXT: {{ $}}675 ; GREEDY-NEXT: bb.2:676 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.1677 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)678 ; GREEDY-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)679 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]680 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)681 bb.0:682 successors: %bb.1, %bb.2683 liveins: $sgpr0, $sgpr1, $sgpr2684 685 %0:_(s32) = COPY $sgpr0686 %1:_(s32) = COPY $sgpr1687 %2:_(s32) = COPY $sgpr2688 %3:_(s32) = G_CONSTANT i32 0689 %4:_(s1) = G_ICMP intpred(eq), %0, %3690 %5:_(s1) = G_ICMP intpred(eq), %2, %3691 G_BRCOND %5, %bb.1692 G_BR %bb.2693 694 bb.1:695 successors: %bb.2696 697 %6:_(s1) = G_TRUNC %1698 G_BR %bb.2699 700 bb.2:701 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.1702 %8:_(s32) = G_SELECT %7, %3, %0703 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %8704 705...706 707---708name: phi_s1_scc_v_sbranch709legalized: true710tracksRegLiveness: true711 712body: |713 ; FAST-LABEL: name: phi_s1_scc_v_sbranch714 ; FAST: bb.0:715 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)716 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr1, $sgpr2717 ; FAST-NEXT: {{ $}}718 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0719 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0720 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2721 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0722 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]723 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)724 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]725 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)726 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)727 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)728 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1729 ; FAST-NEXT: G_BR %bb.2730 ; FAST-NEXT: {{ $}}731 ; FAST-NEXT: bb.1:732 ; FAST-NEXT: successors: %bb.2(0x80000000)733 ; FAST-NEXT: {{ $}}734 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)735 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)736 ; FAST-NEXT: G_BR %bb.2737 ; FAST-NEXT: {{ $}}738 ; FAST-NEXT: bb.2:739 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.1740 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)741 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)742 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)743 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)744 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY5]]745 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)746 ; GREEDY-LABEL: name: phi_s1_scc_v_sbranch747 ; GREEDY: bb.0:748 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)749 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr1, $sgpr2750 ; GREEDY-NEXT: {{ $}}751 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr0752 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr0753 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr2754 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0755 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]756 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)757 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]758 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)759 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)760 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)761 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1762 ; GREEDY-NEXT: G_BR %bb.2763 ; GREEDY-NEXT: {{ $}}764 ; GREEDY-NEXT: bb.1:765 ; GREEDY-NEXT: successors: %bb.2(0x80000000)766 ; GREEDY-NEXT: {{ $}}767 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)768 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)769 ; GREEDY-NEXT: G_BR %bb.2770 ; GREEDY-NEXT: {{ $}}771 ; GREEDY-NEXT: bb.2:772 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.1773 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)774 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)775 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)776 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)777 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY5]]778 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)779 bb.0:780 successors: %bb.1, %bb.2781 liveins: $vgpr0, $sgpr0, $sgpr1, $sgpr2782 783 %0:_(s32) = COPY $sgpr0784 %1:_(s32) = COPY $vgpr0785 %2:_(s32) = COPY $sgpr2786 %3:_(s32) = G_CONSTANT i32 0787 %4:_(s1) = G_ICMP intpred(eq), %0, %3788 %5:_(s1) = G_ICMP intpred(eq), %2, %3789 G_BRCOND %5, %bb.1790 G_BR %bb.2791 792 bb.1:793 successors: %bb.2794 795 %6:_(s1) = G_TRUNC %1796 G_BR %bb.2797 798 bb.2:799 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.1800 %8:_(s32) = G_SELECT %7, %3, %0801 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %8802 803...804 805---806name: phi_s1_v_scc_sbranch807legalized: true808tracksRegLiveness: true809 810body: |811 ; FAST-LABEL: name: phi_s1_v_scc_sbranch812 ; FAST: bb.0:813 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)814 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr1815 ; FAST-NEXT: {{ $}}816 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0817 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0818 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1819 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0820 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)821 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]822 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)823 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)824 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)825 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1826 ; FAST-NEXT: G_BR %bb.2827 ; FAST-NEXT: {{ $}}828 ; FAST-NEXT: bb.1:829 ; FAST-NEXT: successors: %bb.2(0x80000000)830 ; FAST-NEXT: {{ $}}831 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]832 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)833 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)834 ; FAST-NEXT: G_BR %bb.2835 ; FAST-NEXT: {{ $}}836 ; FAST-NEXT: bb.2:837 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.1838 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)839 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)840 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)841 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY]]842 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)843 ; GREEDY-LABEL: name: phi_s1_v_scc_sbranch844 ; GREEDY: bb.0:845 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)846 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr1847 ; GREEDY-NEXT: {{ $}}848 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0849 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0850 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1851 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0852 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)853 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]854 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)855 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)856 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)857 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1858 ; GREEDY-NEXT: G_BR %bb.2859 ; GREEDY-NEXT: {{ $}}860 ; GREEDY-NEXT: bb.1:861 ; GREEDY-NEXT: successors: %bb.2(0x80000000)862 ; GREEDY-NEXT: {{ $}}863 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]864 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)865 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)866 ; GREEDY-NEXT: G_BR %bb.2867 ; GREEDY-NEXT: {{ $}}868 ; GREEDY-NEXT: bb.2:869 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.1870 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)871 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)872 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)873 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY]]874 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)875 bb.0:876 successors: %bb.1, %bb.2877 liveins: $vgpr0, $sgpr0, $sgpr1878 879 %0:_(s32) = COPY $vgpr0880 %1:_(s32) = COPY $sgpr0881 %2:_(s32) = COPY $sgpr1882 %3:_(s32) = G_CONSTANT i32 0883 %4:_(s1) = G_TRUNC %0884 %5:_(s1) = G_ICMP intpred(eq), %2, %3885 G_BRCOND %5, %bb.1886 G_BR %bb.2887 888 bb.1:889 successors: %bb.2890 891 %6:_(s1) = G_ICMP intpred(eq), %1, %3892 G_BR %bb.2893 894 bb.2:895 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.1896 %8:_(s32) = G_SELECT %7, %3, %0897 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %8898 899...900 901---902name: phi_s1_vcc_s_sbranch903legalized: true904tracksRegLiveness: true905 906body: |907 ; FAST-LABEL: name: phi_s1_vcc_s_sbranch908 ; FAST: bb.0:909 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)910 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr1911 ; FAST-NEXT: {{ $}}912 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0913 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0914 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1915 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0916 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)917 ; FAST-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]918 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]919 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)920 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)921 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1922 ; FAST-NEXT: G_BR %bb.2923 ; FAST-NEXT: {{ $}}924 ; FAST-NEXT: bb.1:925 ; FAST-NEXT: successors: %bb.2(0x80000000)926 ; FAST-NEXT: {{ $}}927 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)928 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC1]](s1)929 ; FAST-NEXT: G_BR %bb.2930 ; FAST-NEXT: {{ $}}931 ; FAST-NEXT: bb.2:932 ; FAST-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[ICMP]](s1), %bb.0, [[COPY4]](s1), %bb.1933 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)934 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY]]935 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)936 ; GREEDY-LABEL: name: phi_s1_vcc_s_sbranch937 ; GREEDY: bb.0:938 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)939 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr1940 ; GREEDY-NEXT: {{ $}}941 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0942 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr0943 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr1944 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 0945 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)946 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]947 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]948 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)949 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)950 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.1951 ; GREEDY-NEXT: G_BR %bb.2952 ; GREEDY-NEXT: {{ $}}953 ; GREEDY-NEXT: bb.1:954 ; GREEDY-NEXT: successors: %bb.2(0x80000000)955 ; GREEDY-NEXT: {{ $}}956 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)957 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC1]](s1)958 ; GREEDY-NEXT: G_BR %bb.2959 ; GREEDY-NEXT: {{ $}}960 ; GREEDY-NEXT: bb.2:961 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[ICMP]](s1), %bb.0, [[COPY4]](s1), %bb.1962 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)963 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY]]964 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)965 bb.0:966 successors: %bb.1, %bb.2967 liveins: $vgpr0, $sgpr0, $sgpr1968 969 %0:_(s32) = COPY $vgpr0970 %1:_(s32) = COPY $sgpr0971 %2:_(s32) = COPY $sgpr1972 %3:_(s32) = G_CONSTANT i32 0973 %4:_(s1) = G_ICMP intpred(eq), %0, %3974 %5:_(s1) = G_ICMP intpred(eq), %2, %3975 G_BRCOND %5, %bb.1976 G_BR %bb.2977 978 bb.1:979 successors: %bb.2980 981 %6:_(s1) = G_TRUNC %1982 G_BR %bb.2983 984 bb.2:985 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.1986 %8:_(s32) = G_SELECT %7, %3, %0987 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %8988 989...990 991---992name: phi_s1_s_vcc_sbranch993legalized: true994tracksRegLiveness: true995 996body: |997 ; FAST-LABEL: name: phi_s1_s_vcc_sbranch998 ; FAST: bb.0:999 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1000 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11001 ; FAST-NEXT: {{ $}}1002 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01003 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr01004 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11005 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01006 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)1007 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1008 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1009 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1010 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)1011 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11012 ; FAST-NEXT: G_BR %bb.21013 ; FAST-NEXT: {{ $}}1014 ; FAST-NEXT: bb.1:1015 ; FAST-NEXT: successors: %bb.2(0x80000000)1016 ; FAST-NEXT: {{ $}}1017 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1018 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY4]]1019 ; FAST-NEXT: G_BR %bb.21020 ; FAST-NEXT: {{ $}}1021 ; FAST-NEXT: bb.2:1022 ; FAST-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[COPY3]](s1), %bb.0, [[ICMP1]](s1), %bb.11023 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1024 ; FAST-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)1025 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY6]]1026 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1027 ; GREEDY-LABEL: name: phi_s1_s_vcc_sbranch1028 ; GREEDY: bb.0:1029 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1030 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11031 ; GREEDY-NEXT: {{ $}}1032 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01033 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr01034 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11035 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01036 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)1037 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1038 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1039 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1040 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)1041 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11042 ; GREEDY-NEXT: G_BR %bb.21043 ; GREEDY-NEXT: {{ $}}1044 ; GREEDY-NEXT: bb.1:1045 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1046 ; GREEDY-NEXT: {{ $}}1047 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1048 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY4]]1049 ; GREEDY-NEXT: G_BR %bb.21050 ; GREEDY-NEXT: {{ $}}1051 ; GREEDY-NEXT: bb.2:1052 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[COPY3]](s1), %bb.0, [[ICMP1]](s1), %bb.11053 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1054 ; GREEDY-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)1055 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY6]]1056 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1057 bb.0:1058 successors: %bb.1, %bb.21059 liveins: $vgpr0, $sgpr0, $sgpr11060 1061 %0:_(s32) = COPY $sgpr01062 %1:_(s32) = COPY $vgpr01063 %2:_(s32) = COPY $sgpr11064 %3:_(s32) = G_CONSTANT i32 01065 %4:_(s1) = G_TRUNC %01066 %5:_(s1) = G_ICMP intpred(eq), %2, %31067 G_BRCOND %5, %bb.11068 G_BR %bb.21069 1070 bb.1:1071 successors: %bb.21072 1073 %6:_(s1) = G_ICMP intpred(eq), %1, %31074 G_BR %bb.21075 1076 bb.2:1077 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11078 %8:_(s32) = G_SELECT %7, %3, %01079 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81080 1081...1082 1083---1084name: phi_s1_vcc_v_sbranch1085legalized: true1086tracksRegLiveness: true1087 1088body: |1089 ; FAST-LABEL: name: phi_s1_vcc_v_sbranch1090 ; FAST: bb.0:1091 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1092 ; FAST-NEXT: liveins: $vgpr0, $vgpr1, $sgpr01093 ; FAST-NEXT: {{ $}}1094 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01095 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr11096 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr01097 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01098 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1099 ; FAST-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]1100 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1101 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1102 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)1103 ; FAST-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 11104 ; FAST-NEXT: [[C2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 01105 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[C1]], [[C2]]1106 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11107 ; FAST-NEXT: G_BR %bb.21108 ; FAST-NEXT: {{ $}}1109 ; FAST-NEXT: bb.1:1110 ; FAST-NEXT: successors: %bb.2(0x80000000)1111 ; FAST-NEXT: {{ $}}1112 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)1113 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC1]](s1)1114 ; FAST-NEXT: G_BR %bb.21115 ; FAST-NEXT: {{ $}}1116 ; FAST-NEXT: bb.2:1117 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[SELECT]](s32), %bb.0, [[ANYEXT]](s32), %bb.11118 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1119 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC2]](s1)1120 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1121 ; FAST-NEXT: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY4]](s1), [[COPY5]], [[COPY]]1122 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT1]](s32)1123 ; GREEDY-LABEL: name: phi_s1_vcc_v_sbranch1124 ; GREEDY: bb.0:1125 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1126 ; GREEDY-NEXT: liveins: $vgpr0, $vgpr1, $sgpr01127 ; GREEDY-NEXT: {{ $}}1128 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01129 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr11130 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr01131 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01132 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1133 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY]](s32), [[COPY3]]1134 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1135 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1136 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC]](s1)1137 ; GREEDY-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 11138 ; GREEDY-NEXT: [[C2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 01139 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP]](s1), [[C1]], [[C2]]1140 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11141 ; GREEDY-NEXT: G_BR %bb.21142 ; GREEDY-NEXT: {{ $}}1143 ; GREEDY-NEXT: bb.1:1144 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1145 ; GREEDY-NEXT: {{ $}}1146 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)1147 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC1]](s1)1148 ; GREEDY-NEXT: G_BR %bb.21149 ; GREEDY-NEXT: {{ $}}1150 ; GREEDY-NEXT: bb.2:1151 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[SELECT]](s32), %bb.0, [[ANYEXT]](s32), %bb.11152 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1153 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC2]](s1)1154 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1155 ; GREEDY-NEXT: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY4]](s1), [[COPY5]], [[COPY]]1156 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT1]](s32)1157 bb.0:1158 successors: %bb.1, %bb.21159 liveins: $vgpr0, $vgpr1, $sgpr01160 1161 %0:_(s32) = COPY $vgpr01162 %1:_(s32) = COPY $vgpr11163 %2:_(s32) = COPY $sgpr01164 %3:_(s32) = G_CONSTANT i32 01165 %4:_(s1) = G_ICMP intpred(eq), %0, %31166 %5:_(s1) = G_ICMP intpred(eq), %2, %31167 G_BRCOND %5, %bb.11168 G_BR %bb.21169 1170 bb.1:1171 successors: %bb.21172 1173 %6:_(s1) = G_TRUNC %11174 G_BR %bb.21175 1176 bb.2:1177 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11178 %8:_(s32) = G_SELECT %7, %3, %01179 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81180 1181...1182 1183---1184name: phi_s1_v_vcc_sbranch1185legalized: true1186tracksRegLiveness: true1187 1188body: |1189 ; FAST-LABEL: name: phi_s1_v_vcc_sbranch1190 ; FAST: bb.0:1191 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1192 ; FAST-NEXT: liveins: $vgpr0, $vgpr1, $sgpr01193 ; FAST-NEXT: {{ $}}1194 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01195 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr11196 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr01197 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01198 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)1199 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1200 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1201 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1202 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1203 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11204 ; FAST-NEXT: G_BR %bb.21205 ; FAST-NEXT: {{ $}}1206 ; FAST-NEXT: bb.1:1207 ; FAST-NEXT: successors: %bb.2(0x80000000)1208 ; FAST-NEXT: {{ $}}1209 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1210 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]1211 ; FAST-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 11212 ; FAST-NEXT: [[C2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 01213 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP1]](s1), [[C1]], [[C2]]1214 ; FAST-NEXT: G_BR %bb.21215 ; FAST-NEXT: {{ $}}1216 ; FAST-NEXT: bb.2:1217 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[SELECT]](s32), %bb.11218 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1219 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC2]](s1)1220 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1221 ; FAST-NEXT: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY4]](s1), [[COPY5]], [[COPY]]1222 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT1]](s32)1223 ; GREEDY-LABEL: name: phi_s1_v_vcc_sbranch1224 ; GREEDY: bb.0:1225 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1226 ; GREEDY-NEXT: liveins: $vgpr0, $vgpr1, $sgpr01227 ; GREEDY-NEXT: {{ $}}1228 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01229 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr11230 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr01231 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01232 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)1233 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1234 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1235 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1236 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1237 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11238 ; GREEDY-NEXT: G_BR %bb.21239 ; GREEDY-NEXT: {{ $}}1240 ; GREEDY-NEXT: bb.1:1241 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1242 ; GREEDY-NEXT: {{ $}}1243 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1244 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:vcc(s1) = G_ICMP intpred(eq), [[COPY1]](s32), [[COPY3]]1245 ; GREEDY-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 11246 ; GREEDY-NEXT: [[C2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 01247 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[ICMP1]](s1), [[C1]], [[C2]]1248 ; GREEDY-NEXT: G_BR %bb.21249 ; GREEDY-NEXT: {{ $}}1250 ; GREEDY-NEXT: bb.2:1251 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[SELECT]](s32), %bb.11252 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1253 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC2]](s1)1254 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1255 ; GREEDY-NEXT: [[SELECT1:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY4]](s1), [[COPY5]], [[COPY]]1256 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT1]](s32)1257 bb.0:1258 successors: %bb.1, %bb.21259 liveins: $vgpr0, $vgpr1, $sgpr01260 1261 %0:_(s32) = COPY $vgpr01262 %1:_(s32) = COPY $vgpr11263 %2:_(s32) = COPY $sgpr01264 %3:_(s32) = G_CONSTANT i32 01265 %4:_(s1) = G_TRUNC %01266 %5:_(s1) = G_ICMP intpred(eq), %2, %31267 G_BRCOND %5, %bb.11268 G_BR %bb.21269 1270 bb.1:1271 successors: %bb.21272 1273 %6:_(s1) = G_ICMP intpred(eq), %1, %31274 G_BR %bb.21275 1276 bb.2:1277 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11278 %8:_(s32) = G_SELECT %7, %3, %01279 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81280 1281...1282 1283---1284name: phi_s1_v_s_sbranch1285legalized: true1286tracksRegLiveness: true1287 1288body: |1289 ; FAST-LABEL: name: phi_s1_v_s_sbranch1290 ; FAST: bb.0:1291 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1292 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11293 ; FAST-NEXT: {{ $}}1294 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01295 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr01296 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11297 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01298 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)1299 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1300 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1301 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1302 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1303 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11304 ; FAST-NEXT: G_BR %bb.21305 ; FAST-NEXT: {{ $}}1306 ; FAST-NEXT: bb.1:1307 ; FAST-NEXT: successors: %bb.2(0x80000000)1308 ; FAST-NEXT: {{ $}}1309 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)1310 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1311 ; FAST-NEXT: G_BR %bb.21312 ; FAST-NEXT: {{ $}}1313 ; FAST-NEXT: bb.2:1314 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11315 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1316 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)1317 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1318 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY]]1319 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1320 ; GREEDY-LABEL: name: phi_s1_v_s_sbranch1321 ; GREEDY: bb.0:1322 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1323 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11324 ; GREEDY-NEXT: {{ $}}1325 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01326 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr01327 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11328 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01329 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)1330 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1331 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1332 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1333 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1334 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11335 ; GREEDY-NEXT: G_BR %bb.21336 ; GREEDY-NEXT: {{ $}}1337 ; GREEDY-NEXT: bb.1:1338 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1339 ; GREEDY-NEXT: {{ $}}1340 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)1341 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1342 ; GREEDY-NEXT: G_BR %bb.21343 ; GREEDY-NEXT: {{ $}}1344 ; GREEDY-NEXT: bb.2:1345 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11346 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1347 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)1348 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1349 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY]]1350 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1351 bb.0:1352 successors: %bb.1, %bb.21353 liveins: $vgpr0, $sgpr0, $sgpr11354 1355 %0:_(s32) = COPY $vgpr01356 %1:_(s32) = COPY $sgpr01357 %2:_(s32) = COPY $sgpr11358 %3:_(s32) = G_CONSTANT i32 01359 %4:_(s1) = G_TRUNC %01360 %5:_(s1) = G_ICMP intpred(eq), %2, %31361 G_BRCOND %5, %bb.11362 G_BR %bb.21363 1364 bb.1:1365 successors: %bb.21366 1367 %6:_(s1) = G_TRUNC %11368 G_BR %bb.21369 1370 bb.2:1371 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11372 %8:_(s32) = G_SELECT %7, %3, %01373 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81374 1375...1376 1377---1378name: phi_s1_s_v_sbranch1379legalized: true1380tracksRegLiveness: true1381 1382body: |1383 ; FAST-LABEL: name: phi_s1_s_v_sbranch1384 ; FAST: bb.0:1385 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1386 ; FAST-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11387 ; FAST-NEXT: {{ $}}1388 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01389 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr01390 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11391 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01392 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)1393 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1394 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1395 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1396 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1397 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11398 ; FAST-NEXT: G_BR %bb.21399 ; FAST-NEXT: {{ $}}1400 ; FAST-NEXT: bb.1:1401 ; FAST-NEXT: successors: %bb.2(0x80000000)1402 ; FAST-NEXT: {{ $}}1403 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)1404 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1405 ; FAST-NEXT: G_BR %bb.21406 ; FAST-NEXT: {{ $}}1407 ; FAST-NEXT: bb.2:1408 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11409 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1410 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)1411 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1412 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)1413 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY5]]1414 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1415 ; GREEDY-LABEL: name: phi_s1_s_v_sbranch1416 ; GREEDY: bb.0:1417 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1418 ; GREEDY-NEXT: liveins: $vgpr0, $sgpr0, $sgpr11419 ; GREEDY-NEXT: {{ $}}1420 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01421 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr01422 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr11423 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01424 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)1425 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1426 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1427 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1428 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1429 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11430 ; GREEDY-NEXT: G_BR %bb.21431 ; GREEDY-NEXT: {{ $}}1432 ; GREEDY-NEXT: bb.1:1433 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1434 ; GREEDY-NEXT: {{ $}}1435 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)1436 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1437 ; GREEDY-NEXT: G_BR %bb.21438 ; GREEDY-NEXT: {{ $}}1439 ; GREEDY-NEXT: bb.2:1440 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11441 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1442 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)1443 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1444 ; GREEDY-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[COPY]](s32)1445 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY5]]1446 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1447 bb.0:1448 successors: %bb.1, %bb.21449 liveins: $vgpr0, $sgpr0, $sgpr11450 1451 %0:_(s32) = COPY $sgpr01452 %1:_(s32) = COPY $vgpr01453 %2:_(s32) = COPY $sgpr11454 %3:_(s32) = G_CONSTANT i32 01455 %4:_(s1) = G_TRUNC %01456 %5:_(s1) = G_ICMP intpred(eq), %2, %31457 G_BRCOND %5, %bb.11458 G_BR %bb.21459 1460 bb.1:1461 successors: %bb.21462 1463 %6:_(s1) = G_TRUNC %11464 G_BR %bb.21465 1466 bb.2:1467 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11468 %8:_(s32) = G_SELECT %7, %3, %01469 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81470 1471...1472 1473---1474name: phi_s1_v_v_sbranch1475legalized: true1476tracksRegLiveness: true1477 1478body: |1479 ; FAST-LABEL: name: phi_s1_v_v_sbranch1480 ; FAST: bb.0:1481 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1482 ; FAST-NEXT: liveins: $vgpr0, $vgpr1, $sgpr01483 ; FAST-NEXT: {{ $}}1484 ; FAST-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01485 ; FAST-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr11486 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr01487 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01488 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)1489 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1490 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1491 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1492 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1493 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11494 ; FAST-NEXT: G_BR %bb.21495 ; FAST-NEXT: {{ $}}1496 ; FAST-NEXT: bb.1:1497 ; FAST-NEXT: successors: %bb.2(0x80000000)1498 ; FAST-NEXT: {{ $}}1499 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)1500 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1501 ; FAST-NEXT: G_BR %bb.21502 ; FAST-NEXT: {{ $}}1503 ; FAST-NEXT: bb.2:1504 ; FAST-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11505 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1506 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)1507 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1508 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY]]1509 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1510 ; GREEDY-LABEL: name: phi_s1_v_v_sbranch1511 ; GREEDY: bb.0:1512 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1513 ; GREEDY-NEXT: liveins: $vgpr0, $vgpr1, $sgpr01514 ; GREEDY-NEXT: {{ $}}1515 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr01516 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr11517 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr01518 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01519 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY]](s32)1520 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1521 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1522 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1523 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC]](s1)1524 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11525 ; GREEDY-NEXT: G_BR %bb.21526 ; GREEDY-NEXT: {{ $}}1527 ; GREEDY-NEXT: bb.1:1528 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1529 ; GREEDY-NEXT: {{ $}}1530 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:vgpr(s1) = G_TRUNC [[COPY1]](s32)1531 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:vgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1532 ; GREEDY-NEXT: G_BR %bb.21533 ; GREEDY-NEXT: {{ $}}1534 ; GREEDY-NEXT: bb.2:1535 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11536 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:vgpr(s1) = G_TRUNC [[PHI]](s32)1537 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC3]](s1)1538 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vgpr(s32) = COPY [[C]](s32)1539 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[COPY3]](s1), [[COPY4]], [[COPY]]1540 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1541 bb.0:1542 successors: %bb.1, %bb.21543 liveins: $vgpr0, $vgpr1, $sgpr01544 1545 %0:_(s32) = COPY $vgpr01546 %1:_(s32) = COPY $vgpr11547 %2:_(s32) = COPY $sgpr01548 %3:_(s32) = G_CONSTANT i32 01549 %4:_(s1) = G_TRUNC %01550 %5:_(s1) = G_ICMP intpred(eq), %2, %31551 G_BRCOND %5, %bb.11552 G_BR %bb.21553 1554 bb.1:1555 successors: %bb.21556 1557 %6:_(s1) = G_TRUNC %11558 G_BR %bb.21559 1560 bb.2:1561 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11562 %8:_(s32) = G_SELECT %7, %3, %01563 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81564 1565...1566 1567---1568name: phi_s1_s_s_sbranch1569legalized: true1570tracksRegLiveness: true1571 1572body: |1573 ; FAST-LABEL: name: phi_s1_s_s_sbranch1574 ; FAST: bb.0:1575 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1576 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $sgpr21577 ; FAST-NEXT: {{ $}}1578 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01579 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr11580 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr21581 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01582 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)1583 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1584 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1585 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1586 ; FAST-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)1587 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11588 ; FAST-NEXT: G_BR %bb.21589 ; FAST-NEXT: {{ $}}1590 ; FAST-NEXT: bb.1:1591 ; FAST-NEXT: successors: %bb.2(0x80000000)1592 ; FAST-NEXT: {{ $}}1593 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)1594 ; FAST-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1595 ; FAST-NEXT: G_BR %bb.21596 ; FAST-NEXT: {{ $}}1597 ; FAST-NEXT: bb.2:1598 ; FAST-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11599 ; FAST-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)1600 ; FAST-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)1601 ; FAST-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]1602 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1603 ; GREEDY-LABEL: name: phi_s1_s_s_sbranch1604 ; GREEDY: bb.0:1605 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1606 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $sgpr21607 ; GREEDY-NEXT: {{ $}}1608 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01609 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr11610 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr21611 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01612 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY]](s32)1613 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1614 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1615 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1616 ; GREEDY-NEXT: [[ANYEXT:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC]](s1)1617 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11618 ; GREEDY-NEXT: G_BR %bb.21619 ; GREEDY-NEXT: {{ $}}1620 ; GREEDY-NEXT: bb.1:1621 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1622 ; GREEDY-NEXT: {{ $}}1623 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[COPY1]](s32)1624 ; GREEDY-NEXT: [[ANYEXT1:%[0-9]+]]:sgpr(s32) = G_ANYEXT [[TRUNC2]](s1)1625 ; GREEDY-NEXT: G_BR %bb.21626 ; GREEDY-NEXT: {{ $}}1627 ; GREEDY-NEXT: bb.2:1628 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:sgpr(s32) = G_PHI [[ANYEXT]](s32), %bb.0, [[ANYEXT1]](s32), %bb.11629 ; GREEDY-NEXT: [[TRUNC3:%[0-9]+]]:sgpr(s1) = G_TRUNC [[PHI]](s32)1630 ; GREEDY-NEXT: [[ZEXT1:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC3]](s1)1631 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:sgpr(s32) = G_SELECT [[ZEXT1]](s32), [[C]], [[COPY]]1632 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1633 bb.0:1634 successors: %bb.1, %bb.21635 liveins: $sgpr0, $sgpr1, $sgpr21636 1637 %0:_(s32) = COPY $sgpr01638 %1:_(s32) = COPY $sgpr11639 %2:_(s32) = COPY $sgpr21640 %3:_(s32) = G_CONSTANT i32 01641 %4:_(s1) = G_TRUNC %01642 %5:_(s1) = G_ICMP intpred(eq), %2, %31643 G_BRCOND %5, %bb.11644 G_BR %bb.21645 1646 bb.1:1647 successors: %bb.21648 1649 %6:_(s1) = G_TRUNC %11650 G_BR %bb.21651 1652 bb.2:1653 %7:_(s1) = G_PHI %4, %bb.0, %6, %bb.11654 %8:_(s32) = G_SELECT %7, %3, %01655 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %81656 1657...1658 1659---1660name: phi_s1_vcc_result_scc_scc_sbranch1661legalized: true1662tracksRegLiveness: true1663 1664body: |1665 ; FAST-LABEL: name: phi_s1_vcc_result_scc_scc_sbranch1666 ; FAST: bb.0:1667 ; FAST-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1668 ; FAST-NEXT: liveins: $sgpr0, $sgpr1, $sgpr21669 ; FAST-NEXT: {{ $}}1670 ; FAST-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01671 ; FAST-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr11672 ; FAST-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr21673 ; FAST-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01674 ; FAST-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]1675 ; FAST-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1676 ; FAST-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1677 ; FAST-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1678 ; FAST-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1679 ; FAST-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)1680 ; FAST-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11681 ; FAST-NEXT: G_BR %bb.21682 ; FAST-NEXT: {{ $}}1683 ; FAST-NEXT: bb.1:1684 ; FAST-NEXT: successors: %bb.2(0x80000000)1685 ; FAST-NEXT: {{ $}}1686 ; FAST-NEXT: [[ICMP2:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]1687 ; FAST-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP2]](s32)1688 ; FAST-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC2]](s1)1689 ; FAST-NEXT: G_BR %bb.21690 ; FAST-NEXT: {{ $}}1691 ; FAST-NEXT: bb.2:1692 ; FAST-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[COPY3]](s1), %bb.0, [[COPY4]](s1), %bb.11693 ; FAST-NEXT: [[C1:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 1231694 ; FAST-NEXT: [[COPY5:%[0-9]+]]:vgpr(s32) = COPY [[C1]](s32)1695 ; FAST-NEXT: [[C2:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 4561696 ; FAST-NEXT: [[COPY6:%[0-9]+]]:vgpr(s32) = COPY [[C2]](s32)1697 ; FAST-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[COPY5]], [[COPY6]]1698 ; FAST-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1699 ; GREEDY-LABEL: name: phi_s1_vcc_result_scc_scc_sbranch1700 ; GREEDY: bb.0:1701 ; GREEDY-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)1702 ; GREEDY-NEXT: liveins: $sgpr0, $sgpr1, $sgpr21703 ; GREEDY-NEXT: {{ $}}1704 ; GREEDY-NEXT: [[COPY:%[0-9]+]]:sgpr(s32) = COPY $sgpr01705 ; GREEDY-NEXT: [[COPY1:%[0-9]+]]:sgpr(s32) = COPY $sgpr11706 ; GREEDY-NEXT: [[COPY2:%[0-9]+]]:sgpr(s32) = COPY $sgpr21707 ; GREEDY-NEXT: [[C:%[0-9]+]]:sgpr(s32) = G_CONSTANT i32 01708 ; GREEDY-NEXT: [[ICMP:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY]](s32), [[C]]1709 ; GREEDY-NEXT: [[TRUNC:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP]](s32)1710 ; GREEDY-NEXT: [[ICMP1:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY2]](s32), [[C]]1711 ; GREEDY-NEXT: [[TRUNC1:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP1]](s32)1712 ; GREEDY-NEXT: [[ZEXT:%[0-9]+]]:sgpr(s32) = G_ZEXT [[TRUNC1]](s1)1713 ; GREEDY-NEXT: [[COPY3:%[0-9]+]]:vcc(s1) = COPY [[TRUNC]](s1)1714 ; GREEDY-NEXT: G_BRCOND [[ZEXT]](s32), %bb.11715 ; GREEDY-NEXT: G_BR %bb.21716 ; GREEDY-NEXT: {{ $}}1717 ; GREEDY-NEXT: bb.1:1718 ; GREEDY-NEXT: successors: %bb.2(0x80000000)1719 ; GREEDY-NEXT: {{ $}}1720 ; GREEDY-NEXT: [[ICMP2:%[0-9]+]]:sgpr(s32) = G_ICMP intpred(eq), [[COPY1]](s32), [[C]]1721 ; GREEDY-NEXT: [[TRUNC2:%[0-9]+]]:sgpr(s1) = G_TRUNC [[ICMP2]](s32)1722 ; GREEDY-NEXT: [[COPY4:%[0-9]+]]:vcc(s1) = COPY [[TRUNC2]](s1)1723 ; GREEDY-NEXT: G_BR %bb.21724 ; GREEDY-NEXT: {{ $}}1725 ; GREEDY-NEXT: bb.2:1726 ; GREEDY-NEXT: [[PHI:%[0-9]+]]:vcc(s1) = G_PHI [[COPY3]](s1), %bb.0, [[COPY4]](s1), %bb.11727 ; GREEDY-NEXT: [[C1:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 1231728 ; GREEDY-NEXT: [[C2:%[0-9]+]]:vgpr(s32) = G_CONSTANT i32 4561729 ; GREEDY-NEXT: [[SELECT:%[0-9]+]]:vgpr(s32) = G_SELECT [[PHI]](s1), [[C1]], [[C2]]1730 ; GREEDY-NEXT: S_SETPC_B64 undef $sgpr30_sgpr31, implicit [[SELECT]](s32)1731 bb.0:1732 successors: %bb.1, %bb.21733 liveins: $sgpr0, $sgpr1, $sgpr21734 1735 %0:_(s32) = COPY $sgpr01736 %1:_(s32) = COPY $sgpr11737 %2:_(s32) = COPY $sgpr21738 %3:_(s32) = G_CONSTANT i32 01739 %4:_(s1) = G_ICMP intpred(eq), %0, %31740 %5:_(s1) = G_ICMP intpred(eq), %2, %31741 G_BRCOND %5, %bb.11742 G_BR %bb.21743 1744 bb.1:1745 successors: %bb.21746 1747 %6:_(s1) = G_ICMP intpred(eq), %1, %31748 G_BR %bb.21749 1750 bb.2:1751 %7:vcc(s1) = G_PHI %4, %bb.0, %6, %bb.11752 %8:vgpr(s32) = G_CONSTANT i32 1231753 %9:vgpr(s32) = G_CONSTANT i32 4561754 %10:vgpr(s32) = G_SELECT %7, %8, %91755 S_SETPC_B64 undef $sgpr30_sgpr31, implicit %101756 1757...1758