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