aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/g++.dg/tree-ssa/pr57380.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/tree-ssa/pr57380.C')
-rw-r--r--gcc-4.9/gcc/testsuite/g++.dg/tree-ssa/pr57380.C21
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/tree-ssa/pr57380.C b/gcc-4.9/gcc/testsuite/g++.dg/tree-ssa/pr57380.C
new file mode 100644
index 000000000..0a2b2ad5f
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/g++.dg/tree-ssa/pr57380.C
@@ -0,0 +1,21 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fdump-tree-phiopt1" } */
+
+struct my_array {
+ int data[4];
+};
+
+const int& my_max(const int& a, const int& b) {
+ return a < b ? b : a;
+}
+
+int f(my_array a, my_array b) {
+ int res = 0;
+ for (int i = 0; i < 4; ++i) {
+ res += my_max(a.data[i], b.data[i]);
+ }
+ return res;
+}
+
+/* { dg-final { scan-tree-dump "MAX_EXPR" "phiopt1" } } */
+/* { dg-final { cleanup-tree-dump "phiopt1" } } */