Remove a cast again, after it was shown to worsen Windows perf.

This will hurt Linux x64 perf, but we think that's a compiler bug and we're
willing to take the hit for the better clarity of the code sans cast as well as
the better Windows perf.  Hopefully eventually the compiler will improve.

BUG=504813
TEST=none
TBR=andrew

Review URL: https://codereview.webrtc.org/1215053002

Cr-Commit-Position: refs/heads/master@{#9516}
This commit is contained in:
pkasting 2015-06-29 15:16:43 -07:00 committed by Commit bot
parent 71f6f4405c
commit 3c60d61463

View File

@ -22,11 +22,8 @@ void WebRtcSpl_CrossCorrelationC(int32_t* cross_correlation,
for (i = 0; i < dim_cross_correlation; i++) {
int32_t corr = 0;
// Linux 64-bit performance is improved by the int16_t cast below.
// Presumably this is some sort of compiler bug, as there's no obvious
// reason why that should result in better code.
for (j = 0; j < dim_seq; j++)
corr += (seq1[j] * seq2[j]) >> (int16_t)right_shifts;
corr += (seq1[j] * seq2[j]) >> right_shifts;
seq2 += step_seq2;
*cross_correlation++ = corr;
}