Skip to content

Commit 3b410ac

Browse files
- Disable outlining from functions which require streaming-mode changes.
1 parent 3f1b271 commit 3b410ac

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

llvm/test/CodeGen/AArch64/sme-vg-to-stack.ll

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve -mattr=+sme2 -verify-machineinstrs < %s | FileCheck %s
22
; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve -mattr=+sme2 -frame-pointer=non-leaf -verify-machineinstrs < %s | FileCheck %s --check-prefix=FP-CHECK
33
; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sme2 -frame-pointer=non-leaf -verify-machineinstrs < %s | FileCheck %s --check-prefix=NO-SVE-CHECK
4+
; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve -mattr=+sme2 -verify-machineinstrs -enable-machine-outliner < %s | FileCheck %s --check-prefix=OUTLINER-CHECK
45

56
declare void @callee();
67
declare void @fixed_callee(<4 x i32>);
@@ -97,6 +98,9 @@ define void @vg_unwind_simple() #0 {
9798
; FP-CHECK-NEXT: .cfi_restore b14
9899
; FP-CHECK-NEXT: .cfi_restore b15
99100
; FP-CHECK-NEXT: ret
101+
;
102+
; OUTLINER-CHECK-LABEL: vg_unwind_simple:
103+
; OUTLINER-CHECK-NOT: OUTLINED_FUNCTION_
100104
;
101105
call void @callee();
102106
ret void;
@@ -202,6 +206,9 @@ define void @vg_unwind_needs_gap() #0 {
202206
; FP-CHECK-NEXT: .cfi_restore b14
203207
; FP-CHECK-NEXT: .cfi_restore b15
204208
; FP-CHECK-NEXT: ret
209+
;
210+
; OUTLINER-CHECK-LABEL: vg_unwind_needs_gap:
211+
; OUTLINER-CHECK-NOT: OUTLINED_FUNCTION_
205212
;
206213
call void asm sideeffect "", "~{x20}"()
207214
call void @callee();
@@ -302,6 +309,9 @@ define void @vg_unwind_with_fixed_args(<4 x i32> %x) #0 {
302309
; FP-CHECK-NEXT: .cfi_restore b14
303310
; FP-CHECK-NEXT: .cfi_restore b15
304311
; FP-CHECK-NEXT: ret
312+
;
313+
; OUTLINER-CHECK-LABEL: vg_unwind_with_fixed_args:
314+
; OUTLINER-CHECK-NOT: OUTLINED_FUNCTION_
305315
;
306316
call void @fixed_callee(<4 x i32> %x);
307317
ret void;
@@ -493,6 +503,9 @@ define void @vg_unwind_with_sve_args(<vscale x 2 x i64> %x) #0 {
493503
; FP-CHECK-NEXT: .cfi_restore w30
494504
; FP-CHECK-NEXT: .cfi_restore w29
495505
; FP-CHECK-NEXT: ret
506+
;
507+
; OUTLINER-CHECK-LABEL: vg_unwind_with_sve_args:
508+
; OUTLINER-CHECK-NOT: OUTLINED_FUNCTION_
496509
;
497510
call void asm sideeffect "", "~{x28}"()
498511
call void @scalable_callee(<vscale x 2 x i64> %x);
@@ -620,6 +633,9 @@ define void @vg_unwind_multiple_scratch_regs(ptr %out) #1 {
620633
; FP-CHECK-NEXT: .cfi_restore b15
621634
; FP-CHECK-NEXT: ret
622635
;
636+
; OUTLINER-CHECK-LABEL: vg_unwind_multiple_scratch_regs:
637+
; OUTLINER-CHECK-NOT: OUTLINED_FUNCTION_
638+
;
623639
entry:
624640
%v = alloca i8, i64 327680, align 1
625641
store ptr %v, ptr %out, align 8
@@ -740,6 +756,9 @@ define void @vg_locally_streaming_fn() #3 {
740756
; FP-CHECK-NEXT: .cfi_restore b14
741757
; FP-CHECK-NEXT: .cfi_restore b15
742758
; FP-CHECK-NEXT: ret
759+
;
760+
; OUTLINER-CHECK-LABEL: vg_locally_streaming_fn:
761+
; OUTLINER-CHECK-NOT: OUTLINED_FUNCTION_
743762
;
744763
call void @callee()
745764
call void @streaming_callee()
@@ -856,6 +875,9 @@ define void @streaming_compatible_to_streaming() #4 {
856875
; FP-CHECK-NEXT: .cfi_restore b14
857876
; FP-CHECK-NEXT: .cfi_restore b15
858877
; FP-CHECK-NEXT: ret
878+
;
879+
; OUTLINER-CHECK-LABEL: streaming_compatible_to_streaming:
880+
; OUTLINER-CHECK-NOT: OUTLINED_FUNCTION_
859881
;
860882
call void @streaming_callee()
861883
ret void
@@ -970,6 +992,9 @@ define void @streaming_compatible_to_non_streaming() #4 {
970992
; FP-CHECK-NEXT: .cfi_restore b14
971993
; FP-CHECK-NEXT: .cfi_restore b15
972994
; FP-CHECK-NEXT: ret
995+
;
996+
; OUTLINER-CHECK-LABEL: streaming_compatible_to_non_streaming:
997+
; OUTLINER-CHECK-NOT: OUTLINED_FUNCTION_
973998
;
974999
call void @callee()
9751000
ret void
@@ -1041,6 +1066,9 @@ define void @streaming_compatible_no_sve(i32 noundef %x) #4 {
10411066
; NO-SVE-CHECK-NEXT: .cfi_restore b14
10421067
; NO-SVE-CHECK-NEXT: .cfi_restore b15
10431068
; NO-SVE-CHECK-NEXT: ret
1069+
;
1070+
; OUTLINER-CHECK-LABEL: streaming_compatible_no_sve:
1071+
; OUTLINER-CHECK-NOT: OUTLINED_FUNCTION_
10441072
;
10451073
call void @streaming_callee_with_arg(i32 %x)
10461074
ret void
@@ -1135,6 +1163,9 @@ define void @vg_unwind_noasync() #5 {
11351163
; FP-CHECK-NEXT: .cfi_restore b14
11361164
; FP-CHECK-NEXT: .cfi_restore b15
11371165
; FP-CHECK-NEXT: ret
1166+
; OUTLINER-CHECK-LABEL: vg_unwind_noasync:
1167+
; OUTLINER-CHECK-NOT: OUTLINED_FUNCTION_
1168+
;
11381169
call void @callee();
11391170
ret void;
11401171
}

0 commit comments

Comments
 (0)