RFR: 8086087: aarch64: add support for 64 bit vectors
vladimir.kozlov at oracle.com
Wed Jun 24 16:57:19 UTC 2015
I am worried about 32 bit vectors. There could be conflict somewhere in RA since min_vector_size will not match minimum
vector register VecD size.
Can you split these changes to have separate changesets? One is support VecD (64 bit) and an other 32bit vectors.
If some testing will show problems we can check which changes caused it more precisely.
And this should be reviewed on compiler mailing list instead of runtime.
On 6/24/15 8:27 AM, Edward Nevill wrote:
> The following webrev based on the hs-rt repo
> Adds support for 64 bit vectors on aarch64. Previously the vector code only supported 128 bit vectors.
> 32 bit vectors are not supported directly as aarch64 has no support for 32 bit vectors, however the above webrev will permit 32 bit vectors but just place them in a 64 bit vector.
> I have tested this with JTreg hotspot and get the same results before and after the change, viz,
> Test results: passed: 845; failed: 12; error: 6
> I have also benchmarked the Test*Vect tests from 6340864 in the hotspot test suite. The following are the average results I get on one of our partners HW (lower number is better).
> TestByteVect: 128-bit (11.77), 64-bit (4.36)
> TestShortVect: 128-bit (5.02), 64-bit (5.22)
> TestIntVect: 128-bit (7.81), 64-bit (7.70)
> TestLongVect: 128-bit (11.67), 64-bit (11.71)
> TestFloatVect: 128-bit (16.75), 64-bit (17.29)
> TestDoubleVect:128-bit (32.37), 64-bit (32.43)
> So the only test which shows an improvement is TestByteVect which shows a 2.7x speedup. The other tests are the same within the bounds of experimental error.
> The reason TestByteVect shows such an improvement is that with 128 bit vectors it is not being vectorized at all because the loop is not unrolled sufficiently to allow it to be vectorized, wheras with 64 bit vectors it is.
> Please review and let me know if this is OK to push?
More information about the hotspot-compiler-dev