xref: /aosp_15_r20/external/clang/test/CodeGen/iamcu-abi.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -triple i386-pc-elfiamcu -emit-llvm -o - %s | FileCheck %s
2*67e74705SXin Li 
3*67e74705SXin Li // CHECK: target datalayout = "e-m:e-p:32:32-i64:32-f64:32-f128:32-n8:16:32-a:0:32-S32"
4*67e74705SXin Li // CHECK: target triple = "i386-pc-elfiamcu"
5*67e74705SXin Li 
6*67e74705SXin Li 
7*67e74705SXin Li void food(double *d);
8*67e74705SXin Li void fooll(long long *ll);
9*67e74705SXin Li void fooull(unsigned long long *ull);
10*67e74705SXin Li void foold(long double *ld);
11*67e74705SXin Li 
12*67e74705SXin Li // CHECK-LABEL: define void @testdouble()
13*67e74705SXin Li // CHECK: alloca double, align 4
testdouble()14*67e74705SXin Li void testdouble() {
15*67e74705SXin Li   double d = 2.0;
16*67e74705SXin Li   food(&d);
17*67e74705SXin Li }
18*67e74705SXin Li 
19*67e74705SXin Li // CHECK-LABEL: define void @testlonglong()
20*67e74705SXin Li // CHECK: alloca i64, align 4
testlonglong()21*67e74705SXin Li void testlonglong() {
22*67e74705SXin Li   long long ll = 2;
23*67e74705SXin Li   fooll(&ll);
24*67e74705SXin Li }
25*67e74705SXin Li 
26*67e74705SXin Li // CHECK-LABEL: define void @testunsignedlonglong()
27*67e74705SXin Li // CHECK: alloca i64, align 4
testunsignedlonglong()28*67e74705SXin Li void testunsignedlonglong() {
29*67e74705SXin Li   unsigned long long ull = 2;
30*67e74705SXin Li   fooull(&ull);
31*67e74705SXin Li }
32*67e74705SXin Li 
33*67e74705SXin Li // CHECK-LABEL: define void @testlongdouble()
34*67e74705SXin Li // CHECK: alloca double, align 4
testlongdouble()35*67e74705SXin Li void testlongdouble() {
36*67e74705SXin Li   long double ld = 2.0;
37*67e74705SXin Li   foold(&ld);
38*67e74705SXin Li }
39