(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
p9-vec-length-run-4.h
       1  #include "p9-vec-length-4.h"
       2  
       3  /* Check more to ensure vector access with out of bound.  */
       4  #define N  144
       5  /* Array size used for test function actually.  */
       6  #define NF 123
       7  
       8  #define run(TYPE)                                                              \
       9    {                                                                            \
      10      unsigned int i = 0;                                                        \
      11      TYPE a[N], b[N * 2], c[N * 4];                                             \
      12      for (i = 0; i < N; i++)                                                    \
      13        {                                                                        \
      14  	a[i] = i + i % 2;                                                      \
      15  	b[i * 2] = i * 2 + i % 3;                                              \
      16  	b[i * 2 + 1] = i * 3 + i % 4;                                          \
      17  	c[i * 4] = i * 4 + i % 5;                                              \
      18  	c[i * 4 + 1] = i * 5 + i % 6;                                          \
      19  	c[i * 4 + 2] = i * 6 + i % 7;                                          \
      20  	c[i * 4 + 3] = i * 7 + i % 8;                                          \
      21        }                                                                        \
      22      test_mv_##TYPE (a, b, c, NF);                                              \
      23      for (i = 0; i < N; i++)                                                    \
      24        {                                                                        \
      25  	TYPE a1 = i + i % 2;                                                   \
      26  	TYPE b1 = i * 2 + i % 3;                                               \
      27  	TYPE b2 = i * 3 + i % 4;                                               \
      28  	TYPE c1 = i * 4 + i % 5;                                               \
      29  	TYPE c2 = i * 5 + i % 6;                                               \
      30  	TYPE c3 = i * 6 + i % 7;                                               \
      31  	TYPE c4 = i * 7 + i % 8;                                               \
      32                                                                                 \
      33  	TYPE exp_a = a1;                                                       \
      34  	TYPE exp_b1 = b1;                                                      \
      35  	TYPE exp_b2 = b2;                                                      \
      36  	TYPE exp_c1 = c1;                                                      \
      37  	TYPE exp_c2 = c2;                                                      \
      38  	TYPE exp_c3 = c3;                                                      \
      39  	TYPE exp_c4 = c4;                                                      \
      40  	if (i < NF)                                                            \
      41  	  {                                                                    \
      42  	    exp_a += 1;                                                        \
      43  	    exp_b1 += 2;                                                       \
      44  	    exp_b2 += 3;                                                       \
      45  	    exp_c1 += 4;                                                       \
      46  	    exp_c2 += 5;                                                       \
      47  	    exp_c3 += 6;                                                       \
      48  	    exp_c4 += 7;                                                       \
      49  	  }                                                                    \
      50  	if (a[i] != exp_a || b[i * 2] != exp_b1 || b[i * 2 + 1] != exp_b2      \
      51  	    || c[i * 4] != exp_c1 || c[i * 4 + 1] != exp_c2                    \
      52  	    || c[i * 4 + 2] != exp_c3 || c[i * 4 + 3] != exp_c4)               \
      53  	  __builtin_abort ();                                                  \
      54        }                                                                        \
      55    }
      56  
      57  int
      58  main (void)
      59  {
      60    TEST_ALL (run)
      61    return 0;
      62  }