Revital Eres <revital.e...@linaro.org> writes:
> Another issue is related to the regression I saw with SMS in libav's
> dsputil-ssd_int8_vs_int16_c.
> Consulting with Ayal regarding this it seemed that the
> regression was due to dependence between accumulations that can be
> avoided, more specifically we had the following case in vector code:
>
> vec1 = vec1 + ...
> ...
> vec1 = vec1+ ...
> ...
> vec1 = vec1+ ...
> ...
> vec1 = vec1+...
>
> to resolve this, I implemented a hack similar to MVE optimiation in
> the loop-unroller as follows:
>
> vec1 = vec1 + ...
> ...
> vec2 = vec2+ ...
> ...
> vec3 = vec3+ ...
> ...
> vec4 = vec4+...

While I agree that's a useful transformation, do you have a few more
details about the SMS regression?  I assume both the non-SMS and SMS
loops use the:

  vec1 = vec1 + ...
  ...
  vec1 = vec1+ ...
  ...
  vec1 = vec1+ ...
  ...
  vec1 = vec1+...

chain, so what makes the SMS version of it worse than the non-SMS version?

Richard

_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to