(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
gen-vect-11c.c
       1  /* { dg-do run { target vect_cmdline_needed } } */
       2  /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-details" } */
       3  /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-details -mno-vx" { target { s390*-*-* } } } */
       4  /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-details -mno-sse" { target { i?86-*-* x86_64-*-* } } } */
       5  
       6  #include <stdlib.h>
       7  
       8  #define N 16
       9  
      10  /* One x86_64 mingw a long remains 4 bytes sized, but machine word
      11     is 8 bytes.  */
      12  #if LONG_MAX == 2147483647 && !defined (_WIN64)
      13  typedef short half_word;
      14  #else
      15  typedef int half_word;
      16  #endif
      17  
      18  int main ()
      19  {
      20    int i;
      21    half_word ia[N];
      22    half_word ic[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
      23    half_word ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
      24  
      25    /* Not worthwhile, only 2 parts per int */
      26    for (i = 0; i < N; i++)
      27      {
      28        ia[i] = ib[i] + ic[i];
      29      }
      30  
      31    /* check results:  */
      32    for (i = 0; i < N; i++)
      33      {
      34        if (ia[i] != ib[i] + ic[i])
      35          abort ();
      36      }
      37  
      38    return 0;
      39  }
      40  
      41  
      42  /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" { xfail amdgcn*-*-* } } } */