1# RUN: llc -march=amdgcn -verify-machineinstrs -run-pass=si-optimize-exec-masking-pre-ra -o - %s | FileCheck -check-prefix=GCN %s 2 3# GCN: name: negated_cond_vop2 4# GCN: %0:sreg_64_xexec = IMPLICIT_DEF 5# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, %0, implicit-def dead $scc 6# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 7--- 8name: negated_cond_vop2 9body: | 10 bb.0: 11 %0:sreg_64_xexec = IMPLICIT_DEF 12 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 13 V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec 14 $vcc = S_AND_B64 $exec, killed $vcc, implicit-def dead $scc 15 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 16 S_BRANCH %bb.1 17 18 bb.1: 19 S_BRANCH %bb.2 20 21 bb.2: 22 S_ENDPGM 0 23... 24 25# GCN: name: negated_cond_vop3 26# GCN: %0:sreg_64_xexec = IMPLICIT_DEF 27# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, %0, implicit-def dead $scc 28# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 29--- 30name: negated_cond_vop3 31body: | 32 bb.0: 33 %0:sreg_64_xexec = IMPLICIT_DEF 34 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 35 %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1, 1, implicit $exec 36 $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc 37 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 38 S_BRANCH %bb.1 39 40 bb.1: 41 S_BRANCH %bb.2 42 43 bb.2: 44 S_ENDPGM 0 45... 46 47# GCN: name: negated_cond_vop2_redef_vcc1 48# GCN: %0:sreg_64_xexec = IMPLICIT_DEF 49# GCN-NEXT: %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 50# GCN-NEXT: V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec 51# GCN-NEXT: $vcc_lo = COPY $sgpr0 52# GCN-NEXT: $vcc = S_AND_B64 $exec, $vcc, implicit-def dead $scc 53# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 54--- 55name: negated_cond_vop2_redef_vcc1 56body: | 57 bb.0: 58 %0:sreg_64_xexec = IMPLICIT_DEF 59 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 60 V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec 61 $vcc_lo = COPY $sgpr0 62 $vcc = S_AND_B64 $exec, killed $vcc, implicit-def dead $scc 63 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 64 S_BRANCH %bb.1 65 66 bb.1: 67 S_BRANCH %bb.2 68 69 bb.2: 70 S_ENDPGM 0 71... 72 73# GCN: name: negated_cond_vop2_redef_vcc2 74# GCN: %0:sreg_64_xexec = IMPLICIT_DEF 75# GCN-NEXT: %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 76# GCN-NEXT: V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec 77# GCN-NEXT: $vcc_hi = COPY $sgpr0 78# GCN-NEXT: $vcc = S_AND_B64 $exec, $vcc, implicit-def dead $scc 79# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 80--- 81name: negated_cond_vop2_redef_vcc2 82body: | 83 bb.0: 84 %0:sreg_64_xexec = IMPLICIT_DEF 85 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 86 V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec 87 $vcc_hi = COPY $sgpr0 88 $vcc = S_AND_B64 $exec, killed $vcc, implicit-def dead $scc 89 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 90 S_BRANCH %bb.1 91 92 bb.1: 93 S_BRANCH %bb.2 94 95 bb.2: 96 S_ENDPGM 0 97... 98 99# GCN: name: negated_cond_vop3_redef_cmp 100# GCN: %0:sreg_64_xexec = IMPLICIT_DEF 101# GCN-NEXT: %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 102# GCN-NEXT: %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1, 1, implicit $exec 103# GCN-NEXT: %2.sub1:sreg_64_xexec = COPY $sgpr0 104# GCN-NEXT: $vcc = S_AND_B64 %2, $exec, implicit-def dead $scc 105# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 106--- 107name: negated_cond_vop3_redef_cmp 108body: | 109 bb.0: 110 %0:sreg_64_xexec = IMPLICIT_DEF 111 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 112 %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1, 1, implicit $exec 113 %2.sub1 = COPY $sgpr0 114 $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc 115 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 116 S_BRANCH %bb.1 117 118 bb.1: 119 S_BRANCH %bb.2 120 121 bb.2: 122 S_ENDPGM 0 123... 124 125# GCN: name: negated_cond_undef_vcc 126# GCN: $vcc = S_AND_B64 $exec, undef $vcc, implicit-def dead $scc 127# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 128--- 129name: negated_cond_undef_vcc 130body: | 131 bb.0: 132 $vcc = S_AND_B64 $exec, undef $vcc, implicit-def dead $scc 133 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 134 S_BRANCH %bb.1 135 136 bb.1: 137 S_BRANCH %bb.2 138 139 bb.2: 140 S_ENDPGM 0 141... 142 143# GCN: name: negated_cond_vop3_imp_vcc 144# GCN: $vcc = IMPLICIT_DEF 145# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, $vcc, implicit-def dead $scc 146# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 147--- 148name: negated_cond_vop3_imp_vcc 149body: | 150 bb.0: 151 $vcc = IMPLICIT_DEF 152 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, $vcc, implicit $exec 153 %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1, 1, implicit $exec 154 $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc 155 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 156 S_BRANCH %bb.1 157 158 bb.1: 159 S_BRANCH %bb.2 160 161 bb.2: 162 S_ENDPGM 0 163... 164 165# GCN: name: negated_cond_vop2_imp_vcc 166# GCN: $vcc = IMPLICIT_DEF 167# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, $vcc, implicit-def dead $scc 168# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 169--- 170name: negated_cond_vop2_imp_vcc 171body: | 172 bb.0: 173 $vcc = IMPLICIT_DEF 174 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, $vcc, implicit $exec 175 V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec 176 $vcc = S_AND_B64 killed $vcc, $exec, implicit-def dead $scc 177 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 178 S_BRANCH %bb.1 179 180 bb.1: 181 S_BRANCH %bb.2 182 183 bb.2: 184 S_ENDPGM 0 185... 186 187# GCN: name: negated_cond_vop3_redef_sel 188# GCN: %0:sreg_64_xexec = IMPLICIT_DEF 189# GCN-NEXT: %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 190# GCN-NEXT: %1:vgpr_32 = COPY $vgpr0 191# GCN-NEXT: %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1, 1, implicit $exec 192# GCN-NEXT: $vcc = S_AND_B64 %2, $exec, implicit-def dead $scc 193# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 194--- 195name: negated_cond_vop3_redef_sel 196body: | 197 bb.0: 198 %0:sreg_64_xexec = IMPLICIT_DEF 199 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 200 %1:vgpr_32 = COPY $vgpr0 201 %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1, 1, implicit $exec 202 $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc 203 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 204 S_BRANCH %bb.1 205 206 bb.1: 207 S_BRANCH %bb.2 208 209 bb.2: 210 S_ENDPGM 0 211... 212 213# GCN: name: negated_cond_vop2_used_sel 214# GCN: %0:sreg_64_xexec = IMPLICIT_DEF 215# GCN-NEXT: %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 216# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, %0, implicit-def dead $scc 217# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 218--- 219name: negated_cond_vop2_used_sel 220body: | 221 bb.0: 222 %0:sreg_64_xexec = IMPLICIT_DEF 223 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 224 V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec 225 $vcc = S_AND_B64 $exec, killed $vcc, implicit-def dead $scc 226 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 227 S_BRANCH %bb.1 228 229 bb.1: 230 S_BRANCH %bb.2 231 232 bb.2: 233 $vgpr0 = COPY %1 234 S_ENDPGM 0, implicit $vgpr0 235... 236 237# GCN: name: negated_cond_vop2_used_vcc 238# GCN: %0:sreg_64_xexec = IMPLICIT_DEF 239# GCN-NEXT: %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 240# GCN-NEXT: V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec 241# GCN-NEXT: $sgpr0_sgpr1 = COPY $vcc 242# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, %0, implicit-def dead $scc 243# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 244--- 245name: negated_cond_vop2_used_vcc 246body: | 247 bb.0: 248 %0:sreg_64_xexec = IMPLICIT_DEF 249 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 250 V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec 251 $sgpr0_sgpr1 = COPY $vcc 252 $vcc = S_AND_B64 $exec, killed $vcc, implicit-def dead $scc 253 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 254 S_BRANCH %bb.1 255 256 bb.1: 257 S_BRANCH %bb.2 258 259 bb.2: 260 S_ENDPGM 0, implicit $vgpr0 261... 262 263# GCN: name: negated_cond_vop3_sel_wrong_subreg1 264# GCN: %0:sreg_64_xexec = IMPLICIT_DEF 265# GCN-NEXT: %1.sub1:vreg_64 = IMPLICIT_DEF 266# GCN-NEXT: %1.sub0:vreg_64 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 267# GCN-NEXT: %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub1, 1, implicit $exec 268# GCN-NEXT: $vcc = S_AND_B64 %2, $exec, implicit-def dead $scc 269# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 270--- 271name: negated_cond_vop3_sel_wrong_subreg1 272body: | 273 bb.0: 274 %0:sreg_64_xexec = IMPLICIT_DEF 275 undef %1.sub1 = IMPLICIT_DEF 276 %1.sub0:vreg_64 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 277 %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub1, 1, implicit $exec 278 $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc 279 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 280 S_BRANCH %bb.1 281 282 bb.1: 283 S_BRANCH %bb.2 284 285 bb.2: 286 S_ENDPGM 0 287... 288 289# GCN: name: negated_cond_vop3_sel_wrong_subreg2 290# GCN: %0:sreg_64_xexec = IMPLICIT_DEF 291# GCN-NEXT: %1.sub0:vreg_64 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 292# GCN-NEXT: %1.sub1:vreg_64 = IMPLICIT_DEF 293# GCN-NEXT: %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub1, 1, implicit $exec 294# GCN-NEXT: $vcc = S_AND_B64 %2, $exec, implicit-def dead $scc 295# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 296--- 297name: negated_cond_vop3_sel_wrong_subreg2 298body: | 299 bb.0: 300 %0:sreg_64_xexec = IMPLICIT_DEF 301 undef %1.sub0:vreg_64 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 302 %1.sub1 = IMPLICIT_DEF 303 %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub1, 1, implicit $exec 304 $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc 305 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 306 S_BRANCH %bb.1 307 308 bb.1: 309 S_BRANCH %bb.2 310 311 bb.2: 312 S_ENDPGM 0 313... 314 315# GCN: name: negated_cond_vop3_sel_right_subreg1 316# GCN: %0:sreg_64_xexec = IMPLICIT_DEF 317# GCN-NEXT: %1.sub1:vreg_64 = IMPLICIT_DEF 318# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, %0, implicit-def dead $scc 319# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 320--- 321name: negated_cond_vop3_sel_right_subreg1 322body: | 323 bb.0: 324 %0:sreg_64_xexec = IMPLICIT_DEF 325 undef %1.sub1 = IMPLICIT_DEF 326 %1.sub0:vreg_64 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 327 %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub0, 1, implicit $exec 328 $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc 329 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 330 S_BRANCH %bb.1 331 332 bb.1: 333 S_BRANCH %bb.2 334 335 bb.2: 336 S_ENDPGM 0 337... 338 339# GCN: name: negated_cond_vop3_sel_right_subreg2 340# GCN: %0:sreg_64_xexec = IMPLICIT_DEF 341# GCN-NEXT: %1.sub1:vreg_64 = IMPLICIT_DEF 342# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, %0, implicit-def dead $scc 343# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 344--- 345name: negated_cond_vop3_sel_right_subreg2 346body: | 347 bb.0: 348 %0:sreg_64_xexec = IMPLICIT_DEF 349 undef %1.sub0:vreg_64 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 350 %1.sub1 = IMPLICIT_DEF 351 %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub0, 1, implicit $exec 352 $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc 353 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 354 S_BRANCH %bb.1 355 356 bb.1: 357 S_BRANCH %bb.2 358 359 bb.2: 360 S_ENDPGM 0 361... 362 363# GCN: name: negated_cond_vop3_sel_subreg_overlap 364# GCN: %0:sreg_64_xexec = IMPLICIT_DEF 365# GCN-NEXT: %1.sub2:vreg_128 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 366# GCN-NEXT: %1.sub2_sub3:vreg_128 = IMPLICIT_DEF 367# GCN-NEXT: %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub2, 1, implicit $exec 368# GCN-NEXT: $vcc = S_AND_B64 %2, $exec, implicit-def dead $scc 369# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 370--- 371name: negated_cond_vop3_sel_subreg_overlap 372body: | 373 bb.0: 374 %0:sreg_64_xexec = IMPLICIT_DEF 375 undef %1.sub2:vreg_128 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 376 %1.sub2_sub3 = IMPLICIT_DEF 377 %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1.sub2, 1, implicit $exec 378 $vcc = S_AND_B64 killed %2, $exec, implicit-def dead $scc 379 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 380 S_BRANCH %bb.1 381 382 bb.1: 383 S_BRANCH %bb.2 384 385 bb.2: 386 S_ENDPGM 0 387... 388 389# GCN: name: negated_cond_vop2_dominated_blocks 390# GCN: %0:sreg_64_xexec = IMPLICIT_DEF 391# GCN: $vcc = S_ANDN2_B64 $exec, %0, implicit-def dead $scc 392# GCN-NEXT: S_CBRANCH_VCCNZ %bb.3, implicit $vcc 393--- 394name: negated_cond_vop2_dominated_blocks 395body: | 396 bb.0: 397 %0:sreg_64_xexec = IMPLICIT_DEF 398 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 399 400 bb.1: 401 V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec 402 $vcc = S_AND_B64 $exec, killed $vcc, implicit-def dead $scc 403 S_CBRANCH_VCCNZ %bb.3, implicit killed $vcc 404 S_BRANCH %bb.2 405 406 bb.2: 407 S_BRANCH %bb.1 408 409 bb.3: 410 S_ENDPGM 0 411... 412 413# GCN: name: negated_cond_vop2_different_blocks_cmp_and 414# GCN: %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 415# GCN: $vcc = S_AND_B64 $exec, %2, implicit-def dead $scc 416# GCN-NEXT: S_CBRANCH_VCCNZ %bb.3, implicit $vcc 417--- 418name: negated_cond_vop2_different_blocks_cmp_and 419body: | 420 bb.0: 421 %0:sreg_64_xexec = IMPLICIT_DEF 422 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 423 %2:sreg_64_xexec = V_CMP_NE_U32_e64 %1, 1, implicit $exec 424 425 bb.1: 426 $vcc = S_AND_B64 $exec, %2, implicit-def dead $scc 427 S_CBRANCH_VCCNZ %bb.3, implicit killed $vcc 428 S_BRANCH %bb.2 429 430 bb.2: 431 S_BRANCH %bb.1 432 433 bb.3: 434 S_ENDPGM 0 435... 436 437# GCN: name: negated_cond_vop2_not_dominated_blocks 438# GCN: V_CNDMASK_B32_e64 0, 0, 0, 1, 439# GCN: $vcc = S_AND_B64 $exec, $vcc, implicit-def dead $scc 440# GCN-NEXT: S_CBRANCH_VCCNZ %bb.4, implicit $vcc 441--- 442name: negated_cond_vop2_not_dominated_blocks 443body: | 444 bb.0: 445 $vcc = IMPLICIT_DEF 446 %1 = IMPLICIT_DEF 447 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 448 S_BRANCH %bb.1 449 450 bb.1: 451 %0:sreg_64_xexec = IMPLICIT_DEF 452 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0, implicit $exec 453 454 bb.2: 455 V_CMP_NE_U32_e32 1, %1, implicit-def $vcc, implicit $exec 456 $vcc = S_AND_B64 $exec, killed $vcc, implicit-def dead $scc 457 S_CBRANCH_VCCNZ %bb.4, implicit killed $vcc 458 S_BRANCH %bb.3 459 460 bb.3: 461 S_BRANCH %bb.2 462 463 bb.4: 464 S_ENDPGM 0 465... 466 467# GCN: name: negated_cond_subreg 468# GCN: %0.sub0_sub1:sgpr_128 = IMPLICIT_DEF 469# GCN-NEXT: $vcc = S_ANDN2_B64 $exec, %0.sub0_sub1, implicit-def dead $scc 470# GCN-NEXT: S_CBRANCH_VCCNZ %bb.2, implicit $vcc 471--- 472name: negated_cond_subreg 473body: | 474 bb.0: 475 undef %0.sub0_sub1:sgpr_128 = IMPLICIT_DEF 476 %1:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %0.sub0_sub1, implicit $exec 477 undef %2.sub0_sub1:sgpr_128 = V_CMP_NE_U32_e64 %1, 1, implicit $exec 478 $vcc = S_AND_B64 $exec, %2.sub0_sub1:sgpr_128, implicit-def dead $scc 479 S_CBRANCH_VCCNZ %bb.2, implicit killed $vcc 480 S_BRANCH %bb.1 481 482 bb.1: 483 S_BRANCH %bb.2 484 485 bb.2: 486 S_ENDPGM 0 487... 488