RFR: 8265956: JVM crashes when matching LShiftVB Node [v3]

Wang Huang whuang at openjdk.java.net
Sat May 8 07:53:13 UTC 2021


On Sat, 8 May 2021 07:03:55 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

>> `vector_shift_count` which calls `VectorNode::shift_count` does not contain `Op_LShiftB`:
>> 
>> ```c++
>> VectorNode* VectorNode::shift_count(int opc, Node* cnt, uint vlen, BasicType bt) {
>>   // Match shift count type with shift vector type.
>>   const TypeVect* vt = TypeVect::make(bt, vlen);
>>   switch (opc) {
>>   case Op_LShiftI:
>>   case Op_LShiftL:
>>     return new LShiftCntVNode(cnt, vt);
>>   case Op_RShiftI:
>>   case Op_RShiftL:
>>   case Op_URShiftB:
>>   case Op_URShiftS:
>>   case Op_URShiftI:
>>   case Op_URShiftL:
>>     return new RShiftCntVNode(cnt, vt);
>>   default:
>>     fatal("Missed vector creation for '%s'", NodeClassNames[opc]);
>>     return NULL;
>>   }
>> }
>
> Byte and short will use `"Op_LShiftI/Op_RShiftI"`. Please see: https://github.com/openjdk/panama-vector/blob/master/src/hotspot/share/prims/vectorSupport.cpp#L335

Thank you for your comment. I think it‘s a bit strange here to use `LShfitI` instead of `LShiftB`. Anyway, reusing is better than new things.

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

PR: https://git.openjdk.java.net/jdk/pull/3747


More information about the hotspot-compiler-dev mailing list