/* PR33315 */ /* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-sink" } */ int num; int a[20]; void test () { int i; int *ptr; ptr = & a[0]; i = num; if ( i == 1) *(ptr+0) = 0; if ( i != 1) *(ptr+0) = 0; if ( i == 2) *(ptr+1) = 0; if ( i != 2) *(ptr+1) = 0; if ( i == 3) *(ptr+2) = 0; if ( i != 3) *(ptr+2) = 0; } /* We should sink/merge all stores and end up with a single BB. */ /* { dg-final { scan-tree-dump-times "MEM\[^\n\r\]* = 0;" 3 "sink1" } } */ /* { dg-final { scan-tree-dump-times "<bb " 1 "sink1" } } */