1  /*  This file is distributed under the University of Illinois Open Source
       2      License. See license.txt for details.  */
       3  
       4  /* { dg-additional-options "--param vect-epilogues-nomask=0" } */
       5  /* { dg-require-effective-target vect_float } */
       6  
       7  #include "tsvc.h"
       8  
       9  void s151s(real_t a[LEN_1D], real_t b[LEN_1D],  int m)
      10  {
      11      for (int i = 0; i < LEN_1D-1; i++) {
      12          a[i] = a[i + m] + b[i];
      13      }
      14  }
      15  
      16  real_t s151(struct args_t * func_args)
      17  {
      18  //    interprocedural data flow analysis
      19  //    passing parameter information into a subroutine
      20  
      21      initialise_arrays(__func__);
      22  
      23      for (int nl = 0; nl < 5*iterations; nl++) {
      24          s151s(a, b,  1);
      25          dummy(a, b, c, d, e, aa, bb, cc, 0.);
      26      }
      27  
      28      return calc_checksum(__func__);
      29  }
      30  
      31  int main (int argc, char **argv)
      32  {
      33    int n1 = 1;
      34    int n3 = 1;
      35    int* ip;
      36    real_t s1,s2;
      37    init(&ip, &s1, &s2);
      38  
      39    run(&s151, "s151", NULL);
      40  
      41    return 0;
      42  }
      43  
      44  
      45  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */