
module asm ".global _caller"
module asm "_caller:"
module asm "    stp x29, x30, [sp, #-16]!"
module asm "    bl _cb                      // x0 = cb(x0)  \E2\80\94 back into sx"
module asm "    ldp x29, x30, [sp], #16"
module asm "    ret"

; Function Attrs: nounwind
define i64 @cb(i64 %0) #0 {
entry:
  %alloca = alloca i64, align 8
  store i64 %0, ptr %alloca, align 8
  %load = load i64, ptr %alloca, align 8
  %add = add i64 %load, 1
  ret i64 %add
}

; Function Attrs: nounwind
declare i64 @caller(i64) #0

; Function Attrs: nounwind
define i32 @main() #0 {
entry:
  %call = call i64 @caller(i64 41)
  %ca.tr = trunc i64 %call to i32
  ret i32 %ca.tr
}
