xref: /llvm-project/clang/test/CodeGen/AArch64/svepcs.c (revision 207e5ccceec8d3cc3f32723e78f2a142bc61b07d)
1 // RUN: %clang_cc1 -triple aarch64-linux-gnu -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECKC
2 // RUN: %clang_cc1 -triple aarch64-linux-gnu -emit-llvm -x c++ -o - %s | FileCheck %s -check-prefix=CHECKCXX
3 // RUN: %clang_cc1 -triple i686-pc-linux-gnu -verify %s
4 
5 void __attribute__((aarch64_sve_pcs)) f(int *); // expected-warning {{'aarch64_sve_pcs' calling convention is not supported for this target}}
6 
7 // CHECKC: define{{.*}} void @g(
8 // CHECKCXX: define{{.*}} void @_Z1gPi(
9 void g(int *a) {
10 
11   // CHECKC: call aarch64_sve_vector_pcs void @f(
12   // CHECKCXX: call aarch64_sve_vector_pcs void @_Z1fPi
13   f(a);
14 }
15 
16 // CHECKC: declare aarch64_sve_vector_pcs void @f(
17 // CHECKCXX: declare aarch64_sve_vector_pcs void @_Z1fPi
18 
19 void __attribute__((aarch64_sve_pcs)) h(int *a) { // expected-warning {{'aarch64_sve_pcs' calling convention is not supported for this target}}
20                                                   // CHECKC: define{{.*}} aarch64_sve_vector_pcs void @h(
21                                                   // CHECKCXX: define{{.*}} aarch64_sve_vector_pcs void @_Z1hPi(
22   f(a);
23 }
24