1  /* { dg-do run { target vect_cmdline_needed } } */
       2  /* { dg-options "-O2 -fno-tree-loop-distribute-patterns -ftree-vectorize -fdump-tree-vect-details -fvect-cost-model=dynamic" } */
       3  /* { dg-additional-options "-mno-sse" { target { i?86-*-* x86_64-*-* } } } */
       4  
       5  #include <stdlib.h>
       6  
       7  #define N 128
       8  
       9  /* unaligned store.  */
      10  
      11  int main ()
      12  {
      13    int i;
      14    char ia[N+1];
      15  
      16    for (i = 1; i <= N; i++)
      17      {
      18        ia[i] = 5;
      19      }
      20  
      21    /* check results:  */
      22    for (i = 1; i <= N; i++)
      23      {
      24        if (ia[i] != 5)
      25          abort ();
      26      }
      27  
      28    return 0;
      29  }
      30  
      31  
      32  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! { avr-*-* pru-*-* } } } } } */
      33  /* IBM Z does not require special alignment for vectorization.  */
      34  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" { target { ! { avr-*-* pru-*-* s390*-*-* } } } } } */
      35  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { ! { avr-*-* pru-*-* s390*-*-* } } } } } */