On Thu, 12 May 2022 16:07:54 GMT, Paul Sandoz wrote:
>> Xiaohong Gong has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Rename "use_predicate" to "needs_predicate"
>
> Yes, the tests were run in debug mode. The reporting of the missing
On Tue, 7 Jun 2022 04:29:40 GMT, Xiaohong Gong wrote:
>> Currently the vector load with mask when the given index happens out of the
>> array boundary is implemented with pure java scalar code to avoid the IOOBE
>> (IndexOutOfBoundaryException). This is necessary for architectures that do
>>
On Tue, 7 Jun 2022 02:22:53 GMT, Xiaohong Gong wrote:
>> test/micro/org/openjdk/bench/jdk/incubator/vector/LoadMaskedIOOBEBenchmark.java
>> line 97:
>>
>>> 95: public void byteLoadArrayMaskIOOBE() {
>>> 96: for (int i = 0; i < inSize; i += bspecies.length()) {
>>> 97:
On Tue, 7 Jun 2022 06:41:36 GMT, Jatin Bhateja wrote:
>> Yeah, thanks and it's really a good suggestion to limit this benchmark only
>> for the IOOBE cases. I locally modified the tests to make sure only the
>> IOOBE case happens and the results show good as well. But do you think it's
>>
On Mon, 6 Jun 2022 15:41:06 GMT, Paul Sandoz wrote:
> Looks good. As a follow on PR I think it would be useful to add constants
> `OFFSET_IN_RANGE` and `OFFSET_OUT_OF_RANGE`, then it becomes much clearer in
> source and you can drop the `/* offsetInRange */` comment on the argument.
Hi
> Currently the vector load with mask when the given index happens out of the
> array boundary is implemented with pure java scalar code to avoid the IOOBE
> (IndexOutOfBoundaryException). This is necessary for architectures that do
> not support the predicate feature. Because the masked load
On Mon, 6 Jun 2022 10:40:45 GMT, Jatin Bhateja wrote:
>> Xiaohong Gong has updated the pull request with a new target base due to a
>> merge or a rebase. The pull request now contains five commits:
>>
>> - Merge branch 'jdk:master' into JDK-8283667
>> - Use integer constant for offsetInRange
On Thu, 2 Jun 2022 03:27:59 GMT, Xiaohong Gong wrote:
>> Currently the vector load with mask when the given index happens out of the
>> array boundary is implemented with pure java scalar code to avoid the IOOBE
>> (IndexOutOfBoundaryException). This is necessary for architectures that do
>>
On Thu, 2 Jun 2022 03:27:59 GMT, Xiaohong Gong wrote:
>> Currently the vector load with mask when the given index happens out of the
>> array boundary is implemented with pure java scalar code to avoid the IOOBE
>> (IndexOutOfBoundaryException). This is necessary for architectures that do
>>
On Thu, 12 May 2022 16:07:54 GMT, Paul Sandoz wrote:
>> Xiaohong Gong has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Rename "use_predicate" to "needs_predicate"
>
> Yes, the tests were run in debug mode. The reporting of the missing
On Thu, 2 Jun 2022 03:24:07 GMT, Xiaohong Gong wrote:
>>> @XiaohongGong Could you please rebase the branch and resolve conflicts?
>>
>> Sure, I'm working on this now. The patch will be updated soon. Thanks.
>
>> > @XiaohongGong Could you please rebase the branch and resolve conflicts?
>>
>>
On Thu, 2 Jun 2022 03:24:07 GMT, Xiaohong Gong wrote:
>>> @XiaohongGong Could you please rebase the branch and resolve conflicts?
>>
>> Sure, I'm working on this now. The patch will be updated soon. Thanks.
>
>> > @XiaohongGong Could you please rebase the branch and resolve conflicts?
>>
>>
On Thu, 2 Jun 2022 03:27:59 GMT, Xiaohong Gong wrote:
>> Currently the vector load with mask when the given index happens out of the
>> array boundary is implemented with pure java scalar code to avoid the IOOBE
>> (IndexOutOfBoundaryException). This is necessary for architectures that do
>>
> Currently the vector load with mask when the given index happens out of the
> array boundary is implemented with pure java scalar code to avoid the IOOBE
> (IndexOutOfBoundaryException). This is necessary for architectures that do
> not support the predicate feature. Because the masked load
On Thu, 2 Jun 2022 01:49:10 GMT, Xiaohong Gong wrote:
> > @XiaohongGong Could you please rebase the branch and resolve conflicts?
>
> Sure, I'm working on this now. The patch will be updated soon. Thanks.
Resolved the conflicts. Thanks!
-
PR:
On Fri, 13 May 2022 08:58:12 GMT, Xiaohong Gong wrote:
>> Yes, the tests were run in debug mode. The reporting of the missing constant
>> occurs for the compiled method that is called from the method where the
>> constants are declared e.g.:
>>
>> 719 240b
On Fri, 13 May 2022 08:58:12 GMT, Xiaohong Gong wrote:
>> Yes, the tests were run in debug mode. The reporting of the missing constant
>> occurs for the compiled method that is called from the method where the
>> constants are declared e.g.:
>>
>> 719 240b
> Currently the vector load with mask when the given index happens out of the
> array boundary is implemented with pure java scalar code to avoid the IOOBE
> (IndexOutOfBoundaryException). This is necessary for architectures that do
> not support the predicate feature. Because the masked load
On Thu, 12 May 2022 16:07:54 GMT, Paul Sandoz wrote:
>> Xiaohong Gong has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Rename "use_predicate" to "needs_predicate"
>
> Yes, the tests were run in debug mode. The reporting of the missing
On Thu, 12 May 2022 16:07:54 GMT, Paul Sandoz wrote:
> Yes, the tests were run in debug mode. The reporting of the missing constant
> occurs for the compiled method that is called from the method where the
> constants are declared e.g.:
>
> ```
> 719 240b
On Thu, 5 May 2022 08:56:07 GMT, Xiaohong Gong wrote:
>> Currently the vector load with mask when the given index happens out of the
>> array boundary is implemented with pure java scalar code to avoid the IOOBE
>> (IndexOutOfBoundaryException). This is necessary for architectures that do
>>
On Wed, 11 May 2022 19:45:55 GMT, Paul Sandoz wrote:
> I tried your test code with the patch and logged compilation
> (`-XX:-TieredCompilation -XX:+PrintCompilation -XX:+PrintInlining
> -XX:+PrintIntrinsics -Xbatch`)
>
> For `func` the first call to `VectorSupport::loadMasked` is intrinsic
On Thu, 5 May 2022 08:56:07 GMT, Xiaohong Gong wrote:
>> Currently the vector load with mask when the given index happens out of the
>> array boundary is implemented with pure java scalar code to avoid the IOOBE
>> (IndexOutOfBoundaryException). This is necessary for architectures that do
>>
On Wed, 11 May 2022 03:23:13 GMT, Xiaohong Gong wrote:
>> I modified the code of this PR to avoid the conversion of `boolean` to
>> `int`, so a constant integer value is passed all the way through, and the
>> masked load is made intrinsic from the method at which the constants are
>> passed
On Mon, 9 May 2022 21:55:27 GMT, Paul Sandoz wrote:
>> Xiaohong Gong has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Rename "use_predicate" to "needs_predicate"
>
> I modified the code of this PR to avoid the conversion of `boolean` to
On Mon, 9 May 2022 21:55:27 GMT, Paul Sandoz wrote:
> I modified the code of this PR to avoid the conversion of `boolean` to `int`,
> so a constant integer value is passed all the way through, and the masked
> load is made intrinsic from the method at which the constants are passed as
>
On Thu, 5 May 2022 08:56:07 GMT, Xiaohong Gong wrote:
>> Currently the vector load with mask when the given index happens out of the
>> array boundary is implemented with pure java scalar code to avoid the IOOBE
>> (IndexOutOfBoundaryException). This is necessary for architectures that do
>>
On Fri, 6 May 2022 14:59:26 GMT, Paul Sandoz wrote:
>> Make sense! Thanks for the explanation!
>
> Doh! of course. This is not the first and will not be the last time i get
> caught out by the 2-slot requirement.
> It may be useful to do this:
>
> Node* mask_arg = is_store ? argument(8) :
On Fri, 6 May 2022 04:49:39 GMT, Xiaohong Gong wrote:
>> offset is long so uses two argument slots (5 and 6).
>> mask is argument (7).
>> offsetInRange is argument(8).
>
> Make sense! Thanks for the explanation!
Doh! of course. This is not the first and will not be the last time i get
caught
On Fri, 6 May 2022 04:22:30 GMT, Sandhya Viswanathan
wrote:
>> I'm afraid it's `argument(8)` for the load operation since the `argument(7)`
>> is the mask input. It seems the argument number is not right begin from the
>> mask input which is expected to be `6`. But the it's not. Actually I
On Fri, 6 May 2022 03:47:47 GMT, Xiaohong Gong wrote:
>> src/hotspot/share/opto/vectorIntrinsics.cpp line 1238:
>>
>>> 1236: } else {
>>> 1237: // Masked vector load with IOOBE always uses the predicated
>>> load.
>>> 1238: const TypeInt* offset_in_range =
>>>
On Thu, 5 May 2022 19:27:47 GMT, Paul Sandoz wrote:
>> Xiaohong Gong has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Rename "use_predicate" to "needs_predicate"
>
> src/hotspot/share/opto/vectorIntrinsics.cpp line 1238:
>
>> 1236:
On Thu, 5 May 2022 08:56:07 GMT, Xiaohong Gong wrote:
>> Currently the vector load with mask when the given index happens out of the
>> array boundary is implemented with pure java scalar code to avoid the IOOBE
>> (IndexOutOfBoundaryException). This is necessary for architectures that do
>>
> Currently the vector load with mask when the given index happens out of the
> array boundary is implemented with pure java scalar code to avoid the IOOBE
> (IndexOutOfBoundaryException). This is necessary for architectures that do
> not support the predicate feature. Because the masked load
On Thu, 5 May 2022 02:14:08 GMT, Xiaohong Gong wrote:
>> src/hotspot/share/opto/vectorIntrinsics.cpp line 1232:
>>
>>> 1230: // out when current case uses the predicate feature.
>>> 1231: if (!supports_predicate) {
>>> 1232: bool use_predicate = false;
>>
>> If we rename this to
On Thu, 31 Mar 2022 02:15:26 GMT, Quan Anh Mai wrote:
>> I'm afraid not. "Load + Blend" makes the elements of unmasked lanes to be
>> `0`. Then a full store may change the values in the unmasked memory to be 0,
>> which is different with the mask store API definition.
>
> The blend should be
On Thu, 28 Apr 2022 00:13:49 GMT, Sandhya Viswanathan
wrote:
>> Xiaohong Gong has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Rename the "usePred" to "offsetInRange"
>
> src/hotspot/share/opto/vectorIntrinsics.cpp line 1232:
>
>>
On Thu, 5 May 2022 01:42:48 GMT, Xiaohong Gong wrote:
> > > Yeah, I agree that it's not good by adding a branch checking for
> > > `offsetInRange`. But actually I met the constant issue that passing the
> > > values all the way cannot guarantee the argument a constant in compiler
> > > at the
On Thu, 5 May 2022 01:21:40 GMT, Paul Sandoz wrote:
> > Yeah, I agree that it's not good by adding a branch checking for
> > `offsetInRange`. But actually I met the constant issue that passing the
> > values all the way cannot guarantee the argument a constant in compiler at
> > the compile
On Thu, 5 May 2022 01:13:23 GMT, Xiaohong Gong wrote:
> Yeah, I agree that it's not good by adding a branch checking for
> `offsetInRange`. But actually I met the constant issue that passing the
> values all the way cannot guarantee the argument a constant in compiler at
> the compile time.
On Fri, 29 Apr 2022 21:34:13 GMT, Paul Sandoz wrote:
>> Xiaohong Gong has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Rename the "usePred" to "offsetInRange"
>
> IIUC when the hardware does not support predicated loads then any false
>
On Fri, 22 Apr 2022 07:08:24 GMT, Xiaohong Gong wrote:
>> Currently the vector load with mask when the given index happens out of the
>> array boundary is implemented with pure java scalar code to avoid the IOOBE
>> (IndexOutOfBoundaryException). This is necessary for architectures that do
>>
On Fri, 22 Apr 2022 07:08:24 GMT, Xiaohong Gong wrote:
>> Currently the vector load with mask when the given index happens out of the
>> array boundary is implemented with pure java scalar code to avoid the IOOBE
>> (IndexOutOfBoundaryException). This is necessary for architectures that do
>>
On Wed, 20 Apr 2022 02:44:39 GMT, Xiaohong Gong wrote:
>>> The blend should be with the intended-to-store vector, so that masked lanes
>>> contain the need-to-store elements and unmasked lanes contain the loaded
>>> elements, which would be stored back, which results in unchanged values.
>>
On Fri, 22 Apr 2022 07:08:24 GMT, Xiaohong Gong wrote:
>> Currently the vector load with mask when the given index happens out of the
>> array boundary is implemented with pure java scalar code to avoid the IOOBE
>> (IndexOutOfBoundaryException). This is necessary for architectures that do
>>
On Wed, 20 Apr 2022 02:46:09 GMT, Xiaohong Gong wrote:
>> src/jdk.incubator.vector/share/classes/jdk/incubator/vector/ByteVector.java
>> line 2861:
>>
>>> 2859: ByteSpecies vsp = (ByteSpecies) species;
>>> 2860: if (offset >= 0 && offset <= (a.length -
>>>
> Currently the vector load with mask when the given index happens out of the
> array boundary is implemented with pure java scalar code to avoid the IOOBE
> (IndexOutOfBoundaryException). This is necessary for architectures that do
> not support the predicate feature. Because the masked load
On Sat, 9 Apr 2022 00:10:40 GMT, Sandhya Viswanathan
wrote:
>> Currently the vector load with mask when the given index happens out of the
>> array boundary is implemented with pure java scalar code to avoid the IOOBE
>> (IndexOutOfBoundaryException). This is necessary for architectures that
On Mon, 11 Apr 2022 09:04:36 GMT, Jatin Bhateja wrote:
>> The optimization for masked store is recorded to:
>> https://bugs.openjdk.java.net/browse/JDK-8284050
>
>> The blend should be with the intended-to-store vector, so that masked lanes
>> contain the need-to-store elements and unmasked
On Thu, 31 Mar 2022 03:53:15 GMT, Xiaohong Gong wrote:
>> Yeah, maybe I misunderstood what you mean. So maybe the masked store
>> `(store(src, m))` could be implemented with:
>>
>> 1) v1 = load
>> 2) v2 = blend(load, src, m)
>> 3) store(v2)
>>
>> Let's record this a JBS and fix it with a
On Wed, 30 Mar 2022 10:31:59 GMT, Xiaohong Gong wrote:
> Currently the vector load with mask when the given index happens out of the
> array boundary is implemented with pure java scalar code to avoid the IOOBE
> (IndexOutOfBoundaryException). This is necessary for architectures that do
> not
On Wed, 30 Mar 2022 10:31:59 GMT, Xiaohong Gong wrote:
> Currently the vector load with mask when the given index happens out of the
> array boundary is implemented with pure java scalar code to avoid the IOOBE
> (IndexOutOfBoundaryException). This is necessary for architectures that do
> not
On Wed, 30 Mar 2022 10:31:59 GMT, Xiaohong Gong wrote:
> Currently the vector load with mask when the given index happens out of the
> array boundary is implemented with pure java scalar code to avoid the IOOBE
> (IndexOutOfBoundaryException). This is necessary for architectures that do
> not
On Wed, 30 Mar 2022 10:31:59 GMT, Xiaohong Gong wrote:
> Currently the vector load with mask when the given index happens out of the
> array boundary is implemented with pure java scalar code to avoid the IOOBE
> (IndexOutOfBoundaryException). This is necessary for architectures that do
> not
54 matches
Mail list logo