On Tue, 17 Jan 2023 21:06:01 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Tue, 17 Jan 2023 21:06:01 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Tue, 17 Jan 2023 20:55:08 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Tue, 17 Jan 2023 18:46:00 GMT, Vladimir Ivanov wrote:
>> Claes Redestad has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> trailing ws
>
> src/hotspot/share/opto/machnode.cpp line 211:
>
>> 209: opcnt++; //
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Mon, 16 Jan 2023 23:28:37 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Mon, 14 Nov 2022 18:28:53 GMT, Vladimir Ivanov wrote:
>>> Also, I'd like to note that C2 auto-vectorization support is not too far
>>> away from being able to optimize hash code computations. At some point, I
>>> was able to achieve some promising results with modest tweaking of
>>> SuperWo
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Mon, 9 Jan 2023 16:49:25 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they a
On Mon, 9 Jan 2023 16:49:25 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they a
On Mon, 9 Jan 2023 16:49:25 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they a
On Mon, 9 Jan 2023 16:49:25 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they a
On Mon, 9 Jan 2023 23:13:29 GMT, Claes Redestad wrote:
>> Claes Redestad has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Explicitly lea external address
>
> Explicitly loading the address to a register seems to do the trick, avoiding
>
On Mon, 9 Jan 2023 16:49:25 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they a
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Thu, 22 Dec 2022 13:10:02 GMT, Claes Redestad wrote:
>> @cl4es Thanks for passing the constant node through, the code looks much
>> cleaner now. The attached patch should handle the signed bytes/shorts as
>> well. Please take a look.
>> [signed.patch](https://github.com/openjdk/jdk/files/10
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Thu, 22 Dec 2022 13:10:02 GMT, Claes Redestad wrote:
>> @cl4es Thanks for passing the constant node through, the code looks much
>> cleaner now. The attached patch should handle the signed bytes/shorts as
>> well. Please take a look.
>> [signed.patch](https://github.com/openjdk/jdk/files/10
On Wed, 21 Dec 2022 17:29:23 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Wed, 21 Dec 2022 00:11:34 GMT, Sandhya Viswanathan
wrote:
>> Passing the constant node through as an input as suggested by @iwanowww and
>> @sviswa7 meant we could eliminate most of the `instruct` blocks, removing a
>> significant chunk of code and a little bit of complexity from the propos
On Wed, 21 Dec 2022 17:29:23 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Wed, 21 Dec 2022 01:02:35 GMT, Sandhya Viswanathan
wrote:
>> Claes Redestad has updated the pull request with a new target base due to a
>> merge or a rebase. The pull request now contains 64 commits:
>>
>> - Pass the constant mode node through, removing need for all but one
>> instruct d
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Tue, 20 Dec 2022 19:52:34 GMT, Claes Redestad wrote:
>> src/java.base/share/classes/java/lang/StringUTF16.java line 418:
>>
>>> 416: return 0;
>>> 417: } else {
>>> 418: return ArraysSupport.vectorizedHashCode(value,
>>> ArraysSupport.UTF16);
>>
>> Special ca
On Tue, 20 Dec 2022 21:11:40 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Tue, 20 Dec 2022 21:11:18 GMT, Claes Redestad wrote:
>>> How far off is this ...?
>>
>> Back then it looked way too constrained (tight constraints on code shapes).
>> But I considered it as a generally applicable optimization.
>>
>>> ... do you think it'll be able to match the efficiency
On Mon, 14 Nov 2022 18:28:53 GMT, Vladimir Ivanov wrote:
>>> Also, I'd like to note that C2 auto-vectorization support is not too far
>>> away from being able to optimize hash code computations. At some point, I
>>> was able to achieve some promising results with modest tweaking of
>>> SuperWo
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Fri, 16 Dec 2022 23:00:53 GMT, Sandhya Viswanathan
wrote:
>> Claes Redestad has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Missing & 0xff in StringLatin1::hashCode
>
> src/hotspot/cpu/x86/stubRoutines_x86.cpp line 230:
>
>> 228: #e
On Fri, 16 Dec 2022 22:58:23 GMT, Sandhya Viswanathan
wrote:
>> Claes Redestad has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Missing & 0xff in StringLatin1::hashCode
>
> src/hotspot/cpu/x86/vm_version_x86.cpp line 1671:
>
>> 1669:
On Sun, 13 Nov 2022 20:57:44 GMT, Claes Redestad wrote:
>> src/hotspot/cpu/x86/x86_64.ad line 12073:
>>
>>> 12071: legRegD tmp_vec13, rRegI tmp1, rRegI tmp2,
>>> rRegI tmp3, rFlagsReg cr)
>>> 12072: %{
>>> 12073: predicate(UseAVX >= 2 && ((VectorizedHashCodeNode*)n)->
On Fri, 11 Nov 2022 13:00:06 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Fri, 11 Nov 2022 13:00:06 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Fri, 11 Nov 2022 13:00:06 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Wed, 16 Nov 2022 18:18:55 GMT, Claes Redestad wrote:
>> Claes Redestad has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Missing & 0xff in StringLatin1::hashCode
>
> I'm getting pulled into other tasks and would request for this to be e
On Fri, 11 Nov 2022 13:00:06 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Fri, 11 Nov 2022 13:00:06 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Sun, 13 Nov 2022 21:08:53 GMT, Claes Redestad wrote:
> How far off is this ...?
Back then it looked way too constrained (tight constraints on code shapes). But
I considered it as a generally applicable optimization.
> ... do you think it'll be able to match the efficiency we see here with
On Sun, 13 Nov 2022 19:50:46 GMT, Claes Redestad wrote:
> ... several challenges were brought up to the table, including how to deal
> with all the different contingencies that might be the result of a safepoint,
> including deoptimization.
FTR if the intrinsic is represented as a stand-alone
On Sun, 13 Nov 2022 21:01:21 GMT, Claes Redestad wrote:
>> src/hotspot/share/opto/intrinsicnode.hpp line 175:
>>
>>> 173: // as well as adjusting for special treatment of various encoding of
>>> String
>>> 174: // arrays. Must correspond to declared constants in
>>> jdk.internal.util.Array
On Sun, 13 Nov 2022 21:08:53 GMT, Claes Redestad wrote:
> Also, I'd like to note that C2 auto-vectorization support is not too far away
> from being able to optimize hash code computations. At some point, I was able
> to achieve some promising results with modest tweaking of SuperWord pass:
htt
On Fri, 11 Nov 2022 13:00:06 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Sat, 12 Nov 2022 02:08:19 GMT, Vladimir Ivanov wrote:
> Also, I'd like to note that C2 auto-vectorization support is not too far away
> from being able to optimize hash code computations. At some point, I was able
> to achieve some promising results with modest tweaking of SuperWord pass:
>
On Sat, 12 Nov 2022 01:35:39 GMT, Vladimir Ivanov wrote:
>> Claes Redestad has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Missing & 0xff in StringLatin1::hashCode
>
> src/java.base/share/classes/jdk/internal/util/ArraysSupport.java line
On Sat, 12 Nov 2022 01:28:51 GMT, Vladimir Ivanov wrote:
>> Claes Redestad has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Missing & 0xff in StringLatin1::hashCode
>
> src/hotspot/share/opto/intrinsicnode.hpp line 175:
>
>> 173: // as
On Sat, 12 Nov 2022 01:10:50 GMT, Vladimir Ivanov wrote:
>> src/hotspot/cpu/x86/x86_64.ad line 12081:
>>
>>> 12079: format %{ "Array HashCode byte[] $ary1,$cnt1 -> $result // KILL
>>> all" %}
>>> 12080: ins_encode %{
>>> 12081: __ arrays_hashcode($ary1$$Register, $cnt1$$Register,
>>>
On Sat, 12 Nov 2022 01:06:27 GMT, Vladimir Ivanov wrote:
>> Claes Redestad has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Missing & 0xff in StringLatin1::hashCode
>
> src/hotspot/cpu/x86/x86_64.ad line 12073:
>
>> 12071:
On Sat, 12 Nov 2022 15:27:09 GMT, Piotr Tarsa wrote:
> Out of curiosity: how does this intrinsic affect time-to-safepoint? Does it
> matter? I don't see any safepoint poll, but then I don't precisely know how
> safepoints work, so I could be missing something. Theoretically, with 2^31
> elemen
On Fri, 11 Nov 2022 13:00:06 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Fri, 11 Nov 2022 13:00:06 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Sat, 12 Nov 2022 00:55:56 GMT, Vladimir Ivanov wrote:
>> Claes Redestad has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Missing & 0xff in StringLatin1::hashCode
>
> src/hotspot/cpu/x86/x86_64.ad line 12081:
>
>> 12079: format %{ "A
On Fri, 11 Nov 2022 13:00:06 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Fri, 11 Nov 2022 13:00:06 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Fri, 11 Nov 2022 13:00:06 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Fri, 11 Nov 2022 13:00:06 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Thu, 10 Nov 2022 15:03:26 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Fri, 11 Nov 2022 12:36:20 GMT, Daniel Fuchs wrote:
>> Claes Redestad has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Qualified guess on shenandoahSupport fix-up
>
> src/java.base/share/classes/java/lang/StringLatin1.java line 194:
>
On Mon, 31 Oct 2022 12:25:43 GMT, Claes Redestad wrote:
>> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 3484:
>>
>>> 3482: decrementl(index);
>>> 3483: jmpb(LONG_SCALAR_LOOP_BEGIN);
>>> 3484: bind(LONG_SCALAR_LOOP_END);
>>
>> You can share this loop with the scalar ones above.
>
> T
On Thu, 10 Nov 2022 15:03:26 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
On Tue, 25 Oct 2022 16:03:28 GMT, Ludovic Henry wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they a
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Wed, 9 Nov 2022 02:35:24 GMT, David Schlosnagle wrote:
>> Claes Redestad has updated the pull request with a new target base due to a
>> merge or a rebase. The pull request now contains 55 commits:
>>
>> - Revert accidental ModuleHashes change
>> - Merge branch 'master' into 8282664-polyha
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Tue, 8 Nov 2022 23:48:22 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they a
On Tue, 8 Nov 2022 19:14:25 GMT, Roger Riggs wrote:
>> Claes Redestad has updated the pull request incrementally with five
>> additional commits since the last revision:
>>
>> - Merge pull request #2 from luhenry/dev/cl4es/8282664-polyhash
>>
>>Unroll + Reorder BBs
>> - fixup! Handle
On Tue, 25 Oct 2022 16:03:28 GMT, Ludovic Henry wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they a
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Tue, 8 Nov 2022 17:20:39 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they a
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Tue, 25 Oct 2022 16:03:28 GMT, Ludovic Henry wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they a
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Tue, 25 Oct 2022 16:03:28 GMT, Ludovic Henry wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they a
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Tue, 1 Nov 2022 06:17:16 GMT, Ludovic Henry wrote:
>> Ok, I can try rewriting as @merykitty suggests and compare. I'm running out
>> of time to spend on this right now, though, so I sort of hope we can do this
>> experiment as a follow-up RFE.
>
> @cl4es i can write the assembly and send it
On Mon, 31 Oct 2022 22:06:20 GMT, Claes Redestad wrote:
>> No you don't need to, the vector loop can be calculated as:
>>
>> IntVector accumulation = IntVector.zero(INT_SPECIES);
>> for (int i = 0; i < bound; i += INT_SPECIES.length()) {
>> IntVector current = IntVector.load(INT_
On Mon, 31 Oct 2022 22:06:20 GMT, Claes Redestad wrote:
>> No you don't need to, the vector loop can be calculated as:
>>
>> IntVector accumulation = IntVector.zero(INT_SPECIES);
>> for (int i = 0; i < bound; i += INT_SPECIES.length()) {
>> IntVector current = IntVector.load(INT_
On Mon, 31 Oct 2022 13:35:36 GMT, Quan Anh Mai wrote:
>> But doing it forward requires a `reduceLane` on each iteration. It's faster
>> to do it backward.
>
> No you don't need to, the vector loop can be calculated as:
>
> IntVector accumulation = IntVector.zero(INT_SPECIES);
> for (int
On Mon, 31 Oct 2022 21:48:37 GMT, Claes Redestad wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Mon, 31 Oct 2022 13:18:35 GMT, Ludovic Henry wrote:
>> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 3528:
>>
>>> 3526: vpmulld(vcoef[idx], vcoef[idx], vnext, Assembler::AVX_256bit);
>>> 3527: }
>>> 3528: jmp(LONG_VECTOR_LOOP_BEGIN);
>>
>> Calculating backward forces you to do c
On Mon, 31 Oct 2022 02:35:18 GMT, Quan Anh Mai wrote:
>> Claes Redestad has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Require UseSSE >= 3 due transitive use of sse3 instructions from ReduceI
>
> src/hotspot/cpu/x86/c2_MacroAssembler_x8
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Mon, 31 Oct 2022 02:15:35 GMT, Quan Anh Mai wrote:
>> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 3387:
>>
>>> 3385: for (int idx = 0; idx < 4; idx++) {
>>> 3386: // h = (31 * h) or (h << 5 - h);
>>> 3387: movl(tmp, result);
>>
>> If you are unrolling this, maybe break the d
On Mon, 31 Oct 2022 02:21:44 GMT, Quan Anh Mai wrote:
>> Claes Redestad has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Reorder loops and some other suggestions from @merykitty
>
> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 3358:
On Mon, 31 Oct 2022 02:34:06 GMT, Quan Anh Mai wrote:
>> Claes Redestad has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Reorder loops and some other suggestions from @merykitty
>
> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 3484:
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are invoked so that
> there's less special handling and checks
On Mon, 31 Oct 2022 02:12:22 GMT, Quan Anh Mai wrote:
>> Continuing the work initiated by @luhenry to unroll and then intrinsify
>> polynomial hash loops.
>>
>> I've rewired the library changes to route via a single `@IntrinsicCandidate`
>> method. To make this work I've harmonized how they ar
On Tue, 25 Oct 2022 10:37:40 GMT, Claes Redestad wrote:
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are i
On Sat, 29 Oct 2022 15:11:56 GMT, Quan Anh Mai wrote:
> I am planning to submit that patch after finishing with the current
> under-reviewed PRs. That patch was stalled because there was no node for
> vectorised unsigned cast and constant values. The first one has been added
> and the second o
On Tue, 25 Oct 2022 10:37:40 GMT, Claes Redestad wrote:
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are i
On Tue, 25 Oct 2022 10:37:40 GMT, Claes Redestad wrote:
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are i
On Fri, 28 Oct 2022 20:43:04 GMT, Claes Redestad wrote:
> Porting to aarch64 and other platforms can be done as follow-ups and
> shouldn't block integration.
I'm not an expert in JVM internals, but there's an already seemingly working
String.hashCode intrinsification that's ISA independent:
h
On Tue, 25 Oct 2022 10:37:40 GMT, Claes Redestad wrote:
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are i
On Tue, 25 Oct 2022 10:37:40 GMT, Claes Redestad wrote:
> Continuing the work initiated by @luhenry to unroll and then intrinsify
> polynomial hash loops.
>
> I've rewired the library changes to route via a single `@IntrinsicCandidate`
> method. To make this work I've harmonized how they are i
1 - 100 of 101 matches
Mail list logo