aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/opt42.adb
blob: 620f61a5b96813bac63e514970552446dad9ca46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-- { 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;