+2014-10-31 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/opt42.ad[sb]: New test.
+
2014-10-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
PR tree-optimization/63259
--- /dev/null
+-- { dg-do compile }
+-- { dg-options "-cargs --param max-completely-peeled-insns=200 -margs -O3" }
+
+package body Opt42 is
+
+ function "*" (Left, Right : in Array_Type) return Array_Type is
+ Temp : Float;
+ Result : Array_Type;
+ begin
+ for I in Index_Type loop
+ for J in Index_Type loop
+ Temp := 0.0;
+ for K in Index_Type loop
+ Temp := Temp + Left (I) (K) * Right (K) (J);
+ end loop;
+ Result (I) (J) := Temp;
+ end loop;
+ end loop;
+ return Result;
+ end "*";
+
+end Opt42;
--- /dev/null
+package Opt42 is
+
+ type Index_Type is range 1 .. 7;
+ type Row_Type is array (Index_Type) of Float;
+ type Array_Type is array (Index_Type) of Row_Type;
+
+ function "*" (Left, Right : in Array_Type) return Array_Type;
+
+end Opt42;