1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=aarch64 -mattr=+sme --pass-remarks-analysis=sme -o /dev/null < %s 2>&1 | FileCheck %s
4 declare void @private_za_callee()
5 declare void @private_za_preserved_callee() "aarch64_pstate_za_preserved"
6 declare float @llvm.cos.f32(float)
8 define void @test_lazy_save_1_callee() nounwind "aarch64_pstate_za_shared" {
9 ; CHECK: remark: <unknown>:0:0: call from 'test_lazy_save_1_callee' to 'private_za_callee' sets up a lazy save for ZA, and we request that all slices be saved
10 call void @private_za_callee()
14 define void @test_lazy_save_2_callees() nounwind "aarch64_pstate_za_shared" {
15 ; CHECK: remark: <unknown>:0:0: call from 'test_lazy_save_2_callees' to 'private_za_callee' sets up a lazy save for ZA, and we request that all slices be saved
16 call void @private_za_callee()
17 ; CHECK: remark: <unknown>:0:0: call from 'test_lazy_save_2_callees' to 'private_za_callee' sets up a lazy save for ZA, and we request that all slices be saved
18 call void @private_za_callee()
22 define void @test_lazy_save_preserved_callee() nounwind "aarch64_pstate_za_shared" {
23 ; CHECK: remark: <unknown>:0:0: call from 'test_lazy_save_preserved_callee' to 'private_za_preserved_callee' sets up a lazy save for ZA, but callee preserves ZA, so we request 0 slices to be saved
24 call void @private_za_preserved_callee()
28 define float @test_lazy_save_expanded_intrinsic(float %a) nounwind "aarch64_pstate_za_shared" {
29 ; CHECK: remark: <unknown>:0:0: call from 'test_lazy_save_expanded_intrinsic' to 'cosf' sets up a lazy save for ZA, and we request that all slices be saved
30 %res = call float @llvm.cos.f32(float %a)