diff options
Diffstat (limited to 'test/CodeGen/iamcu-abi.c')
-rw-r--r-- | test/CodeGen/iamcu-abi.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/CodeGen/iamcu-abi.c b/test/CodeGen/iamcu-abi.c new file mode 100644 index 0000000000000..897d475d49723 --- /dev/null +++ b/test/CodeGen/iamcu-abi.c @@ -0,0 +1,38 @@ +// RUN: %clang_cc1 -triple i386-pc-elfiamcu -emit-llvm -o - %s | FileCheck %s + +// CHECK: target datalayout = "e-m:e-p:32:32-i64:32-f64:32-f128:32-n8:16:32-a:0:32-S32" +// CHECK: target triple = "i386-pc-elfiamcu" + + +void food(double *d); +void fooll(long long *ll); +void fooull(unsigned long long *ull); +void foold(long double *ld); + +// CHECK-LABEL: define void @testdouble() +// CHECK: alloca double, align 4 +void testdouble() { + double d = 2.0; + food(&d); +} + +// CHECK-LABEL: define void @testlonglong() +// CHECK: alloca i64, align 4 +void testlonglong() { + long long ll = 2; + fooll(&ll); +} + +// CHECK-LABEL: define void @testunsignedlonglong() +// CHECK: alloca i64, align 4 +void testunsignedlonglong() { + unsigned long long ull = 2; + fooull(&ull); +} + +// CHECK-LABEL: define void @testlongdouble() +// CHECK: alloca double, align 4 +void testlongdouble() { + long double ld = 2.0; + foold(&ld); +} |