1  #include "p9-vec-length-5.h"
       2  
       3  /* Check more to ensure vector access with out of bound.  */
       4  #define N 155
       5  /* Array size used for test function actually.  */
       6  #define NF 127
       7  
       8  #define run(TYPE1, TYPE2)                                                      \
       9    {                                                                            \
      10      unsigned int i = 0;                                                        \
      11      TYPE1 a[N * 2];                                                            \
      12      TYPE2 b[N * 2];                                                            \
      13      for (i = 0; i < N; i++)                                                    \
      14        {                                                                        \
      15  	a[i * 2] = i * 2 + i % 3;                                              \
      16  	a[i * 2 + 1] = i * 3 + i % 4;                                          \
      17  	b[i * 2] = i * 7 + i / 5;                                              \
      18  	b[i * 2 + 1] = i * 8 + i / 6;                                          \
      19        }                                                                        \
      20      test_mv_##TYPE1##TYPE2 (a, b, NF);                                         \
      21      for (i = 0; i < N; i++)                                                    \
      22        {                                                                        \
      23  	TYPE1 exp_a1 = i * 2 + i % 3;                                          \
      24  	TYPE1 exp_a2 = i * 3 + i % 4;                                          \
      25  	TYPE2 exp_b1 = i * 7 + i / 5;                                          \
      26  	TYPE2 exp_b2 = i * 8 + i / 6;                                          \
      27  	if (i < NF)                                                            \
      28  	  {                                                                    \
      29  	    exp_a1 += 1;                                                        \
      30  	    exp_a2 += 2;                                                       \
      31  	    exp_b1 += 3;                                                       \
      32  	    exp_b2 += 4;                                                       \
      33  	  }                                                                    \
      34  	if (a[i * 2] != exp_a1 || a[i * 2 + 1] != exp_a2 || b[i * 2] != exp_b1 \
      35  	    || b[i * 2 + 1] != exp_b2)                                         \
      36  	  __builtin_abort ();                                                  \
      37        }                                                                        \
      38    }
      39  
      40  int
      41  main (void)
      42  {
      43    TEST_ALL2 (run)
      44    return 0;
      45  }