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 64
       8  
       9    int ia[N];
      10    int ib[N]= 
      11      {1,1,0,0,1,0,1,0,
      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  
      20    signed char ca[N];
      21    signed char cb[N] =
      22      {1,1,0,0,1,0,1,0,
      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  
      31    short sa[N];
      32    short sb[N] =
      33      {1,1,0,0,1,0,1,0,
      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  
      42  __attribute__ ((noinline)) int
      43  main1 ()
      44  {
      45    int i;
      46  
      47    /* Check ints.  */
      48  
      49    for (i = 0; i < N; i++)
      50      {
      51        ia[i] = ~ib[i];
      52      }
      53  
      54    /* check results:  */
      55    for (i = 0; i <N; i++)
      56      {
      57        if (ia[i] != ~ib[i])
      58          abort ();
      59      }
      60  
      61    /* Check chars.  */
      62  
      63    for (i = 0; i < N; i++)
      64      {
      65        ca[i] = ~cb[i];
      66      }
      67  
      68    /* check results:  */
      69    for (i = 0; i <N; i++)
      70      {
      71        if (ca[i] != ~cb[i])
      72          abort ();
      73      }
      74  
      75    /* Check shorts.  */
      76  
      77    for (i = 0; i < N; i++)
      78      {
      79        sa[i] = ~sb[i];
      80      }
      81  
      82    /* check results:  */
      83    for (i = 0; i <N; i++)
      84      {
      85        if (sa[i] != ~sb[i])
      86          abort ();
      87      }
      88  
      89    return 0;
      90  }
      91  
      92  int main (void)
      93  {
      94    check_vect ();
      95  
      96    return main1 ();
      97  }
      98  
      99  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_bitwise } } } */
     100  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */