Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -256,7 +256,7 @@ bool AArch64TTIImpl::areInlineCompatible(const Function *Caller,
CalleeAttrs.set(SMEAttrs::SM_Enabled, true);
}

if (CalleeAttrs.isNewZA())
if (CalleeAttrs.isNewZA() || CalleeAttrs.isNewZT0())
return false;

if (CallerAttrs.requiresLazySave(CalleeAttrs) ||
Expand Down
30 changes: 27 additions & 3 deletions llvm/test/Transforms/Inline/AArch64/sme-pstateza-attrs.ll
Original file line number Diff line number Diff line change
Expand Up @@ -391,9 +391,33 @@ define void @nonzt0_callee() {
ret void
}

define void @new_zt0_callee() "aarch64_new_zt0" {
; CHECK-LABEL: define void @new_zt0_callee
; CHECK-SAME: () #[[ATTR4:[0-9]+]] {
; CHECK-NEXT: call void asm sideeffect "
; CHECK-NEXT: call void @inlined_body()
; CHECK-NEXT: ret void
;
call void asm sideeffect "; inlineasm", ""()
call void @inlined_body()
ret void
}

define void @nonzt0_caller_new_zt0_callee_dont_inline() {
; CHECK-LABEL: define void @nonzt0_caller_new_zt0_callee_dont_inline
; CHECK-SAME: () #[[ATTR0]] {
; CHECK-NEXT: entry:
; CHECK-NEXT: call void @new_zt0_callee()
; CHECK-NEXT: ret void
;
entry:
call void @new_zt0_callee()
ret void
}

define void @shared_zt0_caller_nonzt0_callee_dont_inline() "aarch64_inout_zt0" {
; CHECK-LABEL: define void @shared_zt0_caller_nonzt0_callee_dont_inline
; CHECK-SAME: () #[[ATTR4:[0-9]+]] {
; CHECK-SAME: () #[[ATTR5:[0-9]+]] {
; CHECK-NEXT: call void @nonzt0_callee()
; CHECK-NEXT: ret void
;
Expand All @@ -403,7 +427,7 @@ define void @shared_zt0_caller_nonzt0_callee_dont_inline() "aarch64_inout_zt0" {

define void @shared_zt0_callee() "aarch64_inout_zt0" {
; CHECK-LABEL: define void @shared_zt0_callee
; CHECK-SAME: () #[[ATTR4]] {
; CHECK-SAME: () #[[ATTR5]] {
; CHECK-NEXT: call void asm sideeffect "
; CHECK-NEXT: call void @inlined_body()
; CHECK-NEXT: ret void
Expand All @@ -415,7 +439,7 @@ define void @shared_zt0_callee() "aarch64_inout_zt0" {

define void @shared_zt0_caller_shared_zt0_callee_inline() "aarch64_inout_zt0" {
; CHECK-LABEL: define void @shared_zt0_caller_shared_zt0_callee_inline
; CHECK-SAME: () #[[ATTR4]] {
; CHECK-SAME: () #[[ATTR5]] {
; CHECK-NEXT: call void asm sideeffect "
; CHECK-NEXT: call void @inlined_body()
; CHECK-NEXT: ret void
Expand Down
Loading