aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2014-10-31 12:18:30 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2014-10-31 12:18:30 +0000
commit3012e0ab0b1e995618bbc76ea743e2f6b37616d8 (patch)
tree723ccaf1932b7e04569618febe2ad1549a17453c /gcc
parentc6e3a931201a2ce47ede92668870388df4f25219 (diff)
downloadgcc-3012e0ab0b1e995618bbc76ea743e2f6b37616d8.zip
gcc-3012e0ab0b1e995618bbc76ea743e2f6b37616d8.tar.gz
gcc-3012e0ab0b1e995618bbc76ea743e2f6b37616d8.tar.bz2
* gnat.dg/opt42.ad[sb]: New test.
From-SVN: r216972
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gnat.dg/opt42.adb22
-rw-r--r--gcc/testsuite/gnat.dg/opt42.ads9
3 files changed, 35 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index adc0e3e..e0d174d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+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
diff --git a/gcc/testsuite/gnat.dg/opt42.adb b/gcc/testsuite/gnat.dg/opt42.adb
new file mode 100644
index 0000000..620f61a
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/opt42.adb
@@ -0,0 +1,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;
diff --git a/gcc/testsuite/gnat.dg/opt42.ads b/gcc/testsuite/gnat.dg/opt42.ads
new file mode 100644
index 0000000..3d6a3c1
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/opt42.ads
@@ -0,0 +1,9 @@
+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;