1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fdump-tree-esra" } */
       3  
       4  typedef __UINT64_TYPE__ uint64_t;
       5  typedef __UINT32_TYPE__ uint32_t;
       6  struct S { uint32_t i[2]; } __attribute__((aligned(__alignof__(uint64_t))));
       7  typedef uint64_t my_int64 __attribute__((may_alias));
       8  uint64_t load (void *p)
       9  {
      10    struct S u, v, w;
      11    uint64_t tem;
      12    tem = *(my_int64 *)p;
      13    *(my_int64 *)&v = tem;
      14    u = v;
      15    w = u;
      16    return *(my_int64 *)&w;
      17  }
      18  
      19  /* { dg-final { scan-tree-dump "Created a replacement for v" "esra" } } */