http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49423
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #17 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-03-26 10:03:51 UTC --- Another testcase for -march=armv7-a -O2, ICEs with both trunk and 4.8 branch (reduced from https://bugzilla.redhat.com/show_bug.cgi?id=927565 ): const int a, b[4][256], c[4][256]; int foo (unsigned *x) { unsigned d[9]; x[55] = c[0][d[7] & 0xff] ^ c[3][d[7] & 0xff]; d[0] = (b[0][d[7] & 0xff] ^ b[1][(d[7] >> 16) & 0xff] ^ b[2][d[7] & 0xff] ^ b[3][d[7] & 0xff]) ^ a; x[48] = c[0][d[0] & 0xff] ^ c[1][(d[0] >> 8) & 0xff] ^ c[2][(d[0] >> 16) & 0xff] ^ c[3][d[0] >> 24]; x[49] = c[0][d[1] & 0xff] ^ c[1][(d[1] >> 8) & 0xff] ^ c[2][d[1] & 0xff] ^ c[3][d[1]]; d[4] = b[0][0xff] ^ b[1][8] ^ b[3][d[3] >> 24]; x[44] = c[0][d[4] & 0xff] ^ c[1][(d[4] >> 8) & 0xff] ^ c[2][(d[4] >> 16) & 0xff] ^ c[3][d[4] >> 24]; d[5] ^= d[4]; x[45] = c[0][d[5] & 0xff] ^ c[1][d[5]] ^ c[2][(d[5] >> 16) & 0xff] ^ c[3][(d[5] >> 24) & 0xff]; d[6] ^= d[5]; x[46] = c[0][d[6] & 0xff] ^ c[3][d[6] & 0xff]; d[7] ^= d[6]; x[47] = c[0][d[7]] ^ c[3][(d[7] >> 24) & 0xff]; } p debug_rtx (fix->insn) (insn:TI 6 155 156 (set (reg:SI 5 r5 [orig:110 D.4236 ] [110]) (zero_extend:SI (mem/u/c:QI (symbol_ref/u:SI ("*.LC0") [flags 0x2]) [0 S1 A8]))) rh927565.i:6 171 {*arm_zero_extendqisi2_v6} (nil)) If the PR43137 changes removed the pool_range/neg_pool_range attributes from the instructions incorrectly, can those be added? I mean, for ICE on valid code with so many dups it is ridiculous to keep it unsolved for almost 3 years now, out of which the bug is known for almost 2 years.