[aarch64-port-dev ] RFR: 8129551: some regressions introduced by addition of vectorisation code

Andrew Haley aph at redhat.com
Tue Jun 23 10:18:09 UTC 2015


On 23/06/15 11:12, Edward Nevill wrote:
> Hi,
> 
> The following webrev
> 
> http://cr.openjdk.java.net/~enevill/8129551/webrev
> 
> fixes a number of regressions introduced in the addition of vectorisation for aarch64 as follows:-
> 
> java/math/BigInteger/BigIntegerTest.java
> 
> fails with an assertion failure when run with fastdebug or slowdebug builds
> 
> # Internal Error (/home/alexander/build-open-jdk/dev/jdk9/baseline/dev/hotspot/src/cpu/aarch64/vm/assembler_aarch64.hpp:2078), pid=8124, tid=0x0000007ec61eb1f0
> # assert(op == 0 && 0 == 0) failed: must be MOVI
> 
> and also in test
> 
> java/math/BigInteger/ModPow.java
> 
> java.math.BigInteger::add gets miscompiled. There is a
> 
>         ldr q16, [x17,x10,lsl #4]
> 
> which should be a
> 
>         ldr q16, [x17,x10]
> 
> I have also moved
> 
> void MacroAssembler::mov(FloatRegister Vd, SIMD_Arrangement T, u_int32_t imm32)
> 
> to macroAssembler_aarch64.cpp from macroAssembler_aarch64.hpp as it was getting much too large for a .hpp.
> 
> I have tested the original and webrev version with JTreg (hotspot, langtools & jdk) with the following results:-
> 
> Original:-
> 
> hotspot: Test results: passed: 849; failed: 11; error: 6
> langtools: Test results: passed: 3,240; error: 2
> jdk: Test results: passed: 6,103; failed: 568; error: 26
> 
> Revised:-
> 
> hotspot: Test results: passed: 849; failed: 11; error: 6
> langtools: Test results: passed: 3,240; error: 2
> jdk: Test results: passed: 6,108; failed: 567; error: 22
> 
> This changeset only affects aarch64 files.
> 
> Please review and if OK I will push,

Won't this fail to detect an overflow?

1418   if (T == T4H || T == T8H) { imm32 &= 0xffff; nimm32 &= 0xffff; }

Otherwise this looks OK to me.

Andrew.



More information about the aarch64-port-dev mailing list