On Thu, 22 Oct 2026 02:24:10 GMT, Volodymyr Paprotski <[email protected]> wrote:
>> This provides AVX2 intrinsics for MLKEM operations. I also refactored AVX512 >> for code sharing. (A lot of this is similar to the MLDSA refactoring I did, >> and general shape follows that design) >> >> Performance: >> - KEMBench.MLKEM.(en|de)capsulate on AVX2 got 50-80% faster (depending on >> keysize and operation) >> - On AVX512, the intrinsics themselves were ~10-30% faster, but it doesnt >> really show on the top-level KEMBench.MLKEM.(en|de)capsulate (other parts of >> the benchmark take over, eg SHA3 which we optimized previously) >> >> --------- >> - [X] I confirm that I make this contribution in accordance with the >> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). > > Volodymyr Paprotski has updated the pull request with a new target base due > to a merge or a rebase. The pull request now contains eight commits: > > - re-enable test > - Merge remote-tracking branch 'origin/master' into avx2-mlkem > - whitespace > - reduce fuzz test repetition > - Merge remote-tracking branch 'origin/master' into avx2-mlkem > - prepare for rebase > - comments from Anas > - avx2 mlkem drop src/hotspot/cpu/x86/assembler_x86.cpp line 13618: > 13616: assert(vector_len == AVX_128bit ? VM_Version::supports_avx() > 13617: : VM_Version::supports_avx2(), ""); > 13618: InstructionAttr attributes(vector_len, /* vex_w */ false, /* > legacy_mode */ true, /* no_mask_reg */ true, /* uses_vl */ true); uses_vl should be false, there is no EVEX extension for this instruction. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/33444#discussion_r4537818631
