summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/vect/pr33860a.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/vect/pr33860a.cc')
-rw-r--r--gcc/testsuite/g++.dg/vect/pr33860a.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/vect/pr33860a.cc b/gcc/testsuite/g++.dg/vect/pr33860a.cc
new file mode 100644
index 000000000..77e28226a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/vect/pr33860a.cc
@@ -0,0 +1,27 @@
+/* { dg-do compile } */
+/* { dg-options "-Wno-psabi" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+
+/* Testcase by Martin Michlmayr <tbm@cyrius.com> */
+
+class Matrix
+{
+ public:
+ float data[4][4] __attribute__ ((__aligned__(16)));
+ Matrix operator* (const Matrix matrix) const;
+ void makeRotationAboutVector (void);
+};
+void Matrix::makeRotationAboutVector (void)
+{
+ Matrix irx;
+ *this = irx * (*this);
+}
+Matrix Matrix::operator* (const Matrix matrix) const
+{
+ Matrix ret;
+ for (int i = 0; i < 4; i++)
+ for (int j = 0; j < 4; j++)
+ ret.data[j][i] = matrix.data[j][2] + matrix.data[j][3];
+ return ret;
+}
+
+/* { dg-final { cleanup-tree-dump "vect" } } */