xref: /llvm-project/clang/test/CodeGen/swift-async-extended-fp.c (revision f670c5aeeef09cd7b88e72cf8c1f2505d044a8ea)
1*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -mframe-pointer=all -triple x86_64-apple-darwin10 -target-cpu core2 -S -o - %s | FileCheck %s --check-prefix=ALWAYS-X86
2*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -mframe-pointer=all -triple x86_64-apple-darwin12 -target-cpu core2 -S -o - %s | FileCheck %s --check-prefix=ALWAYS-X86
3*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -fswift-async-fp=never -mframe-pointer=all -triple x86_64-apple-darwin10 -target-cpu core2 -S -o - %s | FileCheck %s --check-prefix=NEVER-X86
4*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -fswift-async-fp=never -mframe-pointer=all -triple x86_64-apple-darwin12 -target-cpu core2 -S -o - %s | FileCheck %s --check-prefix=NEVER-X86
5*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -fswift-async-fp=auto -mframe-pointer=all -triple x86_64-apple-darwin10 -target-cpu core2 -S -o - %s | FileCheck %s --check-prefix=AUTO-X86
6*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -fswift-async-fp=auto -mframe-pointer=all -triple x86_64-apple-darwin12 -target-cpu core2 -S -o - %s | FileCheck %s --check-prefix=ALWAYS-X86
7*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -fswift-async-fp=always -mframe-pointer=all -triple x86_64-apple-darwin10 -target-cpu core2 -S -o - %s | FileCheck %s --check-prefix=ALWAYS-X86
8*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -fswift-async-fp=always -mframe-pointer=all -triple x86_64-apple-darwin12 -target-cpu core2 -S -o - %s | FileCheck %s --check-prefix=ALWAYS-X86
9*f670c5aeSArnold Schwaighofer 
10*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -mframe-pointer=all -triple arm64-apple-ios9 -target-cpu cyclone -S -o - %s | FileCheck %s --check-prefix=ALWAYS-ARM64
11*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -mframe-pointer=all -triple arm64-apple-ios15 -target-cpu cyclone -S -o - %s | FileCheck %s --check-prefix=ALWAYS-ARM64
12*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -fswift-async-fp=auto -mframe-pointer=all -triple arm64-apple-ios9 -target-cpu cyclone -S -o - %s | FileCheck %s --check-prefix=AUTO-ARM64
13*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -fswift-async-fp=auto -mframe-pointer=all -triple arm64-apple-ios15 -target-cpu cyclone -S -o - %s | FileCheck %s --check-prefix=ALWAYS-ARM64
14*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -fswift-async-fp=never -mframe-pointer=all -triple arm64-apple-ios9 -target-cpu cyclone -S -o - %s | FileCheck %s --check-prefix=NEVER-ARM64
15*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -fswift-async-fp=never -mframe-pointer=all -triple arm64-apple-ios15 -target-cpu cyclone -S -o - %s | FileCheck %s --check-prefix=NEVER-ARM64
16*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -fswift-async-fp=always -mframe-pointer=all -triple arm64-apple-ios9 -target-cpu cyclone -S -o - %s | FileCheck %s --check-prefix=ALWAYS-ARM64
17*f670c5aeSArnold Schwaighofer // RUN: %clang_cc1 -fswift-async-fp=always -mframe-pointer=all -triple arm64-apple-ios15 -target-cpu cyclone -S -o - %s | FileCheck %s --check-prefix=ALWAYS-ARM64
18*f670c5aeSArnold Schwaighofer 
19*f670c5aeSArnold Schwaighofer // REQUIRES: aarch64-registered-target,x86-registered-target
20*f670c5aeSArnold Schwaighofer 
21*f670c5aeSArnold Schwaighofer #define SWIFTASYNCCALL __attribute__((swiftasynccall))
22*f670c5aeSArnold Schwaighofer #define ASYNC_CONTEXT __attribute__((swift_async_context))
23*f670c5aeSArnold Schwaighofer 
async_context_1(ASYNC_CONTEXT void * ctx)24*f670c5aeSArnold Schwaighofer SWIFTASYNCCALL void async_context_1(ASYNC_CONTEXT void *ctx) {}
25*f670c5aeSArnold Schwaighofer 
26*f670c5aeSArnold Schwaighofer // AUTO-X86: _async_context_1:
27*f670c5aeSArnold Schwaighofer // AUTO-X86:	_swift_async_extendedFramePointerFlags
28*f670c5aeSArnold Schwaighofer 
29*f670c5aeSArnold Schwaighofer // ALWAYS-X86: _async_context_1:
30*f670c5aeSArnold Schwaighofer // ALWAYS-X86: btsq	$60
31*f670c5aeSArnold Schwaighofer 
32*f670c5aeSArnold Schwaighofer // NEVER-X86: _async_context_1:
33*f670c5aeSArnold Schwaighofer // NEVER-X86-NOT:	_swift_async_extendedFramePointerFlags
34*f670c5aeSArnold Schwaighofer // NEVER-X86-NOT: btsq	$60
35*f670c5aeSArnold Schwaighofer 
36*f670c5aeSArnold Schwaighofer // AUTO-ARM64: _async_context_1
37*f670c5aeSArnold Schwaighofer // AUTO-ARM64: _swift_async_extendedFramePointerFlags
38*f670c5aeSArnold Schwaighofer 
39*f670c5aeSArnold Schwaighofer // ALWAYS-ARM64: _async_context_1
40*f670c5aeSArnold Schwaighofer // ALWAYS-ARM64: orr x29, x29, #0x1000000000000000
41*f670c5aeSArnold Schwaighofer 
42*f670c5aeSArnold Schwaighofer // NEVER-ARM64: _async_context_1:
43*f670c5aeSArnold Schwaighofer // NEVER-ARM64-NOT:	_swift_async_extendedFramePointerFlags
44*f670c5aeSArnold Schwaighofer // NEVER-ARM64-NOT: orr x29, x29, #0x1000000000000000
45