RFR: 8354242: VectorAPI: combine vector not operation with compare [v8]

Emanuel Peter epeter at openjdk.org
Wed Jun 11 05:36:37 UTC 2025


On Wed, 11 Jun 2025 05:08:35 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> erifan has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Support negating unsigned comparison for BoolTest::mask
>>   
>>   Added a static method `negate_mask(mask btm)` into BoolTest class to
>>   negate both signed and unsigned comparison.
>
> src/hotspot/share/opto/vectornode.cpp line 2227:
> 
>> 2225:   const TypeVect* vector_mask_cast_vt = nullptr;
>> 2226:   // in1 should be single used, otherwise the optimization may be unprofitable.
>> 2227:   if (in1->Opcode() == Op_VectorMaskCast && in1->outcnt() == 1 && in1->in(1)->Opcode() == Op_VectorMaskCmp) {
> 
> `in1->in(1)->Opcode() == Op_VectorMaskCmp`
> Is this check here even necessary? Because we check it below again, right?
> `in1->Opcode() != Op_VectorMaskCmp`

Btw: do you have a test where `in1->outcnt() > 1`, and you check that the optimization does not happen with an IR test?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24674#discussion_r2139203141


More information about the core-libs-dev mailing list