# RUN: llc -mtriple=aarch64--- -run-pass=prologepilog -run-pass=machine-outliner -verify-machineinstrs %s -o - | FileCheck %s
--- |

  @x = common global i32 0, align 4

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

  define i32 @main() #0 {
    ret i32 0
  }

  define void @bar(i32 %a) #0 {
    ret void
  }

  attributes #0 = { noinline noredzone "no-frame-pointer-elim"="true" }
...
---
# This test ensures that we
# - Create outlined functions
# - Don't outline anything to do with LR or W30
# - Save LR when it's not available
# - Functions whose addresses are taken can still be outlined
#
# CHECK-LABEL: main
# CHECK-LABEL: bb.1:
# CHECK-DAG: BL @OUTLINED_FUNCTION_[[F0:[0-9]+]]
# CHECK-NEXT: $lr = ORRXrs $xzr, $x[[REG:[0-9]+]], 0
# CHECK-NEXT: STRHHroW $w12, $x9, $w30, 1, 1
# CHECK-NEXT: $lr = ORRXri $xzr, 1

# CHECK-DAG: bb.2
# CHECK: BL @OUTLINED_FUNCTION_[[F0]]
# CHECK-NEXT: $lr = ORRXrs $xzr, $x[[REG]], 0
# CHECK-NEXT: STRHHroW $w12, $x9, $w30, 1, 1
# CHECK-NEXT: $lr = ORRXri $xzr, 1

# CHECK-DAG: bb.3
# CHECK: BL @OUTLINED_FUNCTION_[[F0]]
# CHECK-NEXT: $lr = ORRXrs $xzr, $x[[REG]], 0
# CHECK-NEXT: STRHHroW $w12, $x9, $w30, 1, 1
# CHECK-NEXT: $lr = ORRXri $xzr, 1
name:            main
tracksRegLiveness: true
body:             |
  bb.0:
  liveins: $lr
    $sp = frame-setup SUBXri $sp, 16, 0
    renamable $x9 = ADRP target-flags(aarch64-page) @bar
    $x9 = ORRXri $xzr, 1
    $w12 = ORRWri $wzr, 1
    $w30 = ORRWri $wzr, 1
    $lr = ORRXri $xzr, 1
  bb.1:
  liveins: $lr
    $x20, $x19 = LDPXi $sp, 10
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    renamable $x9 = ADRP target-flags(aarch64-page) @x
    $x12 = ADDXri $sp, 48, 0;
    STRHHroW $w12, $x9, $w30, 1, 1
    $lr = ORRXri $xzr, 1
  bb.2:
  liveins: $lr
    $x20, $x19 = LDPXi $sp, 10
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    renamable $x9 = ADRP target-flags(aarch64-page) @x
    $x12 = ADDXri $sp, 48, 0;
    STRHHroW $w12, $x9, $w30, 1, 1
    $lr = ORRXri $xzr, 1
  bb.3:
  liveins: $lr
    $x20, $x19 = LDPXi $sp, 10
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    $w12 = ORRWri $wzr, 1
    renamable $x9 = ADRP target-flags(aarch64-page) @x
    $x12 = ADDXri $sp, 48, 0;
    STRHHroW $w12, $x9, $w30, 1, 1
    $lr = ORRXri $xzr, 1
    $sp = ADDXri $sp, 16, 0
  bb.4:
  liveins: $lr
    RET undef $lr

...
---
# This test ensures that we can avoid saving LR when it's available.
# It also makes sure that KILL instructions don't impact outlining.
# CHECK-LABEL: bb.1:
# CHECK-NOT: BL @baz, implicit-def dead $lr, implicit $sp
# CHECK: BL @OUTLINED_FUNCTION_[[F1:[0-9]+]], implicit-def $lr, implicit $sp
# CHECK-NEXT: $w11 = ORRWri $wzr, 2
# CHECK-NEXT: BL @OUTLINED_FUNCTION_[[F1]], implicit-def $lr, implicit $sp
# CHECK-NEXT: $w8 = ORRWri $wzr, 0
# CHECK-NOT: $w11 = KILL renamable $w11, implicit killed $w11
name:            bar
tracksRegLiveness: true
body:             |
  bb.0:
    liveins: $w0, $lr, $w8
    $sp = frame-setup SUBXri $sp, 32, 0
    $fp = frame-setup ADDXri $sp, 16, 0

  bb.1:
    BL @baz, implicit-def dead $lr, implicit $sp
    $w11 = ORRWri $wzr, 1
    $w11 = ORRWri $wzr, 1
    $w11 = KILL renamable $w11, implicit killed $w11
    $w11 = ORRWri $wzr, 1
    $w11 = ORRWri $wzr, 1
    BL @baz, implicit-def dead $lr, implicit $sp
    $w11 = ORRWri $wzr, 1
    $w11 = ORRWri $wzr, 1
    $w11 = ORRWri $wzr, 2
    BL @baz, implicit-def dead $lr, implicit $sp
    $w11 = ORRWri $wzr, 1
    $w11 = ORRWri $wzr, 1
    $w11 = ORRWri $wzr, 1
    $w11 = ORRWri $wzr, 1
    BL @baz, implicit-def dead $lr, implicit $sp
    $w11 = ORRWri $wzr, 1
    $w11 = ORRWri $wzr, 1
    $w8 = ORRWri $wzr, 0

  bb.2:
    $w15 = ORRWri $wzr, 1
    $w15 = ORRWri $wzr, 1
    $w15 = ORRWri $wzr, 1
    $w15 = ORRWri $wzr, 1
    $x15 = ADDXri $sp, 48, 0;
    $w9 = ORRWri $wzr, 0
    $w15 = ORRWri $wzr, 1
    $w15 = ORRWri $wzr, 1
    $w15 = ORRWri $wzr, 1
    $w15 = ORRWri $wzr, 1
    $x15 = ADDXri $sp, 48, 0;
    $w8 = ORRWri $wzr, 0

  bb.3:
    $fp, $lr = LDPXi $sp, 2
    $sp = ADDXri $sp, 32, 0
    RET undef $lr

...
---
name:            baz
tracksRegLiveness: true
body:             |
  bb.0:
    liveins: $w0, $lr, $w8
    RET undef $lr

# CHECK-LABEL: name:            OUTLINED_FUNCTION_{{[0-9]}}
# CHECK=LABEL: name:            OUTLINED_FUNCTION_{{[1-9]}}
