On Wed, 14 Jan 2026 07:45:26 GMT, Shawn M Emery <[email protected]> wrote:

>> The preconditions for the aarch64 and the AVX-512 intrinsic implementations 
>> of the implKyber12To16() method of com.sun.crypto.provider.ML_KEM are 
>> different and the AVX-512 one has stricter preconditions on the input, which 
>> was not recorded in the assert() before calling the function (although they 
>> were satisfied by all calling code). Now the assert() is corrected, and with 
>> these preconditions, the aarch64 implementation is simplified.
>
> src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp line 6217:
> 
>> 6215:     __ sub(parsedLength, parsedLength, 64);
>> 6216:     __ cmp(parsedLength, (u1)0);
>> 6217:     __ br(Assembler::GE, L_loop);
> 
> Should this be GT now?

Yes, I believe it should. That makes me wonder why the test did not fail. I 
would have expected it to loop back to the top and try to consume an extra 96 
bytes of non-existent input and write it to 64 bytes of of non-existent output 
buffer? Did this erroneous computation not happen? or was the error simply not 
manifest?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29141#discussion_r2689924512

Reply via email to