2 /* { dg-require-effective-target store_merge } */
3 /* { dg-options "-O2 -fdump-tree-store-merging" } */
16 __attribute__ ((noinline
)) void
17 foozero (struct bar
*p
)
28 __attribute__ ((noinline
)) void
40 __attribute__ ((noinline
)) void
41 foo2 (struct bar
*p
, struct bar
*p2
)
60 if (b1
.b
!= 1 || b1
.a
!= 2 || b1
.c
!= 3 || b1
.d
!= 4 || b1
.e
!= 5
61 || b1
.f
!= 0 || b1
.g
!= 0xff)
65 /* Make sure writes to aliasing struct pointers preserve the
68 if (b1
.b
!= 0xa || b1
.a
!= 0xfffff || b1
.c
!= 0xff || b1
.d
!= 0xfff)
73 if (b1
.a
!= 0xfffff || b1
.b
!= 0xff || b1
.c
!= 0xff || b1
.d
!= 0xfff
74 || b2
.b
!= 0xa || b2
.c
!= 0xc || b2
.d
!= 0xbf)
80 /* { dg-final { scan-tree-dump-times "Merging successful" 2 "store-merging" } } */