brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 276cfbc Raw
30 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 32; RUN: llc -mtriple=aarch64-unknown-linux-gnu -global-isel < %s | FileCheck %s3 4declare void @func(i64, i64, i64, i64, i64, i128, i128)5 6; Make sure the check for whether a tail call is allowed does not affect the7; calling convention if it fails.8; The first i128 argument should be passed in registers, not on the stack.9define void @pr70207(i128 %arg1, i128 %arg2) nounwind {10; CHECK-LABEL: pr70207:11; CHECK:       // %bb.0:12; CHECK-NEXT:    mov x8, x213; CHECK-NEXT:    mov x6, x014; CHECK-NEXT:    mov x7, x115; CHECK-NEXT:    mov x9, x316; CHECK-NEXT:    mov x0, xzr17; CHECK-NEXT:    mov x1, xzr18; CHECK-NEXT:    mov x2, xzr19; CHECK-NEXT:    mov x3, xzr20; CHECK-NEXT:    mov x4, xzr21; CHECK-NEXT:    str x8, [sp, #-32]!22; CHECK-NEXT:    stp x9, x30, [sp, #8] // 8-byte Folded Spill23; CHECK-NEXT:    bl func24; CHECK-NEXT:    ldr x30, [sp, #16] // 8-byte Reload25; CHECK-NEXT:    add sp, sp, #3226; CHECK-NEXT:    ret27  tail call void @func(i64 0, i64 0, i64 0, i64 0, i64 0, i128 %arg1, i128 %arg2)28  ret void29}30