(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
vect-22.c
       1  /* { dg-require-effective-target vect_int } */
       2  /* { dg-require-effective-target vect_float } */
       3  /* { dg-add-options bind_pic_locally } */
       4  
       5  #include <stdarg.h>
       6  #include "tree-vect.h"
       7  
       8  #define N 64
       9  
      10    int ia[N];
      11    int ib[N]= 
      12      {1,1,0,0,1,0,1,0,
      13       1,1,0,0,1,0,1,0,
      14       1,1,0,0,1,0,1,0,
      15       1,1,0,0,1,0,1,0,
      16       1,1,0,0,1,0,1,0,
      17       1,1,0,0,1,0,1,0,
      18       1,1,0,0,1,0,1,0,
      19       1,1,0,0,1,0,1,0};
      20  
      21    signed char ca[N];
      22    signed char cb[N] =
      23      {1,1,0,0,1,0,1,0,
      24       1,1,0,0,1,0,1,0,
      25       1,1,0,0,1,0,1,0,
      26       1,1,0,0,1,0,1,0,
      27       1,1,0,0,1,0,1,0,
      28       1,1,0,0,1,0,1,0,
      29       1,1,0,0,1,0,1,0,
      30       1,1,0,0,1,0,1,0};
      31  
      32    short sa[N];
      33    short sb[N] =
      34      {1,1,0,0,1,0,1,0,
      35       1,1,0,0,1,0,1,0,
      36       1,1,0,0,1,0,1,0,
      37       1,1,0,0,1,0,1,0,
      38       1,1,0,0,1,0,1,0,
      39       1,1,0,0,1,0,1,0,
      40       1,1,0,0,1,0,1,0,
      41       1,1,0,0,1,0,1,0};
      42  
      43    float fa[N];
      44    float fb[N] =
      45      {1,1,0,0,1,0,1,0,
      46       1,1,0,0,1,0,1,0,
      47       1,1,0,0,1,0,1,0,
      48       1,1,0,0,1,0,1,0,
      49       1,1,0,0,1,0,1,0,
      50       1,1,0,0,1,0,1,0,
      51       1,1,0,0,1,0,1,0,
      52       1,1,0,0,1,0,1,0};
      53  
      54  __attribute__ ((noinline)) int
      55  main1 ()
      56  {
      57    int i;
      58    /* Check ints.  */
      59  
      60    for (i = 0; i < N; i++)
      61      {
      62        ia[i] = -ib[i];
      63      }
      64  
      65    /* check results:  */
      66    for (i = 0; i <N; i++)
      67      {
      68        if (ia[i] != -ib[i])
      69          abort ();
      70      }
      71  
      72    /* Check chars.  */
      73  
      74    for (i = 0; i < N; i++)
      75      {
      76        ca[i] = -cb[i];
      77      }
      78  
      79    /* check results:  */
      80    for (i = 0; i <N; i++)
      81      {
      82        if (ca[i] != -cb[i])
      83          abort ();
      84      }
      85  
      86    /* Check shorts.  */
      87  
      88    for (i = 0; i < N; i++)
      89      {
      90        sa[i] = -sb[i];
      91      }
      92  
      93    /* check results:  */
      94    for (i = 0; i <N; i++)
      95      {
      96        if (sa[i] != -sb[i])
      97          abort ();
      98      }
      99  
     100    /* Check floats.  */
     101  
     102    for (i = 0; i < N; i++)
     103      {
     104        fa[i] = -fb[i];
     105      }
     106  
     107    /* check results:  */
     108    for (i = 0; i <N; i++)
     109      {
     110        if (fa[i] != -fb[i])
     111          abort ();
     112      }
     113  
     114    return 0;
     115  }
     116  
     117  int main (void)
     118  {
     119    check_vect ();
     120  
     121    return main1 ();
     122  }
     123  
     124  /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */
     125  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
     126