diff options
Diffstat (limited to 'test/CodeGen/arm-aapcs-vfp.c')
-rw-r--r-- | test/CodeGen/arm-aapcs-vfp.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/CodeGen/arm-aapcs-vfp.c b/test/CodeGen/arm-aapcs-vfp.c index 017c145..614b52d 100644 --- a/test/CodeGen/arm-aapcs-vfp.c +++ b/test/CodeGen/arm-aapcs-vfp.c @@ -1,3 +1,4 @@ +// REQUIRES: arm-registered-target // RUN: %clang_cc1 -triple thumbv7-apple-darwin9 \ // RUN: -target-abi aapcs \ // RUN: -target-cpu cortex-a8 \ @@ -33,6 +34,13 @@ void test_complex(__complex__ double cd) { complex_callee(cd); } +// Long double is the same as double on AAPCS, it should be homogeneous. +extern void complex_long_callee(__complex__ long double); +// CHECK: define arm_aapcs_vfpcc void @test_complex_long(double %{{.*}}, double %{{.*}}) +void test_complex_long(__complex__ long double cd) { + complex_callee(cd); +} + // Structs with more than 4 elements of the base type are not treated // as homogeneous aggregates. Test that. @@ -80,3 +88,7 @@ extern void neon_callee(struct neon_struct); void test_neon(struct neon_struct arg) { neon_callee(arg); } + +// CHECK: define arm_aapcs_vfpcc void @f33(%struct.s33* byval %s) +struct s33 { char buf[32*32]; }; +void f33(struct s33 s) { } |