11; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sme -verify-machineinstrs < %s | FileCheck %s
2+ ; RUN: llc -mtriple=aarch64-apple-darwin -mattr=+sme -verify-machineinstrs < %s | FileCheck %s --check-prefix=DARWIN
23; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sme -verify-machineinstrs -stop-after=finalize-isel < %s | FileCheck %s --check-prefix=CHECK-CSRMASK
4+ ; RUN: llc -mtriple=aarch64-apple-darwin -mattr=+sme -verify-machineinstrs -stop-after=finalize-isel < %s | FileCheck %s --check-prefix=CHECK-CSRMASK
35
46; Test that the PCS attribute is accepted and uses the correct register mask.
57;
@@ -11,6 +13,11 @@ define void @test_sme_calling_convention_x0() nounwind {
1113; CHECK-NEXT: bl __arm_tpidr2_save
1214; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload
1315; CHECK-NEXT: ret
16+ ; DARWIN-LABEL: test_sme_calling_convention_x0:
17+ ; DARWIN: stp x29, x30, [sp, #-16]!
18+ ; DARWIN: bl ___arm_tpidr2_save
19+ ; DARWIN: ldp x29, x30, [sp], #16
20+ ; DARWIN: ret
1421;
1522; CHECK-CSRMASK-LABEL: name: test_sme_calling_convention_x0
1623; CHECK-CSRMASK: BL @__arm_tpidr2_save, csr_aarch64_sme_abi_support_routines_preservemost_from_x0
@@ -25,6 +32,11 @@ define i64 @test_sme_calling_convention_x2() nounwind {
2532; CHECK-NEXT: bl __arm_sme_state
2633; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload
2734; CHECK-NEXT: ret
35+ ; DARWIN-LABEL: test_sme_calling_convention_x2:
36+ ; DARWIN: stp x29, x30, [sp, #-16]!
37+ ; DARWIN: bl ___arm_sme_state
38+ ; DARWIN: ldp x29, x30, [sp], #16
39+ ; DARWIN: ret
2840;
2941; CHECK-CSRMASK-LABEL: name: test_sme_calling_convention_x2
3042; CHECK-CSRMASK: BL @__arm_sme_state, csr_aarch64_sme_abi_support_routines_preservemost_from_x2
0 commit comments