[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / aarch64-fastcc-stackup.ll
blobdb5289ac4bdcaa88af6a9d984637c9fb98a97190
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=aarch64-none-linux -O0 -tailcallopt < %s | FileCheck %s
4 define void @bar() {
5 ; CHECK-LABEL: bar:
6 ; CHECK:       // %bb.0:
7 ; CHECK-NEXT:    ret
8   ret void
11 define fastcc i64 @foo(i64 %0, i64 %1, i64 %2, i64 %3, i64 %4, i64 %5, i64 %6, i64 %7, i64 %8) {
12 ; CHECK-LABEL: foo:
13 ; CHECK:       // %bb.0:
14 ; CHECK-NEXT:    add sp, sp, #16
15 ; CHECK-NEXT:    ret
16   ret i64 %0
19 ; https://github.com/llvm/llvm-project/issues/60972
20 define fastcc i64 @baz() {
21 ; CHECK-LABEL: baz:
22 ; CHECK:       // %bb.0: // %entry
23 ; CHECK-NEXT:    sub sp, sp, #32
24 ; CHECK-NEXT:    str x30, [sp, #16] // 8-byte Folded Spill
25 ; CHECK-NEXT:    .cfi_def_cfa_offset 32
26 ; CHECK-NEXT:    .cfi_offset w30, -16
27 ; CHECK-NEXT:    mov x8, sp
28 ; CHECK-NEXT:    mov x7, xzr
29 ; CHECK-NEXT:    str xzr, [x8]
30 ; CHECK-NEXT:    mov x0, x7
31 ; CHECK-NEXT:    mov x1, x7
32 ; CHECK-NEXT:    mov x2, x7
33 ; CHECK-NEXT:    mov x3, x7
34 ; CHECK-NEXT:    mov x4, x7
35 ; CHECK-NEXT:    mov x5, x7
36 ; CHECK-NEXT:    mov x6, x7
37 ; CHECK-NEXT:    bl foo
38 ; CHECK-NEXT:    sub sp, sp, #16
39 ; CHECK-NEXT:    str x0, [sp, #8] // 8-byte Folded Spill
40 ; CHECK-NEXT:    bl bar
41 ; CHECK-NEXT:    ldr x0, [sp, #8] // 8-byte Folded Reload
42 ; CHECK-NEXT:    ldr x30, [sp, #16] // 8-byte Folded Reload
43 ; CHECK-NEXT:    add sp, sp, #32
44 ; CHECK-NEXT:    ret
45 entry:
46   %0 = tail call fastcc i64 @foo(i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0)
47   call void @bar()
48   ret i64 %0