[aarch64-port-dev ] [10] RFR: 8187472 - AARCH64: array_equals intrinsic doesn't use prefetch for large arrays
Ningsheng Jian
ningsheng.jian at linaro.org
Wed Nov 15 08:34:35 UTC 2017
Hi Dmitrij,
I can see regressions on some hardware with your patch.
Could you please try the micro-benchmark below on your systems?
http://people.linaro.org/~ningsheng.jian/test/StringOps.java
$ java -jar ./target/benchmarks.jar "StringEqualsLarge" -wi 10 -f 3 -i 10
Seems that your patch affects the inlining.
Thanks,
Ningsheng
On 10 November 2017 at 22:52, Dmitrij Pochepko
<dmitrij.pochepko at bell-sw.com> wrote:
>
>
> On 10.11.2017 17:28, Andrew Haley wrote:
>>
>> On 10/11/17 14:19, Dmitrij Pochepko wrote:
>>
>>> please take a look at merged simd/non-simd version.
>>
>> + if (UseSIMDForArrayEquals) {
>> + __ ld1(v0, v1, v2, v3, __ T2D, Address(__ post(a1, 64)));
>> + __ ld1(v4, v5, v6, v7, __ T2D, Address(__ post(a2, 64)));
>>
>> Is this post-increment correct? It should be a multiple of wordSize.
>
> It's correct, since we're loading 4x128-bit registers, which is 64 bytes.
> But I've changed it to "4 * 2 * wordSize", which has the same value.
>>
>>
>> Also, the indentation in generate_large_array_equals is wrong.
>>
> Thank you for noticing it.
>
> Please take a look at
> http://cr.openjdk.java.net/~dpochepk/8187472/webrev.03/
>
>
> Thanks,
> Dmitrij
More information about the aarch64-port-dev
mailing list