[gcc]
[official-gcc.git] / gcc / testsuite / gcc.target / nvptx / abi-scalar-arg.c
blob0fe1e671d59a711e29bf48f63b20d5637e4c40cc
1 /* { dg-do compile } */
2 /* { dg-additional-options "-Wno-pedantic -Wno-long-long -m64" } */
4 /* Scalar return types. In registers when <= 64 bit. */
6 typedef int __attribute__((mode(TI))) ti;
8 /* { dg-final { scan-assembler-times ".extern .func dcl_av;" 1 } } */
9 void dcl_av (void);
11 /* { dg-final { scan-assembler-times ".extern .func dcl_ac \\(.param.u32 %\[_a-z0-9\]*\\);" 1 } } */
12 void dcl_ac (char);
14 /* { dg-final { scan-assembler-times ".extern .func dcl_as \\(.param.u32 %\[_a-z0-9\]*\\);" 1 } } */
15 void dcl_as (short);
17 /* { dg-final { scan-assembler-times ".extern .func dcl_ai \\(.param.u32 %\[_a-z0-9\]*\\);" 1 } } */
18 void dcl_ai (int);
20 /* { dg-final { scan-assembler-times ".extern .func dcl_all \\(.param.u64 %\[_a-z0-9\]*\\);" 1 } } */
21 void dcl_all (long long);
23 /* { dg-final { scan-assembler-times ".extern .func dcl_ati \\(.param.u64 %\[_a-z0-9\]*\\);" 1 } } */
24 void dcl_ati (ti);
26 /* { dg-final { scan-assembler-times ".extern .func dcl_af \\(.param.f32 %\[_a-z0-9\]*\\);" 1 } } */
27 void dcl_af (float);
29 /* { dg-final { scan-assembler-times ".extern .func dcl_ad \\(.param.f64 %\[_a-z0-9\]*\\);" 1 } } */
30 void dcl_ad (double);
32 /* { dg-final { scan-assembler-times ".extern .func dcl_ap \\(.param.u64 %\[_a-z0-9\]*\\);" 1 } } */
33 void dcl_ap (void *);
35 void test_1 (void)
37 dcl_av ();
38 dcl_ac (1);
39 dcl_as (2);
40 dcl_ai (3);
41 dcl_all (4);
42 dcl_ati (5);
43 dcl_af (6);
44 dcl_ad (7);
45 dcl_ap (0);
48 /* { dg-final { scan-assembler-times ".visible .func dfn_av(?:;|\[\r\n\]+\{)" 2 } } */
49 void dfn_av (void)
53 /* { dg-final { scan-assembler-times ".visible .func dfn_ac \\(.param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
54 void dfn_ac (char c)
58 /* { dg-final { scan-assembler-times ".visible .func dfn_as \\(.param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
59 void dfn_as (short s)
63 /* { dg-final { scan-assembler-times ".visible .func dfn_ai \\(.param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
64 void dfn_ai (int i)
68 /* { dg-final { scan-assembler-times ".visible .func dfn_all \\(.param.u64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
69 void dfn_all (long long ll)
73 /* { dg-final { scan-assembler-times ".visible .func dfn_ati \\(.param.u64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
74 void dfn_ati (ti t)
78 /* { dg-final { scan-assembler-times ".visible .func dfn_af \\(.param.f32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
79 void dfn_af (float f)
83 /* { dg-final { scan-assembler-times ".visible .func dfn_ad \\(.param.f64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
84 void dfn_ad (double d)
88 /* { dg-final { scan-assembler-times ".visible .func dfn_ap \\(.param.u64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
89 void dfn_ap (void *p)