summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/vect/pr105254.cc
blob: 34814671a548c8a26324833d8db3c385e2771543 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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);
}