Use gather loads for strided accesses
[official-gcc.git] / gcc / testsuite / gcc.target / nvptx / abi-knr-ret.c
blob17bfd7589c7ab059e1c729c55d9e1b46de04b533
1 /* { dg-do compile } */
2 /* { dg-additional-options "-Wno-pedantic -Wno-long-long -m64" } */
4 /* K+R returns. as for ANSI . */
6 /* { dg-final { scan-assembler-times ".extern .func dcl_rv;" 1 } } */
7 void dcl_rv ();
9 /* { dg-final { scan-assembler-times ".extern .func \\(.param.u32 %\[_a-z\]*\\) dcl_rc;" 1 } } */
10 char dcl_rc ();
12 /* { dg-final { scan-assembler-times ".extern .func \\(.param.u32 %\[_a-z\]*\\) dcl_rs;" 1 } } */
13 short dcl_rs ();
15 /* { dg-final { scan-assembler-times ".extern .func \\(.param.u32 %\[_a-z\]*\\) dcl_ri;" 1 } } */
16 int dcl_ri ();
18 /* { dg-final { scan-assembler-times ".extern .func \\(.param.u64 %\[_a-z\]*\\) dcl_rll;" 1 } } */
19 long long dcl_rll ();
21 /* { dg-final { scan-assembler-times ".extern .func \\(.param.f32 %\[_a-z\]*\\) dcl_rf;" 1 } } */
22 float dcl_rf ();
24 /* { dg-final { scan-assembler-times ".extern .func \\(.param.f64 %\[_a-z\]*\\) dcl_rd;" 1 } } */
25 double dcl_rd ();
27 /* { dg-final { scan-assembler-times ".extern .func \\(.param.u64 %\[_a-z\]*\\) dcl_rp;" 1 } } */
28 void *dcl_rp ();
30 void test_1 ()
32 dcl_rv ();
33 dcl_rc ();
34 dcl_rs ();
35 dcl_ri ();
36 dcl_rll ();
37 dcl_rf ();
38 dcl_rd ();
39 dcl_rp ();
42 /* { dg-final { scan-assembler-times ".visible .func dfn_rv(?:;|\[\r\n\]+\{)" 2 } } */
43 void dfn_rv ()
45 return;
48 /* { dg-final { scan-assembler-times ".visible .func \\(.param.u32 %\[_a-z0-9\]*\\) dfn_rc(?:;|\[\r\n\]+\{)" 2 } } */
49 char dfn_rc ()
51 return 1;
54 /* { dg-final { scan-assembler-times ".visible .func \\(.param.u32 %\[_a-z0-0\]*\\) dfn_rs(?:;|\[\r\n\]+\{)" 2 } } */
55 short dfn_rs ()
57 return 2;
60 /* { dg-final { scan-assembler-times ".visible .func \\(.param.u32 %\[_a-z0-9\]*\\) dfn_ri(?:;|\[\r\n\]+\{)" 2 } } */
61 int dfn_ri ()
63 return 3;
66 /* { dg-final { scan-assembler-times ".visible .func \\(.param.u64 %\[_a-z0-9\]*\\) dfn_rll(?:;|\[\r\n\]+\{)" 2 } } */
67 long long dfn_rll ()
69 return 4;
72 /* { dg-final { scan-assembler-times ".visible .func \\(.param.f32 %\[_a-z0-9\]*\\) dfn_rf(?:;|\[\r\n\]+\{)" 2 } } */
73 float dfn_rf ()
75 return 5;
78 /* { dg-final { scan-assembler-times ".visible .func \\(.param.f64 %\[_a-z0-9\]*\\) dfn_rd(?:;|\[\r\n\]+\{)" 2 } } */
79 double dfn_rd ()
81 return 6;
84 /* { dg-final { scan-assembler-times ".visible .func \\(.param.u64 %\[_a-z0-9\]*\\) dfn_rp(?:;|\[\r\n\]+\{)" 2 } } */
85 void *dfn_rp ()
87 return 0;