Closed Quuxplusone closed 6 years ago
Attached nss.tgz
(183231 bytes, application/x-compressed-tar): ecp_256 files (good/bad versions)
Around line 106
/* sum 3 (rest of it)*/
MP_ADD_CARRY(r6, a14, r6, carry);
MP_ADD_CARRY(r7, 0, r7, carry);
r8 += carry;
carry = 0;
r8 is wrongly computed. Although it is a bit difficult to tell with confidence
that starts failing there due to the random nature of the test.
The fact that r8 happens to be the only signed integer in all these
computations might be a clue.
To clarify: it might happen that an earlier update to r8 is wrong as well, but it usually happens at that point.
Hi Manoj I reverted the change in 317092
Thanks Roger,
I also hope PR34564 that was fixed by r313618 stays as fixed.
Hi Manoj,
yes I decided to integrate all the fixes for the fallout caused by D35192
itself.
See https://reviews.llvm.org/D35192#868189
Once I fix this codegen issue I plan to integrate it in this change too making
any needed revert easier for everyone.
Kind regards,
Roger
Reverting r313618 "[ARM] Use ADDCARRY / SUBCARRY" caused regressions in the LNT
benchmarks on Cortex-A53(thumb2) and Coretex-A9(thumb2):
MultiSource/Applications/ALAC/decode/alacconvert-decode - A53(12.12%), A9(9.23%)
MultiSource/Applications/ALAC/encode/alacconvert-encode - A53(5.16%), A9(8.88%)
Attached bad.ll
(1941 bytes, text/plain): Testcase
I re-landed D35192 with a fix for this.
Thanks for your patience.
Thanks Roger :)
nss.tgz
(183231 bytes, application/x-compressed-tar)bad.ll
(1941 bytes, text/plain)