* auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count.
[official-gcc.git] / gcc / testsuite / g++.dg / vect / pr68145.cc
blob8a1e10ee7833937d1440a3393df513235be85bd1
1 /* { dg-do compile } */
2 /* { dg-additional-options "-Wno-return-type" } */
4 struct A {
5 bool operator()(int p1, int p2) { return p1 && p2; }
6 };
7 class B {
8 public:
9 bool *cbegin();
10 bool *cend();
12 template <class T> void operator&&(B p1, T p2) {
13 B a;
14 arrayContTransform(p1, p2, a, A());
17 template <typename _InputIterator1, typename T, typename _OutputIterator,
18 typename _BinaryOperation>
19 void myrtransform(_InputIterator1 p1, _OutputIterator p2, T p3,
20 _BinaryOperation p4) {
21 _InputIterator1 b;
22 for (; b != p1; ++b, ++p2)
23 *p2 = p4(*b, p3);
26 template <typename L, typename R, typename RES, typename BinaryOperator>
27 void arrayContTransform(L p1, R p2, RES p3, BinaryOperator p4) {
28 myrtransform(p1.cend(), p3.cbegin(), p2, p4);
31 class C {
32 public:
33 B getArrayBool();
35 class D {
36 B getArrayBool(const int &);
37 C lnode_p;
39 bool c;
40 B D::getArrayBool(const int &) { lnode_p.getArrayBool() && c; }
42 // { dg-final { scan-tree-dump "vectorized 1 loops" "vect" { target { i?86-*-* x86_64-*-* } } } }