RFR: 8329077: C2 SuperWord: Add MoveD2L, MoveL2D, MoveF2I, MoveI2F [v5]
Galder Zamarreño
galder at openjdk.org
Mon Sep 1 09:12:45 UTC 2025
On Mon, 1 Sep 2025 08:57:28 GMT, Galder Zamarreño <galder at openjdk.org> wrote:
>> 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
Ideal output for `VectorReinterpret` seems to follow a similar pattern to `LoadVector`...etc with regards to the vector size. So seems like a similar solution could be implemented:
1306 VectorReinterpret === _ 1307 [[ 1286 ]] #vectory<I,8> !orig=1179,979,[846],[738],[646],[145] !jvms: TestCompatibleUseDefTypeSize::test7 @ bci:13 (line 427)
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26457#discussion_r2313358195
More information about the core-libs-dev
mailing list