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

Reply via email to