llvm/llvm/test/tools/llvm-reduce/mir/preserve-block-info.mir

# REQUIRES: amdgpu-registered-target
# RUN: llvm-reduce -abort-on-invalid-reduction -simplify-mir --delta-passes=instructions -mtriple=amdgcn-amd-amdhsa --test FileCheck --test-arg --check-prefix=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t 2> %t.log
# RUN: FileCheck --match-full-lines --check-prefix=RESULT %s < %t

# CHECK-INTERESTINGNESS: V_MOV_B32


# RESULT: bb.0.entry:
# RESULT: %{{[0-9]+}}:vgpr_32 = V_MOV_B32_e32 0, implicit $exec

# RESULT: bb.1 (ir-block-address-taken %ir-block.exitblock, align 8):
# RESULT: bb.2 (landing-pad, align 16):
# RESULT: bb.3 (inlineasm-br-indirect-target):
# RESULT: bb.4 (ehfunclet-entry):
# RESULT: bb.5 (bbsections 1):
# RESULT: bb.6 (bbsections 2):
# RESULT: bb.7 (bbsections 3):
# RESULT: bb.8:
# RESULT-NEXT: successors: %bb.9(0x66666666), %bb.10(0x1999999a)
# RESULT: bb.9:
# RESULT: bb.10.exitblock:
# RESULT: bb.11 (machine-block-address-taken):

--- |
  define void @func(i32 %size)  {
  entry:
    br label %exitblock

  exitblock:
    ret void
  }

...

---
name: func
alignment:       32
exposesReturnsTwice: true
legalized:       true
regBankSelected: true
selected:        true
failedISel:      true
tracksRegLiveness: true
hasWinCFI:       true
failsVerification: true
tracksDebugUserValues: true
body:             |
  bb.0.entry:
    S_NOP 0
    %0:vgpr_32 = V_MOV_B32_e32 0, implicit $exec

  bb.1 (ir-block-address-taken %ir-block.exitblock, align 8):

  bb.2 (landing-pad, align 16):

  bb.3 (inlineasm-br-indirect-target):

  bb.4 (ehfunclet-entry):

  bb.5 (bbsections 1):
  bb.6 (bbsections 2):
  bb.7 (bbsections 3):

  bb.8:
    successors: %bb.9(4), %bb.10(1)
    S_CBRANCH_SCC1 %bb.10, implicit undef $scc
    S_BRANCH %bb.9

  bb.9:

  bb.10.exitblock:
    S_ENDPGM 0, implicit %0

  bb.11 (machine-block-address-taken):
...