3inline void func1(
double *restrict y, 
double *restrict 
a1)
 
 
   14inline void func2(
double *restrict y, 
double *restrict 
a1, 
double *restrict 
a2)
 
   16  y[0] += 
a1[0] + 2 * 
a2[0];
 
   17  y[1] += 
a1[1] + 2 * 
a2[1];
 
   18  y[2] += 
a1[2] + 2 * 
a2[2];
 
 
   28inline void func3(
double *restrict y, 
double *restrict 
a1, 
double *restrict 
a2,
 
   31  y[0] += 
a1[0] + 2 * 
a2[0]
 
   33  y[1] += 
a1[1] + 2 * 
a2[1]
 
   35  y[2] += 
a1[2] + 2 * 
a2[2]
 
 
   49inline void func4(
double *restrict y, 
double *restrict 
a1, 
double *restrict 
a2,
 
   50                  double *restrict 
a3, 
double *restrict 
a4)
 
   52  y[0] += 
a1[0] + 2 * 
a2[0]
 
   56  y[1] += 
a1[1] + 2 * 
a2[1]
 
   60  y[2] += 
a1[2] + 2 * 
a2[2]
 
 
   80func5(
double *restrict y, 
double *restrict 
a1, 
double *restrict 
a2,
 
   81      double *restrict 
a3, 
double *restrict 
a4, 
double *restrict 
a5)
 
   83  y[0] += 
a1[0] + 2 * 
a2[0]
 
   89  y[1] += 
a1[1] + 2 * 
a2[1]
 
   95  y[2] += 
a1[2] + 2 * 
a2[2]
 
 
  119inline void func6(
double *restrict y, 
double *restrict 
a1, 
double *restrict 
a2,
 
  120                  double *restrict 
a3, 
double *restrict 
a4,
 
  121                  double *restrict 
a5, 
double *restrict 
a6)
 
  123  y[0] += 
a1[0] + 2 * 
a2[0]
 
  132  y[1] += 
a1[1] + 2 * 
a2[1]
 
  141  y[2] += 
a1[2] + 2 * 
a2[2]
 
 
  172func7(
double *restrict y, 
double *restrict 
a1, 
double *restrict 
a2,
 
  173      double *restrict 
a3, 
double *restrict 
a4, 
double *restrict 
a5,
 
  174      double *restrict 
a6, 
double *restrict a7)
 
  176  y[0] += 
a1[0] + 2 * 
a2[0]
 
  187              * (
a3[0] * 
a4[0] + 
a3[1] * 
a4[1] + 
a3[2] * 
a4[2]) * a7[0];
 
  188  y[1] += 
a1[1] + 2 * 
a2[1]
 
  199              * (
a3[0] * 
a4[0] + 
a3[1] * 
a4[1] + 
a3[2] * 
a4[2]) * a7[1];
 
  200  y[2] += 
a1[2] + 2 * 
a2[2]
 
  211              * (
a3[0] * 
a4[0] + 
a3[1] * 
a4[1] + 
a3[2] * 
a4[2]) * a7[2];
 
 
  237func8(
double *restrict y, 
double *restrict 
a1, 
double *restrict 
a2,
 
  238      double *restrict 
a3, 
double *restrict 
a4, 
double *restrict 
a5,
 
  239      double *restrict 
a6, 
double *restrict a7, 
double *restrict a8)
 
  241  y[0] += 
a1[0] + 2 * 
a2[0]
 
  252              * (
a3[0] * 
a4[0] + 
a3[1] * 
a4[1] + 
a3[2] * 
a4[2]) * a7[0]
 
  253          + 8 * (
a1[0] * a7[0] + 
a1[1] * a7[1] + 
a1[2] * a7[2])
 
  256              * (
a4[0] * 
a4[0] + 
a4[1] * 
a4[1] + 
a4[2] * 
a4[2]) * a8[0];
 
  257  y[1] += 
a1[1] + 2 * 
a2[1]
 
  268              * (
a3[0] * 
a4[0] + 
a3[1] * 
a4[1] + 
a3[2] * 
a4[2]) * a7[1]
 
  269          + 8 * (
a1[0] * a7[0] + 
a1[1] * a7[1] + 
a1[2] * a7[2])
 
  272              * (
a4[0] * 
a4[0] + 
a4[1] * 
a4[1] + 
a4[2] * 
a4[2]) * a8[1];
 
  273  y[2] += 
a1[2] + 2 * 
a2[2]
 
  284              * (
a3[0] * 
a4[0] + 
a3[1] * 
a4[1] + 
a3[2] * 
a4[2]) * a7[2]
 
  285          + 8 * (
a1[0] * a7[0] + 
a1[1] * a7[1] + 
a1[2] * a7[2])
 
  288              * (
a4[0] * 
a4[0] + 
a4[1] * 
a4[1] + 
a4[2] * 
a4[2]) * a8[2];
 
 
  317func9(
double *restrict y, 
double *restrict 
a1, 
double *restrict 
a2,
 
  318      double *restrict 
a3, 
double *restrict 
a4, 
double *restrict 
a5,
 
  319      double *restrict 
a6, 
double *restrict a7, 
double *restrict a8,
 
  322  y[0] += 
a1[0] + 2 * 
a2[0]
 
  333              * (
a3[0] * 
a4[0] + 
a3[1] * 
a4[1] + 
a3[2] * 
a4[2]) * a7[0]
 
  334          + 8 * (
a1[0] * a7[0] + 
a1[1] * a7[1] + 
a1[2] * a7[2])
 
  337              * (
a4[0] * 
a4[0] + 
a4[1] * 
a4[1] + 
a4[2] * 
a4[2]) * a8[0]
 
  338          + 9 * (
a1[0] * a8[0] + 
a1[1] * a8[1] + 
a1[2] * a8[2])
 
  339              * (
a2[0] * a7[0] + 
a2[1] * a7[1] + 
a2[2] * a7[2])
 
  341              * (
a4[0] * 
a5[0] + 
a4[1] * 
a5[1] + 
a4[2] * 
a5[2]) * a9[0];
 
  342  y[1] += 
a1[1] + 2 * 
a2[1]
 
  353              * (
a3[0] * 
a4[0] + 
a3[1] * 
a4[1] + 
a3[2] * 
a4[2]) * a7[1]
 
  354          + 8 * (
a1[0] * a7[0] + 
a1[1] * a7[1] + 
a1[2] * a7[2])
 
  357              * (
a4[0] * 
a4[0] + 
a4[1] * 
a4[1] + 
a4[2] * 
a4[2]) * a8[1]
 
  358          + 9 * (
a1[0] * a8[0] + 
a1[1] * a8[1] + 
a1[2] * a8[2])
 
  359              * (
a2[0] * a7[0] + 
a2[1] * a7[1] + 
a2[2] * a7[2])
 
  361              * (
a4[0] * 
a5[0] + 
a4[1] * 
a5[1] + 
a4[2] * 
a5[2]) * a9[1];
 
  362  y[2] += 
a1[2] + 2 * 
a2[2]
 
  373              * (
a3[0] * 
a4[0] + 
a3[1] * 
a4[1] + 
a3[2] * 
a4[2]) * a7[2]
 
  374          + 8 * (
a1[0] * a7[0] + 
a1[1] * a7[1] + 
a1[2] * a7[2])
 
  377              * (
a4[0] * 
a4[0] + 
a4[1] * 
a4[1] + 
a4[2] * 
a4[2]) * a8[2]
 
  378          + 9 * (
a1[0] * a8[0] + 
a1[1] * a8[1] + 
a1[2] * a8[2])
 
  379              * (
a2[0] * a7[0] + 
a2[1] * a7[1] + 
a2[2] * a7[2])
 
  381              * (
a4[0] * 
a5[0] + 
a4[1] * 
a5[1] + 
a4[2] * 
a5[2]) * a9[2];
 
 
  414  double y[] = {0, 1, 2};
 
  415  double a1[] = {2, 3, 4};
 
  416  double a2[] = {5, 6, 7};
 
  417  double a3[] = {8, 9, 10};
 
  419  for(
int ii = 0; ii < 10000000; ii++)
 
  431  std::cout << y[0] << 
" " << y[1] << 
" " << y[2] << std::endl;
 
 
void func5(double *restrict y, double *restrict a1, double *restrict a2, double *restrict a3, double *restrict a4, double *restrict a5)
void func7(double *restrict y, double *restrict a1, double *restrict a2, double *restrict a3, double *restrict a4, double *restrict a5, double *restrict a6, double *restrict a7)
void func2(double *restrict y, double *restrict a1, double *restrict a2)
void func9(double *restrict y, double *restrict a1, double *restrict a2, double *restrict a3, double *restrict a4, double *restrict a5, double *restrict a6, double *restrict a7, double *restrict a8, double *restrict a9)
void func3(double *restrict y, double *restrict a1, double *restrict a2, double *restrict a3)
void func4(double *restrict y, double *restrict a1, double *restrict a2, double *restrict a3, double *restrict a4)
void func8(double *restrict y, double *restrict a1, double *restrict a2, double *restrict a3, double *restrict a4, double *restrict a5, double *restrict a6, double *restrict a7, double *restrict a8)
void func6(double *restrict y, double *restrict a1, double *restrict a2, double *restrict a3, double *restrict a4, double *restrict a5, double *restrict a6)
void func1(double *restrict y, double *restrict a1)