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
more_xrv(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 }
34