RFR: 8329077: C2 SuperWord: Add MoveD2L, MoveL2D, MoveF2I, MoveI2F [v5]

Galder Zamarreño galder at openjdk.org
Mon Sep 1 09:03:28 UTC 2025


On Mon, 1 Sep 2025 08:44:10 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> Galder Zamarreño has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 22 additional commits since the last revision:
>> 
>>  - Merge branch 'master' into topic.fp-bits-vector
>>  - Add more IR node positive assertions
>>  - Fix source of data for benchmarks
>>  - Refactor benchmarks to TypeVectorOperations
>>  - Check at the very least that auto vectorization is supported
>>  - Avoid VectorReinterpret::implemented
>>  - Refactor and add copyright header
>>  - Rephrase comment
>>  - Removed unnecessary assert methods
>>  - Adjust IR test after adding Move* vector support
>>  - ... and 12 more: https://git.openjdk.org/jdk/compare/57cf332d...e7e4d801
>
> test/hotspot/jtreg/compiler/loopopts/superword/TestCompatibleUseDefTypeSize.java line 460:
> 
>> 458:     @IR(counts = {IRNode.LOAD_VECTOR_L, "> 0",
>> 459:                   IRNode.STORE_VECTOR, "> 0",
>> 460:                   IRNode.VECTOR_REINTERPRET, "> 0"},
> 
> Ah, I just saw that `VECTOR_REINTERPRET` is no `vectorNode`, so we don't check the size for it. Would it have a type and size though?
> 
> If so, we could consider making it more precise, like all the vector casts.
> Would be a little bit of work, but it would make the rules more precise.
> Could also be a separate RFE.
> 
> 
>   2458     public static final String VECTOR_REINTERPRET = PREFIX + "VECTOR_REINTERPRET" + POSTFIX;
>   2459     static {
>   2460         beforeMatchingNameRegex(VECTOR_REINTERPRET, "VectorReinterpret");                                                                                                                                                                                                                                                                                                                                                            
>   2461     }
>   2462 
>   2463     public static final String VECTOR_UCAST_B2S = VECTOR_PREFIX + "VECTOR_UCAST_B2S" + POSTFIX;
>   2464     static {
>   2465         vectorNode(VECTOR_UCAST_B2S, "VectorUCastB2X", TYPE_SHORT);
>   2466     }
> 
> 
> Depending on the dump, it may not be so easy though. Not sure.

That makes sense, I'll create a separate RFE for that

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26457#discussion_r2313333399


More information about the core-libs-dev mailing list