RFR: 8356760: VectorAPI: Optimize VectorMask.fromLong for all-true/all-false cases [v7]

erifan duke at openjdk.org
Wed Jul 30 06:16:57 UTC 2025


On Tue, 29 Jul 2025 08:21:57 GMT, Christian Hagedorn <chagedorn at openjdk.org> wrote:

>> erifan has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Move the assertion to the beginning of the code block
>
> Testing is currently slow - still running but I report what I have so far. There is one test failure on `linux-aarch64-debug` and `macosx-aarch64-debug` with the new test `VectorMaskToLongTest.java`:
> 
> Additional flags: `-ea -esa -XX:CompileThreshold=100 -XX:+UnlockExperimentalVMOptions -server -XX:-TieredCompilation` (probably only related to `-XX:-TieredComilation`, maybe we have not enough profiling and need to increase the warm-up but that's just a wild guess without looking at the test)
> 
> <details>
> <summary>Log</summary>
> 
> Compilations (5) of Failed Methods (5)
> --------------------------------------
> 1) Compilation of "public static void compiler.vectorapi.VectorMaskToLongTest.testFromLongToLongByte()":
>> Phase "PrintIdeal":
> AFTER: print_ideal
>    0  Root  === 0 203 230 269 270  [[ 0 1 3 225 198 189 23 186 167 28 44 124 104 54 277 295 ]] inner 
>    1  Con  === 0  [[ ]]  #top
>    3  Start  === 3 0  [[ 3 5 6 7 8 9 ]]  #{0:control, 1:abIO, 2:memory, 3:rawptr:BotPTR, 4:return_address}
>    5  Parm  === 3  [[ 168 ]] Control !jvms: VectorMaskToLongTest::testFromLongToLongByte @ bci:-1 (line 182)
>    6  Parm  === 3  [[ 168 ]] I_O !jvms: VectorMaskToLongTest::testFromLongToLongByte @ bci:-1 (line 182)
>    7  Parm  === 3  [[ 168 279 286 ]] Memory  Memory: @BotPTR *+bot, idx=Bot; !jvms: VectorMaskToLongTest::testFromLongToLongByte @ bci:-1 (line 182)
>    8  Parm  === 3  [[ 270 269 255 233 230 199 203 168 226 ]] FramePtr !jvms: VectorMaskToLongTest::testFromLongToLongByte @ bci:-1 (line 182)
>    9  Parm  === 3  [[ 270 269 199 226 ]] ReturnAdr !jvms: VectorMaskToLongTest::testFromLongToLongByte @ bci:-1 (line 182)
>   23  ConP  === 0  [[ 255 168 ]]  #jdk/incubator/vector/ByteVector$ByteSpecies (jdk/incubator/vector/VectorSpecies):exact *  Oop:jdk/incubator/vector/ByteVector$ByteSpecies (jdk/incubator/vector/VectorSpecies):exact *
>   28  ConI  === 0  [[ 168 ]]  #int:1
>   44  ConI  === 0  [[ 168 ]]  #int:16
>   54  ConL  === 0  [[ 255 233 168 168 199 ]]  #long:65534
>  104  ConP  === 0  [[ 168 ]]  #java/lang/Class (java/io/Serializable,java/lang/constant/Constable,java/lang/reflect/AnnotatedElement,java/lang/invoke/TypeDescriptor,java/lang/reflect/GenericDeclaration,java/lang/reflect/Type,java/lang/invoke/TypeDescriptor$OfField):exact *  Oop:java/lang/Class (java/io/Serializable,java/lang/constant/Constable,java/lang/reflect/AnnotatedElement,java/lang/invoke/TypeDescriptor,java/lang/reflect/GenericDeclaration,java/lang/reflect/Type,java/lang/invoke/TypeDescriptor$OfField):exact *
>  124 ...

Hi @chhagedorn , I have increased the warm up times, could you help test the PR again ? Thanks!

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

PR Comment: https://git.openjdk.org/jdk/pull/25793#issuecomment-3134981739


More information about the hotspot-compiler-dev mailing list