http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58554
Bug ID: 58554 Summary: Revision 202619 causes runtime failure in CPU2006 benchmark 445.gobmk Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: pthaugen at gcc dot gnu.org CC: bergner at gcc dot gnu.org, dje.gcc at gmail dot com, rguenth at gcc dot gnu.org Host: powerpc64-linux Target: powerpc64-linux Build: powerpc64-linux gobmk started failing at runtime with the stated revision. Tracked down offending code (from benchmark source engine/board.c) and reduced to the following. Generated code is ignoring control dependence and simply calling memset to set the entire array. [pthaugen@igoo build_base_test_32.0000]$ cat junk.c extern int board_size; extern unsigned char board[421]; void clear_board(void) { int k; for (k = 0; k < 421; k++) { /* Original: if (!((unsigned) (((k) / (19 + 1) - 1)) < (unsigned) board_size && (unsigned) (((k) % (19 + 1) - 1)) < (unsigned) board_size)) */ if (k < board_size ) board[k] = 3; } } [pthaugen@igoo build_base_test_32.0000]$ /home/pthaugen/install/gcc/trunk_work/bin/gcc -S -m32 -O3 junk.c Generated assembler for the function: clear_board: lis 3,board@ha li 4,3 la 3,board@l(3) li 5,421 b memset