RFR: 8356176: C2 MemorySegment: missing RCE with byteSize() in Loop Exit Check inside the for Expression [v3]

Manuel Hässig mhaessig at openjdk.org
Tue Aug 12 15:20:20 UTC 2025


On Tue, 12 Aug 2025 12:54:13 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> Manuel Hässig has updated the pull request incrementally with two additional commits since the last revision:
>> 
>>  - Improve comment
>>  - Fix build failure on product
>
> test/hotspot/jtreg/compiler/loopopts/superword/TestMemorySegmentByteSizeLongLoopLimit.java line 62:
> 
>> 60:     @Test
>> 61:     @IR(counts = {IRNode.LOAD_VECTOR_I, IRNode.VECTOR_SIZE_ANY, "> 0",
>> 62:                   IRNode.ADD_VI, IRNode.VECTOR_SIZE_ANY,        "> 0",
> 
> Oh I only just saw it now. Do you think we can specify the `VECTOR_SIZE` more precisely?
> If we don't assert the vector size, it could be that we generate vectors that are smaller, and produce lower performance.
> 
> The issue may have been that we have mixed types here.
> 
> I wonder if this approach would work for you here:
> `test/hotspot/jtreg/compiler/loopopts/superword/TestUnorderedReductionPartialVectorization.java:                  IRNode.VECTOR_CAST_I2L, IRNode.VECTOR_SIZE + "min(max_int, max_long)", "> 0",`

TIL about the  language for vector sizes, thank you.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26429#discussion_r2270242045


More information about the hotspot-compiler-dev mailing list