[aarch64-port-dev ] RFR: 8135231: add support for vectorizing double precision sqrt

Andrew Haley aph at redhat.com
Wed Sep 23 09:28:57 UTC 2015


Hi,

On 22/09/15 19:30, Edward Nevill wrote:

> http://cr.openjdk.java.net/~enevill/8135231/webrev/
> 
> JIRA issue: https://bugs.openjdk.java.net/browse/JDK-8135231
> 
> This adds support for vector double sqrt for aarch64.
> 
> I have tested this with JTreg hotspot+langtools with no regressions.
> 
> There is a trivial change to
> test/compiler/loopopts/superword/SumRedSqrt_Double.java
> 
> -* @requires os.arch=="x86" | os.arch=="amd64" | os.arch=="x86_64"
> +* @requires os.arch=="x86" | os.arch=="amd64" | os.arch=="x86_64" |
> os.arch=="aarch64"
> 
> I am not clear whether this change means that the change requires
> sponsoring and pushing through JPRT, but if so could someone do this.

This is an instance of the pattern "AdvSIMD two-reg misc".  Please use
it.

+  void fsqrt(FloatRegister Vd, SIMD_Arrangement T, FloatRegister Vn) {    \
+    starti;                                                               \
+    assert(T == T2S || T == T4S || T == T2D, "invalid arrangement");      \
+    f(0, 21), f((int)T & 1, 30), f(0b1011101, 29, 23);                    \
+    f(T==T2D ? 1:0, 22), f(0b100001111110, 21, 10), rf(Vn, 5), rf(Vd, 0); \
+  }
+

Andrew.



More information about the aarch64-port-dev mailing list