1
1
; 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
2
3
; 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
3
5
4
6
; Test that the PCS attribute is accepted and uses the correct register mask.
5
7
;
@@ -11,6 +13,11 @@ define void @test_sme_calling_convention_x0() nounwind {
11
13
; CHECK-NEXT: bl __arm_tpidr2_save
12
14
; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload
13
15
; 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
14
21
;
15
22
; CHECK-CSRMASK-LABEL: name: test_sme_calling_convention_x0
16
23
; 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 {
25
32
; CHECK-NEXT: bl __arm_sme_state
26
33
; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload
27
34
; 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
28
40
;
29
41
; CHECK-CSRMASK-LABEL: name: test_sme_calling_convention_x2
30
42
; CHECK-CSRMASK: BL @__arm_sme_state, csr_aarch64_sme_abi_support_routines_preservemost_from_x2
0 commit comments