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.

Reply via email to