1  /* { dg-do compile } */
       2  /* { dg-options "-O3 -mavx2" } */
       3  
       4  typedef unsigned int U32;
       5  
       6  struct sv {
       7    void* sv_any;
       8    U32 sv_refcnt;
       9    U32 sv_flags;
      10  };
      11  typedef struct sv SV;
      12  
      13  struct xrv {
      14    SV * xrv_rv;
      15  };
      16  typedef struct xrv XRV;
      17  
      18  extern XRV * PL_xrv_root;
      19  
      20  void
      21  more_xrv (void)
      22  {
      23    register XRV* xrv;
      24    register XRV* xrvend;
      25    xrv = PL_xrv_root;
      26    xrvend = &xrv[200 / sizeof (XRV) - 1];
      27    while (xrv < xrvend)
      28    {
      29      xrv->xrv_rv = (SV*)(xrv + 1);
      30      xrv++;
      31    }
      32    xrv->xrv_rv = 0;
      33  }