r...@remlab.net: > From: Rémi Denis-Courmont <r...@remlab.net> > > The compiler cannot infer that the two float vectors do not alias, > causing unnecessary extra loads and serialisation. This patch caches > the two input values in local variables so that compiler can optimise > individual loop iterations. > ---
We have av_restrict. (No opinion on this patch, it's just a remark.) > libavcodec/vorbisdec.c | 22 +++++++++++----------- > 1 file changed, 11 insertions(+), 11 deletions(-) > > diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c > index 9728997370..74e71936ab 100644 > --- a/libavcodec/vorbisdec.c > +++ b/libavcodec/vorbisdec.c > @@ -1583,21 +1583,21 @@ void ff_vorbis_inverse_coupling(float *mag, float > *ang, intptr_t blocksize) > { > ptrdiff_t i; > for (i = 0; i < blocksize; i++) { > - if (mag[i] > 0.0) { > - if (ang[i] > 0.0) { > - ang[i] = mag[i] - ang[i]; > + float angi = ang[i], magi = mag[i]; > + > + if (magi > 0.f) { > + if (angi > 0.f) { > + ang[i] = magi - angi; > } else { > - float temp = ang[i]; > - ang[i] = mag[i]; > - mag[i] += temp; > + ang[i] = magi; > + mag[i] = magi + angi; > } > } else { > - if (ang[i] > 0.0) { > - ang[i] += mag[i]; > + if (angi > 0.f) { > + ang[i] = magi + angi; > } else { > - float temp = ang[i]; > - ang[i] = mag[i]; > - mag[i] -= temp; > + ang[i] = magi; > + mag[i] = magi - angi; > } > } > } _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".