[AArch64/arm] PR testsuite/85326 Avoid C++ tests when C++ compiler not present
[official-gcc.git] / gcc / testsuite / gcc.target / nvptx / abi-scalar-ret.c
blobe9b11ba93e8535988b8dc54c04e90105c8eae7d5
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_rv;" 1 } } */
9 void dcl_rv (void);
11 /* { dg-final { scan-assembler-times ".extern .func \\(.param.u32 %\[_a-z\]*\\) dcl_rc;" 1 } } */
12 char dcl_rc (void);
14 /* { dg-final { scan-assembler-times ".extern .func \\(.param.u32 %\[_a-z\]*\\) dcl_rs;" 1 } } */
15 short dcl_rs (void);
17 /* { dg-final { scan-assembler-times ".extern .func \\(.param.u32 %\[_a-z\]*\\) dcl_ri;" 1 } } */
18 int dcl_ri (void);
20 /* { dg-final { scan-assembler-times ".extern .func \\(.param.u64 %\[_a-z\]*\\) dcl_rll;" 1 } } */
21 long long dcl_rll (void);
23 /* { dg-final { scan-assembler-times ".extern .func dcl_rti \\(.param.u64 %\[_a-z0-9\]*\\);" 1 } } */
24 ti dcl_rti (void);
26 /* { dg-final { scan-assembler-times ".extern .func \\(.param.f32 %\[_a-z\]*\\) dcl_rf;" 1 } } */
27 float dcl_rf (void);
29 /* { dg-final { scan-assembler-times ".extern .func \\(.param.f64 %\[_a-z\]*\\) dcl_rd;" 1 } } */
30 double dcl_rd (void);
32 /* { dg-final { scan-assembler-times ".extern .func \\(.param.u64 %\[_a-z\]*\\) dcl_rp;" 1 } } */
33 void *dcl_rp (void);
35 void test_1 (void)
37 dcl_rv ();
38 dcl_rc ();
39 dcl_rs ();
40 dcl_ri ();
41 dcl_rll ();
42 dcl_rti ();
43 dcl_rf ();
44 dcl_rd ();
45 dcl_rp ();
48 /* { dg-final { scan-assembler-times ".visible .func dfn_rv(?:;|\[\r\n\]+\{)" 2 } } */
49 void dfn_rv (void)
51 return;
54 /* { dg-final { scan-assembler-times ".visible .func \\(.param.u32 %\[_a-z0-9\]*\\) dfn_rc(?:;|\[\r\n\]+\{)" 2 } } */
55 char dfn_rc (void)
57 return 1;
60 /* { dg-final { scan-assembler-times ".visible .func \\(.param.u32 %\[_a-z0-0\]*\\) dfn_rs(?:;|\[\r\n\]+\{)" 2 } } */
61 short dfn_rs (void)
63 return 2;
66 /* { dg-final { scan-assembler-times ".visible .func \\(.param.u32 %\[_a-z0-9\]*\\) dfn_ri(?:;|\[\r\n\]+\{)" 2 } } */
67 int dfn_ri (void)
69 return 3;
72 /* { dg-final { scan-assembler-times ".visible .func \\(.param.u64 %\[_a-z0-9\]*\\) dfn_rll(?:;|\[\r\n\]+\{)" 2 } } */
73 long long dfn_rll (void)
75 return 4;
78 /* { dg-final { scan-assembler-times ".visible .func dfn_rti \\(.param.u64 %\[_a-z0-9\]*\\)(?:;|\[\r\n\]+\{)" 2 } } */
79 ti dfn_rti (void)
81 return 5;
84 /* { dg-final { scan-assembler-times ".visible .func \\(.param.f32 %\[_a-z0-9\]*\\) dfn_rf(?:;|\[\r\n\]+\{)" 2 } } */
85 float dfn_rf (void)
87 return 6;
90 /* { dg-final { scan-assembler-times ".visible .func \\(.param.f64 %\[_a-z0-9\]*\\) dfn_rd(?:;|\[\r\n\]+\{)" 2 } } */
91 double dfn_rd (void)
93 return 7;
96 /* { dg-final { scan-assembler-times ".visible .func \\(.param.u64 %\[_a-z0-9\]*\\) dfn_rp(?:;|\[\r\n\]+\{)" 2 } } */
97 void *dfn_rp (void)
99 return 0;