RFR: 8086087: aarch64: add support for 64 bit vectors

Edward Nevill edward.nevill at linaro.org
Tue Jun 9 17:10:55 UTC 2015



This 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-dev mailing list