------- Comment #14 from irar at il dot ibm dot com 2008-07-06 11:54 ------- All those failures occur because vector multiplication of shorts to shorts is not supported on power. Paolo's patch changed the order of type conversion and multiplication, and removed type conversions.
All those loops contain multiplication either of type short = short * constant or short = int * constant. For the first case we used to have conversion to int, multiplication, and conversion to short, and now there are no type conversions. For the second case, before the patch there was first multiplication of ints and then the result was converted to short, and now the conversion to short comes first and then there is multiplication of shorts. In other words, before Paolo's patch those loops contained multiplications of ints (supported) and now they contain multiplications of shorts (not supported). As for the heisenbug, first of all, the failures occur with and without bootstrap. Also Victor tried to reproduced the behavior that Kenny described in comment #3 (on the same revision and the same configuration), but he saw the failures with a bootstrapped version too. I.e., we can't reproduce the random behavior - the failures are deterministic and well understood. I suggest to open a missed-optimization PR for vector multiplication of shorts to shorts (seems easy to fix), to xfail the tests, and to close this PR. Ira -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35642