RFR: 8343419: Assertion failure in long vector unsigned min/max with -XX:+UseKNLSetting
Jatin Bhateja
jbhateja at openjdk.org
Fri Nov 1 12:11:01 UTC 2024
KNL only supports AVX512F but not AVX512VL feature, thus vector operations with vector size less than or equal to 256 bits are generally emulated using AVX2 instructions.
This bugfix patch covers the following scenarios for LongVector unsigned min/ max over KNL targets:-
1. Long species < 512 bits and non-predicated operation.
- Operate at full vector width of 512 bits using VPMINUQ/VPMAXUQ instructions.
2. Long species < 512 bits with memory operands and non-predicated operations.
- Load memory into exactly matching vector size.
- Operate at full vector width of 512 bits
3. Long species < 512 bits and predicated operation.
- Emulate operation using AVX2 instructions
- Blend the result with the first source vector using the predication mask.
- Existing opmask population mechanism expects the existence of AVX512BW/DQ features missing on KNL target.
4. Long species == 512 bits, both predicated and non-predicated operation
- Directly use 512 bits VPMINUQ/VPMAXUQ instructions.
All existing jtreg regressions are passing with -XX:+UseKNLSetting and -Xcomp flags.
Kindly review.
Best Regards,
Jatin
-------------
Commit messages:
- 8343419: Assertion failure in long vector unsigned min/max with -XX:+UseKNLSetting
Changes: https://git.openjdk.org/jdk/pull/21821/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=21821&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8343419
Stats: 37 lines in 2 files changed: 20 ins; 6 del; 11 mod
Patch: https://git.openjdk.org/jdk/pull/21821.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/21821/head:pull/21821
PR: https://git.openjdk.org/jdk/pull/21821
More information about the hotspot-compiler-dev
mailing list