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)21more_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