In C and C++, a[b] is exactly the same as *(a+B). Also, I believe the indirect load/store operations on ARM can automatically adjust the pointer at the same time. Together, this means that you can entirely eliminate one add per array reference here. It's not huge, but it is slightly faster...