libgccjit: Add convert vector
[official-gcc.git] / gcc / testsuite / gcc.target / nvptx / abi-knr-arg.c
blobaca5073aa3fdb648b3187f2eba5a9b662038c3c7
1 /* { dg-do compile } */
2 /* { dg-additional-options "-Wno-pedantic -Wno-long-long -m64" } */
4 /* K+R args. as for ANSI except float promotes to double. */
6 /* { dg-final { scan-assembler-times ".extern .func dcl_av;" 1 } } */
7 void dcl_av ();
9 /* { dg-final { scan-assembler-times ".extern .func dcl_ac \\(.param.u32 %\[_a-z0-9\]*\\);" 1 } } */
10 void dcl_ac ();
12 /* { dg-final { scan-assembler-times ".extern .func dcl_as \\(.param.u32 %\[_a-z0-9\]*\\);" 1 } } */
13 void dcl_as ();
15 /* { dg-final { scan-assembler-times ".extern .func dcl_ai \\(.param.u32 %\[_a-z0-9\]*\\);" 1 } } */
16 void dcl_ai ();
18 /* { dg-final { scan-assembler-times ".extern .func dcl_all \\(.param.u64 %\[_a-z0-9\]*\\);" 1 } } */
19 void dcl_all ();
21 /* { dg-final { scan-assembler-times ".extern .func dcl_af \\(.param.f64 %\[_a-z0-9\]*\\);" 1 } } */
22 void dcl_af ();
24 /* { dg-final { scan-assembler-times ".extern .func dcl_ad \\(.param.f64 %\[_a-z0-9\]*\\);" 1 } } */
25 void dcl_ad ();
27 /* { dg-final { scan-assembler-times ".extern .func dcl_ap \\(.param.u64 %\[_a-z0-9\]*\\);" 1 } } */
28 void dcl_ap ();
30 void test_1 (void)
32 dcl_av ();
33 dcl_ac ((char)1);
34 dcl_as ((short)2);
35 dcl_ai ((int)3);
36 dcl_all ((long long)4);
37 dcl_af ((float)5);
38 dcl_ad ((double)6);
39 dcl_ap ((void *)0);
42 /* { dg-final { scan-assembler-times ".visible .func dfn_av(?:;|\[\r\n\]+\{)" 2 } } */
43 void dfn_av ()
47 /* { dg-final { scan-assembler-times ".visible .func dfn_ac \\(.param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
48 void dfn_ac (c)
49 char c;
53 /* { dg-final { scan-assembler-times ".visible .func dfn_as \\(.param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
54 void dfn_as (s)
55 short s;
59 /* { dg-final { scan-assembler-times ".visible .func dfn_ai \\(.param.u32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
60 void dfn_ai (i)
61 int i;
65 /* { dg-final { scan-assembler-times ".visible .func dfn_all \\(.param.u64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
66 void dfn_all (ll)
67 long long ll;
71 /* { dg-final { scan-assembler-times ".visible .func dfn_af \\(.param.f64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
72 void dfn_af (f)
73 float f;
77 /* { dg-final { scan-assembler-times ".visible .func dfn_ad \\(.param.f64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
78 void dfn_ad (d)
79 double d;
83 /* { dg-final { scan-assembler-times ".visible .func dfn_ap \\(.param.u64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
84 void dfn_ap (p)
85 void *p;
89 /* But complex float is passed as two floats. (K&R doesn't have
90 complex, so why obey k&r for the components of such an object?) */
92 /* { dg-final { scan-assembler-times ".visible .func dfn_acf \\(.param.f32 %\[_a-z0-9\]*, .param.f32 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
93 void dfn_acf (_Complex float f)