> This PR improves the performance of vector operations that accept masks on > architectures that support masking in hardware, specifically Intel AVX512 and > ARM SVE. > > On architectures that do not support masking in hardware the same technique > as before is applied to most operations, specifically composition using blend. > > Masked loads/stores are a special form of masked operation that require > additional care to ensure out-of-bounds access throw exceptions. The range > checking has not been fully optimized and will require further work. > > No API enhancements were required and only a few additional tests were needed.
Paul Sandoz has updated the pull request incrementally with two additional commits since the last revision: - Merge pull request #2 from nsjian/vector-conversion-fix AArch64: Incorrect SVE double to int and float to long vector conversion - Incorrect double to int and float to long vector conversion Like JDK-8276151, SVE vector double to int and float to long conversions have similar issue. According to Java language specification [1], we should convert double/float to integer/long directly, instead of converting to long/int and then narrowing/extending to target types. Test cases will be updated in JDK-8276151. [1] https://docs.oracle.com/javase/specs/jls/se17/html/jls-5.html#jls-5.1.3 ------------- Changes: - all: https://git.openjdk.java.net/jdk/pull/5873/files - new: https://git.openjdk.java.net/jdk/pull/5873/files/c9a77225..571e6f39 Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=5873&range=07 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=5873&range=06-07 Stats: 40 lines in 2 files changed: 22 ins; 4 del; 14 mod Patch: https://git.openjdk.java.net/jdk/pull/5873.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5873/head:pull/5873 PR: https://git.openjdk.java.net/jdk/pull/5873