diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/vect/pr105254.cc')
-rw-r--r-- | gcc/testsuite/g++.dg/vect/pr105254.cc | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/vect/pr105254.cc b/gcc/testsuite/g++.dg/vect/pr105254.cc new file mode 100644 index 00000000000..34814671a54 --- /dev/null +++ b/gcc/testsuite/g++.dg/vect/pr105254.cc @@ -0,0 +1,26 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-fvect-cost-model=dynamic -mcpu=zeus" { target aarch64*-*-* } } */ + +template <typename> +struct complex; + +template <> +struct complex<double> { + void operator+= (complex r) { v_ += r.v_; } + _Complex v_; +}; + +template <typename T> +void +bar (T); + +void +foo (complex<double> *x) +{ + complex<double> s = {0.0}; + + for (int i = 0; i < 16; ++i) + s += x[i]; + + bar<complex<double> > (s); +} |