1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 3 2; RUN: llc -mtriple=aarch64-unknown-linux-gnu -global-isel < %s | FileCheck %s 3 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 the 7; 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, x2 13; CHECK-NEXT: mov x6, x0 14; CHECK-NEXT: mov x7, x1 15; CHECK-NEXT: mov x9, x3 16; CHECK-NEXT: mov x0, xzr 17; CHECK-NEXT: mov x1, xzr 18; CHECK-NEXT: mov x2, xzr 19; CHECK-NEXT: mov x3, xzr 20; CHECK-NEXT: mov x4, xzr 21; CHECK-NEXT: str x8, [sp, #-32]! 22; CHECK-NEXT: stp x9, x30, [sp, #8] // 8-byte Folded Spill 23; CHECK-NEXT: bl func 24; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Folded Reload 25; CHECK-NEXT: add sp, sp, #32 26; CHECK-NEXT: ret 27 tail call void @func(i64 0, i64 0, i64 0, i64 0, i64 0, i128 %arg1, i128 %arg2) 28 ret void 29} 30