1-- { dg-do compile } 2-- { dg-options "-cargs --param max-completely-peeled-insns=200 -margs -O3" } 3 4package body Opt42 is 5 6 function "*" (Left, Right : in Array_Type) return Array_Type is 7 Temp : Float; 8 Result : Array_Type; 9 begin 10 for I in Index_Type loop 11 for J in Index_Type loop 12 Temp := 0.0; 13 for K in Index_Type loop 14 Temp := Temp + Left (I) (K) * Right (K) (J); 15 end loop; 16 Result (I) (J) := Temp; 17 end loop; 18 end loop; 19 return Result; 20 end "*"; 21 22end Opt42; 23