http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53823

--- Comment #18 from Richard Henderson <rth at gcc dot gnu.org> 2012-08-01 
02:25:03 UTC ---
But this is what you get when cross-compiling from i686.

3267     rtx temp = expand_mult_const (mode, op0, -coeff, NULL_RTX,
(gdb) p algorithm 
$1 = {cost = {cost = 24, latency = 24}, ops = 7, op = {alg_m, alg_add_t2_m, 
    alg_add_t2_m, alg_sub_t2_m, alg_sub_factor, alg_sub_factor, alg_shift, 
    4155963284, alg_unknown, 24, 4155924580, 144092293, 24, alg_unknown, 
    4294942376, 140383036, 4156006400, 167772184, 4294942392, 144092338, 
    148964452, 24, 4294942408, 140385161, 4156006400, 1180628613, 4155438304, 
    4155963284, 4155963284, 4155438304, 4155896864, 4155896864, alg_unknown, 
    alg_unknown, alg_unknown, alg_unknown, alg_unknown, 4155967104, 
    4155543416, 140385398, alg_zero, 167772160, 4294942616, 149524616, 
    alg_unknown, alg_unknown, 4294942552, 137729793, 4155963284, alg_unknown, 
    alg_unknown, alg_unknown, alg_unknown, 4155963284, 4155896864, 4155896864, 
    4155896864, 4155896864, 4155438304, 4155963284, 4155963284, 4155963284, 
    4155963284, 4155543416}, 
  log =
"\000\004\003\005\004\004\a\367\210\237\377\377\273\227\063\b\224\367\266\367",
'\000' <repeats 16 times>,
"\001\000\000\000\001\000\000\000\000\000\000\000\210\220\351\b\000\000\000\000ȟ\377\377\342y5\b"}

(We really ought to zero the structure first just to help debug.
But log[0] and op/log past [ops] are unused and uninitialized.)

The cross-compile *ought* not to affect costs, which means that
we ought to be making the same algorithm choices.  Which suggests
that -- if this is a fully bootstrapped pa compiler -- you're
looking at some part of expand_mult itself being mis-compiled.

I'm going to start a build on gcc61, but even checking out the
tree there has taken all day long...

Reply via email to