(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
vect/
pr33953.c
       1  /* { dg-do compile } */
       2  /* { dg-require-effective-target vect_int } */
       3  
       4  typedef unsigned int UINT32;
       5  
       6  void blockmove_NtoN_blend_noremap32 (const UINT32 *srcdata, int srcwidth,
       7                                       int srcheight, int srcmodulo,
       8                                       UINT32 *dstdata, int dstmodulo, 
       9                                       int srcshift) 
      10  {
      11   UINT32 *end;
      12  
      13   while (srcheight) 
      14     {
      15       while (dstdata <= end - 8) 
      16         {
      17           dstdata[0] |= srcdata[0] << srcshift;
      18           dstdata[1] |= srcdata[1] << srcshift;
      19           dstdata[2] |= srcdata[2] << srcshift;
      20           dstdata[3] |= srcdata[3] << srcshift;
      21           dstdata[4] |= srcdata[4] << srcshift;
      22           dstdata[5] |= srcdata[5] << srcshift;
      23           dstdata[6] |= srcdata[6] << srcshift;
      24           dstdata[7] |= srcdata[7] << srcshift;
      25           dstdata += 8;
      26           srcdata += 8;
      27         }
      28     }
      29  }
      30  
      31  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */
      32  /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target { ! vect_multiple_sizes } xfail { vect_no_align && { ! vect_hw_misalign } } } } } */
      33  /* { dg-final { scan-tree-dump "vectorizing stmts using SLP" "vect" { target vect_multiple_sizes xfail { vect_no_align && { ! vect_hw_misalign } } } } } */
      34  
      35