1 ; RUN: llc -mtriple aarch64 -enable-machine-outliner \
2 ; RUN: -verify-machineinstrs %s -o - | FileCheck %s
4 @v = common dso_local global ptr null, align 8
6 ; CHECK-LABEL: foo: // @foo
7 ; CHECK-NEXT: // %bb.0: // %entry
9 ; CHECK-NOT: OUTLINED_FUNCTION_
11 define dso_local void @foo(i32 %x) #0 {
13 %0 = zext i32 %x to i64
14 %vla = alloca i32, i64 %0, align 4
15 store volatile ptr %vla, ptr @v, align 8
16 store volatile ptr %vla, ptr @v, align 8
17 store volatile ptr %vla, ptr @v, align 8
18 store volatile ptr %vla, ptr @v, align 8
19 store volatile ptr %vla, ptr @v, align 8
20 store volatile ptr %vla, ptr @v, align 8
24 ; CHECK-LABEL: bar: // @bar
25 ; CHECK-NEXT: // %bb.0: // %entry
27 ; CHECK-NOT: OUTLINED_FUNCTION_
29 define dso_local void @bar(i32 %x) #0 {
31 %0 = zext i32 %x to i64
32 %vla = alloca i32, i64 %0, align 4
33 store volatile ptr null, ptr @v, align 8
34 store volatile ptr %vla, ptr @v, align 8
35 store volatile ptr %vla, ptr @v, align 8
36 store volatile ptr %vla, ptr @v, align 8
37 store volatile ptr %vla, ptr @v, align 8
38 store volatile ptr %vla, ptr @v, align 8
42 attributes #0 = { nounwind "target-features"="+v8.3a" "frame-pointer"="all" "sign-return-address"="all" "sign-return-address-key"="a_key" }
44 ; CHECK-NOT: OUTLINED_FUNCTION_