# RUN: llc -mtriple=aarch64-apple-darwin -run-pass=prologepilog \
# RUN: -run-pass=machine-outliner %s -pass-remarks-analysis='size-info' \
# RUN: -pass-remarks-output=%t.yaml -o /dev/null < %s 2> %t; \
# RUN: cat %t %t.yaml | FileCheck %s

# Ensure that the MachineOutliner produces codegen size remarks. Make sure...
# - Functions that are outlined from shrink in the remark (foo)
# - Outlined functions start with 0 instructions
# - Outlined functions end with the same number of instructions as the delta

# CHECK: remark: <unknown>:0:0: Machine Outliner: Function: foo:
# CHECK-SAME: MI instruction count changed from
# CHECK-SAME: [[FOO1:[1-9][0-9]*]] to [[FOO2:[1-9][0-9]*]];
# CHECK-SAME: Delta: [[FOODELTA:-?[1-9][0-9]*]]
# CHECK-NEXT: remark: <unknown>:0:0: Machine Outliner:
# CHECK-SAME: Function: OUTLINED_FUNCTION_0: MI instruction count changed from
# CHECK-SAME: 0 to [[OFUNCSIZE:[1-9][0-9]*]]; Delta: [[OFUNCSIZE]]
# CHECK-DAG: - Pass:            Machine Outliner
# CHECK-NEXT: - String:          ': Function: '
# CHECK-NEXT: - Function:        foo
# CHECK-NEXT: - String:          ': MI instruction count changed from '
# CHECK-NEXT: - MIInstrsBefore:  '[[FOO1]]'
# CHECK-NEXT: - String:          ' to '
# CHECK-NEXT: - MIInstrsAfter:   '[[FOO2]]'
# CHECK-NEXT: - String:          '; Delta: '
# CHECK-NEXT: - Delta:           '[[FOODELTA]]'
# CHECK-NEXT:...
# CHECK-NEXT: --- !Analysis
# CHECK-NEXT: Pass:            size-info
# CHECK-NEXT: Name:            FunctionMISizeChange
# CHECK-NEXT: Function:        OUTLINED_FUNCTION_0
# CHECK-NEXT: Args:
# CHECK-NEXT:  - Pass:            Machine Outliner
# CHECK-NEXT:  - String:          ': Function: '
# CHECK-NEXT:  - Function:        OUTLINED_FUNCTION_0
# CHECK-NEXT:  - String:          ': MI instruction count changed from '
# CHECK-NEXT:  - MIInstrsBefore:  '0'
# CHECK-NEXT:  - String:          ' to '
# CHECK-NEXT:  - MIInstrsAfter:   '[[OFUNCSIZE]]'
# CHECK-NEXT:  - String:          '; Delta: '
# CHECK-NEXT:  - Delta:           '[[OFUNCSIZE]]'
...
--- |

  define void @foo() #0 {
    ret void
  }

  attributes #0 = { minsize noinline noredzone "no-frame-pointer-elim"="true" }
...
---
name:            foo
tracksRegLiveness: true
fixedStack:
body:             |
  bb.0:
    liveins: $lr, $w9
    $x25 = ORRXri $xzr, 1
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 2
  bb.1:
    liveins: $lr, $w9
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 2
  bb.2:
    liveins: $lr, $w9
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 1
    $w9 = ORRWri $wzr, 2
    RET undef $lr
