On Thu, 16 Jul 2026 04:27:05 GMT, Kuai Wei <[email protected]> wrote: >> I recently noticed a behavioral discrepancy in >> jdk.internal.util.ArraysSupport.vectorizedMismatch between the Java >> implementation and the platform intrinsic implementations. >> >> Current behavior >> >> The Java implementation may leave a tail of elements unchecked, returning >> the bitwise complement of the number of remaining elements (i.e., >> ~remaining). >> The x86_64 intrinsic, by contrast, compares all elements and simply returns >> -1 when no mismatch is found. >> >> Proposed change >> >> This PR refines the Java implementation so that it always compares all >> elements and returns -1 when no mismatch is found, matching the x86_64 >> intrinsic behavior. >> >> A regression test is included at >> `test/hotspot/jtreg/compiler/intrinsics/VectorizedMismatchReturnDiffTest.java` >> which demonstrates the original behavioral difference. >> >> ## Test >> - [x] tier1 test suites on linux x86_64 >> - [x] tier1 test suites on linux aarch64 >> >> --------- >> - [x] I confirm that I make this contribution in accordance with the >> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). > > Kuai Wei has updated the pull request incrementally with two additional > commits since the last revision: > > - Fix indent > - Recovery comments
I think we should make this API never return negatives other than -1. If other platforms require the old lenient behavior, we can create another implementation method that has the lenient behavior and have the Java implementation of the API finish the rest of the comparison. I could not see how a negative value other than -1 is ever meaningful to the Java end. ------------- PR Comment: https://git.openjdk.org/jdk/pull/31802#issuecomment-5063394473
