On Wed, 20 May 2026 23:10:45 GMT, Shawn Emery <[email protected]> wrote:

>> src/hotspot/cpu/x86/stubGenerator_x86_64_sha3.cpp line 580:
>> 
>>> 578:   // Zero out zmm0-zmm31.
>>> 579:   __ vzeroall();
>>> 580:   for (XMMRegister rxmm = xmm16; vector_len == Assembler::AVX_512bit 
>>> && rxmm->is_valid(); rxmm = rxmm->successor()) {
>> 
>> The loop predicate checks for `vector_len == AVX_512bit`, but is it ever set 
>> to that value? I see only sets to `128` and `256`. So this loop looks 
>> effectively dead?
>
> Yes, even though `A16 - A24` are set, these registers will never be cleared 
> given that the single and double paths have set `vector_len` to `AVX_128bit` 
> and `AVX_256bit`, respectively.

Its my 'standard clear registers' template, my bad.. fixed now, I think..

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

PR Review Comment: https://git.openjdk.org/jdk/pull/31125#discussion_r3277822810

Reply via email to