1 /* PR tree-optimization/80933 - redundant bzero/bcopy calls not eliminated 2 { dg-do compile } 3 { dg-options "-O2 -fdump-tree-dse1" } */ 4 5 void sink (void*); 6 test_bcopy(const void * s)7void test_bcopy (const void *s) 8 { 9 char d[33]; 10 11 /* Bcopy is transformed into memmove and those calls are expanded 12 inline in EVRP, before DSE runs, so this test doesn't actually 13 verify that DSE does its job. */ 14 __builtin_bcopy (s, d, sizeof d); 15 __builtin_bcopy (s, d, sizeof d); 16 17 sink (d); 18 } 19 test_bzero(void)20void test_bzero (void) 21 { 22 char d[33]; 23 24 __builtin_bzero (d, sizeof d); 25 __builtin_bzero (d, sizeof d); 26 27 sink (d); 28 } 29 30 /* { dg-final { scan-tree-dump-times "builtin_memset" 1 "dse1" } } */ 31 /* { dg-final { scan-tree-dump-not "builtin_(bcopy|bzero|memcpy|memmove)" "dse1" } } */ 32