diff options
Diffstat (limited to 'clang/test/CodeGen/AArch64/args.cpp')
| -rw-r--r-- | clang/test/CodeGen/AArch64/args.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/clang/test/CodeGen/AArch64/args.cpp b/clang/test/CodeGen/AArch64/args.cpp index 3cb62d3..c284316 100644 --- a/clang/test/CodeGen/AArch64/args.cpp +++ b/clang/test/CodeGen/AArch64/args.cpp @@ -17,11 +17,29 @@ struct Empty {}; // DARWIN: define{{.*}} i32 @empty_arg(i32 noundef %a) // C: define{{.*}} i32 @empty_arg(i32 noundef %a) -// CXX: define{{.*}} i32 @empty_arg(i8 %e.coerce, i32 noundef %a) +// CXX: define{{.*}} i32 @empty_arg(i64 %e.coerce, i32 noundef %a) EXTERNC int empty_arg(struct Empty e, int a) { return a; } +// CXX: define{{.*}} i32 @empty_align8_arg(i64 %a.coerce, i32 noundef %b) +struct EmptyAlign8 { int __attribute__((aligned(8))) : 0; }; +EXTERNC int empty_align8_arg(struct EmptyAlign8 a, int b) { + return b; +} + +// CXX: define{{.*}} i32 @empty_align16_arg(i128 %a.coerce, i32 noundef %b) +struct EmptyAlign16 { long long int __attribute__((aligned(16))) : 0; }; +EXTERNC int empty_align16_arg(struct EmptyAlign16 a, int b) { + return b; +} + +// CXX: define{{.*}} i32 @empty_align32_arg(ptr dead_on_return noundef %a, i32 noundef %b) +struct EmptyAlign32 { long long int __attribute__((aligned(32))) : 0; }; +EXTERNC int empty_align32_arg(struct EmptyAlign32 a, int b) { + return b; +} + // DARWIN: define{{.*}} void @empty_ret() // C: define{{.*}} void @empty_ret() // CXX: define{{.*}} void @empty_ret() |
