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