(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
vect-iv-8a.c
       1  /* { dg-require-effective-target vect_int } */
       2  
       3  #include <stdarg.h>
       4  #include "tree-vect.h"
       5  
       6  #define N 26
       7   
       8  __attribute__ ((noinline)) int main1 (short X)
       9  {  
      10    signed char a[N];
      11    short b[N];
      12    int c[N];
      13    short myX = X;
      14    int i;
      15  
      16    /* vectorization of induction with type conversions.  */
      17    for (i = 0; i < N; i++)
      18    {
      19      a[i] = (signed char)X;
      20      b[i] = X;
      21      c[i] = (int)X;
      22      X++;
      23    }
      24  
      25    /* check results:  */
      26    for (i = 0; i < N; i++)
      27      {
      28        if (a[i] != (signed char)myX || b[i] != myX || c[i] != (int)myX++)
      29  	abort ();
      30      }
      31  
      32    return 0;
      33  }
      34  
      35  int main (void)
      36  { 
      37    check_vect ();
      38    
      39    return main1 (3);
      40  } 
      41  
      42  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_pack_trunc && vect_unpack } } } } */