Commit a2ce7808 by Eric Botcazou Committed by Eric Botcazou

* tree-ssa-loop-im.c (for_each_index) <CONST_DECL>: New case.

From-SVN: r194320
parent cf3c30d3
2012-12-08 Eric Botcazou <ebotcazou@adacore.com>
* tree-ssa-loop-im.c (for_each_index) <CONST_DECL>: New case.
2012-12-07 Steven Bosscher <steven@gcc.gnu.org>
* ree.c (struct ext_cand): Remove GTY markers.
2012-12-08 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/vect9.ad[sb]: New test.
* gnat.dg/vect9_pkg.ads: New helper.
2012-12-07 Mike Stump <mikestump@comcast.net>
* gnat.dg/discr38.adb: Don't use ^M line endings.
......
-- { dg-do compile }
-- { dg-options "-O" }
package body Vect9 is
function Cmove
(X : in Unit;
Y : in Unit;
If_True : in Unit;
If_False : in Unit)
return Unit
is
Res : Unit;
begin
for P in Unit'Range loop
if X (P) >= Y (P) then
Res (P) := If_True (P);
else
Res (P) := If_False (P);
end if;
end loop;
return Res;
end;
pragma Inline_Always (Cmove);
procedure Proc
(This : in Rec;
CV : in Unit_Vector;
Data : in out Unit_Vector)
is
begin
for Index in Data'Range loop
Data (Index) := Mul (Zero_Unit, Zero_Unit);
declare
Addend : constant Unit
:= Cmove (CV (Index), Zero_Unit, Zero_Unit, Zero_Unit) ;
begin
Data (Index) := Data(Index) + Addend;
end;
This.Data (Index) := Data (Index);
end loop;
end;
end Vect9;
with Vect9_Pkg; use Vect9_Pkg;
package Vect9 is
type Rec is record
Data : Vector_Access;
end record;
procedure Proc
(This : in Rec;
CV : in Unit_Vector;
Data : in out Unit_Vector);
end Vect9;
package Vect9_Pkg is
type Unit is array (1 .. 4) of Float;
for Unit'Alignment use 32;
pragma Machine_Attribute (Unit, "vector_type");
pragma Machine_Attribute (Unit, "may_alias");
Zero_Unit : constant Unit := (others => 0.0);
function Mul (X : in Unit; Y : in Unit) return Unit;
function "+"(Left, Right : Unit) return Unit;
function "*"(Left, Right : Unit) return Unit;
type Unit_Vector is array (Positive range <>) of Unit;
type Vector_Access is access all Unit_Vector;
end Vect9_Pkg;
......@@ -291,6 +291,7 @@ for_each_index (tree *addr_p, bool (*cbck) (tree, tree *, void *), void *data)
case VAR_DECL:
case PARM_DECL:
case CONST_DECL:
case STRING_CST:
case RESULT_DECL:
case VECTOR_CST:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment