[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