OSDN Git Service

* gcc-interface/trans.c (Call_to_gnu): Robustify test for function case
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gnat.dg / vect6.adb
1 -- { dg-do compile { target i?86-*-* x86_64-*-* } }
2 -- { dg-options "-O3 -msse2 -fdump-tree-vect-details" }
3
4 package body Vect6 is
5
6    function "+" (X : Varray; Y : Long_Float) return Varray is
7       R : Varray (X'Range);
8    begin
9       for I in X'Range loop
10          R(I) := X(I) + Y;
11       end loop;
12       return R;
13    end;
14
15    procedure Add (X : Varray; Y : Long_Float; R : out Varray) is
16    begin
17       for I in X'Range loop
18          R(I) := X(I) + Y;
19       end loop;
20    end;
21
22    procedure Add (X : not null access Varray; Y : Long_Float; R : not null access Varray) is
23    begin
24       for I in X'Range loop
25          R(I) := X(I) + Y;
26       end loop;
27    end;
28
29
30    function "+" (X : Sarray; Y : Long_Float) return Sarray is
31       R : Sarray;
32    begin
33       for I in Sarray'Range loop
34          R(I) := X(I) + Y;
35       end loop;
36       return R;
37    end;
38
39    procedure Add (X : Sarray; Y : Long_Float; R : out Sarray) is
40    begin
41       for I in Sarray'Range loop
42          R(I) := X(I) + Y;
43       end loop;
44    end;
45
46    procedure Add (X : not null access Sarray; Y : Long_Float; R : not null access Sarray) is
47    begin
48       for I in Sarray'Range loop
49          R(I) := X(I) + Y;
50       end loop;
51    end;
52
53
54    function "+" (X : Darray1; Y : Long_Float) return Darray1 is
55       R : Darray1;
56    begin
57       for I in Darray1'Range loop
58          R(I) := X(I) + Y;
59       end loop;
60       return R;
61    end;
62
63    procedure Add (X : Darray1; Y : Long_Float; R : out Darray1) is
64    begin
65       for I in Darray1'Range loop
66          R(I) := X(I) + Y;
67       end loop;
68    end;
69
70    procedure Add (X : not null access Darray1; Y : Long_Float; R : not null access Darray1) is
71    begin
72       for I in Darray1'Range loop
73          R(I) := X(I) + Y;
74       end loop;
75    end;
76
77
78    function "+" (X : Darray2; Y : Long_Float) return Darray2 is
79       R : Darray2;
80    begin
81       for I in Darray2'Range loop
82          R(I) := X(I) + Y;
83       end loop;
84       return R;
85    end;
86
87    procedure Add (X : Darray2; Y : Long_Float; R : out Darray2) is
88    begin
89       for I in Darray2'Range loop
90          R(I) := X(I) + Y;
91       end loop;
92    end;
93
94    procedure Add (X : not null access Darray2; Y : Long_Float; R : not null access Darray2) is
95    begin
96       for I in Darray2'Range loop
97          R(I) := X(I) + Y;
98       end loop;
99    end;
100
101
102    function "+" (X : Darray3; Y : Long_Float) return Darray3 is
103       R : Darray3;
104    begin
105       for I in Darray3'Range loop
106          R(I) := X(I) + Y;
107       end loop;
108       return R;
109    end;
110
111    procedure Add (X : Darray3; Y : Long_Float; R : out Darray3) is
112    begin
113       for I in Darray3'Range loop
114          R(I) := X(I) + Y;
115       end loop;
116    end;
117
118    procedure Add (X : not null access Darray3; Y : Long_Float; R : not null access Darray3) is
119    begin
120       for I in Darray3'Range loop
121          R(I) := X(I) + Y;
122       end loop;
123    end;
124
125 end Vect6;
126
127 -- { dg-final { scan-tree-dump-times "vectorized 1 loops" 15 "vect"  } }
128 -- { dg-final { cleanup-tree-dump "vect" } }