; RUN: llc -mtriple arm64-windows %s -o - | FileCheck %s ; Function Attrs: noinline nounwind optnone uwtable define dso_local i32 @foo() { entry: ; CHECK-LABEL: foo ; CHECK: .set .Lfoo$frame_escape_0, -4 %count = alloca i32, align 4 call void (...) @llvm.localescape(i32* %count) ret i32 0 } define internal i32 @"?filt$0@0@foo@@"(i8* %exception_pointers, i8* %frame_pointer) { entry: ; CHECK-LABEL: @"?filt$0@0@foo@@" ; CHECK: movz x8, #:abs_g1_s:.Lfoo$frame_escape_0 ; CHECK: movk x8, #:abs_g0_nc:.Lfoo$frame_escape_0 %0 = call i8* @llvm.localrecover(i8* bitcast (i32 ()* @foo to i8*), i8* %frame_pointer, i32 0) %count = bitcast i8* %0 to i32* %1 = load i32, i32* %count, align 4 ret i32 %1 } ; Function Attrs: nounwind readnone declare i8* @llvm.localrecover(i8*, i8*, i32) #2 ; Function Attrs: nounwind declare void @llvm.localescape(...) #3