xref: /aosp_15_r20/external/clang/test/CodeGen/x86_32-arguments-win32.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -w -triple i386-pc-win32 -emit-llvm -o - %s | FileCheck %s
2*67e74705SXin Li 
3*67e74705SXin Li // CHECK-LABEL: define i64 @f1_1()
4*67e74705SXin Li // CHECK-LABEL: define void @f1_2(i32 %a0.0, i32 %a0.1)
5*67e74705SXin Li struct s1 {
6*67e74705SXin Li   int a;
7*67e74705SXin Li   int b;
8*67e74705SXin Li };
f1_1(void)9*67e74705SXin Li struct s1 f1_1(void) { while (1) {} }
f1_2(struct s1 a0)10*67e74705SXin Li void f1_2(struct s1 a0) {}
11*67e74705SXin Li 
12*67e74705SXin Li // CHECK-LABEL: define i32 @f2_1()
13*67e74705SXin Li struct s2 {
14*67e74705SXin Li   short a;
15*67e74705SXin Li   short b;
16*67e74705SXin Li };
f2_1(void)17*67e74705SXin Li struct s2 f2_1(void) { while (1) {} }
18*67e74705SXin Li 
19*67e74705SXin Li // CHECK-LABEL: define i16 @f3_1()
20*67e74705SXin Li struct s3 {
21*67e74705SXin Li   char a;
22*67e74705SXin Li   char b;
23*67e74705SXin Li };
f3_1(void)24*67e74705SXin Li struct s3 f3_1(void) { while (1) {} }
25*67e74705SXin Li 
26*67e74705SXin Li // CHECK-LABEL: define i8 @f4_1()
27*67e74705SXin Li struct s4 {
28*67e74705SXin Li   char a:4;
29*67e74705SXin Li   char b:4;
30*67e74705SXin Li };
f4_1(void)31*67e74705SXin Li struct s4 f4_1(void) { while (1) {} }
32*67e74705SXin Li 
33*67e74705SXin Li // CHECK-LABEL: define i64 @f5_1()
34*67e74705SXin Li // CHECK-LABEL: define void @f5_2(double %a0.0)
35*67e74705SXin Li struct s5 {
36*67e74705SXin Li   double a;
37*67e74705SXin Li };
f5_1(void)38*67e74705SXin Li struct s5 f5_1(void) { while (1) {} }
f5_2(struct s5 a0)39*67e74705SXin Li void f5_2(struct s5 a0) {}
40*67e74705SXin Li 
41*67e74705SXin Li // CHECK-LABEL: define i32 @f6_1()
42*67e74705SXin Li // CHECK-LABEL: define void @f6_2(float %a0.0)
43*67e74705SXin Li struct s6 {
44*67e74705SXin Li   float a;
45*67e74705SXin Li };
f6_1(void)46*67e74705SXin Li struct s6 f6_1(void) { while (1) {} }
f6_2(struct s6 a0)47*67e74705SXin Li void f6_2(struct s6 a0) {}
48*67e74705SXin Li 
49