On Fri, 30 Oct 2026 02:55:17 GMT, Vladimir Ivanov <[email protected]> wrote:
>> Jatin Bhateja has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Review comments resolution
>
> src/hotspot/cpu/x86/c2_MacroAssembler_x86.cpp line 1429:
>
>> 1427: }
>> 1428: movdl(rtmp, shift);
>> 1429: andl(rtmp, 7);
>
> How does it work for auto-vectorized code where shift count is in [0..31]
> range?
Thanks, addressed in latest revision.
> src/hotspot/cpu/x86/x86.ad line 21130:
>
>> 21128: instruct vshift16B(vec dst, vec src, vec shift, vec tmp1, vec tmp2) %{
>> 21129: predicate(Matcher::vector_length(n) == 16 &&
>> !n->as_ShiftV()->is_var_shift() &&
>> 21130: UseAVX <= 1 && !(VM_Version::supports_gfni() && UseAVX >
>> 0));
>
> What does `UseAVX > 0` check correspond to?
We only use VEX encoded version of GFNI instruction, I have re-phrased the
conditional check to be more explicit.
> src/hotspot/cpu/x86/x86.ad line 21236:
>
>> 21234: match(Set dst ( RShiftVB src shift));
>> 21235: match(Set dst (URShiftVB src shift));
>> 21236: effect(TEMP dst, TEMP rtmp, TEMP rbase);
>
> FTR `andl(rtmp, 7)` in `vshiftb_gfni` kills `cr`.
Thanks @iwanowww , your comments have been addressed.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/33113#discussion_r4421720351
PR Review Comment: https://git.openjdk.org/jdk/pull/33113#discussion_r4421720166
PR Review Comment: https://git.openjdk.org/jdk/pull/33113#discussion_r4421719892