(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
wrapv-vect-7.c
       1  /* { dg-require-effective-target vect_int } */
       2  /* { dg-add-options bind_pic_locally } */
       3  
       4  #include <stdarg.h>
       5  #include "tree-vect.h"
       6  
       7  #define N 128
       8  
       9  short sa[N];
      10  short sb[N];
      11  
      12  int main1 ()
      13  {
      14    int i;
      15    
      16    for (i = 0; i < N; i++)
      17      {
      18        sb[i] = 5;
      19      }
      20  
      21    /* check results:  */
      22    for (i = 0; i < N; i++)
      23      {
      24        if (sb[i] != 5)
      25          abort ();
      26      }
      27    
      28    for (i = 0; i < N; i++)
      29      {
      30        sa[i] = sb[i] + (short)100;
      31      }
      32  
      33    /* check results:  */
      34    for (i = 0; i < N; i++)
      35      {
      36        if (sa[i] != 105)
      37          abort ();
      38      }
      39    
      40    return 0;
      41  }
      42  
      43  int main (void)
      44  { 
      45    check_vect ();
      46    
      47    return main1 ();
      48  }
      49  
      50  /* Fails for 32-bit targets that don't vectorize PLUS.  */
      51  /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
      52  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */