RFR: 8309531: Incorrect result with unwrapped iotaShuffle. [v3]

Jatin Bhateja jbhateja at openjdk.org
Fri Jun 30 10:50:06 UTC 2023


On Thu, 29 Jun 2023 22:48:55 GMT, Sandhya Viswanathan <sviswanathan at openjdk.org> wrote:

>> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Adding string overflow range check, NULL to nullptr replacements.
>
> src/hotspot/share/opto/vectorIntrinsics.cpp line 688:
> 
>> 686: 
>> 687:     // Make the indices greater than lane count as -ve values to match the java side implementation.
>> 688:     res = gvn().transform(VectorNode::make(Op_AndV, res, bcast_mod, vt));
> 
> Is it correct that here we are setting the mask to be true for within range good lane indices. 
> What happens if the index is -ve? The BoolTest:gt would not catch that as it would still be true.
> We could instead check for equality of indices before and after the AndV at line 688 below. If not equal then value was out of range.
> May be I am missing something here.

Correct, comparison predicate should be UGT.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/14700#discussion_r1247727033


More information about the hotspot-compiler-dev mailing list