Comment 27 for bug 1296601

Revision history for this message
In , Jakub-gcc (jakub-gcc) wrote :

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.