Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/opt/20181025-1.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
line wrap: on
line source
// { dg-do compile } // { dg-options "-Ofast" } template <typename Number> class Vector { typedef Number value_type; typedef const value_type *const_iterator; Number norm_sqr () const; const_iterator begin () const; unsigned int dim; }; template <typename Number> static inline Number local_sqr (const Number x) { return x*x; } template <typename Number> Number Vector<Number>::norm_sqr () const { Number sum0 = 0, sum1 = 0, sum2 = 0, sum3 = 0; const_iterator ptr = begin(), eptr = ptr + (dim/4)*4; while (ptr!=eptr) { sum0 += ::local_sqr(*ptr++); sum1 += ::local_sqr(*ptr++); } return sum0+sum1+sum2+sum3; } template class Vector<double>;