# RUN: llc -run-pass=aarch64-expand-pseudo -mtriple=arm64-apple-ios -o - -emit-call-site-info %s | FileCheck %s

--- |
  define void @test_1_callsite_info() {
    ret void
  }

  define void @test_bl_pass_x0_arg() {
    ret void
  }

  define void @test_bl_pass_x0_x1_x2_args() {
    ret void
  }

  define void @test_bl_pass_w0_w1_args() {
    ret void
  }

  define void @test_blr_pass_w0_w1_args() {
    ret void
  }

  define void @foo(i32 %a) {
    ret void
  }

  declare i8* @attachedcall()
...
---

# CHECK-LABEL: : test_1_callsite_info
# CHECK:       bb.0:
# CHECK-NEXT: liveins:
# CHECK-NEXT: {{  $}}
# CHECK-NEXT:    BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $sp, implicit-def $wsp, implicit-def dead $x0, implicit-def $fp, implicit-def $w29, implicit $x0, implicit $sp, implicit $xzr, implicit $fp {
# CHECK-NEXT:      BLR $x0, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $x0
# CHECK-NEXT:      ORRXrs $xzr, $fp, 0
# CHECK-NEXT:      BL @attachedcall, implicit-def $lr, implicit internal $sp
# CHECK-NEXT:   }
# CHECK-NEXT:    RET undef $lr, implicit killed $w0
#
name: test_1_callsite_info
callSites:
  - {bb: 0, offset: 0, fwdArgRegs:
    - { arg: 0, reg: '$x0' } }
body:             |
    bb.0:
        liveins: $lr, $x0

        BLR_RVMARKER @attachedcall, $x0, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $x0
        RET_ReallyLR implicit killed $w0
...

# CHECK-LABEL: : test_bl_pass_x0_arg
# CHECK:       bb.0:
# CHECK-NEXT: liveins:
# CHECK-NEXT: {{  $}}
# CHECK-NEXT:     BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $sp, implicit-def $wsp, implicit-def dead $x0, implicit-def $fp, implicit-def $w29, implicit $sp, implicit $x0, implicit $xzr, implicit $fp {
# CHECK-NEXT:      BL @foo, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $x0, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $x0
# CHECK-NEXT:      $fp = ORRXrs $xzr, $fp, 0
# CHECK-NEXT:      BL @attachedcall, implicit-def $lr, implicit internal $sp
# CHECK-NEXT:    }
# CHECK-NEXT:    RET undef $lr, implicit killed $w0
#
name: test_bl_pass_x0_arg
body:             |
    bb.0:
        liveins: $lr, $x0

        BLR_RVMARKER @attachedcall, @foo, $x0, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $x0
        RET_ReallyLR implicit killed $w0
...

# CHECK-LABEL: : test_bl_pass_x0_x1_x2_args
# CHECK:       bb.0:
# CHECK-NEXT: liveins:
# CHECK-NEXT: {{  $}}
# CHECK-NEXT:     BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $sp, implicit-def $wsp, implicit-def $x0, implicit-def $w0, implicit-def $fp, implicit-def $w29, implicit $sp, implicit $x0, implicit $x1, implicit $x2, implicit $xzr, implicit $fp {
# CHECK-NEXT:      BL @foo, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $x0, implicit $x1, implicit $x2, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $x0
# CHECK-NEXT:      $fp = ORRXrs $xzr, $fp, 0
# CHECK-NEXT:      BL @attachedcall, implicit-def $lr, implicit internal $sp
# CHECK-NEXT:    }
# CHECK-NEXT:    RET undef $lr
#
name: test_bl_pass_x0_x1_x2_args
body:             |
    bb.0:
        liveins: $lr, $x0, $x1, $x2

        BLR_RVMARKER @attachedcall, @foo, $x0, $x1, $x2, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def $x0
        RET_ReallyLR
...

# CHECK-LABEL: : test_bl_pass_w0_w1_args
# CHECK:       bb.0:
# CHECK-NEXT: liveins:
# CHECK-NEXT: {{  $}}
# CHECK-NEXT:     BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $sp, implicit-def $wsp, implicit-def dead $x0, implicit-def $fp, implicit-def $w29, implicit $sp, implicit $w0, implicit $w1, implicit $xzr, implicit $fp {
# CHECK-NEXT:      BL @foo, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $w0, implicit $w1, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $x0
# CHECK-NEXT:      $fp = ORRXrs $xzr, $fp, 0
# CHECK-NEXT:      BL @attachedcall, implicit-def $lr, implicit internal $sp
# CHECK-NEXT:    }
# CHECK-NEXT:    RET undef $lr, implicit killed $w0
#
name: test_bl_pass_w0_w1_args
body:             |
    bb.0:
        liveins: $lr, $w0, $w1

        BLR_RVMARKER @attachedcall, @foo, $w0, $w1, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $x0
        RET_ReallyLR implicit killed $w0
...


# CHECK-LABEL: : test_blr_pass_w0_w1_args
# CHECK:       bb.0:
# CHECK-NEXT: liveins:
# CHECK-NEXT: {{  $}}
# CHECK-NEXT:     BUNDLE implicit-def $lr, implicit-def $w30, implicit-def $sp, implicit-def $wsp, implicit-def dead $x0, implicit-def $fp, implicit-def $w29, implicit $x8, implicit $sp, implicit $w0, implicit $w1, implicit $xzr, implicit $fp {
# CHECK-NEXT:      BLR $x8, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $w0, implicit $w1, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $x0
# CHECK-NEXT:      $fp = ORRXrs $xzr, $fp, 0
# CHECK-NEXT:      BL @attachedcall, implicit-def $lr, implicit internal $sp
# CHECK-NEXT:    }
# CHECK-NEXT:    RET undef $lr, implicit killed $w0
#
name: test_blr_pass_w0_w1_args
body:             |
    bb.0:
        liveins: $lr, $x8, $w0, $w1

        BLR_RVMARKER @attachedcall, $x8, $w0, $w1, csr_aarch64_aapcs, implicit-def dead $lr, implicit $sp, implicit-def $sp, implicit-def dead $x0
        RET_ReallyLR implicit killed $w0
...
